==== TABLE OF CONTENTS ====
Uniform-Stability-of-the-Spherical-Laughlin-Gap//appendices/retained-blocks.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//bibliography.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//paper.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/01-introduction.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/02-preliminaries.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/03-locality.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/04-pinning.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/05-flags.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/06-charge.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/07-energy.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/08-stability.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcore.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.ee.IEC.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.ee.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.logic.CDH.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.logic.IEC.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.logic.US.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.logic.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.3d.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.barcharts.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.formats.functions.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.polar.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.sparklines.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/graphs/tikzlibrarygraphs.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/graphs/tikzlibrarygraphs.standard.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzexternalshared.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary3d.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryangles.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryanimations.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybabel.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybending.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalc.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalendar.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarychains.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.footprints.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.fractals.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.markings.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.pathmorphing.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.pathreplacing.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.shapes.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.text.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryer.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfadings.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfixedpointarithmetic.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfolding.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfpu.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryintersections.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarylindenmayersystems.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymath.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymindmap.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypatterns.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypatterns.meta.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryperspective.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypetri.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryplothandlers.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryplotmarks.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryquotes.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryrdf.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryscopes.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshadings.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshadows.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.arrows.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.callouts.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.gates.logic.IEC.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.gates.logic.US.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.geometric.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.misc.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.symbols.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarysnakes.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryspy.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarysvg.path.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarythrough.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytrees.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryturtle.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryviews.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/experimental/tikzlibrarygraphdrawing.evolving.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.circular.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.examples.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.force.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.layered.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.trees.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/tikzlibrarygraphdrawing.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/datavisualization/pgflibrarydatavisualization.barcharts.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/datavisualization/pgflibrarydatavisualization.formats.functions.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/datavisualization/pgflibrarydatavisualization.polar.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.footprints.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.fractals.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.markings.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.pathmorphing.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.pathreplacing.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.shapes.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.text.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/luamath/pgflibraryluamath.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryarrows.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryarrows.meta.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryarrows.spaced.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarycurvilinear.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryfadings.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryfixedpointarithmetic.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryfpu.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryintersections.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarylindenmayersystems.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarypatterns.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarypatterns.meta.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryprofiler.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryshadings.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarysvg.path.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarytimelines.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.ee.IEC.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.ee.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.logic.IEC.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.logic.US.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.logic.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.arrows.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.callouts.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.geometric.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.misc.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.symbols.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfint.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmath.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathcalc.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfloat.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.base.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.random.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.round.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathode.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathparser.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathutil.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleanimations.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulebending.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduledatavisualization.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduledecorations.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulematrix.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulenonlineartransformations.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleoo.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleparser.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleplot.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulesnakes.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulesorting.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/pgf.revision.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/systemlayer/pgfsys.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/systemlayer/pgfsysanimations.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfcalendar.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfexternal.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfexternalwithdepth.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgffor.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfkeys.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfrcs.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfutil-common-lists.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfutil-common.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/doc/pgfmanual-en-macros.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/doc/pgfmanual.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/doc/pgfmanual.pdflinks.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/doc/pgfmanual.prettyprinter.code.tex
Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/frontendlayer/libraries/tikzlibraryexternal.code.tex
===========================
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//appendices/retained-blocks.tex ====
\section{Retaining the unused four-body blocks}
\label{app:retained-blocks}
\begingroup
\newcommand{\rbnorm}[1]{\lVert #1\rVert}
\newcommand{\rbket}[1]{\lvert #1\rangle}
\newcommand{\rbbra}[1]{\langle #1\rvert}
\newcommand{\rbip}[2]{\langle #1,#2\rangle}
The local loss construction requires a stronger operator inequality than
the unperturbed gap: most of the normal-ordered four-body term must remain
on the right-hand side. We give the full finite-dimensional calculation
that establishes this strengthening. The seven auxiliary squares, their
rational certificate, and the finite-flux transfer are adapted from
\cite[Sections 2--6 and 8]{Gap}. The proof below retains the
four-body blocks that are discarded when only the gap is sought.
We use the lift and wedge maps of \eqref{eq:lift} and
\eqref{eq:wedge-maps}, with increasing orthonormal wedges of norm one.
Thus $B(v\wedge w)=B(w)B(v)$, and the domain of $W_4$ uses ordered
pair factors. Write $a=q-1$ and $H=H_q$; the conventions give
\begin{align}
\mathcal L_k(\rbket v\rbbra w)&=B(v)^\dagger B(w),
\label{rb:eq:lift}\\
B_p=B(v_p),\qquad H&=\mathcal L_2(\Pi_{V_q})
=\sum_{p=0}^{2q-2}B_p^\dagger B_p.
\label{rb:eq:fockH}
\end{align}
The dagger in this appendix denotes the same adjoint as the star in the
main text.
The tensor product $V_q\otimes V_q$ contains one copy of each spin
$2q-2-l$, $0\le l\le 2q-2$. Let $P_{q,l}$ be its orthogonal
spin projection and define
\begin{equation}\label{rb:eq:retained-projections}
R_q^{\mathrm{lo}}=\sum_{l=0}^{22}P_{q,l},\qquad
R_q^{\mathrm{hi}}=I-R_q^{\mathrm{lo}}\quad(q\ge24).
\end{equation}
The spin-block label used in the calculation below is $D=l+1$;
thus $R_q^{\mathrm{lo}}$ consists exactly of $1\le D\le23$.
\begin{proposition}[Retained four-body blocks]\label{prop:retained-blocks}
For every fixed $0j+k$. The formula holds for either ordering of $j,k$, by antisymmetry. It follows by applying Lemma~\ref{rb:lem:coupling} first to the two single-particle spins and then to the two pair spins.
After averaging \eqref{rb:eq:normal4}, its spin-$2q-1-D$ block before wedging is a copy matrix $E_D^q$ times the spin identity, multiplied by $d_a/d_D$, where
\[
d_D=4q-1-2D.
\]
Only $1\le D\le23$ contribute: every unaveraged term has
\[
T=p+j+k=p'+l+i\le23.
\]
For these finitely many $D$, entrywise convergence gives $E_D^q\to E_D$, with
\begin{equation}\label{rb:eq:E}
(E_D)_{rs}=-\sum_\rho\sum_{\substack{p,j;p',l\\T\ge D}}
\alpha^{\rho}_{pj}\alpha^{\rho}_{p'l}
S_r(D,T;p,j,k)S_s(D,T;p',l,i),
\end{equation}
where $i=p+j-t_\rho$, $k=p'+l-t_\rho$, and $T=p+j+k$. The exact finite-flux matrix $E_D^q$ is given by the same formula with each $S_r$ replaced by $S_r^q$.
The target term $\mathcal L_4(W_4W_4^\dagger)$ is obtained from the $r=1$ summand, since that summand is $V_q\otimes V_q$. Thus its copy matrix, in the units just used, is $(d_D/d_a)\chi$, where
\[
\chi_{rs}=\mathbf1_{r=s=1},\qquad d_D/d_a\longrightarrow2.
\]
The summands of the target with $1\le D\le23$ equal
$\mathcal L_4(W_4R_q^{\mathrm{lo}}W_4^\dagger)$.
Since $A_4$ has no other spin blocks, the comparison with $A_4$ uses only
this part of the target. We keep
$\mathcal L_4(W_4R_q^{\mathrm{hi}}W_4^\dagger)$ separately.
Set
\begin{align}
w_{Dr}^q&=\widehat W\rbket{D,D;r}_q,\label{rb:eq:wq}\\
w_{Dr}^*&=\sum_{\substack{p+j+k=D\\jq$, are therefore dominated by
$6z(z+1)(2/3)^z$. Dominated convergence and \eqref{rb:eq:qlimit} give
\[
\lim_{q\to\infty}\delta_q
=\frac32\sum_{z=17,19,\ldots}(3z-1)(z+1)2^{-z}
=\frac{61}{4096}.
\]
The last identity follows by writing $z=17+2m$ and using the geometric-series identities for $\sum t^m$, $\sum mt^m$, and $\sum m^2t^m$ at $t=1/4$.
\end{proof}
\begin{proof}[Proof of Proposition~\ref{prop:retained-blocks}]
Write $T_{\mathrm{lo}}=\mathcal L_4(W_4R_q^{\mathrm{lo}}W_4^\dagger)$
and $T_{\mathrm{hi}}=\mathcal L_4(W_4R_q^{\mathrm{hi}}W_4^\dagger)$.
The normal-square identity, the three-body comparison
\eqref{rb:eq:A3bound}, and the tail estimate give
\[
H^2\ge (1-\delta_q)H+A_3+T_{\mathrm{lo}}+T_{\mathrm{hi}}.
\]
By \eqref{rb:eq:A4bound},
$T_{\mathrm{lo}}\ge A_4-(1222\varepsilon+o(1))H$.
Using $\mathcal K_q=\eta H+A_3+A_4\ge0$ from
\eqref{rb:eq:Adecomp}, we obtain
\[
H^2\ge\mathcal K_q+
(1-\eta-\delta_q-1222\varepsilon-o(1))H+T_{\mathrm{hi}}.
\]
The coefficient of $H$ tends to
\begin{equation}\label{rb:eq:finalmargin}
1-\frac{93527408868499}{10^{14}}-\frac{61}{4096}
-1222\frac3{10^6}
=\frac{4616733319001}{10^{14}}>\frac1{25}.
\end{equation}
For fixed $00$. Integer division gives the floors $\lfloor n_z/d_z\rfloor$ listed below:
\begin{center}
\small
\setlength{\tabcolsep}{4pt}
\begin{tabular}{rrrrrrrrrrrrrr}
\toprule
$z$&2&4&5&6&7&8&9&10&11&12&13&14&15\\
\midrule
floor&1298313&211317&249&250&249&250&250&250&249&250&250&6470&250\\
\bottomrule
\end{tabular}
\end{center}
All are positive, proving \eqref{rb:eq:3certificate}.
\subsubsection{Four-body arithmetic}
\label{rb:app:four-arithmetic}
Fix $1\le D\le23$; all copy indices below lie in $\mathcal R_D$. Put
\[
u_r=\frac1{r!(D-r)!},\qquad
(E_D)_{rs}=\sqrt{u_ru_s}\,Y_{rs},\qquad
(G_D)_{rs}=\sqrt{u_ru_s}\,Z_{rs}.
\]
The matrices $Y,Z$ are rational. Define
\[
\mathsf V_r(D,T;p,j,k)=
\mathsf U(1,r,j+k,j)\mathsf U(1,D-r,T-r,p),
\]
with value zero for $r>j+k$. Two applications of \eqref{rb:eq:coupling} give
\begin{equation}\label{rb:eq:Srational}
S_r(D,T;p,j,k)=\mathsf V_r(D,T;p,j,k)
\sqrt{2^{1-(j+k)-T+r}\frac{j!k!p!\,u_r}{(T-D)!}}.
\end{equation}
Therefore
\begin{equation}\label{rb:eq:Yrational}
\begin{split}
P^2Y_{rs}=-\sum_\rho\sum_{\substack{p,j;p',l\\T\ge D}}
&a^\rho_{pj}a^\rho_{p'l}\,
\mathsf V_r(D,T;p,j,k)\mathsf V_s(D,T;p',l,i)\\
&\times2^{1-2T+p+p'-t_\rho+(r+s)/2}
\frac{i!k!t_\rho!}{(T-D)!},
\end{split}
\end{equation}
where $i=p+j-t_\rho$, $k=p'+l-t_\rho$, and $T=p+j+k$. Both entry sums are ordered. To verify the cancellation, multiply the two factors in \eqref{rb:eq:Srational} by the two factors \eqref{rb:eq:alphadata}; their remaining square root is exactly the factorial and power-of-two factor displayed in \eqref{rb:eq:Yrational}.
For an increasing quadruple $A$ of nonnegative indices with sum $D+1$, put $f(A)=\prod_{b\in A}b!$. If $(x,y,j,k)$ lists its elements, let $\sigma(x,y,j,k)$ be the sign of sorting this list into increasing order. In each summand below put $p=x+y-1$, and define
\begin{equation}\label{rb:eq:Lrational}
L_r(A)=2^{(1-2D+r)/2}
\sum_{\substack{x0\qquad(x>0).
\]
Since $M$ is real symmetric, a negative eigenvalue would give a positive
root of this polynomial. Therefore $M\ge0$, proving
\eqref{rb:eq:4certificate}.
\endgroup
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//appendices/retained-blocks.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//bibliography.tex ====
\begingroup\raggedright
\begin{thebibliography}{99}
\bibitem{BDN}
S.~Bachmann and G.~De Nittis,
\emph{Lieb--Robinson bounds in the continuum via localized frames},
preprint, 2024.
\href{https://arxiv.org/abs/2406.15670}{arXiv:2406.15670}.
\bibitem{BMNS}
S.~Bachmann, S.~Michalakis, B.~Nachtergaele, and R.~Sims,
Automorphic equivalence within gapped phases of quantum lattice systems,
\emph{Communications in Mathematical Physics} \textbf{309} (2012), 835--871.
\href{https://doi.org/10.1007/s00220-011-1380-0}{doi:10.1007/s00220-011-1380-0}.
\bibitem{BHM}
S.~Bravyi, M.~B. Hastings, and S.~Michalakis,
Topological quantum order: Stability under local perturbations,
\emph{Journal of Mathematical Physics} \textbf{51} (2010), 093512.
\href{https://doi.org/10.1063/1.3490195}{doi:10.1063/1.3490195}.
\bibitem{CS}
L.~Chen and A.~Seidel,
Algebraic approach to the study of zero modes of Haldane pseudopotentials,
\emph{Physical Review B} \textbf{91} (2015), 085103.
\href{https://doi.org/10.1103/PhysRevB.91.085103}{doi:10.1103/PhysRevB.91.085103}.
\bibitem{Haldane}
F.~D.~M. Haldane,
Fractional quantization of the Hall effect: A hierarchy of incompressible
quantum fluid states,
\emph{Physical Review Letters} \textbf{51} (1983), 605--608.
\href{https://doi.org/10.1103/PhysRevLett.51.605}{doi:10.1103/PhysRevLett.51.605}.
\bibitem{HW}
M.~B. Hastings and X.-G. Wen,
Quasiadiabatic continuation of quantum states: The stability of topological
ground-state degeneracy and emergent gauge invariance,
\emph{Physical Review B} \textbf{72} (2005), 045141.
\href{https://doi.org/10.1103/PhysRevB.72.045141}{doi:10.1103/PhysRevB.72.045141}.
\bibitem{Laughlin}
R.~B. Laughlin,
Anomalous quantum Hall effect: An incompressible quantum fluid with
fractionally charged excitations,
\emph{Physical Review Letters} \textbf{50} (1983), 1395--1398.
\href{https://doi.org/10.1103/PhysRevLett.50.1395}{doi:10.1103/PhysRevLett.50.1395}.
\bibitem{LR}
E.~H. Lieb and D.~W. Robinson,
The finite group velocity of quantum spin systems,
\emph{Communications in Mathematical Physics} \textbf{28} (1972), 251--257.
\href{https://doi.org/10.1007/BF01645779}{doi:10.1007/BF01645779}.
\bibitem{LRY}
E.~H. Lieb, N.~Rougerie, and J.~Yngvason,
Local incompressibility estimates for the Laughlin phase,
\emph{Communications in Mathematical Physics} \textbf{365} (2019), 431--470.
\href{https://doi.org/10.1007/s00220-018-3181-1}{doi:10.1007/s00220-018-3181-1}.
\bibitem{Lindblad}
G.~Lindblad,
On the generators of quantum dynamical semigroups,
\emph{Communications in Mathematical Physics} \textbf{48} (1976), 119--130.
\href{https://doi.org/10.1007/BF01608499}{doi:10.1007/BF01608499}.
\bibitem{MONS}
T.~Mazaheri, G.~Ortiz, Z.~Nussinov, and A.~Seidel,
Zero modes, bosonization, and topological quantum order:
The Laughlin state in second quantization,
\emph{Physical Review B} \textbf{91} (2015), 085115.
\href{https://doi.org/10.1103/PhysRevB.91.085115}{doi:10.1103/PhysRevB.91.085115}.
\bibitem{MZ}
S.~Michalakis and J.~P. Zwolak,
Stability of frustration-free Hamiltonians,
\emph{Communications in Mathematical Physics} \textbf{322} (2013), 277--302.
\href{https://doi.org/10.1007/s00220-013-1762-6}{doi:10.1007/s00220-013-1762-6}.
\bibitem{NSY}
B.~Nachtergaele, R.~Sims, and A.~Young,
Lieb--Robinson bounds, the spectral flow, and stability of the spectral gap
for lattice fermion systems,
in \emph{Mathematical Problems in Quantum Physics},
Contemporary Mathematics \textbf{717}, American Mathematical Society, 2018,
93--115.
\href{https://doi.org/10.1090/conm/717/14443}{doi:10.1090/conm/717/14443}.
\bibitem{NSYBulk}
B.~Nachtergaele, R.~Sims, and A.~Young,
Stability of the bulk gap for frustration-free topologically ordered
quantum lattice systems,
\emph{Letters in Mathematical Physics} \textbf{114} (2024), article~24.
\href{https://doi.org/10.1007/s11005-023-01767-8}{doi:10.1007/s11005-023-01767-8}.
\bibitem{NWY}
B.~Nachtergaele, S.~Warzel, and A.~Young,
Spectral gaps and incompressibility in a $\nu=1/3$ fractional quantum Hall system,
\emph{Communications in Mathematical Physics} \textbf{383} (2021), 1093--1149.
\href{https://doi.org/10.1007/s00220-021-03997-0}{doi:10.1007/s00220-021-03997-0}.
\bibitem{Gap}
OpenAI,
A Fock-space inequality and the Laughlin spectral gap,
OpenAI Math Release preprint
\href{https://github.com/openai/math/blob/main/preprints/A-Fock-space-inequality-and-the-Laughlin-spectral-gap-September-24-2026/A-Fock-space-inequality-and-the-Laughlin-spectral-gap-September-24-2026.pdf}{OAI:A-Fock-space-inequality-and-the-Laughlin-spectral-gap-September-24-2026},
2026.
\bibitem{Rougerie}
N.~Rougerie,
On the Laughlin function and its perturbations,
\emph{S\'eminaire Laurent Schwartz---EDP et applications} (2018--2019),
Expos\'e~II, 1--17.
\href{https://doi.org/10.5802/slsedp.131}{doi:10.5802/slsedp.131}.
\bibitem{RY}
N.~Rougerie and J.~Yngvason,
Incompressibility estimates for the Laughlin phase,
\emph{Communications in Mathematical Physics} \textbf{336} (2015), 1109--1140.
\href{https://doi.org/10.1007/s00220-014-2232-5}{doi:10.1007/s00220-014-2232-5}.
\bibitem{SY}
R.~Seiringer and J.~Yngvason,
Emergence of Haldane pseudo-potentials in systems with short-range interactions,
\emph{Journal of Statistical Physics} \textbf{181} (2020), 448--464.
\href{https://doi.org/10.1007/s10955-020-02586-0}{doi:10.1007/s10955-020-02586-0}.
\bibitem{TK}
S.~A. Trugman and S.~Kivelson,
Exact results for the fractional quantum Hall effect with general interactions,
\emph{Physical Review B} \textbf{31} (1985), 5280--5284.
\href{https://doi.org/10.1103/PhysRevB.31.5280}{doi:10.1103/PhysRevB.31.5280}.
\bibitem{WY}
S.~Warzel and A.~Young,
The spectral gap of a fractional quantum Hall system on a thin torus,
\emph{Journal of Mathematical Physics} \textbf{63} (2022), 041901.
\href{https://doi.org/10.1063/5.0084677}{doi:10.1063/5.0084677}.
\end{thebibliography}
\endgroup
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//bibliography.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//paper.tex ====
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[margin=1.05in]{geometry}
\usepackage{amsmath,amssymb,amsthm,mathtools}
\usepackage{microtype,graphicx,booktabs,array,listings}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,positioning,calc,patterns,decorations.pathreplacing}
\usepackage{xcolor}
\usepackage[unicode,colorlinks=true,linkcolor=blue!45!black,citecolor=blue!45!black,urlcolor=blue!45!black]{hyperref}
\hypersetup{pdftitle={Uniform Stability of the Spherical Laughlin Gap},pdfauthor={OpenAI}}
\numberwithin{equation}{section}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{corollary}[theorem]{Corollary}
\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}
\theoremstyle{remark}
\newtheorem{remark}[theorem]{Remark}
\setlength{\emergencystretch}{2em}
\title{Uniform Stability of the Spherical Laughlin Gap}
\author{OpenAI}
\date{October 5, 2026}
\begin{document}
\maketitle
\begin{abstract}
We prove that the fermionic Laughlin $V_1$ Hamiltonian at filling $1/3$
on expanding round spheres retains a unique ground state and a uniform
spectral gap under sufficiently weak bounded real scalar one-body
potentials projected to the lowest Landau level. With coefficient one
for each pair projector and Laughlin flux $q=3(N-1)$, the gap and
perturbation threshold are uniform for all sufficiently large particle
numbers and all potential profiles of supremum norm at most one.
The result uses the uniform unperturbed Fock-space gap and gives
existential constants.
\end{abstract}
\tableofcontents
\input{sections/01-introduction}
\input{sections/02-preliminaries}
\input{sections/03-locality}
\input{sections/04-pinning}
\input{sections/05-flags}
\input{sections/06-charge}
\input{sections/07-energy}
\input{sections/08-stability}
\appendix
\input{appendices/retained-blocks}
\input{bibliography}
\end{document}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//paper.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/01-introduction.tex ====
\section{Introduction}\label{sec:introduction}
Laughlin's wave function describes a strongly correlated state at
fractional filling of the lowest Landau level~\cite{Laughlin}.
Haldane's spherical geometry and pseudopotentials give a particularly
simple parent Hamiltonian: each electron pair is penalized by the
orthogonal projection onto relative angular momentum one~\cite{Haldane}.
The cubic Laughlin polynomial is its unique zero state at filling
$1/3$ with the spherical shift. A spectral gap separates this state
from excitations. Stability asks whether that separation survives
a weak external potential whose total many-particle norm grows with
the area of the system.
We prove uniform stability for the full spherical interaction under
bounded scalar potentials projected to the lowest Landau level.
The potential may vary with system size and need not have any symmetry.
The proof uses the uniform unperturbed Fock-space gap of~\cite{Gap},
and derives the additional local estimates needed to pass from a
gap at zero disorder to a gap on a fixed disorder interval.
\subsection{Model and main result}
For $N\ge2$, set $q=3(N-1)$ and let $S_q$ be the round sphere of
radius $\sqrt{q/2}$. Magnetic length is one, so the sphere carries
$q$ flux quanta and has area $2\pi q$. Let $U_q$ be its one-particle
lowest Landau level, equivalently the spin-$q/2$ representation of
$SU(2)$. On the entire antisymmetric space $\bigwedge^N U_q$, put
\begin{equation}\label{eq:intro-H}
H_{N,q}=\sum_{1\le i0$, $\Delta_*>0$, and
$N_*<\infty$ such that, for every $N\ge N_*$, every real
bounded measurable $\varphi$ on $S_{3(N-1)}$ with
$\|\varphi\|_\infty\le1$, and every real
$|\lambda|\le\lambda_*$,
\begin{equation}\label{eq:intro-stability}
E_1(N,\lambda,\varphi)-E_0(N,\lambda,\varphi)\ge\Delta_*.
\end{equation}
In particular the perturbed ground state is unique.
\end{theorem}
The constants are uniform over the potential as well as particle number.
Thus the theorem applies, in particular, to smooth potentials satisfying
$\max_{0\le k\le2}\|\nabla^k\varphi\|_\infty\le1$ in the
physical round metric. Its stronger amplitude-only formulation comes
from the coherent-orbital representation of Toeplitz multiplication.
The ground vector is allowed to move, and its energy is subtracted in
the stability argument. Adding a constant to the potential changes
only that energy. We give existential constants; the proof does not
optimize the disorder threshold.
\subsection{Historical context and the additional difficulty}
Exact parent Hamiltonians have been central to the mathematical study
of fractional quantum Hall states since the work of Trugman and
Kivelson~\cite{TK}. Haldane pseudopotentials also arise from suitable
short-range limits of repulsive interactions, as proved by Seiringer
and Yngvason~\cite{SY}. The spectral gap is a separate quantitative
question: identifying a zero polynomial does not control the energy
of vectors perpendicular to it. Rougerie's survey~\cite{Rougerie}
discusses the gap problem and its role in the response of the Laughlin
phase to perturbations.
Rigorous uniform gaps were established for truncated pseudopotentials
in thin-cylinder and thin-torus geometries by Nachtergaele, Warzel,
and Young~\cite{NWY} and Warzel and Young~\cite{WY}. The unperturbed
input used here concerns the full interaction on expanding round
spheres~\cite{Gap}. We state its exact normalization in
Theorem~\ref{thm:unperturbed}. In addition, we use and reproduce a
strengthening of its four-body comparison: certain positive blocks
that were discarded in obtaining the gap can be retained. This
stronger estimate supplies the energy-loss construction below.
Another line of work controls density within the Laughlin-correlated
class. Rougerie and Yngvason~\cite{RY}, followed by Lieb, Rougerie,
and Yngvason~\cite{LRY}, established incompressibility estimates for
Laughlin functions multiplied by analytic symmetric factors. The
sharp local density bound in~\cite{LRY} is averaged over mesoscopic
disks. Our zero-mode estimate controls general local observables,
with total cost proportional to the number of missing electrons;
it is then combined with an estimate for states outside the zero space.
Algebraic descriptions and recursions for pseudopotential zero modes
were developed in~\cite{CS,MONS}. We use the symmetric-polynomial
description and add quantitative bounds for its orthogonal branching.
General gap-stability theorems explain the role of local information.
Bravyi, Hastings, and Michalakis~\cite{BHM} treated stability under
sufficiently weak, suitably decaying local perturbations of
commuting-projector models with topological-order conditions. Michalakis and
Zwolak~\cite{MZ} proved stability for frustration-free lattice
Hamiltonians under local topological-order and local-gap hypotheses.
Subsequent infinite-volume formulations also retain local conditions
in addition to a bulk gap~\cite{NSYBulk}.
Those hypotheses contain more information than a uniform global gap.
For the spherical lowest Landau level, the local control needed here
is established through flux pinning and a particle-loss evolution.
The resulting relative-bound argument has the same purpose as local
block diagonalization in the lattice theory, with a different source
of control for the diagonal terms.
Our final continuation of the ground line uses the quasiadiabatic
construction of Hastings and Wen~\cite{HW} and the exact spectral-flow
framework of Bachmann, Michalakis, Nachtergaele, and Sims~\cite{BMNS}.
It is applied inside a gap bootstrap, where its gap hypothesis is
available. Locality is obtained using redundant localized frames.
This connects to the continuum fermionic frame method of Bachmann and
De Nittis~\cite{BDN}; we prove the finite-sphere estimates, including
comparisons at neighboring fluxes, that the present argument requires.
The propagation estimates follow the Lieb--Robinson method~\cite{LR}
and its fermionic form~\cite{NSY}.
\subsection{The proof and its reusable estimates}
The main difficulty is extensive perturbation size:
$\|V_{N,q}(\varphi)\|$ can be of order $N$. A norm bound on the
whole perturbation therefore gives a disorder interval that shrinks
with particle number. We instead compare suitably centered local
terms with the interaction energy. Two estimates make that comparison
possible.
\paragraph{Local observables in zero spaces.}
At fixed flux $q=3(N-1)$, write $Z_{n,q}=\ker H_{n,q}$.
For an interaction $W$ that is a bounded-density sum of uniformly
localized neutral terms, we prove
\begin{equation}\label{eq:intro-zero-bound}
\left|\langle\psi,W\psi\rangle
-\langle\Omega,W\Omega\rangle\right|
\le C_W(N-n),\qquad
\psi\in Z_{n,q},\quad\|\psi\|=1,
\end{equation}
where $\Omega$ is the normalized filled Laughlin vector.
This is Theorem~\ref{thm:charge-local-linear}; the constant is uniform
in flux. Neutral means that a term preserves
particle number; localization is defined precisely in
Section~\ref{sec:locality}. The linear dependence on $N-n$ is
essential.
To prove \eqref{eq:intro-zero-bound}, we read a zero mode from one
pole. Either the last orbital is empty, which removes one unit of
flux and records a flag, or contraction in that orbital removes an
electron and three units of flux. The branches are orthogonal and
give coordinates for the entire zero space. The number of flags is
the \emph{quasihole degree} $h=q+3-3n$. At the filled flux it equals
$3(N-n)$, three times the electron deficit; a one-hole sector below
means $h=1$, not one missing electron.
Pinning zeros at the
pole realizes the required change of flux. The uniform Fock gap
persists along that pinning deformation and gives local unitary
transport. A history of branch choices then bounds a local
observable by weighted flag values along the history. A first, slowly decaying
weight supplies enough information to close a second estimate with
an integrable weight. Rotation averaging yields
\eqref{eq:intro-zero-bound}.
\paragraph{Local descent of interaction energy.}
Extend the pair Hamiltonian to all particle sectors by
$H_q=\bigoplus_{n=0}^{q+1}H_{n,q}$, with $H_{0,q}=H_{1,q}=0$,
and let $\mathcal N$ act as multiplication by $n$ on the $n$-particle
sector. On this Fock space we construct local particle-loss operators
$J_y$ such that (Theorem~\ref{thm:local-energy-descent})
\begin{equation}\label{eq:intro-descent}
\int J_y^*J_y\,dy=H_q,\qquad
\int J_y^*H_qJ_y\,dy\le H_q^2-cH_q.
\end{equation}
Each jump removes between two and a fixed number of particles.
The associated completely positive evolution decreases interaction
energy exponentially, and its expected particle loss is bounded by
the initial energy. The construction first removes a pair and then
partially empties a fixed neighborhood. A rotation average shows
that the remaining pair correlations are paid for by the retained
four-body blocks. This also proves a uniform energy cost for
particle excess above Laughlin filling.
\paragraph{From descent to perturbation theory.}
For a small fixed $\mu>0$, the operator
$G=H_q+\mu(N-\mathcal N)$ controls both interaction energy and
particle-number deficit or excess. If each neutral local term
$A_x$ annihilates $\Omega$, following its expectation through the
loss evolution gives
\[
\pm\sum_xA_x\le CG.
\]
The proof closes a quadratic inequality for the best relative-bound
constant, using \eqref{eq:intro-zero-bound} at the limiting zero
state (Proposition~\ref{prop:relative-bound}). This implication from
local energy descent and linear electron-deficit
control is useful independently of the particular flux construction.
Finally spectral transport makes the derivative of the pulled-back
perturbed Hamiltonian termwise centered in this sense. On the
$N$-particle sector $G=H_q$, so integration gives a uniform lower
bound above the transported ground state.
Section~\ref{sec:prelim} fixes the algebra and zero-mode conventions.
Sections~\ref{sec:locality}--\ref{sec:charge} establish the local
zero-mode estimate. Section~\ref{sec:energy} constructs the loss
evolution, and Section~\ref{sec:stability} proves the relative bound
and completes Theorem~\ref{thm:main}. Appendix~\ref{app:retained-blocks}
contains the retained-block comparison and its finite arithmetic data.
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/01-introduction.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/02-preliminaries.tex ====
\section{Lowest Landau level and zero modes}\label{sec:prelim}
We fix the normalization of the interaction before discussing locality.
The exterior-algebra formulation is useful because both the pinned
Hamiltonians and the particle-loss evolution change particle number.
Throughout the paper, constants are independent of flux and particle
number unless an explicit dependence is indicated. A statement for large
flux means that its threshold is independent of the particle sector.
\subsection{Coherent orbitals and pair annihilators}
Let $q\ge1$ be an integer. The sphere $S_q$ has radius $\sqrt{q/2}$,
area $2\pi q$, and magnetic field one. The lowest Landau level $U_q$ is
the spin-$q/2$ representation of $SU(2)$. We use homogeneous polynomials
of degree $q$ in spinor coordinates $(z_0,z_1)$, with invariant inner
product normalized so that
\[
e_j=\binom qj^{1/2}z_0^{q-j}z_1^j,
\qquad 0\le j\le q,
\]
is an orthonormal basis. This normalization identifies $U_q$ unitarily
with the physical lowest Landau level; it does not rescale any operator.
Relative to a chosen north pole, $j=0$ is the north orbital and $j=q$
the south orbital.
Write $k_x$ for the unit coherent vector at $x\in S_q$, defined up to
a phase by the Riesz vector for evaluation at $x$. Its components in
the axis basis have squared moduli
\begin{equation}\label{eq:binomial-coherent}
|\langle e_j,k_x\rangle|^2
=\binom qj (1-m/q)^{q-j}(m/q)^j,
\qquad m=q\sin^2(\theta/2).
\end{equation}
Schur's Lemma and the trace give the resolution
\begin{equation}\label{eq:coherent-resolution}
\kappa_q\int_{S_q}|k_x\rangle\langle k_x|\,dA(x)=I_{U_q},
\qquad \kappa_q=\frac{q+1}{2\pi q}.
\end{equation}
In particular the density $\kappa_q$ is uniformly bounded. For a bounded
measurable real function $\varphi$, the Toeplitz operator is
\begin{equation}\label{eq:toeplitz-resolution}
T_q(\varphi)=\kappa_q\int_{S_q}
\varphi(x)|k_x\rangle\langle k_x|\,dA(x).
\end{equation}
Indeed the quadratic form on the right is the integral of $\varphi$
times the product of the two evaluated lowest-level sections, which is
the quadratic form of compression of multiplication by $\varphi$.
The fermionic Fock space and number operator are
\[
\mathcal F_q=\bigoplus_{n=0}^{q+1}\bigwedge^n U_q,
\qquad \mathcal N\big|_{\wedge^n U_q}=nI.
\]
Increasing wedges of orthonormal vectors have norm one. For
$a\in\bigwedge^k U_q$, let $B(a)$ be the adjoint of left wedge
multiplication by $a$. Thus $B$ is conjugate-linear,
$B(a\wedge b)=B(b)B(a)$, and $c_j=B(e_j)$ satisfy the canonical
anticommutation relations. For a one-particle vector $f$ we also write
$c(f)=B(f)$. For an operator on $\bigwedge^k U_q$, its
lift to Fock space is the linear extension of
\begin{equation}\label{eq:lift}
\mathcal L_k(|a\rangle\langle b|)=B(a)^*B(b).
\end{equation}
The lift preserves positivity and rotations. It vanishes on sectors
with fewer than $k$ particles and equals its argument on the $k$-particle
sector.
Let $V_q\subset\bigwedge^2 U_q$ be the spin-$(q-1)$ summand. Its
orthonormal axis basis $v_p$, $0\le p\le2q-2$, can be written as
\begin{equation}\label{eq:pair-rows}
v_{b-1}=Z_{q,b}^{-1/2}
\sum_{\substack{0\le i=Stealth,font=\small]
\begin{scope}
\node[anchor=west] at (-.1,2.5) {(a) A window in orbital index};
\draw[->] (0,.35)--(4.4,.35) node[right] {$j$};
\draw[blue!65!black,thick]
(.3,.35)..controls (1,.35) and (1.05,1.65)..(2.15,1.65)
..controls (3.25,1.65) and (3.3,.35)..(4,.35);
\draw[densely dashed,gray] (2.15,.3)--(2.15,1.85);
\node[above] at (2.15,1.85) {$\xi_a$};
\draw[<->] (.5,-.05)--(3.8,-.05)
node[midway,below] {index width $O(w_a)$};
\node[below] at (2.15,.35) {$m_a$};
\node[align=center] at (2.15,-.95)
{$L_a\asymp w_a$ Fourier phases};
\end{scope}
\draw[->,thick] (4.95,1.05)--(5.8,1.05);
\begin{scope}[shift={(8.1,1.05)}]
\node at (0,1.45) {(b) Slots on a physical latitude};
\draw[gray!70] (0,0) circle (1.18);
\draw[gray!55,densely dashed] (-1.08,.48)
arc[start angle=180,end angle=0,x radius=1.08,y radius=.29];
\draw[blue!65!black] (-1.08,.48)
arc[start angle=180,end angle=360,x radius=1.08,y radius=.29];
\foreach \a in {15,45,...,345}
{\fill[blue!65!black] ({1.08*cos(\a)},{.48+.29*sin(\a)}) circle (.035);}
\fill[red!70!black] (.54,.229) circle (.045);
\draw[red!60!black,densely dashed] (.54,.229) circle (.18);
\draw[red!35!black,densely dashed] (.54,.229) circle (.31);
\draw[->,red!60!black] (1.65,-.25)--(.76,.13);
\node[align=left,anchor=west] at (1.25,-.57)
{rapidly localized\\physical atom};
\node[align=center] at (0,-1.95)
{angular spacing $O(w_a^{-1})$\\physical spacing $O(1)$};
\end{scope}
\end{tikzpicture}
\caption{The index window has width comparable to $w_a$; its Fourier
phases place a comparable number of slots around the latitude.
Together with unit-order radial spacing, this gives bounded slot
density in physical distance. The drawing is schematic: dashed
circles indicate rapidly decaying tails, not compact spatial support.}
\label{fig:local-slots}
\end{figure}
We need two quantitative consequences of this construction. Let $k_y$
be a normalized coherent orbital centered at $y$.
\begin{lemma}[Uniform frame localization]\label{locality:frame}
For every $D$ there is $C_D$ such that
\begin{equation}
|\langle z_x,k_y\rangle|\leq C_D(1+d(x,y))^{-D}.
\label{eq:frame-coherent-decay}
\end{equation}
For two frames constructed as above, possibly with different axes, their
atoms satisfy the same bound with $k_y$ replaced by an atom centered at
$y$. For each fixed integer $J$, \eqref{eq:frame-coherent-decay} also
holds, with constants depending on $J$, for every rotated polar orbital
$e_j(y)$ with $0\leq j\leq J$.
\end{lemma}
\begin{proof}
Choose the axial gauge and azimuth convention in which the coefficient
of $e_j$ in $k_y$ is $e^{ij\phi_y}p_{q,m}(j)^{1/2}$. Its modulus is
\[
p_{q,m}(j)^{1/2},\qquad
p_{q,m}(j)=\binom qj(m/q)^j(1-m/q)^{q-j}.
\]
They obey, after extension by zero outside $[0,q]$,
\begin{equation}
|\Delta^l p_{q,m}(j)^{1/2}|
\leq C_{D,l}w_q(m)^{-1/2-l}
\left(1+\frac{|j-m|}{w_q(m)}\right)^{-D}.
\label{eq:binomial-symbol}
\end{equation}
Here and below finite differences may shift the argument by a fixed
number of indices, which only changes the constant. We include a
verification to specify uniformity near the ends. First put $p=m/q$
and $\sigma^2=qp(1-p)$, so
$w_q(m)^2=1+q\sigma^2/(q+1)\asymp1+\sigma^2$.
Fourier inversion of a binomial law of variance $\sigma^2$ gives
\[
\sup_j p_{q,m}(j)\leq\frac1{2\pi}\int_{-\pi}^{\pi}
\bigl(1-4p(1-p)\sin^2(t/2)\bigr)^{q/2}\,dt
\leq \frac C{1+\sigma}.
\]
For $00$, define
\begin{equation}
\|A\|_{x,l}=\|A\|+
\sup_{r\geq1}(1+r)^l
\inf_{A_r\in\mathfrak A(B_r(x))}\|A-A_r\|.
\label{locality:ball-norm}
\end{equation}
We call $A$ rapidly local at $x$ if this is finite for every $l$,
with bounds uniform in the volume under consideration. An interaction
is a family $A_x$ integrated against a measure whose mass in every
unit ball is bounded. A bound of \emph{size} $a(x)$ means
$\|A_x\|_{x,l}\leq C_l a(x)$ for every $l$. A positive function $a$
is called tempered if, for fixed $C,\kappa$,
\begin{equation}
a(x)\leq C a(y)(1+d(x,y))^\kappa.
\label{eq:tempered-weight}
\end{equation}
The constants in estimates involving $a$ may depend on $C,\kappa$.
Powers and products of $u,v,w$ are examples.
Taking near-best approximations at radii $2^k$ and subtracting successive
ones gives a ball decomposition
\begin{equation}
A=\sum_{k\geq0}A^{(k)},\qquad
A^{(k)}\in\mathfrak A(B_{2^{k+1}}(x)),\qquad
\|A^{(k)}\|\leq C_l\|A\|_{x,l}2^{-kl}.
\label{eq:ball-decomposition}
\end{equation}
Conversely such a decomposition implies the approximation bound, with
any slightly smaller exponent. We use this elementary equivalence
to pass between operators and interactions on balls.
An observable supported initially on a large ball needs a separate
convention. A family has \emph{core radius $r$ and amplitude $a$} if
\begin{equation}
\|A\|\leq Ca,\qquad
\inf_{A_R\in\mathfrak A(B_R(x))}\|A-A_R\|
\leq C_Da(1+R)^{-D}\quad(R\geq C_*r),
\label{eq:local-core-tail}
\end{equation}
where the geometric constant $C_*$ is independent of $D$.
The amplitude may contain a specified power of $r$. This convention
does not assert that every centered norm \eqref{locality:ball-norm}
is bounded by $Ca$ without a further radius factor.
\begin{lemma}[Shells outside a fixed core]\label{locality:core-shells}
If \eqref{eq:local-core-tail} holds with $r\geq1$, there is a
decomposition $A=\sum_{\nu\geq0}A_\nu$ with
$A_\nu\in\mathfrak A(B_{C_*2^{\nu+1}r}(x))$ and
$\|A_\nu\|\leq C_Da2^{-\nu D}$ for every $D$.
Consequently, for each fixed $B\geq0$,
\begin{equation}
\sum_{\nu\geq0}(C_*2^{\nu+1}r)^B\|A_\nu\|
\leq C_Ba r^B.
\label{eq:local-core-moment}
\end{equation}
\end{lemma}
\begin{proof}
Take approximants at radii $C_*2^\nu r$ and telescope, starting
with the first approximant as the core. The core norm is $Ca$;
the other differences are bounded by the two adjoining errors in
\eqref{eq:local-core-tail}. Sum with any $D>B+1$ to obtain
\eqref{eq:local-core-moment}.
\end{proof}
\begin{lemma}[Products, commutators, and weighted sums]
\label{locality:calculus}
The following bounds are uniform over the slot systems above.
\begin{enumerate}
\renewcommand{\labelenumi}{\textup{(\roman{enumi})}}
\item Products of operators rapidly local at the same center, and
adjoints, preserve rapid locality. If $A,B$ are
centered at $x,y$, respectively, with bounded local norms, then
$\|[A,B]_{\mathrm{gr}}\|\leq C_D(1+d(x,y))^{-D}$ for every $D$.
\item If $A$ is rapidly local at $x$ and a rapidly local interaction
$K_y$ has tempered size $a(y)$, then
$[\int K_y\,dy,A]_{\mathrm{gr}}$ is rapidly local at $x$, of size
$a(x)$ times the local bounds of $A$.
\item Suppose $A$ is even, $\|A\|_{x,l}\leq1$, and $J_y$ has bounded
rapid local norms. With $D=1+d(x,y)$ and $C_{xy}=[A,J_y]$,
\begin{equation}
\|C_{xy}\|\leq C D^{-l},\qquad
\|C_{xy}\|_{x,l}\leq C,\qquad
\|C_{xy}^*C_{xy}\|_{x,l}\leq C D^{-l}.
\label{eq:commutator-square-locality}
\end{equation}
\end{enumerate}
For an operator initially supported in $B_r(x)$, the corresponding
core estimates cost a fixed polynomial in $r$. At distances larger
than a fixed multiple of $r$, any prescribed decay order is available.
\end{lemma}
\begin{proof}
The product estimate follows from
\[
\|AB-A_rB_r\|
\leq\|A-A_r\|\|B\|+\|A_r\|\|B-B_r\|.
\]
For the commutator use approximations of radius less than $d(x,y)/3$;
their graded commutator vanishes. For the weighted assertion expand
both factors as in \eqref{eq:ball-decomposition}. Terms with disjoint
balls vanish, while intersecting balls of radii $R,S$ require
$d(x,y)\leq R+S$. The number or measure of their possible centers is
$O((1+R+S)^2)$, and \eqref{eq:tempered-weight} costs at most
$C(1+R+S)^\kappa$. To obtain an output moment of order $D$, bound
these costs by $C(1+R+S)^{D+\kappa+2}$ and choose input decay order
larger than $D+\kappa+6$. The two geometric sums then converge.
This argument also permits assigning each output term to the center
of either input; that convention will be used for differences of
interactions.
For \eqref{eq:commutator-square-locality}, the first estimate follows
by the disjoint-ball argument at exponent $l$. For approximation
radii $r\leq3D$, use zero as an approximant to $C_{xy}$, giving
$r^l\|C_{xy}\|\leq C$. For $r>3D$, approximate $A$ in $B_{r/3}(x)$
and $J_y$ in $B_{r/3}(y)$; their commutator is supported in $B_r(x)$
and has error $Cr^{-l}$. Thus the second estimate holds. Apply the
product estimate with the small norm $\|C_{xy}\|\leq CD^{-l}$ on one
factor to obtain the third estimate. Finally a ball $B_r(x)$ contains
$O((1+r)^2)$ slots, and tempered ratios within it cost
$O((1+r)^\kappa)$. The same sums give the stated polynomial core
costs. For tails beyond $Cr$, the distance from the original ball
is comparable to the tail radius, so increasing a tail order does not
increase the core-volume exponent.
\end{proof}
\begin{corollary}[The physical interactions]\label{locality:basic-interactions}
\label{locality:toeplitz}
The unperturbed Hamiltonian $H_q$ and the Fock lift of any bounded
real scalar symbol $\varphi$ have physical, neutral, Hermitian rapid
interactions of uniform sizes $C_D$ and $C_D\|\varphi\|_\infty$,
respectively.
\end{corollary}
\begin{proof}
Coefficient localization gives operator-norm localization directly.
If $E_R$ is the one-particle projection onto slots in $B_R(x)$, the
CAR identity $\|c(f)\|=\|f\|_2$ gives
\[
\|c(\mathsf S_q f)-c(E_R\mathsf S_q f)\|
=\|(I-E_R)\mathsf S_q f\|_2.
\]
For $f=k_x$ or a bounded polar mode at $x$,
Lemma~\ref{locality:frame} and the slot count
\eqref{eq:slot-volume} make the right side at most
$C_D(1+R)^{-D}$ for every $D$; the approximating annihilator is
supported in $B_R(x)$.
The coherent resolution gives
\[
d\Gamma(T_q(\varphi))=\frac{q+1}{2\pi q}
\int_{S_q}\varphi(x)c^*(k_x)c(k_x)\,dA(x).
\]
For $H_q$, the highest pair vector is $v_0=e_0\wedge e_1$.
Schur's Lemma on the spin-$(q-1)$ pair space and its dimension
$2q-1$ give, with Haar mass one,
\begin{equation}
H_q=(2q-1)\int_{SU(2)}B(gv_0)^*B(gv_0)\,dg.
\label{eq:coherent-pair-resolution}
\end{equation}
The product $B(gv_0)=c(ge_1)c(ge_0)$ is rapidly local at the
rotated pole by Lemmas~\ref{locality:frame} and
\ref{locality:calculus}. Its phase along the stabilizer disappears
in its square, so the center measure on the sphere has density
$(2q-1)/(2\pi q)$. This and $(q+1)/(2\pi q)$ are uniformly bounded.
The same two lemmas localize $c^*(k_x)c(k_x)$. No derivative of
$\varphi$ enters either the representation or its bound.
\end{proof}
\subsection{Propagation and spectral filters}
We next establish that a time filter preserves this local calculus.
The relevant propagation bound is needed only with arbitrary polynomial
decay, which permits a direct truncation argument. The underlying
commutator iteration is the Lieb--Robinson method
\cite{LR}, in its graded fermionic form \cite{NSY}; its use with time filters is the locality
mechanism behind quasi-adiabatic continuation and spectral flow
\cite{HW,BMNS}.
\begin{lemma}[Propagation of local observables]\label{locality:dynamics}
Let $K$ be self-adjoint and even, with a rapidly local interaction of
uniform size. Write $\tau_t^K(A)=e^{itK}Ae^{-itK}$. For each $D$
there are $D'$ and $M_D$, independent of volume, such that
\begin{equation}
\|\tau_t^K(A)\|_{x,D}
\leq C_D(1+|t|)^{M_D}\|A\|_{x,D'}.
\label{eq:polynomial-propagation}
\end{equation}
The assertion holds also for time-dependent generators with the same
uniform bounds. In particular evolution over a bounded parameter
interval preserves rapid locality. If $A$ is supported in $B_r(x)$,
the error in approximating $\tau_t^K(A)$ on $B_R(x)$, for
$R\geq C(r+(1+|t|)^4)$, is bounded by
$C_D\|A\|(1+r)^2R^{-D}$.
\end{lemma}
\begin{proof}
Use \eqref{eq:ball-decomposition} to write $K$ as a sum of terms on
balls. Taking Hermitian and even parts makes each term Hermitian
and even without changing the total or its estimates. First retain
only terms of diameter at most $\ell$. For
this truncated interaction define
\[
M_{ab}=2\sum_{X\ni a,b}\|K_X\|.
\]
Uniform summability, including the number of sites in $X$, gives
$\sup_a\sum_b M_{ab}e^{d(a,b)/\ell}\leq C$; indeed each retained
distance is at most $\ell$, and the ball-volume costs are polynomial.
The iterated commutator inequality, with internal evolution removed
unitarily at each step, therefore gives
\begin{equation}
\|[\tau_t^{K_{\leq\ell}}(A),B]_{\mathrm{gr}}\|
\leq C\|A\|\|B\|\,|X|\,|Y|
e^{C|t|-d(X,Y)/\ell}
\label{eq:truncated-LR}
\end{equation}
for $A\in\mathfrak A(X)$ and $B\in\mathfrak A(Y)$.
For completeness, the $n$th iterated integral contributes $|t|^n/n!$
times a chain of $n$ matrix factors $M$. Multiplication by
$e^{d(X,Y)/\ell}$ is bounded by the product of the exponential
weights along the chain. Summing the intermediate sites gives
$C^n$, and summing $n$ gives \eqref{eq:truncated-LR}. Evenness of
the generator makes the same calculation valid for odd $A,B$ with
the graded commutator.
Restore the removed terms using Duhamel's formula. For each removed
ball term use the smaller of the trivial commutator bound and
\eqref{eq:truncated-LR}. The centers within distance
$C\ell(1+|t|)$ of $X$, together with the radius of that term, occupy
at most a polynomial volume. Outside that region the exponential
bound is summable. Consequently, for every $s$, the restoration
error is at most
\begin{equation}
C_s\|A\||X|(1+|t|)
(1+r+\ell(1+|t|))^4\ell^{-s},
\label{eq:range-restoration}
\end{equation}
when $X\subset B_r(x)$. To see the power allowance explicitly, a
removed term of radius $a$ contributes its norm times at most
$C(1+r+\ell(1+|t|)+a)^2$ possible centers and at most
$C(1+a)^2$ sites. Its arbitrarily high radius moment makes the sum
over $a>\ell/2$ bounded by the right side of
\eqref{eq:range-restoration}, after increasing the input moment by
$s+6$.
Now let $R\geq C(r+(1+|t|)^4)$ and choose $\ell=R^{1/3}$.
The truncated evolution differs from the evolution generated by its
terms contained in $B_R(x)$ by
$C\|A\||X|\operatorname{poly}(R)e^{C|t|-cR^{2/3}}$.
This is again Duhamel's formula and \eqref{eq:truncated-LR}, summed
over the boundary terms. Both restoration errors are bounded by
$C_D\|A\||X|R^{-D}$, choosing $s$ sufficiently large in
\eqref{eq:range-restoration}. This supplies an approximation in
$\mathfrak A(B_R(x))$. At smaller radii use the norm bound
$\|\tau_t(A)\|=\|A\|$. Since $|X|\leq C(1+r)^2$, this proves the
assertion for supported $A$ and then, by
\eqref{eq:ball-decomposition}, \eqref{eq:polynomial-propagation}.
The proof uses only uniform bounds on the interaction at each time,
so also proves the time-dependent assertion.
\end{proof}
\begin{lemma}[Time filters]\label{locality:filters}
Suppose $F\in L^1(\mathbb R)$ and
$\int(1+|t|)^j|F(t)|\,dt<\infty$ for every $j$. Under the hypotheses
of Lemma~\ref{locality:dynamics},
\begin{equation}
\mathcal T_{F,K}(A)=\int_{\mathbb R}F(t)\tau_t^K(A)\,dt
\label{eq:time-filter}
\end{equation}
is rapidly local whenever $A$ is, with uniform bounds. The same is
true for a finite measure consisting of such a function and a mass at
zero. Number grade and physicality are preserved when $K$ is neutral
and physical. Suitable symmetry of $F$ preserves adjoints.
\end{lemma}
\begin{proof}
Integrate \eqref{eq:polynomial-propagation}. The approximation norm
is a seminorm up to its operator-norm summand, so the integral of local
approximants gives the required estimate. The remaining assertions
follow directly by commuting the evolution with gauge transformations,
the physical algebra, and adjoints.
\end{proof}
The frequency functions used below are smooth, vanish on an interval
about zero, and have tails proportional to $1/\omega$ on one or both
half-lines. Their inverse Fourier transforms satisfy the hypotheses
of Lemma~\ref{locality:filters}. Here is a convenient verification.
Every positive-order derivative of such a multiplier is integrable,
so integration by parts gives arbitrary powers of decay for $|t|\geq1$.
For $0<|t|<1$, split the frequency integral at $|\omega|=|t|^{-1}$.
The inner portion is $O(1+|\log|t||)$, and one integration by parts
on the outer portion is $O(1)$. Thus the possible singularity at
zero is integrable. A smooth compactly supported multiplier has a
Schwartz kernel. These facts cover both spectral transport and
the filters that retain only small energy differences.
\begin{lemma}[Weighted differences]\label{locality:difference}
Let $K,K'$ satisfy Lemma~\ref{locality:dynamics} uniformly, and assume
$K-K'$ has a rapidly local interaction of tempered size $a(z)$.
For a rapidly local $A$ centered at $x$,
\begin{equation}
\|\tau_t^K(A)-\tau_t^{K'}(A)\|_{x,D}
\leq C_Da(x)(1+|t|)^{M_D}\|A\|_{x,D'}.
\label{eq:weighted-evolution-difference}
\end{equation}
The same conclusion holds after an all-moments time filter, and for
differences of bounded-parameter evolutions. If the input itself
changes by local size $b(x)$, its separate contribution is $Cb(x)$.
All estimates retain the product of a local input size and $a(x)$.
If $A\in\mathfrak A(B_r(x))$, put $s=\kappa+2$, with $\kappa$ from
\eqref{eq:tempered-weight}. The difference has operator norm at most
\begin{equation}
C a(x)\|A\|(1+r)^s|t|(1+|t|)^{4s}.
\label{eq:difference-core}
\end{equation}
For $R\geq C_*(1+r)$, with a fixed geometric constant $C_*$, it has
an approximation supported in $B_{r+R}(x)$
with error at most
\begin{equation}
C_Da(x)\|A\|(1+r)^s
(1+|t|)^{4D+4s+1}(1+R)^{-D}.
\label{eq:difference-tail}
\end{equation}
Thus the power of the initial radius is independent of the tail order.
If the differing interaction vanishes throughout a ball of radius $d$
about $x$, the bounds for a fixed rapidly local input gain arbitrary
inverse powers of $1+d$.
\end{lemma}
\begin{proof}
Use the exact formula
\[
\tau_t^K(A)-\tau_t^{K'}(A)
=i\int_0^t\tau_s^K
([K-K',\tau_{t-s}^{K'}(A)])\,ds.
\]
Apply Lemma~\ref{locality:dynamics} to the inside observable,
Lemma~\ref{locality:calculus}(ii) to the commutator, and
Lemma~\ref{locality:dynamics} once more to the outside evolution.
The tempered inequality \eqref{eq:tempered-weight} is precisely what
allows the insertion at $z$ to be charged to $a(x)$. All time costs
are polynomial and therefore integrable against the specified
filters. The time-dependent version follows from its identical
Duhamel formula. Linearity handles a changed input.
We give the additional radius bookkeeping for
\eqref{eq:difference-core}--\eqref{eq:difference-tail}.
For a ball decomposition about $x$, use the weighted sum
$\sum_R(1+R)^p\|A_R\|$. Lemma~\ref{locality:dynamics} bounds its
evolved value by $C_p(1+|t|)^{4p}$ times its initial value. Indeed,
for a radius-$r$ input, begin a dyadic decomposition at
$Q=C(1+r+(1+|t|)^4)$. The core contributes $C\|A\|Q^p$;
the subsequent shells contribute at most
$C_M\|A\|(1+r)^2\sum_{R\geq Q}R^{p-M}$.
Choosing $M>p+2$ bounds this by $C_p\|A\|Q^p$.
The weighted insertion estimate in the proof of
Lemma~\ref{locality:calculus} costs $s=\kappa+2$ powers of the input
radius. Duhamel at $p=0$ proves \eqref{eq:difference-core}.
For the tail first take $|t|\leq cR^{1/4}$ in the Duhamel integrand,
with $c>0$ a sufficiently small fixed constant; bounded $R$ are
covered by \eqref{eq:difference-core}. Fix also a small $\varepsilon>0$.
Choose $\varepsilon,c$ and then $C_*$ so that the propagation lemma
applies both from radius $r$ to $r+\varepsilon R$ and from radius
$r+3\varepsilon R$ to $r+R$. This requires only fixed constants:
if $C$ is the constant in that lemma, take
$\varepsilon<(100C)^{-1}$, $c^4<\varepsilon/(10C)$, and
$C_*>100C/\varepsilon$.
Cut the inner evolved observable at radius $r+\varepsilon R$. Its remaining
shells have weighted sum of order $s$ at most
$C_M\|A\|(1+r)^2R^{s-M}$, by the short-time bound in
Lemma~\ref{locality:dynamics}; their commutator with the insertion
has the same bound times $Ca(x)$. In the retained part, discard
insertion terms of radius greater than $\varepsilon R$. Their arbitrary
radius moments give an error $C_Ma(x)\|A\|R^{-M}$.
The remaining commutator is supported in $B_{r+3\varepsilon R}(x)$ and has
norm at most $Ca(x)\|A\|R^s$. Evolving it in the outside factor
of Duhamel and using the short-time propagation estimate gives
an approximation on $B_{r+R}(x)$ with error
$C_Ma(x)\|A\|R^{s+2-M}$.
Choose $M$ in each of these three bounds larger than the requested
order plus $s+4$, and integrate over an interval of length at most
$R^{1/4}$. This gives the stated tail bound for short times.
For $|t|>cR^{1/4}$, use \eqref{eq:difference-core} and
$(1+|t|)^{4D}(1+R)^{-D}\geq c_D$.
Finally suppose an insertion ball of radius $a$ can occur only if
its center $z$ satisfies $d(x,z)+a\geq d$. If that ball meets an
input shell of radius $R$, then $d\leq R+2a$. Inserting
$(1+d)^{-M}(1+R+2a)^M$ into the shell summation proves the last
assertion, after increasing the input moments. This includes changes
supported outside a common comparison region.
\end{proof}
To specify physical compression, let $S:U_q\to K_S$ and
$T:U_q\to K_T$ be two slot analysis isometries. Write $J_S=\Gamma(S)$
for the vacuum-complement embedding and $\iota_T$ for the embedding of
the physical CAR algebra into the output slots, acting as the identity
on complementary modes. The map that we estimate is
\begin{equation}
\mathcal C_{T\leftarrow S}(A)
=\iota_T(J_S^*AJ_S).
\label{eq:physical-compression-map}
\end{equation}
When $T=S$ this is compression followed by identity extension; it is
a unital contractive completely positive map. On physical input
operators it is simply change of frame.
\begin{lemma}[Compression, changes of frame, and smooth functions]
\label{locality:functional-calculus}
The map \eqref{eq:physical-compression-map}, for the frames of
Lemma~\ref{locality:frame}, preserves rapid locality. An
operator supported in $B_r(x)$ remains localized about that ball,
with polynomial core costs and arbitrary inverse-power tails outside
$B_{Cr}(x)$. If $A=A^*$ is bounded and rapidly local, and $f$ is
smooth on a neighborhood of its spectrum, then $f(A)$ is rapidly
local. The constants depend on finitely many local bounds and
derivatives for each requested decay order.
\end{lemma}
\begin{proof}
Put two slot spaces side by side. If $S,T$ are their analysis
isometries, the partial isometry $TS^*$ has rapidly decaying matrix
entries by Lemma~\ref{locality:frame}. On their direct sum, the
anti-self-adjoint one-particle operator
\[
\begin{pmatrix}0&-ST^*\\TS^*&0\end{pmatrix}
\]
rotates the two physical subspaces into each other through angle
$\pi/2$ and acts as zero on their complements. Its second
quantization is a bounded-strength, rapidly local quadratic
interaction: absolute row sums and every distance moment are bounded
by \eqref{eq:slot-volume}. Lemma~\ref{locality:dynamics} applies
over this fixed angle. Conjugate $A\otimes I$ by this rotation and
take the vacuum expectation in the entire first slot copy, retaining
the entire second copy. On a CAR monomial, the physical components
have moved from $S U_q$ to $T U_q$, while the complementary components
in the first copy are evaluated in their vacuum. The resulting map
is exactly \eqref{eq:physical-compression-map}, including for odd
monomials; linearity gives the identity for every operator. Vacuum
expectation is contractive and preserves support in the doubled slot
geometry. This proves the assertion, and $S=T$ gives re-embedded
physical compression. In particular no projection onto the output
complementary vacuum is left in the resulting operator.
For the functional-calculus assertion extend $f$ smoothly to a compactly
supported function on $\mathbb R$. If $A_r$ approximates $A$ locally,
its Hermitian part does so with the same error. The Fourier formula
and Duhamel's identity give
\[
\|f(A)-f(A_r)\|
\leq\left(\int_{\mathbb R}|t|\,|\widehat f(t)|\,dt\right)
\|A-A_r\|.
\]
Since $f(A_r)$ belongs to the same local algebra, the approximation
bounds follow. A constant value of $f$ contributes only a scalar
identity, which is local in every ball.
\end{proof}
\subsection{Pair rows and diagonal symbols}
The coherent orbit representations already prove locality of the
unperturbed Hamiltonian and bounded scalar perturbations. Pinning zeros
will deform the pair coefficients and remove full rotation invariance.
To control those deformations and compare neighboring fluxes, we now
prove a local calculus directly for angular-momentum rows and diagonal
orbital symbols.
Write $Q_b=B_{b-1}$ for the normalized pair annihilator with index
sum $b$ in \eqref{eq:pair-rows}, $1\leq b\leq2q-1$. Define its
ordered coefficients by
\begin{equation}
a_b(i)=\frac{(b-2i)\sqrt{\binom qi\binom q{b-i}}}{\sqrt{S_b}},
\qquad
S_b=\binom{2q}{b}\frac{b(2q-b)}{2q-1}.
\label{eq:pair-symbol-normalization}
\end{equation}
In this formula the sum for $S_b$ is over ordered $i$. With a fixed
choice of annihilator sign,
$Q_b=2^{-1/2}\sum_{i+j=b}a_b(i)c_jc_i
=\sqrt2\sum_{i0$ is tempered with exponent $\kappa$ and
$\mathfrak s_K(a;m)\leq C_KA(m)$ for every integer $K\geq0$.
Then $D_q(a)=\sum_j a(j)c_j^*c_j$ has a physical, neutral, Hermitian
interaction of size $A(m)$. For each output approximation order $D$,
only the seminorms through
$K_D=\lceil4D+4\kappa+40\rceil$ are needed. The construction and
the estimate are linear in the symbol, so the same assertion holds
for differences of symbols.
\end{lemma}
\begin{proof}
Insert the analysis map on both sides of the diagonal one-particle
matrix. The slot matrix elements are
\[
(L_{a_1}L_{a_2})^{-1/2}\sum_j
a(j)\xi_{a_1}(j)\xi_{a_2}(j)
e^{ij(\phi_2-\phi_1)}.
\]
The two radial windows must overlap, so their widths are comparable
and their radial physical separation is bounded. Taking $K$
finite differences of the summand and summing by parts gives the
bound $C_K A(m_1)(1+d(x_1,x_2))^{-K}$. The normalization cancels
the length of the summation interval. At bounded-width end windows
the same statement follows from finite sums; all involved slots are
inside a bounded polar ball.
Assign the quadratic monomial to $x_1$, and pair it with its adjoint
to obtain Hermitian terms. Vacuum-compress each assigned term using
\eqref{eq:physical-compression-map}. Compression fixes the physical
total $D_q(a)$, so the resulting decomposition is still exact and
now each term is physical. A monomial joining points at distance
$R$ is supported in $B_{1+R}(x_1)$; the compression lemma bounds its
approximation norm of order $D$ by $C_D(1+R)^{D+2}$.
The slot count \eqref{eq:slot-volume}, the tempered ratios, and
$K>D+\kappa+6$ therefore make the assigned absolute sum converge
with the required $D$th moment. The stated value of $K_D$ more than
covers these losses and the fixed finite differences of the windows.
The grade and reality are preserved by compression. Every step is
linear before pairing adjoints, which also proves the difference
assertion.
\end{proof}
We record explicitly how the symbol criterion applies after subtracting
an affine function. Let $\rho(j,m)$ denote meridional distance between
the latitudes of indices $j,m$, and fix a center $x$ at index $m$.
Suppose there are $\beta>0$, $\kappa\geq0$, and constants $C_k$ such
that, for every $k\geq2$ and $j\in[0,q]$,
\begin{equation}
w_q(j)^k|a^{(k)}(j)|
\leq C_k\beta(1+\rho(j,m))^\kappa.
\label{eq:affine-symbol-hypothesis}
\end{equation}
Define $\widetilde a_x(j)=a(j)-a(m)-a'(m)(j-m)$.
Taylor's formula and \eqref{eq:local-scale-ratios} imply
\begin{equation}
\mathfrak s_K(\widetilde a_x;m_y)
\leq C_K\beta(1+d(x,y))^{\kappa+8}.
\label{eq:affine-symbol-size}
\end{equation}
Here is the bound for the two orders not already present in
\eqref{eq:affine-symbol-hypothesis}. The index excursion between
$m$ and $j$ is at most a constant times
$w_q(j)(1+\rho(j,m))^2$, and the ratio of $w_q(j)$ to the minimum
of $w_q$ on that meridian segment is polynomially bounded by
$(1+\rho(j,m))^2$. Integrating $a''$ once or twice therefore bounds
$w_q(j)|\widetilde a_x'(j)|$ and $|\widetilde a_x(j)|$ by the
right side of \eqref{eq:affine-symbol-size}. On each window
the widths are comparable and meridional distance changes by a
bounded amount, proving the displayed seminorm bound.
Lemma~\ref{locality:one-body-symbol} and the weighted commutator
estimate now show that $[D_q(\widetilde a_x),O_x]$ has rapid local
size $C\beta$ whenever $O_x$ has bounded rapid local norms at $x$.
In applications one can take $\beta$ comparable to
$w_q(m)^2|a''(m)|$ and verify
\eqref{eq:affine-symbol-hypothesis} directly. For an annular sum
commuting with $\mathcal N$ and $\sum_jj c_j^*c_j$, replacing $a$
by $\widetilde a_x$ leaves the commutator unchanged: the removed
operator is a linear combination of those two conserved quantities.
Commutators, evolution, and spectral functions of physical operators
remain physical, and neutral evolution preserves number grade. The
strictly supported approximants used to measure locality need not
preserve the vacant-complement subspace; physical vacuum compression
is available when a physical representative is required.
The frame may therefore be fixed while proving an operator estimate,
changed when rotating an observable, or chosen compatibly at nearby
fluxes. Lemmas~\ref{locality:filters} and~\ref{locality:difference}
ensure that the same local estimates remain available after the
spectral transports used next.
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/03-locality.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/04-pinning.tex ====
\section{Pinning zeros and transporting weighted observables}
\label{sec:pinning}
We compare zero modes at fluxes differing by one or three. Multiplication
by a zero at the south pole gives the algebraic comparison, but is not
unitary. We construct a unitary comparison whose effect on a local
observable is small away from that pole. For a convex orbital weight we
also retain a sign in this comparison. That sign will be used in the first
charge estimate in Section~\ref{sec:charge}.
Fix $d\in\{1,3\}$ and put $t=q-d$. The identification of orbital labels
$0,\ldots,t$ embeds $U_t$ isometrically into $U_q$; write $\iota_{q,d}$ for
its exterior-algebra extension. Its image has the last $d$ orbitals empty.
Set
\begin{equation}
g_{q,d}(j)=\frac12\log\frac{\binom{t}{j}}{\binom qj}
=\frac12\sum_{r=0}^{d-1}
\log\frac{q-j-r}{q-r},\qquad 0\le j\le t.
\label{eq:pinning-log-weight}
\end{equation}
Multiplication of a polynomial by the $d$ south-pole zero factors, one
factor for each particle, is $\iota_{q,d}\exp D_t(g_{q,d})$, up to a scalar
on each number sector. In particular, the subspace of $Z_{n,q}$ having
these zeros is
\begin{equation}
\iota_{q,d}\exp D_t(g_{q,d}) Z_{n,t}.
\label{eq:pinning-kernel-identification}
\end{equation}
Throughout this section, $m$, $u=1+m$, $v=1+q-m$, and
$w=(uv/(q+1))^{1/2}$ use the larger flux $q$. Replacing $q$ by $t$ in
these size functions changes them by bounded factors. For every integer
$\ell\ge1$, the smooth extension of Equation~\eqref{eq:pinning-log-weight}
satisfies, for $0\le m\le t$,
\begin{equation}
g_{q,d}^{(\ell)}(m)
=-\frac{(\ell-1)!}{2}\sum_{r=0}^{d-1}(q-m-r)^{-\ell},
\qquad |g_{q,d}^{(\ell)}(m)|\le C_\ell v^{-\ell},
\qquad -g_{q,d}''(m)\asymp v^{-2}.
\label{eq:pinning-derivatives}
\end{equation}
Here and below constants can depend on $d$ and on a stated differentiation
or localization order, but not on $q$, $n$, or $m$.
\subsection{A uniformly gapped path}
For $1\le b\le2t-1$, let $B_{t,b}$ be the normalized pair annihilator
whose coefficient at $i0$ such that
\[
H_{q,d}(s)\ge\gamma_{\mathrm{pin}}(1-P_{q,d}(s))
\quad(q\ge q_{\mathrm{pin}},\ d\in\{1,3\},\ 0\le s\le1)
\]
on the entire Fock space $\mathcal F_{q-d}$.
\end{lemma}
\begin{proof}
Fix an allowed unperturbed Fock gap $\gamma>0$. We compare columns of
annihilators, rather than Hamiltonians. This avoids a factor equal to the
number of particles.
Choose a smooth function $\ell_B(x)$ on $x\ge1$, constant for $x\le B$,
equal to $\log x$ for $x\ge2B$, and with
$|\ell_B^{(k)}(x)|\le C_k(B+x)^{-k}$ for $k\ge1$. Replace each logarithm
$\log(q-j-r)$ in Equation~\eqref{eq:pinning-log-weight} by
$\ell_B(q-j-r)$, retaining its constant denominator term, and denote the
result by $\bar g$. Let $\bar B_b(s)$ be the corresponding normalized
rows. At $m=b/2$, the pair-row moment bounds of
Lemma~\ref{locality:row-symbols} imply
\begin{equation}
\|\bar B_b(s)-B_{t,b}\|
\le C\sqrt w\,\frac{w^2}{(v+B)^2}.
\label{eq:pinning-rounded-row-error}
\end{equation}
Here is the normalization detail in this application. Subtract the affine
Taylor polynomial of $\bar g$ at $m$ from each of its two arguments. The
subtracted contribution is constant on $i+j=b$ and cancels in row
normalization. Write $z=|i-m|/w$. Taylor's formula, the derivative bounds
on $\ell_B$, and $w^2\le v$ give a bound
$Cw^2(v+B)^{-2}(1+z)^K$ for the remaining exponent; exponentiating costs
at most another fixed power of $1+z$. To check this also outside
$|i-m|\le(v+B)/2$, observe that this exterior region has
$z\ge c\sqrt v$ whenever $v\ge B$, whereas logarithmic differences are
bounded by $C\log(1+v/B)$. If $vc v$, the factor in
Equation~\eqref{eq:pinning-profile-factor} is at most $C v^{d/2}$,
whereas $|z|/w\ge c\sqrt v$. The Gaussian tail therefore pays this
factor and every required inverse power of $w$.
To control normalization differences, first retain a smooth central
cutoff supported in $|z|\le c\min(u,v)$ and equal to one on a smaller
such interval. Use the smooth log-gamma expression for the undeformed
row before normalization, and sum its square times $E_s^2$ and this
cutoff over all fixed integers $i$. This is a smooth function of real
$m$, bounded below by $c w^3$ after extracting the common midpoint
binomial factor: the $O(w)$ indices with $|i-m|\asymp w$ contribute
$\asymp w^2$ each. Its derivative of order $k$ is at most
$C_k w^{3-k}$, by the Gaussian moment bounds. The discarded tail is
$O_D(w^{3-D})$ for every $D$, also after any fixed finite difference:
bound that difference by its finitely many values at adjacent centers,
where the scales are comparable. The chain rule for the retained
positive normalization, followed by this tail estimate, proves the
full finite-difference estimates for the exactly normalized rows.
For bounded $w$ the normalization is bounded above and below directly.
Thus no derivative of a moving-endpoint sum is being assumed.
Lemma~\ref{locality:row-symbols} now proves that $H_{q,d}(s)$ is a rapid
interaction of bounded strength.
\emph{Flux differences.}
Use common windows for fluxes a bounded distance apart, as in
Lemma~\ref{locality:common-frames}. With orbital labels fixed from the
north, their Hamiltonian interactions differ by size $C/v$. Indeed
\[
\log\binom{Q+1}{j}-\log\binom Qj
=\log(Q+1)-\log(Q+1-j).
\]
For the path profiles, after canceling their common midpoint values,
the corresponding ratio is exactly
\[
\left(1-\frac{z^2}{(t+1-m)^2}\right)^{-(1-s)/2}
\left(1-\frac{z^2}{(q+1-m)^2}\right)^{-s/2}.
\]
Its difference from one has size $Cw^2/v^2\le C/v$ in the row-symbol
bounds. The preceding central-cutoff normalization
argument, applied to the difference of the two profiles, retains this
extra factor in every finite-difference bound. In using that argument,
the factor $w^2/v^2$ is retained throughout $|z|\le cv$, including the
part discarded by the smaller central cutoff. Only on $|z|>cv$ is it
recovered from tail powers, using
$v^2/w^2\le C(|z|/w)^2$. This distinction is necessary when $v$ is
much larger than $u$. If an individual pair
coefficient is present only at the larger flux, its index excursion
satisfies $|i-m|\ge v-O(1)$. For large $v$ its Gaussian tail pays both
the inverse of $w^2/v^2$ and every required symbol seminorm; for bounded
$v$ it is a bounded-scale estimate. The entirely new rows lie in a
bounded south zone, where $1/v$ is bounded below. This proves the
claimed common-frame interaction difference, including the changed
endpoint supports. Repeating the one-flux identity handles any fixed
bounded change in flux.
\emph{Affine subtraction.}
For a smooth real
function $a$ on the orbital interval, set
$X_a=[H_{q,d}(s),D_t(a)]$. Decompose the Hamiltonian into annuli by a
sum-of-squares partition $\sum_k\vartheta_k(b)^2=1$, of row-index width
comparable to $w_k$, and then use its Fourier wavepackets. If $m_k$ is
the annulus center, put
\[
a_k^\circ(j)=a(j)-a(m_k)-a'(m_k)(j-m_k).
\]
The affine contribution commutes with the annular sum, because every row
has a fixed pair index sum. More explicitly, if $C_x$ is its Fourier
wavepacket and $C_x(a)$ is the same wavepacket with row coefficients
multiplied by $a_k^\circ(i)+a_k^\circ(j)$, then
\begin{equation}
X_a=\int X_{a,x}\,d\mu(x),\qquad
X_{a,x}=C_x^*C_x(a)-C_x(a)^*C_x.
\label{eq:pinning-source-decomposition}
\end{equation}
The center measure has bounded mass in unit balls. The wavepacket
normalization is $w_k^{-1/2}$ and its circle measure is
$w_k\,d\phi/(2\pi)$, so Fourier orthogonality proves
Equation~\eqref{eq:pinning-source-decomposition} exactly.
The weighted row bounds give size $Cw^2|a''(m)|$ whenever
Equation~\eqref{eq:affine-symbol-hypothesis} holds with
$\beta=w^2|a''(m)|$. For $a=g_{q,d}$ this size is $C\alpha_q(m)$:
for every $k\ge2$,
\[
w(j)^k|g_{q,d}^{(k)}(j)|
\le C_k\frac{w(j)^2}{v(j)^2}
\left(\frac{w(j)}{v(j)}\right)^{k-2}
\le C_k\alpha_q(j),
\]
and $\alpha_q$ has tempered ratio exponent four, independently of $k$.
Upon changing $q$ by a bounded amount, the source interaction changes by
size $C\alpha_q/v$: differences of $g''$ gain $v^{-1}$, and the row
wavepackets change by $C/v$. These assertions include every fixed rapid
localization order, since the estimates just used also apply after the
finite differences used in Fourier localization.
\emph{Spectral filter.}
We use the spectral-filter construction of quasi-adiabatic
continuation~\cite{HW,BMNS}, with locality supplied by Section~\ref{sec:locality}.
Choose a smooth odd real function $\eta$ that is zero on
$[-\gamma_{\mathrm{pin}}/2,\gamma_{\mathrm{pin}}/2]$ and equals
$\operatorname{sgn}(\omega)$ for $|\omega|\ge\gamma_{\mathrm{pin}}$.
Let $r(\omega)=\eta(\omega)/\omega$, with value zero near zero, and use
the spectral calculus of $\operatorname{ad}_{H}(A)=[H,A]$ to set
\[
Y_{q,d}(s)=r(\operatorname{ad}_{H_{q,d}(s)})X_g.
\]
The function $r$ and each of its derivatives belong to $L^2(\mathbb R)$.
Its inverse Fourier transform therefore has every absolute polynomial
moment: use Cauchy--Schwarz on $|t|\le1$, and the $L^2$ norm of a
sufficiently high derivative of $r$ on $|t|>1$. Lemma~\ref{locality:filters}
and Equation~\eqref{eq:pinning-source-decomposition} give rapid locality
with size $\alpha_q$.
The spectral multiplier of $D_t(g)$ is $\eta(\omega)$, so $Y^*=-Y$.
If $P=P_{q,d}(s)$ and $Q=1-P$, the gap gives
\[
YP=QD_t(g)P,\qquad PY=-PD_t(g)Q,\qquad PYP=0.
\]
Differentiating Equation~\eqref{eq:pinning-path-kernel} gives
$\partial_sP=QD_t(g)P+PD_t(g)Q=[Y,P]$. The unitary solution therefore
transports $P$. Both $H_{q,d}(s)$ and $D_t(g)$ commute with number and
with $\sum_jj c_j^*c_j$, proving the two symmetries.
Finally compare two fluxes in common frames. The change of $X_g$ has
size $\alpha_q/v$. The Hamiltonian change has size $1/v$. Inserting
the latter into the time evolution in the filter by Duhamel's formula
costs $\alpha_q/v$, by Lemma~\ref{locality:difference}. All filters are
the same for every flux and every path parameter. This proves the
difference assertion.
\end{proof}
The isometry used subsequently is
$\mathcal U_{q,d}=\iota_{q,d}U_{q,d}(1)$ restricted to $Z_{n,q-d}$.
By Equation~\eqref{eq:pinning-kernel-identification}, its image is exactly
the subspace with $d$ south-pole zeros.
\begin{corollary}[A fixed observable in the northern region]
\label{pinning:northern-observable}
Let $O$ be a neutral operator of norm at most one supported on $B_r(x)$,
where $r\ge2$ and $x$ has latitude index $m$. There are fixed constants
$b,C_*$, and $c=8$, independent of every tail order below, such that,
if $q>Cr^b(1+m)$, the operator
\[
\Delta_{q,d}(O)=U_{q,d}(1)^*OU_{q,d}(1)-O
\]
satisfies
\begin{align}
\|\Delta_{q,d}(O)\|&\le C r^c\frac{1+m}{q^2},\label{eq:pinning-northern-norm}\\
\inf_{A\in\mathfrak A(B_{r+R}(x))}\|\Delta_{q,d}(O)-A\|
&\le C_D r^c\frac{1+m}{q^2}(1+R)^{-D}
\quad(R\ge C_*(1+r)).\label{eq:pinning-northern-tail}
\end{align}
In particular, it admits a decomposition
\begin{equation}
\Delta_{q,d}(O)=\sum_{\nu\ge0}D_\nu,\qquad
D_\nu\in\mathfrak A(B_{C_*2^\nu r}(x)),\qquad
\|D_\nu\|\le C_D r^c\frac{1+m}{q^2}2^{-\nu D}.
\label{eq:pinning-northern-shells}
\end{equation}
For $|q-q'|\le3$, with the same $d$ and identical northern slots,
$\Delta_{q,d}(O)-\Delta_{q',d}(O)$ obeys all these estimates with
$q^{-2}$ replaced by $q^{-3}$. In particular, for every fixed $B$,
the shell decomposition can be chosen so that
\begin{equation}
\sum_{\nu\ge0}(C_*2^\nu r)^B\|D_\nu\|
\le C_B r^{B+c}\frac{1+m}{q^2},
\label{eq:pinning-northern-moment}
\end{equation}
and the same moment estimate holds for the flux difference with $q^{-3}$.
\end{corollary}
\begin{proof}
At the center the cutoff gives $v\asymp q$, so
$\alpha_q(m)\le C(1+m)/q^2$ and
$\alpha_q(m)/v(m)\le C(1+m)/q^3$.
Use the supported-observable bounds in
Lemma~\ref{locality:difference}, first for the self-adjoint path
generators $iY_{q,d}(s)$ and $0$. Since
$\alpha_q=u/((q+1)v)$, its tempered ratio exponent can be taken to be
four: each of $u$ and $v^{-1}$ costs at most two powers of distance.
Equations~\eqref{eq:difference-core}--\eqref{eq:difference-tail} give
a core factor $r^6$ and every tail order beyond radius $Cr$.
Apply the same bounds directly to $iY_{q,d}(s)$ and
$iY_{q',d}(s)$ for the comparison. Their difference has size
$\alpha_q/v=u/((q+1)v^2)$, whose ratio exponent is at most six, and
therefore costs $r^8$. Thus $c=8$ suffices for both assertions.
Choose $b$ large enough that the initial ball uses identical northern
slots. The common-frame generator comparison already includes the
padded south modes, so this same bound covers the endpoint changes.
Take the ball approximations by the normalized partial trace onto the
corresponding slot algebra. This contraction has error at most twice
the best approximation error and preserves number grade. Differences
at radii $C_*2^\nu r$ give one decomposition satisfying
Equation~\eqref{eq:pinning-northern-shells} for all tail orders,
after increasing $C_*$ by one fixed factor. Choose the tail order
greater than $B+1$ and sum
the resulting geometric series to obtain
Equation~\eqref{eq:pinning-northern-moment}.
\end{proof}
\subsection{Convex weighted observables}
For fixed $00$. The common wavepacket decomposition gives
\begin{equation}
F_x=-\rho_xG_x+E_x,
\label{eq:pinning-local-proportionality}
\end{equation}
where $G_x$ has size $C\alpha_q(m)$ and $E_x$ has size
$C\beta_q(m)/w(m)$, at every fixed rapid order. We verify the improved
error explicitly. The function $a=f+\rho_x g$ has $a''(m)=0$.
Subtract its affine Taylor polynomial, as in
Equation~\eqref{eq:pinning-source-decomposition}. In a row window of
width $w$, the third-order remainder is bounded, with all scaled
derivatives and polynomially weighted tails, by
\[
Cw^3\left(\frac{f''(m)}{L+m}+
\frac{\rho_x(-g''(m))}{v}\right)
\le C\frac{\beta_q(m)}{w}.
\]
The last inequality uses $w^2\le u,v$ and $u\le L+m$.
For windows outside this central region, derivative ratios have
polynomial growth and the row tails absorb those powers. The weighted
row estimate applied to $C_x(a)$ proves the claimed source error; the
same time filter preserves it. This proves
Equation~\eqref{eq:pinning-local-proportionality} without making any
assertion about the sign of individual unfiltered row pieces.
Write $R_g=\int G_x\,d\mu(x)$, $R_f=\int F_x\,d\mu(x)$ and
$T=\int\sqrt{\rho_x}G_x\,d\mu(x)$. Each integral is finite at fixed
flux. From Equation~\eqref{eq:pinning-raising}, a reversed product with
a raising operator on the left vanishes in the compression, giving
$PG_x^*G_yP=P[G_x^*,G_y]P$. Expanding
Equation~\eqref{eq:pinning-local-proportionality} therefore gives the
exact identity
\begin{align}
P(R_g^*R_f+R_f^*R_g)P
={}&-2PT^*TP \notag\\
&-\iint(\sqrt{\rho_x}-\sqrt{\rho_y})^2
P[G_x^*,G_y]P\,d\mu(x)d\mu(y) \notag\\
&+\iint P\bigl([G_x^*,E_y]+[E_x^*,G_y]\bigr)P
\,d\mu(x)d\mu(y).
\label{eq:pinning-negative-square}
\end{align}
We give the norm bounds for the last two integrals, since their spatial
summability is essential. If $D=\operatorname{dist}(x,y)$, rapid
localization and the even parity of the pieces imply, for every fixed
$M$,
\[
\|[G_x^*,G_y]\|\le C_M\alpha_x\alpha_y(1+D)^{-M},
\qquad
\|[G_x^*,E_y]\|\le
C_M\alpha_x\frac{\beta_y}{w_y}(1+D)^{-M}.
\]
Here subscripts denote evaluation at the corresponding center.
The logarithmic derivative of $\rho$ is bounded by
$C((L+m)^{-1}+v^{-1})$. Using radial resolution $w$ and the polynomial
ratio bounds of Section~\ref{sec:locality} consequently gives a fixed
exponent $k$ such that
\[
|\sqrt{\rho_x}-\sqrt{\rho_y}|
\le C\sqrt{\rho_x}\,\frac{D}{w_x}(1+D)^k.
\]
This bound follows by integrating the logarithmic derivative along the
meridian between the two latitudes when the distance is at most a small
multiple of $w_x$; outside that region its
right side dominates the polynomial ratio bound after increasing $k$.
Since $\rho_x\alpha_x^2\asymp A_x$, choose $M$ above all these
polynomial exponents plus the two-dimensional volume exponent. Summing
first in $y$ bounds the second line of
Equation~\eqref{eq:pinning-negative-square} by
$C\int A_x/w_x^2\,d\mu(x)$, and its third line by
$C\int A_x/w_x\,d\mu(x)$. Since $w\ge1$ and $-2PT^*TP\le0$,
Equation~\eqref{eq:pinning-compressed-derivative} is at most
$C\int_0^t A_q(m)/w(m)\,dm$ in quadratic form. Conjugate back by
$U_{q,d}(s)$ and integrate over $0\le s\le1$ to obtain
Equation~\eqref{eq:pinning-one-sided}.
\end{proof}
\begin{corollary}[Cost of changing a calibration state]
\label{pinning:calibration-cost}
Let $q^0=3\lfloor q/3\rfloor$ and $r=q-q^0\in\{0,1,2\}$.
Consider the interaction $K_{q,3}(f)$ on $\mathcal F_{q-3}$ and its
common-frame comparison with $K_{q^0,3}(f)$. Embed a unit vector
$\xi\in Z_{n,q^0-3}$ by the common orbital labels, or instead grow it
to flux $q-3$ using the $r$ isometries $\mathcal U_{Q,1}$. The following
costs are each bounded by
\begin{equation}
C\int_0^{q-3}\frac{A_q(m)}{v(m)}\,dm:
\label{eq:pinning-calibration-cost}
\end{equation}
the change of interaction in the embedded state, and the change of its
expectation between the embedded and grown states. The same bounds
hold after selecting any common collection of source-center pieces,
and after adding their absolute bounds. In particular the statement
applies to the filled vector at flux $q^0-3$ and to separate northern
and southern portions of the interaction.
\end{corollary}
\begin{proof}
The first assertion is the integrated interaction difference in
Proposition~\ref{pinning:weighted-transport}; vacant extra modes are
compressed after comparison in the common frame. For one growth step,
differentiate the expectation of the interaction along $U_{Q,1}(s)$.
The generator has size $\alpha_Q\le C/v$, while the observable
interaction has size $A_q$. The weighted commutator calculus bounds
the derivative in operator norm by $C\int A_q/v$. Finite-parameter
conjugation preserves this bound. There are at most two growth steps,
and all size functions for their fluxes are comparable. Applying this
argument to each selected source piece before summing proves the last
assertion, including comparisons with the directly embedded lower-flux
reference on common northern slots.
\end{proof}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/04-pinning.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/05-flags.tex ====
\section{Reading zero modes by orthogonal branches}
\label{sec:flags}
We now turn the pinning maps into coordinates on every zero space. At
each step we either record a hole or remove an electron. The coordinates
are orthogonal, although the holes themselves have not been assigned
positions. The purpose of the construction is quantitative: a local
observable near the north pole can change substantially only when the
coordinates record a hole sufficiently far along the descent toward that
pole. We prove this assertion as an operator inequality, and then use
rotation averaging to obtain a uniform comparison in the one-hole spaces.
Throughout this section, all lower bounds on the flux are absorbed into
one fixed integer $q_{\mathrm{stop}}\geq 4$. We stop every descent when
$q\leq q_{\mathrm{stop}}$. Constants may depend on this stopping value,
on the uniform constants of the local calculus, and on a fixed decay
exponent. They never depend on $q$ or on the particle number.
\subsection{The algebraic decomposition}
Let $P_q$ be the orthogonal projection onto the Fock zero space
$Z_q=\bigoplus_n Z_{n,q}$. Write $n_q=c_q^*c_q$ for occupation of the
south-pole orbital. In a nonzero sector $Z_{n,q}$ set
\begin{equation}
h=q+3-3n.
\label{eq:flags-hole-count}
\end{equation}
For $n\geq 1$, divisibility by the cube of every pair determinant gives
\begin{equation}
Z_{n,q}=\left\{
\prod_{iq_{\mathrm{stop}}$, define
\[
\mathcal F_{n,q}=\ker(c_q|_{Z_{n,q}}),\qquad
\mathcal E_{n,q}=Z_{n,q}\ominus\mathcal F_{n,q}.
\]
Then $\mathcal F_{n,q}=Z_{n,q}^{(1)}$. Contraction by $c_q$ maps
$\mathcal E_{n,q}$ bijectively onto $Z_{n-1,q}^{(3)}$. If $\mathsf T_q$ denotes
the polar part of $c_q|_{Z_q}$, the maps
\[
J_{q,F}=\mathcal U_{q,1},\qquad
J_{q,E}=\mathsf T_q^*\mathcal U_{q,3}
\]
are isometries onto the two orthogonal branches. Consequently,
\begin{equation}
Z_{n,q}\simeq Z_{n,q-1}\oplus Z_{n-1,q-3}.
\label{eq:flags-two-branches}
\end{equation}
The second summand is absent for $n=0$. In the first summand $h$ decreases
by one; in the second it is unchanged.
\end{lemma}
\begin{proof}
The absence of orbital $q$ is equivalent to divisibility by the north
spinor coordinate in every variable, which is precisely one pin at the
south pole. Evaluation of one electron at that pole leaves the three
pair zeros attached to every remaining electron. This proves that the
range of $c_q$ lies in $Z_{n-1,q}^{(3)}$.
To prove surjectivity, use the affine coordinate in which the south-pole
coefficient is the coefficient of the highest power. After factoring
the Laughlin polynomial, the map on symmetric polynomials extracts the
coefficient of $z_n^h$. A basis of its target consists of monomial
symmetric functions indexed by partitions with at most $n-1$ parts, all
at most $h$. Append a part equal to $h$ and take the corresponding
monomial symmetric function in $n$ variables, with each distinct monomial
included once. Extraction returns the original monomial symmetric function.
This proves surjectivity, including $h=0$. Restriction to the orthogonal
complement of the kernel is therefore bijective, and its polar part is
unitary onto the range. Composing with the endpoint transports gives
the stated isometries. The assertions about $h$ follow directly from
\eqref{eq:flags-hole-count}.
\end{proof}
Figure~\ref{fig:flags-branches} displays the changes in flux, particle
number, and hole number in the two branches.
\begin{figure}[tb]
\centering
\begin{tikzpicture}[every node/.style={align=center},>=stealth]
\node (root) at (0,0) {$Z_{n,q}$\\$h=q+3-3n$};
\node (left) at (-3.1,-2) {$Z_{n,q-1}$\\$h-1$ holes};
\node (right) at (3.1,-2) {$Z_{n-1,q-3}$\\$h$ holes};
\draw[->] (root) -- (left);
\draw[->] (root) -- (right);
\node[anchor=east] at (-2.1,-0.8) {$F$: record a flag\\at $q$};
\node[anchor=west] at (2.1,-0.8) {$E$: remove\\one electron};
\end{tikzpicture}
\caption{One step of the orthogonal decomposition. The displayed spaces
are coordinate spaces for the two branches. A flag is a record of an
$F$ step; it is not a measured position of a quasihole.}
\label{fig:flags-branches}
\end{figure}
The remaining issue in this decomposition is analytic. A polar
decomposition need not be local when its nonzero singular values approach
zero. The next lemma rules out that problem uniformly in the flux.
\subsection{A local polar map}
\begin{lemma}[Occupation gap and local representatives]
\label{lem:flags-polar}
There is $\varepsilon>0$, independent of $q$ and of the number sector,
such that
\begin{equation}
P_q n_qP_q\geq\varepsilon P_{\mathcal E_q},
\qquad \mathcal E_q=\bigoplus_n\mathcal E_{n,q}.
\label{eq:flags-occupation-gap}
\end{equation}
The polar map $\mathsf T_q$ and the projections onto the two branches, restricted
to $Z_q$, have bounded physical representatives rapidly localized at the
south pole. The representatives preserve $Z_q$ and its orthogonal
complement. They have respectively the number and index grades of $c_q$
and of the identity.
\end{lemma}
\begin{proof}
We first prove the singular-value bound, keeping track of the restriction
of pair rows. The normalized rows are
\[
B_{q,b}=\sum_{\substack{0\leq i0$ be the uniform
endpoint gap from Lemma~\ref{pinning:uniform-gap}. By
\eqref{eq:flags-retained-mass}, the Hamiltonian compressed to the
south-empty sector has a gap at least $\delta/4$ above
$\bigoplus_n\mathcal F_{n,q}$.
The CAR give the exact identity
\[
\sum_b[B_{q,b},n_q]^*[B_{q,b},n_q]
=n_q\sum_{k=1}^{q}p_{q,k}n_{q-k}.
\]
The coefficient sum is
\[
\sum_{k=1}^{q}p_{q,k}=\frac{4q-2}{q+1}<4.
\]
One way to see this is to write
$p_{q,k}=k\binom{2q-k-1}{q-1}/\binom{2q-2}{q-1}$ and apply the
hockey-stick identity twice. For $\psi\in Z_q$, the two top singleton
rows also imply $c_{q-1}c_q\psi=c_{q-2}c_q\psi=0$. Hence
\begin{equation}
\sum_b\|[B_{q,b},n_q]\psi\|^2
\leq2\|c_q\psi\|^2.
\label{eq:flags-emptying-energy}
\end{equation}
Let $Q=1-n_q$ and let $P_F$ project onto
$\bigoplus_n\mathcal F_{n,q}$. Since
$B_{q,b}\psi=0$, the restricted gap gives
\[
\frac\delta4\|Q\psi-P_F\psi\|^2
\leq\sum_b\|B_{q,b}Q\psi\|^2
\leq2\|c_q\psi\|^2.
\]
The occupied and vacant components are orthogonal, so
\[
\|\psi-P_F\psi\|^2
\leq(1+8/\delta)\|c_q\psi\|^2.
\]
Thus \eqref{eq:flags-occupation-gap} holds with
$\varepsilon=\delta/(\delta+8)$.
To construct local representatives, take a real smooth frequency cutoff
$\chi$ equal to one near zero and supported strictly inside the uniform
unperturbed gap. Apply its time filter to $c_q$:
\[
A_q=\int_{\mathbb R}\widehat\chi(t)
e^{itH_q}c_qe^{-itH_q}\,dt,
\]
with the Fourier normalization incorporated into $\widehat\chi$.
Contraction preserves zero modes. The cutoff therefore gives
$A_qP_q=c_qP_q$ and $[A_q,P_q]=0$. The local calculus makes $A_q$
rapidly localized at the south pole, with uniform constants. Choose a
smooth function $\eta$ on a fixed interval containing the spectrum of
$A_q^*A_q$, equal to zero near zero and to $x^{-1/2}$ for
$x\geq\varepsilon$. Then
\[
\widetilde{\mathsf T}_q=A_q\eta(A_q^*A_q)
\]
is rapidly localized by smooth functional calculus and agrees with
$\mathsf T_q$ on $Z_q$. Its products
$\widetilde{\mathsf T}_q^*\widetilde{\mathsf T}_q$ and
$1-\widetilde{\mathsf T}_q^*\widetilde{\mathsf T}_q$ represent the branch projections on
$Z_q$. The construction preserves number and index grades because
$H_q$ preserves both and $A_q^*A_q$ has grade zero. It also preserves
$P_q$ in both directions. No claim about a spectral gap of
$A_q^*A_q$ outside $Z_q$ is needed: $\eta$ is smooth on that entire
spectral interval.
\end{proof}
\subsection{One-step comparisons}
Write
\[
K_{q,d}(f)=\mathcal U_{q,d}^*D_q(f)\mathcal U_{q,d}
-D_{q-d}(f)
\]
on the corresponding smaller zero space. Proposition~
\ref{pinning:weighted-transport} supplies localized representatives for
these operators, with the stated size and flux-comparison estimates.
\begin{proposition}[Weighted observable at one branch]
\label{prop:flags-weighted-step}
Fix $p\in(0,2)$, $L\geq2$, and $f(j)=f_{L,p}(j)$. In the orthogonal
coordinates \eqref{eq:flags-two-branches},
\begin{equation}
\begin{split}
(J_{q,F}\oplus J_{q,E})^*D_q(f)(J_{q,F}\oplus J_{q,E})
={}&\begin{pmatrix}
D_{q-1}(f)+K_{q,1}(f)&0\\
0&D_{q-3}(f)+f(q)+K_{q,3}(f)
\end{pmatrix}+R_q(f),\\
&\|R_q(f)\|\leq C_p\frac{f(q)}{(L+q)^2}.
\end{split}
\label{eq:flags-weighted-step}
\end{equation}
The notation in the left side means the unitary whose columns are the
two branch isometries. The bound includes the off-diagonal blocks.
For affine $f$ the remainder is zero and $K_{q,d}(f)=0$.
\end{proposition}
\begin{proof}
The $F$ block is the definition of $K_{q,1}(f)$. For an affine sequence,
the grades of $\mathsf T_q$ give
\[
D_q(f)\mathsf T_q=\mathsf T_qD_q(f)-f(q)\mathsf T_q
\]
on the zero spaces, and both branch projections commute with $D_q(f)$.
The endpoint transports commute with the number and index operators.
This proves the affine assertion, including the scalar $f(q)$ in $E$.
For a general $f$, subtract its affine Taylor polynomial at $q$.
The remainder $a(j)=f(j)-f(q)-f'(q)(j-q)$ satisfies
\[
|a(j)|\leq C_p\frac{f(q)}{(L+q)^2}
(1+q-j)^{p+4},\qquad 0\leq j\leq q.
\]
The same polynomial bounds hold for the finite differences needed for
localization. In the south-pole frame this says that $D_q(a)$ has
one-body interaction size at most $C_pf(q)/(L+q)^2$, times a fixed
polynomial in distance from the pole. Commuting it with any of the
rapidly localized representatives in Lemma~\ref{lem:flags-polar} thus
has norm at most that size: decompose the representative into ball
shells and sum its arbitrarily high inverse-power tails against this
polynomial. In the $E$ block use
$\mathsf T_q[D_q(a),\mathsf T_q^*]$; for the off-diagonal blocks use the commutator with
a branch projection. Compression and the endpoint isometries do not
increase these norms. This proves \eqref{eq:flags-weighted-step}.
\end{proof}
For a general observable supported far to the north, the polar map
contributes an even smaller error, because its representative is
localized at the opposite pole. We record the precise form used below.
\begin{lemma}[Northern comparison]
\label{lem:flags-northern-step}
There are fixed $c\geq0$ and $b_0\geq1$ with the following property.
Let $O=O^*$ be neutral, of norm at most one, supported on a slot ball of
radius $r\geq2$ centered at latitude index $m$, and put $u=1+m$.
If $q>C r^{b_0}u$, identify all northern slots in the fluxes being
compared. The two diagonal branch blocks of $O$ equal
\[
O+\mathcal D_{q,1}(O)\quad\hbox{and}\quad
O+\mathcal D_{q,3}(O)
\]
up to a matrix remainder of norm $C_Dq^{-D}$ for every fixed $D$.
Each $\mathcal D_{q,d}(O)$ is neutral and self-adjoint. If $x$ is its
original center, then, for fixed $c,C_*<\infty$ and every $D>0$,
\begin{equation}
\begin{split}
\|\mathcal D_{q,d}(O)\|&\leq Cr^cu/q^2,\\
\inf_{A_R\in\mathfrak A(B_R(x))}
\|\mathcal D_{q,d}(O)-A_R\|
&\leq C_Dr^cu q^{-2}R^{-D}\qquad(R\geq C_*r).
\end{split}
\label{eq:flags-northern-size}
\end{equation}
For $|q-q'|\leq2$ and fixed $d$, the difference between these changes,
in common northern slots, obeys the same two estimates with $q^{-2}$
replaced by $q^{-3}$. The exponent $c$ and core constant $C_*$ are
independent of $D$.
\end{lemma}
\begin{proof}
For $F$, this is Corollary~\ref{pinning:northern-observable}.
Its norm and tail estimates are
Equations~\eqref{eq:pinning-northern-norm} and
\eqref{eq:pinning-northern-tail}; enlarge the fixed core constant to
write the outer ball radius as $R$ instead of $r+R$.
For $E$, commute $O$ through the local representative of $\mathsf T_q$ before
applying that corollary with $d=3$. The support of $O$ is a distance
comparable with $\sqrt q$ from the south pole when $b_0$ is increased
if necessary. Rapid locality therefore makes the polar commutator and
the off-branch blocks $O(q^{-D})$ for every $D$. The same estimate
handles the finitely many trimmed orbitals. The difference assertion
for the remaining changes is the same-corollary comparison of the
pinning transports at bounded flux difference.
\end{proof}
\subsection{Histories and a linear reference expectation}
Iterate the two branch coordinates until the flux reaches
$q_{\mathrm{stop}}$. A word $\omega$ records its successive $F$ and
$E$ choices; its terminal number and flux are denoted by $n_\omega$
and $q_\omega$. The resulting unitary is
\begin{equation}
\mathcal R_{n,q}:Z_{n,q}\longrightarrow
\bigoplus_{\omega}Z_{n_\omega,q_\omega}.
\label{eq:flags-history-map}
\end{equation}
For a fixed readout axis and fixed filters, the maps $J_{q,F}$,
$J_{q,E}$, and $\mathcal R_{n,q}$ are defined on physical Fock spaces
independently of the auxiliary slot frames. Rebuilding frames outside
the common northern slots changes only the representations used to
prove locality estimates; it does not redefine these maps or their
history coordinates.
An $F$ step taken at flux $b$ records one flag with value $b$. At a
terminal space we add $q_\omega+3-3n_\omega$ flags, all with value zero.
Let $\mathcal B(\omega)$ be this multiset. Each word has exactly $h$
flags. The vacuum follows only $F$ steps, with the same terminal
convention. We do not resolve the bounded-dimensional terminal space
further.
Fix $a\in(0,2)$. On the direct sum in
\eqref{eq:flags-history-map}, define the positive diagonal operator
\begin{equation}
W_m(\omega)=\sum_{b\in\mathcal B(\omega)}
\min\left\{1,\left(\frac{1+m}{1+b}\right)^a\right\}.
\label{eq:flags-history-weight}
\end{equation}
Its value is scalar on each terminal summand. In particular $W_m=0$
on the filled zero space, and $W_m\geq(1+q)^{-a}$ whenever $h>0$.
We next fix the scalar used to center observables. Put
$q^0=3\lfloor q/3\rfloor$, and let $\Omega_{q^0}$ be the normalized
filled zero mode at that flux. Embed its one-particle space into $U_q$
by sending orbital $j$ to orbital $j$, and then use the slot embedding
at flux $q$, with the orthogonal complement of the embedded one-particle
space vacant. Define
\begin{equation}
\operatorname{ref}_q(O)=
\langle\Omega_{q^0},O\Omega_{q^0}\rangle
\label{eq:flags-reference}
\end{equation}
in this padded realization. This is a positive linear functional of
norm one on the slot algebra. At $q=q^0$ it is the filled expectation.
For $q^0=0$ the convention is $U_0=\mathbb C$ with its unique normalized
one-electron filled vector. Outside the common northern region only
linearity, the norm-one bound, and the exact filled expectation at
$q=q^0$ will be used.
\begin{lemma}[Compatibility of reference expectations]
\label{lem:flags-reference-compatibility}
Let two fluxes $q,q'$ use common northern slots, and let
$s\leq\min(q,q')$. Embed a fixed vector of $\mathcal F_s$ into either
system by the same orbital labels, with the orthogonal complement of
the embedded one-particle space vacant. The two states have identical
expectations on the algebra of common northern slots. In particular,
references at fluxes with the same nearest lower filled flux agree on
that algebra.
\end{lemma}
\begin{proof}
Expand a slot observable into normally ordered CAR monomials. Its
expectation in an embedded state is a linear combination of the state's
normally ordered orbital correlations. The coefficients use only the
analysis-frame entries of the slots occurring in the monomial. Entries
at orbital labels above $s$ contribute zero, because those orbitals are
vacant. At labels at most $s$, the common northern frame entries are
identical. Thus every monomial has the same expectation in both
realizations. This also proves the assertion after physical compression
of the slot observable, which leaves these matrix elements unchanged.
\end{proof}
The parent and its $E$ child use filled states at $q^0$ and $q^0-3$,
respectively. Their expectations are related by the filled $E$ step.
By contrast, the references at $q-3$ and $q^0-3$ use the same filled
state and agree on common northern slots by
Lemma~\ref{lem:flags-reference-compatibility}. For a rapidly localized
operator, apply this exact identity to a truncation supported in those
slots; the remaining difference is at most twice the truncation error.
The common-frame construction permits these conventions for every
frame entering a comparison, with uniform estimates.
\begin{theorem}[Local observables in history coordinates]
\label{thm:flags-local-readout}
For every fixed $a\in(0,2)$ there are $B,C<\infty$ such that the
following holds uniformly in $n,q$ and in the allowed slot frames.
Let $O=O^*$ be a neutral slot observable of norm at most one, supported
in a ball of radius $r\geq2$ with center of latitude index $m$. Its
compression to $Z_{n,q}$ satisfies
\begin{equation}
\pm\left(
\mathcal R_{n,q}P_{n,q}OP_{n,q}\mathcal R_{n,q}^*
-\operatorname{ref}_q(O)I\right)
\leq C r^B W_m.
\label{eq:flags-local-readout}
\end{equation}
Here $P_{n,q}$ denotes the zero-space projection in the number-$n$
sector. More generally, for a convergent decomposition
$A=\sum_\nu A_\nu$ into neutral self-adjoint observables supported in
balls about the same center, of respective radii $r_\nu\geq2$, the
right side can be replaced by
$CW_m\sum_\nu r_\nu^B\|A_\nu\|$.
\end{theorem}
\begin{proof}
The proof keeps $O$ unchanged while descending through common northern
slots. Only the small changes caused by each transport are estimated
inductively. This distinction prevents an increasing radius from
being assigned repeatedly to the original observable.
We first describe the centered one-step identities under the northern
condition of Lemma~\ref{lem:flags-northern-step}. For an $E$ step
put $t=q-3$, so $t^0=q^0-3$, and write $R_{q,E}(O)$ for its uncentered
polar remainder in Lemma~\ref{lem:flags-northern-step}. The filled
$E$ step at $q^0$, together with compatibility of the northern
references, gives the exact scalar identity
\[
\operatorname{ref}_q(O)-\operatorname{ref}_t(O)
=\operatorname{ref}_{t^0}\bigl(
\mathcal D_{q^0,3}(O)+R_{q^0,E}(O)\bigr).
\]
Thus the parent-to-child reference change is determined by a filled
step. Define
\[
\begin{split}
R_{q,E}'(O)&=R_{q,E}(O)
-\operatorname{ref}_{t^0}(R_{q^0,E}(O))I,\\
s_q(O)&=\operatorname{ref}_t(\mathcal D_{q,3}(O))
-\operatorname{ref}_{t^0}(\mathcal D_{q^0,3}(O)).
\end{split}
\]
The references in the second line use the same filled state.
Lemma~\ref{lem:flags-reference-compatibility}, first on common northern
slots and then on rapid tails by norm approximation, therefore gives
\[
s_q(O)=\operatorname{ref}_{t^0}\bigl(
\mathcal D_{q,3}(O)-\mathcal D_{q^0,3}(O)\bigr)
+O(q^{-D}).
\]
The bounded-flux comparison in Lemma~\ref{lem:flags-northern-step}
supplies the additional factor $q^{-1}$. Substituting these scalar
identities into the branch comparison yields
\begin{equation}
\begin{split}
J_{q,E}^*(O-\operatorname{ref}_q(O))J_{q,E}
={}&(O-\operatorname{ref}_t(O))
+\bigl(\mathcal D_{q,3}(O)
-\operatorname{ref}_t(\mathcal D_{q,3}(O))\bigr)\\
&+s_q(O)I+R_{q,E}'(O),\\
|s_q(O)|\leq{}&Cr^c u/q^3+C_Dq^{-D},\qquad
\|R_{q,E}'(O)\|\leq C_Dq^{-D}.
\end{split}
\label{eq:flags-centered-E}
\end{equation}
Here and below the symbols denote compressions to the relevant child
zero space. When $h=0$ the comparison is its own filled calibration,
so all centered contributions vanish exactly.
For an $F$ step, $t=q-1$. The nearest smaller filled fluxes are either
identical or differ by three. In the latter case apply the filled
$E$ comparison just used. Together with
\eqref{eq:flags-northern-size}, this proves
\begin{equation}
J_{q,F}^*(O-\operatorname{ref}_q(O))J_{q,F}
=O-\operatorname{ref}_t(O)+S_{q,F}(O),\qquad
\|S_{q,F}(O)\|\leq Cr^cu/q^2+C_Dq^{-D}.
\label{eq:flags-centered-F}
\end{equation}
The off-diagonal blocks have norm $C_Dq^{-D}$. An $F$ step already
records a flag, so its entire error will be charged to that flag.
Here is a uniform closure argument, including the parameter choices.
Let $c,b_0$ be as in Lemma~\ref{lem:flags-northern-step}. Choose
$b>\max\{b_0,c\}$, then choose $B>\max\{ab,c\}$ large enough to
absorb the fixed polynomial costs of the local calculus. A constant
$M$ will be fixed after $B$. Set
\[
\tau=Mr^b u.
\]
If $q\leq\tau$ and $h>0$, every flag has $b'\leq q$, so
\[
W_m\geq(2Mr^b)^{-a}I.
\]
The norm bound $\|O-\operatorname{ref}_q(O)\|\leq2$ proves
\eqref{eq:flags-local-readout} in this region with constant
$2(2M)^a$. When $h=0$ the centered compression is zero. Increasing
$M$ includes all stopping cases in this argument.
Fix a finite $Q$, and let $K_Q$ be the least constant in
\eqref{eq:flags-local-readout} for fluxes at most $Q$, with the
chosen $B$, all number sectors, and all allowed frames. This number
is finite: for $h>0$ use $W_m\geq(1+Q)^{-a}$, while the filled
compression is exactly centered. We prove
\begin{equation}
K_Q\leq C_M+\frac12K_Q
\label{eq:flags-bootstrap-constant}
\end{equation}
with $C_M$ independent of $Q$.
Suppose $q>\tau$. Expand the unchanged $O$ down the branching tree,
using \eqref{eq:flags-centered-E} and
\eqref{eq:flags-centered-F}, until the current flux is at most
$\tau$. The original northern slots, center, and radius are unchanged
through this part of the descent. The terminal comparisons have just
been bounded. In an $E$ child, decompose
$\mathcal D_{q,3}(O)$ into its core and dyadic ball shells, all centered
at $m$. Equation~\eqref{eq:pinning-northern-moment}, with a tail order
larger than $B+2$, gives
\[
\sum_\nu r_\nu^B\|\mathcal D_{q,3}(O)_\nu\|
\leq C(B)r^{B+c}u/q^2.
\]
Applying the definition of $K_Q$ to each smaller-flux shell, and using
linearity of the reference, bounds its centered contribution by
\[
K_QC(B)r^{B+c}u/q^2
\]
times the remaining history weight in that child. Along any word,
the flux strictly decreases; thus
\[
\sum_{q'>\tau}\frac{u}{(q')^2}\leq C\frac{u}{\tau}
=\frac{C}{Mr^b}.
\]
Consequently all induction-dependent contributions are bounded by
\[
K_Q\frac{C(B)}M r^{B+c-b}W_m.
\]
Choose $M$ so large that this is at most
$\tfrac12 K_Qr^BW_m$. This choice is possible because $b>c$ and
$r\geq2$.
We verify that the other errors have a bound independent of $K_Q$.
At a node with positive remaining hole number, its identity is bounded
by the sum of the identities assigned to its remaining flags. A
scalar electron error may therefore be charged to every such flag.
For a flag at $\ell$, the total charge from ancestors in
\eqref{eq:flags-centered-E} is at most
\begin{equation}
C\frac{r^cu}{\max\{\tau,1+\ell\}^2}.
\label{eq:flags-scalar-tail}
\end{equation}
The $F$ error in \eqref{eq:flags-centered-F} occurs at its own flag
and obeys the same bound, up to a fixed constant. Write
$w_\ell=\min\{1,(u/(1+\ell))^a\}$. Since $a<2$ and $\tau=Mr^bu$,
\[
\frac{r^cu}{\max\{\tau,1+\ell\}^2}
\leq C M^{a-2}r^{c+b(a-2)}w_\ell
\leq C_M r^B w_\ell.
\]
The $q^{-D}$ remainders, including the off-diagonal blocks, obey the
same estimate after choosing $D>a+2$. For a self-adjoint off-diagonal
block, its norm bounds the full block matrix above and below by that
norm times the identity at its node, so the same charge applies.
Nodes with $h=0$ contribute nothing, by the exact centered filled
identity. Summation of these diagonal bounds along words proves
\eqref{eq:flags-bootstrap-constant}.
It follows that $K_Q\leq2C_M$ for every $Q$, proving the uniform
claim. Finally, the assertion for $A=\sum_\nu A_\nu$ follows by
linearity of the reference and by summing the form inequalities.
\end{proof}
The theorem estimates a compression to the zero spaces. It does not
claim that ordinary local fluctuations vanish in the filled state.
It also applies to coherent superpositions of histories: all charges
above are diagonal operator bounds, rather than bounds conditional on
a classical choice of word.
\subsection{Rotation averaging in a one-hole space}
The history estimate still depends on a chosen readout axis. In this
subsection, a one-hole space means a space with quasihole degree $h=1$.
Representation theory then removes the axis dependence and yields an
integrated estimate with no factor of the sphere area.
\begin{corollary}[One-hole comparison]
\label{cor:flags-one-hole}
Suppose $h=1$, equivalently $q=3n-2$. Let $\psi,\phi$ be any two unit
vectors in $Z_{n,q}$. Let $\{O_x\}$ be a measurable family of neutral
self-adjoint observables of norm at most one, supported in balls of a
fixed radius $r\geq2$ about $x$, with center measure of bounded density.
There are constants $C,B'<\infty$, independent of $n,q$, such that
\begin{equation}
\int\left|
\langle\psi,O_x\psi\rangle-\langle\phi,O_x\phi\rangle
\right|\,dx\leq Cr^{B'}.
\label{eq:flags-one-hole}
\end{equation}
The same conclusion holds for rapidly localized families, with the
right side bounded by the corresponding fixed rapid-locality seminorm.
For a family whose norms are bounded by $A$, multiply the right side by
$A$.
\end{corollary}
\begin{proof}
Choose $a\in(1,2)$ in Theorem~\ref{thm:flags-local-readout}. The
symmetric-polynomial factor in \eqref{eq:flags-polynomial-space} has
degree one in each variable. It is the irreducible spin-$n/2$
representation, so $Z_{n,q}$ is irreducible and has dimension $n+1$.
When $h=1$, an $F$ branch has $h=0$ and hence dimension one. Before
that branch all steps are $E$, which lower the flux by three.
Therefore at most one one-dimensional history has a flag at any
specified nonterminal flux. The history that reaches the stopping
region without an $F$ step has bounded terminal dimension. It follows
that, as an operator on $Z_{n,q}$,
\begin{equation}
\operatorname{Tr}(W_0)
\leq C+\sum_{b\geq0}(1+b)^{-a}\leq C_a.
\label{eq:flags-one-hole-trace}
\end{equation}
The trace is unchanged on conjugating back to the physical zero space.
Write $\widehat W_0=\mathcal R_{n,q}^*W_0\mathcal R_{n,q}$ for that
physical operator.
Let $V_q(g)$ denote the rotation representation, with normalized Haar
measure $dg$. Schur's lemma gives
\[
\int_{\mathrm{SU}(2)}V_q(g)\widehat W_0V_q(g)^*\,dg
=\frac{\operatorname{Tr}(\widehat W_0)}{n+1}I.
\]
For each rotation use the readout axis whose north pole is the image
of the original north pole. Precisely, write
$x(g)=g\cdot\mathrm{north}$ and
$W^{g}=V_q(g)\widehat W_0V_q(g)^*$.
Use the rotated frame and rotated branch construction at $x(g)$.
Theorem~\ref{thm:flags-local-readout}, applied to $O_{x(g)}$, gives
\[
\bigl|\langle\psi,O_{x(g)}\psi\rangle
-\langle\phi,O_{x(g)}\phi\rangle\bigr|
\leq Cr^{B'}\bigl(\langle\psi,W^g\psi\rangle
+\langle\phi,W^g\phi\rangle\bigr).
\]
The two reference expectations cancel in this inequality.
Changes between local frames cost only a fixed polynomial in $r$ by
the local calculus. Integrating rotations and multiplying by the
sphere area yields at most
$Cr^{B'}q\operatorname{Tr}(W_0)/(n+1)$, which is uniformly bounded
because $q=3n-2$. For any center measure with bounded mass in unit
balls, spread the mass at each center over a ball of fixed radius.
The resulting density relative to area is bounded uniformly. The
operator originally assigned to $x$ is supported in a ball of radius
$r+1$ about every point in that spreading ball, so the same pointwise
bound applies before integration. This reduces the general center
measure to the area estimate. Finally, summing ball shells proves the
assertion for rapid families.
\end{proof}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/05-flags.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/06-charge.tex ====
\section{Charge bounds and rotation averaging}
\label{sec:charge}
The history estimate of Theorem~\ref{thm:flags-local-readout} controls a
local observable by weighted flags. To treat arbitrary hole number by
rotation averaging, we compare these weights with a physical one-body
observable, first with a slowly decreasing weight and then with a
summable weight.
Increase the fixed stopping flux in the history construction, if
necessary, so that it is at least eight and all pinning comparisons
above it are valid, including shifts by at most three. Write
$q_{\rm s}=q_{\mathrm{stop}}$ and let $\mathcal R_{n,q}$ denote
the history unitary in \eqref{eq:flags-history-map}. For $L\ge2$ and
$00$ such
that, for every flux and every nonzero zero-mode space $Z_{n,q}$,
\begin{equation}\label{eq:charge-pooled}
\mathcal R_{n,q}\bigl(C_q(f)\mathbf1-P_{n,q}D_q(f)P_{n,q}\bigr)\mathcal R_{n,q}^*
\ \ge\ c S_{L,p}.
\end{equation}
Here compression to $Z_{n,q}$ is understood, and $P_{n,q}$ denotes its
orthogonal projection. The constants are independent of $q,n$ and of
the readout axis. When $h=0$, both sides vanish.
\end{proposition}
The obstruction to this estimate occurs at electron steps. Along a
history, each F step contributes approximately $-f(q)/3$ to
$D_q(f)-C_q(f)\mathbf1$, supplying a credit for its new flag. Each E
step contributes a positive scalar correction. When at least two
flags remain, divide this scalar cost between them. The scalar tail
estimate below leaves the strictly positive margin
\[
\frac13-\frac{1+p}{6(1-p)}=\frac5{42}\qquad(p=1/8).
\]
With one remaining flag, there is no such margin. We instead combine
the scalar with the transported observable and compare it to a filled
step; the one-hole comparison of Corollary~\ref{cor:flags-one-hole}
makes the resulting error summably small. These two cases prove the
first charge estimate.
Rotation averaging then bounds integrated local-expectation differences
between two zero-mode states by $C(q+1)^{7/8}$ times the sum of their
hole numbers. This still grows with the
area, but it is enough to prove the charge estimate again with $p=3/2$.
For a polar annulus $1+m\asymp M$, use this averaged bound while the
flux is moderate relative to $M$; the transport interaction has a
factor $(q+1)^{-2}$ that pays for the area dependence. At larger
flux, apply the original fixed-axis history estimate directly to the
annulus. The two resulting sums are small when the new weight scale
$L$ is large. The summable weight then gives the area-independent
local-expectation bound at the end of this section.
\subsection{Scalar telescoping and summable error bounds}
We estimate $D_q(f)-C_q(f)\mathbf1$ from above. An F step contributes
the scalar $C_{q-1}(f)-C_q(f)$, and an E step contributes
\begin{equation}\label{eq:charge-electron-scalar}
\ell_q=C_{q-3}(f)+f(q)-C_q(f).
\end{equation}
For the continuous comparison define
\begin{equation}\label{eq:charge-continuous-scalar}
F(x)=\frac1x\int_0^x f(t)\,dt,\qquad
\ell(x)=-2F'(x)+f'(x)\quad(x>0),
\end{equation}
with the continuous extensions at zero.
\begin{lemma}[Scalar estimates]\label{lem:charge-scalars}
Fix $p\in(0,2)$ and a lower stopping flux $q_{\rm s}\ge8$. There is a
function $\varepsilon_p(L)\to0$ as $L\to\infty$ with the following
properties, uniformly for $q\ge q_{\rm s}$:
\begin{align}
\left|C_{q-1}(f)-C_q(f)+\frac13f(q)\right|
&\le\varepsilon_p(L)f(q),\label{eq:charge-F-scalar}\\
\sum_{q\ge q_{\rm s}}
\frac{|\ell_q-\ell_{3\lfloor q/3\rfloor}|}{f(q)}
&\le\varepsilon_p(L).\label{eq:charge-calibration-scalar}
\end{align}
The function $\ell$ is nonnegative. If $0
L,
\end{cases}\label{eq:charge-scalar-differences}
\end{align}
for $r=0,1,2$. We give details because the sharper second estimate is
needed for the summable weight. The identity
$d_j=\int (1-|t-j-1|)_+f''(t)\,dt$ expresses
\eqref{eq:charge-positive-scalar} as $\int_0^q \kappa_q(t)f''(t)\,dt$.
The function $\kappa_q$ is linear between consecutive integers and has values
\[
\kappa_q(i)=\frac{i(i+1)}{Q_q}\ (0\le i\le q-2),\qquad
\kappa_q(q-1)=\frac{2q}{3(q+1)},\qquad \kappa_q(q)=0.
\]
On $[0,q-2]$ its difference from $t^2/q^2$ is at most
$C(t/q^2+t^2/q^3)$, and on $[q-2,q]$ that difference is bounded by a
constant. The error in its integral against $f''$ is consequently at
most
\[
C\left(q^{-2}\int_0^q tf''(t)\,dt+
q^{-3}\int_0^q t^2f''(t)\,dt+
\int_{q-2}^q f''(t)\,dt\right).
\]
For $q\le L$ use $f''\le C/L^2$; for $q>L$ use
$\int_0^q tf''\le1$, $\int_0^q t^2f''\le2qF(q)$, and
$f''(t)\le C f(t)(L+t)^{-2}$. This proves the first term of
\eqref{eq:charge-scalar-errors}. The continuous identity
$\ell(x)=x^{-2}\int_0^x t^2f''(t)\,dt$ implies
$\ell'(x)=f''(x)-2\ell(x)/x$, which proves the oscillation estimate.
For \eqref{eq:charge-scalar-differences}, difference the positive
formula directly:
\[
\begin{split}
\ell_q-\ell_{q-1}
={}&-\frac{2(q-1)}{Q_qQ_{q-1}}
\sum_{j=0}^{q-4}(j+1)(j+2)d_j\\
&+\frac{(q-1)(q-2)}{3q(q+1)}d_{q-3}
+\frac{2q}{3(q+1)}d_{q-2}.
\end{split}
\]
The first sum is bounded by $CqF(q)$, as follows by its integral
representation and $\int_0^q t^2f''\le2qF(q)$.
This gives $CF(q)/q^2$ when $q>L$; the last two terms cost
$Cf(q)/q^2$. Below $L$ use $d_j\le C/L^2$ in the displayed
formula. A bounded number of differences proves the claimed bound.
The exact F-step identity is
\[
C_{q-1}(f)-C_q(f)+\frac13 f(q)
=\frac{2}{3q(q+1)}\sum_{j=0}^{q-1}\bigl(f(j)-f(q)\bigr).
\]
For $q\le L$ its ratio to $f(q)$ is $O(L^{-1})$. For $q>L$ use
\begin{equation}\label{eq:charge-average-weight}
F(q)\le
\begin{cases}
f(q)/(1-p),&p<1,\\
C_pL/q,&p>1.
\end{cases}
\end{equation}
The resulting ratio is $O(L^{-1})$ also when $1
L$, dropping the factor
$(u/(L+u))^2$ gives $B_q\le C F(q)/q$.
These estimates and \eqref{eq:charge-average-weight} prove the first
bound in \eqref{eq:charge-common-sums}.
On the northern half of the sphere $v\ge(q+1)/2$, whereas on the
southern half $A_q(m)\le C f(q)(L+q)^{-2}$. Therefore
\[
\frac{J_q}{f(q)}\le
\frac{C B_q}{(q+1)f(q)}+
\frac{C\log(q+2)}{(L+q)^2}.
\]
The first term sums to $O(L^{-1})$: above $L$ it is bounded by
$Cq^{-2}$ for $p<1$ and by $CL^{1-p}q^{p-3}$ for $p>1$.
The second sums to $O((1+\log L)/L)$.
For the supremum in \eqref{eq:charge-first-sums}, use $CL^{-2}$
when $q\le L$ and $C(q+1)^{-2}$ otherwise. The latter divided by
$f(q)$ is $O(L^{-p}q^{p-2})$, whose sum is $O(L^{-1})$ for $p<1$.
On the northern half, $w\ge c\sqrt u$, so the last integral is at
most
\[
\frac{C}{(q+1)^2}\int_0^{q/2}
\frac{f(m)u^{3/2}}{(L+u)^2}\,dm
+\frac{C\sqrt{q+1}\,f(q)}{(L+q)^2}.
\]
After division by $f(q)$, both terms are bounded by
$C\sqrt{q+1}/L^2$ for $q\le L$ and by $Cq^{-3/2}$ for $q>L$,
provided $p<1/2$. Their sums are $O(L^{-1/2})$.
\end{proof}
\subsection{Calibration and the first charge estimate}
Set $K_q:=K_{q,3}(f)$ on $\mathcal F_{q-3}$. Its compression to
$Z_{n-1,q-3}$ is the transported change in an E step from $Z_{n,q}$,
as in Proposition~\ref{prop:flags-weighted-step}. Its center terms
have size $A_q(m)$. A direct estimate of $\ell_q$ would accumulate a scalar
even in a filled state. We instead calibrate $K_q+\ell_q$ by a
filled step at the nearest lower flux divisible by three.
Put $q^0=3\lfloor q/3\rfloor$ and $r=q-q^0\in\{0,1,2\}$.
Start with the filled state at flux $q^0-3$ and increase the flux
$r$ times by F transport at the same south pole. The resulting unit
vector $\chi_q$ lies at flux $q-3$ and has the minimum possible hole
number $r$. If $r=0$, it is the filled state itself.
\begin{lemma}[Calibrated electron step]\label{lem:charge-calibration}
For $q$ above the fixed stopping range,
\begin{equation}\label{eq:charge-calibrated-scalar}
\left|\ell_q+\langle K_q\rangle_{\chi_q}\right|
\le C\left(J_q+|\ell_q-\ell_{q^0}|
+\frac{f(q)}{(L+q)^2}\right).
\end{equation}
For any collection of northern center terms of $K_q$, their expectation
in $\chi_q$ may instead be replaced by the linear reference functional
of Theorem~\ref{thm:flags-local-readout} at child flux $q-3$; the
additional error is at most $CJ_q$. This remains true when the choice between the two centerings
is made separately on disjoint annuli.
\end{lemma}
\begin{proof}
In the filled E step at $q^0$, both parent and child compressions of
$D(f)-C(f)\mathbf1$ vanish. Proposition~\ref{prop:flags-weighted-step}
therefore gives
$|\ell_{q^0}+\langle K_{q^0}\rangle|\le
C f(q^0)(L+q^0)^{-2}$.
Corollary~\ref{pinning:calibration-cost} compares this filled-step
expectation first with the directly embedded lower-flux state and then
with its at most two F-growth transports. Its bound is $CJ_q$ for
each comparison, proving \eqref{eq:charge-calibrated-scalar} after
adding $|\ell_q-\ell_{q^0}|$.
For a northern source center, the linear reference functional of
Theorem~\ref{thm:flags-local-readout}, applied at child flux $q-3$, is
the expectation in the same directly embedded filled state at $q^0-3$,
using the common slots.
The last assertion of Corollary~\ref{pinning:calibration-cost} applies
to any selected collection of source pieces and bounds the sum of
absolute comparison errors by $CJ_q$. It therefore also permits the
annulus-dependent choice of centering in the statement.
\end{proof}
For completeness, the elementary rule for summing history bounds is
as follows. At a node of flux $q$ with positive hole number, every
descendant flag is at an index at most $q$, and hence
\begin{equation}\label{eq:charge-node-lower-bound}
S_{L,p}\ge h f(q)\mathbf1\ge f(q)\mathbf1
\end{equation}
on that node's full descendant space. A node error bounded by
$\eta_q f(q)\mathbf1$ can consequently be replaced by
$\eta_q S_{L,p}$ there. If $\sum_q\eta_q\le\eta$, the sum of all
these node errors is at most $\eta S_{L,p}$: on each history, each
flag appears only at ancestor fluxes, each visited at most once.
This is a comparison of diagonal operators after the node form
bounds have been applied. It also controls an off-diagonal
remainder by its operator norm. At a node with no holes, use the
exact vanishing of the centered compression instead of this rule.
\begin{proof}[Proof of Proposition~\ref{prop:charge-pooled} for $p=1/8$]
Apply Proposition~\ref{prop:flags-weighted-step} recursively to
$D_q(f)-C_q(f)\mathbf1$. The norm remainder at a node is at most
$C f(q)(L+q)^{-2}$, and its total cost is $o_L(1)S_{L,p}$ by
\eqref{eq:charge-node-lower-bound} and
Lemma~\ref{lem:charge-sums}. F transport has norm at most $CB_q$.
Together with \eqref{eq:charge-F-scalar}, its contribution is
\[
-\bigl(\tfrac13-o_L(1)\bigr)f(q)
\]
for the flag created at that step.
At an E step with one remaining hole, $q\equiv1\pmod3$, so $\chi_q$
also has one hole. Compare the child vector to $\chi_q$ using Corollary~\ref{cor:flags-one-hole}.
The difference of the $K_q$ expectations is at most
$C\sup_m A_q(m)$. This is a two-sided form bound since it holds
for every unit vector in the child space. The calibration error
and all one-hole errors have total cost $o_L(1)S_{L,p}$ by
Lemmas~\ref{lem:charge-scalars} and \ref{lem:charge-sums}.
At an E step with at least two remaining holes, Proposition~\ref{pinning:one-sided}
bounds the increase from $K_q$ by
$C\int A_q(m)/w\,dm$. Its total cost is again $o_L(1)S_{L,p}$.
It remains to pay the positive part of $\ell_q$.
Divide that scalar equally among the remaining flags. A fixed flag
then pays at most one half of each $(\ell_q)_+$ at such an ancestor.
The E-step intervals are disjoint, so
Lemma~\ref{lem:charge-scalars} bounds the total payment for a flag at
$k$ by
\[
\left(\frac{1+p}{6(1-p)}+o_L(1)\right)f(k)
=\bigl(\tfrac3{14}+o_L(1)\bigr)f(k).
\]
At terminal fluxes there are only finitely many spaces. Uniformly
on them, $f(j)=1+O(L^{-1})$, and hence
\[
D_q(f)-C_q(f)\mathbf1=-\frac h3\mathbf1+O(L^{-1}).
\]
For $h=0$ the expression is exactly zero by rotational invariance;
for $h\ge1$ the error is $O(L^{-1})h$, which is also
$O(L^{-1})$ times the terminal flag weight. Terminal flags
therefore receive the same credit $1/3-o_L(1)$.
Combining all bounds yields
\[
\mathcal R_{n,q}(D_q(f)-C_q(f)\mathbf1)\mathcal R_{n,q}^*
\le-\bigl(\tfrac13-\tfrac3{14}-o_L(1)\bigr)S_{L,p}.
\]
The strict margin is $5/42$. Choose $L=L_0$ so that the total error
is less than $5/84$ and take $c=5/84$.
\end{proof}
We record what this first estimate gives after rotation averaging.
It will be applied to annular portions of the next transport
interaction, with their center size factored out.
\begin{corollary}[First averaged comparison]\label{cor:charge-weak-average}
Let $W$ be a neutral Hermitian interaction with bounded strength per
unit area and fixed rapid locality bounds. For unit vectors
$\psi\in Z_{n,q}$ and $\chi\in Z_{n',q}$ with hole numbers $h,h'$,
\begin{equation}\label{eq:charge-weak-average}
|\langle W\rangle_\psi-\langle W\rangle_\chi|
\le C_W(q+1)^{7/8}(h+h').
\end{equation}
For radius-$r$ interactions of unit local norm one can take
$C_W\le C(1+r)^B$ for a fixed $B$.
\end{corollary}
\begin{proof}
To specify the rotation average on a physical zero space, let
$V_{n,q}(g)$ denote its rotation representation and define
\[
S_{L,p}^{g}=V_{n,q}(g)\mathcal R_{n,q}^*S_{L,p}
\mathcal R_{n,q}V_{n,q}(g)^*.
\]
Thus $S_{L,p}^{g}$ acts on $Z_{n,q}$, whereas $S_{L,p}$ itself acts
in history coordinates. This is the history construction obtained by
rotating a fixed readout frame by $g$; its estimates are uniform in
$g$. Use this convention separately in each number sector.
For a local term centered at $x(g)=g\cdot\mathrm{north}$, use
Theorem~\ref{thm:flags-local-readout} in the frame rotated by $g$,
with exponent $a=7/4$. The local term itself need not belong to a
rotation-covariant family; the estimate is pointwise in $g$. Since
$(1+b)^{-a}\le C f_{L_0,1/8}(b)$, the local comparison is bounded
by the corresponding rotated $S_{L_0,1/8}$. Its reference scalar
cancels between the two vectors. By irreducibility of $U_q$,
normalized rotation averaging gives the one-particle identity
\begin{equation}\label{eq:charge-rotation-average}
\int_{SU(2)} D_q(f)^{g}\,dg
=\frac{\sum_{j=0}^q f(j)}{q+1}\,\mathcal N,
\end{equation}
where Haar measure has mass one. Proposition~\ref{prop:charge-pooled}
for $p=1/8$ consequently gives
\[
\int_{SU(2)}\langle S_{L_0,1/8}^{g}\rangle_\psi\,dg
\le\frac{h}{3c(q+1)}\sum_{j=0}^q f_{L_0,1/8}(j).
\]
The physical area is $2\pi q$, and the center density is bounded.
Multiplying by that area and using
$\sum_{j=0}^q f_{L_0,1/8}(j)\le C(q+1)^{7/8}$ proves the result.
The same argument applies to any center measure with bounded mass
in unit balls: spread each center uniformly over a ball of fixed
radius and regard its observable as centered at the new point. The
resulting measure has bounded area density, and the support radius
increases by only a fixed constant. Thus the preceding integral
estimate applies to both discrete and continuous center measures. Finally,
a rapid shell expansion multiplies the radius-$r$ estimate by a summable series of shell
norms times $(1+r)^B$.
\end{proof}
\subsection{The summable weight}
We now fix $p=3/2$, keeping the already chosen $L_0$ and the constant
in Corollary~\ref{cor:charge-weak-average} fixed. The new scale $L$
will be chosen at the end. Calibrate every E step with positive
hole number by Lemma~\ref{lem:charge-calibration}. Its scalar error,
the branch remainders, and all F-step errors have total cost
$o_L(1)S_{L,3/2}$ by the estimates already proved. It remains to
bound the centered E interactions.
Divide centers into annuli $M\le1+m<2M$, where $M=1,2,4,\ldots$.
Write
\[
a_M=\left(\frac{M}{L+M}\right)^2,\qquad f_M=f(M),\qquad
\delta=\frac1{24}.
\]
On this annulus the local interaction size is at most
$C(q+1)^{-2}f_Ma_M$. Choose a fixed sufficiently large $C_0$ and
separate fluxes at $T_M=C_0M^{1+\delta}$.
An annulus is present only if $q+1\ge M$.
\begin{proof}[Proof of Proposition~\ref{prop:charge-pooled} for $p=3/2$]
First consider $q\le T_M$. Center the annular interaction at
$\chi_q$. If the child has $h>0$ holes, the calibration state has
$r\le h$ holes, so Corollary~\ref{cor:charge-weak-average}, applied
at child flux $q-3$, bounds the centered interaction in absolute
quadratic form by
\begin{equation}\label{eq:charge-near-cost}
C(q+1)^{-2}f_M a_M(q+1)^{7/8}h\mathbf1.
\end{equation}
The child flag weight is at least $hf(q)$.
For $M\le q+1\le T_M+1$,
$f_M/f(q)\le C M^{p\delta}$. Thus summing the relative cost
\eqref{eq:charge-near-cost} over these fluxes gives
\begin{equation}\label{eq:charge-near-sum}
C a_M M^{p\delta}\sum_{q+1\ge M}(q+1)^{-1-1/8}
\le C a_M M^{-(1/8-p\delta)}
=C a_M M^{-1/16}.
\end{equation}
The finitely many fluxes near the stopping range obey the same
estimate after increasing its constant.
Now let $q>T_M$. With $C_0$ sufficiently large, the annulus lies
in the common northern region. Center it by the linear reference
functional in Theorem~\ref{thm:flags-local-readout}.
Lemma~\ref{lem:charge-calibration} accounts for this change of
centering with the already budgeted error $CJ_q$.
For a center in the annulus, each descendant history $\omega$ satisfies
\begin{equation}\label{eq:charge-weight-comparison}
\begin{split}
W_m(\omega)
&\le C\sum_{k\in\mathcal B(\omega)}
\min\left(1,\left(\frac{M}{1+k}\right)^a\right)\\
&\le\frac C{f_M}\sum_{k\in\mathcal B(\omega)}f(k)
=\frac C{f_M}S_{L,3/2}(\omega).
\end{split}
\end{equation}
This is also a diagonal operator inequality in the descendant history
space.
Indeed, for $k\le M$, $f(k)\ge f(M)$; for $k>M$, use $a=7/4>p$
and $M/(1+k)\le C(L+M)/(L+k)$. The annulus has area $O(M)$.
The local readout estimate therefore bounds its centered
interaction by
\[
C(q+1)^{-2} f_Ma_M\frac M{f_M}S_{L,3/2}.
\]
For rapid interactions this formula follows by applying the
radius-$r$ bound to each shell and summing its norm times
$(1+r)^B$. The shell center stays in the same annulus even when
its support extends beyond it; shells reaching the south are
covered by the large-radius part of the readout estimate.
Summing over $q>T_M$ gives
\begin{equation}\label{eq:charge-far-sum}
C a_M M\sum_{q>T_M}(q+1)^{-2}S_{L,3/2}
\le C a_M M^{-\delta}S_{L,3/2}.
\end{equation}
Both resulting sums over dyadic $M$ tend to zero with $L$.
Explicitly, for every $0<\eta<2$,
\begin{equation}\label{eq:charge-dyadic-sum}
\sum_{M\in\{1,2,4,\ldots\}}
\left(\frac M{L+M}\right)^2M^{-\eta}
\le C_\eta L^{-\eta}.
\end{equation}
For $M\le L$ this follows by summing $L^{-2}M^{2-\eta}$;
for $M>L$ it follows by summing $M^{-\eta}$.
Apply this with $\eta=1/16$ and $\eta=1/24$ to
\eqref{eq:charge-near-sum} and \eqref{eq:charge-far-sum}.
The node summation rule after
\eqref{eq:charge-node-lower-bound} now gives an error
$o_L(1)S_{L,3/2}$ for the entire centered E contribution.
There is no uncompensated electron scalar in this argument.
Every F flag and every terminal flag contributes
$-(1/3-o_L(1))f(k)$, while all E contributions and all remainders
cost $o_L(1)S_{L,3/2}$. Choose a fixed $L=L_1$, after $L_0$ and
the constant in Corollary~\ref{cor:charge-weak-average}, so that
the combined error is at most $1/6$. This proves
\eqref{eq:charge-pooled} with $c=1/6$.
\end{proof}
\subsection{Rotation averaging and local interactions}
The summability of $f_{L_1,3/2}$ removes the power of the area in
Corollary~\ref{cor:charge-weak-average}. We state the resulting
estimate in the form needed for the energy argument.
\begin{theorem}[Local expectations are linear in the number of holes]
\label{thm:charge-local-linear}
Let $q=3(N-1)$ and let $W$ be a neutral Hermitian interaction whose
center density and rapid locality bounds are uniform in $q$.
For every unit vector $\psi\in Z_{n,q}$,
\begin{equation}\label{eq:charge-local-linear}
\bigl|\langle W\rangle_\psi-
\langle W\rangle_{\mathrm{Laughlin},N}\bigr|
\le C_W(N-n).
\end{equation}
For interactions supported in radius $r$ with local norm at most
one, $C_W$ is bounded by $C(1+r)^B$ for a fixed exponent $B$.
The same conclusion holds for zero-mode density matrices by
linearity, with the expected value of $N-\mathcal N$ on the right.
\end{theorem}
\begin{proof}
Use the local readout estimate with $a=7/4$, now comparing
$W_0$ to $S_{L_1,3/2}$. Since the flux is divisible by three,
the reference is the filled Laughlin expectation.
The rotation average \eqref{eq:charge-rotation-average} and the
second part of Proposition~\ref{prop:charge-pooled} give
\[
\int_{SU(2)}\langle S_{L_1,3/2}^{g}\rangle_\psi\,dg
\le\frac{h}{3c(q+1)}\sum_{j=0}^q f_{L_1,3/2}(j)
\le\frac{C h}{q+1},
\]
because $L_1$ is fixed and $\sum_{j\ge0}f_{L_1,3/2}(j)<\infty$.
Integration over centers costs area $O(q+1)$, exactly as in the
proof of Corollary~\ref{cor:charge-weak-average}. The result is
$C_Wh=3C_W(N-n)$; absorb the factor three into $C_W$.
Polynomial radius costs and rapid shell summability are preserved
by that argument. Decomposing a density matrix into number
sectors and then into pure states proves the last assertion.
\end{proof}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/06-charge.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/07-energy.tex ====
\section{Local removal of interaction energy}
\label{sec:energy}
The estimate on zero modes controls the cost of a missing electron. We now
connect an arbitrary state to the zero space by a local process that removes
particles. Its interaction energy decays exponentially, and its expected
particle loss is bounded by its initial interaction energy. In particular,
adding electrons above Laughlin filling has a uniform energy cost.
Write $B_p=B(v_p)$, $0\le p\le 2q-2$, for the normalized pair annihilators
of \eqref{eq:pair-rows}, and put $d_a=2q-1$. For a rotation $g\in SU(2)$,
$A(g)$ denotes the conjugate of an operator $A$ by the Fock representation.
Haar measure $dg$ has mass one. The rotation average of any normalized
pair row resolves the interaction:
\begin{equation}\label{eq:pair-resolution}
d_a\int B_p(g)^*B_p(g)\,dg=H_q.
\end{equation}
This is Schur's lemma on the spin-$(q-1)$ pair space $V_q$.
\begin{theorem}[Local energy descent]\label{thm:local-energy-descent}
There are constants $c>0$, $L<\infty$, and $q_0$ such that, for every
$q\ge q_0$, there is a measurable family of rapidly local physical
operators $J_y$ on $\mathcal F_q$ satisfying
\begin{equation}\label{eq:energy-descent}
\int J_y^*J_y\,d\nu_q(y)=H_q,
\qquad
\int J_y^*H_qJ_y\,d\nu_q(y)\le H_q^2-cH_q.
\end{equation}
Every $J_y$ has a definite particle loss $r_y\in\{2,\ldots,L\}$, so that
$[\mathcal N,J_y]=-r_yJ_y$. The center measure has bounded mass per unit
ball, and all rapid-locality bounds are independent of $q$ and of the
particle sector.
\end{theorem}
The first operation in the construction is $B_0(g)$, which removes a pair
near the point $g\cdot\mathrm{north}$. We then partially empty a fixed
neighborhood of that point. This second operation suppresses the nearby
pair correlations left behind by the first removal. We first identify the
part of $H_q^2$ that pays for the surviving correlations.
\subsection{The four-body term available for descent}
The maps $\mathcal L_k$ and $W_4$ are defined in
\eqref{eq:lift} and \eqref{eq:wedge-maps}. Thus
$\mathcal L_4(|u\rangle\langle v|)=B(u)^*B(v)$ and
$W_4(v\otimes w)=v\wedge w$.
Let $P_{q,\ell}$ be the projection in $V_q\otimes V_q$ onto total spin
$2(q-1)-\ell$, for $0\le\ell\le2q-2$, and set
\begin{equation}\label{eq:high-pair-blocks}
R_q^{\mathrm{hi}}=\sum_{\ell=23}^{2q-2}P_{q,\ell},
\qquad R_q^{\mathrm{lo}}=I-R_q^{\mathrm{hi}}.
\end{equation}
For large $q$, $R_q^{\mathrm{lo}}$ contains precisely the small deficits
$\ell=0,\ldots,22$.
Proposition~\ref{prop:retained-blocks}, proved in the appendix, gives
\begin{equation}\label{eq:retained-energy}
H_q^2\ge c_0H_q+
\mathcal L_4(W_4R_q^{\mathrm{hi}}W_4^*)
\qquad(00$ and $\eta(x)=0$ for $x\le0$,
one may take
$T(x)=\eta(x-1)/(\eta(x-1)+\eta(3-x))$.
The estimate follows by differentiating near $x=3$; an exponential
$e^{-1/(3-x)}$ times any fixed negative power of $3-x$ is bounded by a
constant times $e^{-1/(2(3-x))}$. Away from that endpoint the estimate is
immediate from smoothness.
For an integer $M\ge2$, put $t_j=T(j/M)$ and $n_j=c_j^*c_j$. The two
operators
\begin{equation}\label{eq:single-mode-loss}
K_{j,0}=I-n_j+t_jn_j,
\qquad K_{j,1}=\sqrt{1-t_j^2}\,c_j
\end{equation}
define a trace-preserving channel, since
$K_{j,0}^*K_{j,0}+K_{j,1}^*K_{j,1}=I$.
Compose these channels in increasing order of $j$, for $0\le j<3M$.
Write $K_\alpha$ for the resulting products of Kraus operators, where
$\alpha\in\{0,1\}^{3M}$, and write $\mathcal E_M$ for the channel.
Its dual on observables is
$\mathcal E_M^*(O)=\sum_\alpha K_\alpha^*OK_\alpha$.
The canonical anticommutation relations imply a useful exact formula.
On an even normal-ordered monomial, the dual of the $j$th channel
multiplies by $t_j$ for each occurrence of $c_j$ or $c_j^*$.
Indeed, if neither occurs, the even monomial commutes with both operators
of mode $j$ and completeness gives the claim. If exactly one occurs,
the loss contribution vanishes and the no-loss contribution gives $t_j$.
If both occur, writing them as an occupation factor gives $t_j^2$.
Consequently
\begin{equation}\label{eq:evacuated-interaction}
\mathcal E_M^*(H_q)=\sum_{b=1}^{2q-1}\widetilde B_{b-1}^*
\widetilde B_{b-1},
\qquad
\widetilde B_{b-1}
=\sum_{\substack{iM}B_{b-1}^*B_{b-1}+\varepsilon_MI
\quad\hbox{on }\mathcal F_q.
\end{equation}
\end{lemma}
\begin{proof}
The following two elementary estimates specialize the general pair
localization bounds to the cutoff used here. In particular, the
exponential estimate on distant rows will let us preserve coefficient
one on their energy. Both follow directly from the coefficients in
\eqref{eq:pair-rows}. For $b\le q/2$ and every fixed integer $r\ge0$,
\begin{equation}\label{eq:pair-absolute-moments}
\sum_{\substack{i10M$ and $q\ge30M$,
\begin{equation}\label{eq:pair-remote-tail}
\sum_{\substack{i0$.
Here is a direct verification. Set
\[
p_{q,b}(i)=\frac{\binom qi\binom q{b-i}}{\binom{2q}b}.
\]
The exact pair formula gives
\begin{equation}\label{eq:pair-hypergeometric}
|v_{b-1}(i,b-i)|^2
=\frac{2(2q-1)(2i-b)^2}{b(2q-b)}p_{q,b}(i),
\qquad
\frac{p_{q,b}(i+1)}{p_{q,b}(i)}
=\frac{(q-i)(b-i)}{(i+1)(q-b+i+1)}.
\end{equation}
When $b\le q/2$, these ratios, their inverses, and symmetry about $b/2$
show
\[
p_{q,b}(i)\le Cb^{-1/2}
\exp\{-c_2(i-b/2)^2/b\}.
\]
For completeness, on the upper half $i\ge(b-1)/2$, the first factor
in the ratio is at most one and the second is at most
$\exp\{-(2i+1-b)/(b+1)\}$. Summing logarithms from a middle
index gives the Gaussian upper bound relative to the middle value. In the range $|i-b/2|\le\sqrt b$, the absolute value of
that logarithm is at most $C(1+|i-b/2|)/b$. Summing these lower bounds and
using $\sum_i p_{q,b}(i)=1$ bounds the middle value by $C/\sqrt b$.
Insertion in \eqref{eq:pair-hypergeometric}, followed by summing Gaussian
moments, proves \eqref{eq:pair-absolute-moments}.
To prove \eqref{eq:pair-remote-tail}, there is nothing to check if
$b>q+3M$, because the sum is empty. Otherwise $b\le q+3M\le11q/10$,
so $2(2q-1)/[b(2q-b)]\le C/b$ in
\eqref{eq:pair-hypergeometric}.
For every allowed $i\le2b/5$ and $b\ge20$, the ratio in
\eqref{eq:pair-hypergeometric} is at least $4/3$.
Starting with $i<3M<3b/10$ and taking at least $b/10-O(1)$ steps toward
$2b/5$ gives $p_{q,b}(i)\le Ce^{-c b}$, since each probability is at most
one. The square root of \eqref{eq:pair-hypergeometric} is therefore at
most $C\sqrt b\,e^{-c_1b}$, and there are at most $b$ terms. This proves
\eqref{eq:pair-remote-tail}.
The modified row vanishes when $b\le M$. For $M10M$ the coefficients of
$\widetilde B_{b-1}-B_{b-1}$ are supported where $i<3M$ or $j<3M$.
The increasing ordering reduces this to $i<3M$.
Equation~\eqref{eq:pair-remote-tail} bounds this difference in operator
norm by $Cb^{3/2}e^{-c_1b}$, while normalization of the pair vector gives
$\|B_{b-1}\|\le\sqrt b$. The norm of the difference of the two row
squares is therefore summable over $b>10M$, with sum at most
$Ce^{-c_3M}$. Combining the three ranges proves the assertion, with
$\varepsilon_M\le C(M^{-1/2}+M^{-13/2}+e^{-c_3M})$.
\end{proof}
\subsection{Rotation averaging suppresses the small-deficit blocks}
Retaining only the rows whose index sum exceeds $M$ gives a positive
operator on the two pair factors:
\begin{equation}\label{eq:pair-tail-average}
A_{q,M}=d_a\int
|v_0(g)\rangle\langle v_0(g)|\otimes
\left(\sum_{k+1>M}|v_k(g)\rangle\langle v_k(g)|\right)\,dg.
\end{equation}
If the sum includes all $k$, the operator equals $I$ by Schur's lemma.
Consequently $0\le A_{q,M}\le I$. This bound handles every retained
block with the same coefficient one as in \eqref{eq:retained-energy}.
It remains to make the coefficients on the finitely many unretained
blocks small and bound their lifts by $H_q$.
\begin{lemma}[Vanishing weight on fixed deficits]\label{lem:pair-spin-tail}
For $A_{q,M}$ in \eqref{eq:pair-tail-average}, there are coefficients
$0\le a_{q,M,\ell}\le1$ such that
\[
A_{q,M}=\sum_{\ell=0}^{2q-2}a_{q,M,\ell}P_{q,\ell}.
\]
For every fixed $\ell\ge0$,
\begin{equation}\label{eq:spin-tail-limit}
\lim_{M\to\infty}\limsup_{q\to\infty}a_{q,M,\ell}=0.
\end{equation}
Moreover, for each fixed $\ell$ there is $C_\ell<\infty$ such that
\begin{equation}\label{eq:fixed-block-energy}
\mathcal L_4(W_4P_{q,\ell}W_4^*)\le C_\ell H_q
\end{equation}
for all sufficiently large $q$.
\end{lemma}
\begin{proof}
The tensor product of two spin-$(q-1)$ representations is multiplicity
free. Hence rotation invariance and $0\le A_{q,M}\le I$ prove the first
assertion. Put $a=q-1$ and $d_{q,\ell}=4q-3-2\ell$.
If $C_{q}(\ell,k)$ is the coupling coefficient of $v_0\otimes v_k$ in
total spin $2a-\ell$ at total lowering degree $k$, then
\begin{equation}\label{eq:spin-tail-coefficient}
a_{q,M,\ell}=\frac{2q-1}{d_{q,\ell}}
\sum_{k+1>M}|C_q(\ell,k)|^2.
\end{equation}
The unrestricted sum, including all $k$, has coefficient exactly one.
We give the fixed-$k$ limit, including its normalization. At a fixed
total degree, the two spin lowering operators, divided by $\sqrt{2a}$,
converge to multiplication by two independent oscillator variables
$X,Y$. The highest vector of deficit $\ell$ converges to
$(X-Y)^\ell/\sqrt{2^\ell\ell!}$: applying the raising operator gives
successive coefficient ratio
$-\sqrt{(\ell-p)/(p+1)}$ in the limit, which fixes this normalized vector.
Normalized subsequent lowering multiplies by
$(X+Y)/\sqrt{2(k-\ell)}$ at degree $k$. Thus the degree-$k$ coupled
vector converges, in the orthonormal monomial basis, to
\[
\frac{(X-Y)^\ell(X+Y)^{k-\ell}}
{2^{k/2}\sqrt{\ell!(k-\ell)!}}.
\]
Its coefficient of $Y^k/\sqrt{k!}$ has squared modulus
$2^{-k}\binom{k}{\ell}$, and hence
\[
|C_q(\ell,k)|^2\longrightarrow2^{-k}\binom{k}{\ell}.
\]
There are only finitely many degrees below a fixed $M$. Subtracting
these from the exact unrestricted coefficient one gives
\[
\lim_{q\to\infty}a_{q,M,\ell}
=1-\frac12\sum_{\ell\le k\le M-1}2^{-k}\binom{k}{\ell}.
\]
The identity
$\sum_{k=\ell}^{\infty}2^{-k}\binom{k}{\ell}=2$
proves \eqref{eq:spin-tail-limit}. This finite-head argument requires no
uniform convergence over an unbounded set of coupling coefficients.
For \eqref{eq:fixed-block-energy}, choose a normalized highest vector
$z_{q,\ell}=\sum_{p=0}^{\ell}s_pv_p\otimes v_{\ell-p}$, with
$\sum_p|s_p|^2=1$. Its wedge annihilator is
$\sum_p\overline{s_p}B_{\ell-p}B_p$.
Every $B_{\ell-p}$ uses only the first $\ell+2$ orbitals and has norm at
most $\sqrt{\ell+2}$. Therefore
\[
\|B(W_4z_{q,\ell})\psi\|^2
\le(\ell+2)\sum_{p=0}^{\ell}\|B_p\psi\|^2.
\]
Resolve $P_{q,\ell}$ by the orbit of its highest vector and use
\eqref{eq:pair-resolution}. This yields
\[
\mathcal L_4(W_4P_{q,\ell}W_4^*)
\le\frac{d_{q,\ell}}{2q-1}(\ell+2)(\ell+1)H_q,
\]
whose coefficient is bounded for fixed $\ell$.
\end{proof}
\begin{proof}[Proof of Theorem~\ref{thm:local-energy-descent}]
For the moment fix $M$, and define
\[
J_{g,\alpha}=K_\alpha(g)B_0(g),
\qquad d\nu_q(g,\alpha)=(2q-1)\,dg
\]
with counting measure in $\alpha$.
Completeness of the loss channel and \eqref{eq:pair-resolution} give
$\int J_y^*J_y\,d\nu_q=H_q$.
Lemma~\ref{lem:evacuation-rows}, applied to $B_0(g)\psi$ and then averaged,
gives
\begin{align}
\int J_y^*H_qJ_y\,d\nu_q(y)
&=d_a\int B_0(g)^*\mathcal E_{M,g}^*(H_q)B_0(g)\,dg\notag\\
&\le\mathcal L_4(W_4A_{q,M}W_4^*)+\varepsilon_MH_q.
\label{eq:loss-four-body}
\end{align}
The equality between the averaged pair products and the lifted four-body
operator uses ordered tensor factors. There is no factor of two:
$B(v\wedge w)=B(w)B(v)$ and the lift sums each ordered pair once.
By Lemma~\ref{lem:pair-spin-tail} and positivity of the lift,
\[
\mathcal L_4(W_4A_{q,M}W_4^*)
\le\mathcal L_4(W_4R_q^{\mathrm{hi}}W_4^*)
+\left(\sum_{\ell=0}^{22}C_\ell a_{q,M,\ell}\right)H_q.
\]
Fix $c_0=1/50$ in \eqref{eq:retained-energy}. Choose $M$ large enough,
and then $q$ large enough, that
$\varepsilon_M+\sum_{\ell=0}^{22}C_\ell a_{q,M,\ell}\le c_0/2$.
Equations~\eqref{eq:retained-energy} and \eqref{eq:loss-four-body} prove
\eqref{eq:energy-descent} with $c=c_0/2$.
Each $K_\alpha$ is a product of $3M$ operators of particle loss zero or
one, so $J_{g,\alpha}$ has loss between $2$ and $L=3M+2$.
All modes involved in $J_{g,\alpha}$ have index below $3M$, apart from
identity factors. To see operator-norm locality directly, use the frame
isometry $\mathsf S_q:U_q\to\ell^2(\Lambda_q)$ and write $c(f)=B(f)$ on the slot
Fock space. If $P_R$ cuts off slots outside the radius-$R$ ball around
$g\cdot\mathrm{north}$, the canonical anticommutation relations give
\[
\|c(\mathsf S_qe_j(g))-c(P_R\mathsf S_qe_j(g))\|
=\|(I-P_R)\mathsf S_qe_j(g)\|_2\le C_{D,M}R^{-D}.
\]
The last estimate follows from Lemma~\ref{locality:frame} and the slot
volume bound, with a larger decay order before summing squares.
The same estimate for a product follows by telescoping its finitely many
factors, or by Lemma~\ref{locality:calculus}. Thus the jumps are rapidly
local around $g\cdot\mathrm{north}$, uniformly in $q$.
There are only $2^{3M}$ auxiliary labels, with $M$ now fixed.
The pushforward of $(2q-1)dg$ to the physical sphere has area density
$(2q-1)/(2\pi q)$; the remaining rotation angle has mass one.
Including all auxiliary labels therefore gives total center density
$2^{3M}(2q-1)/(2\pi q)$, uniformly bounded in $q$ for this fixed $M$.
These observations prove all locality and density assertions.
\end{proof}
\subsection{Particle loss, excess charge, and a coercive Fock Hamiltonian}
Let $q=3(N-1)$ and let $\rho_t$ evolve by the trace-preserving equation
whose dual generator is
\begin{equation}\label{eq:loss-generator}
\mathcal D_q(O)=\int J_y^*OJ_y\,d\nu_q(y)-\tfrac12\{H_q,O\}.
\end{equation}
This is a finite-dimensional Lindblad generator~\cite{Lindblad}. Positivity and trace
preservation also follow directly by iterating variation of constants,
with the completely positive gain map
$\rho\mapsto\int J_y\rho J_y^*\,d\nu_q(y)$ and the no-jump map
$\rho\mapsto e^{-tH_q/2}\rho e^{-tH_q/2}$.
We write $\langle O\rangle_t=\operatorname{Tr}(\rho_tO)$.
\begin{proposition}[Control of particle number]\label{prop:grand-canonical-coercivity}
There are constants $C_{\mathrm{num}}<\infty$, $\mu>0$, $a>0$, and
$C_G<\infty$, independent of sufficiently large $q=3(N-1)$, such that
\begin{equation}\label{eq:excess-number-bound}
\mathcal N-N\le C_{\mathrm{num}}H_q.
\end{equation}
The operator
\begin{equation}\label{eq:coercive-G}
G_q=H_q+\mu(N-\mathcal N)
\end{equation}
satisfies
\begin{equation}\label{eq:G-coercivity}
G_q\ge a\bigl(H_q+|N-\mathcal N|\bigr)
\ge g\bigl(I-P_{\mathrm L,N}\bigr)
\end{equation}
for a constant $g>0$, with $P_{\mathrm L,N}$ extended by zero on the
other Fock sectors. For every initial density matrix, the evolution
\eqref{eq:loss-generator} obeys
\begin{align}
\langle H_q\rangle_t&\le e^{-ct}\langle H_q\rangle_0,
\label{eq:loss-energy-decay}\\
0\le\langle\mathcal N\rangle_0-\langle\mathcal N\rangle_t
&\le C_{\mathrm{num}}\langle H_q\rangle_0,
\label{eq:loss-number-control}\\
\langle G_q\rangle_t&\le C_G\langle G_q\rangle_0.
\label{eq:loss-G-control}
\end{align}
Every limit point $\rho_\infty$ is supported on $\ker H_q$, and
\begin{equation}\label{eq:loss-hole-control}
0\le\operatorname{Tr}\rho_\infty(N-\mathcal N)
\le C_G\mu^{-1}\langle G_q\rangle_0.
\end{equation}
\end{proposition}
\begin{proof}
Theorem~\ref{thm:local-energy-descent} gives
$\mathcal D_q(H_q)\le-cH_q$, proving
\eqref{eq:loss-energy-decay}. Since $[\mathcal N,J_y]=-r_yJ_y$,
\[
-\mathcal D_q(\mathcal N)=\int r_yJ_y^*J_y\,d\nu_q(y),
\qquad 2H_q\le-\mathcal D_q(\mathcal N)\le LH_q.
\]
Integration proves \eqref{eq:loss-number-control} with
$C_{\mathrm{num}}=L/c$.
Compactness of the density matrices in each fixed finite-dimensional
Fock space gives limit points as $t\to\infty$. By energy decay each is
supported on $\ker H_q$. Lemma~\ref{lem:zero-modes} shows that this kernel
contains no sector of particle number exceeding $N$. Applying
\eqref{eq:loss-number-control} to a state of definite particle number $n$
and passing to a limit point gives $n-N\le C_{\mathrm{num}}\langle H_q\rangle_0$.
This proves \eqref{eq:excess-number-bound} on each sector, and hence on
Fock space.
Choose $0<\mu\le\min(1,(2C_{\mathrm{num}})^{-1})$.
In sectors $n\le N$, $G_q=H_q+\mu(N-n)$ dominates
$\mu(H_q+N-n)$. In sectors $n>N$, \eqref{eq:excess-number-bound} gives
$G_q\ge H_q/2$ and $H_q+n-N\le(1+C_{\mathrm{num}})H_q$.
This proves the first inequality in \eqref{eq:G-coercivity} with
$a=\min(\mu,[2(1+C_{\mathrm{num}})]^{-1})$.
For $n\ne N$, $|N-n|\ge1$; for $n=N$, the uniform gap and uniqueness in
Theorem~\ref{thm:unperturbed} give
$H_{N,q}\ge(1/25)(I-P_{\mathrm L,N})$.
Thus the second inequality holds with $g=a/25$.
Finally, energy decay and number control give
\[
\langle G_q\rangle_t
\le\langle G_q\rangle_0+\mu C_{\mathrm{num}}\langle H_q\rangle_0
\le(1+\mu C_{\mathrm{num}}/a)\langle G_q\rangle_0.
\]
Take $C_G=1+\mu C_{\mathrm{num}}/a$. Passing to a limit point, where
$H_q=0$, proves \eqref{eq:loss-hole-control}.
\end{proof}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/07-energy.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/08-stability.tex ====
\section{Relative bounds and stability}\label{sec:stability}
The preceding sections provide two estimates with different roles.
The zero-mode bound controls a local observable after particles have
been removed. The loss evolution connects an arbitrary state to that
zero space at a cost measured by its initial interaction energy.
We first combine them into a relative form bound. Spectral transport
will then put the disorder perturbation in the class covered by that
bound.
Throughout this section, $q=3(N-1)$ is sufficiently large,
$\Omega\in Z_{N,q}$ is the unit Laughlin vector, and $H=H_q$.
Choose the fixed $\mu>0$ from
Proposition~\ref{prop:grand-canonical-coercivity} and write
\begin{equation}\label{eq:stability-G}
G=H+\mu(N-\mathcal N).
\end{equation}
Thus $G$ is positive, has kernel $\mathbb C\Omega$, and has a uniform
gap. Moreover it controls both $H$ and $|N-\mathcal N|$.
\subsection{A relative bound for terms that annihilate the ground state}
We use the local norm $\|A\|_{x,\ell}$ of
\eqref{locality:ball-norm} at one fixed order $\ell$.
Partition the sphere into cells of uniformly bounded diameter whose
centers satisfy the two-dimensional volume bound of
Section~\ref{sec:locality}. For a continuous interaction, collect
all terms centered in a cell and assign their integral to that cell's
center. Moving a center a bounded distance changes the local norm by
a fixed factor. We normalize the total localization norm in each cell
to at most one.
Physical operators act trivially on the complementary slot modes;
the inequalities below are on physical Fock space. Averaging ball
approximants over total-slot-number rotations preserves support and
approximation error, so approximants of a neutral operator may be
chosen neutral. Taking Hermitian parts gives Hermitian approximants.
Choose $\ell$ larger than the polynomial support-radius exponent in
Theorem~\ref{thm:charge-local-linear}, and larger than any fixed
geometric exponents needed below. A dyadic decomposition into ball
approximants shows that the zero-mode estimate extends to interactions
with bounded total $\|\cdot\|_{x,\ell}$ per cell. Explicitly, the
shell of radius $2^k$ has norm $O(2^{-k\ell})$, while its zero-mode
cost is $O(2^{kB})$ for a fixed $B<\ell$; the series converges.
\begin{proposition}[Relative form bound]\label{prop:relative-bound}
For this fixed sufficiently large $\ell$, there is a constant $C$
independent of $q$ such that
\begin{equation}\label{eq:relative-bound}
-CG\ \le\ \sum_x A_x\ \le\ CG
\end{equation}
whenever the $A_x$ are physical, neutral, Hermitian operators satisfying
$A_x\Omega=0$ and $\|A_x\|_{x,\ell}\le1$.
If the sum or integral of localization norms in each cell is at most
$S$, the conclusion becomes $-CSG\le\sum_xA_x\le CSG$.
\end{proposition}
\begin{proof}
Fix $q$ for the moment and let $K=K_q$ be the least constant in
\eqref{eq:relative-bound} for the stated class. It is finite: every
admissible sum annihilates $\Omega$ on both sides, its norm is bounded
by the finite number of cells, and $G$ has a positive gap on
$\Omega^\perp$. This observation gives no useful uniform bound;
we obtain one from the loss evolution.
Let $J_y$ be the jumps of Theorem~\ref{thm:local-energy-descent},
including their bounded auxiliary indices in the measure $dy$.
They obey
\[
\int J_y^*J_y\,dy=H,
\qquad J_y\Omega=0\quad\text{for almost every }y.
\]
The second assertion follows by taking the expectation of the first
in $\Omega$. Put $C_{xy}=[A_x,J_y]$ and
$D_{xy}=1+d(x,y)$. Since $A_x$ is even, the ordinary commutator
vanishes for disjointly supported approximants, including when $J_y$
is odd. Lemma~\ref{locality:calculus}(iii) gives
\begin{equation}\label{eq:commutator-norms}
\|C_{xy}\|\le C D_{xy}^{-\ell},
\qquad \|C_{xy}\|_{x,\ell}\le C,
\qquad
\|C_{xy}^*C_{xy}\|_{x,\ell}\le C D_{xy}^{-\ell}.
\end{equation}
The last estimate retains the same order $\ell$ required of $A_x$.
Thus, after integration in $y$, the positive operators
$C_{xy}^*C_{xy}$ remain in the class whose best relative-bound constant
is $K$. Fixing one polynomial norm makes this closure possible.
Every $C_{xy}$ annihilates $\Omega$, because both $A_x$ and $J_y$
do. Therefore $C_{xy}^*C_{xy}$ is a physical, positive, neutral,
centered operator to which the definition of $K$ applies. Choose
\begin{equation}\label{eq:distance-weight-choice}
20$ such that
\[
\operatorname{Tr}(\rho_t H)\le e^{-ct}
\operatorname{Tr}(\rho_0 H),\qquad
\operatorname{Tr}(\rho_t G)\le C\operatorname{Tr}(\rho_0 G),
\qquad H\le CG.
\]
Integrating \eqref{eq:relative-derivative} therefore costs at most
$C\sqrt K\operatorname{Tr}(\rho_0 G)$.
Along a sequence $t_j\to\infty$, finite dimensionality gives a
limit state $\rho_\infty$ supported on $Z_q$. Its sectors have
$n\le N$ by Lemma~\ref{lem:zero-modes}. The zero-mode bound and
$\langle\Omega,A\Omega\rangle=0$ show that
\[
|\operatorname{Tr}(\rho_\infty A)|
\le C\operatorname{Tr}(\rho_\infty(N-\mathcal N))
=C\mu^{-1}\operatorname{Tr}(\rho_\infty G)
\le C\operatorname{Tr}(\rho_0G).
\]
Combining the two bounds, and then taking the supremum over all
admissible interactions and states, gives
\[
K\le C+C\sqrt K.
\]
Solving this quadratic inequality for $\sqrt K$ proves a bound
independent of $q$, as required.
\end{proof}
\subsection{Transporting the ground state}
The perturbation is not termwise centered in the sense of
Proposition~\ref{prop:relative-bound}. Spectral transport produces
that property. We give the argument explicitly because it must follow
the perturbed ground line rather than keep the original line fixed.
The smooth frequency filter implements the quasiadiabatic idea
of~\cite{HW} in the exact spectral-flow form of~\cite{BMNS}; the
locality estimates needed here were established
in Section~\ref{sec:locality}.
Let $\varphi$ be real and measurable, $\|\varphi\|_\infty\le1$.
On Fock space set
\[
V=d\Gamma(T_q(\varphi)),\qquad H_s=H+sV,
\qquad -1\le s\le1.
\]
The coherent resolution \eqref{eq:toeplitz-resolution} writes $V$
as a bounded-density integral of neutral Hermitian terms
\[
V_x=\kappa_q\varphi(x)c(k_x)^*c(k_x).
\]
They are rapidly local with uniform bounds by
Lemma~\ref{locality:frame}. The same holds for $H$, using the
rotations of $v_0=e_0\wedge e_1$:
\[
H=(2q-1)\int_{SU(2)} B(v_0(g))^*B(v_0(g))\,dg.
\]
The measure has uniformly bounded density on the physical sphere.
In particular every $H_s$ has uniform interaction bounds for
$|s|\le1$, even though $\|V\|$ can grow with $N$.
Fix $g_0=1/25$ and work initially on a connected parameter interval
containing zero where the $N$-sector ground state is simple and the
gap above it exceeds $g_0/2$. Such an interval exists at every fixed
flux by finite-dimensional perturbation theory. Choose once and for
all a smooth odd real function $F$ satisfying
\begin{equation}\label{eq:transport-filter}
F(\omega)=-\frac1\omega\quad (|\omega|\ge g_0/2),
\qquad F(\omega)=0\quad (|\omega|\le g_0/4).
\end{equation}
It can be chosen with an inverse Fourier kernel having every absolute
polynomial moment. The $1/\omega$ tail is square-integrable and
has integrable derivatives of all positive orders; near time zero
Plancherel gives local integrability, and repeated integration by
parts gives arbitrary decay for large time.
For each term of $V$, define $Y_x(s)$ by applying this frequency
filter with respect to $H_s$. In an eigenbasis of $H_s$,
\begin{equation}\label{eq:transport-matrix-elements}
\langle a|Y_x(s)|b\rangle
=F(E_a-E_b)\langle a|V_x|b\rangle.
\end{equation}
Oddness of $F$ makes $Y_x$ anti-Hermitian. Every $Y_x$ is physical,
neutral, and rapidly local with uniform bounds; put
$Y(s)=\int Y_x(s)\,dA(x)$ and solve
\[
U'(s)=Y(s)U(s),\qquad U(0)=I.
\]
This unitary preserves number. If $P_s$ is the $N$-sector ground
projection, the usual spectral derivative formula and
\eqref{eq:transport-filter} give $P_s'=[Y(s),P_s]$.
Consequently $U(s)P_0U(s)^*=P_s$. Neutrality is important here:
the matrix elements crossing the ground projection stay in the
$N$-particle sector. No assertion about a perturbed Fock-space gap
is needed.
For each $x$ separately, define
\begin{equation}\label{eq:transport-centered-terms}
\begin{split}
Q_x(s)&=U(s)^*\bigl(V_x+[H_s,Y_x(s)]\bigr)U(s),\\
a_x(s)&=\langle\Omega,Q_x(s)\Omega\rangle,
\qquad A_x(s)=Q_x(s)-a_x(s)I.
\end{split}
\end{equation}
These are Hermitian neutral physical operators. For an excited
$N$-sector eigenvector $a$ and the ground vector $0$, their
unconjugated off-diagonal matrix element is
\[
\bigl(1+(E_a-E_0)F(E_a-E_0)\bigr)
\langle a|V_x|0\rangle=0.
\]
Hermiticity gives the reverse vanishing. Thus each $Q_x(s)$
preserves $\mathbb C\Omega$, and $A_x(s)\Omega=0$ exactly.
The commutator with $H_s$ and the finite-parameter conjugation by
$U(s)$ preserve rapid locality, uniformly on the bootstrap interval.
The scalar satisfies $|a_x(s)|\le\|Q_x(s)\|$; it can be assigned
to the same center. Hence the interaction $A_x(s)$ satisfies
Proposition~\ref{prop:relative-bound} with a uniform size bound.
Let $E_0(s)$ be the $N$-sector ground energy. Differentiating the
pulled-back Hamiltonian and taking its expectation in $\Omega$
gives
\begin{equation}\label{eq:transport-relative-derivative}
\frac{d}{ds}\bigl(U(s)^*H_sU(s)-E_0(s)I\bigr)
=\int A_x(s)\,dA(x),
\qquad
-CG\le\int A_x(s)\,dA(x)\le CG.
\end{equation}
All differentiation is finite-dimensional; the integral notation
may equally be collected into cells. On the $N$-sector, $G=H$.
Integrating in either parameter direction yields
\begin{equation}\label{eq:final-form-bound}
U(s)^*H_sU(s)-E_0(s)I\ge(1-C|s|)H
\qquad\text{on }\bigwedge^N U_q.
\end{equation}
The kernel on this interval is $\mathbb C\Omega$, so the min--max
principle gives a gap of at least $(1-C|s|)g_0$.
Choose $\lambda_*>0$ with $\lambda_*\le1$ and
$C\lambda_*\le1/4$. The improved lower bound $3g_0/4$ prevents
the gap from reaching the bootstrap boundary $g_0/2$ anywhere in
$[-\lambda_*,\lambda_*]$. Indeed a first boundary point would
contradict continuity of the ordered eigenvalues and
\eqref{eq:final-form-bound}. The construction therefore extends
over this entire interval at every sufficiently large flux. Taking
$\Delta_*=g_0/2$ proves Theorem~\ref{thm:main}.
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//sections/08-stability.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcore.code.tex ====
\ProvidesPackageRCS{pgfcore.code.tex}
\newif\ifpgf@draftmode
\def\pgf@typeout{\immediate\write0}
\ifdefined\pgfmathloaded\else
\input pgfmath.code.tex
\fi
\ifdefined\pgfintloaded\else
\input pgfint.code.tex
\fi
\input pgfcorepoints.code.tex
\input pgfcorepathconstruct.code.tex
\input pgfcorepathusage.code.tex
\input pgfcorescopes.code.tex
\input pgfcoregraphicstate.code.tex
\input pgfcoretransformations.code.tex
\input pgfcorequick.code.tex
\input pgfcoreobjects.code.tex
\input pgfcorepathprocessing.code.tex
\input pgfcorearrows.code.tex
\input pgfcoreshade.code.tex
\input pgfcoreimage.code.tex
\input pgfcoreexternal.code.tex
\input pgfcorelayers.code.tex
\input pgfcoretransparency.code.tex
\input pgfcorepatterns.code.tex
\input pgfcorerdf.code.tex
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcore.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex ====
\ProvidesFileRCS{pgfcorearrows.code.tex}
\def\pgfdeclarearrow#1{%
\let\pgf@decl@arrow@defaults\pgfutil@empty%
\let\pgf@decl@arrow@means\relax%
\let\pgf@decl@arrow@code\relax%
\pgfkeys{/pgf/@arrows decl/.cd,
name=,
setup code=,
cache=true,
bending mode=orthogonal,
parameters=,%
#1%
}%
\ifx\pgf@decl@arrow@name@end\pgfutil@empty%
\pgferror{Declaring unnamed arrow}%
\else%
\pgf@arrow@letter{name@end}%
\pgf@arrow@letter{name@start}%
\expandafter\let\csname pgf@ar@start@\pgf@decl@arrow@name@start\endcsname\pgf@decl@arrow@name@end%
\expandafter\let\expandafter\pgf@old@code\csname pgf@ar@code@\pgf@decl@arrow@name@end\endcsname%
\expandafter\let\expandafter\pgf@old@means\csname pgf@ar@means@\pgf@decl@arrow@name@end\endcsname%
\ifx\pgf@decl@arrow@code\relax%
\ifx\pgf@decl@arrow@means\relax%
\pgferror{You must set either the 'means' or the drawing code' keys for arrow tip '\pgf@decl@arrow@name@end'}%
\else%
\ifx\pgf@old@code\relax%
\let\pgf@arrow@tip@sequence\pgfutil@empty%
\let\pgf@arrow@translate\relax%
\expandafter\let\expandafter\pgf@arrows@direct\csname pgf@arrows@direct@name@end@\pgf@decl@arrow@means\endcsname%
\ifx\pgf@arrows@direct\relax%
\let\pgf@arrows@options\pgfutil@empty%
\expandafter\pgfarrows@initial@parser\pgf@decl@arrow@means[]\pgf@stop%
\else%
\let\pgf@arrow@tip@sequence\pgf@arrows@direct%
\fi%
\pgf@arrow@letter@\pgf@arrow@tip@sequence{means}%
\expandafter\let\csname pgf@ar@code@\pgf@decl@arrow@name@end\endcsname\relax%
\else%
\pgferror{Arrow tip '\pgf@decl@arrow@name@end' was already
defined with key 'drawing code' previously and you cannot change this}%
\fi%
\fi%
\else%
\ifx\pgf@decl@arrow@means\relax%
\ifx\pgf@old@means\relax%
\pgf@arrow@letter{code}%
\pgf@arrow@letter{defaults}%
\pgf@arrow@letter{setup}%
\pgf@arrow@letter{bending@mode}%
\pgf@arrow@letter{par}%
\expandafter\let\csname pgf@ar@do@cache@\pgf@decl@arrow@name@end\endcsname\pgf@decl@arrow@cache%
\else%
\pgferror{Arrow tip '\pgf@decl@arrow@name@end' was already
defined with key 'means' previously and you cannot change this}%
\fi%
\else%
\pgferror{You cannot set both the 'means' and also the 'drawing code'
keys for arrow tip '\pgf@decl@arrow@name@end'}%
\fi%
\fi%
\fi%
}
\def\pgf@arrow@letter#1{%
\expandafter\pgf@arrow@letter@\expandafter{\csname pgf@decl@arrow@#1\endcsname}{#1}%
}
\def\pgf@arrow@letter@#1#2{%
\expandafter\let\csname pgf@ar@#2@\pgf@decl@arrow@name@end\endcsname#1%
}
\pgfkeys{
/pgf/@arrows decl/.cd,
name/.code={%
\pgfutil@in@-{#1}%
\ifpgfutil@in@%
\pgf@arrows@name@decomp#1\pgf@stop%
\else%
\def\pgf@decl@arrow@name@end{#1}\let\pgf@decl@arrow@name@start\pgf@decl@arrow@name@end%
\fi},
means/.store in=\pgf@decl@arrow@means,
setup code/.store in=\pgf@decl@arrow@setup,
drawing code/.store in=\pgf@decl@arrow@code,
cache/.store in=\pgf@decl@arrow@cache,
bending mode/.is choice,
bending mode/none/.code=\let\pgf@decl@arrow@bending@mode\pgfutil@empty,
bending mode/orthogonal/.code=\def\pgf@decl@arrow@bending@mode{\pgfpointcurvilinearbezierorthogonal},
bending mode/polar/.code=\def\pgf@decl@arrow@bending@mode{\pgfpointcurvilinearbezierpolar},
parameters/.store in=\pgf@decl@arrow@par,
defaults/.code={%
\let\pgf@arrows@options\pgfutil@empty%
\pgfkeys{/pgf/arrow keys/.cd,#1}%
\let\pgf@decl@arrow@defaults\pgf@arrows@options%
}
}
\def\pgf@arrows@name@decomp#1-#2\pgf@stop{%
\def\pgf@decl@arrow@name@start{#1}%
\def\pgf@decl@arrow@name@end{#2}%
}
\pgfkeys{/handlers/.tip/.code=%
\expandafter\expandafter\expandafter\pgf@arrows@unravel\pgfkeyscurrentpath/\pgf@stop%
\expandafter\pgf@arrows@key@call\expandafter{\pgf@arrows@unravelled}{#1}}
\def\pgf@arrows@unravel#1/{\pgfutil@ifnextchar\pgf@stop{\def\pgf@arrows@unravelled{#1}\pgfutil@gobble}{\pgf@arrows@unravel}}
\def\pgf@arrows@key@call#1#2{\pgfdeclarearrow{name={#1},means={#2}}}
\def\pgfarrowdraw#1{%
{%
\pgfsetarrowsend{#1}%
\pgf@arrow@compute@shortening\pgf@end@tip@sequence%
\pgf@arrow@draw@arrow\pgf@end@tip@sequence\pgf@xb%
}%
}
\def\pgfarrowtotallength#1{%
{%
\pgfsetarrowsend{#1}%
\pgf@arrow@compute@shortening\pgf@end@tip@sequence%
\expandafter\expandafter\expandafter%
}%
\expandafter\expandafter\expandafter\pgf@x\expandafter\the\expandafter\pgf@xb\expandafter\pgf@xa\the\pgf@xa%
}
\def\pgfsetarrowsend#1{%
\let\pgf@arrow@tip@sequence\pgfutil@empty%
\pgf@arrows@translatefalse%
\expandafter\let\expandafter\pgf@arrows@direct\csname pgf@arrows@direct@name@end@#1\endcsname%
\ifx\pgf@arrows@direct\relax%
\edef\pgf@marshal{\noexpand\pgfarrows@initial@parser#1[]\noexpand\pgf@stop}%
\pgf@marshal%
\else%
\let\pgf@arrow@tip@sequence\pgf@arrows@direct%
\fi%
\let\pgf@end@tip@sequence\pgf@arrow@tip@sequence%
}
\newif\ifpgf@arrows@translate
\def\pgfarrows@initial@parser{%
\pgfutil@ifnextchar[\pgfarrows@initial@parser@{\pgfarrows@initial@parser@[]}}%
\def\pgfarrows@initial@parser@[#1]{%
\let\pgf@arrows@options\pgfutil@empty%
\pgfkeys{/pgf/arrow keys/.cd,#1}%
\let\pgf@arrows@options@initial\pgf@arrows@options%
\pgfarrows@parser%
}
\def\pgfarrows@parser#1[{%
\pgfkeys@spdef\pgf@temp{#1}%
\ifx\pgf@temp\pgfutil@empty%
\let\pgf@next\pgf@arrows@empty%
\else%
\ifx\pgf@temp\pgf@dot@text%
\let\pgf@next\pgf@arrows@dot@parsed%
\else%
\let\pgf@untranslated\pgf@temp%
\ifpgf@arrows@translate%
\pgf@arrow@swapper%
\fi%
\expandafter\ifx\csname pgf@ar@code@\pgf@temp\endcsname\relax
\expandafter\ifx\csname pgf@ar@means@\pgf@temp\endcsname\relax
\let\pgf@next\pgf@arrows@single@char@parser%
\let\pgf@temp\pgf@untranslated%
\else%
\let\pgf@next\pgf@arrows@shorthand@parsed%
\fi%
\else%
\let\pgf@next\pgf@arrows@meta@parsed%
\fi%
\fi%
\fi%
\expandafter\pgf@next\pgf@temp[%
}
\def\pgf@arrows@empty[#1]{%
\pgfutil@ifnextchar\pgf@stop\pgf@arrows@parser@done\pgfarrows@parser%
}
\def\pgf@arrows@single@char@parser#1{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgf@dot@text%
\let\pgf@next\pgf@arrows@dot@parsed%
\else%
\let\pgf@untranslated\pgf@temp%
\ifpgf@arrows@translate%
\pgf@arrow@swapper%
\fi%
\expandafter\ifx\csname pgf@ar@code@\pgf@temp\endcsname\relax
\expandafter\ifx\csname pgf@ar@means@\pgf@temp\endcsname\relax
\let\pgf@temp\pgf@untranslated%
\let\pgf@next\pgf@arrows@unknown%
\else%
\let\pgf@next\pgf@arrows@shorthand@parsed%
\fi%
\else%
\let\pgf@next\pgf@arrows@meta@parsed%
\fi
\fi
\expandafter\pgf@next\pgf@temp[]%
}
\def\pgf@arrows@unknown#1[]#2[#3]{%
\pgferror{Unknown arrow tip kind '#1#2'}%
}
\def\pgf@arrows@meta@parsed#1[#2]{%
\let\pgf@arrows@options\pgf@arrows@options@initial%
\pgfkeys{/pgf/arrow keys/.cd,#2}%
\expandafter\pgf@arrows@meta@set\expandafter{\pgf@arrows@options}{#1}{\pgf@arrow@handle}%
\pgfutil@ifnextchar\pgf@stop\pgf@arrows@parser@done\pgfarrows@parser%
}
\def\pgf@arrows@parser@done#1{%
}
\def\pgf@arrows@dot@parsed#1[#2]{%
\pgf@arrows@append@to@tips{\pgf@arrow@handle@dot}%
\pgfutil@ifnextchar\pgf@stop\pgf@arrows@parser@done\pgfarrows@parser%
}
\def\pgf@arrows@meta@set#1#2#3{%
\pgf@arrows@append@to@tips{#3{#2}{#1}}%
}
\def\pgf@arrows@append@to@tips#1{%
\let\pgf@tempa\pgf@arrow@tip@sequence%
\def\pgf@tempb{#1}%
\ifpgf@arrows@translate%
\let\pgf@tempa\pgf@tempb%
\let\pgf@tempb\pgf@arrow@tip@sequence%
\fi%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@arrow@tip@sequence%
\expandafter\expandafter\expandafter{\expandafter\pgf@tempa\pgf@tempb}%
}
\def\pgf@arrows@shorthand@parsed#1[#2]{%
\let\pgf@arrows@options\pgf@arrows@options@initial%
\pgfkeys{/pgf/arrow keys/.cd,#2}%
\ifx\pgf@arrows@options\pgfutil@empty%
\expandafter\pgf@arrows@append@to@tips\expandafter{%
\expandafter\pgf@arrow@handle@shorthand@empty\expandafter{\csname pgf@ar@means@#1\endcsname}}%
\else%
\expandafter\expandafter\expandafter\pgf@arrows@meta@set\expandafter\expandafter\expandafter{%
\expandafter\pgf@arrows@options\expandafter}\expandafter{\csname pgf@ar@means@#1\endcsname}{\pgf@arrow@handle@shorthand}%
\fi%
\pgfutil@ifnextchar\pgf@stop\pgf@arrows@parser@done\pgfarrows@parser%
}
\def\pgf@arrow@handle@shorthand@empty#1{#1}
\def\pgf@arrow@handle@shorthand#1#2{%
\def\pgf@temp@opt{#2}%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@arrows@nested@options@temp%
\expandafter\expandafter\expandafter{\expandafter\pgf@temp@opt\pgf@arrows@nested@options}%
\expandafter\let\expandafter\pgf@arrows@nested@options\expandafter\pgf@arrows@nested@options@temp%
\expandafter#1%
\expandafter\def\expandafter\pgf@arrows@nested@options\expandafter{\pgf@arrows@nested@options}%
}
\let\pgf@arrows@nested@options\pgfutil@empty
\def\pgfsetarrowsstart#1{%
\let\pgf@arrow@tip@sequence\pgfutil@empty%
\pgf@arrows@translatetrue%
\expandafter\let\expandafter\pgf@arrows@direct\csname pgf@arrows@direct@name@start@#1\endcsname%
\ifx\pgf@arrows@direct\relax%
\edef\pgf@marshal{\noexpand\pgfarrows@initial@parser#1[]\noexpand\pgf@stop}%
\pgf@marshal%
\else%
\let\pgf@arrow@tip@sequence\pgf@arrows@direct%
\fi%
\let\pgf@start@tip@sequence\pgf@arrow@tip@sequence%
}
\def\pgf@arrow@swapper{%
\expandafter\let\expandafter\pgf@temp\csname pgf@ar@start@\pgf@temp\endcsname%
\ifx\pgf@temp\relax%
\def\pgf@temp{undefined}%
\fi%
}
\let\pgf@start@tip@sequence\pgfutil@empty
\let\pgf@end@tip@sequence\pgfutil@empty
\expandafter\def\csname pgf@arrows@direct@name@start@\endcsname{}
\expandafter\def\csname pgf@arrows@direct@name@end@\endcsname{}
\newdimen\pgfarrowsep
\newif\ifpgfarrowswap
\newif\ifpgfarrowreversed
\newif\ifpgfarrowharpoon
\newif\ifpgfarrowopen
\let\pgf@arrows@stroke@color\pgfutil@empty
\let\pgf@arrows@fill@color\pgfutil@empty
\def\pgfarrows@length@scale{1}
\def\pgfarrows@width@scale{1}
\def\pgfarrows@slant{0}
\let\pgfarrows@scale@list\pgfutil@empty
\def\pgfarrowsaddtolengthscalelist#1{\expandafter\def\expandafter\pgfarrows@scale@list\expandafter{\pgfarrows@scale@list#1\pgfarrows@length@scale#1}}
\def\pgfarrowsaddtowidthscalelist#1{\expandafter\def\expandafter\pgfarrows@scale@list\expandafter{\pgfarrows@scale@list#1\pgfarrows@width@scale#1}}
\pgfkeys{
/pgf/arrow keys/.cd,
scale/.code={%
\pgfmathparse{#1}%
\expandafter\pgfarrowsaddtooptions\expandafter{\expandafter\def\expandafter\pgfarrows@length@scale\expandafter{\pgfmathresult}}%
\expandafter\pgfarrowsaddtooptions\expandafter{\expandafter\def\expandafter\pgfarrows@width@scale\expandafter{\pgfmathresult}}%
},
scale length/.code={\pgfmathparse{#1}\expandafter\pgfarrowsaddtooptions\expandafter{\expandafter\def\expandafter\pgfarrows@length@scale\expandafter{\pgfmathresult}}},
scale width/.code={\pgfmathparse{#1}\expandafter\pgfarrowsaddtooptions\expandafter{\expandafter\def\expandafter\pgfarrows@width@scale\expandafter{\pgfmathresult}}},
slant/.code={\pgfmathparse{#1}\expandafter\pgfarrowsaddtooptions\expandafter{\expandafter\def\expandafter\pgfarrows@slant\expandafter{\pgfmathresult}}},
sep/.code={
\pgfarrowsthreeparameters{#1}%
\expandafter\pgfarrowsaddtooptions\expandafter{\expandafter\pgfarrowslinewidthdependent\pgfarrowstheparameters\pgfarrowsep\pgf@x}%
},
sep/.default=0.88pt .3 1,
swap/.code=\pgfarrowsaddtooptions{\ifpgfarrowswap\pgfarrowswapfalse\else\pgfarrowswaptrue\fi},
reversed/.code=\pgfarrowsaddtooptions{\ifpgfarrowreversed\pgfarrowreversedfalse\else\pgfarrowreversedtrue\fi},
harpoon/.is choice,
harpoon/.default=true,
harpoon/true/.code=\pgfarrowsaddtooptions{\pgfarrowharpoontrue},
harpoon/false/.code=\pgfarrowsaddtooptions{\pgfarrowharpoonfalse},
left/.style={harpoon},
right/.style={harpoon,swap},
color/.code=\pgfarrowsaddtooptions{\def\pgf@arrows@stroke@color{#1}},
fill/.code={%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgf@nonetext%
\pgfarrowsaddtooptions{\pgfarrowopentrue}
\else
\pgfarrowsaddtooptions{\pgfarrowopenfalse\def\pgf@arrows@fill@color{#1}}
\fi
},
fill/.value required,
open/.style={fill=none},
.unknown/.code={
\expandafter\pgfutil@in@\expandafter!\expandafter{\pgfkeyscurrentname}%
\ifpgfutil@in@%
\expandafter\pgfarrowsaddtooptions\expandafter{\expandafter\def\expandafter\pgf@arrows@stroke@color\expandafter{\pgfkeyscurrentname}}%
\else%
\pgfutil@doifcolorelse{\pgfkeyscurrentname}
{%
\expandafter\pgfarrowsaddtooptions\expandafter{\expandafter\def\expandafter\pgf@arrows@stroke@color\expandafter{\pgfkeyscurrentname}}%
}
{%
\edef\pgf@temp{\pgfkeyscurrentname}%
\pgfkeys{/errors/unknown key/.expand once=\expandafter{\pgf@temp}{#1}}%
}
\fi
}
}
\def\pgf@nonetext{none}
\def\pgfarrowsaddtooptions#1{\expandafter\def\expandafter\pgf@arrows@options\expandafter{\pgf@arrows@options#1}}
\def\pgfarrowsaddtolateoptions#1{\expandafter\def\expandafter\pgf@arrows@options\expandafter{\pgf@arrows@options\pgf@arrows@add@to@late@options{#1}}}
\def\pgf@arrows@add@to@late@options#1{\expandafter\def\expandafter\pgf@arrows@late@options\expandafter{\pgf@arrows@late@options#1}}
\def\pgfarrowsthreeparameters#1{%
\pgfarrowsthreeparameters@#1 +0 +0 +0 \pgf@stop%
}
\def\pgfarrowsthreeparameters@#1 #2 #3 #4\pgf@stop{%
\pgfmathsetlength\pgf@x{#1}%
\pgfmathsetmacro\pgf@temp@a{#2}%
\pgfmathsetmacro\pgf@temp@b{#3}%
\edef\pgfarrowstheparameters{{\the\pgf@x}{\pgf@temp@a}{\pgf@temp@b}}%
}
\def\pgfarrowsfourparameters#1{%
\pgfarrowsfourparameters@#1 +0 +0 +0 \pgf@stop%
}
\def\pgfarrowsfourparameters@#1:#2 #3 #4 #5\pgf@stop{%
\pgfmathsetmacro\pgf@temp@z{#1}%
\pgfmathsetlength\pgf@x{#2}%
\pgfmathsetmacro\pgf@temp@a{#3}%
\pgfmathsetmacro\pgf@temp@b{#4}%
\edef\pgfarrowstheparameters{{\pgf@temp@z}{\the\pgf@x}{\pgf@temp@a}{\pgf@temp@b}}%
}
\def\pgfarrows@angle@setup#1#2#3#4{%
\pgfarrowslinewidthdependent{#2}{#3}{#4}
\pgf@xc\pgf@x
\pgf@yc#1 pt%
\pgf@yc.5\pgf@yc%
\pgfpointpolar{\pgf@yc}{\pgf@xc}
\pgfarrowlength\pgf@x%
\pgf@y2\pgf@y%
\expandafter\pgf@arrows@add@to@late@options\expandafter{\expandafter\pgfarrowwidth\the\pgf@y}%
}
\def\pgfarrows@angle@setup@prime#1{%
\pgf@yc#1 pt %
\pgf@yc=0.5\pgf@yc
\pgfmathtan@{\pgf@sys@tonumber\pgf@yc}%
\pgfarrowwidth\pgfmathresult\pgfarrowlength%
\pgfarrowwidth2\pgfarrowwidth%
}
\def\pgfarrowslinewidthdependent#1#2#3{%
\pgf@x#1%
\ifdim\pgfinnerlinewidth>0pt%
\pgf@arrows@inner@line@width@dep{#2}{#3}%
\else%
\advance\pgf@x by#2\pgflinewidth%
\fi%
}
\def\pgf@arrows@inner@line@width@dep#1#2{%
\pgf@xa\pgflinewidth%
\pgf@xb-.5\pgflinewidth%
\pgf@xb#2\pgf@xb%
\advance\pgf@xa by\pgf@xb%
\pgf@xb\pgfinnerlinewidth%
\pgf@xb-.5\pgf@xb
\advance\pgf@xa by#2\pgf@xb%
\advance\pgf@x by#1\pgf@xa%
}
\def\pgfarrowslengthdependent#1#2#3#4{%
#4#1%
\advance#4by#2\pgfarrowlength%
\advance#4by#3\pgflinewidth%
}
\def\pgf@arrow@fullname#1{pgf@@ar@#1@\the\pgflinewidth @\pgfinnerlinewidth @\ifpgfarrowreversed r\fi @\pgf@arrows@stroke@color @\pgf@arrows@fill@color @\csname pgf@ar@par@#1\endcsname}
\def\pgf@arrow@id@count{0}%
\def\pgfarrows@getid#1#2{%
\let\pgf@arrows@late@options\pgfutil@empty%
\csname pgf@ar@defaults@#1\endcsname%
\pgf@arrows@options@scope
#2\relax%
\pgf@arrows@nested@options%
\pgf@arrows@late@options%
\pgfarrows@scale@list%
\expandafter\global\expandafter\let\expandafter\pgf@arrow@id\csname\pgf@arrow@fullname{#1}\endcsname\relax%
\ifx\pgf@arrow@id\relax%
\pgf@arrows@instantiate{#1}
\fi%
}
\def\pgf@arrows@instantiate#1{%
\pgfutil@tempcnta\pgf@arrow@id@count\relax%
\advance\pgfutil@tempcnta by1\relax%
\xdef\pgf@arrow@id@count{\the\pgfutil@tempcnta}%
\expandafter\global\expandafter\let\csname\pgf@arrow@fullname{#1}\endcsname\pgf@arrow@id@count%
\global\let\pgf@arrow@id\pgf@arrow@id@count%
{%
\pgfclearid%
\csname pgf@ar@setup@#1\endcsname%
\ifpgfarrowreversed%
\pgf@arrows@handle@reverse%
\fi%
\expandafter\global\expandafter\let\csname pgf@ar@saves@\pgf@arrow@id\endcsname\pgf@arrows@saves%
\expandafter\global\expandafter\let\csname pgf@ar@hull@\pgf@arrow@id\endcsname\pgf@arrows@convexhull%
\expandafter\xdef\csname pgf@ar@ends@\pgf@arrow@id\endcsname{{\pgf@arrows@the@tipend}{\pgf@arrows@the@backend}{\pgf@arrows@the@lineend}}%
\expandafter\xdef\csname pgf@ar@visual@\pgf@arrow@id\endcsname{{\pgf@arrows@the@visualtipend}{\pgf@arrows@the@visualbackend}{}}%
\edef\pgf@arrow@code{%
\ifpgfarrowreversed\noexpand\pgftransformxscale{-1}\fi%
\expandafter\noexpand\csname pgf@ar@code@#1\endcsname%
}%
\expandafter\global\expandafter\let\csname pgf@ar@inst@code@\pgf@arrow@id\endcsname\pgf@arrow@code%
\expandafter\ifx\csname pgf@ar@do@cache@#1\endcsname\pgf@truetext%
\pgfsysprotocol@getcurrentprotocol\pgf@arrow@temp%
{%
\pgfinterruptpath%
\let\pgfusepath=\pgf@nousepath@here%
\pgf@relevantforpicturesizefalse%
\pgftransformreset%
\pgfsysprotocol@setcurrentprotocol\pgfutil@empty%
\pgfsysprotocol@bufferedtrue%
\pgfscope%
\pgf@arrow@code%
\endpgfscope%
\pgfsysprotocol@getcurrentprotocol\pgf@@arrow@temp%
\expandafter\gdef\expandafter\pgf@arrow@code\expandafter{\expandafter\pgfsysprotocol@literal\expandafter{\pgf@@arrow@temp}}%
\endpgfinterruptpath%
}%
\pgfsysprotocol@setcurrentprotocol\pgf@arrow@temp%
\fi%
\expandafter\global\expandafter\let\csname pgf@ar@cache@\pgf@arrow@id\endcsname\pgf@arrow@code%
}%
}
\def\pgf@truetext{true}
\def\pgf@arrows@copy@tipend{\pgf@arrows@the@tipend}
\def\pgf@arrows@copy@backend{\pgf@arrows@the@backend}
\def\pgf@arrows@copy@lineend{\pgf@arrows@the@lineend}
\def\pgf@arrows@zeropt{0pt}%
\let\pgf@arrows@saves\pgfutil@empty%
\let\pgf@arrows@convexhull\pgfutil@empty%
\let\pgf@arrows@the@tipend\pgf@arrows@zeropt%
\let\pgf@arrows@the@backend\pgf@arrows@zeropt%
\let\pgf@arrows@the@lineend\pgf@arrows@zeropt%
\let\pgf@arrows@the@visualtipend\pgf@arrows@copy@tipend%
\let\pgf@arrows@the@visualbackend\pgf@arrows@copy@backend%
\def\pgf@arrows@handle@reverse{%
\pgf@x\pgf@arrows@the@visualtipend\pgf@x-\pgf@x%
\pgf@y\pgf@arrows@the@visualbackend\pgf@y-\pgf@y
\edef\pgf@arrows@the@visualtipend{\the\pgf@y}%
\edef\pgf@arrows@the@visualbackend{\the\pgf@x}%
\pgf@x\pgf@arrows@the@tipend\pgf@x-\pgf@x%
\pgf@y\pgf@arrows@the@backend\pgf@y-\pgf@y
\edef\pgf@arrows@the@tipend{\the\pgf@y}%
\edef\pgf@arrows@the@backend{\the\pgf@x}%
\pgf@x\pgf@arrows@the@lineend\pgf@x-\pgf@x\edef\pgf@arrows@the@lineend{\the\pgf@x}%
\let\pgf@temp\pgf@arrows@convexhull%
\let\pgf@arrows@convexhull\pgfutil@empty%
\let\pgf@arrow@hull@point\pgf@arrow@hull@point@reverse%
\pgf@temp%
}
\def\pgf@arrow@hull@point@reverse#1#2{%
\pgf@x#1%
\pgfarrowshullpoint{-\pgf@x}{#2}%
}
\def\pgf@nousepath@here#1{\pgferror{The definition of an arrow may not use \string\pgfusepath}}
\def\pgfarrowssavethe#1{%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@arrows@saves%
\expandafter\expandafter\expandafter{\expandafter\pgf@arrows@saves\expandafter#1\the#1\relax}
}
\def\pgfarrowssave#1{%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@arrows@saves%
\expandafter\expandafter\expandafter{\expandafter\pgf@arrows@saves\expandafter\def\expandafter#1\expandafter{#1}}
}
\def\pgfarrowshullpoint#1#2{%
\pgf@x#1\relax%
\pgf@y#2\relax%
\edef\pgf@arrows@temp{\noexpand\pgf@arrows@convexhull\noexpand\pgf@arrow@hull@point{\the\pgf@x}{\the\pgf@y}}%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgf@arrows@convexhull\expandafter\expandafter\expandafter{\pgf@arrows@temp}%
}
\def\pgfarrowsupperhullpoint#1#2{%
\pgf@x#1\relax%
\pgf@y#2\relax%
\ifdim\pgf@y>0pt
\edef\pgf@arrows@temp{\noexpand\pgf@arrows@convexhull\noexpand\pgf@arrow@hull@point{\the\pgf@x}{\the\pgf@y}\ifpgfarrowharpoon\else\noexpand\pgf@arrow@hull@point{\the\pgf@x}{-\the\pgf@y}\fi}%
\else
\edef\pgf@arrows@temp{\noexpand\pgf@arrows@convexhull\noexpand\pgf@arrow@hull@point{\the\pgf@x}{\the\pgf@y}}%
\fi
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgf@arrows@convexhull\expandafter\expandafter\expandafter{\pgf@arrows@temp}%
}
\def\pgfarrowssettipend#1{\pgf@x#1\edef\pgf@arrows@the@tipend{\the\pgf@x}}
\def\pgfarrowssetbackend#1{\pgf@x#1\edef\pgf@arrows@the@backend{\the\pgf@x}}
\def\pgfarrowssetlineend#1{\pgf@x#1\edef\pgf@arrows@the@lineend{\the\pgf@x}}
\def\pgfarrowssetvisualtipend#1{\pgf@x#1\edef\pgf@arrows@the@visualtipend{\the\pgf@x}}
\def\pgfarrowssetvisualbackend#1{\pgf@x#1\edef\pgf@arrows@the@visualbackend{\the\pgf@x}}
\def\pgf@arrow@compute@shortening#1{%
\let\pgf@arrow@handle\pgf@arrow@compute@shortening@
\let\pgf@arrow@handle@dot\pgf@arrow@after@line@endtrue%
\pgf@arrow@after@line@endfalse%
\pgf@xa0pt%
\pgf@xb0pt%
#1%
}
\newif\ifpgf@arrow@after@line@end
\def\pgf@arrow@compute@shortening@#1#2{%
{\pgfarrows@getid{#1}{#2}\ifnum\pgf@arrow@flex@mode>0\relax\global\pgf@precise@shorteningtrue\fi\expandafter}\expandafter\pgf@x\the\pgfarrowsep%
\expandafter\expandafter\expandafter\pgf@arrow@cont@short\csname pgf@ar@ends@\pgf@arrow@id\endcsname%
}
\def\pgf@dot@text{.}
\def\pgf@arrow@cont@short#1#2#3{%
\advance\pgf@xb by#1%
\pgf@xc#2%
\advance\pgf@xb by-\pgf@xc%
\advance\pgf@xb by\pgf@x%
\ifpgf@arrow@after@line@end%
\advance\pgf@xa by#1%
\advance\pgf@xa by\pgf@x%
\pgf@xc#2%
\advance\pgf@xa by-\pgf@xc%
\else%
\pgf@xa#1%
\advance\pgf@xa by\pgf@x%
\pgf@xc#3%
\advance\pgf@xa by-\pgf@xc%
\fi%
}
\def\pgf@arrow@rigid@arrow#1#2{%
{%
\pgf@xb=#2%
\pgftransformxshift{-\pgf@xb}%
\let\pgf@arrow@handle\pgf@arrow@rigid
\let\pgf@arrow@handle@dot\relax%
#1%
}%
}
\def\pgf@arrow@rigid#1#2{%
{%
\pgfarrows@getid{#1}{#2}%
\expandafter\expandafter\expandafter\pgf@arrow@drawer@shift\csname pgf@ar@ends@\pgf@arrow@id\endcsname%
\ifdim\pgfarrows@slant pt=0pt%
\else%
\pgftransformxslant{\pgfarrows@slant}%
\fi%
\ifpgfarrowswap%
\pgftransformyscale{-1}%
\fi%
{%
\csname pgf@ar@saves@\pgf@arrow@id\endcsname%
\pgf@arrows@rigid@hull%
}%
\expandafter}%
\expandafter\pgftransformxshift\expandafter{\the\pgf@xc}%
}
\def\pgf@arrow@draw@arrow#1#2{%
{%
\pgf@xb=#2%
\pgftransformxshift{-\pgf@xb}%
\let\pgf@arrow@handle\pgf@arrow@drawer
\let\pgf@arrow@handle@dot\relax%
#1%
}%
}
\def\pgf@arrow@drawer#1#2{%
{%
\pgfarrows@getid{#1}{#2}%
\expandafter\expandafter\expandafter\pgf@arrow@drawer@shift\csname pgf@ar@ends@\pgf@arrow@id\endcsname%
\ifdim\pgfarrows@slant pt=0pt%
\else%
\pgftransformxslant{\pgfarrows@slant}%
\fi%
\ifpgfarrowswap%
\pgftransformyscale{-1}%
\fi%
{%
\csname pgf@ar@saves@\pgf@arrow@id\endcsname%
\pgfscope%
\pgf@arrows@color@setup%
\pgflowlevelsynccm\csname pgf@ar@cache@\pgf@arrow@id\endcsname%
\endpgfscope%
\pgf@arrows@rigid@hull%
}%
\expandafter}%
\expandafter\pgftransformxshift\expandafter{\the\pgf@xc}%
}
\def\pgf@arrows@color@setup@restore@std@colors{%
\pgfutil@namelet{\string\color@pgfstrokecolor}{pgf@strokecolor@global}%
\pgfutil@namelet{\string\color@pgffillcolor}{pgf@fillcolor@global}%
}%
\def\pgf@arrows@color@setup{%
\ifx\pgf@arrows@stroke@color\pgfutil@empty\else\pgfsetstrokecolor{\pgf@arrows@stroke@color}\fi%
\ifx\pgf@arrows@fill@color\pgfutil@empty%
\ifx\pgf@strokecolor@global\pgf@fillcolor@global
\else
\pgf@arrows@color@setup@restore@std@colors
\pgfsetfillcolor{pgfstrokecolor}%
\fi%
\else%
\pgf@arrows@color@setup@restore@std@colors
\pgfsetfillcolor{\pgf@arrows@fill@color}%
\fi%
}
\def\pgf@arrow@drawer@shift#1#2#3{%
\pgf@xb#2\pgftransformxshift{-\pgf@xb}%
\pgf@xc#1%
\advance\pgf@xc by\pgfarrowsep%
\advance\pgf@xc by-\pgf@xb%
}
\def\pgf@arrows@rigid@hull{%
\ifpgf@relevantforpicturesize%
\expandafter\let\expandafter\pgf@temp\csname pgf@ar@hull@\pgf@arrow@id\endcsname%
\ifx\pgf@temp\pgfutil@empty\else%
\let\pgf@arrow@hull@point\pgf@arrow@hull@point@first%
\pgf@temp%
\pgf@arrow@update@bb%
\fi%
\fi
}
\def\pgf@arrow@hull@point@first#1#2{%
\pgf@x#1\pgf@y#2%
\pgf@xa\pgf@pt@aa\pgf@x%
\advance\pgf@xa by\pgf@pt@ba\pgf@y%
\pgf@ya\pgf@pt@ab\pgf@x%
\advance\pgf@ya by\pgf@pt@bb\pgf@y%
\pgf@xb\pgf@xa\pgf@yb\pgf@ya%
\let\pgf@arrow@hull@point\pgf@arrow@hull@point@other%
}
\def\pgf@arrow@hull@point@other#1#2{%
\pgfutil@tempdima#1\pgfutil@tempdimb#2%
\pgf@x\pgf@pt@aa\pgfutil@tempdima%
\advance\pgf@x by\pgf@pt@ba\pgfutil@tempdimb%
\pgf@y\pgf@pt@ab\pgfutil@tempdima%
\advance\pgf@y by\pgf@pt@bb\pgfutil@tempdimb%
\ifdim\pgf@x<\pgf@xa\pgf@xa\pgf@x\else\ifdim\pgf@x>\pgf@xb\pgf@xb\pgf@x\fi\fi%
\ifdim\pgf@y<\pgf@ya\pgf@ya\pgf@y\else\ifdim\pgf@y>\pgf@yb\pgf@yb\pgf@y\fi\fi%
}
\def\pgf@arrow@update@bb{%
\advance\pgf@xa by\pgf@pt@x%
\advance\pgf@ya by\pgf@pt@y%
\advance\pgf@xb by\pgf@pt@x%
\advance\pgf@yb by\pgf@pt@y%
\ifdim\pgf@picmaxx=-16000pt\relax%
\global\pgf@picminx\pgf@xa%
\global\pgf@picmaxx\pgf@xb%
\global\pgf@picminy\pgf@ya%
\global\pgf@picmaxy\pgf@yb%
\else%
\ifdim\pgf@xa<\pgf@picminx\global\pgf@picminx\pgf@xa\fi%
\ifdim\pgf@ya<\pgf@picminy\global\pgf@picminy\pgf@ya\fi%
\ifdim\pgf@xb>\pgf@picmaxx\global\pgf@picmaxx\pgf@xb\fi%
\ifdim\pgf@yb>\pgf@picmaxy\global\pgf@picmaxy\pgf@yb\fi%
\fi%
}
\def\pgfsetarrows#1{\pgf@arrows#1\pgf@stop}
\def\pgf@arrows{\pgfutil@ifnextchar[\pgf@arrows@test@opt\pgf@arrows@}%
\def\pgf@arrows@#1-#2\pgf@stop{%
\pgfsetarrowsstart{#1}%
\pgfsetarrowsend{#2}%
}
\def\pgf@arrows@test@opt[{%
\pgfutil@ifnextchar-{\pgf@arrows@[}%
\pgf@arrows@test@opt@%
}
\def\pgf@arrows@test@opt@#1]{%
\pgfutil@ifnextchar\pgf@stop{%
\let\pgf@arrows@options\pgf@arrows@options@scope%
\pgfkeys{/pgf/arrow keys/.cd,#1}%
\let\pgf@arrows@options@scope\pgf@arrows@options%
\pgfutil@gobble%
}{%
\pgf@arrows@[#1]%
}%
}
\let\pgf@arrows@options@scope\pgfutil@empty
\pgfdeclarearrow{
name = .,
drawing code =
}
\pgfdeclarearrow{
name = _,
defaults = {sep},
drawing code =
}
\pgfdeclarearrow{ name = To, means = } %
\pgfdeclarearrow{ name = Bar, means = } %
\pgfkeys{
<-> /.tip = {To},
>-< /.tip = {>[reversed]},
| /.tip = {Bar}
}
\pgfkeys {}
\def\pgf@arrows@direct@def#1#2{\expandafter\pgf@arrows@direct@def@\expandafter{\csname pgf@ar@means@#2\endcsname}{#1}}
\def\pgf@arrows@direct@def@#1#2{\expandafter\def\csname pgf@arrows@direct@name@#2\endcsname{\pgf@arrow@handle@shorthand@empty{#1}}}
\pgf@arrows@direct@def{start@[}{]}
\pgf@arrows@direct@def{start@]}{[}
\pgf@arrows@direct@def{start@spaced [}{spaced ]}
\pgf@arrows@direct@def{start@spaced ]}{spaced [}
\pgf@arrows@direct@def{end@[}{[}
\pgf@arrows@direct@def{end@]}{]}
\pgf@arrows@direct@def{end@spaced [}{spaced [}
\pgf@arrows@direct@def{end@spaced ]}{spaced ]}
\def\pgfsetarrowoptions#1#2{\expandafter\def\csname pgf@arrow@compat@opt@#1\endcsname{#2}}
\def\pgfgetarrowoptions#1{\csname pgf@arrow@compat@opt@#1\endcsname}
\def\pgfarrowsdeclare#1#2#3#4{%
\pgfdeclarearrow{ name ={#1}-{#2}, setup code ={#3}, drawing code={#4}, parameters/.expand once={\csname pgf@arrow@compat@opt@#2\endcsname}}%
\expandafter\def\csname pgf@arrow@compat@opt@#2\endcsname{0}}
\def\pgfarrowsleftextend#1{\pgfmathsetlength\pgf@xa{#1}\pgfarrowssetbackend{\pgf@xa}}
\def\pgfarrowsrightextend#1{\pgfmathsetlength\pgf@xb{#1}\pgfarrowssettipend{\pgf@xb}}
\def\pgfarrowsdeclarealias#1#2#3#4{\pgfdeclarearrow{ name ={#1}-{#2}, means ={#4} } }
\def\pgfarrowsdeclarereversed#1#2#3#4{\pgfdeclarearrow{ name ={#1}-{#2}, means={{#4}[reversed]}}}
\def\pgfarrowsdeclarecombine{\pgfutil@ifnextchar*{\pgfarrowsdeclarecombine@star}{\pgf@@arrowsdeclarecombine}}
\def\pgf@@arrowsdeclarecombine{\pgfutil@ifnextchar[{\pgf@arrowsdeclarecombine}{\pgf@arrowsdeclarecombine[0pt]}}
\def\pgf@arrowsdeclarecombine[#1]#2#3#4#5#6#7{\def\pgf@@temp{#1}\ifx\pgf@@temp\pgf@linewidthtext\def\pgf@@temp{+0pt 1}\fi%
\pgfdeclarearrow{name ={#2}-{#3}, means={#5[sep/.expand once=\pgf@@temp]#6}}}
\def\pgf@linewidth@text{\pgflinewidth}
\def\pgfarrowsdeclarecombine@star*{\pgfutil@ifnextchar[{\pgf@arrowsdeclarecombine@star}{\pgf@arrowsdeclarecombine@star[0pt]}}
\def\pgf@arrowsdeclarecombine@star[#1]#2#3#4#5#6#7{\def\pgf@@temp{#1}\ifx\pgf@@temp\pgf@linewidthtext\def\pgf@@temp{+0pt 1}\fi%
\pgfdeclarearrow{name ={#2}-{#3}, means={#5[sep/.expand once=\pgf@@temp].#6}}}
\def\pgfarrowsdeclaredouble{\pgfutil@ifnextchar[{\pgf@arrowsdeclaredouble}{\pgf@arrowsdeclaredouble[0pt]}}
\def\pgf@arrowsdeclaredouble[#1]#2#3#4#5{\pgfarrowsdeclarecombine[#1]{#2}{#3}{#4}{#5}{#4}{#5}}
\def\pgfarrowsdeclaretriple{\pgfutil@ifnextchar[{\pgf@arrowsdeclaretriple}{\pgf@arrowsdeclaretriple[0pt]}}
\def\pgf@arrowsdeclaretriple[#1]#2#3#4#5{ \pgfarrowsdeclarecombine[#1]{pgf@trip@#2}{pgf@trip@#3}{#4}{#5}{#4}{#5}%
\pgfarrowsdeclarecombine[#1]{#2}{#3}{pgf@trip@#2}{pgf@trip@#3}{#4}{#5}}
\def\pgf@linewidthtext{\pgflinewidth}
\pgfarrowsdeclare{stealth}{stealth}
{
\pgfutil@tempdima=0.28pt%
\pgfutil@tempdimb=\pgflinewidth%
\ifdim\pgfinnerlinewidth>0pt%
\pgfmathsetlength\pgfutil@tempdimb{.6\pgflinewidth-.4*\pgfinnerlinewidth}%
\fi%
\advance\pgfutil@tempdima by.3\pgfutil@tempdimb%
\pgfarrowsleftextend{+-3\pgfutil@tempdima}
\pgfarrowsrightextend{+5\pgfutil@tempdima}
}
{
\pgfutil@tempdima=0.28pt%
\pgfutil@tempdimb=\pgflinewidth%
\ifdim\pgfinnerlinewidth>0pt%
\pgfmathsetlength\pgfutil@tempdimb{.6\pgflinewidth-.4*\pgfinnerlinewidth}%
\fi%
\advance\pgfutil@tempdima by.3\pgfutil@tempdimb%
\pgfpathmoveto{\pgfqpoint{5\pgfutil@tempdima}{0pt}}
\pgfpathlineto{\pgfqpoint{-3\pgfutil@tempdima}{4\pgfutil@tempdima}}
\pgfpathlineto{\pgfpointorigin}
\pgfpathlineto{\pgfqpoint{-3\pgfutil@tempdima}{-4\pgfutil@tempdima}}
\pgfusepathqfill
}
\pgfarrowsdeclarereversed{stealth reversed}{stealth reversed}{stealth}{stealth}
\pgfarrowsdeclare{to}{to}
{
\pgfutil@tempdima=-0.84pt%
\advance\pgfutil@tempdima by-1.3\pgflinewidth%
\pgfutil@tempdimb=0.21pt%
\advance\pgfutil@tempdimb by.625\pgflinewidth%
\pgfarrowsleftextend{+\pgfutil@tempdima}
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.28pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfsetlinewidth{0.8\pgflinewidth}
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfsetroundjoin
\pgfpathmoveto{\pgfqpoint{-3\pgfutil@tempdima}{4\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{-2.75\pgfutil@tempdima}{2.5\pgfutil@tempdima}}
{\pgfqpoint{0pt}{0.25\pgfutil@tempdima}}
{\pgfqpoint{0.75\pgfutil@tempdima}{0pt}}
\pgfpathcurveto
{\pgfqpoint{0pt}{-0.25\pgfutil@tempdima}}
{\pgfqpoint{-2.75\pgfutil@tempdima}{-2.5\pgfutil@tempdima}}
{\pgfqpoint{-3\pgfutil@tempdima}{-4\pgfutil@tempdima}}
\pgfusepathqstroke
}
\pgfkeys{To /.tip = to}
\pgfarrowsdeclare{to reversed}{to reversed}
{
\pgfutil@tempdima=-0.21pt%
\advance\pgfutil@tempdima by-0.475\pgflinewidth%
\pgfutil@tempdimb=0.98pt%
\advance\pgfutil@tempdimb by1.45\pgflinewidth%
\pgfarrowsleftextend{+\pgfutil@tempdima}
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.28pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfsetlinewidth{+0.8\pgflinewidth}
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfsetroundjoin
\pgfpathmoveto{\pgfqpoint{3.5\pgfutil@tempdima}{4\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{3.25\pgfutil@tempdima}{2.5\pgfutil@tempdima}}
{\pgfqpoint{0.5\pgfutil@tempdima}{0.25\pgfutil@tempdima}}
{\pgfqpoint{-0.25\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{0.5\pgfutil@tempdima}{-0.25\pgfutil@tempdima}}
{\pgfqpoint{3.25\pgfutil@tempdima}{-2.5\pgfutil@tempdima}}
{\pgfqpoint{3.5\pgfutil@tempdima}{-4\pgfutil@tempdima}}
\pgfusepathqstroke
}
\pgfarrowsdeclare{latex}{latex}
{
\pgfutil@tempdima=0.28pt%
\pgfutil@tempdimb=\pgflinewidth%
\ifdim\pgfinnerlinewidth>0pt%
\pgfmathsetlength\pgfutil@tempdimb{.6\pgflinewidth-.4*\pgfinnerlinewidth}%
\fi%
\advance\pgfutil@tempdima by.3\pgfutil@tempdimb%
\pgfarrowsleftextend{+-1\pgfutil@tempdima}
\pgfarrowsrightextend{+9\pgfutil@tempdima}
}
{
\pgfutil@tempdima=0.28pt%
\pgfutil@tempdimb=\pgflinewidth%
\ifdim\pgfinnerlinewidth>0pt%
\pgfmathsetlength\pgfutil@tempdimb{.6\pgflinewidth-.4*\pgfinnerlinewidth}%
\fi%
\advance\pgfutil@tempdima by.3\pgfutil@tempdimb%
\pgfpathmoveto{\pgfqpoint{9\pgfutil@tempdima}{0pt}}
\pgfpathcurveto
{\pgfqpoint{6.3333\pgfutil@tempdima}{.5\pgfutil@tempdima}}
{\pgfqpoint{2\pgfutil@tempdima}{2\pgfutil@tempdima}}
{\pgfqpoint{-1\pgfutil@tempdima}{3.75\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{-1\pgfutil@tempdima}{-3.75\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{2\pgfutil@tempdima}{-2\pgfutil@tempdima}}
{\pgfqpoint{6.3333\pgfutil@tempdima}{-.5\pgfutil@tempdima}}
{\pgfqpoint{9\pgfutil@tempdima}{0pt}}
\pgfusepathqfill
}
\pgfarrowsdeclarereversed{latex reversed}{latex reversed}{latex}{latex}
\pgfarrowsdeclare{@bar}{@bar}
{
\pgfarrowsleftextend{+-0.25\pgflinewidth}
\pgfarrowsrightextend{+.75\pgflinewidth}
}
{
\pgfutil@tempdima=2pt%
\advance\pgfutil@tempdima by1.5\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetrectcap
\pgfpathmoveto{\pgfqpoint{0.25\pgflinewidth}{-\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0.25\pgflinewidth}{\pgfutil@tempdima}}
\pgfusepathqstroke
}
\pgfkeys{Bar /.tip = @bar}
\pgfarrowsdeclare{space}{space}
{
\pgfutil@tempdima=0.88pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfarrowsleftextend{0pt}
\pgfarrowsrightextend{\pgfutil@tempdima}
}
{}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex ====
\ProvidesFileRCS{pgfcoreexternal.code.tex}
\newif\ifpgfexternal@aux@in@dpth
\newif\ifpgfexternal@info
\pgfkeys{
/pgf/images/include external/.code={\pgfimage{#1}},
/pgf/images/aux in dpth/.is if=pgfexternal@aux@in@dpth,
/pgf/images/aux in dpth/.default=true,
/pgf/images/trim external/.code n args={4}{%
\def\pgf@external@kern@left{#1}%
\def\pgf@external@kern@bottom{#2}%
\def\pgf@external@kern@right{#3}%
\def\pgf@external@kern@top{#4}%
\ifx\pgf@external@kern@left\pgfutil@empty\def\pgf@external@kern@left{0sp}\fi%
\ifx\pgf@external@kern@bottom\pgfutil@empty\def\pgf@external@kern@bottom{0sp}\fi%
\ifx\pgf@external@kern@right\pgfutil@empty\def\pgf@external@kern@right{0sp}\fi%
\ifx\pgf@external@kern@top\pgfutil@empty\def\pgf@external@kern@top{0sp}\fi%
},
/pgf/images/trim external={1truein}{1truein}{1truein}{1truein},
/pgf/images/external info/.is if=pgfexternal@info,
/pgf/images/external info/.default=true,
}
\newif\ifpgfexternalreadmainaux
\pgfexternalreadmainauxtrue
\def\pgfrealjobname#1{%
\global\let\pgfactualjobname=\jobname
\edef\pgf@tempa{\expandafter\string\csname #1\endcsname}%
\edef\pgf@tempb{\expandafter\string\csname\jobname\endcsname}%
\ifx\pgf@tempa\pgf@tempb%
\else%
\pgf@external@grabshipouttrue%
\pgfexternal@nofiles%
\ifpgfexternalreadmainaux
\gdef\jobname{#1}%
\fi
\ifpgfexternal@aux@in@dpth
\csname newwrite\endcsname\w@pgfexternal@auxout
\fi
\pgfexternal@geometry@compatibility
\fi%
\gdef\pgfrealjobname##1{}%
}
\def\pgfexternal@geometry@compatibility{%
\pgfutil@ifundefined{geometry}{%
}{%
\pgf@typeout{Package TikZ externalization: calling \string\geometry{driver=none} during externalization.^^J}%
\geometry{driver=none}%
}%
}%
\def\pgfexternal@nofiles{%
\let\pgfexternal@nofiles@=\relax
\def\relax{\relax}%
\csname nofiles\endcsname
\let\relax=\pgfexternal@nofiles@
}%
\newif\ifpgf@external@grabshipout
\newbox\pgfexternal@startupbox
\pgfutil@ifundefined{AtBeginDocument}{}{%
\AtBeginDocument{%
\ifpgf@external@grabshipout%
\global\let\pgfexternal@originalshipout=\shipout%
\global\def\shipout{\setbox\pgfpic=}%
\maxdeadcycles=10000%
{%
\output{\global\setbox\pgfexternal@startupbox=\vbox{\csname @begindvi\endcsname\unvbox255}}%
\hbox{}\eject%
}%
\fi%
}
}%
\pgfutil@ifundefined{AtEndDocument}{}{%
\AtEndDocument{%
\ifpgf@external@grabshipout
\pgfutil@ifundefined{pgfexternal@did@a@shipout}{%
\pgfexternal@error@no@shipout
}{}%
\fi
}%
}
\def\pgfexternal@error@no@shipout{%
\pgferror{Sorry, image externalization failed: the resulting image was EMPTY. I tried to externalize '\pgfactualjobname'. Perhaps there was a typo somewhere? Please check that your document contains '\string\beginpgfgraphicnamed{\pgfactualjobname} ... \string\endpgfgraphicnamed'}%
}%
\def\pgf@externalbegin#1{%
\let\pgf@next=\pgf@external@normal%
\ifpgf@external@grabshipout%
\edef\pgf@tempa{\expandafter\string\csname #1\endcsname}%
\edef\pgf@tempb{\expandafter\string\csname\pgfactualjobname\endcsname}%
\ifx\pgf@tempa\pgf@tempb%
\let\pgf@next=\pgf@external@grab%
\fi%
\fi%
\pgf@next{#1}%
}
\AtBeginDocument{
\let\beginpgfgraphicnamed=\pgf@externalbegin%
\let\endpgfgraphicnamed=\unskip
}
\def\pgf@external@normal#1{%
\let\pgf@filename=\pgfutil@empty%
\expandafter\pgf@findfile\pgfsys@imagesuffixlist:+{#1}%
\ifx\pgf@filename\pgfutil@empty%
\let\pgf@next=\relax%
\else%
\let\pgf@next=\pgf@replacepicturebygraphic%
\fi%
\pgf@next%
}
\long\def\pgf@replacepicturebygraphic#1\endpgfgraphicnamed{%
\expandafter\pgfincludeexternalgraphics\expandafter{\pgf@filename}\unskip
}
\def\pgfincludeexternalgraphics#1{%
\begingroup
\pgfexternalreaddpth{#1}%
\pgfkeysifdefined{/pgf/images/include external/#1/.@cmd}{%
\pgfkeysgetvalue{/pgf/images/include external/#1/.@cmd}\pgf@tempa
\pgfkeyslet{/pgf/images/include external/.@cmd}\pgf@tempa
}{}%
\setbox1=\hbox{\pgfkeysvalueof{/pgf/images/include external/.@cmd}{#1}\pgfeov}%
\ifdim\pgfexternaltrimleft=0sp \else \kern\pgfexternaltrimleft\relax \fi
\ifdim\pgfexternaldepth=0pt
\box1
\else
\dimen0=\pgfexternaldepth\relax
\hbox{\lower\dimen0 \box1 }%
\fi
\ifdim\pgfexternaltrimright=0sp \else \kern\pgfexternaltrimright\relax \fi
\endgroup
}
\def\pgfexternalreaddpth#1{%
\edef\pgfexternalreaddpth@restore{%
\noexpand\endlinechar=\the\endlinechar\space
\noexpand\catcode`\noexpand\@=\the\catcode`\@\space
}%
\def\pgfexternaldepth{0sp}%
\def\pgfexternaltrimleft{0sp}%
\def\pgfexternaltrimright{0sp}%
\endlinechar=-1 %
\catcode`\@=11
\openin\r@pgf@reada=#1.dpth
\pgfincludeexternalgraphics@read@dpth
\pgfexternalreaddpth@restore
}%
\def\pgfincludeexternalgraphics@read@dpth{%
\ifeof\r@pgf@reada
\closein\r@pgf@reada
\else
\read\r@pgf@reada to\pgfincludeexternalgraphics@auxline
\ifx\pgfincludeexternalgraphics@auxline\pgfutil@empty
\else
\expandafter\pgfincludeexternalgraphics@read@dpth@line\pgfincludeexternalgraphics@auxline\pgfincludeexternalgraphics@read@dpth@line@EOI
\fi
\expandafter\pgfincludeexternalgraphics@read@dpth
\fi
}%
\def\pgfexternal@restore#1{#1}%
\long\def\pgfincludeexternalgraphics@read@dpth@line@getfirst#1#2\pgfincludeexternalgraphics@read@dpth@line@EOI{%
\def\pgf@first{#1}%
}%
\long\def\pgfincludeexternalgraphics@read@dpth@line#1\pgfincludeexternalgraphics@read@dpth@line@EOI{%
\pgfincludeexternalgraphics@read@dpth@line@getfirst#1\pgfincludeexternalgraphics@read@dpth@line@EOI
\expandafter\ifcat\expandafter\noexpand\pgf@first\relax
\expandafter\ifx\pgf@first\pgfexternal@restore
#1%
\else
\pgfutil@ifundefined{if@filesw}{%
}{%
\if@filesw
{%
\toks0={#1}%
\immediate\write\@auxout{%
\noexpand\def\noexpand\dpthimport{\the\toks0}\noexpand\dpthimport}%
}%
\fi
}%
\fi
\else%
\def\pgfexternaldepth{#1}%
\fi
}%
\def\pgfexternalstorecommand#1{%
}%
\def\pgfexternalstorecommand@isexporting#1{%
\immediate\write\w@pgfexternal@auxout{\noexpand\pgfexternal@restore{#1}}%
}%
\def\pgf@external@grab#1{%
\def\pgf@filename{#1}%
\ifpgfexternal@aux@in@dpth
\begingroup
\pgf@external@init@aux@in@dpth
\let\G@refundefinedtrue=\pgf@external@grab@refundefinedtrue
\fi
\gdef\pgf@trimleft@final{0sp}%
\gdef\pgf@trimright@final{0sp}%
\setbox\pgfpic=\hbox\bgroup\bgroup%
\let\endpgfgraphicnamed=\pgf@externalend%
}
{\catcode`\^=12 \gdef\pgfexternal@hat{^}}
\expandafter\let\expandafter\pgf@external@grab@refundefinedtrue@orig\csname G@refundefinedtrue\endcsname
\def\pgf@external@grab@refundefinedtrue{%
\pgf@external@grab@refundefinedtrue@orig
\begingroup
\def\n{\pgfexternal@hat\pgfexternal@hat J}%
\pgfexternalstorecommand{%
\pgf@external@grab@refundefinedtrue@code
\noexpand\immediate\noexpand\write16{\pgf@external@grab@refundefinedtrue@warning}%
\noexpand\G@refundefinedtrue
}%
\endgroup
}%
\def\pgf@external@grab@refundefinedtrue@code{}
\def\pgf@external@grab@refundefinedtrue@warning{%
LaTeX Warning: External picture `\pgfactualjobname' contains undefined references\noexpand\on@line.\n
}%
\let\pgf@external@@protected@write@orig=\protected@write
\long\def\pgf@external@@protected@write@immediate#1#2#3{%
\begingroup
\let\pgf@write@=\write
\def\write{\noexpand\immediate\pgf@write@}%
\pgf@external@@protected@write@orig{#1}{#2}{#3}%
\endgroup
}%
\def\pgf@external@init@aux@in@dpth{%
\let\pgfexternalstorecommand=\pgfexternalstorecommand@isexporting
\csname @fileswtrue\endcsname
\immediate\openout\w@pgfexternal@auxout=\pgf@filename.dpth
\let\@auxout=\w@pgfexternal@auxout
\let\protected@write=\pgf@external@@protected@write@immediate
}%
\def\pgf@externalend@storeshifts#1{%
\immediate\write#1{\the\dp\pgfpic}%
\ifx\pgf@trimleft@final\pgfutil@empty\else
\immediate\write#1{\noexpand\pgfexternal@restore{\noexpand\def\noexpand\pgfexternaltrimleft{\pgf@trimleft@final}}}%
\fi
\ifx\pgf@trimright@final\pgfutil@empty\else
\immediate\write#1{\noexpand\pgfexternal@restore{\noexpand\def\noexpand\pgfexternaltrimright{\pgf@trimright@final}}}%
\fi
\ifpgfexternal@info
\immediate\write#1{\noexpand\pgfexternal@restore{\noexpand\def\noexpand\pgfexternalwidth{\the\wd\pgfpic}}}%
\immediate\write#1{\noexpand\pgfexternal@restore{\noexpand\def\noexpand\pgfexternalheight{\the\dimen0}}}%
\fi
}
\def\pgf@externalend{%
\unskip\egroup\egroup%
{%
\def\pgf@external@trim{0}%
\def\pgf@external@store@dpth{0}%
\ifpgf@trim@lowlevel
\gdef\pgf@trimleft@final{}%
\gdef\pgf@trimright@final{}%
\else
\ifdim\pgf@trimleft@final=0sp \gdef\pgf@trimleft@final{} \else\def\pgf@external@trim{1}\fi
\ifdim\pgf@trimright@final=0sp \gdef\pgf@trimright@final{} \else\def\pgf@external@trim{1}\fi
\if1\pgf@external@trim
\setbox\pgfpic=\hbox{%
\ifx\pgf@trimleft@final\pgfutil@empty\else\kern-\pgf@trimleft@final\fi
\box\pgfpic
\ifx\pgf@trimright@final\pgfutil@empty\else\kern-\pgf@trimright@final\fi
}%
\def\pgf@external@store@dpth{1}%
\fi
\fi
\parindent0pt %
\hoffset=0pt %
\voffset=0pt
\dimen0\ht\pgfpic%
\advance\dimen0\dp\pgfpic%
\ifdim\dp\pgfpic=0pt\relax
\else%
\def\pgf@external@store@dpth{1}%
\fi
\ifpgfexternal@info
\def\pgf@external@store@dpth{1}%
\fi
\if1\pgf@external@store@dpth
\ifpgfexternal@aux@in@dpth
\pgf@externalend@storeshifts\@auxout
\immediate\closeout\@auxout
\else
\immediate\openout\pgf@plotwrite=\pgf@filename.dpth
\pgf@externalend@storeshifts\pgf@plotwrite
\immediate\closeout\pgf@plotwrite
\fi
\fi
\pgfsys@prepare@papersize{\the\wd\pgfpic}{\the\dimen0}%
\setbox0=\vbox{%
\kern -\pgf@external@kern@top\relax%
\hbox{%
\kern -\pgf@external@kern@left\relax%
\hbox to0pt{%
\wd\pgfexternal@startupbox=0pt %
\ht\pgfexternal@startupbox=0pt %
\dp\pgfexternal@startupbox=0pt %
\box\pgfexternal@startupbox%
\pgfsys@atbegindocument\hss}%
\box\pgfpic%
\kern\pgf@external@kern@right\relax%
}%
\kern\pgf@external@kern@bottom\relax%
}%
\let\pgfexternal@nointerlineskip@orig=\nointerlineskip
\let\nointerlineskip=\pgfexternal@nointerlineskip
\pgfexternal@originalshipout\box0 %
\gdef\pgfexternal@did@a@shipout{1}%
}%
\ifpgfexternal@aux@in@dpth
\endgroup
\fi
}
\def\pgfexternal@nointerlineskip{%
\ifvmode
\pgfexternal@nointerlineskip@orig
\else
\relax%
\fi
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex ====
\ProvidesFileRCS{pgfcoregraphicstate.code.tex}
\newdimen\pgflinewidth
\def\pgfsetlinewidth#1{%
\pgfmathsetlength\pgflinewidth{#1}%
\global\pgflinewidth=\pgflinewidth%
\pgfsys@setlinewidth{\the\pgflinewidth}%
\ignorespaces}
\def\pgfsetinnerlinewidth#1{%
\pgfmathsetlength\pgf@x{#1}%
\edef\pgfinnerlinewidth{\the\pgf@x}%
}
\def\pgfinnerlinewidth{0pt}
\def\pgfsetinnerstrokecolor#1{\def\pgfinnerstrokecolor{#1}}
\def\pgfinnerstrokecolor{white}
\def\pgfsetmiterlimit#1{%
\ifdim#1pt<1pt\pgferror{miter limit cannot be less than 1}\fi%
\pgfsys@setmiterlimit{#1}%
\ignorespaces}
\def\pgfsetdash#1#2{%
\def\pgf@temp{}%
\def\pgf@next{\pgf@strip}%
\pgf@strip#1{pgf@stop}%
\pgfmathsetlength\pgf@x{#2}%
\pgfsys@setdash{\pgf@temp}{\the\pgf@x}%
\ignorespaces}
\def\pgf@strip#1{%
\def\pgf@@temp{#1}%
\ifx\pgf@@temp\pgf@stop%
\let\pgf@next=\relax%
\else%
\pgfmathsetlength\pgf@x{#1}%
\ifx\pgf@temp\pgfutil@empty%
\edef\pgf@temp{\the\pgf@x}%
\else%
\edef\pgf@temp{\pgf@temp,\the\pgf@x}%
\fi%
\fi\pgf@next}
\def\pgf@stop{pgf@stop}
\def\pgfsetstrokecolor#1{%
\pgfutil@colorlet{pgfstrokecolor}{#1}%
\pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{pgfstrokecolor}}%
\expandafter\let\expandafter\pgf@temp\csname\string\color@pgfstrokecolor\endcsname
\global\let\pgf@strokecolor@global=\pgf@temp
\expandafter\pgf@setstrokecolor\pgf@temp%
}
\def\pgf@setstrokecolor#1#2#3#4#5{%
\expandafter\ifx\csname pgfsys@color@#4@stroke\endcsname\relax%
\pgferror{Unsupported color model `#4'. Sorry}%
\else%
\edef\pgf@colmarshal{\expandafter\noexpand\csname pgfsys@color@#4@stroke\endcsname}%
\pgf@uncomma#5,,%
\pgf@colmarshal%
\fi}
\def\pgf@uncomma#1,{%
\def\pgf@coltest{#1}%
\ifx\pgf@coltest\pgfutil@empty%
\let\pgf@colnext=\relax%
\else%
\expandafter\def\expandafter\pgf@colmarshal\expandafter{\pgf@colmarshal{#1}}%
\let\pgf@colnext=\pgf@uncomma%
\fi%
\pgf@colnext%
}
\def\pgfsetfillcolor#1{%
\pgfutil@colorlet{pgffillcolor}{#1}%
\pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{pgffillcolor}}%
\expandafter\let\expandafter\pgf@temp\csname\string\color@pgffillcolor\endcsname
\global\let\pgf@fillcolor@global=\pgf@temp
\expandafter\pgf@setfillcolor\pgf@temp
}
\def\pgf@setfillcolor#1#2#3#4#5{%
\expandafter\ifx\csname pgfsys@color@#4@fill\endcsname\relax%
\pgferror{Unsupported color model `#4'. Sorry}%
\else%
\edef\pgf@colmarshal{\expandafter\noexpand\csname pgfsys@color@#4@fill\endcsname}%
\pgf@uncomma#5,,%
\pgf@colmarshal%
\fi}
\def\pgfsetcolor#1{%
\pgfutil@colorlet{pgfstrokecolor}{#1}%
\pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{pgfstrokecolor}}%
\expandafter\let\expandafter\pgf@temp\csname\string\color@pgfstrokecolor\endcsname
\global\let\pgf@strokecolor@global=\pgf@temp
\global\let\pgf@fillcolor@global=\pgf@temp
\expandafter\pgf@setcolor\pgf@temp%
}
\def\pgf@setcolor#1#2#3#4#5{%
\expandafter\ifx\csname pgfsys@color@#4\endcsname\relax%
\pgferror{Unsupported color model `#4'. Sorry}%
\else%
\edef\pgf@colmarshal{\expandafter\noexpand\csname pgfsys@color@#4\endcsname}%
\pgf@uncomma#5,,%
\pgf@colmarshal%
\fi}
\def\XC@bcolor{\pgfsys@color@reset}
\def\pgfsetbuttcap{\pgfsys@buttcap\ignorespaces}
\def\pgfsetroundcap{\pgfsys@roundcap\ignorespaces}
\def\pgfsetrectcap{\pgfsys@rectcap\ignorespaces}
\def\pgfsetmiterjoin{\pgfsys@miterjoin\ignorespaces}
\def\pgfsetbeveljoin{\pgfsys@beveljoin\ignorespaces}
\def\pgfsetroundjoin{\pgfsys@roundjoin\ignorespaces}
\def\pgfseteorule{\pgfsys@eoruletrue\ignorespaces}
\def\pgfsetnonzerorule{\pgfsys@eorulefalse\ignorespaces}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex ====
\ProvidesFileRCS{pgfcoreimage.code.tex}
\def\pgfdeclareimage{\pgfutil@ifnextchar[{\pgf@declareimage}{\pgf@declareimage[]}}
\def\pgf@declareimage[#1]#2#3{%
\pgfqkeys{/pgf/images}{height=,width=,page=,interpolate=false,mask=,#1}%
\gdef\pgf@filename{}%
\ifx\pgf@imagepage\pgfutil@empty%
\else%
\expandafter\pgf@findfile\pgfsys@imagesuffixlist:+{#3.page\pgf@imagepage}%
\fi%
\ifx\pgf@filename\pgfutil@empty%
\expandafter\pgf@findfile\pgfsys@imagesuffixlist:+{#3}%
\else%
\pgfkeys{/pgf/images/page=}%
\fi%
\ifx\pgf@filename\pgfutil@empty%
\pgfwarning%
{File "#3" not found when defining image "#2".
Tried all extensions in "\pgfsys@imagesuffixlist"}%
\pgf@declaredraftimage{#2}{#3}%
\else%
\ifpgf@draftmode%
\pgf@declaredraftimage{#2}{#3}%
\else%
\pgfsys@defineimage%
\fi%
\fi%
\expandafter\global\expandafter\let\csname pgf@image@#2!\endcsname=\pgf@image%
}
\pgfkeys{
/pgf/images/draft/.is if=pgf@draftmode,
/pgf/images/draft/.default=true}
\pgfkeys{/pgf/images/width/.estore in=\pgf@imagewidth}
\pgfkeys{/pgf/images/height/.estore in=\pgf@imageheight}
\pgfkeys{/pgf/images/page/.estore in=\pgf@imagepage}
\pgfkeys{/pgf/images/interpolate/.cd,.code=\edef\pgf@imageinterpolate{#1},.default=true}
\let\pgf@imageinterpolate\pgfutil@empty
\pgfkeys{/pgf/images/mask/.code=%
{%
\edef\pgf@imagemask{#1}%
\ifx\pgf@imagemask\pgfutil@empty%
\else%
\pgfutil@ifundefined{pgf@mask@#1}%
{\pgferror{Undefined mask "#1".}%
\edef\pgf@imagemask{}}%
{\edef\pgf@imagemask{\csname pgf@mask@#1\endcsname}%
}%
\fi%
}}
\def\pgf@findfile#1:#2+#3{%
\pgfutil@IfFileExists{#3#1}%
{\xdef\pgf@filename{#3#1}}%
{\def\pgf@mightbeempty{#2}%
\ifx\pgf@mightbeempty\pgfutil@empty\else%
\pgf@findfile#2+{#3}%
\fi}}
\def\pgf@declaredraftimage#1#2{%
\ifx\pgf@imagewidth\pgfutil@empty%
\pgfwarning{Missing width for image "#1" ("#2") in draft mode. Using 1cm instead}%
\edef\pgf@imagewidth{1cm}%
\fi%
\ifx\pgf@imageheight\pgfutil@empty%
\pgfwarning{Missing height for image "#1" ("#2") in draft mode. Using 1cm instead}%
\edef\pgf@imageheight{1cm}%
\fi%
\ifx\pgf@imagepage\pgfutil@empty\else\edef\pgf@imagepagetext{ page \pgf@imagepage}\fi%
\edef\pgf@image{%
\hbox to \pgf@imagewidth{%
\vrule\kern-0.4pt%
\vbox to \pgf@imageheight{%
\hrule\vfil%
\hbox to \pgf@imagewidth{\hskip-10cm\hfil\noexpand\pgfutil@font@tiny#2\pgf@imagepage\hfil\hskip-10cm}%
\vfil\hrule}%
\kern-0.4pt\vrule}%
}%
}
\def\pgfdeclaremask{\pgfutil@ifnextchar[\pgf@declaremask{\pgf@declaremask[]}}
\def\pgf@declaremask[#1]#2#3{%
\pgfqkeys{/pgf/images/mask}{matte={1 1 1},#1}%
\def\pgf@mask{}%
\gdef\pgf@filename{}%
\expandafter\pgf@findfile\pgfsys@imagesuffixlist:+{#3}%
\ifx\pgf@filename\pgfutil@empty%
\pgfwarning%
{File "#3" not found when defining mask "#2".
Tried all extensions in "\pgfsys@imagesuffixlist"}%
\else%
\pgfsys@definemask%
\fi%
\expandafter\global\expandafter\let\csname pgf@mask@#2\endcsname=\pgf@mask%
}
\pgfkeys{/pgf/images/mask/matte/.cd,.estore in=\pgf@maskmatte,.value required}
\def\pgfaliasimage#1#2{%
\expandafter\global\expandafter\let\expandafter\pgf@temp\expandafter=\csname pgf@image@#2!\endcsname%
\expandafter\global\expandafter\let\csname pgf@image@#1!\endcsname=\pgf@temp%
}
\def\pgfuseimage#1{%
\def\pgf@imagename{pgf@image@#1}%
\pgf@tryextensions{\pgf@imagename}{\pgfalternateextension}%
\expandafter\pgfutil@ifundefined\expandafter{\pgf@imagename}%
{\pgferror{Undefined image "#1"}}%
{{\leavevmode\csname\pgf@imagename\endcsname}}}
\def\pgf@tryextensions#1#2{%
\edef\pgf@args{[#2!]}\expandafter\pgf@@tryextensions\pgf@args{#1}}
\def\pgf@@tryextensions[#1!#2]#3{%
\expandafter\pgfutil@ifundefined\expandafter{#3#1!#2}%
{\def\pgf@temp{#2}%
\ifx\pgf@temp\pgfutil@empty%
\edef#3{#3!}%
\else%
\pgf@@tryextensions[#2]{#3}%
\fi}%
{\edef#3{#3#1!#2}}}
\def\pgfalternateextension{}
\def\pgfimage{\pgfutil@ifnextchar[\pgf@imagecom{\pgf@imagecom[]}}
\def\pgf@imagecom[#1]#2{%
\pgfdeclareimage[#1]{pgflastimage}{#2}%
\pgfuseimage{pgflastimage}}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex ====
\ProvidesFileRCS{pgfcorelayers.code.tex}
\def\pgfdeclarelayer#1{%
\pgfutil@ifundefined{pgf@layerbox@#1}{%
\expandafter\expandafter\csname pgf@newbox\endcsname\csname pgf@layerbox@#1\endcsname%
\expandafter\expandafter\csname pgf@newbox\endcsname\csname pgf@layerboxsaved@#1\endcsname%
}{}%
}
\let\pgf@newbox=\newbox %
\def\pgfsetlayers#1{%
\let\pgf@layerlist\pgfutil@empty%
\pgf@dosetlayer#1,,\relax%
}
\def\pgf@dosetlayer#1,#2,\relax{%
\ifx\pgf@layerlist\pgfutil@empty%
\edef\pgf@layerlist{\pgfutil@trimspaces{#1}}%
\else
\edef\pgf@layerlist{\pgf@layerlist,\pgfutil@trimspaces{#1}}%
\fi
\def\pgf@test{#2}%
\ifx\pgf@test\pgfutil@empty%
\else%
\pgf@dosetlayer#2,\relax%
\fi%
}
\pgfsetlayers{main}
\def\pgfonlayer@name{main}
\def\pgfonlayer#1{%
\pgfutil@ifundefined{pgf@layerbox@#1}{%
\pgferror{Sorry, the requested layer '#1' could not be found. Maybe you misspelled it?}%
\bgroup
\begingroup
}{%
\begingroup
\edef\pgf@temp{#1}%
\ifx\pgf@temp\pgfonlayer@name
\def\pgf@temp{%
\bgroup
\begingroup
}%
\else
\let\pgfonlayer@name=\pgf@temp
\pgfonlayer@assert@is@active
\def\pgf@temp{%
\expandafter\global\expandafter%
\setbox\csname pgf@layerbox@#1\endcsname=\hbox to 0pt%
\bgroup%
\expandafter\box\csname pgf@layerbox@#1\endcsname%
\begingroup%
}%
\fi
\pgfsetlinewidth{0.4pt}%
\pgf@temp
}%
}
\def\endpgfonlayer{%
\endgroup%
\hss
\egroup%
\endgroup
}
\let\startpgfonlayer=\pgfonlayer
\let\stoppgfonlayer=\endpgfonlayer
\def\pgfdiscardlayername{discard}
\def\pgfonlayer@assert@is@active{%
\ifx\pgfonlayer@name\pgfdiscardlayername
\else
\begingroup
\def\pgfonlayer@isactive{0}%
\expandafter\pgf@assert@layer@is@active@loop\pgf@layerlist,,\relax%
\if0\pgfonlayer@isactive
\pgfonlayer@assert@fail
\fi
\endgroup
\fi
}%
\def\pgfonlayer@assert@fail{%
\pgferror{Sorry, the requested layer '\pgfonlayer@name' is not
part of the layer list. Please verify that you provided
\string\pgfsetlayers\space and that '\pgfonlayer@name' is part of this list}%
}%
\def\pgf@assert@layer@is@active@loop#1,#2,\relax{%
\edef\pgf@test{#1}%
\ifx\pgf@test\pgfonlayer@name
\def\pgfonlayer@isactive{1}%
\else
\def\pgf@test{#2}%
\ifx\pgf@test\pgfutil@empty%
\else%
\pgf@assert@layer@is@active@loop#2,\relax%
\fi%
\fi
}
\def\pgf@insertlayers{%
\expandafter\pgf@dolayer\pgf@layerlist,,\relax%
}
\def\pgf@maintext{main}%
\def\pgf@dolayer#1,#2,\relax{%
\def\pgf@test{#1}%
\ifx\pgf@test\pgf@maintext%
\box\pgf@layerbox@main%
\else%
\pgfsys@beginscope%
\expandafter\box\csname pgf@layerbox@#1\endcsname%
\pgfsys@endscope%
\fi%
\def\pgf@test{#2}%
\ifx\pgf@test\pgfutil@empty%
\else%
\pgf@dolayer#2,\relax%
\fi%
}
\def\pgf@savelayers{%
\expandafter\pgf@dosavelayer\pgf@layerlist,,\relax%
}
\def\pgf@dosavelayer#1,#2,\relax{%
\def\pgf@test{#1}%
\ifx\pgf@test\pgf@maintext%
\else%
\setbox\csname pgf@layerboxsaved@#1\endcsname=\box\csname pgf@layerbox@#1\endcsname%
\fi%
\def\pgf@test{#2}%
\ifx\pgf@test\pgfutil@empty%
\else%
\pgf@dosavelayer#2,\relax%
\fi%
}
\def\pgf@restorelayers{%
\expandafter\pgf@dorestorelayer\pgf@layerlist,,\relax%
}
\def\pgf@dorestorelayer#1,#2,\relax{%
\def\pgf@test{#1}%
\ifx\pgf@test\pgf@maintext%
\else%
\global\setbox\csname pgf@layerbox@#1\endcsname=\box\csname pgf@layerboxsaved@#1\endcsname%
\fi%
\def\pgf@test{#2}%
\ifx\pgf@test\pgfutil@empty%
\else%
\pgf@dorestorelayer#2,\relax%
\fi%
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex ====
\ProvidesFileRCS{pgfcoreobjects.code.tex}
\def\pgfdefobject#1#2#3#4{%
\pgfinterruptpath%
\pgf@relevantforpicturesizefalse%
\pgfsys@defobject{#1}{#2}{#3}{#4}%
\endpgfinterruptpath%
\ignorespaces%
}
\def\pgfuseobject#1{\pgfsys@beginscope\pgfsys@useobject{#1}{}\pgfsys@endscope}
\def\pgfuseobjectmagnify#1{%
\pgfsys@beginscope%
\pgfsys@useobject{#1}{\pgfsys@transformxyscale{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}}%
\pgfsys@endscope%
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex ====
\ProvidesFileRCS{pgfcorepathconstruct.code.tex}
\newdimen\pgf@path@lastx
\newdimen\pgf@path@lasty
\let\pgfgetpath=\pgfsyssoftpath@getcurrentpath
\let\pgfsetpath=\pgfsyssoftpath@setcurrentpath
\newif\ifpgf@arccorners
\def\pgfsetcornersarced#1{%
\pgf@process{#1}%
\edef\pgf@corner@arc{{\the\pgf@x}{\the\pgf@y}}%
\pgf@arccornerstrue%
\ifdim\pgf@x=0pt%
\ifdim\pgf@y=0pt\relax%
\pgf@arccornersfalse%
\fi%
\fi%
}
\def\pgf@roundcornerifneeded{%
\ifpgf@arccorners\expandafter\pgfsyssoftpath@specialround\pgf@corner@arc\fi%
}
\def\pgf@lt@moveto#1#2{%
\pgf@protocolsizes{#1}{#2}%
\pgfsyssoftpath@moveto{\the#1}{\the#2}%
}
\def\pgf@lt@lineto#1#2{%
\pgf@protocolsizes{#1}{#2}%
\pgfsyssoftpath@lineto{\the#1}{\the#2}%
}
\def\pgf@lt@curveto#1#2#3#4#5#6{%
\pgf@protocolsizes{#1}{#2}%
\pgf@protocolsizes{#3}{#4}%
\pgf@protocolsizes{#5}{#6}%
\pgfsyssoftpath@curveto{\the#1}{\the#2}{\the#3}{\the#4}{\the#5}{\the#6}%
}
\let\pgf@lt@closepath\pgfsyssoftpath@closepath
\let\pgf@nlt@moveto\pgf@lt@moveto
\let\pgf@nlt@lineto\pgf@lt@lineto
\let\pgf@nlt@curveto\pgf@lt@curveto
\let\pgf@nlt@closepath\pgf@lt@closepath
\let\pgf@nlt@list\pgfutil@empty %
\def\pgfpathmoveto#1{%
\pgfpointtransformed{#1}%
\pgf@nlt@moveto{\pgf@x}{\pgf@y}%
\global\pgf@path@lastx=\pgf@x%
\global\pgf@path@lasty=\pgf@y%
}
\def\pgf@protocolsizes#1#2{%
\ifpgf@relevantforpicturesize%
\ifdim#1<\pgf@picminx\global\pgf@picminx#1\fi%
\ifdim#1>\pgf@picmaxx\global\pgf@picmaxx#1\fi%
\ifdim#2<\pgf@picminy\global\pgf@picminy#2\fi%
\ifdim#2>\pgf@picmaxy\global\pgf@picmaxy#2\fi%
\ifpgf@size@hooked%
\let\pgf@size@hook@x#1\let\pgf@size@hook@y#2\pgf@path@size@hook%
\fi%
\fi%
\ifdim#1<\pgf@pathminx\global\pgf@pathminx#1\fi%
\ifdim#1>\pgf@pathmaxx\global\pgf@pathmaxx#1\fi%
\ifdim#2<\pgf@pathminy\global\pgf@pathminy#2\fi%
\ifdim#2>\pgf@pathmaxy\global\pgf@pathmaxy#2\fi%
}
\newif\ifpgf@size@hooked
\let\pgf@path@size@hook=\pgfutil@empty%
\def\pgf@resetpathsizes{%
\global\pgf@pathmaxx=-16000pt\relax%
\global\pgf@pathminx=16000pt\relax%
\global\pgf@pathmaxy=-16000pt\relax%
\global\pgf@pathminy=16000pt\relax%
}
\def\pgf@getpathsizes#1{%
\edef#1{{\the\pgf@pathmaxx}{\the\pgf@pathminx}{\the\pgf@pathmaxy}{\the\pgf@pathminy}}%
}
\def\pgf@setpathsizes#1{%
\expandafter\pgf@@setpathsizes#1%
}
\def\pgf@@setpathsizes#1#2#3#4{%
\global\pgf@pathmaxx=#1\relax%
\global\pgf@pathminx=#2\relax%
\global\pgf@pathmaxy=#3\relax%
\global\pgf@pathminy=#4\relax%
}
\def\pgfpathlineto#1{%
\pgfpointtransformed{#1}%
\pgf@roundcornerifneeded%
\pgf@nlt@lineto{\pgf@x}{\pgf@y}%
\global\pgf@path@lastx=\pgf@x%
\global\pgf@path@lasty=\pgf@y%
}
\def\pgfpathclose{%
\pgf@roundcornerifneeded%
\pgf@nlt@closepath%
}
\def\pgfpathcurveto#1#2#3{%
\pgfpointtransformed{#3}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgfpointtransformed{#2}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgfpointtransformed{#1}%
\pgf@roundcornerifneeded%
\pgf@nlt@curveto{\pgf@x}{\pgf@y}{\pgf@xa}{\pgf@ya}{\pgf@xb}{\pgf@yb}%
\global\pgf@path@lastx=\pgf@xb%
\global\pgf@path@lasty=\pgf@yb%
}
\def\pgfpathquadraticcurveto#1#2{%
\pgfpointtransformed{#2}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgfpointtransformed{#1}%
\pgf@xc=.6666666\pgf@x%
\pgf@yc=.6666666\pgf@y%
\pgf@xa=.33333333\pgf@xb%
\pgf@ya=.33333333\pgf@yb%
\advance\pgf@xa by\pgf@xc%
\advance\pgf@ya by\pgf@yc%
\advance\pgf@xc by.3333333\pgf@path@lastx%
\advance\pgf@yc by.3333333\pgf@path@lasty%
\pgf@roundcornerifneeded%
\pgf@nlt@curveto{\pgf@xc}{\pgf@yc}{\pgf@xa}{\pgf@ya}{\pgf@xb}{\pgf@yb}%
\global\pgf@path@lastx=\pgf@xb%
\global\pgf@path@lasty=\pgf@yb%
}
\def\pgfpatharc#1#2#3{%
{%
\pgfmathparse{#1}\let\pgf@temp@a=\pgfmathresult%
\pgfmathparse{#2}\let\pgf@temp@b=\pgfmathresult%
\pgfutil@in@{and }{#3}%
\ifpgfutil@in@%
\pgf@arc@get@radii#3\pgf@arc@stop%
\else
\pgf@arc@get@radii#3and #3\pgf@arc@stop%
\fi%
\pgf@arc@local@angle@a=\pgf@temp@a pt%
\pgf@arc@local@angle@b=\pgf@temp@b pt%
\loop%
\pgfutil@tempdima=\pgf@arc@local@angle@a%
\advance\pgfutil@tempdima by-\pgf@arc@local@angle@b\relax%
\ifdim\pgfutil@tempdima<0pt\relax%
\pgfutil@tempdima=-\pgfutil@tempdima\relax%
\fi%
\ifdim\pgfutil@tempdima>90pt\relax%
\ifdim\pgfutil@tempdima>115pt\relax%
\pgf@arc@temp=90pt%
\else%
\pgf@arc@temp=60pt%
\fi%
\ifdim\pgf@arc@local@angle@b>\pgf@arc@local@angle@a\relax%
{%
\pgf@arc@local@angle@b=\pgf@arc@local@angle@a\relax%
\advance\pgf@arc@local@angle@b by\pgf@arc@temp\relax%
\pgf@arc%
}
\advance\pgf@arc@local@angle@a by\pgf@arc@temp\relax%
\else
{%
\pgf@arc@local@angle@b=\pgf@arc@local@angle@a\relax%
\advance\pgf@arc@local@angle@b by-\pgf@arc@temp\relax%
\pgf@arc%
}%
\advance\pgf@arc@local@angle@a by-\pgf@arc@temp\relax%
\fi%
\repeat%
\pgf@roundcornerifneeded%
\pgf@arc%
}%
}
\dimendef\pgf@arc@local@angle@a=0
\dimendef\pgf@arc@local@angle@b=1
\dimendef\pgf@arc@temp=2
\def\pgf@arc@get@radii#1and #2\pgf@arc@stop{%
\pgfmathparse{#1}\let\pgf@arc@radius@a=\pgfmathresult%
\pgfmathparse{#2}\let\pgf@arc@radius@b=\pgfmathresult%
}
\def\pgf@arc{%
{%
\pgfutil@tempdima=\pgf@arc@radius@a pt%
\pgfutil@tempdimb=\pgf@arc@radius@b pt%
\pgf@xa=\pgf@arc@local@angle@a\relax%
\pgf@xb=\pgf@arc@local@angle@b\relax%
\advance\pgf@xb by-\pgf@xa\relax%
\ifdim\pgf@xb<0pt\relax%
\pgf@xb=-\pgf@xb\relax%
\fi%
\ifdim\pgf@xb=90.0pt%
\def\pgfmathresult{0.55228475}%
\else%
\pgfmathparse{1.333333333*tan(.25*\pgf@sys@tonumber{\pgf@xb})}%
\fi%
\pgfutil@tempdima=\pgfmathresult\pgfutil@tempdima%
\pgfutil@tempdimb=\pgfmathresult\pgfutil@tempdimb%
\pgf@xa=\pgf@arc@local@angle@a\relax%
\ifdim\pgf@arc@local@angle@b>\pgf@arc@local@angle@a\relax%
\advance\pgf@xa by 90pt\relax%
\else%
\advance\pgf@xa by -90pt\relax%
\fi%
\edef\pgf@arc@angle{\pgf@sys@tonumber{\pgf@xa}}%
\pgfpointtransformed{\pgfpointpolar{\pgf@arc@angle}{\pgfutil@tempdima and \pgfutil@tempdimb}}%
\advance\pgf@x by-\pgf@pt@x%
\advance\pgf@y by-\pgf@pt@y%
\pgf@xa=\pgf@path@lastx%
\pgf@ya=\pgf@path@lasty%
\advance\pgf@xa by \pgf@x%
\advance\pgf@ya by \pgf@y%
\pgfpointtransformed{\pgfpointpolar{\pgf@sys@tonumber{\pgf@arc@local@angle@a}}{\pgf@arc@radius@a pt and \pgf@arc@radius@b pt}}%
\pgf@xb=\pgf@path@lastx%
\pgf@yb=\pgf@path@lasty%
\advance\pgf@xb by -\pgf@x%
\advance\pgf@yb by -\pgf@y%
\pgfpointtransformed{\pgfpointpolar{\pgf@sys@tonumber{\pgf@arc@local@angle@b}}{\pgf@arc@radius@a pt and \pgf@arc@radius@b pt}}%
\advance\pgf@xb by \pgf@x%
\advance\pgf@yb by \pgf@y%
\ifdim\pgf@arc@local@angle@b>\pgf@arc@local@angle@a\relax%
\advance\pgf@arc@local@angle@b by -90pt\relax%
\else%
\advance\pgf@arc@local@angle@b by 90pt\relax%
\fi%
\pgfpointtransformed{\pgfpointpolar{\pgf@sys@tonumber{\pgf@arc@local@angle@b}}{\pgfutil@tempdima and \pgfutil@tempdimb}}%
\advance\pgf@x by-\pgf@pt@x%
\advance\pgf@y by-\pgf@pt@y%
\pgf@xc=\pgf@xb\relax%
\pgf@yc=\pgf@yb\relax%
\advance \pgf@xc by \pgf@x\relax%
\advance \pgf@yc by \pgf@y\relax%
\pgf@nlt@curveto{\pgf@xa}{\pgf@ya}{\pgf@xc}{\pgf@yc}{\pgf@xb}{\pgf@yb}%
\global\pgf@path@lastx=\pgf@xb%
\global\pgf@path@lasty=\pgf@yb%
}%
}
\def\pgfpatharcaxes#1#2#3#4{%
{%
\pgftransformtriangle{\pgfpointorigin}{#3}{#4}%
\pgfpatharc{#1}{#2}{1pt}%
}%
}
\def\pgfpatharcto#1#2#3#4#5#6{%
{%
\pgfmathsetmacro\pgf@arcto@rx{abs(#1)}%
\pgfmathsetmacro\pgf@arcto@ry{abs(#2)}%
\ifdim\pgf@arcto@rx pt=0pt%
\gdef\pgf@marshal{\pgfpathlineto{#6}}%
\else
\ifdim\pgf@arcto@ry pt=0pt%
\gdef\pgf@marshal{\pgfpathlineto{#6}}%
\else
\pgfmathsetmacro\pgf@arcto@phi{#3}%
\pgfmathsetmacro\pgf@arcto@fA{#4}%
\ifdim\pgf@arcto@fA pt=0pt
\else
\pgfmathsetmacro\pgf@arcto@fA{1.0} %
\fi
\pgfmathsetmacro\pgf@arcto@fS{#5}%
\ifdim\pgf@arcto@fS pt=0pt
\else
\pgfmathsetmacro\pgf@arcto@fS{1.0} %
\fi
\pgf@process{#6}
\edef\pgf@arcto@xb{\the\pgf@x}%
\edef\pgf@arcto@yb{\the\pgf@y}%
\pgftransforminvert%
\pgf@process{\pgfpointtransformed{\pgfqpoint{\pgf@path@lastx}{\pgf@path@lasty}}}
\edef\pgf@arcto@xa{\the\pgf@x}
\edef\pgf@arcto@ya{\the\pgf@y}
\edef\pgf@temp@a{\pgf@arcto@xa,\pgf@arcto@ya}
\edef\pgf@temp@b{\pgf@arcto@xb,\pgf@arcto@yb}
\ifx\pgf@temp@a\pgf@temp@b%
\global\let\pgf@marshal\pgfutil@empty
\else
\pgftransformreset
\pgftransformrotate{-\pgf@arcto@phi}
\pgf@process{
\pgfpointtransformed{\pgfpointscale{.5}{\pgfpointdiff
{\pgfqpoint{\pgf@arcto@xb}{\pgf@arcto@yb}}
{\pgfqpoint{\pgf@arcto@xa}{\pgf@arcto@ya}}
}
}
}
\edef\pgf@arcto@xaprime{\pgf@sys@tonumber\pgf@x}
\edef\pgf@arcto@yaprime{\pgf@sys@tonumber\pgf@y}
\pgfmathsetmacro\pgf@arcto@frac@x{\pgf@arcto@xaprime/\pgf@arcto@rx}
\pgfmathsetmacro\pgf@arcto@frac@y{\pgf@arcto@yaprime/\pgf@arcto@ry}
\pgfmathsetmacro\pgf@arcto@lambda{
\pgf@arcto@frac@x*\pgf@arcto@frac@x+\pgf@arcto@frac@y*\pgf@arcto@frac@y
}
\ifdim\pgf@arcto@lambda pt>1pt%
\pgfmathsetmacro\pgf@arcto@sqrt@lambda{sqrt(\pgf@arcto@lambda)}
\pgfmathsetmacro\pgf@arcto@rx{\pgf@arcto@sqrt@lambda*\pgf@arcto@rx}
\pgfmathsetmacro\pgf@arcto@ry{\pgf@arcto@sqrt@lambda*\pgf@arcto@ry}
\fi
\pgfmathsetmacro\pgf@arcto@xaprime@abs{abs(\pgf@arcto@xaprime)}
\pgfmathsetmacro\pgf@arcto@yaprime@abs{abs(\pgf@arcto@yaprime)}
\pgfmathmax@{\pgf@arcto@rx,\pgf@arcto@ry,\pgf@arcto@xaprime@abs,\pgf@arcto@yaprime@abs}
\pgfmathsetmacro\pgf@arcto@scaling{20/\pgfmathresult}
\pgfmathsetmacro\pgf@arcto@rx@scaled{\pgf@arcto@scaling*\pgf@arcto@rx}
\pgfmathsetmacro\pgf@arcto@ry@scaled{\pgf@arcto@scaling*\pgf@arcto@ry}
\pgfmathsetmacro\pgf@arcto@xaprime@scaled{\pgf@arcto@scaling*\pgf@arcto@xaprime}
\pgfmathsetmacro\pgf@arcto@yaprime@scaled{\pgf@arcto@scaling*\pgf@arcto@yaprime}
\ifdim\pgf@arcto@rx pt>\pgf@arcto@ry pt%
\pgfmathsetmacro\pgf@arcto@rx@over@ry{\pgf@arcto@rx/\pgf@arcto@ry}
\pgfmathsetmacro\pgf@arcto@ry@over@rx{\pgf@arcto@ry/\pgf@arcto@rx}
\pgfmathsetmacro\pgf@arcto@temp{\pgf@arcto@ry@over@rx*\pgf@arcto@xaprime@scaled}
\pgfmathsetmacro\pgf@arcto@numerator{
\pgf@arcto@ry@scaled*\pgf@arcto@ry@scaled-
\pgf@arcto@yaprime@scaled*\pgf@arcto@yaprime@scaled-
\pgf@arcto@temp*\pgf@arcto@temp
}
\pgfmathsetmacro\pgf@arcto@denominator{
\pgf@arcto@yaprime@scaled*\pgf@arcto@yaprime@scaled+
\pgf@arcto@temp*\pgf@arcto@temp
}
\else
\pgfmathsetmacro\pgf@arcto@rx@over@ry{\pgf@arcto@rx/\pgf@arcto@ry}
\pgfmathsetmacro\pgf@arcto@ry@over@rx{\pgf@arcto@ry/\pgf@arcto@rx}
\pgfmathsetmacro\pgf@arcto@temp{\pgf@arcto@rx@over@ry*\pgf@arcto@yaprime@scaled}
\pgfmathsetmacro\pgf@arcto@numerator{
\pgf@arcto@rx@scaled*\pgf@arcto@rx@scaled-
\pgf@arcto@xaprime@scaled*\pgf@arcto@xaprime@scaled-
\pgf@arcto@temp*\pgf@arcto@temp
}
\pgfmathsetmacro\pgf@arcto@denominator{
\pgf@arcto@xaprime@scaled*\pgf@arcto@xaprime@scaled+
\pgf@arcto@temp*\pgf@arcto@temp
}
\fi
\pgfmathsetmacro\pgf@arcto@frac{
\pgf@arcto@numerator/\pgf@arcto@denominator
}
\ifdim\pgf@arcto@frac pt<0pt
\pgfmathsetmacro\pgf@arcto@factor{0}
\else
\pgfmathsetmacro\pgf@arcto@factor{sqrt(\pgf@arcto@frac)}
\fi
\ifx\pgf@arcto@fA\pgf@arcto@fS
\pgfmathsetmacro\pgf@arcto@factor{-\pgf@arcto@factor}
\fi
\pgfmathsetmacro\pgf@arcto@cxprime{
\pgf@arcto@factor*\pgf@arcto@rx@over@ry*\pgf@arcto@yaprime
}
\pgfmathsetmacro\pgf@arcto@cyprime{
-\pgf@arcto@factor*\pgf@arcto@ry@over@rx*\pgf@arcto@xaprime
}
\pgftransformreset
\pgftransformrotate{\pgf@arcto@phi}
\pgf@process{
\pgfpointtransformed{\pgfqpoint{\pgf@arcto@cxprime pt}{\pgf@arcto@cyprime pt}}
}
\edef\pgf@arcto@temp{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\pgf@process{\pgfpointadd{\pgf@arcto@temp}{
\pgfpointscale{.5}{
\pgfpointadd
{\pgfqpoint{\pgf@arcto@xa}{\pgf@arcto@ya}}
{\pgfqpoint{\pgf@arcto@xb}{\pgf@arcto@yb}} }
}
}
\edef\pgf@arcto@cx{\the\pgf@x}
\edef\pgf@arcto@cy{\the\pgf@y}
\pgfmathsetmacro\pgf@arcto@vec@x{(\pgf@arcto@xaprime-\pgf@arcto@cxprime)/\pgf@arcto@rx}
\pgfmathsetmacro\pgf@arcto@vec@y{(\pgf@arcto@yaprime-\pgf@arcto@cyprime)/\pgf@arcto@ry}
\pgfmathsetmacro\pgf@arcto@denominator{veclen(\pgf@arcto@vec@x,\pgf@arcto@vec@y)}
\pgfmathsetmacro\pgf@arcto@frac{\pgf@arcto@vec@x/\pgf@arcto@denominator}
\pgfmathsetmacro\pgf@arcto@theta@start{acos(\pgf@arcto@frac)}
\ifdim\pgf@arcto@vec@y pt<0pt
\pgfmathsetmacro\pgf@arcto@theta@start{-\pgf@arcto@theta@start}
\fi
\pgfmathsetmacro\pgf@arcto@vec@x{(-\pgf@arcto@xaprime-\pgf@arcto@cxprime)/\pgf@arcto@rx}
\pgfmathsetmacro\pgf@arcto@vec@y{(-\pgf@arcto@yaprime-\pgf@arcto@cyprime)/\pgf@arcto@ry}
\pgfmathsetmacro\pgf@arcto@denominator{veclen(\pgf@arcto@vec@x,\pgf@arcto@vec@y)}
\pgfmathsetmacro\pgf@arcto@frac{\pgf@arcto@vec@x/\pgf@arcto@denominator}
\pgfmathsetmacro\pgf@arcto@theta@end{acos(\pgf@arcto@frac)}
\ifdim\pgf@arcto@vec@y pt<0pt
\pgfmathsetmacro\pgf@arcto@theta@end{-\pgf@arcto@theta@end}
\fi
\pgfmathsetmacro\pgf@arcto@delta@theta{abs(\pgf@arcto@theta@start-\pgf@arcto@theta@end)}
\ifdim\pgf@arcto@fA pt=0pt%
\ifdim\pgf@arcto@delta@theta pt>180pt%
\ifdim\pgf@arcto@theta@end pt>\pgf@arcto@theta@start pt
\pgfmathsetmacro\pgf@arcto@theta@end{\pgf@arcto@theta@end-360}
\else
\pgfmathsetmacro\pgf@arcto@theta@end{\pgf@arcto@theta@end+360}
\fi
\fi
\else
\ifdim\pgf@arcto@delta@theta pt<180pt%
\ifdim\pgf@arcto@theta@end pt>\pgf@arcto@theta@start pt
\pgfmathsetmacro\pgf@arcto@theta@end{\pgf@arcto@theta@end-360}
\else
\pgfmathsetmacro\pgf@arcto@theta@end{\pgf@arcto@theta@end+360}
\fi
\fi
\fi
\xdef\pgf@marshal{\noexpand
\pgfpatharcaxes{\pgf@arcto@theta@start}{\pgf@arcto@theta@end}
{\noexpand\pgfpointpolar{\pgf@arcto@phi}{\pgf@arcto@rx}}
{\noexpand\pgfpointpolar{\pgf@arcto@phi+90}{\pgf@arcto@ry}}
}
\fi\fi\fi
}
\pgf@marshal
}
\def\pgfpatharctomaxstepsize{45}
\def\pgfpatharctoprecomputed#1#2#3#4#5#6#7#8{%
\begingroup
\pgf@process{#1}%
\edef\pgfpath@center@x{\the\pgf@x}%
\edef\pgfpath@center@y{\the\pgf@y}%
\def\pgfpath@completearcend{#4}%
\pgf@xa=#2pt
\pgf@xb=#3pt
\edef\pgfpath@startangle{#2pt}%
\edef\pgfpath@endangle{\pgf@sys@tonumber\pgf@xb}%
\pgf@ya=\pgf@xb
\advance\pgf@ya by-\pgf@xa
\ifx\pgfpatharctomaxstepsize\pgfutil@empty
\def\pgfpath@N{1}%
\pgf@xc=\pgf@ya
\else
\pgf@xc=\pgf@ya%
\ifdim\pgf@xc<0pt
\multiply\pgf@xc by-1
\fi
\divide\pgf@xc by\pgfpatharctomaxstepsize\relax
\afterassignment\pgfutil@gobble@until@relax
\c@pgf@counta=\the\pgf@xc\relax
\advance\c@pgf@counta by1
\edef\pgfpath@N{\the\c@pgf@counta}%
\pgf@xc=\pgf@ya
\divide\pgf@xc by\c@pgf@counta
\fi
\edef\pgfpath@h{\pgf@sys@tonumber\pgf@xc}%
\pgf@xc=0.116355283466289\pgf@xc %
\divide\pgf@xc by20
\pgf@xa=#7\pgf@xc
\edef\pgfpath@scale@A{\pgf@sys@tonumber\pgf@xa}%
\pgf@xa=#8\pgf@xc
\edef\pgfpath@scale@B{\pgf@sys@tonumber\pgf@xa}%
\c@pgf@countd=1
\pgfutil@loop
\ifnum\c@pgf@countd<\pgfpath@N\relax
\pgf@xa=\pgfpath@startangle %
\pgf@xb=\pgfpath@h pt
\multiply\pgf@xb by\c@pgf@countd
\advance\pgf@xa by\pgf@xb
\edef\pgfpath@angle@i{\pgf@sys@tonumber\pgf@xa}%
\pgfpatharcofellipse@{%
\pgfpoint
{\pgfpath@center@x + #5*cos(\pgfpath@angle@i)}
{\pgfpath@center@y + #6*sin(\pgfpath@angle@i)}%
}%
\advance\c@pgf@countd by1
\pgfutil@repeat
\pgfpatharcofellipse@{\pgfpath@completearcend}%
\endgroup
}%
\def\pgfpatharcofellipse@#1{%
\begingroup
\pgf@process{#1}%
\edef\pgfpath@endpt{\global\pgf@x=\the\pgf@x\space\global\pgf@y=\the\pgf@y\space}%
\pgfpathcurveto{
\begingroup
\global\pgf@x=\pgf@path@lastx
\global\pgf@y=\pgf@path@lasty
\pgf@xa=\pgf@x \advance\pgf@xa by-\pgfpath@center@x
\pgf@ya=\pgf@y \advance\pgf@ya by-\pgfpath@center@y
\global\advance\pgf@x by-\pgfpath@scale@A\pgf@ya
\global\advance\pgf@y by \pgfpath@scale@B\pgf@xa
\endgroup
}{%
\begingroup
\pgfpath@endpt
\pgf@xa=\pgf@x \advance\pgf@xa by-\pgfpath@center@x
\pgf@ya=\pgf@y \advance\pgf@ya by-\pgfpath@center@y
\global\advance\pgf@x by \pgfpath@scale@A\pgf@ya
\global\advance\pgf@y by-\pgfpath@scale@B\pgf@xa
\endgroup
}{%
\pgfpath@endpt
}%
\endgroup
}
\def\pgfpathellipse#1#2#3{%
\pgfpointtransformed{#1}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfpointtransformed{#2}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\advance\pgf@xa by-\pgf@pt@x%
\advance\pgf@ya by-\pgf@pt@y%
\pgfpointtransformed{#3}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\advance\pgf@xb by-\pgf@pt@x%
\advance\pgf@yb by-\pgf@pt@y%
{%
\advance\pgf@xa by\pgf@xc%
\advance\pgf@ya by\pgf@yc%
\pgf@nlt@moveto{\pgf@xa}{\pgf@ya}%
}%
\pgf@x=0.55228475\pgf@xb%
\pgf@y=0.55228475\pgf@yb%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
\advance\pgf@x by\pgf@xc%
\advance\pgf@y by\pgf@yc%
\edef\pgf@temp{\pgf@xc\the\pgf@x\pgf@yc\the\pgf@y}%
\pgf@x=0.55228475\pgf@xa%
\pgf@y=0.55228475\pgf@ya%
\advance\pgf@x by\pgf@xb%
\advance\pgf@y by\pgf@yb%
{%
\advance\pgf@x by\pgf@xc%
\advance\pgf@y by\pgf@yc%
\advance\pgf@xb by\pgf@xc%
\advance\pgf@yb by\pgf@yc%
\pgf@temp%
\pgf@nlt@curveto{\pgf@xc}{\pgf@yc}{\pgf@x}{\pgf@y}{\pgf@xb}{\pgf@yb}%
}%
\pgf@xa=-\pgf@xa%
\pgf@ya=-\pgf@ya%
\pgf@x=0.55228475\pgf@xa%
\pgf@y=0.55228475\pgf@ya%
\advance\pgf@x by\pgf@xb%
\advance\pgf@y by\pgf@yb%
\advance\pgf@x by\pgf@xc%
\advance\pgf@y by\pgf@yc%
\edef\pgf@temp{\pgf@xc\the\pgf@x\pgf@yc\the\pgf@y}%
\pgf@x=0.55228475\pgf@xb%
\pgf@y=0.55228475\pgf@yb%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
{%
\advance\pgf@x by\pgf@xc%
\advance\pgf@y by\pgf@yc%
\advance\pgf@xa by\pgf@xc%
\advance\pgf@ya by\pgf@yc%
\pgf@temp%
\pgf@nlt@curveto{\pgf@xc}{\pgf@yc}{\pgf@x}{\pgf@y}{\pgf@xa}{\pgf@ya}%
}%
\pgf@xb=-\pgf@xb%
\pgf@yb=-\pgf@yb%
\pgf@x=0.55228475\pgf@xb%
\pgf@y=0.55228475\pgf@yb%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
\advance\pgf@x by\pgf@xc%
\advance\pgf@y by\pgf@yc%
\edef\pgf@temp{\pgf@xc\the\pgf@x\pgf@yc\the\pgf@y}%
\pgf@x=0.55228475\pgf@xa%
\pgf@y=0.55228475\pgf@ya%
\advance\pgf@x by\pgf@xb%
\advance\pgf@y by\pgf@yb%
{%
\advance\pgf@x by\pgf@xc%
\advance\pgf@y by\pgf@yc%
\advance\pgf@xb by\pgf@xc%
\advance\pgf@yb by\pgf@yc%
\pgf@temp%
\pgf@nlt@curveto{\pgf@xc}{\pgf@yc}{\pgf@x}{\pgf@y}{\pgf@xb}{\pgf@yb}%
}%
\pgf@xa=-\pgf@xa%
\pgf@ya=-\pgf@ya%
\pgf@x=0.55228475\pgf@xa%
\pgf@y=0.55228475\pgf@ya%
\advance\pgf@x by\pgf@xb%
\advance\pgf@y by\pgf@yb%
\advance\pgf@x by\pgf@xc%
\advance\pgf@y by\pgf@yc%
\edef\pgf@temp{\pgf@xc\the\pgf@x\pgf@yc\the\pgf@y}%
\pgf@x=0.55228475\pgf@xb%
\pgf@y=0.55228475\pgf@yb%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
{%
\advance\pgf@x by\pgf@xc%
\advance\pgf@y by\pgf@yc%
\advance\pgf@xa by\pgf@xc%
\advance\pgf@ya by\pgf@yc%
\pgf@temp%
\pgf@nlt@curveto{\pgf@xc}{\pgf@yc}{\pgf@x}{\pgf@y}{\pgf@xa}{\pgf@ya}%
}%
\pgf@nlt@closepath%
\pgf@nlt@moveto{\pgf@xc}{\pgf@yc}%
}
\def\pgfpathcircle#1#2{\pgfpathellipse{#1}{\pgfpoint{#2}{0pt}}{\pgfpoint{0pt}{#2}}}
\def\pgfpathrectangle{%
\let\pgfrect@next=\pgf@specialrect%
\ifpgf@pt@identity%
\ifpgf@arccorners%
\else%
\ifx\pgf@nlt@list\pgfutil@empty%
\let\pgfrect@next=\pgf@normalrect%
\fi%
\fi%
\fi%
\pgfrect@next%
}
\def\pgf@normalrect#1#2{%
\pgf@process{#2}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgfpointtransformed{#1}%
\pgfsyssoftpath@rect{\the\pgf@x}{\the\pgf@y}{\the\pgf@xa}{\the\pgf@ya}%
\pgf@protocolsizes{\pgf@x}{\pgf@y}%
\advance\pgf@x by\pgf@xa\relax%
\advance\pgf@y by\pgf@ya\relax%
\pgf@protocolsizes{\pgf@x}{\pgf@y}%
}
\def\pgf@specialrect#1#2{%
\pgf@process{#2}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{#1}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\advance\pgf@xa by\pgf@xb%
\advance\pgf@ya by\pgf@yb%
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@ya}}%
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}}%
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yb}}%
\pgfpathclose%
\pgfpathmoveto{\pgfqpoint{\pgf@xb}{\pgf@yb}}%
}
\def\pgfpathrectanglecorners#1#2{%
\pgf@process{#2}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{#1}%
\advance\pgf@xc by-\pgf@x%
\advance\pgf@yc by-\pgf@y%
\pgfpathrectangle{#1}{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
}
\pgfkeys{
/pgf/stepx/.initial=1cm,
/pgf/stepy/.initial=1cm,
/pgf/step/.code={\pgf@process{#1}\pgfkeysalso{/pgf/stepx/.expanded=\the\pgf@x,/pgf/stepy/.expanded=\the\pgf@y}},
/pgf/step/.value required
}
\def\pgfpathgrid{\pgfutil@ifnextchar[{\pgf@pathgrid}{\pgf@pathgrid[]}}
\def\pgf@pathgrid[#1]#2#3{%
\pgfset{#1}%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/stepx}}%
\pgfmathsetlength\pgf@yc{\pgfkeysvalueof{/pgf/stepy}}%
\pgf@process{#3}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{#2}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\ifdim\pgf@xa>\pgf@xb%
\pgf@x=\pgf@xb%
\pgf@xb=\pgf@xa%
\pgf@xa=\pgf@x%
\fi%
\ifdim\pgf@ya>\pgf@yb%
\pgf@y=\pgf@yb%
\pgf@yb=\pgf@ya%
\pgf@ya=\pgf@y%
\fi%
\ifdim \pgf@yc > .01pt\relax%
\c@pgf@counta=\pgf@ya\relax%
\c@pgf@countb=\pgf@yc\relax%
\divide\c@pgf@counta by\c@pgf@countb\relax%
\pgfutil@tempdima=\c@pgf@counta\pgf@yc\relax%
\ifdim\pgfutil@tempdima<\pgf@ya%
\advance\pgfutil@tempdima by\pgf@yc%
\fi%
\pgfutil@tempdimb\pgf@x
\pgfutil@loop%
{%
\pgf@xa=\pgfutil@tempdimb%
\pgf@ya=\pgfutil@tempdima%
\pgf@pos@transform{\pgf@xa}{\pgf@ya}
\pgf@nlt@moveto{\pgf@xa}{\pgf@ya}%
\pgf@xa=\pgf@xb%
\pgf@ya=\pgfutil@tempdima%
\pgf@pos@transform{\pgf@xa}{\pgf@ya}
\pgf@nlt@lineto{\pgf@xa}{\pgf@ya}%
}%
\advance\pgfutil@tempdima by\pgf@yc%
\ifdim\pgfutil@tempdima<\pgf@yb%
\pgfutil@repeat%
\advance\pgfutil@tempdima by-0.01pt\relax%
\ifdim\pgfutil@tempdima<\pgf@yb%
{%
\pgf@xa=\pgfutil@tempdimb%
\pgf@ya=\pgfutil@tempdima%
\pgf@pos@transform{\pgf@xa}{\pgf@ya}
\pgf@nlt@moveto{\pgf@xa}{\pgf@ya}%
\pgf@xa=\pgf@xb%
\pgf@ya=\pgfutil@tempdima%
\pgf@pos@transform{\pgf@xa}{\pgf@ya}
\pgf@nlt@lineto{\pgf@xa}{\pgf@ya}%
}%
\fi%
\fi%
\ifdim \pgf@xc > .01pt\relax%
\c@pgf@counta=\pgf@xa\relax%
\c@pgf@countb=\pgf@xc\relax%
\divide\c@pgf@counta by\c@pgf@countb\relax%
\pgfutil@tempdimb=\c@pgf@counta\pgf@xc\relax%
\ifdim\pgfutil@tempdimb<\pgf@xa%
\advance\pgfutil@tempdimb by\pgf@xc%
\fi%
\pgfutil@loop%
{%
\pgf@xc=\pgfutil@tempdimb%
\pgf@yc=\pgf@ya%
\pgf@pos@transform{\pgf@xc}{\pgf@yc}
\pgf@nlt@moveto{\pgf@xc}{\pgf@yc}%
\pgf@xc=\pgfutil@tempdimb%
\pgf@yc=\pgf@yb%
\pgf@pos@transform{\pgf@xc}{\pgf@yc}
\pgf@nlt@lineto{\pgf@xc}{\pgf@yc}%
}%
\advance\pgfutil@tempdimb by\pgf@xc%
\ifdim\pgfutil@tempdimb<\pgf@xb%
\pgfutil@repeat%
\advance\pgfutil@tempdimb by-0.01pt\relax%
\ifdim\pgfutil@tempdimb<\pgf@xb%
{%
\pgf@xc=\pgfutil@tempdimb%
\pgf@yc=\pgf@ya%
\pgf@pos@transform{\pgf@xc}{\pgf@yc}
\pgf@nlt@moveto{\pgf@xc}{\pgf@yc}%
\pgf@xc=\pgfutil@tempdimb%
\pgf@yc=\pgf@yb%
\pgf@pos@transform{\pgf@xc}{\pgf@yc}
\pgf@nlt@lineto{\pgf@xc}{\pgf@yc}%
}%
\fi%
\fi%
\pgf@process{#3}%
\pgf@pos@transform{\pgf@x}{\pgf@y}%
\pgf@nlt@moveto{\pgf@x}{\pgf@y}%
}
\def\pgfpathparabola#1#2{%
{%
\pgf@process{#2}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{#1}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfutil@tempswatrue%
\ifdim\pgf@xb=0pt\relax%
\ifdim\pgf@yb=0pt\relax%
\pgfutil@tempswafalse%
\fi%
\fi%
{%
\ifpgfutil@tempswa%
\pgf@arccornersfalse
\else%
\fi%
\pgfutil@tempswatrue%
\ifdim\pgf@xc=0pt\relax%
\ifdim\pgf@yc=0pt\relax%
\pgfutil@tempswafalse%
\fi%
\fi%
\ifpgfutil@tempswa
{%
\pgf@pt@x=\pgf@path@lastx%
\pgf@pt@y=\pgf@path@lasty%
\pgfpathcurveto%
{\pgfqpoint{.1125\pgf@xc}{.225\pgf@yc}}%
{\pgfqpoint{.5\pgf@xc}{\pgf@yc}}%
{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
}%
\fi%
}%
\ifpgfutil@tempswa%
\pgf@xc=\pgf@xb%
\pgf@yc=\pgf@yb%
{%
\pgf@pt@x=\pgf@path@lastx%
\pgf@pt@y=\pgf@path@lasty%
\pgfpathcurveto%
{\pgfqpoint{.5\pgf@xc}{0\pgf@yc}}%
{\pgfqpoint{.8875\pgf@xc}{.775\pgf@yc}}%
{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
}%
\fi%
}%
}
\def\pgfpathsine#1{%
{%
\pgf@process{#1}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@pt@x=\pgf@path@lastx%
\pgf@pt@y=\pgf@path@lasty%
\pgfpathcurveto%
{\pgfqpoint{.3260\pgf@xc}{.5120\pgf@yc}}%
{\pgfqpoint{.6380\pgf@xc}{\pgf@yc}}%
{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
}%
}
\def\pgfpathcosine#1{%
{%
\pgf@process{#1}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@pt@x=\pgf@path@lastx%
\pgf@pt@y=\pgf@path@lasty%
\pgfpathcurveto%
{\pgfqpoint{.3620\pgf@xc}{0pt}}%
{\pgfqpoint{.6740\pgf@xc}{.4880\pgf@yc}}%
{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
}%
}
\def\pgfpathcurvebetweentime{\pgf@ignoremovetofalse\pgf@@pathcurvebetweentime}
\def\pgfpathcurvebetweentimecontinue{\pgf@ignoremovetotrue\pgf@@pathcurvebetweentime}
\newif\ifpgf@ignoremoveto
\def\pgf@@pathcurvebetweentime#1#2#3#4#5#6{%
\pgfmathparse{#1}%
\let\pgf@time@s=\pgfmathresult%
\pgfmathparse{#2}%
\let\pgf@time@t=\pgfmathresult%
\ifdim\pgf@time@s pt>\pgf@time@t pt\relax%
\pgfmathsetmacro\pgf@time@s{1-#1}%
\pgfmathsetmacro\pgf@time@t{1-#2}%
\pgf@@@pathcurvebetweentime{\pgf@time@t}{#6}{#5}{#4}{#3}%
\else%
\pgf@@@pathcurvebetweentime{\pgf@time@t}{#3}{#4}{#5}{#6}%
\fi%
}
\def\pgf@@@pathcurvebetweentime#1#2#3#4#5{%
\pgf@process{#2}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{%
\pgf@process{#3}%
\pgf@xa=#1\pgf@x%
\pgf@ya=#1\pgf@y%
\pgf@process{#2}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\advance\pgf@x by-#1\pgf@xb%
\advance\pgf@y by-#1\pgf@yb%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{%
\pgf@process{#4}%
\pgf@xa=#1\pgf@x%
\pgf@ya=#1\pgf@y%
\pgf@process{#3}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\advance\pgf@xc by-#1\pgf@x%
\advance\pgf@yc by-#1\pgf@y%
\pgf@x=\pgf@xb%
\pgf@y=\pgf@yb%
\advance\pgf@x by#1\pgf@xa%
\advance\pgf@y by#1\pgf@ya%
\advance\pgf@x by-#1\pgf@xb%
\advance\pgf@y by-#1\pgf@yb%
\advance\pgf@x by#1\pgf@xc%
\advance\pgf@y by#1\pgf@yc%
}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgfpointcurveattime{#1}{#2}{#3}{#4}{#5}}%
\ifx#1\pgf@time@t%
\pgfmathdivide@{\pgf@time@s}{\pgf@time@t}%
\pgfmathadd@{-\pgfmathresult}{1}%
\let\pgf@time@s=\pgfmathresult%
\edef\pgf@marshal{%
\noexpand\pgf@@@pathcurvebetweentime{\noexpand\pgf@time@s}%
{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}%
}%
\else%
\ifpgf@ignoremoveto%
\edef\pgf@marshal{%
\noexpand\pgfpathcurveto{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}%
}%
\else%
\edef\pgf@marshal{%
\noexpand\pgfpathmoveto{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\noexpand\pgfpathcurveto{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}%
}%
\fi%
\fi%
\pgf@marshal%
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex ====
\ProvidesFileRCS{pgfcorepathprocessing.code.tex}
\def\pgfprocesssplitpath#1{%
\let\pgfprocessresultpathprefix\pgfutil@empty%
\let\pgfprocessresultpathsuffix\pgfutil@empty%
\let\pgf@next\pgf@process@split%
\expandafter\pgf@process@split#1\pgfsyssoftpath@movetotoken{}{}\pgf@stop%
}
\def\pgf@process@split#1\pgfsyssoftpath@movetotoken#2#3#4{%
\ifx#4\pgf@stop%
\expandafter\def\expandafter\pgfprocessresultpathsuffix\expandafter{\pgfprocessresultpathsuffix#1}%
\let\pgf@next\pgfutil@gobble%
\else%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgfprocessresultpathprefix%
\expandafter\expandafter\expandafter{\expandafter\pgfprocessresultpathprefix\pgfprocessresultpathsuffix#1}%
\def\pgfprocessresultpathsuffix{\pgfsyssoftpath@movetotoken{#2}{#3}}%
\fi%
\pgf@next#4%
}
\def\pgfprocesssplitsubpath#1{%
\let\pgf@tempa\pgfutil@emtpy%
\let\pgf@tempb\pgfutil@emtpy%
\let\pgf@tempc\pgfutil@emtpy%
\let\pgf@tempd\pgfutil@emtpy%
\let\pgfprocessresultsubpathprefix\pgfutil@empty%
\let\pgfprocessresultsubpathsuffix\pgfutil@empty%
\let\pgf@next\pgf@split@subpath%
\expandafter\pgf@split@subpath#1\pgf@stop%
}
\newif\ifpgf@split@move
\def\pgf@split@subpath#1#2#3#4{%
\ifx#4\pgf@stop%
\expandafter\def\expandafter\pgfprocessresultsubpathsuffix\expandafter{\pgfprocessresultsubpathsuffix#1{#2}{#3}}%
\let\pgf@next\pgfutil@gobble%
\else%
\pgf@split@movetrue%
\ifx#1\pgfsyssoftpath@curvetosupportatoken%
\pgf@split@movefalse%
\else
\ifx#1\pgfsyssoftpath@curvetosupportbtoken%
\pgf@split@movefalse%
\fi%
\fi%
\ifpgf@split@move%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgfprocessresultsubpathprefix%
\expandafter\expandafter\expandafter{%
\expandafter\pgfprocessresultsubpathprefix\pgfprocessresultsubpathsuffix}%
\def\pgfprocessresultsubpathsuffix{#1{#2}{#3}}%
\else%
\expandafter\def\expandafter\pgfprocessresultsubpathsuffix\expandafter{\pgfprocessresultsubpathsuffix#1{#2}{#3}}%
\fi%
\fi%
\pgf@next#4%
}
\def\pgfprocesspathextractpoints#1{%
\ifx#1\pgfutil@empty%
\let\pgfpointfirstonpath=\pgfpointorigin%
\let\pgfpointsecondonpath=\pgfpointorigin%
\let\pgfpointsecondlastonpath=\pgfpointorigin%
\let\pgfpointlastonpath=\pgfpointorigin%
\else%
\expandafter\pgf@extractprocessorfirst#1\pgf@stop%
\fi%
}
\def\pgf@extractprocessorfirst#1#2#3#4{%
\def\pgfpointfirstonpath{\pgfqpoint{#2}{#3}}%
\ifx#4\pgf@stop%
\let\pgfpointsecondonpath=\pgfpointfirstonpath%
\let\pgfpointsecondlastonpath=\pgfpointfirstonpath%
\let\pgfpointlastonpath=\pgfpointfirstonpath%
\let\next=\pgfutil@gobble%
\else
\let\next=\pgf@extractprocessorsecond%
\fi%
\next#4%
}
\def\pgf@extractprocessorsecond#1{%
\ifx#1\pgfsyssoftpath@movetotoken%
\let\pgf@next=\pgf@extractprocessorfirst%
\else%
\let\pgf@next=\pgf@@extractprocessorsecond%
\fi%
\pgf@next#1%
}
\def\pgf@@extractprocessorsecond#1#2#3#4{%
\def\pgfpointsecondonpath{\pgfqpoint{#2}{#3}}%
\let\pgfpointsecondlastonpath=\pgfpointfirstonpath%
\let\pgfpointlastonpath=\pgfpointsecondonpath%
\ifx#4\pgf@stop%
\let\next=\pgfutil@gobble%
\else
\let\next=\pgf@extractprocessorother%
\fi%
\next#4%
}
\def\pgf@extractprocessorother#1{%
\ifx#1\pgfsyssoftpath@movetotoken%
\let\pgf@next=\pgf@extractprocessorfirst%
\else%
\let\pgf@next=\pgf@@extractprocessorother%
\fi%
\pgf@next#1%
}
\def\pgf@@extractprocessorother#1#2#3#4{%
\let\pgfpointsecondlastonpath=\pgfpointlastonpath%
\def\pgfpointlastonpath{\pgfqpoint{#2}{#3}}%
\ifx#4\pgf@stop%
\let\next=\pgfutil@gobble%
\fi%
\next#4%
}
\def\pgfprocesscheckclosed#1#2{%
{%
\global\let\pgf@proc@todo=\relax%
\let\pgfsyssoftpath@movetotoken=\pgfutil@gobbletwo%
\let\pgfsyssoftpath@linetotoken=\pgfutil@gobbletwo%
\let\pgfsyssoftpath@curvetosupportatoken=\pgfutil@gobbletwo%
\let\pgfsyssoftpath@curvetosupportbtoken=\pgfutil@gobbletwo%
\let\pgfsyssoftpath@curvetotoken=\pgfutil@gobbletwo%
\def\pgfsyssoftpath@rectcornertoken{\gdef\pgf@proc@todo{#2}\pgfutil@gobbletwo}%
\def\pgfsyssoftpath@rectsizetoken{\gdef\pgf@proc@todo{#2}\pgfutil@gobbletwo}%
\def\pgfsyssoftpath@closepathtoken{\gdef\pgf@proc@todo{#2}\pgfutil@gobbletwo}%
#1%
}%
\pgf@proc@todo%
}
\def\pgfprocessround#1#2{%
\expandafter\pgf@processroundcheck\expandafter#1\expandafter#2#1\pgfsyssoftpath@specialroundtoken\pgf@stop%
}
\def\pgf@processroundcheck#1#2#3\pgfsyssoftpath@specialroundtoken#4\pgf@stop{%
\def\pgf@test{#4}%
\ifx\pgf@test\pgfutil@empty%
\let#2=#1%
\else%
\pgf@@processround#1#2%
\fi%
}
\def\pgf@@processround#1#2{%
\let\pgfprocess@newpath\pgfutil@empty%
\let\pgfprocess@moveto\pgfutil@empty%
\let\pgfprocess@firstto\pgfutil@empty%
\let\pgfprocess@segment\pgfutil@empty%
\pgf@xa=0pt%
\pgf@ya=0pt%
\expandafter\pgfprocess@round#1\pgf@stop{0pt}{0pt}%
\expandafter\pgfutil@g@addto@macro\expandafter\pgfprocess@newpath\expandafter{\pgfprocess@moveto}%
\expandafter\pgfutil@g@addto@macro\expandafter\pgfprocess@newpath\expandafter{\pgfprocess@segment}%
\let#2=\pgfprocess@newpath%
}
\def\pgfprocess@round#1#2#3{%
\ifx#1\pgf@stop%
\let\next=\relax%
\else%
\ifx#1\pgfsyssoftpath@specialroundtoken%
\def\pgfprocess@savex{#2}%
\def\pgfprocess@savey{#3}%
\let\next=\pgfprocess@specialround%
\ifdim#2=0pt%
\ifdim#3=0pt%
\let\next=\pgfprocess@round%
\fi%
\fi%
\else%
\ifx\pgfprocess@firstto\pgfutil@empty%
\def\pgfprocess@firstto{{#2}{#3}}%
\fi%
\pgf@xa=#2%
\pgf@ya=#3%
\ifx#1\pgfsyssoftpath@movetotoken%
\expandafter\pgfutil@g@addto@macro\expandafter\pgfprocess@newpath\expandafter{\pgfprocess@moveto}%
\expandafter\pgfutil@g@addto@macro\expandafter\pgfprocess@newpath\expandafter{\pgfprocess@segment}%
\def\pgfprocess@moveto{#1{#2}{#3}}%
\let\pgfprocess@firstto=\pgfutil@empty%
\let\pgfprocess@segment=\pgfutil@empty%
\else%
\pgfutil@g@addto@macro\pgfprocess@segment{#1{#2}{#3}}%
\fi%
\let\next=\pgfprocess@round%
\fi%
\fi%
\next%
}
\def\pgfprocess@specialround#1#2#3{%
\ifx\pgfprocess@firstto\pgfutil@empty%
\def\pgfprocess@firstto{{#2}{#3}}%
\fi%
\let\next=\pgfprocess@round%
\ifx#1\pgfsyssoftpath@linetotoken%
\let\next=\pgfprocess@specialroundcope%
\else%
\ifx#1\pgfsyssoftpath@curvetosupportatoken%
\let\next=\pgfprocess@specialroundcurveto%
\else%
\ifx#1\pgfsyssoftpath@closepathtoken%
\let\next=\pgfprocess@specialroundclose%
\fi%
\fi%
\fi%
\next#1{#2}{#3}%
}%
\def\pgfprocess@specialroundcope#1#2#3#4#5#6{%
\let\next=\pgfprocess@round%
\let\pgfprocess@continueafterrounding=\pgfprocess@round%
\ifx#4\pgfsyssoftpath@linetotoken%
\pgf@xc=#5%
\pgf@yc=#6%
\let\next=\pgfprocess@@specialround%
\else%
\ifx#4\pgfsyssoftpath@curvetosupportatoken%
\pgf@xc=#5%
\pgf@yc=#6%
\let\next=\pgfprocess@@specialround%
\else%
\ifx#4\pgfsyssoftpath@closepathtoken%
\pgf@xc=#5%
\pgf@yc=#6%
\let\next=\pgfprocess@@specialround%
\else
\ifx#4\pgfsyssoftpath@specialroundtoken%
\let\next=\pgfprocess@@findrightcoordinates%
\fi%
\fi%
\fi%
\fi%
\next#1{#2}{#3}#4{#5}{#6}%
}
\def\pgfprocess@@findrightcoordinates#1#2#3#4#5#6#7#8#9{%
\pgf@xc=#8%
\pgf@yc=#9%
\pgfprocess@@specialround#1{#2}{#3}#4{#5}{#6}#7{#8}{#9}%
}
\def\pgfprocess@@specialround#1#2#3{%
\pgfutil@g@addto@macro\pgfprocess@segment{#1}%
\pgf@xb=#2%
\pgf@yb=#3%
\edef\pgf@marshal%
{\noexpand\pgfpointlineatdistance{\pgfprocess@savex}%
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}%
{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}}%
\pgf@process{\pgf@marshal}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\edef\pgfprocess@addition{{\the\pgf@x}{\the\pgf@y}}%
\expandafter\pgfutil@g@addto@macro\expandafter\pgfprocess@segment\expandafter{\pgfprocess@addition}%
\edef\pgf@marshal%
{\noexpand\pgfpointlineatdistance{\pgfprocess@savey}%
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}%
{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}}%
\pgf@process{\pgf@marshal}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
{%
\pgf@x=\pgf@xb%
\pgf@y=\pgf@yb%
\advance\pgf@x by-\pgf@xa%
\advance\pgf@y by-\pgf@ya%
\advance\pgf@xa by 0.5522847\pgf@x%
\advance\pgf@ya by 0.5522847\pgf@y%
\edef\pgfprocess@addition{\noexpand\pgfsyssoftpath@curvetosupportatoken{\the\pgf@xa}{\the\pgf@ya}}%
\expandafter\pgfutil@g@addto@macro\expandafter\pgfprocess@segment\expandafter{\pgfprocess@addition}%
}%
{%
\pgf@x=\pgf@xb%
\pgf@y=\pgf@yb%
\advance\pgf@x by-\pgf@xc%
\advance\pgf@y by-\pgf@yc%
\advance\pgf@xc by 0.5522847\pgf@x%
\advance\pgf@yc by 0.5522847\pgf@y%
\edef\pgfprocess@addition{\noexpand\pgfsyssoftpath@curvetosupportbtoken{\the\pgf@xc}{\the\pgf@yc}}%
\expandafter\pgfutil@g@addto@macro\expandafter\pgfprocess@segment\expandafter{\pgfprocess@addition}%
}%
\edef\pgfprocess@addition{\noexpand\pgfsyssoftpath@curvetotoken{\the\pgf@xc}{\the\pgf@yc}}%
\expandafter\pgfutil@g@addto@macro\expandafter\pgfprocess@segment\expandafter{\pgfprocess@addition}%
\pgf@xa=#2%
\pgf@ya=#3%
\pgfprocess@continueafterrounding%
}
\def\pgfprocess@specialroundcurveto#1#2#3#4#5#6{%
\pgfutil@g@addto@macro\pgfprocess@segment{#1{#2}{#3}#4{#5}{#6}}%
\pgf@xa=#5%
\pgf@ya=#6%
\pgfprocess@specialroundcope}
\def\pgfprocess@specialroundclose{%
\let\next=\pgfprocess@round%
\ifx\pgfprocess@moveto\pgfutil@empty%
\else%
\ifx\pgfprocess@firstto\pgfutil@empty%
\else%
\expandafter\pgfprocess@@specialclosetarget\pgfprocess@firstto%
\let\pgfprocess@continueafterrounding=\pgfprocess@cleanupafterclose%
\edef\next{%
\noexpand\pgfprocess@@specialround%
\expandafter\expandafter\expandafter\noexpand\expandafter\pgfprocess@@specialclosemoveto\pgfprocess@moveto%
}%
\fi%
\fi%
\next%
}
\def\pgfprocess@@specialclosetarget#1#2{%
\pgf@xc=#1%
\pgf@yc=#2%
}
\def\pgfprocess@@specialclosemoveto#1#2#3{%
\pgfsyssoftpath@linetotoken{#2}{#3}%
}
\def\pgfprocess@cleanupafterclose#1#2#3{%
\edef\pgfprocess@moveto{\noexpand\pgfsyssoftpath@movetotoken{\the\pgf@xc}{\the\pgf@yc}}%
\edef\pgf@marshal{\noexpand\pgfprocess@round\noexpand\pgfsyssoftpath@closepathtoken{\the\pgf@xc}{\the\pgf@yc}}%
\pgf@marshal%
}
\def\pgfprocesspathreplacestartandend#1#2#3{%
\ifx#1\pgfutil@empty%
\else%
{%
\pgfsyssoftpath@getcurrentpath\pgf@replace@origpath%
\let\pgf@prepath=\pgfutil@empty%
\pgf@process{#3}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{#2}%
\expandafter\pgf@replaceprocessfirst#1\pgf@stop%
\pgfsyssoftpath@getcurrentpath\pgf@restpath%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\gdef%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter#1%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter{%
\expandafter\expandafter\expandafter\pgf@prepath%
\expandafter\pgf@newstart\pgf@restpath}%
\pgfsyssoftpath@setcurrentpath\pgf@replace@origpath%
}%
\fi%
}
\def\pgf@replaceprocessfirst#1#2#3#4{%
\def\pgf@origstart{#1{#2}{#3}}%
\edef\pgf@newstart{\noexpand#1{\the\pgf@x}{\the\pgf@y}}%
\pgfsyssoftpath@setcurrentpath\pgfutil@empty%
\ifx#4\pgf@stop%
\let\pgf@next=\pgfutil@gobble%
\else%
\let\pgf@next=\pgf@replaceprocessother%
\let\pgf@@next=\pgf@@replaceprocessother%
\fi%
\pgf@next#4%
}
\def\pgf@replaceprocessother#1{%
\ifx#1\pgfsyssoftpath@movetotoken%
\pgf@replace@handle@move%
\fi%
\pgf@@next#1%
}
\def\pgf@@replaceprocessother#1#2#3#4{%
\ifx#4\pgf@stop%
\edef\pgf@restpathaddition{{\noexpand#1{\the\pgf@xa}{\the\pgf@ya}}}%
\expandafter\pgfsyssoftpath@addtocurrentpath\pgf@restpathaddition%
\let\pgf@next=\pgfutil@gobble%
\else%
\pgfsyssoftpath@addtocurrentpath{#1{#2}{#3}}%
\fi%
\pgf@next#4%
}
\def\pgf@replace@handle@move{%
\pgfsyssoftpath@getcurrentpath\pgf@restpath%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\gdef%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\pgf@prepath%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter{%
\expandafter\expandafter\expandafter\pgf@prepath%
\expandafter\pgf@origstart\pgf@restpath}%
\let\pgf@@next=\pgf@replaceprocessfirst%
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex ====
\ProvidesFileRCS{pgfcorepathusage.code.tex}
\pgfkeys{
/pgf/stroke/.code=\let\pgf@up@stroke\pgf@up@stroke@text\pgf@up@path@neededtrue,
/pgf/draw/.code=\let\pgf@up@stroke\pgf@up@stroke@text\pgf@up@path@neededtrue,
/pgf/fill/.code=\let\pgf@up@fill\pgf@up@fill@text\pgf@up@path@neededtrue,
/pgf/clip/.code=\let\pgf@up@clip\pgf@up@clip@text\pgf@up@path@neededtrue,
/pgf/discard/.code=,
/pgf/use as bounding box/.code=\let\pgf@up@bb\pgf@do@up@bb,
/pgf/arrow keys/flex/.code=\pgferror{You need to say \string\usetikzlibrary{bending} for flexing and bending arrows},
/pgf/arrow keys/flex'/.code=\pgferror{You need to say \string\usetikzlibrary{bending} for flexing and bending arrows},
/pgf/arrow keys/bend/.code=\pgferror{You need to say \string\usetikzlibrary{bending} for flexing and bending arrows},
/pgf/arrow keys/quick/.code=\pgfarrowsaddtooptions{\let\pgf@arrow@flex@mode\pgf@arrow@mode@is@quick},
}
\pgfkeys{
/pgf/.cd,
tips/.is choice,
tips/.default=true,
tips/proper/.code=\let\pgf@tips@mode\pgf@tips@mode@onproper,
tips/on proper draw/.code=\let\pgf@tips@mode\pgf@tips@mode@onproperdraw,
tips/true/.code=\let\pgf@tips@mode\pgf@tips@mode@true,
tips/on draw/.code=\let\pgf@tips@mode\pgf@tips@mode@ondraw,
tips/never/.code=\let\pgf@tips@mode\pgf@tips@mode@false,
tips/false/.code=\let\pgf@tips@mode\pgf@tips@mode@false,
}
\def\pgf@tips@mode@onproper{4}
\def\pgf@tips@mode@onproperdraw{3}
\def\pgf@tips@mode@true{2}
\def\pgf@tips@mode@ondraw{1}
\def\pgf@tips@mode@false{0}
\let\pgf@tips@mode\pgf@tips@mode@ondraw
\newif\ifpgf@precise@shortening
\def\pgf@arrow@mode@is@quick{0}
\let\pgf@arrow@flex@mode\pgf@arrow@mode@is@quick
\newif\ifpgf@up@path@needed
\newif\ifpgf@up@draw@arrows
\def\pgf@up@stroke@text{stroke}
\def\pgf@up@fill@text{fill}
\def\pgf@up@clip@text{clip}
\def\pgf@do@up@bb{\pgf@relevantforpicturesizefalse}
\def\pgfusepath#1{%
\pgf@up@path@neededfalse%
\pgf@up@draw@arrowsfalse%
\let\pgf@up@stroke\pgfutil@empty%
\let\pgf@up@fill\pgfutil@empty%
\let\pgf@up@clip\pgfutil@empty%
\let\pgf@up@bb\pgfutil@empty%
\pgfset{#1}%
\expandafter\def\expandafter\pgf@up@action\expandafter{\csname pgfsys@\pgf@up@fill\pgf@up@stroke\endcsname}%
\ifnum\pgf@tips@mode=2\relax%
\pgf@up@path@neededtrue%
\fi%
\ifnum\pgf@tips@mode=4\relax%
\pgf@up@path@neededtrue%
\fi%
\ifpgf@up@path@needed%
\else%
\pgfsyssoftpath@setcurrentpath\pgfutil@empty%
\fi%
\ifx\pgf@up@stroke\pgfutil@empty%
\ifx\pgf@up@fill\pgfutil@empty%
\let\pgf@up@action=\pgfutil@empty%
\ifx\pgf@up@clip\pgfutil@empty%
\else%
\let\pgf@up@action=\pgfsys@discardpath%
\fi%
\fi%
\fi%
\pgfsyssoftpath@getcurrentpath\pgf@last@processed@path
\pgfprocessround{\pgf@last@processed@path}{\pgf@last@processed@path}%
\pgfsyssoftpath@setcurrentpath\pgf@last@processed@path%
\ifpgf@relevantforpicturesize%
\ifx\pgf@up@stroke\pgfutil@empty%
\else%
\ifdim\pgf@picmaxx=-16000pt\relax%
\else%
\pgf@x=\pgf@pathminx\advance\pgf@x by-.5\pgflinewidth%
\ifdim\pgf@x<\pgf@picminx\global\pgf@picminx\pgf@x\fi%
\pgf@y=\pgf@pathminy\advance\pgf@y by-.5\pgflinewidth%
\ifdim\pgf@y<\pgf@picminy\global\pgf@picminy\pgf@y\fi%
\pgf@x=\pgf@pathmaxx\advance\pgf@x by.5\pgflinewidth%
\ifdim\pgf@x>\pgf@picmaxx\global\pgf@picmaxx\pgf@x\fi%
\pgf@y=\pgf@pathmaxy\advance\pgf@y by.5\pgflinewidth%
\ifdim\pgf@y>\pgf@picmaxy\global\pgf@picmaxy\pgf@y\fi%
\fi%
\fi%
\fi%
\ifx\pgf@up@clip\pgfutil@empty%
\ifx\pgf@up@stroke\pgfutil@empty%
\ifx\pgf@up@action\pgfutil@empty%
\ifnum\pgf@tips@mode=2\relax%
\pgf@up@draw@arrows@only%
\fi%
\ifnum\pgf@tips@mode=4\relax%
\pgf@up@draw@arrows@only%
\fi%
\else%
\pgfsyssoftpath@invokecurrentpath%
\pgf@up@action%
\fi%
\else%
\pgfgetpath\pgf@arrowpath%
\pgf@path@setup@tempswa%
\pgfprocesscheckclosed{\pgf@arrowpath}{\pgfutil@tempswafalse}%
\pgf@path@check@proper%
\ifpgfutil@tempswa%
\pgf@check@for@arrow@and@animation%
\pgf@prepare@end@of@path%
\begingroup%
\pgf@prepare@start@of@path%
\fi%
\pgfsyssoftpath@invokecurrentpath%
\pgf@up@action%
\ifdim\pgfinnerlinewidth>0pt\relax%
\pgf@stroke@inner@line%
\fi%
\ifpgfutil@tempswa%
\pgf@add@arrow@at@start%
\endgroup%
\pgf@add@arrow@at@end%
\fi%
\fi%
\else%
\pgfsyssoftpath@invokecurrentpath%
\pgfsys@clipnext%
\pgf@up@action%
\pgf@relevantforpicturesizefalse%
\fi%
\pgf@up@bb%
\pgfsyssoftpath@setcurrentpath\pgfutil@empty%
\pgf@resetpathsizes%
\ignorespaces%
}
\def\pgf@path@setup@tempswa{%
\ifnum\pgf@tips@mode>0\relax
\pgfutil@tempswatrue%
\else
\pgfutil@tempswafalse%
\fi%
}
\def\pgf@up@draw@arrows@only{%
\pgfgetpath\pgf@arrowpath%
\pgfutil@tempswatrue%
\pgfprocesscheckclosed{\pgf@arrowpath}{\pgfutil@tempswafalse}%
\pgf@path@check@proper%
\ifpgfutil@tempswa%
\pgf@check@for@arrow@and@animation%
\pgf@prepare@end@of@path%
\begingroup%
\pgf@prepare@start@of@path%
\pgf@add@arrow@at@start%
\endgroup%
\pgf@add@arrow@at@end%
\fi%
}
\def\pgf@check@for@arrow@and@animation{\pgfsys@if@fresh@currentid{\pgf@check@for@arrow@and@animation@}{}}%
\def\pgf@check@for@arrow@and@animation@{%
\expandafter\ifx\csname pgfsysanim@path@is@animated@\pgf@sys@id@current@id @\pgfsys@current@type\endcsname\pgfutil@empty%
\ifx\pgf@end@tip@sequence\pgfutil@empty%
\ifx\pgf@start@tip@sequence\pgfutil@empty%
\else%
\pgf@check@for@arrow@and@animation@error%
\fi%
\else%
\pgf@check@for@arrow@and@animation@error%
\fi%
\fi%
}
\def\pgf@check@for@arrow@and@animation@error{\pgferror{Animated path may not have normal arrow tips. Use a base path with arrow tips}}
\def\pgf@path@check@proper{%
\ifpgfutil@tempswa%
\ifnum\pgf@tips@mode>2\relax%
\pgf@path@check@proper@%
\fi%
\fi%
}
\def\pgf@path@check@proper@{%
{%
\pgf@x0pt\pgf@y\pgf@x%
\pgfutil@tempswatrue%
\let\pgfsyssoftpath@movetotoken\pgf@path@proper@init%
\let\pgfsyssoftpath@linetotoken\pgf@path@proper@test%
\let\pgfsyssoftpath@curvetosupportatoken\pgf@path@proper@test%
\let\pgfsyssoftpath@curvetosupportbtoken=\pgf@path@proper@test%
\let\pgfsyssoftpath@curvetotoken\pgf@path@proper@test%
\let\pgfsyssoftpath@rectcornertoken\pgf@path@proper@test%
\let\pgfsyssoftpath@rectsizetoken\pgf@path@proper@zero@test%
\let\pgfsyssoftpath@closepathtoken\pgf@path@proper@test%
\pgf@arrowpath%
\expandafter
}%
\ifpgfutil@tempswa\pgfutil@tempswafalse\else\pgfutil@tempswatrue\fi%
}
\def\pgf@path@proper@init#1#2{\pgfutil@tempswatrue\pgf@x#1\pgf@y#2}%
\def\pgf@path@proper@test#1#2{%
\ifdim\pgf@x=#1\relax\else\pgfutil@tempswafalse\fi%
\ifdim\pgf@y=#2\relax\else\pgfutil@tempswafalse\fi}
\def\pgf@path@proper@zero@test#1#2{%
\ifdim\pgf@x=0pt\relax\else\pgfutil@tempswafalse\fi%
\ifdim\pgf@y=0pt\relax\else\pgfutil@tempswafalse\fi}
\def\pgf@stroke@inner@line{%
\let\pgf@temp@save=\pgf@strokecolor@global
\pgfsys@beginscope%
{%
\pgfsys@setlinewidth{\pgfinnerlinewidth}%
\pgfsetstrokecolor{\pgfinnerstrokecolor}%
\pgfsyssoftpath@invokecurrentpath%
\pgfsys@stroke%
}%
\pgfsys@endscope%
\global\let\pgf@strokecolor@global=\pgf@temp@save
}
\let\pgf@prepare@start@of@path\relax%
\def\pgfsetshortenstart#1{\pgfmathsetlength\pgf@shorten@start@additional{#1}}
\def\pgfsetshortenend#1{\pgfmathsetlength\pgf@shorten@end@additional{#1}}
\newdimen\pgf@shorten@end@additional
\newdimen\pgf@shorten@start@additional
\newif\ifpgf@worry
\def\pgf@prepare@end@of@path{%
\let\pgfprocessresultpathsuffix\relax%
\let\pgfprocessresultsubpathsuffix\relax%
\pgfsyssoftpath@getcurrentpath\pgf@arrowpath%
\ifx\pgf@arrowpath\pgfutil@empty\else%
\pgf@worryfalse%
\ifx\pgf@end@tip@sequence\pgfutil@empty%
\else%
\pgf@worrytrue%
\fi%
\pgf@precise@shorteningfalse%
\pgf@arrow@compute@shortening\pgf@end@tip@sequence%
\advance\pgf@xa by\pgf@shorten@end@additional%
\advance\pgf@xb by\pgf@shorten@end@additional%
\ifdim\pgf@xa=0pt\relax\else\pgf@worrytrue\fi%
\edef\pgf@path@shortening@distance{\the\pgf@xa}%
\edef\pgf@arrow@tip@total@length{\the\pgf@xb}%
\ifpgf@worry%
\pgfprocesssplitpath{\pgf@arrowpath}%
\pgfprocesssplitsubpath{\pgfprocessresultpathsuffix}%
\expandafter\pgf@parse@end\pgfprocessresultsubpathsuffix\pgf@stop\pgf@stop\pgf@stop%
\pgf@prep@end%
\ifdim\pgf@path@shortening@distance=0pt\else\pgf@do@shorten@end\fi%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@arrowpath%
\expandafter\expandafter\expandafter{\expandafter\pgfprocessresultpathprefix\pgfprocessresultpathsuffix}%
\pgfsyssoftpath@setcurrentpath\pgf@arrowpath%
\fi%
\fi%
}
\def\pgf@parse@end#1#2#3#4#5#6{%
\ifx#4\pgf@stop%
\def\pgfpointlastonpath{\pgfqpoint{#2}{#3}}%
\let\pgf@next\relax%
\let\pgf@do@shorten@end\relax%
\let\pgf@do@draw@end\pgf@do@draw@straightend%
\let\pgf@prep@end\pgf@prep@movetoend%
\else\ifx#4\pgfsyssoftpath@curvetosupportatoken%
\def\pgfsubpathfourthlasttoken{#1}%
\def\pgfpointfourthlastonpath{\pgfqpoint{#2}{#3}}%
\def\pgfpointthirdlastonpath{\pgfqpoint{#5}{#6}}%
\ifpgf@precise@shortening%
\let\pgf@do@shorten@end\pgf@do@shorten@curvedend%
\let\pgf@do@draw@end\pgf@do@draw@curvedend%
\let\pgf@prep@end\pgf@prep@curveend%
\else%
\def\pgfsubpathstart{\noexpand#1{#2}{#3}\noexpand#4{#5}{#6}}%
\let\pgf@do@shorten@end\pgf@do@shorten@straightend%
\let\pgf@do@draw@end\pgf@do@draw@straightend%
\let\pgf@prep@end\pgf@prep@straightend%
\fi%
\let\pgf@next\pgf@parse@end@curve@cont%
\else%
\def\pgfsubpathstart{\noexpand#1{#2}{#3}\noexpand#4}%
\def\pgfpointsecondlastonpath{\pgfqpoint{#2}{#3}}%
\def\pgfpointlastonpath{\pgfqpoint{#5}{#6}}%
\let\pgfpointfourthlastonpath\relax%
\let\pgfpointthirdlastonpath\relax%
\let\pgf@next\pgf@parse@end@gobble@three%
\let\pgf@do@shorten@end\pgf@do@shorten@straightend%
\let\pgf@do@draw@end\pgf@do@draw@straightend%
\let\pgf@prep@end\pgf@prep@straightend%
\fi\fi%
\pgf@next%
}
\def\pgf@parse@end@gobble@three#1#2#3{}%
\def\pgf@parse@end@curve@cont#1#2#3#4#5#6#7#8#9{%
\def\pgfpointsecondlastonpath{\pgfqpoint{#2}{#3}}%
\def\pgfpointlastonpath{\pgfqpoint{#5}{#6}}%
\ifpgf@precise@shortening%
\else%
\expandafter\def\expandafter\pgfsubpathstart\expandafter{\pgfsubpathstart\noexpand#1{#2}{#3}\noexpand#4}%
\fi%
}
\def\pgf@prep@movetoend{%
\pgf@process{\pgfpointlastonpath}%
\pgf@xb\pgf@x
\pgf@yb\pgf@y
\pgf@xc\pgf@x
\pgf@yc\pgf@y
}
\def\pgf@prep@straightend{%
\let\pgf@ref\pgfpointsecondlastonpath
\ifx\pgfpointlastonpath\pgfpointsecondlastonpath%
\ifx\pgfpointthirdlastonpath\relax%
\else%
\ifx\pgfpointlastonpath\pgfpointthirdlastonpath%
\let\pgf@ref\pgfpointfourthlastonpath%
\else
\let\pgf@ref\pgfpointthirdlastonpath%
\fi%
\fi%
\fi%
\pgfpointlineatdistance{\pgf@path@shortening@distance}{\pgfpointlastonpath}{\pgf@ref}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
}
\def\pgf@do@shorten@straightend{%
\edef\pgfprocessresultsubpathsuffix{\pgfsubpathstart{\the\pgf@xa}{\the\pgf@ya}}%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgfprocessresultpathsuffix%
\expandafter\expandafter\expandafter{\expandafter\pgfprocessresultsubpathprefix\pgfprocessresultsubpathsuffix}%
}
\def\pgf@add@arrow@at@end{%
\ifx\pgf@arrowpath\pgfutil@empty\else%
\ifx\pgf@end@tip@sequence\pgfutil@empty\else%
\pgf@do@draw@end%
\fi%
\fi%
}
\def\pgf@do@draw@straightend{%
{%
\pgftransformreset%
\pgftransformarrow{\pgfqpoint{\pgf@xc}{\pgf@yc}}{\pgfqpoint{\pgf@xb}{\pgf@yb}}%
\pgf@arrow@draw@arrow\pgf@end@tip@sequence\pgf@arrow@tip@total@length%
}%
}
\def\pgf@prepare@start@of@path{%
\ifx\pgf@arrowpath\pgfutil@empty\else%
\pgf@worryfalse%
\ifx\pgf@start@tip@sequence\pgfutil@empty\else\pgf@worrytrue\fi%
\pgf@precise@shorteningfalse%
\pgf@arrow@compute@shortening\pgf@start@tip@sequence%
\advance\pgf@xa by\pgf@shorten@start@additional%
\advance\pgf@xb by\pgf@shorten@start@additional%
\ifdim\pgf@xa=0pt\relax\else\pgf@worrytrue\fi%
\edef\pgf@path@shortening@distance{\the\pgf@xa}%
\edef\pgf@arrow@tip@total@length{\the\pgf@xb}%
\ifpgf@worry%
\ifx\pgfprocessresultpathsuffix\relax%
\pgfprocesssplitpath{\pgf@arrowpath}%
\fi%
\expandafter\pgf@parse@start\pgfprocessresultpathsuffix\pgf@stop\pgf@stop\pgf@stop%
\pgf@prep@start%
\ifdim\pgf@path@shortening@distance=0pt\else\pgf@do@shorten@start\fi%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@arrowpath%
\expandafter\expandafter\expandafter{\expandafter\pgfprocessresultpathprefix\pgfprocessresultpathsuffix}%
\pgfsyssoftpath@setcurrentpath\pgf@arrowpath%
\fi%
\fi%
}
\def\pgf@parse@start#1#2#3#4#5#6{%
\def\pgfpointfirstonpath{\pgfqpoint{#2}{#3}}%
\def\pgfpointsecondonpath{\pgfqpoint{#5}{#6}}%
\let\pgfpointthirdonpath\relax%
\let\pgfpointfourthonpath\relax%
\def\pgfsubpathfirsttoken{\noexpand#1}%
\def\pgfsubpathsecondtoken{\noexpand#4}%
\ifx#4\pgf@stop%
\let\pgf@next\relax%
\let\pgf@do@shorten@start\relax%
\let\pgf@prep@start\pgf@prep@movetostart%
\let\pgf@do@draw@start\pgf@do@draw@straightstart%
\else\ifx#4\pgfsyssoftpath@curvetosupportatoken%
\ifpgf@precise@shortening%
\let\pgf@next\pgf@parse@start@curve@cont%
\let\pgf@do@shorten@start\pgf@do@shorten@curvedstart%
\let\pgf@do@draw@start\pgf@do@draw@curvedstart%
\let\pgf@prep@start\pgf@prep@curvedstart%
\else%
\let\pgf@next\pgf@parse@start@curve@cont@straight%
\let\pgf@do@shorten@start\pgf@do@shorten@straightstart%
\let\pgf@do@draw@start\pgf@do@draw@straightstart%
\let\pgf@prep@start\pgf@prep@straightstart%
\fi%
\else%
\let\pgf@next\pgf@parse@start@till@stop%
\let\pgf@do@shorten@start\pgf@do@shorten@straightstart%
\let\pgf@do@draw@start\pgf@do@draw@straightstart%
\let\pgf@prep@start\pgf@prep@straightstart%
\fi\fi%
\pgf@next%
}
\def\pgf@parse@start@till@stop#1\pgf@stop\pgf@stop\pgf@stop{\def\pgfsubpathend{#1}}%
\def\pgf@parse@start@curve@cont#1#2#3#4#5#6#7\pgf@stop\pgf@stop\pgf@stop{%
\def\pgfpointthirdonpath{\pgfqpoint{#2}{#3}}%
\def\pgfpointfourthonpath{\pgfqpoint{#5}{#6}}%
\def\pgfsubpathend{#7}%
}
\def\pgf@parse@start@curve@cont@straight#1#2#3#4#5#6#7\pgf@stop\pgf@stop\pgf@stop{%
\def\pgfpointthirdonpath{\pgfqpoint{#2}{#3}}%
\def\pgfpointfourthonpath{\pgfqpoint{#5}{#6}}%
\def\pgfsubpathend{#1{#2}{#3}#4{#5}{#6}#7}%
}
\def\pgf@prep@movetostart{%
\pgf@process{\pgfpointfirstonpath}%
\pgf@xb\pgf@x
\pgf@yb\pgf@y
\pgf@xc\pgf@x
\pgf@yc\pgf@y
}
\def\pgf@prep@straightstart{%
\let\pgf@ref\pgfpointsecondonpath
\ifx\pgfpointfirstonpath\pgfpointsecondonpath%
\ifx\pgfpointthirdonpath\relax%
\else%
\ifx\pgfpointfirstonpath\pgfpointthirdonpath%
\let\pgf@ref\pgfpointfourthonpath%
\else
\let\pgf@ref\pgfpointthirdonpath%
\fi%
\fi%
\fi%
\pgfpointlineatdistance{\pgf@path@shortening@distance}{\pgfpointfirstonpath}{\pgf@ref}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
}
\def\pgf@do@shorten@straightstart{%
\edef\pgfprocessresultpathsuffix{\pgfsubpathfirsttoken{\the\pgf@xa}{\the\pgf@ya}\pgfsubpathsecondtoken{\the\pgf@xc}{\the\pgf@yc}}%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgfprocessresultpathsuffix%
\expandafter\expandafter\expandafter{\expandafter\pgfprocessresultpathsuffix\pgfsubpathend}%
}
\def\pgf@add@arrow@at@start{%
\ifx\pgf@arrowpath\pgfutil@empty\else%
\ifx\pgf@start@tip@sequence\pgfutil@empty\else%
\pgf@do@draw@start%
\fi%
\fi%
}
\def\pgf@do@draw@straightstart{%
{%
\pgftransformreset%
\pgftransformarrow{\pgfqpoint{\pgf@xc}{\pgf@yc}}{\pgfqpoint{\pgf@xb}{\pgf@yb}}%
\pgf@arrow@draw@arrow\pgf@start@tip@sequence\pgf@arrow@tip@total@length%
}%
}
\let\pgf@shorten@end=\pgfutil@empty
\let\pgf@shorten@start=\pgfutil@empty
\endinput%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex ====
\ProvidesFileRCS{pgfcorepatterns.code.tex}
\def\pgfdeclarepatternformonly{%
\def\pgf@pattern@type{formonly}%
\pgfutil@ifnextchar[{\pgf@declarepattern@checkarg}{\pgf@declarepattern@checkarg[]}%
}
\def\pgfdeclarepatterninherentlycolored{%
\def\pgf@pattern@type{inherentlycolored}%
\pgfutil@ifnextchar[{\pgf@declarepattern@checkarg}{\pgf@declarepattern@checkarg[]}%
}
\def\pgf@declarepattern@checkarg[#1]{%
\def\pgf@pattern@tempvars{#1}%
\ifx\pgf@pattern@tempvars\pgfutil@empty%
\expandafter\let\expandafter\pgf@next\csname pgf@declarepattern\pgf@pattern@type\endcsname%
\else%
\expandafter\let\expandafter\pgf@next\csname pgf@declarepattern\pgf@pattern@type @mutable\endcsname%
\fi%
\pgf@next}
\long\def\pgf@declarepatternformonly#1#2#3#4#5{\pgf@declarepattern{#1}{#2}{#3}{#4}{#5}{0}}
\long\def\pgf@declarepatterninherentlycolored#1#2#3#4#5{\pgf@declarepattern{#1}{#2}{#3}{#4}{#5}{1}}
\long\def\pgf@declarepatternformonly@mutable#1#2#3#4#5{%
\def\pgf@marshal{\pgf@declarepatternmutable{#1}}%
\expandafter\pgf@marshal\expandafter{\pgf@pattern@tempvars}{#2}{#3}{#4}{#5}{2}%
}
\long\def\pgf@declarepatterninherentlycolored@mutable#1#2#3#4#5#6{%
\def\pgf@marshal{\pgf@declarepatternmutable{#1}}%
\expandafter\pgf@marshal\expandafter{\pgf@pattern@tempvars}{#2}{#3}{#4}{#5}{3}%
}
\def\pgfsys@patternmatrix{{1.0}{0.0}{0.0}{1.0}{0.0pt}{0.0pt}}
\def\pgf@declarepattern#1#2#3#4#5#6{%
\pgfutil@ifundefined{pgf@pattern@name@#1}{%
\pgfsysprotocol@getcurrentprotocol\pgf@pattern@temp%
{%
\pgfinterruptpath%
\pgfpicturetrue%
\pgf@relevantforpicturesizefalse%
\pgftransformreset%
\pgfsysprotocol@setcurrentprotocol\pgfutil@empty%
\pgfsysprotocol@bufferedtrue%
\pgfsys@beginscope%
\pgfsetarrows{-}%
#5%
\pgfsys@endscope%
\pgfsysprotocol@getcurrentprotocol\pgf@pattern@code%
\global\let\pgf@pattern@code=\pgf@pattern@code%
\endpgfinterruptpath%
\pgf@process{#2}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{#3}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{#4}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfutil@tempcnta=\pgf@pattern@number%
\advance\pgfutil@tempcnta by1\relax%
\xdef\pgf@pattern@number{\the\pgfutil@tempcnta}%
\expandafter\xdef\csname pgf@pattern@name@#1\endcsname{\the\pgfutil@tempcnta}%
\expandafter\gdef\csname pgf@pattern@type@#1\endcsname{#6}%
\xdef\pgf@marshal{\noexpand\pgfsys@declarepattern
{\csname pgf@pattern@name@#1\endcsname}%
{\the\pgf@xa}{\the\pgf@ya}{\the\pgf@xb}{\the\pgf@yb}%
{\the\pgf@xc}{\the\pgf@yc}%
\pgfsys@patternmatrix%
{\pgf@pattern@code}{#6}}%
}%
\pgfsysprotocol@setcurrentprotocol\pgf@pattern@temp%
\expandafter\global\expandafter\let\csname pgf@pattern@instantiate@#1\endcsname=\pgf@marshal%
}
{%
\pgferror{Pattern `#1' already defined}%
}%
}
\def\pgf@pattern@number{0}%
\def\pgf@declarepatternmutable#1#2#3#4#5#6#7{%
\pgfutil@ifundefined{pgf@pattern@name@#1}{%
\expandafter\gdef\csname pgf@pattern@name@#1\endcsname{#1}%
\expandafter\gdef\csname pgf@pattern@variables@#1\endcsname{#2}%
\expandafter\gdef\csname pgf@pattern@lowerleft@#1\endcsname{#3}%
\expandafter\gdef\csname pgf@pattern@upperright@#1\endcsname{#4}%
\expandafter\gdef\csname pgf@pattern@tilesize@#1\endcsname{#5}%
\expandafter\long\expandafter\gdef\csname pgf@pattern@code@#1\endcsname{#6}%
\expandafter\gdef\csname pgf@pattern@type@#1\endcsname{#7}%
}{\pgferror{The pattern `#1' is already defined}}%
}
\def\pgf@ifpatternisinherentlycolored#1#2#3{%
\expandafter\ifodd\csname pgf@pattern@type@#1\endcsname\relax#2\else#3\fi%
}
\def\pgf@ifpatternismutable#1#2#3{%
\expandafter\ifnum\csname pgf@pattern@type@#1\endcsname>1\relax#2\else#3\fi%
}
\def\pgfpatternreleasename#1{\expandafter\let\csname pgf@pattern@name@#1\endcsname\relax}
\def\pgfsetfillpattern#1#2{%
\pgfutil@ifundefined{pgf@pattern@name@#1}%
{%
\pgferror{Undefined pattern `#1'}%
}%
{%
\pgf@ifpatternismutable{#1}%
{%
\let\pgf@pattern@tempvars\pgfutil@empty%
\expandafter\expandafter\expandafter\pgf@pattern@check@vars%
\csname pgf@pattern@variables@#1\endcsname,\pgf@stop,%
\edef\pgf@pattern@nametemp{pgf@pattern@#1@\pgf@pattern@tempvars}%
\expandafter\pgfutil@ifundefined\expandafter{\pgf@pattern@nametemp}%
{%
\pgf@ifpatternisinherentlycolored{#1}%
{\let\pgf@set@fillpattern@declare\pgfdeclarepatterninherentlycolored}%
{\let\pgf@set@fillpattern@declare\pgfdeclarepatternformonly}%
\pgf@set@fillpattern@declare%
{\pgf@pattern@nametemp}%
{\csname pgf@pattern@lowerleft@#1\endcsname}%
{\csname pgf@pattern@upperright@#1\endcsname}%
{\csname pgf@pattern@tilesize@#1\endcsname}%
{\csname pgf@pattern@code@#1\endcsname}%
}%
{%
}%
\expandafter\pgf@set@fillpattern\expandafter{\pgf@pattern@nametemp}{#2}%
\expandafter\gdef\csname\pgf@pattern@nametemp\endcsname{#1}%
}%
{%
\pgf@set@fillpattern{#1}{#2}%
}%
}%
}
\def\pgf@set@fillpattern#1#2{%
\pgfutil@ifundefined{pgf@pattern@name@#1}{%
\pgferror{Undefined pattern `#1'}}
{%
\csname pgf@pattern@instantiate@#1\endcsname%
\expandafter\global\expandafter\let\csname pgf@pattern@instantiate@#1\endcsname=\relax%
\pgf@ifpatternisinherentlycolored{#1}{%
\pgfsys@setpatterncolored{\csname pgf@pattern@name@#1\endcsname}%
}{%
\pgfutil@colorlet{pgf@tempcolor}{#2}%
\pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{pgf@tempcolor}}%
\pgfutil@extractcolorspec{pgf@tempcolor}{\pgf@tempcolor}%
\expandafter\pgfutil@convertcolorspec\pgf@tempcolor{rgb}{\pgf@rgbcolor}%
\expandafter\pgf@set@fill@patternuncolored\pgf@rgbcolor\relax{#1}%
}%
}%
}
\def\pgf@set@fill@patternuncolored#1,#2,#3\relax#4{%
\pgfsys@setpatternuncolored{\csname pgf@pattern@name@#4\endcsname}{#1}{#2}{#3}%
}
\def\pgf@pattern@check@vars#1,{%
\ifx#1\pgf@stop%
\let\pgf@next\relax%
\else%
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter\let\expandafter\pgf@pattern@char#1#1\pgfmath@%
\ifx\pgf@pattern@char/%
\edef\pgf@pattern@tempvar{(\pgfkeysvalueof{#1})}%
\else%
\expandafter\ifcat\pgf@pattern@char\relax%
\edef\pgf@pattern@tempvar{(\the#1)}%
\else%
\edef\pgf@pattern@tempvar{(#1)}%
\fi%
\fi%
\edef\pgf@pattern@tempvars{\pgf@pattern@tempvars\pgf@pattern@tempvar}%
\let\pgf@next\pgf@pattern@check@vars%
\fi%
\pgf@next%
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex ====
\ProvidesFileRCS{pgfcorepoints.code.tex}
\newdimen\pgf@picminx
\newdimen\pgf@picmaxx
\newdimen\pgf@picminy
\newdimen\pgf@picmaxy
\newdimen\pgf@pathminx
\newdimen\pgf@pathmaxx
\newdimen\pgf@pathminy
\newdimen\pgf@pathmaxy
\newif\ifpgf@relevantforpicturesize
\def\pgf@process#1{{#1\global\pgf@x=\pgf@x\global\pgf@y=\pgf@y}}
\def\pgfextract@process#1#2{%
\pgf@process{#2}%
\edef#1{\noexpand\global\pgf@x=\the\pgf@x\noexpand\relax\noexpand\global\pgf@y=\the\pgf@y\noexpand\relax}%
}
\let\pgfsavepgf@process\pgfextract@process%
\def\pgfpoint#1#2{%
\pgfmathsetlength\pgf@x{#1}%
\pgfmathsetlength\pgf@y{#2}\ignorespaces}
\def\pgfqpoint#1#2{\global\pgf@x=#1\relax\global\pgf@y=#2\relax}
\def\pgfpointorigin{\global\pgf@x=0pt \global\pgf@y=\pgf@x\ignorespaces}
\def\pgfpointtransformed#1{%
\pgf@process{%
#1%
\pgf@pos@transform@glob%
}%
}
\def\pgfpointdiff#1#2{%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{#2}%
\global\advance\pgf@x by-\pgf@xa\relax%
\global\advance\pgf@y by-\pgf@ya\relax\ignorespaces}
\def\pgfpointadd#1#2{%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{#2}%
\global\advance\pgf@x by\pgf@xa%
\global\advance\pgf@y by\pgf@ya}
\def\pgfpointscale#1#2{%
\pgf@process{#2}%
\pgfmathparse{#1}%
\global\pgf@x=\pgfmathresult\pgf@x%
\global\pgf@y=\pgfmathresult\pgf@y%
}
\def\pgfqpointscale#1#2{%
\pgf@process{#2}%
\global\pgf@x=#1\pgf@x%
\global\pgf@y=#1\pgf@y%
}
\def\pgfpointintersectionoflines#1#2#3#4{%
{%
\pgf@process{#2}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{#1}%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\pgf@ya=-\pgf@ya%
\c@pgf@counta=\pgf@xa%
\ifnum\c@pgf@counta<0\relax%
\c@pgf@counta=-\c@pgf@counta\relax%
\fi%
\c@pgf@countb=\pgf@ya%
\ifnum\c@pgf@countb<0\relax%
\c@pgf@countb=-\c@pgf@countb\relax%
\fi%
\advance\c@pgf@counta by\c@pgf@countb\relax%
\divide\c@pgf@counta by 65536\relax%
\ifnum\c@pgf@counta>0\relax%
\divide\pgf@xa by\c@pgf@counta\relax%
\divide\pgf@ya by\c@pgf@counta\relax%
\fi%
\pgf@xc=\pgf@sys@tonumber{\pgf@ya}\pgf@x%
\advance\pgf@xc by\pgf@sys@tonumber{\pgf@xa}\pgf@y%
\pgf@process{#4}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{#3}%
\advance\pgf@xb by-\pgf@x%
\advance\pgf@yb by-\pgf@y%
\pgf@yb=-\pgf@yb%
\c@pgf@counta=\pgf@xb%
\ifnum\c@pgf@counta<0\relax%
\c@pgf@counta=-\c@pgf@counta\relax%
\fi%
\c@pgf@countb=\pgf@yb%
\ifnum\c@pgf@countb<0\relax%
\c@pgf@countb=-\c@pgf@countb\relax%
\fi%
\advance\c@pgf@counta by\c@pgf@countb\relax%
\divide\c@pgf@counta by 65536\relax%
\ifnum\c@pgf@counta>0\relax%
\divide\pgf@xb by\c@pgf@counta\relax%
\divide\pgf@yb by\c@pgf@counta\relax%
\fi%
\pgf@yc=\pgf@sys@tonumber{\pgf@yb}\pgf@x%
\advance\pgf@yc by\pgf@sys@tonumber{\pgf@xb}\pgf@y%
\pgfsettransform{{\pgf@sys@tonumber\pgf@ya}{\pgf@sys@tonumber\pgf@yb}{\pgf@sys@tonumber\pgf@xa}{\pgf@sys@tonumber\pgf@xb}{0pt}{0pt}}%
\pgftransforminvert%
\pgf@process{\pgfpointtransformed{\pgfpoint{\pgf@xc}{\pgf@yc}}}%
}%
}
\def\pgfpointintersectionofcircles#1#2#3#4#5{%
{%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgfmathsetlength{\pgf@xc}{#3}%
\pgf@process{#2}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgfmathsetlength{\pgf@yc}{#4}%
\c@pgf@counta=1\relax%
\loop%
\pgf@scale@downfalse%
\ifdim\pgf@xc>50pt\relax%
\pgf@scale@downtrue%
\fi%
\ifdim\pgf@yc>50pt\relax%
\pgf@scale@downtrue%
\fi%
\ifpgf@scale@down%
\multiply\c@pgf@counta by2\relax%
\divide\pgf@xa by2\relax%
\divide\pgf@ya by2\relax%
\divide\pgf@xb by2\relax%
\divide\pgf@yb by2\relax%
\divide\pgf@xc by2\relax%
\divide\pgf@yc by2\relax%
\repeat%
\dimen0=\pgf@xb%
\advance\dimen0 by-\pgf@xa%
\dimen1=\pgf@yb%
\advance\dimen1 by-\pgf@ya%
\pgf@x=\dimen0\relax%
\pgf@x=\pgf@sys@tonumber{\pgf@x}\pgf@x%
\dimen3=\pgf@x%
\pgf@x=\dimen1\relax%
\advance\dimen3 by\pgf@sys@tonumber{\pgf@x}\pgf@x%
\pgfmathparse{sqrt(\the\dimen3)}%
\dimen2=\pgfmathresult pt%
\pgfmathreciprocal@{\pgfmathresult}%
\dimen5=\pgfmathresult pt%
\dimen4=\dimen3\relax%
\pgf@x=\pgf@xc%
\advance\dimen4 by\pgf@sys@tonumber{\pgf@x}\pgf@x\relax%
\pgf@x=\pgf@yc%
\advance\dimen4 by-\pgf@sys@tonumber{\pgf@x}\pgf@x\relax%
\dimen4=.5\dimen4%
\dimen4=\pgf@sys@tonumber{\dimen5}\dimen4%
\dimen7=\pgf@sys@tonumber{\dimen4}\dimen4\relax%
\pgfmathparse{sqrt(\pgf@sys@tonumber{\pgf@xc}\pgf@xc-\the\dimen7)}%
\dimen6=\pgfmathresult pt%
\dimen8=\pgf@sys@tonumber{\dimen4}\dimen5\relax%
\dimen9=\pgf@sys@tonumber{\dimen6}\dimen5\relax%
\ifnum#5=1\relax%
\pgf@x=\pgf@xa%
\advance\pgf@x by\pgf@sys@tonumber{\dimen0}\dimen8\relax%
\advance\pgf@x by\pgf@sys@tonumber{\dimen1}\dimen9\relax%
\pgf@y=\pgf@ya%
\advance\pgf@y by\pgf@sys@tonumber{\dimen1}\dimen8\relax%
\pgf@xb=\pgf@sys@tonumber{\dimen0}\dimen9%
\pgf@xb=-\pgf@xb%
\advance\pgf@y by\pgf@xb\relax%
\else%
\pgf@x=\pgf@xa%
\advance\pgf@x by\pgf@sys@tonumber{\dimen0}\dimen8\relax%
\pgf@xb=\pgf@sys@tonumber{\dimen1}\dimen9%
\pgf@xb=-\pgf@xb%
\advance\pgf@x by\pgf@xb\relax%
\pgf@y=\pgf@ya%
\advance\pgf@y by\pgf@sys@tonumber{\dimen1}\dimen8\relax%
\advance\pgf@y by\pgf@sys@tonumber{\dimen0}\dimen9\relax%
\fi%
\pgf@x=\c@pgf@counta\pgf@x%
\pgf@y=\c@pgf@counta\pgf@y%
\pgf@process{}%
}%
}
\newif\ifpgf@scale@down
\def\pgfpointlineattime#1#2#3{%
\pgf@process{#3}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgf@xc\pgf@x%
\pgf@yc\pgf@y%
\pgf@process{#2}%
\pgf@xb\pgf@x%
\pgf@yb\pgf@y%
\pgfmathsetmacro\pgf@temp{#1}%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\global\advance\pgf@x by\pgf@temp\pgf@xa%
\global\advance\pgf@y by\pgf@temp\pgf@ya%
}
\def\pgfpointlineatdistance#1#2#3{%
\pgfmathsetlength\pgf@xa{#1}%
\pgf@process{#2}%
\pgf@xb\pgf@x%
\pgf@yb\pgf@y%
\pgf@process{#3}%
\pgf@xc\pgf@x%
\pgf@yc\pgf@y%
\global\advance\pgf@x by-\pgf@xb\relax%
\global\advance\pgf@y by-\pgf@yb\relax%
\pgf@process{\pgfpointnormalised{}}%
\pgf@ya=\pgf@xa\relax%
\pgf@xa=\pgf@sys@tonumber{\pgf@x}\pgf@xa%
\pgf@ya=\pgf@sys@tonumber{\pgf@y}\pgf@ya%
\global\pgf@x=\pgf@xb\relax%
\global\pgf@y=\pgf@yb\relax%
\global\advance\pgf@x by\pgf@xa\relax%
\global\advance\pgf@y by\pgf@ya\relax%
}
\def\pgfpointcurveattime#1#2#3#4#5{%
\pgfmathparse{#1}%
\let\pgf@time@s=\pgfmathresult%
\global\pgf@x=\pgfmathresult pt%
\global\pgf@x=-\pgf@x%
\advance\pgf@x by 1pt%
\edef\pgf@time@t{\pgf@sys@tonumber{\pgf@x}}%
\pgf@process{#5}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{#4}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{#3}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{#2}%
\global\pgf@x=\pgf@time@t\pgf@x\global\advance\pgf@x by\pgf@time@s\pgf@xa%
\global\pgf@y=\pgf@time@t\pgf@y\global\advance\pgf@y by\pgf@time@s\pgf@ya%
\pgf@xa=\pgf@time@t\pgf@xa\advance\pgf@xa by\pgf@time@s\pgf@xb%
\pgf@ya=\pgf@time@t\pgf@ya\advance\pgf@ya by\pgf@time@s\pgf@yb%
\pgf@xb=\pgf@time@t\pgf@xb\advance\pgf@xb by\pgf@time@s\pgf@xc%
\pgf@yb=\pgf@time@t\pgf@yb\advance\pgf@yb by\pgf@time@s\pgf@yc%
\global\pgf@x=\pgf@time@t\pgf@x\global\advance\pgf@x by\pgf@time@s\pgf@xa%
\global\pgf@y=\pgf@time@t\pgf@y\global\advance\pgf@y by\pgf@time@s\pgf@ya%
\pgf@xa=\pgf@time@t\pgf@xa\advance\pgf@xa by\pgf@time@s\pgf@xb%
\pgf@ya=\pgf@time@t\pgf@ya\advance\pgf@ya by\pgf@time@s\pgf@yb%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\global\pgf@x=\pgf@time@t\pgf@x\global\advance\pgf@x by\pgf@time@s\pgf@xa%
\global\pgf@y=\pgf@time@t\pgf@y\global\advance\pgf@y by\pgf@time@s\pgf@ya%
}
\def\pgfpointarcaxesattime#1#2#3#4#5#6{%
\pgfmathsetmacro\pgf@angle@start{#5}%
\pgfmathsetmacro\pgf@angle@end{#6}%
\pgfmathparse{#1}%
\global\pgf@x=\pgfmathresult pt%
\global\pgf@x=-\pgf@x%
\advance\pgf@x by 1pt%
\pgfmathsetmacro\pgf@angle@mid{\pgf@angle@end*\pgfmathresult+\pgf@angle@start*\pgf@sys@tonumber{\pgf@x}}%
\pgfmathcos@{\pgf@angle@mid}%
\let\pgf@angle@cos\pgfmathresult%
\pgfmathsin@{\pgf@angle@mid}%
\let\pgf@angle@sin\pgfmathresult%
\pgf@process{#3}%
\edef\pgf@angle@zero@axis{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\pgf@process{#4}%
\edef\pgf@angle@ninety@axis{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\pgf@process{\pgfpointadd{\pgfpointscale{\pgf@angle@sin}{\pgf@angle@zero@axis}}%
{\pgfpointscale{-\pgf@angle@cos}{\pgf@angle@ninety@axis}}}%
\ifdim\pgf@angle@start pt>\pgf@angle@end pt%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\else%
\pgf@xa=-\pgf@x%
\pgf@ya=-\pgf@y%
\fi%
\pgf@process{\pgfpointadd{#2}{%
\pgfpointadd{\pgfpointscale{\pgf@angle@cos}{\pgf@angle@zero@axis}}%
{\pgfpointscale{\pgf@angle@sin}{\pgf@angle@ninety@axis}}}}%
}
\newdimen\pgf@xx
\newdimen\pgf@xy
\newdimen\pgf@yx
\newdimen\pgf@yy
\newdimen\pgf@zx
\newdimen\pgf@zy
\def\pgfpointpolar#1#2{%
\pgfutil@in@{and }{#2}%
\ifpgfutil@in@%
\pgf@polar@#2\@@%
\else%
\pgf@polar@#2 and #2\@@%
\fi%
\pgfmathparse{#1}%
\let\pgfpoint@angle=\pgfmathresult%
\pgfmathcos@{\pgfpoint@angle}%
\global\pgf@x=\pgfmathresult\pgf@x%
\pgfmathsin@{\pgfpoint@angle}%
\global\pgf@y=\pgfmathresult\pgf@y%
}
\def\pgf@polar@#1and #2\@@{%
\pgfmathsetlength{\pgf@y}{#2}%
\pgfmathsetlength{\pgf@x}{#1}%
}
\def\pgfqpointpolar#1#2{%
\global\pgf@x=#2%
\global\pgf@y=\pgf@x%
\pgfmathcos@{#1}%
\global\pgf@x=\pgfmathresult\pgf@x%
\pgfmathsin@{#1}%
\global\pgf@y=\pgfmathresult\pgf@y\relax%
}
\def\pgfpointpolarxy#1#2{%
\pgfutil@in@{and }{#2}%
\ifpgfutil@in@%
\pgf@polarxy@#2\@@%
\else%
\pgf@polarxy@#2and #2\@@%
\fi%
\pgfmathparse{#1}%
\let\pgfpoint@angle=\pgfmathresult%
\pgfmathcos@{\pgfpoint@angle}%
\pgf@xa=\pgfmathresult\pgf@xa%
\pgfmathsin@{\pgfpoint@angle}%
\pgf@ya=\pgfmathresult\pgf@ya%
\global\pgf@x=\pgf@sys@tonumber{\pgf@xa}\pgf@xx%
\global\advance\pgf@x by \pgf@sys@tonumber{\pgf@ya}\pgf@yx%
\global\pgf@y=\pgf@sys@tonumber{\pgf@xa}\pgf@xy%
\global\advance\pgf@y by \pgf@sys@tonumber{\pgf@ya}\pgf@yy}
\def\pgf@polarxy@#1and #2\@@{%
\pgfmathsetlength{\pgf@xa}{#1}%
\pgfmathsetlength{\pgf@ya}{#2}%
}
\def\pgfpointcylindrical#1#2#3{%
\pgfpointpolarxy{#1}{#2}%
\pgfmathparse{#3}%
\global\advance\pgf@x by \pgfmathresult\pgf@zx%
\global\advance\pgf@y by \pgfmathresult\pgf@zy}
\def\pgfpointspherical#1#2#3{%
\pgfmathparse{#1}%
\let\pgfpoint@angle=\pgfmathresult%
\pgfmathsin@{\pgfpoint@angle}%
\pgf@xb=\pgfmathresult\pgf@xx%
\pgf@yb=\pgfmathresult\pgf@xy%
\pgfmathcos@{\pgfpoint@angle}%
\advance\pgf@xb by \pgfmathresult\pgf@yx%
\advance\pgf@yb by \pgfmathresult\pgf@yy%
\pgfmathparse{#2}%
\let\pgfpoint@angle=\pgfmathresult%
\pgfmathcos@{\pgfpoint@angle}%
\pgf@xc=\pgfmathresult\pgf@xb%
\pgf@yc=\pgfmathresult\pgf@yb%
\pgfmathsin@{\pgfpoint@angle}%
\advance\pgf@xc by \pgfmathresult\pgf@zx%
\advance\pgf@yc by \pgfmathresult\pgf@zy%
\pgfmathparse{#3}%
\global\pgf@x=\pgfmathresult\pgf@xc%
\global\pgf@y=\pgfmathresult\pgf@yc\relax%
}
\def\pgfpointxy#1#2{%
\pgfmathparse{#1}%
\let\pgftemp@x=\pgfmathresult%
\pgfmathparse{#2}%
\let\pgftemp@y=\pgfmathresult%
\global\pgf@x=\pgftemp@x\pgf@xx%
\global\advance\pgf@x by \pgftemp@y\pgf@yx%
\global\pgf@y=\pgftemp@x\pgf@xy%
\global\advance\pgf@y by \pgftemp@y\pgf@yy}
\def\pgfqpointxy#1#2{%
\global\pgf@x=#1\pgf@xx%
\global\advance\pgf@x by #2\pgf@yx%
\global\pgf@y=#1\pgf@xy%
\global\advance\pgf@y by #2\pgf@yy}
\def\pgfpointxyz#1#2#3{%
\pgfmathparse{#1}%
\let\pgftemp@x=\pgfmathresult%
\pgfmathparse{#2}%
\let\pgftemp@y=\pgfmathresult%
\pgfmathparse{#3}%
\let\pgftemp@z=\pgfmathresult%
\global\pgf@x=\pgftemp@x\pgf@xx%
\global\advance\pgf@x by \pgftemp@y\pgf@yx%
\global\advance\pgf@x by \pgftemp@z\pgf@zx%
\global\pgf@y=\pgftemp@x\pgf@xy%
\global\advance\pgf@y by \pgftemp@y\pgf@yy%
\global\advance\pgf@y by \pgftemp@z\pgf@zy}
\def\pgfqpointxyz#1#2#3{%
\global\pgf@x=#1\pgf@xx%
\global\advance\pgf@x by #2\pgf@yx%
\global\advance\pgf@x by #3\pgf@zx%
\global\pgf@y=#1\pgf@xy%
\global\advance\pgf@y by #2\pgf@yy%
\global\advance\pgf@y by #3\pgf@zy}
\def\pgfsetxvec#1{%
\pgf@process{#1}%
\pgf@xx=\pgf@x%
\pgf@xy=\pgf@y%
\ignorespaces}
\def\pgfsetyvec#1{%
\pgf@process{#1}%
\pgf@yx=\pgf@x%
\pgf@yy=\pgf@y%
\ignorespaces}
\def\pgfsetzvec#1{%
\pgf@process{#1}%
\pgf@zx=\pgf@x%
\pgf@zy=\pgf@y%
\ignorespaces}
\pgfsetxvec{\pgfpoint{1cm}{0cm}}
\pgfsetyvec{\pgfpoint{0cm}{1cm}}
\pgfsetzvec{\pgfpoint{-0.385cm}{-0.385cm}}
\def\pgfpointnormalised#1{%
\pgf@process{#1}%
\pgfmathatantwo{\the\pgf@y}{\the\pgf@x}%
\let\pgf@tmp=\pgfmathresult%
\pgfmathcos@{\pgf@tmp}%
\pgf@x=\pgfmathresult pt\relax%
\pgfmathsin@{\pgf@tmp}%
\pgf@y=\pgfmathresult pt\relax%
}
\def\pgfpointborderrectangle#1#2{%
\pgf@process{#2}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\ifnum\pgf@xa<0\relax%
\global\pgf@x=-\pgf@x%
\fi%
\ifnum\pgf@ya<0\relax%
\global\pgf@y=-\pgf@y%
\fi%
\pgf@xc=.125\pgf@x%
\pgf@yc=.125\pgf@y%
\c@pgf@counta=\pgf@xc%
\c@pgf@countb=\pgf@yc%
\ifnum\c@pgf@countb<\c@pgf@counta%
\ifnum\c@pgf@counta<255\relax%
\global\pgf@y=\pgf@yb\relax%
\global\pgf@x=0pt\relax%
\else%
\pgf@xc=8192pt%
\divide\pgf@xc by\c@pgf@counta%
\global\pgf@y=\pgf@sys@tonumber{\pgf@xc}\pgf@y%
\global\pgf@y=\pgf@sys@tonumber{\pgf@xb}\pgf@y%
\ifnum\pgf@y<\pgf@yb%
\global\pgf@x=\pgf@xb%
\else%
\ifnum\c@pgf@countb<255\relax%
\global\pgf@x=\pgf@xb\relax%
\global\pgf@y=0pt\relax%
\else%
\pgf@yc=8192pt%
\divide\pgf@yc by\c@pgf@countb%
\global\pgf@x=\pgf@sys@tonumber{\pgf@yc}\pgf@x%
\global\pgf@x=\pgf@sys@tonumber{\pgf@yb}\pgf@x%
\global\pgf@y=\pgf@yb%
\fi%
\fi%
\fi%
\else%
\ifnum\c@pgf@countb<255\relax%
\global\pgf@x=\pgf@xb\relax%
\global\pgf@y=0pt\relax%
\else%
\pgf@yc=8192pt%
\divide\pgf@yc by\c@pgf@countb%
\global\pgf@x=\pgf@sys@tonumber{\pgf@yc}\pgf@x%
\global\pgf@x=\pgf@sys@tonumber{\pgf@yb}\pgf@x%
\ifnum\pgf@x<\pgf@xb%
\global\pgf@y=\pgf@yb%
\else%
\ifnum\c@pgf@counta<255\relax%
\global\pgf@y=\pgf@yb\relax%
\global\pgf@x=0pt\relax%
\else%
\pgf@xc=8192pt%
\divide\pgf@xc by\c@pgf@counta%
\global\pgf@y=\pgf@sys@tonumber{\pgf@xc}\pgf@y%
\global\pgf@y=\pgf@sys@tonumber{\pgf@xb}\pgf@y%
\global\pgf@x=\pgf@xb%
\fi%
\fi%
\fi%
\fi%
\ifnum\pgf@xa<0\relax\global\pgf@x=-\pgf@x\fi%
\ifnum\pgf@ya<0\relax\global\pgf@y=-\pgf@y\fi%
}
\def\pgfpointborderellipse#1#2{%
\pgf@process{#2}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\ifdim\pgf@xa=\pgf@ya%
\pgf@process{\pgfpointnormalised{#1}}%
\global\pgf@x=\pgf@sys@tonumber{\pgf@xa}\pgf@x%
\global\pgf@y=\pgf@sys@tonumber{\pgf@xa}\pgf@y%
\else%
\ifdim\pgf@xa<\pgf@ya%
\c@pgf@countb=\pgf@ya%
\divide\c@pgf@countb by65536\relax%
\global\divide\pgf@x by\c@pgf@countb%
\global\divide\pgf@y by\c@pgf@countb%
\pgf@xc=\pgf@x%
\pgf@yc=8192pt%
\global\pgf@y=.125\pgf@y%
\c@pgf@countb=\pgf@y%
\divide\pgf@yc by\c@pgf@countb%
\pgf@process{#1}%
\global\pgf@y=\pgf@sys@tonumber{\pgf@yc}\pgf@y%
\global\pgf@y=\pgf@sys@tonumber{\pgf@xc}\pgf@y%
\pgf@process{\pgfpointnormalised{}}%
\global\pgf@x=\pgf@sys@tonumber{\pgf@xa}\pgf@x%
\global\pgf@y=\pgf@sys@tonumber{\pgf@ya}\pgf@y%
\else%
\c@pgf@countb=\pgf@xa%
\divide\c@pgf@countb by65536\relax%
\global\divide\pgf@x by\c@pgf@countb%
\global\divide\pgf@y by\c@pgf@countb%
\pgf@yc=\pgf@y%
\pgf@xc=8192pt%
\global\pgf@x=.125\pgf@x%
\c@pgf@countb=\pgf@x%
\divide\pgf@xc by\c@pgf@countb%
\pgf@process{#1}%
\global\pgf@x=\pgf@sys@tonumber{\pgf@yc}\pgf@x%
\global\pgf@x=\pgf@sys@tonumber{\pgf@xc}\pgf@x%
\pgf@process{\pgfpointnormalised{}}%
\global\pgf@x=\pgf@sys@tonumber{\pgf@xa}\pgf@x%
\global\pgf@y=\pgf@sys@tonumber{\pgf@ya}\pgf@y%
\fi%
\fi%
}
\def\pgfextractx#1#2{%
\pgf@process{#2}%
#1=\pgf@x\relax}
\def\pgfextracty#1#2{%
\pgf@process{#2}%
#1=\pgf@y\relax}
\def\pgfgetlastxy#1#2{%
\edef#1{\the\pgf@x}%
\edef#2{\the\pgf@y}%
}%
\def\pgf@def#1#2#3{\expandafter\def\csname pgf@#1#2\endcsname{#3}}
\pgf@def{cosfrac}{0}{1}
\pgf@def{cosfrac}{1}{0.99995} \pgf@def{cosfrac}{2}{0.9998}
\pgf@def{cosfrac}{3}{0.99955} \pgf@def{cosfrac}{4}{0.999201}
\pgf@def{cosfrac}{5}{0.998752} \pgf@def{cosfrac}{6}{0.998205}
\pgf@def{cosfrac}{7}{0.997559} \pgf@def{cosfrac}{8}{0.996815}
\pgf@def{cosfrac}{9}{0.995974} \pgf@def{cosfrac}{10}{0.995037}
\pgf@def{cosfrac}{11}{0.994004} \pgf@def{cosfrac}{12}{0.992877}
\pgf@def{cosfrac}{13}{0.991656} \pgf@def{cosfrac}{14}{0.990342}
\pgf@def{cosfrac}{15}{0.988936} \pgf@def{cosfrac}{16}{0.987441}
\pgf@def{cosfrac}{17}{0.985856} \pgf@def{cosfrac}{18}{0.984183}
\pgf@def{cosfrac}{19}{0.982424} \pgf@def{cosfrac}{20}{0.980581}
\pgf@def{cosfrac}{21}{0.978653} \pgf@def{cosfrac}{22}{0.976644}
\pgf@def{cosfrac}{23}{0.974555} \pgf@def{cosfrac}{24}{0.972387}
\pgf@def{cosfrac}{25}{0.970143} \pgf@def{cosfrac}{26}{0.967823}
\pgf@def{cosfrac}{27}{0.965429} \pgf@def{cosfrac}{28}{0.962964}
\pgf@def{cosfrac}{29}{0.960429} \pgf@def{cosfrac}{30}{0.957826}
\pgf@def{cosfrac}{31}{0.955157} \pgf@def{cosfrac}{32}{0.952424}
\pgf@def{cosfrac}{33}{0.949629} \pgf@def{cosfrac}{34}{0.946773}
\pgf@def{cosfrac}{35}{0.943858} \pgf@def{cosfrac}{36}{0.940887}
\pgf@def{cosfrac}{37}{0.937862} \pgf@def{cosfrac}{38}{0.934784}
\pgf@def{cosfrac}{39}{0.931655} \pgf@def{cosfrac}{40}{0.928477}
\pgf@def{cosfrac}{41}{0.925252} \pgf@def{cosfrac}{42}{0.921982}
\pgf@def{cosfrac}{43}{0.918669} \pgf@def{cosfrac}{44}{0.915315}
\pgf@def{cosfrac}{45}{0.911922} \pgf@def{cosfrac}{46}{0.90849}
\pgf@def{cosfrac}{47}{0.905024} \pgf@def{cosfrac}{48}{0.901523}
\pgf@def{cosfrac}{49}{0.89799} \pgf@def{cosfrac}{50}{0.894427}
\pgf@def{cosfrac}{51}{0.890835} \pgf@def{cosfrac}{52}{0.887217}
\pgf@def{cosfrac}{53}{0.883573} \pgf@def{cosfrac}{54}{0.879905}
\pgf@def{cosfrac}{55}{0.876216} \pgf@def{cosfrac}{56}{0.872506}
\pgf@def{cosfrac}{57}{0.868777} \pgf@def{cosfrac}{58}{0.865031}
\pgf@def{cosfrac}{59}{0.861269} \pgf@def{cosfrac}{60}{0.857493}
\pgf@def{cosfrac}{61}{0.853704} \pgf@def{cosfrac}{62}{0.849903}
\pgf@def{cosfrac}{63}{0.846092} \pgf@def{cosfrac}{64}{0.842271}
\pgf@def{cosfrac}{65}{0.838444} \pgf@def{cosfrac}{66}{0.834609}
\pgf@def{cosfrac}{67}{0.83077} \pgf@def{cosfrac}{68}{0.826927}
\pgf@def{cosfrac}{69}{0.82308} \pgf@def{cosfrac}{70}{0.819232}
\pgf@def{cosfrac}{71}{0.815383} \pgf@def{cosfrac}{72}{0.811534}
\pgf@def{cosfrac}{73}{0.807687} \pgf@def{cosfrac}{74}{0.803842}
\pgf@def{cosfrac}{75}{0.8} \pgf@def{cosfrac}{76}{0.796162}
\pgf@def{cosfrac}{77}{0.792329} \pgf@def{cosfrac}{78}{0.788502}
\pgf@def{cosfrac}{79}{0.784682} \pgf@def{cosfrac}{80}{0.780869}
\pgf@def{cosfrac}{81}{0.777064} \pgf@def{cosfrac}{82}{0.773268}
\pgf@def{cosfrac}{83}{0.769481} \pgf@def{cosfrac}{84}{0.765705}
\pgf@def{cosfrac}{85}{0.761939} \pgf@def{cosfrac}{86}{0.758185}
\pgf@def{cosfrac}{87}{0.754443} \pgf@def{cosfrac}{88}{0.750714}
\pgf@def{cosfrac}{89}{0.746997} \pgf@def{cosfrac}{90}{0.743294}
\pgf@def{cosfrac}{91}{0.739605} \pgf@def{cosfrac}{92}{0.735931}
\pgf@def{cosfrac}{93}{0.732272} \pgf@def{cosfrac}{94}{0.728628}
\pgf@def{cosfrac}{95}{0.724999} \pgf@def{cosfrac}{96}{0.721387}
\pgf@def{cosfrac}{97}{0.717792} \pgf@def{cosfrac}{98}{0.714213}
\pgf@def{cosfrac}{99}{0.710651} \pgf@def{cosfrac}{100}{0.707107}
\let\pgfpointtransformednonlinear\pgfpointtransformed
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorequick.code.tex ====
\ProvidesFileRCS{pgfcorequick.code.tex}
\def\pgfpathqmoveto#1#2{\pgfsyssoftpath@moveto{#1}{#2}}
\def\pgfpathqlineto#1#2{\pgfsyssoftpath@lineto{#1}{#2}}
\def\pgfpathqcurveto#1#2#3#4#5#6{\pgfsyssoftpath@curveto{#1}{#2}{#3}{#4}{#5}{#6}}
\def\pgfpathqcircle#1{%
{%
\pgf@x=#1%
\pgf@y=0.5522847\pgf@x%
\pgfsyssoftpath@moveto{\the\pgf@x}{0pt}%
\pgfsyssoftpath@curveto{\the\pgf@x}{\the\pgf@y}{\the\pgf@y}{\the\pgf@x}{0pt}{\the\pgf@x}%
\pgfsyssoftpath@curveto{-\the\pgf@y}{\the\pgf@x}{-\the\pgf@x}{\the\pgf@y}{-\the\pgf@x}{0pt}%
\pgfsyssoftpath@curveto{-\the\pgf@x}{-\the\pgf@y}{-\the\pgf@y}{-\the\pgf@x}{0pt}{-\the\pgf@x}%
\pgfsyssoftpath@curveto{\the\pgf@y}{-\the\pgf@x}{\the\pgf@x}{-\the\pgf@y}{\the\pgf@x}{0pt}%
\pgfsyssoftpath@closepath%
}%
}
\def\pgfusepathqstroke{%
\pgfsyssoftpath@flushcurrentpath%
\pgfsys@stroke%
\pgf@resetpathsizes%
}
\def\pgfusepathqfill{%
\pgfsyssoftpath@flushcurrentpath%
\pgfsys@fill%
\pgf@resetpathsizes%
}
\def\pgfusepathqfillstroke{%
\pgfsyssoftpath@flushcurrentpath%
\pgfsys@fillstroke%
\pgf@resetpathsizes%
}
\def\pgfusepathqclip{%
\pgfsyssoftpath@flushcurrentpath%
\pgfsys@clipnext%
\pgfsys@discardpath%
\pgf@resetpathsizes%
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorequick.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex ====
\ProvidesFileRCS{pgfcorerdf.code.tex}
\def\pgfrdfabout#1{\pgfsys@rdf@about{#1}}
\def\pgfrdfcontent#1{\pgfsys@rdf@content{#1}}
\def\pgfrdfdatatype#1{\pgfsys@rdf@datatype{#1}}
\def\pgfrdfhref#1{\pgfsys@rdf@href{#1}}
\def\pgfrdfinlist{\pgfsys@rdf@inlist}
\def\pgfrdfprefix#1{\pgfsys@rdf@prefix{#1}}
\def\pgfrdfproperty#1{\pgfsys@rdf@property{#1}}
\def\pgfrdfrel#1{\pgfsys@rdf@rel{#1}}
\def\pgfrdfresource#1{\pgfsys@rdf@resource{#1}}
\def\pgfrdfrev#1{\pgfsys@rdf@rev{#1}}
\def\pgfrdfsrc#1{\pgfsys@rdf@src{#1}}
\def\pgfrdftypeof#1{\pgfsys@rdf@typeof{#1}}
\def\pgfrdfvocab#1{\pgfsys@rdf@vocab{#1}}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex ====
\ProvidesFileRCS{pgfcorescopes.code.tex}
\newbox\pgfpic
\newbox\pgf@hbox
\newbox\pgf@layerbox@main
\newcount\pgf@picture@serial@count
\newif\ifpgfrememberpicturepositiononpage
\def\pgfscope{%
\pgfsyssoftpath@setcurrentpath\pgfutil@empty%
\pgfsys@beginscope%
\pgf@resetpathsizes%
\edef\pgfscope@linewidth{\the\pgflinewidth}%
\let\pgfscope@stroke@color=\pgf@strokecolor@global%
\let\pgfscope@fill@color=\pgf@fillcolor@global%
\begingroup}
\def\endpgfscope{%
\endgroup%
\global\pgflinewidth=\pgfscope@linewidth%
\global\let\pgf@strokecolor@global=\pgfscope@stroke@color%
\global\let\pgf@fillcolor@global=\pgfscope@fill@color%
\pgfsys@endscope}
\def\pgfqbox#1{%
\pgfsys@hbox#1%
}
\def\pgfqboxsynced#1{%
\pgfsys@hboxsynced#1%
}
\def\pgftext{\pgfutil@ifnextchar[\pgf@text{\pgf@text[]}}%
\def\pgf@text[#1]{%
\def\pgf@text@options{#1}%
\pgf@maketext\pgf@after@text}
\def\pgf@after@text{%
{%
\def\pgf@text@hshift{center}%
\def\pgf@text@vshift{center}%
\expandafter\pgf@text@setkeys\expandafter{\pgf@text@options}%
\csname pgf@halign\pgf@text@hshift\endcsname%
\csname pgf@valign\pgf@text@vshift\endcsname%
\pgfapproximatenonlineartransformation%
\pgf@process{\pgfpointtransformed{\pgfqpoint{0pt}{\dp\pgf@hbox}}}%
\pgf@protocolsizes{\pgf@x}{\pgf@y}%
\pgf@process{\pgfpointtransformed{\pgfqpoint{\wd\pgf@hbox}{\dp\pgf@hbox}}}%
\pgf@protocolsizes{\pgf@x}{\pgf@y}%
\pgf@process{\pgfpointtransformed{\pgfqpoint{0pt}{\ht\pgf@hbox}}}%
\pgf@protocolsizes{\pgf@x}{\pgf@y}%
\pgf@process{\pgfpointtransformed{\pgfqpoint{\wd\pgf@hbox}{\ht\pgf@hbox}}}%
\pgf@protocolsizes{\pgf@x}{\pgf@y}%
\pgfqboxsynced{\pgf@hbox}%
}%
}
\def\pgf@text@setkeys{\pgfqkeys{/pgf/text}}%
\pgfkeys{/pgf/text/left/.code=\def\pgf@text@hshift{left}}
\pgfkeys{/pgf/text/center/.code=}
\pgfkeys{/pgf/text/right/.code=\def\pgf@text@hshift{right}}
\pgfkeys{/pgf/text/top/.code=\def\pgf@text@vshift{top}}
\pgfkeys{/pgf/text/bottom/.code=\def\pgf@text@vshift{bottom}}
\pgfkeys{/pgf/text/base/.code=\def\pgf@text@vshift{base}}
\pgfkeys{/pgf/text/at/.cd,.code=\pgftransformshift{#1},.value required}
\pgfkeys{/pgf/text/x/.cd,.code=\pgftransformxshift{#1},.value required}
\pgfkeys{/pgf/text/y/.cd,.code=\pgftransformyshift{#1},.value required}
\pgfkeys{/pgf/text/rotate/.cd,.code=\pgftransformrotate{#1},.value required}
\def\pgf@halignleft{}%
\def\pgf@haligncenter{\pgftransformxshift{+-.5\wd\pgf@hbox}}
\def\pgf@halignright{\pgftransformxshift{+-\wd\pgf@hbox}}%
\def\pgf@valignbase{}%
\def\pgf@valignbottom{\pgftransformyshift{+\dp\pgf@hbox}}%
\def\pgf@valigncenter{\pgftransformyshift{+.5\dp\pgf@hbox}\pgftransformyshift{+-.5\ht\pgf@hbox}}%
\def\pgf@valigntop{\pgftransformyshift{+-\ht\pgf@hbox}}%
\def\pgf@maketext#1{%
\def\pgf@@maketextafter{#1}%
\setbox\pgf@hbox=\hbox\bgroup%
\pgfinterruptpicture%
\bgroup%
\aftergroup\pgf@collectresetcolor%
\let\next=%
}
\def\pgf@collectresetcolor{%
\pgfutil@ifnextchar\reset@color%
{\reset@color\afterassignment\pgf@collectresetcolor\let\pgf@temp=}%
{\pgf@textdone}%
}
\def\pgf@textdone{%
\endpgfinterruptpicture%
\egroup%
\pgf@@maketextafter%
}
\long\def\pgf@makehbox#1{%
\setbox\pgf@hbox=\hbox{{%
\pgfinterruptpicture%
#1%
\endpgfinterruptpicture%
}}}
\def\pgfresetboundingbox{%
\global\pgf@picmaxx=-16000pt\relax%
\global\pgf@picminx=16000pt\relax%
\global\pgf@picmaxy=-16000pt\relax%
\global\pgf@picminy=16000pt\relax%
}%
\def\pgfpicture{%
\begingroup%
\pgfpicturetrue%
\global\advance\pgf@picture@serial@count by1\relax%
\edef\pgfpictureid{pgfid\the\pgf@picture@serial@count}%
\let\pgf@nodecallback=\pgfutil@gobble%
\pgf@picmaxx=-16000pt\relax%
\pgf@picminx=16000pt\relax%
\pgf@picmaxy=-16000pt\relax%
\pgf@picminy=16000pt\relax%
\pgf@relevantforpicturesizetrue%
\pgf@resetpathsizes%
\pgfutil@ifnextchar\bgroup\pgf@oldpicture\pgf@picture}
\def\pgf@oldpicture#1#2#3#4{%
\pgfmathsetlength\pgf@picminx{#1}%
\pgfmathsetlength\pgf@picminy{#2}%
\pgfmathsetlength\pgf@picmaxx{#3}%
\pgfmathsetlength\pgf@picmaxy{#4}%
\pgf@relevantforpicturesizefalse%
\pgf@picture}
\def\pgf@picture{%
\setbox\pgfpic\hbox to0pt\bgroup%
\begingroup%
\pgfsys@beginpicture%
\pgfsys@beginscope%
\begingroup%
\pgfsetcolor{.}%
\pgfsetlinewidth{0.4pt}%
\pgftransformreset%
\pgfsyssoftpath@setcurrentpath\pgfutil@empty%
\begingroup%
\let\pgf@setlengthorig=\setlength%
\let\pgf@addtolengthorig=\addtolength%
\let\pgf@selectfontorig=\selectfont%
\let\setlength=\pgf@setlength%
\let\addtolength=\pgf@addtolength%
\let\selectfont=\pgf@selectfont%
\nullfont\spaceskip0pt\xspaceskip0pt%
\tracinglostchars=%
\ifnum\tracinglostchars>2 2\else\tracinglostchars\fi
\setbox\pgf@layerbox@main\hbox to0pt\bgroup%
\begingroup%
}
\def\endpgfpicture{%
\ifpgfrememberpicturepositiononpage%
\hbox to0pt{\pgfsys@markposition{\pgfpictureid}}%
\fi%
\ifdim\pgf@picmaxx=-16000pt\relax%
\global\pgf@picmaxx=0pt\relax%
\global\pgf@picminx=0pt\relax%
\global\pgf@picmaxy=0pt\relax%
\global\pgf@picminy=0pt\relax%
\fi%
\pgf@relevantforpicturesizefalse%
\pgf@process{\pgf@baseline}%
\xdef\pgf@shift@baseline{\the\pgf@y}%
\pgf@process{\pgf@trimleft}%
\global\advance\pgf@x by-\pgf@picminx
\xdef\pgf@trimleft@final{-\the\pgf@x}%
\pgf@process{\pgf@trimright}%
\global\advance\pgf@x by-\pgf@picmaxx
\xdef\pgf@trimright@final{\the\pgf@x}%
\pgf@remember@layerlist@globally
\endgroup%
\hss%
\egroup%
\pgf@restore@layerlist@from@global
\pgf@insertlayers%
\endgroup%
\pgfsys@discardpath%
\endgroup%
\pgfsys@endscope%
\pgfsys@endpicture%
\endgroup%
\hss
\egroup%
\pgfsys@typesetpicturebox\pgfpic%
\endgroup%
}
\def\pgf@remember@layerlist@globally{%
\global\let\pgf@layerlist@=\pgf@layerlist
}%
\def\pgf@restore@layerlist@from@global{%
\let\pgf@layerlist=\pgf@layerlist@
}%
\def\pgf@insertlayers{%
\box\pgf@layerbox@main%
}
\def\pgf@selectfont{\pgf@selectfontorig\nullfont}
\def\pgf@setlength#1#2{%
\begingroup%
\pgfutil@selectfont%
\pgf@setlengthorig#1{#2}%
\expandafter%
\endgroup%
\expandafter#1\expandafter=\the#1\relax}
\def\pgf@addtolength#1#2{%
\begingroup%
\pgfutil@selectfont%
\pgf@addtolengthorig#1{#2}%
\expandafter%
\endgroup%
\expandafter#1\expandafter=\the#1\relax}
\def\pgfsetbaselinepointlater#1{\def\pgf@baseline{#1}}
\def\pgfsetbaselinepointnow#1{%
\pgf@process{#1}%
\edef\pgf@setter@baseline{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}%
\pgfsetbaselinepointlater{\pgf@setter@baseline}%
}
\def\pgf@default@text{default}%
\def\pgfsetbaseline#1{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgf@default@text
\pgfsetbaseline{\pgf@picminy}%
\else
\pgfsetbaselinepointlater{\pgfpoint{0pt}{#1}}%
\fi
}
\pgfsetbaseline{\pgf@picminy}
\newif\ifpgf@trim@lowlevel
\pgfkeys{
/pgf/trim lowlevel/.is if=pgf@trim@lowlevel,
/pgf/trim lowlevel/.default=true,
}
\def\pgfsettrimleftpointlater#1{\def\pgf@trimleft{#1}}
\def\pgfsettrimleftpointnow#1{%
\pgf@process{#1}%
\edef\pgf@setter@baseline{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}%
\pgfsettrimleftpointlater{\pgf@setter@baseline}%
}
\def\pgfsettrimleft#1{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgf@default@text
\pgfsettrimleft{\pgf@picminx}
\else
\pgfsettrimleftpointlater{\pgfpoint{#1}{0pt}}%
\fi
}
\pgfsettrimleft{\pgf@picminx}
\def\pgfsettrimrightpointlater#1{\def\pgf@trimright{#1}}
\def\pgfsettrimrightpointnow#1{%
\pgf@process{#1}%
\edef\pgf@setter@baseline{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}%
\pgfsettrimrightpointlater{\pgf@setter@baseline}%
}
\def\pgfsettrimright#1{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgf@default@text
\pgfsettrimright{\pgf@picmaxx}%
\else
\pgfsettrimrightpointlater{\pgfpoint{#1}{0pt}}%
\fi
}
\pgfsettrimright{\pgf@picmaxx}
\def\pgfinterruptpath
{%
\begingroup%
\edef\pgf@interrupt@savex{\the\pgf@path@lastx}%
\edef\pgf@interrupt@savey{\the\pgf@path@lasty}%
\pgf@getpathsizes\pgf@interrupt@pathsizes%
\pgfsyssoftpath@getcurrentpath\pgf@interrupt@path%
\pgfsyssoftpath@setcurrentpath\pgfutil@empty%
\let\pgf@interrupt@lastmoveto=\pgfsyssoftpath@lastmoveto%
\begingroup%
}
\def\endpgfinterruptpath
{%
\endgroup%
\pgfsyssoftpath@setcurrentpath\pgf@interrupt@path%
\pgf@setpathsizes\pgf@interrupt@pathsizes%
\global\pgf@path@lastx\pgf@interrupt@savex%
\global\pgf@path@lasty\pgf@interrupt@savey%
\global\let\pgfsyssoftpath@lastmoveto\pgf@interrupt@lastmoveto%
\endgroup%
}
\def\pgfinterruptboundingbox
{%
\begingroup%
\edef\pgf@interrupt@savemaxx{\the\pgf@picmaxx}%
\edef\pgf@interrupt@saveminx{\the\pgf@picminx}%
\edef\pgf@interrupt@savemaxy{\the\pgf@picmaxy}%
\edef\pgf@interrupt@saveminy{\the\pgf@picminy}%
\pgf@picmaxx=-16000pt\relax%
\pgf@picminx=16000pt\relax%
\pgf@picmaxy=-16000pt\relax%
\pgf@picminy=16000pt\relax%
\pgf@size@hookedfalse%
\let\pgf@path@size@hook=\pgfutil@empty%
}
\def\endpgfinterruptboundingbox
{%
\global\pgf@picmaxx=\pgf@interrupt@savemaxx%
\global\pgf@picmaxy=\pgf@interrupt@savemaxy%
\global\pgf@picminx=\pgf@interrupt@saveminx%
\global\pgf@picminy=\pgf@interrupt@saveminy%
\endgroup%
}
\def\pgfidscope{\pgfsys@begin@idscope}
\def\endpgfidscope{\pgfsys@end@idscope}
\let\startpgfidscope\pgfidscope
\let\stoppgfidscope\pgfendidscope
\def\pgfuseid#1{%
\edef\pgf@temp{#1}%
\ifx\pgf@temp\pgfutil@empty%
\else%
\pgf@lookup@id{#1}%
\pgfsys@use@id{\pgf@next@id}%
\expandafter\xdef\csname pgf@id@names@#1\endcsname{{\pgf@next@id}{}}%
\fi%
}
\def\pgf@lookup@id#1{%
\expandafter\let\expandafter\pgf@id@name\csname pgf@id@names@#1\endcsname%
\ifx\pgf@id@name\relax%
\let\pgf@prev@id\pgfutil@empty%
\let\pgf@next@id\pgfutil@empty%
\else%
\expandafter\pgf@id@parse\pgf@id@name%
\fi%
\ifx\pgf@next@id\pgfutil@empty%
\pgfsys@new@id\pgf@next@id%
\expandafter\xdef\csname pgf@id@names@#1\endcsname{{\pgf@prev@id}{\pgf@next@id}}%
\fi%
}
\def\pgf@id@parse#1#2{%
\def\pgf@prev@id{#1}%
\def\pgf@next@id{#2}%
}
\def\pgfclearid{%
\pgfsys@clear@id%
}
\def\pgfidrefnextuse#1#2{%
\edef\pgf@temp{#2}\ifx\pgf@temp\pgfutil@empty\pgferror{Missing name reference for ``\string#1''}\fi%
\pgf@lookup@id{#2}%
\let#1\pgf@next@id%
}
\def\pgfidrefprevuse#1#2{%
\edef\pgf@temp{#2}\ifx\pgf@temp\pgfutil@empty\pgferror{Missing name reference for ``\string#1''}\fi%
\pgf@lookup@id{#2}%
\let#1\pgf@prev@id%
}
\def\pgfusetype#1{%
\edef\pgf@temp{#1}%
\expandafter\pgfutil@ifnextchar\expandafter.\expandafter\pgf@id@use@type@add\expandafter\pgf@id@use@type@replace\pgf@temp\pgf@stop
}
\def\pgf@id@use@type@add.#1\pgf@stop{\pgfsys@append@type{#1}}
\def\pgf@id@use@type@replace#1\pgf@stop{\pgfsys@use@type{#1}}
\def\pgfpushtype{\pgfsys@push@type}
\def\pgfpoptype{\pgfsys@pop@type}
\def\pgfaliasid#1#2{%
\expandafter\let\expandafter\pgf@temp\csname pgf@id@names@#2\endcsname%
\expandafter\let\csname pgf@id@names@#1\endcsname\pgf@temp%
}
\def\pgfgaliasid#1#2{%
\expandafter\let\expandafter\pgf@temp\csname pgf@id@names@#2\endcsname%
\expandafter\global\expandafter\let\csname pgf@id@names@#1\endcsname\pgf@temp%
}
\def\pgfifidreferenced#1#2#3{%
\expandafter\let\expandafter\pgf@id@name\csname pgf@id@names@#1\endcsname%
\ifx\pgf@id@name\relax%
#3%
\else
\expandafter\pgf@id@parse\pgf@id@name%
\ifx\pgf@next@id\pgfutil@empty%
#3%
\else%
#2%
\fi%
\fi%
}
\def\pgfinterruptpicture
{%
\begingroup%
\csname tikz@inside@picturefalse\endcsname%
\pgfinterruptboundingbox%
\pgftransformreset%
\pgfinterruptpath%
\ifx\pgf@selectfontorig\@undefined%
\else%
\let\setlength\pgf@setlengthorig%
\let\addtolength\pgf@addtolengthorig%
\let\selectfont\pgf@selectfontorig%
\fi%
\pgfutil@selectfont%
\pgfpicturefalse%
\let\pgf@positionnodelater@macro\relax%
\pgf@savelayers%
}
\def\endpgfinterruptpicture
{%
\pgf@restorelayers%
\endpgfinterruptpath%
\endpgfinterruptboundingbox%
\endgroup%
}
\let\pgf@savelayers=\relax
\let\pgf@restorelayers=\relax
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex ====
\ProvidesFileRCS{pgfcoreshade.code.tex}
\newdimen\pgf@max
\newcount\pgf@sys@shading@range@num
\def\pgf@parsefunc#1{%
\edef\temp{{#1}}%
\expandafter\pgf@convertstring\temp%
\edef\temp{{\pgf@conv}}%
\expandafter\pgf@@parsefunc\temp}
\def\pgf@@parsefunc#1{%
\let\pgf@bounds=\pgfutil@empty%
\let\pgf@funcs=\pgfutil@empty%
\let\pgf@psfuncs=\pgfutil@empty%
\let\pgf@encode=\pgfutil@empty%
\let\pgf@sys@shading@ranges=\pgfutil@empty%
\pgf@sys@shading@range@num=0\relax%
\csname pgf@parsefirst\pgf@shading@model\endcsname[#1; ]%
\csname pgf@parselastdom\pgf@shading@model\endcsname[#1; ]%
\csname pgf@parsemid\pgf@shading@model\endcsname[#1; ]%
\ifx\pgf@bounds\pgfutil@empty%
\edef\pgf@pdfparseddomain{0 1}%
\edef\pgf@pdfparsedfunction{\pgf@singlefunc\space}%
\else%
\edef\pgf@pdfparseddomain{\pgf@doma\space\pgf@domb}%
\edef\pgf@pdfparsedfunction{%
<< /FunctionType 3 /Domain [\pgf@doma\space\pgf@domb] /Functions
[\pgf@funcs\space] /Bounds [\pgf@bounds] /Encode [0 1 \pgf@encode]
>> }%
\fi%
\xdef\pgf@psfuncs{\pgf@psfuncs}%
}
\def\pgf@parsefirstrgb[rgb(#1)=(#2,#3,#4)#5]{%
\pgfmathsetlength\pgf@x{#1}%
\edef\pgf@sys@shading@start@pos{\the\pgf@x}%
\pgf@sys@bp@correct\pgf@x%
\edef\pgf@doma{\pgf@sys@tonumber{\pgf@x}}%
\edef\pgf@prevx{\pgf@sys@tonumber{\pgf@x}}%
\pgf@getrgbtuplewithmixin{#2}{#3}{#4}%
\edef\pgf@sys@shading@start@rgb{\pgf@sys@rgb}%
\let\pgf@sys@prevcolor=\pgf@sys@shading@start@rgb%
\let\pgf@sys@prevpos=\pgf@sys@shading@start@pos%
\edef\pgf@prevcolor{\pgf@rgb}%
\edef\pgf@firstcolor{\pgf@rgb}}
\def\pgf@parselastdomrgb[rgb(#1)=(#2,#3,#4); {%
\pgfutil@ifnextchar]{%
\pgfmathsetlength\pgf@x{#1}%
\edef\pgf@sys@shading@end@pos{\the\pgf@x}%
\pgf@max=\pgf@x\relax%
\pgf@sys@bp@correct\pgf@x%
\edef\pgf@domb{\pgf@sys@tonumber{\pgf@x}}%
\pgf@getrgbtuplewithmixin{#2}{#3}{#4}%
\edef\pgf@sys@shading@end@rgb{\pgf@sys@rgb}%
\pgfutil@gobble}{\pgf@parselastdomrgb[}}
\def\pgf@parsemidrgb[rgb(#1)=(#2,#3,#4); {\pgf@parserestrgb[}
\def\pgf@parserestrgb[rgb(#1)=(#2,#3,#4); {%
\advance\pgf@sys@shading@range@num by1\relax%
\pgfutil@ifnextchar]{%
\pgf@getrgbtuplewithmixin{#2}{#3}{#4}%
\edef\pgf@singlefunc{\space%
<< /FunctionType 2 /Domain [0 1] /C0
[\pgf@prevcolor] /C1 [\pgf@rgb] /N 1 >> }%
\edef\pgf@funcs{\pgf@funcs\space%
<< /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0
[\pgf@prevcolor] /C1 [\pgf@rgb] /N 1 >> }%
\edef\pgf@psfuncs{\pgf@prevx\space \pgf@rgb\space \pgf@prevcolor\space pgfshade \pgf@psfuncs}%
\pgfmathsetlength\pgf@x{#1}%
\edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{{\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@rgb}}}%
\edef\pgf@sys@prevpos{\the\pgf@x}%
\let\pgf@sys@prevcolor=\pgf@sys@rgb%
\pgfutil@gobble}{%
\pgfmathsetlength\pgf@x{#1}%
\pgf@getrgbtuplewithmixin{#2}{#3}{#4}%
\edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{{\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@rgb}}}%
\edef\pgf@sys@prevpos{\the\pgf@x}%
\let\pgf@sys@prevcolor=\pgf@sys@rgb%
\edef\pgf@psfuncs{\pgf@prevx\space \pgf@rgb\space \pgf@prevcolor\space pgfshade \pgf@psfuncs}%
\pgf@sys@bp@correct\pgf@x%
\edef\pgf@prevx{\pgf@sys@tonumber{\pgf@x}}%
\edef\pgf@bounds{\pgf@bounds\space\pgf@sys@tonumber{\pgf@x}}%
\edef\pgf@encode{\pgf@encode\space0 1}%
\edef\pgf@singlefunc{\space%
<< /FunctionType 2 /Domain [0 1] /C0
[\pgf@prevcolor] /C1 [\pgf@rgb] /N 1 >> }%
\edef\pgf@funcs{\pgf@funcs\space%
<< /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0
[\pgf@prevcolor] /C1 [\pgf@rgb] /N 1 >> }%
\edef\pgf@prevcolor{\pgf@rgb}%
\pgf@parserestrgb[}}
\def\pgf@getrgbtuplewithmixin#1#2#3{%
\pgfutil@definecolor{pgfshadetemp}{rgb}{#1,#2,#3}%
\pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{pgfshadetemp}}%
\pgfutil@extractcolorspec{pgfshadetemp}{\pgf@tempcolor}%
\expandafter\pgfutil@convertcolorspec\pgf@tempcolor{rgb}{\pgf@rgbcolor}%
\expandafter\pgf@getrgb@@\pgf@rgbcolor!}
\def\pgf@getrgb@@#1,#2,#3!{%
\def\pgf@rgb{#1 #2 #3}%
\def\pgf@sys@rgb{{#1}{#2}{#3}}%
}
\def\pgf@parsefirstcmyk[cmyk(#1)=(#2,#3,#4,#5)#6]{%
\pgfmathsetlength\pgf@x{#1}%
\edef\pgf@sys@shading@start@pos{\the\pgf@x}%
\pgf@sys@bp@correct\pgf@x%
\edef\pgf@doma{\pgf@sys@tonumber{\pgf@x}}%
\edef\pgf@prevx{\pgf@sys@tonumber{\pgf@x}}%
\pgf@getcmyktuplewithmixin{#2}{#3}{#4}{#5}%
\edef\pgf@sys@shading@start@cmyk{\pgf@sys@cmyk}%
\let\pgf@sys@prevcolor=\pgf@sys@shading@start@cmyk%
\let\pgf@sys@prevpos=\pgf@sys@shading@start@pos%
\edef\pgf@prevcolor{\pgf@cmyk}%
\edef\pgf@firstcolor{\pgf@cmyk}}
\def\pgf@parselastdomcmyk[cmyk(#1)=(#2,#3,#4,#5); {%
\pgfutil@ifnextchar]{%
\pgfmathsetlength\pgf@x{#1}%
\edef\pgf@sys@shading@end@pos{\the\pgf@x}%
\pgf@max=\pgf@x\relax%
\pgf@sys@bp@correct\pgf@x%
\edef\pgf@domb{\pgf@sys@tonumber{\pgf@x}}%
\pgf@getcmyktuplewithmixin{#2}{#3}{#4}{#5}%
\edef\pgf@sys@shading@end@cmyk{\pgf@sys@cmyk}%
\pgfutil@gobble}{\pgf@parselastdomcmyk[}}
\def\pgf@parsemidcmyk[cmyk(#1)=(#2,#3,#4,#5); {\pgf@parserestcmyk[}
\def\pgf@parserestcmyk[cmyk(#1)=(#2,#3,#4,#5); {%
\advance\pgf@sys@shading@range@num by1\relax%
\pgfutil@ifnextchar]{%
\pgf@getcmyktuplewithmixin{#2}{#3}{#4}{#5}%
\edef\pgf@singlefunc{\space%
<< /FunctionType 2 /Domain [0 1] /C0
[\pgf@prevcolor] /C1 [\pgf@cmyk] /N 1 >> }%
\edef\pgf@funcs{\pgf@funcs\space%
<< /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0
[\pgf@prevcolor] /C1 [\pgf@cmyk] /N 1 >> }%
\edef\pgf@psfuncs{\pgf@prevx\space
\pgf@cmyk\space \pgf@prevcolor\space pgfshade \pgf@psfuncs}%
\pgfmathsetlength\pgf@x{#1}%
\edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{%
{\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@cmyk}}}%
\edef\pgf@sys@prevpos{\the\pgf@x}%
\let\pgf@sys@prevcolor=\pgf@sys@cmyk%
\pgfutil@gobble}{%
\pgfmathsetlength\pgf@x{#1}%
\pgf@getcmyktuplewithmixin{#2}{#3}{#4}{#5}%
\edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{%
{\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@cmyk}}}%
\edef\pgf@sys@prevpos{\the\pgf@x}%
\let\pgf@sys@prevcolor=\pgf@sys@cmyk%
\edef\pgf@psfuncs{\pgf@prevx\space \pgf@cmyk\space
\pgf@prevcolor\space pgfshade \pgf@psfuncs}%
\pgf@sys@bp@correct\pgf@x%
\edef\pgf@prevx{\pgf@sys@tonumber{\pgf@x}}%
\edef\pgf@bounds{\pgf@bounds\space\pgf@sys@tonumber{\pgf@x}}%
\edef\pgf@encode{\pgf@encode\space0 1}%
\edef\pgf@singlefunc{\space%
<< /FunctionType 2 /Domain [0 1] /C0
[\pgf@prevcolor] /C1 [\pgf@cmyk] /N 1 >> }%
\edef\pgf@funcs{\pgf@funcs\space%
<< /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0
[\pgf@prevcolor] /C1 [\pgf@cmyk] /N 1 >> }%
\edef\pgf@prevcolor{\pgf@cmyk}%
\pgf@parserestcmyk[}}
\def\pgf@getcmyktuplewithmixin#1#2#3#4{%
\pgfutil@definecolor{pgfshadetemp}{cmyk}{#1,#2,#3,#4}%
\pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{pgfshadetemp}}%
\pgfutil@extractcolorspec{pgfshadetemp}{\pgf@tempcolor}%
\expandafter\pgfutil@convertcolorspec\pgf@tempcolor{cmyk}{\pgf@cmykcolor}%
\expandafter\pgf@getcmyk@@\pgf@cmykcolor!}
\def\pgf@getcmyk@@#1,#2,#3,#4!{%
\def\pgf@cmyk{#1 #2 #3 #4}%
\def\pgf@sys@cmyk{{#1}{#2}{#3}{#4}}%
}
\def\pgf@parsefirstgray[gray(#1)=(#2)#3]{%
\pgfmathsetlength\pgf@x{#1}%
\edef\pgf@sys@shading@start@pos{\the\pgf@x}%
\pgf@sys@bp@correct\pgf@x%
\edef\pgf@doma{\pgf@sys@tonumber{\pgf@x}}%
\edef\pgf@prevx{\pgf@sys@tonumber{\pgf@x}}%
\pgf@getgraytuplewithmixin{#2}%
\edef\pgf@sys@shading@start@gray{\pgf@sys@gray}%
\let\pgf@sys@prevcolor=\pgf@sys@shading@start@gray%
\let\pgf@sys@prevpos=\pgf@sys@shading@start@pos%
\edef\pgf@prevcolor{\pgf@gray}%
\edef\pgf@firstcolor{\pgf@gray}}
\def\pgf@parselastdomgray[gray(#1)=(#2); {%
\pgfutil@ifnextchar]{%
\pgfmathsetlength\pgf@x{#1}%
\edef\pgf@sys@shading@end@pos{\the\pgf@x}%
\pgf@max=\pgf@x\relax%
\pgf@sys@bp@correct\pgf@x%
\edef\pgf@domb{\pgf@sys@tonumber{\pgf@x}}%
\pgf@getgraytuplewithmixin{#2}%
\edef\pgf@sys@shading@end@gray{\pgf@sys@gray}%
\pgfutil@gobble}{\pgf@parselastdomgray[}}
\def\pgf@parsemidgray[gray(#1)=(#2); {\pgf@parserestgray[}
\def\pgf@parserestgray[gray(#1)=(#2); {%
\advance\pgf@sys@shading@range@num by1\relax%
\pgfutil@ifnextchar]{%
\pgf@getgraytuplewithmixin{#2}%
\edef\pgf@singlefunc{\space%
<< /FunctionType 2 /Domain [0 1] /C0
[\pgf@prevcolor] /C1 [\pgf@gray] /N 1 >> }%
\edef\pgf@funcs{\pgf@funcs\space%
<< /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0
[\pgf@prevcolor] /C1 [\pgf@gray] /N 1 >> }%
\edef\pgf@psfuncs{\pgf@prevx\space \pgf@gray\space
\pgf@prevcolor\space pgfshade \pgf@psfuncs}%
\pgfmathsetlength\pgf@x{#1}%
\edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{%
{\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@gray}}}%
\edef\pgf@sys@prevpos{\the\pgf@x}%
\let\pgf@sys@prevcolor=\pgf@sys@gray%
\pgfutil@gobble}{%
\pgfmathsetlength\pgf@x{#1}%
\pgf@getgraytuplewithmixin{#2}%
\edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{%
{\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@gray}}}%
\edef\pgf@sys@prevpos{\the\pgf@x}%
\let\pgf@sys@prevcolor=\pgf@sys@gray%
\edef\pgf@psfuncs{\pgf@prevx\space \pgf@gray\space
\pgf@prevcolor\space pgfshade \pgf@psfuncs}%
\pgf@sys@bp@correct\pgf@x%
\edef\pgf@prevx{\pgf@sys@tonumber{\pgf@x}}%
\edef\pgf@bounds{\pgf@bounds\space\pgf@sys@tonumber{\pgf@x}}%
\edef\pgf@encode{\pgf@encode\space0 1}%
\edef\pgf@singlefunc{\space%
<< /FunctionType 2 /Domain [0 1] /C0
[\pgf@prevcolor] /C1 [\pgf@gray] /N 1 >> }%
\edef\pgf@funcs{\pgf@funcs\space%
<< /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0
[\pgf@prevcolor] /C1 [\pgf@gray] /N 1 >> }%
\edef\pgf@prevcolor{\pgf@gray}%
\pgf@parserestgray[}}
\def\pgf@getgraytuplewithmixin#1{%
\pgfutil@definecolor{pgfshadetemp}{gray}{#1}%
\pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{pgfshadetemp}}%
\pgfutil@extractcolorspec{pgfshadetemp}{\pgf@tempcolor}%
\expandafter\pgfutil@convertcolorspec\pgf@tempcolor{gray}{\pgf@graycolor}%
\expandafter\pgf@getgray@@\pgf@graycolor!}
\def\pgf@getgray@@#1!{%
\def\pgf@gray{#1}%
\def\pgf@sys@gray{{#1}}%
}
\def\pgf@convertstring#1{%
\def\pgf@conv{}%
\pgf@convert#1]%
}
\def\pgf@convert{%
\pgfutil@ifnextchar]{\pgfutil@gobble}%
{%
\pgfutil@ifnextchar;{\pgf@grabsemicolor}%
{%
\pgfutil@ifnextchar c{\pgf@gobblec}%
{%
\pgfutil@ifnextchar g{\pgf@grabgray}%
{%
\pgfutil@ifnextchar o{\pgf@grabcolor}%
{%
\pgfutil@ifnextchar m{\pgf@grabcmyk}%
{%
\pgfutil@ifnextchar r{\pgf@grabrgb}%
{\pgferror{Illformed shading
specification}\pgf@convert}%
}%
}%
}%
}%
}%
}%
}
\def\pgf@savecolor#1{%
\pgfutil@extractcolorspec{pgf@tempcol}{\pgf@tempcolor}%
\expandafter\pgfutil@convertcolorspec\pgf@tempcolor
{\pgf@shading@model}{\pgf@color}%
\expandafter\pgf@convget@\expandafter{\pgf@color}{#1}%
}
\def\pgf@grabsemicolor;{%
\edef\pgf@conv{\pgf@conv; }\pgf@convert}
\def\pgf@gobblec c{\pgf@convert}
\def\pgf@grabrgb rgb(#1)=(#2,#3,#4){%
\pgfutil@definecolor{pgf@tempcol}{rgb}{#2,#3,#4}%
\pgf@savecolor{#1}%
}
\def\pgf@grabcmyk myk(#1)=(#2,#3,#4,#5){%
\pgfutil@definecolor{pgf@tempcol}{cmyk}{#2,#3,#4,#5}%
\pgf@savecolor{#1}%
}
\def\pgf@grabgray gray(#1)=(#2){%
\pgfutil@definecolor{pgf@tempcol}{gray}{#2}%
\pgf@savecolor{#1}%
}
\def\pgf@grabcolor olor(#1)=(#2){%
\pgfutil@colorlet{pgf@tempcol}{#2}%
\pgf@savecolor{#1}%
}
\def\pgf@convget@#1#2{%
\edef\pgf@conv{\pgf@conv \pgf@shading@model(#2)=(#1)}\pgf@convert}
\newcount\pgf@shadingcount
\pgf@shadingcount=0
{
\catcode`\/=0
\catcode`\\=12
/gdef/pgf@shadingnum{\/the/pgf@shadingcount\}
}
\newif\ifpgfshadingmodelrgb
\newif\ifpgfshadingmodelcmyk
\newif\ifpgfshadingmodelgray
\def\pgf@setup@shading@model{%
\pgfshadingmodelrgbtrue
\pgfshadingmodelcmykfalse
\pgfshadingmodelgrayfalse
\XC@sdef\pgf@mod@test{\XC@tgt@mod{natural}}%
\def\pgf@shading@device{/DeviceRGB}%
\def\pgf@shading@ps@device{setrgbcolor}%
\def\pgf@shading@functional@range{0 1 0 1 0 1}%
\def\pgf@shading@model{rgb}%
\ifx\pgf@mod@test\XC@mod@cmyk
\def\pgf@shading@device{/DeviceCMYK}%
\def\pgf@shading@ps@device{setcmykcolor}%
\def\pgf@shading@functional@range{0 1 0 1 0 1 0 1}%
\def\pgf@shading@model{cmyk}%
\pgfshadingmodelrgbfalse
\pgfshadingmodelcmyktrue
\fi
\ifx\pgf@mod@test\XC@mod@gray
\def\pgf@shading@device{/DeviceGray}%
\def\pgf@shading@ps@device{setgray}%
\def\pgf@shading@functional@range{0 1}%
\def\pgf@shading@model{gray}%
\pgfshadingmodelrgbfalse
\pgfshadingmodelgraytrue
\fi
\edef\pgf@sys@driver@dvisvgm{pgfsys-dvisvgm.def}%
\ifx\pgfsysdriver\pgf@sys@driver@dvisvgm
\def\pgf@shading@model{rgb}%
\fi
\edef\pgf@sys@driver@texforht{pgfsys-tex4ht.def}%
\ifx\pgfsysdriver\pgf@sys@driver@texforht
\def\pgf@shading@model{rgb}%
\fi
}
\def\pgfdeclarehorizontalshading{%
\pgf@setup@shading@model
\pgfutil@ifnextchar[%
\pgf@declarehorizontalshading{\pgf@declarehorizontalshading[]}}
\def\pgf@declarehorizontalshading[#1]#2#3#4{%
\expandafter\def\csname pgf@deps@pgfshading#2!\endcsname{#1}%
\expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\pgfutil@empty%
\global\expandafter\let\csname pgf@num@pgfshading#2!\endcsname\pgfutil@empty
\pgfsys@horishading{#2}{#3}{#4}%
\else%
\global\advance\pgf@shadingcount 1\relax
\global\expandafter\edef\csname pgf@num@pgfshading#2!\endcsname{\pgf@shadingnum}%
\expandafter\def\csname pgf@func@pgfshading#2!\endcsname{\pgfsys@horishading}%
\expandafter\def\csname pgf@args@pgfshading#2!\endcsname{{#3}{#4}}%
\expandafter\let\csname @pgfshading#2!\endcsname=\pgfutil@empty%
\fi}
\def\pgfdeclareverticalshading{%
\pgf@setup@shading@model
\pgfutil@ifnextchar[%
\pgf@declareverticalshading{\pgf@declareverticalshading[]}}
\def\pgf@declareverticalshading[#1]#2#3#4{%
\expandafter\def\csname pgf@deps@pgfshading#2!\endcsname{#1}%
\expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\pgfutil@empty%
\global\expandafter\let\csname pgf@num@pgfshading#2!\endcsname=\pgfutil@empty
\pgfsys@vertshading{#2}{#3}{#4}%
\else%
\global\advance\pgf@shadingcount 1\relax
\global\expandafter\edef\csname pgf@num@pgfshading#2!\endcsname{\pgf@shadingnum}%
\expandafter\def\csname pgf@func@pgfshading#2!\endcsname{\pgfsys@vertshading}%
\expandafter\def\csname pgf@args@pgfshading#2!\endcsname{{#3}{#4}}%
\expandafter\let\csname @pgfshading#2!\endcsname=\pgfutil@empty%
\fi}
\def\pgfdeclareradialshading{%
\pgf@setup@shading@model
\pgfutil@ifnextchar[%
\pgf@declareradialshading{\pgf@declareradialshading[]}}
\def\pgf@declareradialshading[#1]#2#3#4{%
\expandafter\def\csname pgf@deps@pgfshading#2!\endcsname{#1}%
\expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\pgfutil@empty%
\global\expandafter\let\csname pgf@num@pgfshading#2!\endcsname=\pgfutil@empty
\pgfsys@radialshading{#2}{#3}{#4}%
\else%
\global\advance\pgf@shadingcount 1\relax
\global\expandafter\edef\csname pgf@num@pgfshading#2!\endcsname{\pgf@shadingnum}%
\expandafter\def\csname pgf@func@pgfshading#2!\endcsname{\pgfsys@radialshading}%
\expandafter\def\csname pgf@args@pgfshading#2!\endcsname{{#3}{#4}}%
\expandafter\let\csname @pgfshading#2!\endcsname=\pgfutil@empty%
\fi}
\def\pgfdeclarefunctionalshading{%
\pgf@setup@shading@model
\pgfutil@ifnextchar[%
\pgf@declarefunctionalshading{\pgf@declarefunctionalshading[]}}
\def\pgf@declarefunctionalshading[#1]#2#3#4#5#6{%
\expandafter\def\csname pgf@deps@pgfshading#2!\endcsname{#1}%
\expandafter\ifx\csname pgf@deps@pgfshading#2!\endcsname\pgfutil@empty%
\global\expandafter\let\csname pgf@num@pgfshading#2!\endcsname=\pgfutil@empty
\pgfshade@functionaldo{#2}{#3}{#4}{#5}{#6}%
\else%
\global\advance\pgf@shadingcount 1\relax
\global\expandafter\edef\csname pgf@num@pgfshading#2!\endcsname{\pgf@shadingnum}%
\expandafter\def\csname pgf@func@pgfshading#2!\endcsname{\pgfshade@functionaldo}%
\expandafter\def\csname pgf@args@pgfshading#2!\endcsname{{#3}{#4}{#5}{#6}}%
\expandafter\let\csname @pgfshading#2!\endcsname=\pgfutil@empty%
\fi}
\def\pgfshade@functionaldo#1#2#3#4#5{%
\begingroup
#4%
\pgfsys@functionalshading{#1}{#2}{#3}{#5}%
\expandafter\pgfmath@smuggleone\csname @pgfshading#1!\endcsname
\endgroup
}
\def\pgfshadecolortorgb#1#2{%
\pgfutil@colorlet{pgf@tempcol}{#1}%
\pgfutil@extractcolorspec{pgf@tempcol}{\pgf@tempcolor}%
\expandafter\pgfutil@convertcolorspec\pgf@tempcolor{rgb}{\pgf@rgbcolor}%
\expandafter\pgfshading@rgb\pgf@rgbcolor\relax%
\edef#2{\pgf@sys@tonumber{\pgf@xa}\space\pgf@sys@tonumber{\pgf@xb}\space\pgf@sys@tonumber{\pgf@xc}\space}%
\c@pgf@counta\escapechar%
\escapechar-1\relax%
\expandafter\edef\csname\string#2red\endcsname{\pgf@sys@tonumber{\pgf@xa}\space}%
\expandafter\edef\csname\string#2green\endcsname{\pgf@sys@tonumber{\pgf@xb}\space}%
\expandafter\edef\csname\string#2blue\endcsname{\pgf@sys@tonumber{\pgf@xc}\space}%
\escapechar\c@pgf@counta%
}
\def\pgfshading@rgb#1,#2,#3\relax{%
\pgf@xa=#1pt%
\pgf@xb=#2pt%
\pgf@xc=#3pt%
}
\def\pgfshadecolortocmyk#1#2{%
\pgfutil@colorlet{pgf@tempcol}{#1}%
\pgfutil@extractcolorspec{pgf@tempcol}{\pgf@tempcolor}%
\expandafter\pgfutil@convertcolorspec\pgf@tempcolor{cmyk}{\pgf@cmykcolor}%
\expandafter\pgfshading@cmyk\pgf@cmykcolor\relax%
\edef#2{\pgf@sys@tonumber{\pgf@xa}\space\pgf@sys@tonumber{\pgf@xb}\space
\pgf@sys@tonumber{\pgf@xc}\space\pgf@sys@tonumber{\pgf@xd}\space}%
\c@pgf@counta\escapechar%
\escapechar-1\relax%
\expandafter\edef\csname\string#2cyan\endcsname{%
\pgf@sys@tonumber{\pgf@xa}\space}%
\expandafter\edef\csname\string#2magenta\endcsname{%
\pgf@sys@tonumber{\pgf@xb}\space}%
\expandafter\edef\csname\string#2yellow\endcsname{%
\pgf@sys@tonumber{\pgf@xc}\space}%
\expandafter\edef\csname\string#2black\endcsname{%
\pgf@sys@tonumber{\pgf@xd}\space}%
\escapechar\c@pgf@counta
}
\def\pgfshading@cmyk#1,#2,#3,#4\relax{%
\pgf@xa=#1pt%
\pgf@xb=#2pt%
\pgf@xc=#3pt%
\pgf@xd=#4pt%
}
\def\pgfshadecolortogray#1#2{%
\pgfutil@colorlet{pgf@tempcol}{#1}%
\pgfutil@extractcolorspec{pgf@tempcol}{\pgf@tempcolor}%
\expandafter\pgfutil@convertcolorspec\pgf@tempcolor{gray}{\pgf@graycolor}%
\expandafter\pgfshading@gray\pgf@graycolor\relax
\edef#2{\pgf@sys@tonumber{\pgf@xa}\space}%
\c@pgf@counta\escapechar
\escapechar-1\relax
\expandafter\edef\csname\string#2gray\endcsname{%
\pgf@sys@tonumber{\pgf@xa}\space}%
\escapechar\c@pgf@counta
}
\def\pgfshading@gray#1\relax{%
\pgf@xa=#1pt%
}
\def\pgffuncshadingrgbtocmyk{%
1.0 exch sub 3 1 roll
1.0 exch sub 3 1 roll
1.0 exch sub 3 1 roll
3 copy
2 copy gt { exch } if pop
2 copy gt { exch } if pop
dup 3 1 roll sub
0.0 2 copy lt { exch } if pop
1.0 2 copy gt { exch } if pop
4 1 roll
dup 3 1 roll sub
0.0 2 copy lt { exch } if pop
1.0 2 copy gt { exch } if pop
4 1 roll
dup 3 1 roll sub
0.0 2 copy lt { exch } if pop
1.0 2 copy gt { exch } if pop
4 1 roll
}
\def\pgffuncshadingrgbtogray{%
0.11 mul exch 0.59 mul add exch 0.3 mul add
}
\def\pgffuncshadingcmyktorgb{%
dup 3 1 roll add
1.0 2 copy gt { exch } if pop
4 1 roll
dup 3 1 roll add
1.0 2 copy gt { exch } if pop
4 1 roll
add
1.0 2 copy gt { exch } if pop
3 1 roll
1.0 exch sub
3 1 roll
1.0 exch sub
3 1 roll
1.0 exch sub
3 1 roll
}
\def\pgffuncshadingcmyktogray{%
exch 0.11 mul add exch 0.59 mul add exch 0.3 mul add
1.0 2 copy gt { exch } if pop
1.0 exch sub
}
\def\pgffuncshadinggraytorgb{%
dup dup
}
\def\pgffuncshadinggraytocmyk{%
0.0 0.0 0.0
4 3 roll
}
\def\pgfuseshading#1{%
\edef\pgf@shadingname{@pgfshading#1}%
\pgf@tryextensions{\pgf@shadingname}{\pgfalternateextension}%
\expandafter\pgfutil@ifundefined\expandafter{\pgf@shadingname}%
{\pgferror{Undefined shading "#1"}}%
{%
\edef\pgf@shade@adds{\csname pgf@num\pgf@shadingname\endcsname}%
\pgfutil@ifundefined{pgf@deps\pgf@shadingname}%
{}%
{%
\pgf@setup@shading@model
\begingroup
\pgfutil@globalcolorsfalse
\edef\@list{\csname pgf@deps\pgf@shadingname\endcsname}%
\pgfutil@for\@temp:=\@list\do{%
\pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{\@temp}}%
\pgfutil@extractcolorspec{\@temp}{\pgf@tempcolor}%
\expandafter\pgfutil@convertcolorspec\pgf@tempcolor{\pgf@shading@model}{\pgf@color}%
\edef\pgf@shade@adds{\pgf@shade@adds,\pgf@color}%
}%
\pgfmath@smuggleone\pgf@shade@adds
\endgroup
}%
\expandafter\pgf@strip@shadename\pgf@shadingname!!%
\edef\pgf@shadingxname{@pgfshading\pgf@basename\pgf@shade@adds!}%
\pgfutil@ifundefined{\pgf@shadingxname}%
{%
\begingroup
\edef\@temp{\expandafter\noexpand\csname pgf@func\pgf@shadingname\endcsname}%
\edef\@args{{\pgf@basename\pgf@shade@adds}}%
\expandafter\expandafter\expandafter\def
\expandafter\expandafter\expandafter\@@args
\expandafter\expandafter\expandafter{\csname pgf@args\pgf@shadingname\endcsname}%
\expandafter\expandafter\expandafter\@temp\expandafter\@args\@@args
\expandafter\pgfmath@smuggleone\csname\pgf@shadingxname\endcsname
\endgroup
}%
{}%
\pgf@invokeshading{\csname\pgf@shadingxname\endcsname}%
}%
}
\def\pgf@strip@shadename @pgfshading#1!!!{\def\pgf@basename{#1}}
\def\pgf@invokeshading#1{%
\ifpgfpicture%
\pgfsys@shadinginsidepgfpicture{#1}%
\else%
\pgfsys@shadingoutsidepgfpicture{#1}%
\fi%
}
\def\pgfaliasshading#1#2{%
\expandafter\let\expandafter\pgf@temp\expandafter=\csname @pgfshading#2!\endcsname%
\expandafter\let\csname @pgfshading#1!\endcsname=\pgf@temp%
\expandafter\let\expandafter\pgf@temp\expandafter=\csname pgf@num@pgfshading#2!\endcsname%
\expandafter\let\csname pgf@num@pgfshading#1!\endcsname=\pgf@temp%
\expandafter\let\expandafter\pgf@temp\expandafter=\csname pgf@deps@pgfshading#2!\endcsname%
\expandafter\let\csname pgf@deps@pgfshading#1!\endcsname=\pgf@temp%
\expandafter\let\expandafter\pgf@temp\expandafter=\csname pgf@func@pgfshading#2!\endcsname%
\expandafter\let\csname pgf@func@pgfshading#1!\endcsname=\pgf@temp%
\expandafter\let\expandafter\pgf@temp\expandafter=\csname pgf@args@pgfshading#2!\endcsname%
\expandafter\let\csname pgf@args@pgfshading#1!\endcsname=\pgf@temp%
}
\def\pgfshadepath#1#2{%
\ifdim\pgf@pathminx=16000pt%
\pgfwarning{No path specified that can be filled}%
\else%
\begingroup%
\pgf@xb=.5\pgf@pathmaxx%
\advance\pgf@xb by.5\pgf@pathminx%
\pgf@yb=.5\pgf@pathmaxy%
\advance\pgf@yb by.5\pgf@pathminy%
\pgfmathparse{#2}%
\let\pgfshade@angle=\pgfmathresult
\pgfmathsin@\pgfshade@angle
\let\pgfshade@sin=\pgfmathresult
\pgfmathcos@\pgfshade@angle
\let\pgfshade@cos=\pgfmathresult
\pgf@xa=\pgf@pathmaxx
\advance\pgf@xa by-\pgf@pathminx
\pgf@ya=\pgf@pathmaxy
\advance\pgf@ya by-\pgf@pathminy
\pgfmathabs@\pgfshade@sin
\let\pgfshade@abssin=\pgfmathresult
\pgfmathabs@\pgfshade@cos
\let\pgfshade@abscos=\pgfmathresult
\pgf@xc=\pgfshade@abscos\pgf@xa
\advance\pgf@xc by\pgfshade@abssin\pgf@ya
\pgf@yc=\pgfshade@abssin\pgf@xa
\advance\pgf@yc by\pgfshade@abscos\pgf@ya
\pgfmathadd@\pgfshade@abscos\pgfshade@abssin
\pgfmathdivide@{.01992528}{\pgfmathresult}%
\pgf@xc=\pgfmathresult\pgf@xc
\pgf@yc=\pgfmathresult\pgf@yc
\ifdim\pgf@xc<0.0001pt
\ifdim\pgf@xc>-0.0001pt
\pgf@no@shadetrue
\fi
\fi
\ifdim\pgf@yc<0.0001pt
\ifdim\pgf@yc>-0.0001pt
\pgf@no@shadetrue
\fi
\fi
\ifpgf@no@shade\else
\pgfsys@beginscope
\pgfsyssoftpath@invokecurrentpath
\pgfsys@clipnext
\pgfsys@discardpath
\pgfsys@transformcm{1}{0}{0}{1}{\the\pgf@xb}{\the\pgf@yb}%
\pgf@x=\pgfshade@sin pt%
\pgf@xa=-\pgf@x%
\pgfsys@transformcm{\pgfshade@cos}{\pgfshade@sin}{\pgf@sys@tonumber{\pgf@xa}}{\pgfshade@cos}{0pt}{0pt}%
\pgfsys@transformcm{\pgf@sys@tonumber{\pgf@xc}}{0}{0}{\pgf@sys@tonumber{\pgf@yc}}{0pt}{0pt}%
\ifx\pgf@shade@extra@transform\pgfutil@empty%
\else%
\pgflowlevel{\pgf@shade@extra@transform}%
\fi%
\pgfuseshading{#1}%
\pgfsys@endscope%
\fi%
\endgroup%
\fi%
}
\newif\ifpgf@no@shade
\def\pgfsetadditionalshadetransform#1{\def\pgf@shade@extra@transform{#1}}
\let\pgf@shade@extra@transform=\pgfutil@empty
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex ====
\ProvidesFileRCS{pgfcoretransformations.code.tex}
\newdimen\pgf@pt@x
\newdimen\pgf@pt@y
\newdimen\pgf@pt@temp
\newif\ifpgf@pt@identity
\pgf@pt@identitytrue
\def\pgf@pt@aa{1.0} \def\pgf@pt@ab{0.0}
\def\pgf@pt@ba{0.0} \def\pgf@pt@bb{1.0}
\def\pgfgettransform#1{%
\edef#1{{\pgf@pt@aa}{\pgf@pt@ab}{\pgf@pt@ba}{\pgf@pt@bb}{\the\pgf@pt@x}{\the\pgf@pt@y}}%
}
\def\pgfgettransformentries#1#2#3#4#5#6{%
\edef#1{\pgf@pt@aa}%
\edef#2{\pgf@pt@ab}%
\edef#3{\pgf@pt@ba}%
\edef#4{\pgf@pt@bb}%
\edef#5{\the\pgf@pt@x}%
\edef#6{\the\pgf@pt@y}%
}%
\def\pgfsettransformentries#1#2#3#4#5#6{%
\pgfsettransform{{#1}{#2}{#3}{#4}{#5}{#6}}%
}%
\def\pgfsettransform#1{%
\edef\pgf@temp{#1}%
\expandafter\pgf@settransform\pgf@temp%
}
\def\pgf@settransform#1#2#3#4#5#6{%
\def\pgf@pt@aa{#1}%
\def\pgf@pt@ab{#2}%
\def\pgf@pt@ba{#3}%
\def\pgf@pt@bb{#4}%
\pgf@pt@x=#5%
\pgf@pt@y=#6%
\edef\pgf@idtest{#1,#2,#3,#4}%
\ifx\pgf@idtest\pgf@idmatrixtext%
\pgf@pt@identitytrue%
\else%
\pgf@pt@identityfalse%
\fi%
}
\def\pgf@idmatrixtext{1.0,0.0,0.0,1.0}
\def\pgf@zerozerotext{0.0,0.0}
\def\pgf@one@text{1.0}
\def\pgf@zero@text{0.0}
\def\pgf@pos@transform#1#2{%
\ifpgf@pt@identity%
\else%
\pgf@pt@temp=#1%
#1=\pgf@pt@aa#1%
\advance#1 by\pgf@pt@ba#2%
#2=\pgf@pt@bb#2%
\advance#2 by\pgf@pt@ab\pgf@pt@temp%
\fi%
\advance#1 by\pgf@pt@x%
\advance#2 by\pgf@pt@y%
}
\def\pgf@pos@transform@glob{%
\ifpgf@pt@identity%
\else%
\pgf@pt@temp=\pgf@x%
\global\pgf@x=\pgf@pt@aa\pgf@x%
\global\advance\pgf@x by\pgf@pt@ba\pgf@y%
\global\pgf@y=\pgf@pt@bb\pgf@y%
\global\advance\pgf@y by\pgf@pt@ab\pgf@pt@temp%
\fi%
\global\advance\pgf@x by\pgf@pt@x%
\global\advance\pgf@y by\pgf@pt@y%
}
\def\pgftransforminvert{%
\pgf@pt@x=-\pgf@pt@x
\pgf@pt@y=-\pgf@pt@y
\ifpgf@pt@identity%
\else%
\edef\pgf@zerotest{\pgf@pt@ab,\pgf@pt@ba}%
\ifx\pgf@zerotest\pgf@zerozerotext%
\pgfmathreciprocal@{\pgf@pt@aa}%
\let\pgf@pt@aa\pgfmathresult%
\pgfmathreciprocal@{\pgf@pt@bb}%
\let\pgf@pt@bb\pgfmathresult%
\else%
{%
\pgfutil@tempdima=\pgf@pt@aa pt%
\pgfutil@tempdima=\pgf@pt@bb\pgfutil@tempdima%
\pgfutil@tempdimb=\pgf@pt@ba pt%
\pgfutil@tempdimb=\pgf@pt@ab\pgfutil@tempdimb%
\advance\pgfutil@tempdima by -\pgfutil@tempdimb%
\pgfmathreciprocal@{\pgf@sys@tonumber{\pgfutil@tempdima}}%
\pgfutil@tempdima=\pgfmathresult pt%
\pgf@x=\pgf@pt@bb\pgfutil@tempdima%
\xdef\pgf@new@pt@aa{\pgf@sys@tonumber{\pgf@x}}%
\pgf@x=\pgf@pt@aa\pgfutil@tempdima%
\xdef\pgf@new@pt@bb{\pgf@sys@tonumber{\pgf@x}}%
\pgfutil@tempdima=-\pgfutil@tempdima%
\pgf@x=\pgf@pt@ba\pgfutil@tempdima%
\xdef\pgf@new@pt@ba{\pgf@sys@tonumber{\pgf@x}}%
\pgf@x=\pgf@pt@ab\pgfutil@tempdima%
\xdef\pgf@new@pt@ab{\pgf@sys@tonumber{\pgf@x}}%
}%
\let\pgf@pt@aa\pgf@new@pt@aa%
\let\pgf@pt@ab\pgf@new@pt@ab%
\let\pgf@pt@ba\pgf@new@pt@ba%
\let\pgf@pt@bb\pgf@new@pt@bb%
\fi%
\pgf@pt@temp=\pgf@pt@x%
\pgf@pt@x=\pgf@pt@aa\pgf@pt@x%
\advance\pgf@pt@x by\pgf@pt@ba\pgf@pt@y%
\pgf@pt@y=\pgf@pt@bb\pgf@pt@y%
\advance\pgf@pt@y by\pgf@pt@ab\pgf@pt@temp%
\fi%
}
\def\pgftransformcm#1#2#3#4#5{%
\edef\pgf@marshal{\noexpand\pgf@transformcm{#1}{#2}{#3}{#4}}%
\pgf@marshal{#5}%
}
\def\pgf@transformcm#1#2#3#4#5{%
{%
\pgf@process{#5}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfmathsetlength\pgf@x{#1}%
\pgfmathsetlength\pgf@y{#2}%
\pgf@xa=\pgf@pt@aa\pgf@x%
\advance\pgf@xa by \pgf@pt@ba\pgf@y%
\pgf@ya=\pgf@pt@ab\pgf@x%
\advance\pgf@ya by \pgf@pt@bb\pgf@y%
\pgfmathsetlength\pgf@x{#3}%
\pgfmathsetlength\pgf@y{#4}%
\pgf@xb=\pgf@pt@aa\pgf@x%
\advance\pgf@xb by \pgf@pt@ba\pgf@y%
\pgf@yb=\pgf@pt@ab\pgf@x%
\advance\pgf@yb by \pgf@pt@bb\pgf@y%
\pgf@x=\pgf@pt@aa\pgf@xc%
\advance\pgf@x by\pgf@pt@ba\pgf@yc%
\advance\pgf@x by\pgf@pt@x%
\pgf@y=\pgf@pt@ab\pgf@xc%
\advance\pgf@y by\pgf@pt@bb\pgf@yc%
\advance\pgf@y by\pgf@pt@y%
\global\pgf@x=\pgf@x%
\global\pgf@y=\pgf@y%
\xdef\pgf@tempaa{\pgf@sys@tonumber{\pgf@xa}}%
\xdef\pgf@tempab{\pgf@sys@tonumber{\pgf@ya}}%
\xdef\pgf@tempba{\pgf@sys@tonumber{\pgf@xb}}%
\xdef\pgf@tempbb{\pgf@sys@tonumber{\pgf@yb}}%
}%
\pgf@pt@x=\pgf@x%
\pgf@pt@y=\pgf@y%
\let\pgf@pt@aa=\pgf@tempaa%
\let\pgf@pt@ba=\pgf@tempba%
\let\pgf@pt@ab=\pgf@tempab%
\let\pgf@pt@bb=\pgf@tempbb%
\edef\pgf@idtest{\pgf@pt@aa,\pgf@pt@ba,\pgf@pt@ab,\pgf@pt@bb}%
\ifx\pgf@idtest\pgf@idmatrixtext%
\pgf@pt@identitytrue%
\else%
\pgf@pt@identityfalse%
\fi%
}
\def\pgftransformtriangle#1#2#3{%
\pgf@process{#2}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{#3}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{#1}%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\advance\pgf@xb by-\pgf@x%
\advance\pgf@yb by-\pgf@y%
\pgftransformcm%
{\pgf@sys@tonumber\pgf@xa}{\pgf@sys@tonumber\pgf@ya}%
{\pgf@sys@tonumber\pgf@xb}{\pgf@sys@tonumber\pgf@yb}%
{\pgfpoint{\pgf@x}{\pgf@y}}%
}
\def\pgftransformreset{%
\pgf@pt@x=0pt%
\pgf@pt@y=0pt%
\let\pgf@pt@aa\pgf@one@text%
\let\pgf@pt@ba\pgf@zero@text%
\let\pgf@pt@ab\pgf@zero@text%
\let\pgf@pt@bb\pgf@one@text%
\pgf@pt@identitytrue%
}
\def\pgftransformresetnontranslations{%
\let\pgf@pt@aa\pgf@one@text%
\let\pgf@pt@ba\pgf@zero@text%
\let\pgf@pt@ab\pgf@zero@text%
\let\pgf@pt@bb\pgf@one@text%
\pgf@pt@identitytrue%
}
\def\pgftransformshift#1{\pgftransformcm{1}{0}{0}{1}{#1}}
\def\pgftransformxshift#1{\pgftransformcm{1}{0}{0}{1}{\pgfpoint{#1}{+0pt}}}
\def\pgftransformyshift#1{\pgftransformcm{1}{0}{0}{1}{\pgfpoint{+0pt}{#1}}}
\def\pgftransformscale#1{\pgftransformcm{#1}{0}{0}{#1}{\pgfpointorigin}}
\def\pgftransformxscale#1{\pgftransformcm{#1}{0}{0}{1.0}{\pgfpointorigin}}
\def\pgftransformyscale#1{\pgftransformcm{1.0}{0}{0}{#1}{\pgfpointorigin}}
\def\pgftransformxslant#1{\pgftransformcm{1.0}{0}{#1}{1.0}{\pgfpointorigin}}
\def\pgftransformyslant#1{\pgftransformcm{1.0}{#1}{0}{1.0}{\pgfpointorigin}}
\def\pgftransformrotate#1{%
\pgfmathparse{#1}%
\let\pgftransform@angle=\pgfmathresult%
\pgfmathsin@{\pgftransform@angle}%
\let\pgftransform@sin=\pgfmathresult%
\pgfmathcos@{\pgftransform@angle}%
\let\pgftransform@cos=\pgfmathresult%
\pgf@x=\pgftransform@sin pt%
\pgf@xa=-\pgf@x%
\pgftransformcm{\pgftransform@cos}{\pgftransform@sin}{\pgf@sys@tonumber{\pgf@xa}}{\pgftransform@cos}{\pgfpointorigin}%
}
\newif\ifpgfslopedattime
\newif\ifpgfallowupsidedownattime
\newif\ifpgfresetnontranslationattime
\def\pgftransformlineattime#1#2#3{%
\pgf@process{#2}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{#3}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgftransformshift{\pgfpointlineattime{#1}{\pgfqpoint{\pgf@xb}{\pgf@yb}}{\pgfqpoint{\pgf@xc}{\pgf@yc}}}%
\ifpgfresetnontranslationattime%
\pgftransformresetnontranslations%
\fi%
\ifpgfslopedattime%
\advance\pgf@xc by-\pgf@xb%
\advance\pgf@yc by-\pgf@yb%
\ifpgfallowupsidedownattime%
\else%
\ifdim\pgf@xc<0pt%
\pgf@xc=-\pgf@xc%
\pgf@yc=-\pgf@yc%
\fi%
\fi%
\pgf@x=\pgf@xc%
\pgf@y=\pgf@yc%
\pgfpointnormalised{}%
\pgf@ya=-\pgf@y%
\pgftransformcm%
{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}%
{\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}{\pgfpointorigin}%
\fi%
}
\def\pgftransformarcaxesattime#1#2#3#4#5#6{%
\pgfpointarcaxesattime{#1}{#2}{#3}{#4}{#5}{#6}%
\pgftransformshift{\pgfqpoint{\pgf@x}{\pgf@y}}%
\ifpgfresetnontranslationattime%
\pgftransformresetnontranslations%
\fi%
\ifpgfslopedattime%
\pgf@x=\pgf@xa%
\pgf@y=\pgf@ya%
\pgf@process{\pgfpointnormalised{}}%
\ifpgfallowupsidedownattime%
\else%
\ifdim\pgf@x<0pt%
\pgf@x=-\pgf@x%
\pgf@y=-\pgf@y%
\fi%
\fi%
\pgf@ya=-\pgf@y%
\pgftransformcm%
{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}%
{\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}{\pgfpointorigin}%
\fi%
}
\def\pgftransformcurveattime#1#2#3#4#5{%
\pgfpointcurveattime{#1}{#2}{#3}{#4}{#5}%
\pgftransformshift{\pgfqpoint{\pgf@x}{\pgf@y}}%
\ifpgfresetnontranslationattime%
\pgftransformresetnontranslations%
\fi%
\ifpgfslopedattime%
\pgf@x=\pgf@xa%
\pgf@y=\pgf@ya%
\advance\pgf@x by-\pgf@xb%
\advance\pgf@y by-\pgf@yb%
\ifpgfallowupsidedownattime%
\else%
\ifdim\pgf@x<0pt%
\pgf@x=-\pgf@x%
\pgf@y=-\pgf@y%
\fi%
\fi%
\pgfpointnormalised{}%
\pgf@ya=-\pgf@y%
\pgftransformcm%
{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}%
{\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}{\pgfpointorigin}%
\fi%
}
\def\pgftransformarrow#1#2{%
\pgf@process{#2}%
\pgftransformshift{}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{#1}%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\pgf@x=\pgf@xa%
\pgf@y=\pgf@ya%
\pgfpointnormalised{}%
\pgf@ya=-\pgf@y%
\pgftransformcm%
{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}%
{\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}{\pgfqpoint{0pt}{0pt}}%
}
\def\pgftransformationadjustments{%
\ifpgf@pt@identity%
\let\pgfhorizontaltransformationadjustment\pgf@one@text%
\let\pgfverticaltransformationadjustment\pgf@one@text%
\else%
{%
\pgf@pt@x0pt%
\pgf@pt@y0pt%
\pgfpointtransformed{\pgfqpoint{1pt}{0pt}}%
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\pgfmathreciprocal@{\pgfmathresult}%
\global\let\pgf@temp@hori\pgfmathresult
\pgfpointtransformed{\pgfqpoint{0pt}{1pt}}%
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\pgfmathreciprocal@{\pgfmathresult}%
\global\let\pgf@temp@vert\pgfmathresult
\xdef\pgf@marshal@b{\def\noexpand\pgfverticaltransformationadjustment{\pgfmathresult}}
}%
\let\pgfhorizontaltransformationadjustment\pgf@temp@hori%
\let\pgfverticaltransformationadjustment\pgf@temp@vert%
\fi%
}
\let\pgfhorizontaltransformationadjustment\pgf@one@text
\let\pgfverticaltransformationadjustment\pgf@one@text
\def\pgflowlevelsynccm{%
\pgfsys@transformcm%
{\pgf@pt@aa}{\pgf@pt@ab}%
{\pgf@pt@ba}{\pgf@pt@bb}%
{\pgf@pt@x}{\pgf@pt@y}%
\pgftransformreset%
\pgf@relevantforpicturesizefalse%
}
\def\pgflowlevel#1{%
{%
\pgftransformreset%
#1%
\pgflowlevelsynccm%
}%
\pgf@relevantforpicturesizefalse%
}
\def\pgflowlevelscope#1{\pgfscope\pgflowlevel{#1}}
\def\endpgflowlevelscope{\endpgfscope}
\long\def\pgflowlevelobj#1#2{\pgfscope{\pgflowlevel{#1}#2}\endpgfscope}
\def\pgfviewboxscope#1#2#3#4#5{%
{%
\pgf@process{#1}%
\pgf@pos@transform@glob
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{#2}%
\pgf@pos@transform@glob
\ifdim\pgf@x<\pgf@xa%
\pgf@xb\pgf@x%
\pgf@xc\pgf@xa%
\else%
\pgf@xb\pgf@xa%
\pgf@xc\pgf@x%
\fi%
\ifdim\pgf@y<\pgf@ya%
\pgf@yb\pgf@y%
\pgf@yc\pgf@ya%
\else%
\pgf@yb\pgf@ya%
\pgf@yc\pgf@y%
\fi%
\pgf@process{#3}%
\pgf@pos@transform@glob
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{#4}%
\pgf@pos@transform@glob
\ifdim\pgf@x<\pgf@xa%
\else%
\pgfutil@tempdima\pgf@x
\pgf@x\pgf@xa%
\pgf@xa\pgfutil@tempdima%
\fi%
\ifdim\pgf@y<\pgf@ya%
\else%
\pgfutil@tempdima\pgf@y
\pgf@y\pgf@ya%
\pgf@ya\pgfutil@tempdima%
\fi%
\pgfusetype{.view}%
\edef\pgf@marshal{\expandafter\noexpand\csname pgfsys@viewbox#5\endcsname{\the\pgf@x}{\the\pgf@y}{\the\pgf@xa}{\the\pgf@ya}{\the\pgf@xb}{\the\pgf@yb}{\the\pgf@xc}{\the\pgf@yc}}%
\pgf@marshal%
}%
\pgf@relevantforpicturesizefalse%
}
\def\endpgfviewboxscope{\pgfsys@endviewbox}
\let\startpgfviewboxscope=\pgfviewboxscope
\let\stoppgfviewboxscope=\endpgfviewboxscope
\let\pgfapproximatenonlineartranslation\relax
\let\pgfapproximatenonlineartransformation\relax
\def\pgftransformnonlinear#1{\pgferror{You need to say
\string\usepgfmodule{nonlineartransformations} to use nonlinear transformations}}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex ====
\ProvidesFileRCS{pgfcoretransparency.code.tex}
\def\pgfsetstrokeopacity#1{%
\pgfmathparse{#1}%
\expandafter\pgfsys@stroke@opacity\expandafter{\pgfmathresult}}
\def\pgfsetfillopacity#1{%
\pgfmathparse{#1}%
\expandafter\pgfsys@fill@opacity\expandafter{\pgfmathresult}}
\def\pgfsetblendmode#1{\pgfsys@blend@mode{#1}}
\def\pgfdeclarefading#1#2{%
\setbox\pgfutil@tempboxa=\hbox{{\pgfsys@beginscope\pgfutil@color{white}\ignorespaces#2\pgfsys@endscope}}%
\pgfsys@fadingfrombox{#1}\pgfutil@tempboxa%
}
\pgfutil@colorlet{pgftransparent}{black}
\def\pgfsetfading#1#2{%
{%
\pgftransformreset%
#2%
\pgfgettransform{\pgftrans@temp}%
\edef\pgf@marshal{\noexpand\pgfsys@usefading{#1}\pgftrans@temp}%
\pgf@marshal%
}%
}
\def\pgfsetfadingforcurrentpath#1#2{%
\ifdim\pgf@pathminx=16000pt%
\pgfsetfading{#1}{#2}%
\else%
\pgfsetfading{#1}{%
\pgf@xb=.5\pgf@pathmaxx%
\advance\pgf@xb by.5\pgf@pathminx%
\pgf@yb=.5\pgf@pathmaxy%
\advance\pgf@yb by.5\pgf@pathminy%
\pgf@xc=\pgf@pathmaxx%
\advance\pgf@xc by-\pgf@pathminx%
\ifdim\pgf@xc<0.1pt\pgf@xc=0.1pt\fi%
\pgf@yc=\pgf@pathmaxy%
\advance\pgf@yc by-\pgf@pathminy%
\ifdim\pgf@yc<0.1pt\pgf@yc=0.1pt\fi%
\pgf@xc=.02\pgf@xc%
\pgf@yc=.02\pgf@yc%
\pgftransformcm{1}{0}{0}{1}{\pgfqpoint{\pgf@xb}{\pgf@yb}}%
\pgftransformcm{\pgf@sys@tonumber{\pgf@xc}}{0}{0}{\pgf@sys@tonumber{\pgf@yc}}{\pgfpointorigin}%
\pgfsys@clipfading%
#2%
}%
\fi%
}
\def\pgfsetfadingforcurrentpathstroked#1#2{%
\ifdim\pgf@pathminx=16000pt%
\pgfsetfading{#1}{#2}%
\else%
\pgfsetfading{#1}{%
\pgf@xb=.5\pgf@pathmaxx%
\advance\pgf@xb by.5\pgf@pathminx%
\pgf@yb=.5\pgf@pathmaxy%
\advance\pgf@yb by.5\pgf@pathminy%
\pgf@xc=\pgf@pathmaxx%
\advance\pgf@xc by-\pgf@pathminx%
\advance\pgf@xc by\pgflinewidth%
\ifdim\pgf@xc<0.1pt\pgf@xc=0.1pt\fi%
\pgf@yc=\pgf@pathmaxy%
\advance\pgf@yc by-\pgf@pathminy%
\advance\pgf@yc by\pgflinewidth%
\ifdim\pgf@yc<0.1pt\pgf@yc=0.1pt\fi%
\pgf@xc=.02\pgf@xc%
\pgf@yc=.02\pgf@yc%
\pgftransformcm{1}{0}{0}{1}{\pgfqpoint{\pgf@xb}{\pgf@yb}}%
\pgftransformcm{\pgf@sys@tonumber{\pgf@xc}}{0}{0}{\pgf@sys@tonumber{\pgf@yc}}{\pgfpointorigin}%
\pgfsys@clipfading%
#2%
}%
\fi%
}
\def\pgftransparencygroup{%
\pgfutil@ifnextchar[{\pgftransparencygroup@}{\pgftransparencygroup@[]}%
}
\def\pgftransparencygroup@[#1]{%
\begingroup%
\pgfkeys{/pgf/transparency group options/.cd,%
isolated=false,
knockout=false,
#1}%
\setbox\pgfutil@tempboxa=\hbox\bgroup%
}
\pgfkeys{
/pgf/transparency group options/.cd,
isolated/.is if=pgfsys@transparency@group@isolated,
knockout/.is if=pgfsys@transparency@group@knockout
}
\def\endpgftransparencygroup{%
\egroup%
\ifdim\pgf@picminx=16000pt%
\else%
\advance\pgf@picminx by-1cm%
\advance\pgf@picmaxx by1cm%
\advance\pgf@picminy by-1cm%
\advance\pgf@picmaxy by1cm%
\setbox\pgfutil@tempboxa=\hbox{%
\vrule width0pt height\pgf@picmaxy depth-\pgf@picminy%
\hskip-\pgf@picminx%
\box\pgfutil@tempboxa%
\hskip\pgf@picmaxx%
}%
\pgfsys@transparencygroupfrombox\pgfutil@tempboxa%
\wd\pgfutil@tempboxa=0pt%
\ht\pgfutil@tempboxa=0pt%
\dp\pgfutil@tempboxa=0pt%
\hskip\pgf@picminx\box\pgfutil@tempboxa\hskip-\pgf@picminx%
\fi%
\endgroup%
}
\let\startpgftransparencygroup=\pgftransparencygroup
\let\stoppgftransparencygroup=\endpgftransparencygroup
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.code.tex ====
\usetikzlibrary{calc,decorations.markings}%
\tikzset{
circuit/.style={
every circuit/.try,
/utils/exec=\tikz@lib@circ@on@tofalse,
execute at begin to={
\tikz@lib@circ@on@totrue
\let\tikz@lib@circ@start@node\pgfutil@empty
\def\tikz@lib@circ@end{-- (\tikztotarget) \tikztonodes}
}
}
}%
\newif\iftikz@lib@circ@on@to
\tikzset{
circuit handle symbol/.code={%
\global\advance\tikz@lib@circ@count by1\relax%
\iftikz@lib@circ@on@to
{%
\pgfkeys{
/pgf/key filters/active families or no family/.install key filter={/pgf/key filters/false}{/pgf/key filters/false},
/tikz/circuits/pos grabber/.activate family}
\pgfqkeysfiltered{/tikz}{pos=.5,#1}%
\expandafter%
}%
\expandafter\def\expandafter\tikz@lib@circ@pos\expandafter{\tikz@time}%
\pgfkeysalso{to path={
\pgfextra{\tikz@lib@circ@on@tofalse}
decorate [decoration={markings,mark connection node=mark node}]
{
\tikz@lib@circ@start@node
\tikz@lib@circ@end
}
}}
\ifdim\tikz@lib@circ@pos pt=0pt\relax%
\def\tikz@lib@circ@start@node{%
{\pgfextra{\tikz@lib@circ@compute@direction{\tikz@lib@circ@start}}%
node[alias=tikz@lib@circ@node@start,at={(0,0)},#1,pos=]{}}(tikz@lib@circ@node@start)}%
\else%
\ifdim\tikz@lib@circ@pos pt=1pt\relax%
\def\tikz@lib@circ@end{
{\pgfextra{\tikz@lib@circ@compute@direction{\tikz@lib@circ@target}}%
node[alias=tikz@lib@circ@node\the\tikz@lib@circ@count,at={(0,0)},#1,pos=]{}}
--(tikz@lib@circ@node\the\tikz@lib@circ@count)\tikztonodes
}%
\else%
\edef\tikz@marshal{mark=at position \tikz@lib@circ@pos\space with}%
\def\tikz@marshala{decoration=}%
\expandafter\expandafter\expandafter\tikzset%
\expandafter\expandafter\expandafter{\expandafter\tikz@marshala\expandafter{\tikz@marshal{\node[alias=mark node,#1,pos=]{};}}}
\fi%
\fi%
\else
\pgfkeysalso{#1}
\fi
}
}%
\newcount\tikz@lib@circ@count
\def\tikz@lib@circ@compute@direction#1{%
\tikz@scan@one@point\tikz@lib@circ@save@start(\tikztostart)%
\tikz@scan@one@point\tikz@lib@circ@save@target(\tikztotarget)%
\pgf@process{\pgfpointnormalised{\pgfpointdiff{\tikz@lib@circ@start}{\tikz@lib@circ@target}}}%
\pgf@ya=-\pgf@y%
\pgftransformcm{\the\pgf@x}{\the\pgf@y}{\the\pgf@ya}{\the\pgf@x}{#1}%
}%
\def\tikz@lib@circ@save@start#1{\def\tikz@lib@circ@start{#1}}%
\def\tikz@lib@circ@save@target#1{\def\tikz@lib@circ@target{#1}}%
\tikzset{
circuits/pos grabber/.is family,
pos/.belongs to family=/tikz/circuits/pos grabber,
at start/.belongs to family=/tikz/circuits/pos grabber,
very near start/.belongs to family=/tikz/circuits/pos grabber,
near start/.belongs to family=/tikz/circuits/pos grabber,
midway/.belongs to family=/tikz/circuits/pos grabber,
near end/.belongs to family=/tikz/circuits/pos grabber,
very near end/.belongs to family=/tikz/circuits/pos grabber,
at end/.belongs to family=/tikz/circuits/pos grabber
}%
\tikzset{
circuit declare symbol/.style args={#1}{
#1/.style={circuit handle symbol={
inner sep=0.5pt,
every circuit symbol,
#1/graphic,
every #1/.try,
##1}
},
#1/graphic/.style={},
set #1 graphic/.style={#1/graphic/.style={##1}}
},
circuit symbol unit/.code=\pgfmathsetlength\tikzcircuitssizeunit{#1},
circuit symbol size/.style args={width #1 height #2}{
minimum width={(#1)*\tikzcircuitssizeunit},
minimum height={(#2)*\tikzcircuitssizeunit}
},
huge circuit symbols/.style={circuit symbol unit=10pt},
large circuit symbols/.style={circuit symbol unit=8pt},
medium circuit symbols/.style={circuit symbol unit=7pt},
small circuit symbols/.style={circuit symbol unit=6pt},
tiny circuit symbols/.style={circuit symbol unit=5pt},
}%
\newdimen\tikzcircuitssizeunit
\tikzcircuitssizeunit=7pt
\tikzset{
circuit declare annotation/.style args={#1#2#3}{%
#1/.style={
append after command={%
\bgroup
[current point is local=true]
[every circuit annotation/.try]
[every #1/.try]
[shift={(\tikzlastnode.north)}]
[annotation arrow,->]
[label distance=#2,##1]
#3
\tikz@after@path%
\egroup%
}
},
#1'/.style={
append after command={%
\bgroup
[current point is local=true]
[every circuit annotation/.try]
[every #1/.try]
[shift={(\tikzlastnode.south)},yscale=-1]
[annotation arrow,->]
[label distance=#2,##1]
#3
\tikz@after@path%
\egroup%
}
}
},
annotation arrow/.style = {
/utils/exec={\pgfsetarrowoptions{direction ee}{.4*\the\tikzcircuitssizeunit+.3*\the\pgflinewidth}},
>=direction ee
}
}%
\tikzset{
point up/.style={rotate=90},
point down/.style={rotate=-90},
point left/.style={rotate=180},
point right/.style={}
}%
\tikzset{
every circuit symbol/.style={},
circuit symbol open/.style={draw},
circuit symbol filled/.style={draw,fill=black},
circuit symbol lines/.style={draw},
circuit symbol wires/.style={draw},
}%
\tikzset{
info/.code={\pgfutil@ifnextchar[\tikz@lib@circ@lab@plain{\tikz@lib@circ@lab@plain[]}#1\pgf@stop},%
info'/.code={\pgfutil@ifnextchar[\tikz@lib@circ@labp@plain{\tikz@lib@circ@labp@plain[]}#1\pgf@stop},%
info sloped/.code={\pgfutil@ifnextchar[\tikz@lib@circ@lab@sloped@plain{\tikz@lib@circ@lab@sloped@plain[]}#1\pgf@stop},%
info' sloped/.code={\pgfutil@ifnextchar[\tikz@lib@circ@lab@slopedp@plain{\tikz@lib@circ@lab@slopedp@plain[]}#1\pgf@stop},%
circuit declare unit/.style 2 args={
#1/.code={\pgfutil@ifnextchar[\tikz@lib@circ@lab{\tikz@lib@circ@lab[]}##1\pgf@stop{#2}{#1}},%
#1 sloped/.code={\pgfutil@ifnextchar[\tikz@lib@circ@lab@sloped{\tikz@lib@circ@lab@sloped[]}##1\pgf@stop{#2}{#1}},%
#1'/.code={\pgfutil@ifnextchar[\tikz@lib@circ@labp{\tikz@lib@circ@labp[]}##1\pgf@stop{#2}{#1}},%
#1' sloped/.code={\pgfutil@ifnextchar[\tikz@lib@circ@lab@slopedp{\tikz@lib@circ@lab@slopedp[]}##1\pgf@stop{#2}{#1}}%
}
}%
\def\tikz@lib@circ@lab[#1]#2\pgf@stop#3#4{\tikzset{label={[every info/.try,every #4/.try,#1]$\mathrm{#2#3}$}}}%
\def\tikz@lib@circ@lab@sloped[#1]#2\pgf@stop#3#4{\tikzset{label={[every info/.try,every #4/.try,transform shape,#1]$\mathrm{#2#3}$}}}%
\def\tikz@lib@circ@labp[#1]#2\pgf@stop#3#4{\tikzset{label={[label position=below,every info/.try,every #4/.try,#1]$\mathrm{#2#3}$}}}%
\def\tikz@lib@circ@lab@slopedp[#1]#2\pgf@stop#3#4{\tikzset{label={[label position=below,every info/.try,every #4/.try,transform shape,#1]$\mathrm{#2#3}$}}}%
\def\tikz@lib@circ@lab@plain[#1]#2\pgf@stop{\tikzset{label={[every info/.try,#1]#2}}}%
\def\tikz@lib@circ@lab@sloped@plain[#1]#2\pgf@stop{\tikzset{label={[every info/.try,transform shape,#1]#2}}}%
\def\tikz@lib@circ@labp@plain[#1]#2\pgf@stop{\tikzset{label={[label position=below,every info/.try,#1]#2}}}%
\def\tikz@lib@circ@lab@slopedp@plain[#1]#2\pgf@stop{\tikzset{label={[label position=below,every info/.try,transform shape,#1]#2}}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.ee.IEC.code.tex ====
\usetikzlibrary{arrows}%
\usetikzlibrary{circuits.ee}%
\usepgflibrary{shapes.gates.ee.IEC}%
\tikzset{
circuit ee IEC/.style=
{
circuit ee,
set resistor graphic = resistor IEC graphic,
set inductor graphic = inductor IEC graphic,
set capacitor graphic = capacitor IEC graphic,
set contact graphic = contact IEC graphic,
set ground graphic = ground IEC graphic,
set battery graphic = battery IEC graphic,
set diode graphic = diode IEC graphic,
set Zener diode graphic = Zener diode IEC graphic,
set tunnel diode graphic = tunnel diode IEC graphic,
set backward diode graphic = backward diode IEC graphic,
set Schottky diode graphic = Schottky diode IEC graphic,
set breakdown diode graphic = breakdown diode IEC graphic,
set bulb graphic = bulb IEC graphic,
set voltage source graphic = voltage source IEC graphic,
set current source graphic = current source IEC graphic,
set make contact graphic = make contact IEC graphic,
set break contact graphic = break contact IEC graphic,
set amperemeter graphic = amperemeter graphic,
set voltmeter graphic = voltmeter graphic,
set ohmmeter graphic = ohmmeter graphic,
set ac source graphic = ac source graphic,
set dc source graphic = dc source graphic,
},
}%
\tikzset{
resistor IEC graphic/.style={
circuit symbol open,
circuit symbol size=width 4 height 1,
shape=rectangle ee,
transform shape,
},
var resistor IEC graphic/.style={
circuit symbol lines,
circuit symbol size=width 4.8 height 0.8,
shape=var resistor IEC,
transform shape,
outer sep=0pt,
cap=round,
},
}%
\tikzset{
inductor IEC graphic/.style={
circuit symbol lines,
circuit symbol size=width 4 height .5,
transform shape,
shape=inductor IEC,
outer sep=0pt,
cap=round,
},
var inductor IEC graphic/.style={
circuit symbol filled,
circuit symbol size=width 4 height 1,
transform shape,
shape=rectangle ee,
},
}%
\tikzset{
capacitor IEC graphic/.style={
circuit symbol lines,
circuit symbol size=width .5 height 2,
transform shape,
shape=capacitor IEC,
},
}%
\tikzset{
ground IEC graphic/.style={
circuit symbol lines,
circuit symbol size=width .75 height 2,
transform shape,
shape=ground IEC,
},
}%
\tikzset{
battery IEC graphic/.style={
circuit symbol lines,
circuit symbol size=width .5 height 2.5,
transform shape,
shape=battery IEC,
transform shape,
},
}%
\tikzset{
diode IEC graphic/.style={
circuit symbol open,
circuit symbol size=width 1.25 height 1.25,
transform shape,
shape=generic diode IEC,
/pgf/generic diode IEC/before background={
\pgfpathmoveto{\pgfqpoint{0pt}{-1pt}}
\pgfpathlineto{\pgfqpoint{0pt}{1pt}}
\pgfusepathqstroke
},
},
var diode IEC graphic/.style={
diode IEC graphic,
circuit symbol filled,
},
}%
\tikzset{
Zener diode IEC graphic/.style={
diode IEC graphic,
/pgf/generic diode IEC/before background={
\pgfpathmoveto{\pgfqpoint{-.5pt}{-1pt}}
\pgfpathlineto{\pgfqpoint{0pt}{-1pt}}
\pgfpathlineto{\pgfqpoint{0pt}{1pt}}
\pgfusepathqstroke
},
},
var Zener diode IEC graphic/.style={
Zener diode IEC graphic,
circuit symbol filled,
},
}%
\tikzset{
Schottky diode IEC graphic/.style={
diode IEC graphic,
/pgf/generic diode IEC/before background={
\pgfpathmoveto{\pgfqpoint{-.4pt}{-.6pt}}
\pgfpathlineto{\pgfqpoint{-.4pt}{-1pt}}
\pgfpathlineto{\pgfqpoint{0pt}{-1pt}}
\pgfpathlineto{\pgfqpoint{0pt}{1pt}}
\pgfpathlineto{\pgfqpoint{.4pt}{1pt}}
\pgfpathlineto{\pgfqpoint{.4pt}{.6pt}}
\pgfusepathqstroke
},
},
var Schottky diode IEC graphic/.style={
Schottky diode IEC graphic,
circuit symbol filled,
},
}%
\tikzset{
tunnel diode IEC graphic/.style={
diode IEC graphic,
/pgf/generic diode IEC/before background={
\pgfpathmoveto{\pgfqpoint{-.5pt}{-1pt}}
\pgfpathlineto{\pgfqpoint{0pt}{-1pt}}
\pgfpathlineto{\pgfqpoint{0pt}{1pt}}
\pgfpathlineto{\pgfqpoint{-.5pt}{1pt}}
\pgfusepathqstroke
},
},
var tunnel diode IEC graphic/.style={
tunnel diode IEC graphic,
circuit symbol filled,
},
}%
\tikzset{
backward diode IEC graphic/.style={
diode IEC graphic,
/pgf/generic diode IEC/before background={
\pgfpathmoveto{\pgfqpoint{-.5pt}{-1pt}}
\pgfpathlineto{\pgfqpoint{.5pt}{-1pt}}
\pgfpathmoveto{\pgfqpoint{0pt}{-1pt}}
\pgfpathlineto{\pgfqpoint{0pt}{1pt}}
\pgfpathmoveto{\pgfqpoint{-.5pt}{1pt}}
\pgfpathlineto{\pgfqpoint{.5pt}{1pt}}
\pgfusepathqstroke
},
},
var backward diode IEC graphic/.style={
backward diode IEC graphic,
circuit symbol filled,
},
}%
\tikzset{
breakdown diode IEC graphic/.style={
circuit symbol open,
circuit symbol size=width 2.5 height 1.25,
transform shape,
shape=breakdown diode IEC,
},
var breakdown diode IEC graphic/.style={
breakdown diode IEC graphic,
circuit symbol filled,
},
}%
\tikzset{
contact IEC graphic/.style={
circuit symbol filled,
circuit symbol size=width .5 height .5,
shape=circle ee,
outer sep=.25\pgflinewidth,
},
}%
\tikzset{
bulb IEC graphic/.style={
circuit symbol lines,
circuit symbol size=width 1.5 height 1.5,
shape=generic circle IEC,
/pgf/generic circle IEC/before background={
\pgfpathmoveto{\pgfpointpolar{-135}{1pt}}
\pgfpathlineto{\pgfpointpolar{45}{1pt}}
\pgfpathmoveto{\pgfpointpolar{-45}{1pt}}
\pgfpathlineto{\pgfpointpolar{135}{1pt}}
\pgfusepathqstroke
},
transform shape,
},
}%
\tikzset{
current source IEC graphic/.style={
circuit symbol lines,
circuit symbol size=width 2 height 2,
shape=generic circle IEC,
/pgf/generic circle IEC/before background={
\pgfpathmoveto{\pgfqpoint{0pt}{-1pt}}
\pgfpathlineto{\pgfqpoint{0pt}{1pt}}
\pgfusepathqstroke
},
transform shape,
},
voltage source IEC graphic/.style={
circuit symbol lines,
circuit symbol size=width 2 height 2,
shape=generic circle IEC,
/pgf/generic circle IEC/before background={
\pgfpathmoveto{\pgfqpoint{-1pt}{0pt}}
\pgfpathlineto{\pgfqpoint{1pt}{0pt}}
\pgfusepathqstroke
},
transform shape,
},
}%
\tikzset{
make contact IEC graphic/.style={
circuit symbol wires,
circuit symbol size=width 2 height 1,
transform shape,
shape=make contact IEC,
outer sep=0pt,
cap=round,
},
var make contact IEC graphic/.style={
circuit symbol wires,
circuit symbol size=width 2.4 height 1,
transform shape,
shape=var make contact IEC,
outer sep=0pt,
cap=round,
},
}%
\tikzset{
break contact IEC graphic/.style={
circuit symbol wires,
circuit symbol size=width 2 height 1,
transform shape,
shape=break contact IEC,
outer sep=0pt,
cap=round,
},
}%
\tikzset{
amperemeter graphic/.style={
circuit symbol open,
circuit symbol size=width 2 height 2,
transform shape,
shape=generic circle IEC,
info=center:A,
},
voltmeter graphic/.style={
circuit symbol open,
circuit symbol size=width 2 height 2,
transform shape,
shape=generic circle IEC,
info=center:V,
},
ohmmeter graphic/.style={
circuit symbol open,
circuit symbol size=width 2 height 2,
transform shape,
shape=generic circle IEC,
info=center:$\Omega$,
},
}%
\tikzset{
ac source graphic/.style={
circuit symbol lines,
circuit symbol size=width 2 height 2,
shape=generic circle IEC,
/pgf/generic circle IEC/before background={
\pgfpathmoveto{\pgfqpoint{0.7pt}{0pt}}
\pgfpathquadraticcurveto{\pgfqpoint{ 0.35pt}{-0.5pt}}{\pgfqpoint{0pt}{0pt}}
\pgfpathquadraticcurveto{\pgfqpoint{-0.35pt}{ 0.5pt}}{\pgfqpoint{-0.7pt}{0pt}}
\pgfusepathqstroke
},
transform shape,
},
dc source graphic/.style={
circuit symbol lines,
circuit symbol size=width 2 height 2,
shape=generic circle IEC,
/pgf/generic circle IEC/before background={
\pgfpathmoveto{\pgfqpoint{ 0.7pt}{ 0.2pt}}
\pgfpathlineto{\pgfqpoint{-0.7pt}{ 0.2pt}}
\pgfusepathqstroke
\pgfpathmoveto{\pgfqpoint{ 0.7pt}{-0.2pt}}
\pgfpathlineto{\pgfqpoint{-0.7pt}{-0.2pt}}
\pgfusepathqstroke
},
transform shape,
},
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.ee.IEC.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.ee.code.tex ====
\usetikzlibrary{circuits}%
\usepgflibrary{shapes.gates.ee}%
\tikzset{
circuit ee/.style={
circuit,
every circuit ee/.try
}
}%
\tikzset{
circuit declare symbol = resistor,
circuit declare symbol = inductor,
circuit declare symbol = capacitor,
circuit declare symbol = contact,
circuit declare symbol = ground,
circuit declare symbol = battery,
circuit declare symbol = diode,
circuit declare symbol = Zener diode,
circuit declare symbol = Schottky diode,
circuit declare symbol = tunnel diode,
circuit declare symbol = backward diode,
circuit declare symbol = breakdown diode,
circuit declare symbol = bulb,
circuit declare symbol = current source,
circuit declare symbol = voltage source,
circuit declare symbol = current direction,
circuit declare symbol = current direction',
circuit declare symbol = make contact,
circuit declare symbol = break contact,
circuit declare symbol = amperemeter,
circuit declare symbol = voltmeter,
circuit declare symbol = ohmmeter,
circuit declare symbol = ac source,
circuit declare symbol = dc source,
set current direction graphic = current direction ee graphic,
set current direction' graphic = current direction' ee graphic,
}%
\tikzset{
circuit declare unit={ampere}{A},
circuit declare unit={volt}{V},
circuit declare unit={ohm}{\Omega},
circuit declare unit={siemens}{S},
circuit declare unit={henry}{H},
circuit declare unit={farad}{F},
circuit declare unit={coulomb}{C},
circuit declare unit={voltampere}{VA},
circuit declare unit={watt}{W},
circuit declare unit={hertz}{Hz},
}%
\tikzset{
current direction arrow/.style = {
/utils/exec={\pgfsetarrowoptions{direction ee}{1.3065*.5*\the\tikzcircuitssizeunit+1.3065*.3*\the\pgflinewidth}},
>=direction ee,
direction ee arrow = direction ee,
}
}%
\tikzset{
current direction ee graphic/.style = {
shape=direction ee,
circuit symbol filled,
current direction arrow,
minimum width = .5*\the\tikzcircuitssizeunit+.3*\the\pgflinewidth,
minimum height = .5*\the\tikzcircuitssizeunit+.3*\the\pgflinewidth,
transform shape
},
current direction' ee graphic/.style = {
current direction ee graphic,
rotate=180
}
}%
\tikzset{
circuit declare annotation={direction info}{.5\tikzcircuitssizeunit}
{
(-1.25\tikzcircuitssizeunit,.3333\tikzcircuitssizeunit) edge[line to] (1.25\tikzcircuitssizeunit,.3333\tikzcircuitssizeunit)
},
circuit declare annotation={light emitting}{1.75\tikzcircuitssizeunit}
{
(-.2\tikzcircuitssizeunit,.65\tikzcircuitssizeunit) edge[line to] ++(45:1.25\tikzcircuitssizeunit)
(.2\tikzcircuitssizeunit,.25\tikzcircuitssizeunit) edge[line to] ++(45:1.25\tikzcircuitssizeunit)
},
circuit declare annotation={light dependent}{1.75\tikzcircuitssizeunit}
{
[shift=(135:1.25\tikzcircuitssizeunit)]
(.2\tikzcircuitssizeunit,.65\tikzcircuitssizeunit) edge[line to] ++(-45:1.25\tikzcircuitssizeunit)
(-.2\tikzcircuitssizeunit,.25\tikzcircuitssizeunit) edge[line to] ++(-45:1.25\tikzcircuitssizeunit)
},
circuit declare annotation={adjustable}{1.5\tikzcircuitssizeunit}
{
[shift=(\tikzlastnode.center)]
(-1.5\tikzcircuitssizeunit,-1.5\tikzcircuitssizeunit) edge[line to] (1.5\tikzcircuitssizeunit,1.5\tikzcircuitssizeunit)
},
circuit declare annotation={adjustable'}{1.5\tikzcircuitssizeunit}
{
[shift=(\tikzlastnode.center)]
(-1.5\tikzcircuitssizeunit,1.5\tikzcircuitssizeunit) edge[line to] (1.5\tikzcircuitssizeunit,-1.5\tikzcircuitssizeunit)
}
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.ee.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.logic.CDH.code.tex ====
\usetikzlibrary{circuits.logic.US}%
\tikzset{
circuit logic CDH/.style =
{
circuit logic US,
set and gate graphic = and gate CDH graphic,
set nand gate graphic = nand gate CDH graphic,
}
}%
\tikzset{
circuit logic US make graphic=and gate CDH,
circuit logic US make graphic=nand gate CDH,
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.logic.CDH.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.logic.IEC.code.tex ====
\usetikzlibrary{circuits.logic}%
\usepgflibrary{shapes.gates.logic.IEC}%
\tikzset{
circuit logic IEC/.style=
{
circuit logic,
set and gate graphic = and gate IEC graphic,
set nand gate graphic = nand gate IEC graphic,
set or gate graphic = or gate IEC graphic,
set nor gate graphic = nor gate IEC graphic,
set xor gate graphic = xor gate IEC graphic,
set xnor gate graphic = xnor gate IEC graphic,
set not gate graphic = not gate IEC graphic,
set buffer gate graphic = buffer gate IEC graphic,
and gate IEC symbol = {$\scriptstyle\char`\&$},
nand gate IEC symbol = {$\scriptstyle\char`\&$},
or gate IEC symbol = {$\scriptstyle\geq1$},
nor gate IEC symbol = {$\scriptstyle\geq1$},
xor gate IEC symbol = {$\scriptstyle=1$},
xnor gate IEC symbol = {$\scriptstyle=1$},
not gate IEC symbol = {$\scriptstyle1$},
buffer gate IEC symbol = {$\scriptstyle1$},
},
}%
\tikzset{
circuit logic IEC make graphic/.style=
{
#1 graphic/.style={
circuit symbol open,
circuit symbol size=width 2.5 height 4,
shape=#1,
inner sep=.5ex
}
}
}%
\tikzset{
circuit logic IEC make graphic=and gate IEC,
circuit logic IEC make graphic=nand gate IEC,
circuit logic IEC make graphic=or gate IEC,
circuit logic IEC make graphic=nor gate IEC,
circuit logic IEC make graphic=xor gate IEC,
circuit logic IEC make graphic=xnor gate IEC,
circuit logic IEC make graphic=not gate IEC,
circuit logic IEC make graphic=buffer gate IEC,
circuit logic IEC make graphic=and gate CDH,
circuit logic IEC make graphic=nand gate CDH,
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.logic.IEC.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.logic.US.code.tex ====
\usetikzlibrary{circuits.logic}%
\usepgflibrary{shapes.gates.logic.US}%
\tikzset{
circuit logic US/.style=
{
circuit logic,
set and gate graphic = and gate US graphic,
set nand gate graphic = nand gate US graphic,
set or gate graphic = or gate US graphic,
set nor gate graphic = nor gate US graphic,
set xor gate graphic = xor gate US graphic,
set xnor gate graphic = xnor gate US graphic,
set not gate graphic = not gate US graphic,
set buffer gate graphic = buffer gate US graphic
}
}%
\tikzset{
circuit logic US make graphic/.style=
{
#1 graphic/.style={
circuit symbol open,
circuit symbol size=width 0 height 2.5,
shape=#1,
transform shape
}
}
}%
\tikzset{
circuit logic US make graphic=and gate US,
circuit logic US make graphic=nand gate US,
circuit logic US make graphic=or gate US,
circuit logic US make graphic=nor gate US,
circuit logic US make graphic=xor gate US,
circuit logic US make graphic=xnor gate US,
circuit logic US make graphic=not gate US,
circuit logic US make graphic=buffer gate US,
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.logic.US.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.logic.code.tex ====
\usetikzlibrary{circuits}%
\tikzset{
circuit logic/.style={
circuit,
inputs/.style={logic gate inputs={##1}},
logic gate inverted radius=.25\tikzcircuitssizeunit,
every circuit logic/.try,
}
}%
\tikzset{
circuit declare symbol = and gate,
circuit declare symbol = nand gate,
circuit declare symbol = or gate,
circuit declare symbol = nor gate,
circuit declare symbol = xor gate,
circuit declare symbol = xnor gate,
circuit declare symbol = not gate,
circuit declare symbol = buffer gate
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/circuits/tikzlibrarycircuits.logic.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.3d.code.tex ====
\ProvidesFileRCS{tikzlibrarydatavisualization.3d.code.tex}
\usetikzlibrary{datavisualization}%
\tikzdatavisualizationset{
school book 3d plot/.style={
xyz Cartesian,
x axis={
visualize axis={y axis={goto=0},z axis={goto=0},styling/.style=->},
visualize ticks={common={y axis={goto=0},z axis={goto=0},direction axis=y axis},only ticks={tick text at min extend}},
},
y axis={
visualize axis={x axis={goto=0},z axis={goto=0},styling/.style=->},
visualize ticks={common={x axis={goto=0},z axis={goto=0},direction axis=x axis},only ticks={tick text at min extend}},
},
z axis={
visualize axis={x axis={goto=0},y axis={goto=0},styling/.style=->},
visualize ticks={common={x axis={goto=0},y axis={goto=0},direction axis=x axis},only ticks={tick text at min extend}},
},
new line plot,
every school book plot/.try,
},
}%
\tikzdatavisualizationset{
scientific 3d plot/length/.initial=100pt,
scientific 3d plot/.style={
xyz Cartesian,
x axis={
length=\pgfkeysvalueof{/tikz/data visualization/scientific 3d plot/length},
visualize axis={y axis={goto=min},z axis={goto=min}},
visualize axis={y axis={goto=max},z axis={goto=min}},
visualize axis={y axis={goto=min},z axis={goto=max}},
visualize axis={y axis={goto=max},z axis={goto=max}},
},
y axis={
length=\pgfkeysvalueof{/tikz/data visualization/scientific 3d plot/length},
visualize axis={x axis={goto=min},z axis={goto=min}},
visualize axis={x axis={goto=max},z axis={goto=min}},
visualize axis={x axis={goto=min},z axis={goto=max}},
visualize axis={x axis={goto=max},z axis={goto=max}},
},
z axis={
length=\pgfkeysvalueof{/tikz/data visualization/scientific 3d plot/length},
visualize axis={x axis={goto=min},y axis={goto=min}},
visualize axis={x axis={goto=max},y axis={goto=min}},
visualize axis={x axis={goto=min},y axis={goto=max}},
visualize axis={x axis={goto=max},y axis={goto=max}},
},
new line plot,
},
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.3d.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.barcharts.code.tex ====
\ProvidesFileRCS{tikzlibrarydatavisualization.barcharts.code.tex}
\usetikzlibrary{datavisualization}%
\usepgflibrary{datavisualization.barcharts}%
\tikzdatavisualizationset{%
candle stick plot/.style={
new object={
store=/tikz/data visualization/count,
class=count,
arg1=day
},
new axis=y axis,
y axis/source=dax,
y axis/source max=100,
y axis/vec=\pgfqpoint{0cm}{1cm},
new object={
store=/tikz/data visualization/x line trans,
class=line transformer,
arg1=day,
arg2=\pgfqpoint{3mm}{0mm}
},
new object={
store=/tikz/data visualization/index,
class=candle stick visualizer,
arg1 from key=index/source
},
},
index/source/.initial=index,
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.barcharts.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.code.tex ====
\ProvidesFileRCS{tikzlibrarydatavisualization.code.tex}
\usepgfmodule{datavisualization}%
\usetikzlibrary{backgrounds}%
\tikzset{/tikz/data visualization/.is family,
/tikz/data visualization/.unknown/.code={
\let\tikz@dv@key\pgfkeyscurrentname%
\pgfkeys{/tikz/\tikz@dv@key/.try={#1}}%
\ifpgfkeyssuccess%
\else%
\edef\pgf@temp{/errors/unknown key={/tikz/data visualization/\tikz@dv@key}}%
\expandafter\pgfkeys\expandafter{\pgf@temp{#1}}%
\fi%
},
/tikz/data visualization/data/.unknown/.code={%
\let\tikz@dv@key\pgfkeyscurrentname%
\pgfkeys{/pgf/data/\tikz@dv@key/.try={#1}}%
\ifpgfkeyssuccess%
\else%
\edef\pgf@temp{/errors/unknown key={/pgf/data/\tikz@dv@key}}%
\expandafter\pgfkeys\expandafter{\pgf@temp{#1}}%
\fi%
},
}%
\def\tikzdatavisualizationset{\pgfqkeys{/tikz/data visualization}}%
\def\tikz@lib@datavisualization{
\begingroup%
\let\tikz@path@do@at@end=\relax%
\pgfoonew \tikz@main@dv=new data visualization()%
\pgfset{local bounding box=data visualization bounding box}%
\pgfkeyslet{/tikz/data visualization/axes list}\pgfutil@empty%
\pgfkeyslet{/tikz/data visualization/axes actions}\pgfutil@empty%
\pgfkeyslet{/tikz/data visualization/label actions}\pgfutil@empty%
\pgfkeyslet{/tikz/data visualization/legend actions}\pgfutil@empty%
\pgfkeyslet{/tikz/data visualization/grid actions}\pgfutil@empty%
\pgfkeyslet{/tikz/data visualization/major grid actions}\pgfutil@empty%
\pgfkeyslet{/tikz/data visualization/minor grid actions}\pgfutil@empty%
\pgfkeyslet{/tikz/data visualization/subminor grid actions}\pgfutil@empty%
\pgfkeyslet{/tikz/data visualization/ticks actions}\pgfutil@empty%
\pgfkeyslet{/tikz/data visualization/major ticks actions}\pgfutil@empty%
\pgfkeyslet{/tikz/data visualization/minor ticks actions}\pgfutil@empty%
\pgfkeyslet{/tikz/data visualization/subminor ticks actions}\pgfutil@empty%
\tikz@main@dv.before visualization(%
)%
\tikz@main@dv.after visualization(%
\tikz@lib@dv@alias@dv@bb
\pgfkeysvalueof{/tikz/data visualization/grid actions}
\pgfkeysvalueof{/tikz/data visualization/subminor grid actions}
\pgfkeysvalueof{/tikz/data visualization/minor grid actions}
\pgfkeysvalueof{/tikz/data visualization/major grid actions}
\pgfkeysvalueof{/tikz/data visualization/ticks actions}
\pgfkeysvalueof{/tikz/data visualization/subminor ticks actions}
\pgfkeysvalueof{/tikz/data visualization/minor ticks actions}
\pgfkeysvalueof{/tikz/data visualization/major ticks actions}
\pgfkeysvalueof{/tikz/data visualization/axes actions}
\pgfkeysvalueof{/tikz/data visualization/label actions}
\pgfkeysvalueof{/tikz/data visualization/legend actions}
)%
\pgfset{/pgf/data/continue code=\tikz@lib@dv@parse@loop}%
\tikz@lib@dv@parse@loop
}%
\def\tikz@lib@dv@parse@loop{%
\pgfutil@ifnextchar d\tikz@lib@dv@handle@data{%
\pgfutil@ifnextchar ;\tikz@lib@dv@parse@end{%
\pgfutil@ifnextchar \par\tikz@lib@dv@handle@par{%
\pgfutil@ifnextchar s\tikz@lib@dv@handle@beginscope{%
\pgfutil@ifnextchar i\tikz@lib@dv@handle@info{%
\pgfutil@ifnextchar [\tikz@lib@dv@handle@options{%
\pgfutil@ifnextchar \egroup\tikz@lib@dv@handle@endscope{%
\tikzerror{Semicolon expected}%
\endgroup%
}%
}%
}%
}%
}%
}%
}%
}%
\def\tikz@lib@dv@parse@end;{%
\tikz@main@dv.survey()%
\tikz@main@dv.visualize()%
\endgroup%
\tikz@path@do@at@end%
}%
\def\tikz@lib@dv@handle@par\par{\tikz@lib@dv@parse@loop}%
\def\tikz@lib@dv@handle@options[#1]{%
\tikzdatavisualizationset{#1}%
\tikz@lib@dv@parse@loop%
}%
\def\tikz@lib@dv@handle@beginscope scope{%
\begingroup%
\pgfutil@ifnextchar[\tikz@lib@dv@beg@opt{\tikz@lib@dv@beg@opt[]}%
}%
\def\tikz@lib@dv@beg@opt[#1]{%
\pgfkeys{/pgf/data/.cd,/pgf/every data/.try,#1}%
\pgf@dv@do@adddata{\pgfkeysvalueof{/pgf/data visualization/obj}.add data({{\begingroup\pgfkeys{/pgf/data/.cd,/pgf/every data/.try,#1}}})}%
\pgfutil@ifnextchar\bgroup{
\afterassignment\tikz@lib@dv@parse@loop%
\let\tikz@dummy=%
}{%
\tikzerror{Opening brace expected}%
\tikz@lib@dv@parse@loop%
}%
}%
\def\tikz@lib@dv@handle@endscope{%
\pgf@dv@do@adddata{\pgfkeysvalueof{/pgf/data visualization/obj}.add data(\endgroup)}%
\endgroup%
\afterassignment\tikz@lib@dv@parse@loop%
\let\tikz@dummy=%
}%
\def\tikz@lib@dv@handle@data data{%
\pgfutil@ifnextchar g{\tikz@lib@dv@handle@data@group}{%
\pgfutil@ifnextchar p{\tikz@lib@dv@handle@data@point}{%
\pgfdata}}}%
\def\tikz@lib@dv@handle@data@group group{\pgfutil@ifnextchar[{\tikz@lib@dv@handle@data@group@opt}{\tikz@lib@dv@handle@data@group@opt[]}}%
\def\tikz@lib@dv@handle@data@group@opt[#1]#2{%
\pgfutil@ifnextchar={\tikz@lib@dv@handle@data@group@def{#1}{#2}}{%
\pgfutil@ifnextchar+{\tikz@lib@dv@handle@data@group@extend{#1}{#2}}{%
\tikz@lib@dv@handle@data@group@use{#1}{#2}}}}%
\def\tikz@lib@dv@handle@data@group@def#1#2={%
\pgfkeys{/pgf/data/new group={#2}}%
\tikz@lib@dv@handle@data@group@extend{#1}{#2}+=%
}%
\def\tikz@lib@dv@handle@data@group@extend#1#2+={%
\pgfutil@ifnextchar\bgroup{
\begingroup%
\pgfkeys{/pgf/data/store in group={#2}}%
\pgf@dv@do@adddata{\pgfkeysvalueof{/pgf/data visualization/obj}.add data({{\begingroup\pgfkeys{/pgf/data/.cd,/pgf/every data/.try,#1}}})}%
\afterassignment\tikz@lib@dv@parse@loop%
\let\tikz@dummy=%
}{%
\tikzerror{Opening brace expected}%
\tikz@lib@dv@parse@loop%
}%
}%
\def\tikz@lib@dv@handle@data@group@use#1#2{%
\pgfdata[#1,use group=#2]%
}%
\def\tikz@lib@dv@handle@data@point point{\pgfutil@ifnextchar[{\tikz@lib@dv@handle@data@point@opt}{\tikz@lib@dv@handle@data@point@opt[]}}%
\def\tikz@lib@dv@handle@data@point@opt[#1]{%
\pgf@dv@do@adddata{\pgfkeysvalueof{/pgf/data visualization/obj}.add data({{\bgroup\pgfkeys{/data point/.cd,#1}\pgfdatapoint\egroup}})}%
\tikz@lib@dv@parse@loop%
}%
\def\tikz@lib@dv@handle@info info{%
\pgfutil@ifnextchar'{\tikz@lib@dv@handle@info@prime}{\tikz@lib@dv@handle@info@noprime}}%
\def\tikz@lib@dv@handle@info@noprime{%
\pgfutil@ifnextchar[{\tikz@lib@dv@handle@info@block@opt}{\tikz@lib@dv@handle@info@block@opt[]}}%
\def\tikz@lib@dv@handle@info@block@opt[#1]#2{%
\tikz@main@dv.after visualization({\scope[#1]#2\endscope})%
\tikz@lib@dv@parse@loop
}%
\def\tikz@lib@dv@handle@info@prime'{%
\pgfutil@ifnextchar[{\tikz@lib@dv@handle@info@block@opt@prime}{\tikz@lib@dv@handle@info@block@opt@prime[]}}%
\def\tikz@lib@dv@handle@info@block@opt@prime[#1]#2{%
\tikz@main@dv.before visualization({\scope[#1]#2\endscope})%
\tikz@lib@dv@parse@loop
}%
\pgfset{/pgf/every data/.style={/tikz/every data/.try,/tikz/data visualization/every data/.try}}%
\tikzdatavisualizationset{
before survey/.code=\tikz@main@dv.before survey({#1}),
after survey/.code=\tikz@main@dv.after survey({#1}),
before visualization/.code=\tikz@main@dv.before visualization({#1}),
after visualization/.code=\tikz@main@dv.after visualization({#1}),
at start survey/.code=\tikz@main@dv.at start survey({#1}),
at end survey/.code=\tikz@main@dv.at end survey({#1}),
at start visualization/.code=\tikz@main@dv.at start visualization({#1}),
at end visualization/.code=\tikz@main@dv.at end visualization({#1}),
}%
\def\tikz@lib@dv@alias@dv@bb{
\pgfnodealias{data bounding box}{data visualization bounding box}%
\pgfkeys{/pgf/freeze local bounding box=data bounding box}%
}%
\tikzdatavisualizationset{
data point/.code={
\pgf@dv@do@adddata{\pgfkeysvalueof{/pgf/data visualization/obj}.add data({{\bgroup\pgfkeys{/data point/.cd,#1}\pgfdatapoint\egroup}})}%
}
}%
\tikzdatavisualizationset{%
new object/.code={%
\def\tikz@dv@grabbed@when{before survey}%
\let\tikz@dv@grabbed@store\pgfutil@empty
\pgfkeys{/tikz/data visualization/new object/grab/.cd,#1}%
\ifx\tikz@dv@grabbed@store\pgfutil@empty
\else
\pgfkeyslet{\tikz@dv@grabbed@store}\pgfutil@empty%
\fi
\edef\tikz@marshal{\noexpand\tikz@main@dv.\tikz@dv@grabbed@when(\noexpand\tikz@dv@newobject{\tikz@dv@grabbed@store}}%
\tikz@marshal{#1})%
},
new object/grab/store/.store in=\tikz@dv@grabbed@store,
new object/grab/when/.store in=\tikz@dv@grabbed@when,
new object/grab/.unknown/.code={},%
}%
\def\tikz@dv@newobject#1#2{%
\def\tikz@dv@new@obj@store{#1}%
\ifx\tikz@dv@new@obj@store\pgfutil@empty%
\let\tikz@dv@new@obj=\pgfutil@empty%
\else%
\pgfkeysgetvalue\tikz@dv@new@obj@store\tikz@dv@new@obj%
\fi%
\ifx\tikz@dv@new@obj\pgfutil@empty
\let\tikz@dv@arg@a=\tikz@lib@notused%
\let\tikz@dv@arg@b=\tikz@lib@notused%
\let\tikz@dv@arg@c=\tikz@lib@notused%
\let\tikz@dv@arg@d=\tikz@lib@notused%
\let\tikz@dv@arg@e=\tikz@lib@notused%
\let\tikz@dv@arg@f=\tikz@lib@notused%
\let\tikz@dv@arg@g=\tikz@lib@notused%
\let\tikz@dv@arg@h=\tikz@lib@notused%
\let\tikz@dv@new@after=\relax%
\pgfkeys{/tikz/data visualization/new object/parse/.cd,#2}
\edef\pgf@marshal{\noexpand\pgfoonew\noexpand\tikzdvobj=new \tikz@dv@new@class(}%
\tikz@dv@add@arg{}\tikz@dv@arg@a%
\tikz@dv@add@arg{\expandafter,}\tikz@dv@arg@b%
\tikz@dv@add@arg{\expandafter,}\tikz@dv@arg@c%
\tikz@dv@add@arg{\expandafter,}\tikz@dv@arg@d%
\tikz@dv@add@arg{\expandafter,}\tikz@dv@arg@e%
\tikz@dv@add@arg{\expandafter,}\tikz@dv@arg@f%
\tikz@dv@add@arg{\expandafter,}\tikz@dv@arg@g%
\tikz@dv@add@arg{\expandafter,}\tikz@dv@arg@h%
\expandafter\def\expandafter\pgf@marshal\expandafter{\pgf@marshal)}%
\pgf@marshal%
\tikzdvobj.default connects()%
\ifx\tikz@dv@new@obj@store\pgfutil@empty%
\else%
\pgfkeyslet\tikz@dv@new@obj@store\tikzdvobj%
\fi%
\tikz@dv@new@after%
\fi
}%
\def\tikz@lib@notused{\tikz@lib@notused}%
\def\tikz@dv@add@arg#1#2{%
\ifx#2\tikz@lib@notused%
\else%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@marshal%
\expandafter\expandafter\expandafter{\expandafter\pgf@marshal#1#2}%
\fi%
}%
\tikzdatavisualizationset{%
new object/parse/.cd,
store/.code=,%
when/.code=,%
class/.store in=\tikz@dv@new@class,
before creation/.code={#1},
after creation/.store in=\tikz@dv@new@after,
arg1/.store in=\tikz@dv@arg@a,
arg2/.store in=\tikz@dv@arg@b,
arg3/.store in=\tikz@dv@arg@c,
arg4/.store in=\tikz@dv@arg@d,
arg5/.store in=\tikz@dv@arg@e,
arg6/.store in=\tikz@dv@arg@f,
arg7/.store in=\tikz@dv@arg@g,
arg8/.store in=\tikz@dv@arg@h,
arg1 from key/.code=\pgfkeysgetvalue{#1}{\tikz@dv@arg@a},
arg2 from key/.code=\pgfkeysgetvalue{#1}{\tikz@dv@arg@b},
arg3 from key/.code=\pgfkeysgetvalue{#1}{\tikz@dv@arg@c},
arg4 from key/.code=\pgfkeysgetvalue{#1}{\tikz@dv@arg@d},
arg5 from key/.code=\pgfkeysgetvalue{#1}{\tikz@dv@arg@e},
arg6 from key/.code=\pgfkeysgetvalue{#1}{\tikz@dv@arg@f},
arg7 from key/.code=\pgfkeysgetvalue{#1}{\tikz@dv@arg@g},
arg8 from key/.code=\pgfkeysgetvalue{#1}{\tikz@dv@arg@h}
arg1 handle from key/.code=\tikz@dv@handle@from@key{#1}{\tikz@dv@handle@a}{\tikz@dv@arg@a},
arg2 handle from key/.code=\tikz@dv@handle@from@key{#1}{\tikz@dv@handle@b}{\tikz@dv@arg@b},
arg3 handle from key/.code=\tikz@dv@handle@from@key{#1}{\tikz@dv@handle@c}{\tikz@dv@arg@c},
arg4 handle from key/.code=\tikz@dv@handle@from@key{#1}{\tikz@dv@handle@d}{\tikz@dv@arg@d},
arg5 handle from key/.code=\tikz@dv@handle@from@key{#1}{\tikz@dv@handle@e}{\tikz@dv@arg@e},
arg6 handle from key/.code=\tikz@dv@handle@from@key{#1}{\tikz@dv@handle@f}{\tikz@dv@arg@f},
arg7 handle from key/.code=\tikz@dv@handle@from@key{#1}{\tikz@dv@handle@g}{\tikz@dv@arg@g},
arg8 handle from key/.code=\tikz@dv@handle@from@key{#1}{\tikz@dv@handle@h}{\tikz@dv@arg@h}
}%
\def\tikz@dv@handle@from@key#1#2#3{%
\pgfkeysvalueof{#1}.get handle(#2)%
\def#3{#2}%
}%
\tikzdeclarecoordinatesystem{visualization}
{%
\tikzset{/data point/.cd,#1}%
\pgfpointdvlocaldatapoint%
}%
\tikzdatavisualizationset{%
new axis base/.style={
new object={
class=scaling mapper,
store=/tikz/data visualization/#1/scaling mapper,
before creation={
\pgfkeysgetvalue{/tikz/data visualization/#1/scaling}\tikz@temp
\ifx\tikz@temp\pgfutil@empty%
\pgfkeysgetvalue{/tikz/data visualization/#1/scaling/default}\tikz@temp
\fi
\expandafter\tikz@dv@lib@parse@scaling\tikz@temp\pgf@stop%
\pgfkeyslet{/tikz/data visualization/#1/scaling}\tikz@temp
},
arg1 from key=/tikz/data visualization/#1/attribute,
arg2/.expanded=\pgfkeysvalueof{/tikz/data visualization/#1/attribute}/scaled,
arg3 from key=/tikz/data visualization/#1/scaling,
arg4 from key=/tikz/data visualization/#1/function
},
#1/attribute/.initial={#1},
#1/function/.initial=,
#1/scaling/.initial=,
#1/scaling/default/.initial=0 at 0 and 1 at 1,
#1/ticks at/.initial=,
#1/default ticks at/.initial=,
#1/major ticks/.initial=,
#1/minor ticks/.initial=,
#1/subminor ticks/.initial=,
#1/grid at/.initial=,
#1/default grid at/.initial=,
#1/major grid/.initial=,
#1/minor grid/.initial=,
#1/subminor grid/.initial=,
#1/label/.initial=,
#1/padding min/.initial=,
#1/padding max/.initial=,
#1/.code={
\let\tikz@temp\tikz@dv@axis%
\def\tikz@dv@axis{/tikz/data visualization/#1}%
\expandafter\tikz@do@axis@options\expandafter{\tikz@temp}{##1}%
},
#1/@compute at positions/.initial=\tikz@lib@dv@compute@at@linear,
axes list/.append={\tikz@lib@dv@do@axis{#1}}
},
all axes/.code={
\def\tikz@lib@dv@args{#1}%
\pgfkeysvalueof{/tikz/data visualization/axes list}%
},
styling/.style=,
style/.style={styling/.append style={#1}},
@node styling/.initial=,
node styling/.style={%
/utils/exec={\pgfkeysgetvalue{/tikz/data visualization/@node styling}\tikz@temp\expandafter\tikzset\expandafter{\tikz@temp}}},
node style/.style={/tikz/data visualization/@node styling/.append={,#1}},
low/.initial=0,
high/.initial=0,
padded/.style={low=padded min,high=padded max},
tick length/.style={low={-#1},high={#1}},
common/.initial=,
major/.initial=,
minor/.initial=,
subminor/.initial=,
@setup at setters/.style={
common/.code=\tikz@lib@dv@add@{common}{##1},
major/.code=\tikz@lib@dv@add@{major}{##1},
minor/.code=\tikz@lib@dv@add@{minor}{##1},
subminor/.code=\tikz@lib@dv@add@{subminor}{##1}
},
@setup at setters,
direction axis/.initial=,
tick text low even padding/.initial=0pt,
tick text high even padding/.initial=0pt,
tick text low odd padding/.initial=0pt,
tick text high odd padding/.initial=0pt,
tick text odd padding/.style={tick text low odd padding={-#1},tick text high odd padding={#1}},
tick text even padding/.style={tick text low even padding={-#1},tick text high even padding={#1}},
tick text padding/.style={tick text odd padding={#1},tick text even padding={#1}},
stack/.style={tick text even padding={#1}},
stack'/.style={tick text odd padding={#1}},
stack/.default=1em,
stack'/.default=1em,
tick text at low/.is if=tikz@dv@min@tick@node,
tick text at high/.is if=tikz@dv@max@tick@node,
no tick text/.style={tick text at low=false,tick text at high=false},
every major ticks/.style={style={line cap=round},tick length=2pt},
every minor ticks/.style={style={solid, help lines,thin,line cap=round},tick length=1.4pt},
every subminor ticks/.style={style={solid, help lines,line cap=round},tick length=0.8pt},
clean ticks/.style={node style={fill=white}},
every grid/.style={high=max,low=min},
every major grid/.style={style={solid, help lines,thin,black!25}},
every minor grid/.style={style={solid, help lines,black!25}},
every subminor grid/.style={style={solid, help lines,black!10}},
at default ticks/.code={%
\expandafter\pgfkeysalso\expandafter{\tikz@lib@dv@ticks@default@at}},
at ticks/.code={%
\expandafter\pgfkeysalso\expandafter{\tikz@lib@dv@ticks@default@at}%
\expandafter\pgfkeysalso\expandafter{\tikz@lib@dv@ticks@at}},
}%
\def\tikz@lib@dv@add@#1#2{\pgfkeysaddvalue{/tikz/data visualization/#1}{}{,#2}}%
\def\tikz@dv@lib@parse@scaling#1 at#2and #3 at#4\pgf@stop{%
\pgfmathsetmacro{\tikz@dv@lib@min@at}{#2}
\pgfmathsetmacro{\tikz@dv@lib@max@at}{#4}
\edef\tikz@temp{#1 at \tikz@dv@lib@min@at and #3 at \tikz@dv@lib@max@at}%
}%
\tikzdatavisualizationset{
at/.code={\def\tikz@dv@at@list{#1}},
also at/.code={\expandafter\def\expandafter\tikz@dv@at@list\expandafter{\tikz@dv@at@list,#1}},
major at/.style={major={at={#1}}},
minor at/.style={minor={at={#1}}},
subminor at/.style={subminor={at={#1}}},
major also at/.style={major={also at={#1}}},
minor also at/.style={minor={also at={#1}}},
subminor also at/.style={subminor={also at={#1}}},
options at/.code={\expandafter\def\expandafter\tikz@dv@style@at@list\expandafter{\tikz@dv@style@at@list,{#1}}},
no tick text at/.style={options at={#1 as [no tick text]}}
}%
\def\tikz@lib@dv@do@axis#1{%
\def\tikz@marshal{#1=}
\expandafter\expandafter\expandafter\tikzdatavisualizationset%
\expandafter\expandafter\expandafter{\expandafter\tikz@marshal\expandafter{\tikz@lib@dv@args}}
}%
\def\tikz@do@axis@options#1#2{
\pgfkeys{/tikz/data visualization/axis options/.cd,#2}
\def\tikz@dv@axis{#1}
}%
\let\tikz@dv@axis\pgfutil@empty
\tikzdatavisualizationset{
every ticks/.style={
node style={%
font=\pgfutil@font@footnotesize,
inner sep=1pt,
outer sep=.1666em,
rounded corners=1.5pt
}
},
every data set label/.style={
every ticks,
node style={
font=\pgfutil@font@small,
}
},
@color of visualizer labels/.style={text=black},
every label in legend/.style={
node style={
fill=none,
}
},
every axis label/.style={
node style={%
font=\pgfutil@font@small,
}
}
}%
\tikzset{
/tikz/data visualization/axis options/.cd,
attribute/.style={\tikz@dv@axis/attribute={#1}},
function/.style={\tikz@dv@axis/function={#1}},
scaling/.style={\tikz@dv@axis/scaling={#1}},
padding min/.style={\tikz@dv@axis/padding min={#1}},
padding max/.style={\tikz@dv@axis/padding max={#1}},
padding/.style={padding min={-#1},padding max={#1}},
label/.code={%
\def\pgf@temp{#1}%
\ifx\pgf@temp\tikz@lib@dv@auto@attribute%
\tikzdatavisualizationset{\tikz@dv@axis/label/.expanded=$\noexpand\mathit{\pgfkeysvalueof{\tikz@dv@axis/attribute}}$}%
\else
\tikzdatavisualizationset{\tikz@dv@axis/label={#1}}%
\fi
},
label/.default=\tikz@lib@dv@auto@attribute,
tick placement strategy/.style={\tikz@dv@axis/@compute at positions={#1}},
linear steps/.style={tick placement strategy=\tikz@lib@dv@compute@at@linear},
goto/.code={\tikz@dv@goto{\tikz@dv@axis}{#1}},
goto pos/.code={\tikz@dv@goto@pos{\tikz@dv@axis}{#1}},
anchor at min/.code={\tikz@lib@dv@special@at{\tikz@dv@axis}{\tikz@dv@min@anchor}},
anchor at max/.code={\tikz@lib@dv@special@at{\tikz@dv@axis}{\tikz@dv@max@anchor}},
visualize axis/.code=\expandafter\tikz@lib@dv@av\expandafter{\tikz@dv@axis}{#1},
ticks/.style={\tikz@dv@axis/ticks at/.append={,#1}},
ticks/.default=some,
visualize ticks/.code=\expandafter\tikz@lib@dv@tv\expandafter{\tikz@dv@axis}{#1},
grid/.style={\tikz@dv@axis/grid at/.append={,#1}},
grid/.default=at default ticks,
visualize grid/.code=\expandafter\tikz@lib@dv@gv\expandafter{\tikz@dv@axis}{#1},
ticks and grid/.style={\tikz@dv@axis/ticks at/.append={,#1},\tikz@dv@axis/grid at/.append={,#1}},
visualize label/.code=\expandafter\tikz@lib@dv@lv\expandafter{\tikz@dv@axis}{#1},
}%
\def\tikz@lib@dv@auto@attribute{\tikz@lib@dv@auto@attribute}%
\tikzdatavisualizationset{
axis options/.cd,
include value/.style={%
/tikz/data visualization/before survey/.expanded={%
\noexpand\pgfkeysgetvalue{\tikz@dv@axis/scaling mapper}\noexpand\tikz@dv@axis@mapper%
\noexpand\foreach \noexpand\tikz@lib@dv@temp in {#1} {%
\noexpand\tikz@dv@axis@mapper.include in value(\noexpand\tikz@lib@dv@temp)%
}%
}%
},
min value/.style={
/tikz/data visualization/at end survey/.expanded={%
\noexpand\pgfkeysgetvalue{\tikz@dv@axis/scaling mapper}\noexpand\tikz@dv@axis@mapper%
\noexpand\tikz@lib@dv@set\noexpand\tikz@dv@axis@mapper{#1}{min}%
}
},
max value/.style={
/tikz/data visualization/at end survey/.expanded={%
\noexpand\pgfkeysgetvalue{\tikz@dv@axis/scaling mapper}\noexpand\tikz@dv@axis@mapper%
\noexpand\tikz@lib@dv@set\noexpand\tikz@dv@axis@mapper{#1}{max}%
}
},
}%
\def\tikz@lib@dv@set#1#2#3{%
\pgfdvmathenter{\pgf@dv@value}{#2}%
#1.get in range interval()%
\pgfdvinrangeinterval.let #3(\pgf@dv@value)%
}%
\tikzdatavisualizationset{
axis layer/.style=on background layer,
ticks layer/.style=on background layer,
ticks node layer/.style=,
grid layer/.style=on background layer,
}%
\def\tikz@lib@dv@av#1#2{
\tikzdatavisualizationset{
axes actions/.append={\tikz@lib@dv@show@axis{#1}{#2}}
}
}%
\def\tikz@lib@dv@show@axis#1#2{%
\scope[data visualization/axis layer,/tikz/data visualization/.cd,low=min,high=max,every axis/.try,#2]
\pgfkeysgetvalue{#1/scaling mapper}\tikz@dv@axis@mapper%
\tikzpointandanchordirection{\tikz@dv@axis@mapper.set in to(min)}{\tikz@dv@axis@mapper.set in to(max)}
\xdef\tikz@dv@axis@dir{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\path[draw,/tikz/data visualization/styling]
\pgfextra{
{
\tikz@dv@goto{#1}{\pgfkeysvalueof{/tikz/data visualization/low}}%
\pgfpathdvmoveto%
}
{
\tikz@dv@goto{#1}{\pgfkeysvalueof{/tikz/data visualization/high}}%
\pgfpathdvlineto%
}
};
\endscope
}%
\def\tikz@dv@goto#1#2{%
\edef\pgf@@temp{#2}%
\ifx\pgf@@temp\tikz@lib@dv@padded@min@text%
\pgfkeysvalueof{#1/scaling mapper}.set in to(min)%
\pgfkeysvalueof{#1/scaling mapper}.get out()%
\pgfkeysgetvalue{#1/padding min}\pgf@temp%
\pgfmathparse{\pgf@temp}%
\pgfkeyslet{/data point/\pgfdvout/offset}\pgfmathresult%
\else%
\ifx\pgf@@temp\tikz@lib@dv@padded@max@text%
\pgfkeysvalueof{#1/scaling mapper}.set in to(max)%
\pgfkeysvalueof{#1/scaling mapper}.get out()%
\pgfkeysgetvalue{#1/padding max}\pgf@temp%
\pgfmathparse{\pgf@temp}%
\pgfkeyslet{/data point/\pgfdvout/offset}\pgfmathresult%
\else%
\pgfkeysvalueof{#1/scaling mapper}.set in to(#2)%
\fi%
\fi%
}%
\def\tikz@dv@goto@pos#1#2{%
\pgfkeyssetvalue{/data point/\pgfkeysvalueof{#1/attribute}/out pos}{#2}%
}%
\def\tikz@lib@dv@padded@min@text{padded min}%
\def\tikz@lib@dv@padded@max@text{padded max}%
\def\tikz@lib@dv@special@at#1#2{%
\tikzpointandanchordirection{\pgfkeysvalueof{#1/scaling mapper}.set in to(min)}{\pgfkeysvalueof{#1/scaling mapper}.set in to(max)}
\tikzset{anchor/.expanded={#2}}
}%
\def\tikz@lib@dv@tv#1#2{
\tikzdatavisualizationset{
ticks actions/.append={\tikz@lib@dv@default@action{ticks}{#1}{#2}},
major ticks actions/.append={\tikz@lib@dv@show@ticks{major}{#1}{#2}},
minor ticks actions/.append={\tikz@lib@dv@show@ticks{minor}{#1}{#2}},
subminor ticks actions/.append={\tikz@lib@dv@show@ticks{subminor}{#1}{#2}}
}
}%
\def\tikz@lib@dv@default@action#1#2#3{%
\let\tikz@marshal\pgfutil@empty%
{%
\let\tikz@lib@dv@ticks@at\pgfutil@empty%
\pgfkeysgetvalue{#2/ticks at}\tikz@lib@dv@ticks@default@at%
\pgfkeysgetvalue{#2/#1 at}\tikz@lib@dv@settings%
\pgfkeysgetvalue{#2/scaling mapper}\tikz@lib@dv@mapper
\tikzdatavisualizationset{major/.code=,minor/.code=,subminor/.code=,common/.code=}
\expandafter\tikzdatavisualizationset\expandafter{\tikz@lib@dv@settings}%
\tikzdatavisualizationset{@setup at setters}%
\pgfkeysgetvalue{/tikz/data visualization/compute step}\tikz@temp@step%
\ifx\tikz@temp@step\pgfutil@empty%
\else%
\pgfkeysvalueof{#2/@compute at positions}%
\xdef\tikz@marshal{
major={\pgfkeysvalueof{/tikz/data visualization/major}},
minor={\pgfkeysvalueof{/tikz/data visualization/minor}},
subminor={\pgfkeysvalueof{/tikz/data visualization/subminor}}}
\fi
}%
\pgfkeyslet{#2/default #1 at}\tikz@marshal
}%
\def\tikz@lib@dv@show@ticks#1#2#3{%
\pgfkeysgetvalue{#2/default ticks at}\tikz@lib@dv@default@settings%
\ifx\tikz@lib@dv@default@settings\pgfutil@empty%
\pgfkeysgetvalue{#2/ticks at}\tikz@lib@dv@settings%
\else%
\pgfkeysgetvalue{#2/ticks at}\tikz@lib@dv@settings%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@lib@dv@settings%
\expandafter\expandafter\expandafter{\expandafter\tikz@lib@dv@default@settings\expandafter,\tikz@lib@dv@settings}
\fi%
\ifx\tikz@lib@dv@settings\pgfutil@empty%
\else
{%
\let\tikz@dv@at@list\pgfutil@empty%
\let\tikz@dv@style@at@list\pgfutil@empty%
\pgfkeysgetvalue{#2/scaling mapper}\tikz@lib@dv@mapper
\scope[/tikz/data visualization/.cd,every ticks/.try,every #1 ticks/.try,#3]%
\expandafter\tikzdatavisualizationset\expandafter{\tikz@lib@dv@settings}%
\pgfkeysgetvalue{/tikz/data visualization/common}\tikz@temp
\expandafter\tikzdatavisualizationset\expandafter{\tikz@temp}
\pgfkeysgetvalue{/tikz/data visualization/#1}\tikz@temp
\expandafter\tikzdatavisualizationset\expandafter{\tikz@temp}
\pgfkeysgetvalue{/tikz/data visualization/\pgfkeysvalueof{/tikz/data visualization/direction axis}/scaling mapper}\pgf@dv@tick@dir@mapper
\foreach \tikz@dv@tick@pos[count=\tikz@dv@tick@count] in \tikz@dv@at@list
{
\ifx\tikz@dv@tick@pos\pgfutil@empty
\c@pgf@counta=\tikz@dv@tick@count\relax%
\advance\c@pgf@counta by-1\relax%
\edef\tikz@dv@tick@count{\the\c@pgf@counta}%
\else
\expandafter\tikz@lib@dv@parse\tikz@dv@tick@pos\pgf@stop%
\expandafter\tikzdatavisualizationset\expandafter{\tikz@lib@dv@tick@opt}%
\tikz@lib@dv@mapper.set in to(\tikz@dv@tick@pos)%
\pgf@process{\pgfpointdvlocaldatapoint}
\xdef\pgf@dv@tick@origin{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\tikzpointandanchordirection{\pgf@dv@tick@dir@mapper.set in to(min)}{\pgf@dv@tick@dir@mapper.set in to(max)}
\xdef\pgf@dv@tick@dir{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\tikz@lib@handle@at@style%
\pgfkeysgetvalue{/tikz/data visualization/high}\tikz@dv@max@val%
\pgfkeysgetvalue{/tikz/data visualization/low}\tikz@dv@min@val%
\iftikz@dv@max@tick@node\pgfmathsetmacro\tikz@dv@max@val{%
\tikz@dv@max@val+(\pgfkeysvalueof{%
/tikz/data visualization/tick text high
\ifodd\tikz@dv@tick@count odd \else even \fi padding}%
)}%
\fi%
\iftikz@dv@min@tick@node\pgfmathsetmacro\tikz@dv@min@val{%
\tikz@dv@min@val+(\pgfkeysvalueof{%
/tikz/data visualization/tick text low
\ifodd\tikz@dv@tick@count odd \else even \fi padding}%
)}%
\fi%
\pgf@process{\pgfpointadd{\pgf@dv@tick@origin}{\pgfpointscale{\tikz@dv@max@val}{\pgf@dv@tick@dir}}}
\xdef\tikz@dv@max@tick{\the\pgf@x,\the\pgf@y}
\pgf@process{\pgfpointadd{\pgf@dv@tick@origin}{\pgfpointscale{\tikz@dv@min@val}{\pgf@dv@tick@dir}}}
\xdef\tikz@dv@min@tick{\the\pgf@x,\the\pgf@y}
\scope[data visualization/ticks layer]
\tikzdatavisualizationset{every \ifodd\tikz@dv@tick@count odd \else even \fi tick/.try}
\draw [/tikz/data visualization/styling] (\tikz@dv@min@tick) -- (\tikz@dv@max@tick);
\endscope
\iftikz@dv@min@tick@node
\scope[data visualization/ticks node layer]
\tikzdatavisualizationset{every \ifodd\tikz@dv@tick@count odd \else even \fi tick/.try}
\path [/tikz/data visualization/styling] (\tikz@dv@min@tick) \tikz@dv@handle@tick{\tikz@dv@min@anchor};
\endscope
\fi
\iftikz@dv@max@tick@node
\scope[data visualization/ticks node layer]
\tikzdatavisualizationset{every \ifodd\tikz@dv@tick@count odd \else even \fi tick/.try}
\path [/tikz/data visualization/styling] (\tikz@dv@max@tick) \tikz@dv@handle@tick{\tikz@dv@max@anchor};
\endscope
\fi
\fi
}
\endscope
}
\fi
}%
\def\tikz@lib@dv@parse#1\pgf@stop{%
\pgfutil@in@{as}{#1}%
\ifpgfutil@in@%
\tikz@lib@dv@parse@as#1\pgf@stop%
\else%
\tikz@lib@dv@parse@as#1as\tikz@lib@dv@typeset\pgf@stop%
\fi%
}%
\def\tikz@lib@dv@parse@as#1as{%
\def\tikz@dv@tick@pos{#1}%
\pgfutil@ifnextchar[{\tikz@lib@dv@parse@as@opt}{\tikz@lib@dv@parse@as@opt[]}%
}%
\def\tikz@lib@dv@parse@as@opt[#1]{%
\def\tikz@lib@dv@tick@opt{#1}%
\pgfutil@ifnextchar\pgf@stop{\tikz@lib@dv@parse@as@text\tikz@lib@dv@typeset}{\tikz@lib@dv@parse@as@text}
}%
\def\tikz@lib@dv@parse@as@text#1\pgf@stop{%
\def\tikz@lib@dv@tick@text{#1}%
}%
\def\tikz@lib@dv@typeset{%
\pgfdvmathenter{\tikz@lib@dv@typesetnum}{\tikz@dv@tick@pos}%
\pgfdvmathexitbyscientificformat{\tikz@lib@dv@typesetnum}{\tikz@lib@dv@typesetnum}%
\pgfkeysvalueof{/tikz/data visualization/tick prefix}%
\pgfkeys{/tikz/data visualization/tick typesetter=\tikz@lib@dv@typesetnum}%
\pgfkeysvalueof{/tikz/data visualization/tick suffix}%
}%
\newif\iftikz@dv@min@tick@node
\newif\iftikz@dv@max@tick@node
\def\tikz@dv@handle@tick#1{%
\pgfextra{
\ifx\tikz@lib@dv@tick@text\pgfutil@empty%
\global\let\tikz@dv@tick@marshal=\pgfutil@empty%
\else
\def\tikz@dv@tick@marshal{node[anchor=#1,/tikz/data visualization/node styling]}%
\expandafter\pgfutil@g@addto@macro\expandafter\tikz@dv@tick@marshal\expandafter{\expandafter{\tikz@lib@dv@tick@text}}
\fi
\expandafter}%
\tikz@dv@tick@marshal
}%
\def\tikz@lib@handle@at@style{%
\ifx\tikz@dv@style@at@list\pgfutil@empty%
\else%
\let\tikz@dv@lib@this@at@style=\pgfutil@empty%
\pgfdvmathenter{\tikz@temp}{\tikz@dv@tick@pos}%
\pgfdvmathexitbyscientificformat{\tikz@dv@compare@to}{\tikz@temp}%
\foreach \tikz@dv@at@style in \tikz@dv@style@at@list {%
\ifx\tikz@dv@at@style\pgfutil@empty%
\else%
\expandafter\tikz@dv@lib@handle@one@at@style\tikz@dv@at@style\tikz@stop%
\fi%
}
\ifx\tikz@dv@lib@this@at@style\pgfutil@empty%
\else%
\expandafter\tikzdatavisualizationset\expandafter{\tikz@dv@lib@this@at@style}%
\fi%
\fi%
}%
\def\tikz@dv@lib@handle@one@at@style#1as#2[#3]#4\tikz@stop{%
\pgfdvmathenter{\tikz@lib@dv@at@math@var}{#1}%
\pgfdvmathexitbyscientificformat{\tikz@dv@temp}{\tikz@lib@dv@at@math@var}%
\ifx\tikz@dv@temp\tikz@dv@compare@to%
\expandafter\gdef\expandafter\tikz@dv@lib@this@at@style\expandafter{\tikz@dv@lib@this@at@style,#3}%
\fi%
}%
\def\tikzpointandanchordirection#1#2{%
\pgf@process{\pgfpointdvdirection{#1}{#2}}
{
\pgf@ya=\pgf@y
\pgf@y=-\pgf@x
\pgf@x=\pgf@ya
\tikz@auto@anchor
\xdef\tikz@dv@max@anchor{\tikz@anchor}
\tikz@auto@anchor@prime
\xdef\tikz@dv@min@anchor{\tikz@anchor}
}
}%
\def\tikz@lib@dv@gv#1#2{
\tikzdatavisualizationset{
grid actions/.append={\tikz@lib@dv@default@action{grid}{#1}{#2}},
major grid actions/.append={\tikz@lib@dv@show@grid{major}{#1}{#2}},
minor grid actions/.append={\tikz@lib@dv@show@grid{minor}{#1}{#2}},
subminor grid actions/.append={\tikz@lib@dv@show@grid{subminor}{#1}{#2}},
}
}%
\def\tikz@lib@dv@show@grid#1#2#3{%
\pgfkeysgetvalue{#2/default grid at}\tikz@lib@dv@default@settings%
\ifx\tikz@lib@dv@default@settings\pgfutil@empty%
\pgfkeysgetvalue{#2/grid at}\tikz@lib@dv@settings%
\else%
\pgfkeysgetvalue{#2/grid at}\tikz@lib@dv@settings%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@lib@dv@settings%
\expandafter\expandafter\expandafter{\expandafter\tikz@lib@dv@default@settings\expandafter,\tikz@lib@dv@settings}
\fi%
\ifx\tikz@lib@dv@settings\pgfutil@empty%
\else
{%
\let\tikz@dv@at@list\pgfutil@empty
\let\tikz@dv@style@at@list\pgfutil@empty
\pgfkeysgetvalue{#2/scaling mapper}\tikz@lib@dv@mapper
\let\tikz@lib@dv@ticks@default@at\pgfutil@empty%
\scope[data visualization/grid layer,/tikz/data visualization/.cd,every #1 grid/.try,every grid,#3]
\pgfkeysgetvalue{#2/ticks at}\tikz@lib@dv@ticks@at%
\expandafter\tikzdatavisualizationset\expandafter{\tikz@lib@dv@settings}%
\pgfkeysgetvalue{/tikz/data visualization/common}\tikz@temp
\expandafter\tikzdatavisualizationset\expandafter{\tikz@temp}
\pgfkeysgetvalue{/tikz/data visualization/#1}\tikz@temp
\expandafter\tikzdatavisualizationset\expandafter{\tikz@temp}
\edef\tikz@lib@dv@dir@axis{/tikz/data visualization/\pgfkeysvalueof{/tikz/data visualization/direction axis}}%
\foreach \tikz@dv@grid@pos in \tikz@dv@at@list
{
\ifx\tikz@dv@grid@pos\pgfutil@empty
\else
\expandafter\tikz@lib@dv@parse\tikz@dv@grid@pos\pgf@stop%
\expandafter\tikzdatavisualizationset\expandafter{\tikz@lib@dv@tick@opt}%
\tikz@lib@dv@mapper.set in to(\tikz@dv@tick@pos)%
\draw[/tikz/data visualization/styling]
\pgfextra{
\tikz@dv@goto{\tikz@lib@dv@dir@axis}{\pgfkeysvalueof{/tikz/data visualization/low}}%
\pgfpathdvmoveto%
\tikz@dv@goto{\tikz@lib@dv@dir@axis}{\pgfkeysvalueof{/tikz/data visualization/high}}%
\pgfpathdvlineto%
};
\fi
}
\endscope
}
\fi
}%
\def\tikz@lib@dv@lv#1#2{
\tikzdatavisualizationset{
label actions/.append={\tikz@lib@dv@show@label{#1}{#2}}
}
}%
\def\tikz@lib@dv@show@label#1#2{%
\pgfkeysgetvalue{#1/label}\tikz@dv@lib@label%
\ifx\tikz@dv@lib@label\pgfutil@empty%
\else
\scope[anchor=center,/tikz/data visualization/.cd,every axis label/.try,#2]
\expandafter\tikz@lib@dv@parse@node\tikz@dv@lib@label\pgf@stop
\endscope
\fi
}%
\def\tikz@lib@dv@parse@node{\pgfutil@ifnextchar[\tikz@lib@dv@parse@node@opt{\tikz@lib@dv@parse@node@opt[]}}%
\def\tikz@lib@dv@parse@node@opt[#1]#2\pgf@stop{
\tikzdatavisualizationset{#1}
\pgftransformshift{\pgfpointdvlocaldatapoint}%
\node [/tikz/data visualization/node styling] {#2};
}%
\tikzdatavisualizationset{
compute step/.initial=,
step/.style={compute step=\def\tikz@lib@dv@step{#1}},
minor steps between steps/.initial=,
minor steps between steps/.default=9,
phase/.initial=0,
tick typesetter/.code=\pgfmathprintnumber{#1},
tick prefix/.initial=,
tick suffix/.initial=,
tick unit/.style={tick suffix={$\,\pgfutil@font@normalfont#1$}},%
}%
\def\tikz@lib@dv@compute@at@linear{%
\let\tikz@lib@dv@compute@about=\tikz@lib@dv@about@linear%
\let\tikz@lib@dv@step\relax%
\pgfkeysvalueof{/tikz/data visualization/compute step}
\ifx\tikz@lib@dv@step\relax%
\else%
\tikz@lib@dv@mapper.get in range interval()%
\pgfdvinrangeinterval.get min and max()%
\pgfkeysgetvalue{/tikz/data visualization/phase}\tikz@temp
\pgfdvmathenter{\tikz@dv@lib@phase}{\tikz@temp}
\pgfdvmathenter{\tikz@dv@lib@step}{\tikz@lib@dv@step}
\pgfdvmathifless{\pgfdvmathalwayszero}{\tikz@dv@lib@step}{%
\pgfdvmathsub{\tikz@dv@lib@temp}{\pgfdvmin}{\tikz@dv@lib@phase}%
\pgfdvmathdiv{\tikz@dv@lib@temp}{\tikz@dv@lib@temp}{\tikz@dv@lib@step}%
\pgfdvmathfloor{\tikz@dv@lib@temp}{\tikz@dv@lib@temp}%
\pgfdvmathmul{\tikz@lib@dv@current}{\tikz@dv@lib@temp}{\tikz@dv@lib@step}%
\pgfdvmathadd{\tikz@lib@dv@current}{\tikz@lib@dv@current}{\tikz@dv@lib@phase}%
\let\tikz@lib@dv@ats\pgfutil@empty%
\let\tikz@lib@dv@minor@ats\pgfutil@empty%
\tikz@lib@dv@mapper.get function(\tikz@temp)%
\ifx\tikz@temp\pgfutil@empty%
\pgfdvmathenter{\tikz@one@hundreth}{0.001}%
\pgfdvmathsub{\tikz@lib@temp}{\pgfdvmax}{\pgfdvmin}%
\pgfdvmathmul{\tikz@lib@dv@epsilon}{\tikz@lib@temp}{\tikz@one@hundreth}%
\else
\let\tikz@lib@dv@epsilon\pgfdvmathalwayszero
\fi
\pgfdvmathsub{\tikz@lib@dv@min@minus@epsilon}{\pgfdvmin}{\tikz@lib@dv@epsilon}%
\pgfdvmathadd{\tikz@lib@dv@max@plus@epsilon}{\pgfdvmax}{\tikz@lib@dv@epsilon}%
\pgfkeysgetvalue{/tikz/data visualization/minor steps between steps}\tikz@lib@dv@substeps%
\ifx\tikz@lib@dv@substeps\pgfutil@empty
\else
\pgfmathsetmacro\tikz@temp{\tikz@lib@dv@substeps+1}%
\pgfdvmathenter{\tikz@dv@lib@substeps}{\tikz@temp}%
\pgfdvmathdiv{\tikz@lib@dv@substep}{\tikz@dv@lib@step}{\tikz@dv@lib@substeps}%
\fi
\loop%
\ifx\tikz@lib@dv@substeps\pgfutil@empty%
\else%
\let\tikz@lib@dv@subcurrent=\tikz@lib@dv@current%
\pgfmathsetcount{\c@pgf@counta}{\tikz@lib@dv@substeps}%
\let\tikz@lib@dv@next=\tikz@lib@dv@subloop%
\tikz@lib@dv@subloop
\fi%
\pgfdvmathifless{\tikz@lib@dv@current}{\tikz@lib@dv@min@minus@epsilon}{}{%
\pgfdvmathexitbyserializing{\tikz@temp}{\tikz@lib@dv@current}%
\edef\tikz@lib@dv@ats{\tikz@lib@dv@ats,\tikz@temp}%
}
\pgfdvmathadd{\tikz@lib@dv@current}{\tikz@lib@dv@current}{\tikz@dv@lib@step}%
\pgfdvmathifless{\tikz@lib@dv@current}{\tikz@lib@dv@max@plus@epsilon}{\tikz@lib@dv@continuetrue}{\tikz@lib@dv@continuefalse}%
\iftikz@lib@dv@continue%
\repeat%
\tikzdatavisualizationset{major/.expanded={at={\tikz@lib@dv@ats}},minor/.expanded={at={\tikz@lib@dv@minor@ats}}}%
}{%
\pgfdvmathexitbyserializing{\tikz@temp}{\pgfdvmin}%
\tikzdatavisualizationset{major/.expanded={at={\tikz@temp}}}%
}%
\fi%
}%
\newif\iftikz@lib@dv@continue
\def\tikz@lib@dv@subloop{
\pgfdvmathadd{\tikz@lib@dv@subcurrent}{\tikz@lib@dv@subcurrent}{\tikz@lib@dv@substep}%
\pgfdvmathifless{\tikz@lib@dv@subcurrent}{\pgfdvmin}{}{%
\pgfdvmathifless{\tikz@lib@dv@subcurrent}{\pgfdvmax}{%
\pgfdvmathexitbyserializing{\tikz@temp}{\tikz@lib@dv@subcurrent}%
\edef\tikz@lib@dv@minor@ats{\tikz@lib@dv@minor@ats,\tikz@temp}
}{}}
\advance\c@pgf@counta by-1\relax%
\ifnum\c@pgf@counta=0\relax%
\let\tikz@lib@dv@next=\relax
\fi
\tikz@lib@dv@next
}%
\tikzdatavisualizationset{
about/.style={compute step=\tikz@lib@dv@compute@about{#1}},
about strategy/.initial=,
standard about strategy/.style={about strategy={1.5/1.0,2.3/2.0,4/2.5,7/5,11/10}},
standard about strategy,
euro about strategy/.style={about strategy={1.5/1.0,3/2.0,7/5,11/10}},
decimal about strategy/.style={about strategy={3/1.0,11/10}},
half about strategy/.style={about strategy={2/1.0,7/5,11/10}},
quarter about strategy/.style={about strategy={1.8/1.0,4/2.5,7/5,11/10}},
int about strategy/.style={about strategy={1.5/1.0,2.5/2.0,3.5/3.0,4.5/4.0,7/5,11/10}},
none/.style={compute step=},
few/.style={about=3},
some/.style={about=5},
many/.style={about=10},
}%
\def\tikz@lib@dv@about@linear#1{%
\tikz@lib@dv@mapper.get in range interval()%
\pgfdvinrangeinterval.get min and max()%
\pgfdvmathsub{\tikz@lib@dv@diff}{\pgfdvmax}{\pgfdvmin}
\pgfdvmathenter{\tikz@lib@dv@about@val}{#1}%
\pgfdvmathdiv{\tikz@lib@dv@around}{\tikz@lib@dv@diff}{\tikz@lib@dv@about@val}%
\pgfmathfloattomacro{\tikz@lib@dv@around}{\tikz@lib@dv@flags}{\tikz@lib@dv@mant}{\tikz@lib@dv@exp}%
\pgf@xc=\tikz@lib@dv@mant pt %
\pgfkeysgetvalue{/tikz/data visualization/about strategy}\tikz@lib@dv@strat
\foreach \tikz@lib@dv@threshold/\tikz@lib@replace in \tikz@lib@dv@strat
{
\ifdim\pgf@xc<\tikz@lib@dv@threshold pt%
\global\pgf@xc=\tikz@lib@replace pt%
\breakforeach
\fi
}%
\ifdim\pgf@xc<10pt%
\pgfmathfloatcreate{\tikz@lib@dv@flags}{\pgf@sys@tonumber{\pgf@xc}}{\tikz@lib@dv@exp}%
\else
\begingroup
\c@pgf@countd=\tikz@lib@dv@exp
\advance\c@pgf@countd by1
\edef\tikz@lib@dv@exp{\the\c@pgf@countd}%
\pgfmath@smuggleone\tikz@lib@dv@exp
\endgroup
\divide\pgf@xc by 10\relax
\pgfmathfloatcreate{\tikz@lib@dv@flags}{\pgf@sys@tonumber{\pgf@xc}}{\tikz@lib@dv@exp}%
\fi
\pgfmathfloattofixed{\pgfmathresult}%
\let\tikz@lib@dv@step=\pgfmathresult
}%
\tikzset{
/tikz/data visualization/axis options/.cd,
exponential steps/.style={tick placement strategy=\tikz@lib@dv@compute@at@log},
logarithmic/.style={
\tikz@dv@axis/function=\pgfdvmathln{\pgfvalue}{\pgfvalue},
\tikz@dv@axis/scaling/default=1 at 0 and 10 at 1,
exponential steps
}
}%
\def\tikz@lib@dv@compute@at@log{%
\let\tikz@lib@dv@compute@about=\tikz@lib@dv@about@log%
\let\tikz@lib@dv@step\relax%
\pgfkeysvalueof{/tikz/data visualization/compute step}
\ifx\tikz@lib@dv@step\relax%
\else%
\tikz@lib@dv@mapper.get in range interval()%
\pgfdvinrangeinterval.get min and max()%
\pgfdvmathlog{\pgfdvminlog}{\pgfdvmin}%
\pgfdvmathlog{\pgfdvmaxlog}{\pgfdvmax}%
\pgfkeysgetvalue{/tikz/data visualization/phase}\tikz@temp
\pgfdvmathenter{\tikz@dv@lib@phase}{\tikz@temp}
\pgfdvmathenter{\tikz@dv@lib@step}{\tikz@lib@dv@step}
\pgfdvmathsub{\tikz@dv@lib@temp}{\pgfdvminlog}{\tikz@dv@lib@phase}%
\pgfdvmathdiv{\tikz@dv@lib@temp}{\tikz@dv@lib@temp}{\tikz@dv@lib@step}%
\pgfdvmathfloor{\tikz@dv@lib@temp}{\tikz@dv@lib@temp}%
\pgfdvmathmul{\tikz@lib@dv@current}{\tikz@dv@lib@temp}{\tikz@dv@lib@step}%
\pgfdvmathadd{\tikz@lib@dv@current}{\tikz@lib@dv@current}{\tikz@dv@lib@phase}%
\let\tikz@lib@dv@ats\pgfutil@empty%
\let\tikz@lib@dv@minor@ats\pgfutil@empty%
\pgfdvmathenter{\tikz@one@hundreth}{0.001}%
\pgfdvmathsub{\tikz@lib@temp}{\pgfdvmaxlog}{\pgfdvminlog}%
\pgfdvmathmul{\tikz@lib@dv@epsilon}{\tikz@lib@temp}{\tikz@one@hundreth}%
\pgfdvmathsub{\tikz@lib@dv@min@minus@epsilon}{\pgfdvminlog}{\tikz@lib@dv@epsilon}%
\pgfdvmathadd{\tikz@lib@dv@max@plus@epsilon}{\pgfdvmaxlog}{\tikz@lib@dv@epsilon}%
\pgfkeysgetvalue{/tikz/data visualization/minor steps between steps}\tikz@lib@dv@substeps%
\ifx\tikz@lib@dv@substeps\pgfutil@empty
\else
\pgfmathsetmacro\tikz@temp{\tikz@lib@dv@substeps+1}%
\pgfdvmathenter{\tikz@dv@lib@substeps}{\tikz@temp}%
\fi
\loop%
\ifx\tikz@lib@dv@substeps\pgfutil@empty%
\else%
\let\tikz@lib@dv@subcurrent=\tikz@lib@dv@current%
\pgfdvmathadd{\tikz@lib@dv@subcurrent@next}{\tikz@lib@dv@subcurrent}{\tikz@dv@lib@step}%
\pgfdvmathpowten{\tikz@lib@dv@subcurrent}{\tikz@lib@dv@subcurrent}%
\pgfdvmathpowten{\tikz@lib@dv@subcurrent@max}{\tikz@lib@dv@subcurrent@next}%
\pgfdvmathsub{\tikz@lib@dv@subcurrent@diff}{\tikz@lib@dv@subcurrent@max}{\tikz@lib@dv@subcurrent}%
\pgfdvmathdiv{\tikz@lib@dv@substep}{\tikz@lib@dv@subcurrent@diff}{\tikz@dv@lib@substeps}%
\pgfmathsetcount{\c@pgf@counta}{\tikz@lib@dv@substeps}%
\let\tikz@lib@dv@next=\tikz@lib@dv@subloop%
\tikz@lib@dv@subloop
\fi%
\pgfdvmathifless{\tikz@lib@dv@current}{\tikz@lib@dv@min@minus@epsilon}{}{%
\pgfdvmathpowten{\tikz@lib@dv@current@pow}{\tikz@lib@dv@current}%
\pgfdvmathexitbyserializing{\tikz@temp}{\tikz@lib@dv@current@pow}%
\edef\tikz@lib@dv@ats{\tikz@lib@dv@ats,\tikz@temp}%
}
\pgfdvmathadd{\tikz@lib@dv@current}{\tikz@lib@dv@current}{\tikz@dv@lib@step}%
\pgfdvmathifless{\tikz@lib@dv@current}{\tikz@lib@dv@max@plus@epsilon}{\tikz@lib@dv@continuetrue}{\tikz@lib@dv@continuefalse}%
\iftikz@lib@dv@continue%
\repeat%
\tikzdatavisualizationset{major/.expanded={at={\tikz@lib@dv@ats}},minor/.expanded={at={\tikz@lib@dv@minor@ats}}}%
\fi%
}%
\def\tikz@lib@dv@about@log#1{%
\tikz@lib@dv@mapper.get in range interval()%
\pgfdvinrangeinterval.get min and max()%
\pgfdvmathlog{\pgfdvmin}{\pgfdvmin}%
\pgfdvmathlog{\pgfdvmax}{\pgfdvmax}%
\pgfdvmathsub{\tikz@lib@dv@diff}{\pgfdvmax}{\pgfdvmin}
\pgfdvmathenter{\tikz@lib@dv@about@val}{#1}%
\pgfdvmathdiv{\tikz@lib@dv@around}{\tikz@lib@dv@diff}{\tikz@lib@dv@about@val}%
\pgfmathfloattomacro{\tikz@lib@dv@around}{\tikz@lib@dv@flags}{\tikz@lib@dv@mant}{\tikz@lib@dv@exp}
\ifdim\tikz@lib@dv@exp pt<0pt%
\pgfmathfloatcreate{1}{1.0}{0}%
\else
\pgf@xc=\tikz@lib@dv@mant pt\relax%
\ifdim\pgf@xc<2.5pt
\pgfmathfloatcreate{1}{1.0}{\tikz@lib@dv@exp}
\else\ifdim\pgf@xc<5.1pt
\pgfmathfloatcreate{1}{3.0}{\tikz@lib@dv@exp}
\else
\pgfmathfloatcreate{1}{6.0}{\tikz@lib@dv@exp}
\fi\fi
\fi%
\pgfmathfloattofixed{\pgfmathresult}
\let\tikz@lib@dv@step=\pgfmathresult
}%
\tikzdatavisualizationset{%
new Cartesian axis/.style={
new axis base={#1},
new object={
class=linear transformer,
store=/tikz/data visualization/#1/linear transformer,
arg1/.expanded=\pgfkeysvalueof{/tikz/data visualization/#1/attribute}/scaled,
arg2 from key=/tikz/data visualization/#1/unit vector,
},
#1/scaling/default/.initial=0 at 0 and 1 at 1cm,
#1/unit vector/.initial=\pgfqpoint{1pt}{0pt},
}
}%
\tikzset{
/tikz/data visualization/axis options/.cd,
unit vector/.code=\tikz@scan@one@point\tikz@lib@dv@uv#1,
length/.style={\tikz@dv@axis/scaling=min at 0 and max at {#1}},
unit length/.code={\tikz@dv@parse@unit@length{#1}},
power unit length/.style={\tikz@dv@axis/scaling=1 at 0 and 10 at {#1}}
}%
\def\tikz@lib@dv@uv#1{%
\pgfkeyssetvalue{\tikz@dv@axis/unit vector}{#1}
}%
\def\tikz@dv@parse@unit@length#1{
\pgfutil@in@{per}{#1}
\ifpgfutil@in@%
\tikz@dv@parse@unit@length@#1\pgf@stop%
\else%
\tikz@dv@parse@unit@length@#1per1units\pgf@stop%
\fi%
}%
\def\tikz@dv@parse@unit@length@#1per#2units\pgf@stop{
\pgfkeysalso{\tikz@dv@axis/scaling=0 at 0 and {#2} at {#1}}
}%
\tikzdatavisualizationset{
new visualizer/.style n args={3}{
#1/.code={
\def\tikz@visualizer{#1}%
\pgfkeys{/tikz/data visualization/visualizer options/.cd,##1}
\pgf@dv@do@adddata{\pgfkeysvalueof{/pgf/data visualization/obj}.add data(\pgfkeys{/data point/set={#1}})}%
},
/utils/exec={
\advance\tikzdvvisualizercounter by 1\relax
\edef\tikz@temp{/data point/set/#1/.initial=\the\tikzdvvisualizercounter}
\expandafter\tikzset\expandafter{\tikz@temp}
},
/data point/#1/execute at begin/.initial={
\pgfkeyssetvalue{/data point/set}{#1}
\scope[
#2,
/tikz/data visualization/every visualizer/.try,
/tikz/data visualization/visualizers/#1/signal,
/tikz/data visualization/visualizers/#1/styling/.try]
},
/data point/#1/execute at end/.initial={
\path; %
\endscope
},
/tikz/data visualization/visualizers/#1/signal/.code=\pgf@signalstyle.emit(),
/tikz/data visualization/visualizers/#1/styling/.style=,
/tikz/data visualization/visualizers/#1/label in legend options/.style={#3},
},
style sheet/.style={/data point/set/.style sheet={#1}},
/pgf/data/set/.style={/data point/set={#1}},
}%
\tikzdatavisualizationset{
new sub visualizer/.style n args={4}{
#4/#1/.code={
\def\tikz@visualizer{#4/#1}%
\pgfkeys{/tikz/data visualization/visualizer options/.cd,##1}
},
/data point/#4/#1/execute at begin/.initial={
\pgfkeyssetvalue{/data point/set}{#4}
\scope[
#2,
/tikz/data visualization/every visualizer/.try,
/tikz/data visualization/visualizers/#4/signal,
/tikz/data visualization/visualizers/#4/styling/.try,
/tikz/data visualization/visualizers/#4/#1/styling/.try]
},
/data point/#4/#1/execute at end/.initial={
\path; %
\endscope
},
/tikz/data visualization/visualizers/#4/#1/styling/.style=,
/tikz/data visualization/visualizers/#4/#1/label in legend options/.style={#3},
}
}%
\def\tikz@do@visualizer#1#2{%
\tikzdatavisualizationset{
#2={#1}
}
}%
\newcount\tikzdvvisualizercounter
\newif\iftikz@dv@visualizer@label@inline
\tikzdatavisualizationset{visualizer options/.cd,
@set/.style 2 args={
/tikz/data visualization/visualizers/\tikz@visualizer/styling/.append style={/utils/exec={\let\tikz@dv@plot@handler=#1}},
/tikz/data visualization/visualizers/\tikz@visualizer/label in legend options/.append style={#2}
},
no lines/.style={@set={\pgfplothandlerdiscard}{default label in legend mark}},
smooth line/.style={@set={\pgfplothandlercurveto}{default label in legend path}},
smooth cycle/.style={@set={\pgfplothandlerclosedcurve}{default label in legend closed path}},
straight line/.style={@set={\pgfplothandlerlineto}{default label in legend path}},
straight cycle/.style={@set={\pgfplothandlerpolygon}{default label in legend closed path}},
polygon/.style={straight cycle},%
gap line/.style={@set={\pgfplothandlergaplineto}{default label in legend path}},
gap cycle/.style={@set={\pgfplothandlergapcycle}{gap circular label in legend line}}
}%
\tikzdatavisualizationset{
new label visualizer/.style 2 args={
new object={
when=before visualization,
class=label visualizer,
before creation={
\begingroup
\def\tikz@visualizer{#1}%
\pgfkeys{/tikz/data visualization/visualizer label options/.cd,
#2}
\pgfkeysgetvalue{/tikz/data visualization/visualizer label options/text}\tikz@dv@temp@lab
\def\tikz@tempa{
\scope[
/utils/exec=\def\tikz@visualizer{#1},%
/tikz/data visualization/visualizer label options/.cd,
#2]
\tikzdatavisualizationset{every data set label/.try}
\path [
/data point/set={#1},/utils/exec=\pgf@signalstyle.emit(),
/tikz/data visualization/.cd,every label in data/.try]
(label visualizer coordinate') --
(label visualizer coordinate)
node [
auto,
at end,
/tikz/data visualization/node styling]
}
\expandafter\def\expandafter\tikz@tempb\expandafter{\expandafter{\tikz@dv@temp@lab};}%
\expandafter\expandafter\expandafter\gdef%
\expandafter\expandafter\expandafter\tikz@dv@label@code%
\expandafter\expandafter\expandafter{\expandafter\expandafter\expandafter\relax%
\expandafter\expandafter\expandafter{\expandafter\tikz@tempa\tikz@tempb\endscope}}
\global\let\tikz@dv@label@attribute=\tikz@dv@label@attribute
\global\let\tikz@dv@label@threshold=\tikz@dv@label@threshold
\endgroup
},
arg1/.expand once=\tikz@dv@label@attribute,
arg2=\tikz@dv@label@threshold,
arg3/.expand once=\tikz@dv@label@code,
arg4=\pgfdvvisualizerfilter{#1}
},
/utils/exec=\tikz@create@label@count{#1}
},
text colored/.style={node style={text=visualizer color}}
}%
\def\tikz@create@label@count#1{
\tikzdatavisualizationset{
new object={
when=before survey,
store=/tikz/data visualization/visualizers/#1/count/obj,
class=count,
arg1=set/#1/count,
after creation={\tikzdvobj.set filter(\pgfdvvisualizerfilter{#1})}
}
}
}%
\pgfkeys{
/tikz/data visualization/visualizer label options/.cd,
when/.code args={#1 is#2}{%
\def\tikz@dv@label@attribute{#1}%
\def\tikz@dv@label@threshold{#2}%
},
index/.code={%
\edef\tikz@dv@label@attribute{set/\tikz@visualizer/count}%
\def\tikz@dv@label@threshold{#1}%
},
pos/.code={%
\edef\tikz@dv@label@attribute{set/\tikz@visualizer/count}%
\pgfkeysvalueof{/tikz/data visualization/visualizers/\tikz@visualizer/count/obj}.get max(\tikz@lib@max)
\edef\tikz@dv@label@threshold{(#1*\tikz@lib@max)}%
},
auto/.code={%
\edef\tikz@dv@label@attribute{set/\tikz@visualizer/count}%
\pgfkeysvalueof{/tikz/data visualization/visualizers/\tikz@visualizer/count/obj}.get max(\tikz@lib@max)
\edef\tikz@dv@label@threshold{({(\pgfkeysvalueof{/data point/set/\tikz@visualizer}-0.5)/\the\tikzdvvisualizercounter*\tikz@lib@max})}
},
text/.initial=,
text'/.style={text={#1},node style=swap,/utils/exec=\def\tikz@lib@dv@pin@sign{-}},
node style/.style={/tikz/data visualization/node style={#1}},
text colored/.style=/tikz/data visualization/text colored,
pin angle/.store in=\tikz@lib@dv@pin@dir,
pin length/.style={node style={pin distance={#1}}},
}%
\let\tikz@lib@dv@pin@sign\pgfutil@empty
\let\tikz@dv@label@attribute\pgfutil@empty
\let\tikz@dv@label@threshold\pgfutil@empty
\let\tikz@dv@label@code\pgfutil@empty
\tikzdatavisualizationset{
new legend/.code={
\pgfkeysifdefined{/tikz/data visualization/#1/at}{}
{\tikzdatavisualizationset{
new object={
class=legend,
store=/tikz/data visualization/#1/obj,
arg1 from key=/tikz/data visualization/#1/@columns or rows,
arg2 from key=/tikz/data visualization/#1/@ideal,
arg3 from key=/tikz/data visualization/#1/max entries,
arg4 from key=/tikz/data visualization/#1/@strategy,
after creation={
\tikzdatavisualizationset{
legend actions/.append={
\pgfkeysgetvalue{/tikz/data visualization/#1/obj}\pgf@dv@legend%
{
\pgf@dv@legend.get arrangement(\pgf@dv@temp)%
\pgfkeysgetvalue{/tikz/data visualization/#1/at}\pgf@dv@at%
\pgfkeysgetvalue{/tikz/data visualization/#1/anchor}\pgf@dv@anchor%
\let\pgfdvnextcell=\pgfmatrixnextcell%
\let\pgfdvendrow=\pgfmatrixendrow%
\def\pgf@marshal{
\matrix[at/.expand once=\pgf@dv@at,matrix anchor/.expand
once=\pgf@dv@anchor,/tikz/data visualization/#1/matrix node styling]
}
\expandafter\pgf@marshal\expandafter{\pgf@dv@temp};
}
}
}
}
},
#1/@columns or rows/.initial=columns,
#1/@ideal/.initial=1,
#1/max entries/.initial=100,
#1/@strategy/.initial=down then right,
#1/anchor/.initial=west,
#1/at/.initial=(data visualization bounding box.east),
#1/matrix node styling/.style={row sep=0pt,column sep=.8em},
#1/.code={
\let\tikz@temp\tikz@dv@legend%
\def\tikz@dv@legend{/tikz/data visualization/#1}%
\expandafter\tikz@do@legend@options\expandafter{\tikz@temp}{##1}%
},
#1={every new legend}
}}},
new legend/.default=main legend,
legend/.style={
new legend,
main legend={#1}
}
}%
\def\tikz@do@legend@options#1#2{
\pgfkeys{/tikz/data visualization/legend options/.cd,#2}
\def\tikz@dv@legend{#1}
}%
\let\tikz@dv@legend\pgfutil@empty
\tikzset{
/tikz/data visualization/legend options/.cd,
ideal number of columns/.style={\tikz@dv@legend/@columns or rows=columns,\tikz@dv@legend/@ideal={#1}},
ideal number of rows/.style={\tikz@dv@legend/@columns or rows=rows,\tikz@dv@legend/@ideal={#1}},
columns/.style={ideal number of columns={#1}},%
rows/.style={ideal number of rows={#1}},%
max rows/.style={\tikz@dv@legend/@columns or rows=columns,\tikz@dv@legend/max entries={#1}},
max columns/.style={\tikz@dv@legend/@columns or rows=rows,\tikz@dv@legend/max entries={#1}},
down then right/.style={\tikz@dv@legend/@strategy=down then right},
down then left/.style={\tikz@dv@legend/@strategy=down then left},
up then right/.style={\tikz@dv@legend/@strategy=up then right},
up then left/.style={\tikz@dv@legend/@strategy=up then left},
right then down/.style={\tikz@dv@legend/@strategy=right then down},
left then down/.style={\tikz@dv@legend/@strategy=left then down},
right then up/.style={\tikz@dv@legend/@strategy=right then up},
left then up/.style={\tikz@dv@legend/@strategy=left then up},
anchor/.style={\tikz@dv@legend/anchor={#1}},
at/.style={\tikz@dv@legend/at={#1}},
right/.style={east outside},
left/.style={west outside},
above/.style={north outside},
below/.style={south outside},
east outside/.style={
columns=1,
at={([xshift=.8em]data visualization bounding box.east)},
anchor=west,
},
north east outside/.style={
columns=1,
at={([xshift=.8em]data visualization bounding box.north east|-
data bounding box.north)},
anchor=north west,
},
south east outside/.style={
columns=1,
at={([xshift=.8em]data visualization bounding box.south east |-
data bounding box.south)},
anchor=south west,
},
west outside/.style={
columns=1,
label style=text left,
at={([xshift=-.8em]data visualization bounding box.west)},
anchor=east,
},
north west outside/.style={
columns=1,
label style=text left,
at={([xshift=-.8em]data visualization bounding box.north west |-
data bounding box.north)},
anchor=north east,
},
south west outside/.style={
columns=1,
label style=text left,
at={([xshift=-.8em]data visualization bounding box.south west |-
data bounding box.south)},
anchor=south east,
},
south outside/.style={
rows=1,
at={([yshift=-.5em]data visualization bounding box.south)},
anchor=north,
},
north outside/.style={
rows=1,
at={([yshift=.5em]data visualization bounding box.north)},
anchor=south,
},
every new legend/.style={east outside,label style=text right},
every legend inside/.style={
opaque=white,
label style={node style={font=\pgfutil@font@footnotesize}}
},
opaque/.style={
matrix node style={
inner sep=.333ex,
outer sep=.5ex,
rounded corners=3pt,
execute at begin cell={\tikzset{sharp corners}}, %
fill=#1
},
},
opaque/.default=white,
transparent/.style={matrix node style={fill=none}},
north east inside/.style={
columns=1,
at={([xshift=-.3em]data bounding box.north east)},
anchor=north east,
every legend inside
},
south west inside/.style={
columns=1,
at={([xshift=.3em]data bounding box.south west)},
anchor=south west,
every legend inside
},
north west inside/.style={
columns=1,
at={([xshift=.3em]data bounding box.north west)},
anchor=north west,
every legend inside
},
south east inside/.style={
columns=1,
at={([xshift=-.3em]data bounding box.south east)},
anchor=south east,
every legend inside
},
west inside/.style={
columns=1,
at={([xshift=.3em]data bounding box.west)},
anchor=west,
every legend inside
},
east inside/.style={
columns=1,
at={([xshift=.3em]data bounding box.east)},
anchor=east,
every legend inside
},
north inside/.style={
rows=1,
at={(data bounding box.north)},
anchor=north,
every legend inside
},
south inside/.style={
rows=1,
at={(data bounding box.south)},
anchor=south,
every legend inside
},
at values/.style={
at={(visualization cs:#1)},
anchor=center,
every legend inside
},
right of/.style={
at={(visualization cs:#1)},
anchor=west,
every legend inside
},
left of/.style={
at={(visualization cs:#1)},
anchor=east,
every legend inside
},
above of/.style={
at={(visualization cs:#1)},
anchor=south,
every legend inside
},
below of/.style={
at={(visualization cs:#1)},
anchor=north,
every legend inside
},
above right of/.style={
at={(visualization cs:#1)},
anchor=south west,
every legend inside
},
above left of/.style={
at={(visualization cs:#1)},
anchor=south east,
every legend inside
},
below right of/.style={
at={(visualization cs:#1)},
anchor=north west,
every legend inside
},
below left of/.style={
at={(visualization cs:#1)},
anchor=north east,
every legend inside
},
label style/.style={
matrix node style={/tikz/data visualization/every label in legend/.append style={#1}}
},
matrix node style/.style={\tikz@dv@legend/matrix node styling/.append style={#1}},
}%
\tikzdatavisualizationset{
new legend entry/.code={
\begingroup
\pgfkeys{/tikz/data visualization/legend entry options/.cd,#1}
\pgfkeysgetvalue{/tikz/data visualization/legend entry options/legend}\tikz@dv@temp@legend
\global\let\tikz@dv@temp@legend\tikz@dv@temp@legend
\endgroup
\tikzdatavisualizationset{new legend/.expanded=\tikz@dv@temp@legend}%
\expandafter\tikz@dv@add@legend@entry\expandafter{\tikz@dv@temp@legend}{#1}
}
}%
\def\tikz@dv@add@legend@entry#1#2{
\tikz@main@dv.at start survey({
\pgfkeysgetvalue{/tikz/data visualization/#1/obj}\pgf@temp
\pgf@temp.add entry(\tikz@dv@render@legend@entry{legend=#1,#2})
})
}%
\def\tikz@dv@render@legend@entry#1{
\pgfkeys{/tikz/data visualization/.cd,every data set label}
\pgfkeys{/tikz/data visualization/legend entry options/.cd,
/tikz/data visualization/every label in legend,#1}%
\pgfkeysgetvalue{/tikz/data visualization/legend entry options/text}\tikz@dv@temp@lab
\pgfkeysgetvalue{/tikz/data visualization/@node styling}\tikz@dv@temp@style
\pgfkeysgetvalue{/tikz/data visualization/legend entry options/setup}\tikz@dv@temp@setup
\pgfkeysgetvalue{/tikz/data visualization/legend entry options/visualizer in legend styling}\tikz@dv@temp@visual@styling
\scope[/utils/exec=\expandafter\pgfkeysalso\expandafter{\tikz@dv@temp@setup},
/utils/exec=\pgf@signalstyle.emit()]
\node[/tikz/data visualization/node styling,
/utils/exec=\expandafter\pgfkeysalso\expandafter{\tikz@dv@temp@style}]
{\tikz@dv@pre@height\tikz@dv@temp@lab\tikz@dv@post@height};
\scope[/utils/exec=\expandafter\pgfkeysalso\expandafter{\tikz@dv@temp@visual@styling}]
\iftikz@lib@dv@text@only
\else
\pgfkeysvalueof{/tikz/data visualization/legend entry options/visualizer in legend}
\fi
\endscope
\endscope
}%
\def\tikz@dv@pre@height{\hbox{\vrule height .75em width0pt}}%
\def\tikz@dv@post@height{\hbox{\vrule depth .25em width0pt}}%
\pgfkeys{
/tikz/data visualization/legend entry options/.cd,
text/.initial=,
node style/.style={/tikz/data visualization/node style={#1}},
legend/.initial=main legend,
setup/.initial=,
visualizer in legend/.initial=,
visualizer in legend styling/.initial=,
visualizer in legend style/.style={visualizer in legend styling/.append={,#1}},
text right/.style={
node style={anchor=mid west,inner ysep=1pt,inner xsep=0pt,reset cm,xshift=.333em},
visualizer in legend style={reset cm},
},
text left/.style={
node style={anchor=mid east,inner ysep=1pt,inner xsep=0pt,reset
cm,xshift=-.333em,align=right},
visualizer in legend style={reset cm,xscale=-1},
},
text only/.style={
node style={anchor=mid west,inner ysep=1pt,inner xsep=0pt,reset cm,text=visualizer color},
/utils/exec=\tikz@lib@dv@text@onlytrue
},
text colored/.style=/tikz/data visualization/text colored,
}%
\let\tikz@lib@dv@pin@dir\pgfutil@empty
\newif\iftikz@lib@dv@text@only
\pgfkeys{
/tikz/data visualization/visualizer options/.cd,
label in legend/.code={\expandafter\tikz@dv@new@label@in@legend@for@visualizer\expandafter{\tikz@visualizer}{#1}},
label in data/.code=\tikzdatavisualizationset{new label visualizer/.expand once=\expandafter{\tikz@visualizer}{auto,#1}},
pin in data/.style={label in data={%
node style={%
/utils/exec={
\ifx\tikz@lib@dv@pin@dir\pgfutil@empty
\pgf@process{\pgfpointnormalised{%
\pgfpointdiff%
{\pgfpointanchor{label visualizer coordinate}{center}}%
{\pgfpointanchor{label visualizer coordinate'}{center}}}}%
\pgf@x=-\pgf@x\relax%
\edef\tikz@lib@dv@temp@rot{\noexpand\pgfqpoint{\the\pgf@y}{\the\pgf@x}}%
\tikz@addtransform{\pgftransformshift{\pgfpointscale{\tikz@lib@dv@pin@sign\tikz@pin@distance}{\tikz@lib@dv@temp@rot}}}
\else%
\tikz@addtransform{\pgftransformshift{\pgfpointpolar{\tikz@lib@dv@pin@dir}{\tikz@lib@dv@pin@sign\tikz@pin@distance}}}
\fi%
},
append after command={
\bgroup
[current point is local=true]
(\tikzlastnode) edge [solid, every pin edge] (label visualizer coordinate)
\egroup%
}},
,#1}},
style/.style={/tikz/data visualization/visualizers/\tikz@visualizer/styling/.append style={,#1}},
label in legend options/.style={/tikz/data visualization/visualizers/\tikz@visualizer/label in legend options/.append style={,#1}},
ignore style sheets/.style={/tikz/data visualization/visualizers/\tikz@visualizer/signal/.code=,/utils/exec=\advance\tikzdvvisualizercounter by -1\relax},
}%
\def\tikz@dv@new@label@in@legend@for@visualizer#1#2{
\tikzdatavisualizationset{
new legend entry={
visualizer in legend style={/tikz/data visualization/visualizers/#1/styling/.try},
/tikz/data visualization/every label in legend/.try,
/tikz/.cd,
every label/.try,
/tikz/data visualization/legend entry options/.cd,
setup={/data point/set={#1}},
/tikz/data visualization/visualizers/#1/label in legend options/.try,
#2,
}
}
}%
\def\tikz@dv@legend@entry@as@example{
\pgfkeysgetvalue{/data point/set}{\tikz@visualizer}
\pgfkeysvalueof{/data point/\tikz@visualizer/execute at begin}
\tikz@dv@plot@handler
\pgfplotstreamstart
\pgfkeysgetvalue{/tikz/data visualization/legend entry options/label in legend line coordinates}{\tikz@dv@temp}
\foreach \coordinate in \tikz@dv@temp
{ \pgfplotstreampoint{\expandafter\tikz@scan@one@point\expandafter\pgfutil@firstofone\coordinate} }
\pgfplotstreamend
\pgfkeysvalueof{/data point/\tikz@visualizer/execute at end}
\pgfkeysvalueof{/data point/\tikz@visualizer/execute at begin}
\tikz@dv@plot@mark@maker
\pgfplotstreamstart
\pgfkeysgetvalue{/tikz/data visualization/legend entry options/label in legend mark coordinates}{\tikz@dv@temp}
\foreach \coordinate in \tikz@dv@temp
{ \pgfplotstreampoint{\expandafter\tikz@scan@one@point\expandafter\pgfutil@firstofone\coordinate} }
\pgfplotstreamend
\pgfkeysvalueof{/data point/\tikz@visualizer/execute at end}
}%
\tikzdatavisualizationset{
legend entry options/.cd,
label in legend line coordinates/.initial=,
label in legend rectangle coordinates/.initial={(-1ex,-.5ex),(-1ex,0.968ex),(0ex,0.968ex),(0ex,-.5ex)},
label in legend mark coordinates/.initial=,
label in legend one mark/.style={
label in legend line coordinates={},
label in legend mark coordinates={(0,0)},
},
label in legend three marks/.style={
label in legend line coordinates={},
label in legend mark coordinates={(-3ex,-.3ex),(-1.5ex,.3ex),(0,0)},
},
straight label in legend line/.style={
label in legend line coordinates={(-2em,0),(-1.5em,0),(-.5em,0),(0,0)},
label in legend mark coordinates={(-1.5em,0),(-.5em,0)},
},
zig zag label in legend line/.style={
label in legend line coordinates={(-2em,0),(-1.5em,.3ex),(-.5em,-.3ex),(0,0)},
label in legend mark coordinates={(-1.5em,.3ex),(-.5em,-.3ex)},
},
circular label in legend line/.style={
label in legend line coordinates={%
([xshift=-1em]0:.9em and .35ex),%
([xshift=-1em]45:.9em and .35ex),%
([xshift=-1em]90:.9em and .35ex),%
([xshift=-1em]135:.9em and .35ex),%
([xshift=-1em]180:.9em and .35ex),%
([xshift=-1em]225:.9em and .35ex),%
([xshift=-1em]270:.9em and .35ex),%
([xshift=-1em]315:.9em and .35ex)},%
label in legend mark coordinates={([xshift=-1em]120:.9em and .35ex),([xshift=-1em]-60:.9em and .35ex)},
},
gap circular label in legend line/.style={
label in legend line coordinates={%
([xshift=-1em,yshift=.2ex]90:1.4ex and 0.9ex),%
([xshift=-1em,yshift=.2ex]162:1.4ex and 0.9ex),%
([xshift=-1em,yshift=.2ex]234:1.4ex and 0.9ex),%
([xshift=-1em,yshift=.2ex]306:1.4ex and 0.9ex),%
([xshift=-1em,yshift=.2ex]18:1.4ex and 0.9ex)},
label in legend mark coordinates={
([xshift=-1em,yshift=.2ex]90:1.4ex and 0.9ex),%
([xshift=-1em,yshift=.2ex]162:1.4ex and 0.9ex),%
([xshift=-1em,yshift=.2ex]234:1.4ex and 0.9ex),%
([xshift=-1em,yshift=.2ex]306:1.4ex and 0.9ex),%
([xshift=-1em,yshift=.2ex]18:1.4ex and 0.9ex)}
},
default label in legend path/.style={zig zag label in legend line},
default label in legend closed path/.style={circular label in legend line},
default label in legend mark/.style={label in legend one mark},
}%
\def\tikz@dv@legend@entry@visualizer@visualizer{
}%
\tikzdatavisualizationset{
visualize as line/.style={
new object={
when=after survey,
store=/tikz/data visualization/visualizers/#1,
class=plot handler visualizer,
arg1=#1,
arg2={\tikz@dv@plot@handler,\tikz@dv@plot@mark@maker}
},
new visualizer={#1}{%
every path/.style={draw},
style={every mark/.append style={color=visualizer color}},
mark size=2pt,
semithick,
color=visualizer color,
mark=none,
/tikz/data visualization/every visualize as line/.try,
}{visualizer in legend=\tikz@dv@legend@entry@as@example},
#1={straight line}
},
visualize as line/.default=line,
visualize as smooth line/.style={
visualize as line={#1},
#1={smooth line}
},
visualize as smooth line/.default=line,
visualize as smooth cycle/.style={
visualize as smooth line={#1},
#1={smooth cycle}
},
visualize as smooth cycle/.default=line,
visualize as scatter/.style={
new object={
when=after survey,
store=/tikz/data visualization/visualizers/#1,
class=plot handler visualizer,
arg1=#1,
arg2={\tikz@dv@plot@mark@maker}
},
new visualizer={#1}{%
mark=x,
mark size=2pt,
style={every mark/.append style={color=visualizer color}},
/tikz/data visualization/every visualize as scatter/.try,
}{visualizer in legend=\tikz@dv@legend@entry@as@example},
#1={no lines}
},
visualize as scatter/.default=scatter
}%
\def\tikz@dv@plot@mark@maker{
\let\tikz@options=\pgfutil@empty%
\let\tikz@transform=\pgfutil@empty%
\tikzset{solid,shift only,every mark}%
\tikz@options%
\ifx\tikz@plot@mark\pgfutil@empty%
\pgfplothandlerdiscard
\else
\pgfplothandlermark{\tikz@transform\pgfuseplotmark{\tikz@plot@mark}}
\fi
}%
\tikzdatavisualizationset{
visualize as rectangles/.style={
new object={
when=before survey,
store=/tikz/data visualization/visualizers/#1,
class=rectangle visualizer,
arg1=#1
},
/data point/#1/attribute 1/.initial=x,
/data point/#1/attribute 2/.initial=y,
new visualizer={#1}{%
every path/.style={draw},
semithick,
color=visualizer color,
/tikz/data visualization/every visualize as rectangles/.try,
}{visualizer in legend=\tikz@dv@legend@entry@as@rectangle},
#1={}
},
visualize as rectangles/.default=rectangles,
visualizer options/.cd,
attribute 1/.style={/data point/\tikz@visualizer/attribute 1={#1}},
attribute 2/.style={/data point/\tikz@visualizer/attribute 2={#1}},
}%
\def\tikz@dv@legend@entry@as@rectangle{
\pgfkeysgetvalue{/data point/set}{\tikz@visualizer}
\pgfkeysvalueof{/data point/\tikz@visualizer/execute at begin}
\pgfplothandlerpolygon
\pgfplotstreamstart
\pgfkeysgetvalue{/tikz/data visualization/legend entry options/label in legend rectangle coordinates}{\tikz@dv@temp}
\foreach \coordinate in \tikz@dv@temp
{ \pgfplotstreampoint{\expandafter\tikz@scan@one@point\expandafter\pgfutil@firstofone\coordinate} }
\pgfplotstreamend
\pgfkeysvalueof{/data point/\tikz@visualizer/execute at end}
}%
\pgfkeysdef{/handlers/.style sheet}{%
\edef\pgf@marshal{
\noexpand \pgfoonew \noexpand\tikz@dv@temp=new style attribute(\pgfkeyscurrentpath,#1)
\noexpand \tikz@dv@temp.default connects()
}
\pgf@marshal
}%
\tikzset{
visualizer color/.code=\colorlet{visualizer color}{#1},
visualizer color=black
}%
\pgfdvdeclarestylesheet{vary thickness}
{
default style/.style={line width={0.3pt+(#1)*0.2pt}}
}%
\pgfdvdeclarestylesheet{vary dashing}
{
default style/.style=solid,
1/.style=solid,
2/.style={dash pattern=on 5\pgflinewidth off 2\pgflinewidth},
3/.style={dash pattern=on 1.5\pgflinewidth off 1.5\pgflinewidth},
4/.style={dash pattern=on 5\pgflinewidth off 1.5\pgflinewidth on 1.5\pgflinewidth off 1.5\pgflinewidth},
5/.style={dash pattern=on 10\pgflinewidth off 3\pgflinewidth},
6/.style={dash pattern=on 10\pgflinewidth off 2\pgflinewidth on 2\pgflinewidth off 2\pgflinewidth},
7/.style={dash pattern=on 8\pgflinewidth off 2\pgflinewidth on
1.5\pgflinewidth off 1.5\pgflinewidth on 1.5\pgflinewidth off
1.5\pgflinewidth on 1.5\pgflinewidth off 1.5\pgflinewidth}
}%
\pgfdvdeclarestylesheet{vary thickness and dashing}
{
default style/.style=thin,
1/.style=thin,
2/.style=thick,
3/.style={
dash pattern=on 5\pgflinewidth off 2\pgflinewidth,
thin
},
4/.style={
dash pattern=on 5\pgflinewidth off 2\pgflinewidth,
thick,
},
5/.style={
dash pattern=on 1.5\pgflinewidth off 1.5\pgflinewidth,
thin
},
6/.style={
dash pattern=on 1.5\pgflinewidth off 1.5\pgflinewidth,
thick
},
7/.style={
dash pattern=on 5\pgflinewidth off 1.5\pgflinewidth on
1.5\pgflinewidth off 1.5\pgflinewidth,
thin
},
8/.style={
dash pattern=on 5\pgflinewidth off 1.5\pgflinewidth on
1.5\pgflinewidth off 1.5\pgflinewidth,
thick
},
9/.style={
dash pattern=on 10\pgflinewidth off 3\pgflinewidth,
thin
},
10/.style={
dash pattern=on 10\pgflinewidth off 3\pgflinewidth,
thick
},
11/.style={
dash pattern=on 10\pgflinewidth off 2\pgflinewidth on
2\pgflinewidth off 2\pgflinewidth,
thin
},
12/.style={
dash pattern=on 10\pgflinewidth off 2\pgflinewidth on
2\pgflinewidth off 2\pgflinewidth,
thick
},
13/.style={
dash pattern=on 8\pgflinewidth off 2\pgflinewidth on
1.5\pgflinewidth off 1.5\pgflinewidth on 1.5\pgflinewidth off
1.5\pgflinewidth on 1.5\pgflinewidth off 1.5\pgflinewidth,
thin
},
14/.style={
dash pattern=on 8\pgflinewidth off 2\pgflinewidth on
1.5\pgflinewidth off 1.5\pgflinewidth on 1.5\pgflinewidth off
1.5\pgflinewidth on 1.5\pgflinewidth off 1.5\pgflinewidth,
thick
}
}%
\pgfdvdeclarestylesheet{strong colors}
{
default style/.style={visualizer color=black},
1/.style={visualizer color=black},
2/.style={visualizer color=red!80!black},
3/.style={visualizer color=blue!80!black},
4/.style={visualizer color=green!60!black},
5/.style={visualizer color=orange!80!black},
6/.style={visualizer color=black!60}
}%
\pgfdvdeclarestylesheet{cross marks}
{
default style/.style={mark=x,every mark/.append style=thin,mark size=2pt},
1/.style={mark=x,every mark/.append style=thin,mark size=2pt},
2/.style={mark=+,every mark/.append style=thin,mark size=2pt},
3/.style={mark=Mercedes star,every mark/.append style=thin,mark size=2pt},
4/.style={mark=Mercedes star flipped,every mark/.append style=thin,mark size=2pt},
5/.style={mark=star,every mark/.append style=thin,mark size=2pt},
6/.style={mark=10-pointed star,every mark/.append style={line width=.3pt,mark size=1.8pt}}
}%
\pgfdvdeclarestylesheet{* mark}
{
default style/.style={mark=*,every mark/.append style=thin,mark size=1.4pt},
}%
\pgfdvdeclarestylesheet{dot mark}
{
default style/.style={mark=*,every mark/.append style=thin,mark size=0.6pt},
}%
\pgfdvdeclarestylesheet{o mark}
{
default style/.style={mark=o,every mark/.append style=thin,mark size=1.4pt},
}%
\def\tikzdvdeclarestylesheetcolorseries#1#2#3#4{%
\definecolorseries{tikzdvcolorseries#1}{#2}{step}[#2]{#3}{#4}%
\resetcolorseries{tikzdvcolorseries#1}%
\pgfdvdeclarestylesheet{#1}
{
default style/.style={
/utils/exec=\colorlet{tikz@dv@temp}[rgb]{tikzdvcolorseries#1!![##1]},
visualizer color=tikz@dv@temp
}
}%
}%
\tikzdvdeclarestylesheetcolorseries{vary hue}{hsb}{.4,0.9,0.8}{.213,0,0}%
\tikzdvdeclarestylesheetcolorseries{shades of blue}{hsb}{.65,1.4,1}{0,-.4,-.0}%
\tikzdvdeclarestylesheetcolorseries{shades of red}{hsb}{0,1.4,1}{0,-.4,-.0}%
\tikzdvdeclarestylesheetcolorseries{gray scale}{hsb}{0,0,-.34}{0,0,.34}%
\tikzdatavisualizationset{
xy Cartesian/.style={
new Cartesian axis=x axis,
x axis={attribute=x,unit vector={(1pt,0cm)}},
new Cartesian axis=y axis,
y axis={attribute=y,unit vector={(0cm,1pt)}}
},
Xy axes/.style={x axis={#1},y axis={#1}},
uv Cartesian/.style={
new Cartesian axis=u axis,
u axis={attribute=u,unit vector={(1pt,0cm)}},
new Cartesian axis=v axis,
v axis={attribute=v,unit vector={(0cm,1pt)}}
},
uv axes/.style={u axis={#1},v axis={#1}},
}%
\tikzdatavisualizationset{
xyz Cartesian cabinet/.style={
xy Cartesian,
new Cartesian axis=z axis,
z axis={attribute=z,unit vector={(-0.353553pt,-0.353553pt)}}
},
xyz axes/.style={x axis={#1},y axis={#1},z axis={#1}},
uvw Cartesian cabinet/.style={
uv Cartesian,
new Cartesian axis=w axis,
w axis={attribute=w,unit vector={(-0.353553pt,-0.353553pt)}}
}
uvw axes/.style={u axis={#1},v axis={#1},w axis={#1}},
}%
\tikzdatavisualizationset{
new axis system/.style n args={4}{
#1/.style={
#2,
#1/.cd,
#3,
/tikz/data visualization/every #1/.try,
##1,
/tikz/data visualization/.cd,
#4,
}
}
}%
\tikzdatavisualizationset{
new axis system={school book axes}{%
xy Cartesian,
x axis={
include value=0,
scaling=0 at 0 and \pgfkeysvalueof{/tikz/data visualization/school book axes/unit} at 1cm,
visualize axis={y axis={goto=0},style=->,padded},
visualize ticks={common={y axis={goto=0},direction axis=y axis},
major={tick text at low,
options at=0 as [{style={draw=none},no tick text}]
}},
visualize grid={common={direction axis=y axis,padded}},
ticks={step=\pgfkeysvalueof{/tikz/data visualization/school book axes/unit}},
padding=0.75em
},
y axis={
include value=0,
scaling=0 at 0 and \pgfkeysvalueof{/tikz/data visualization/school book axes/unit} at 1cm,
visualize axis={x axis={goto=0},style=->,padded},
visualize ticks={
common={x axis={goto=0},direction axis=x axis},
major={tick text at low,options at=0 as [{high=0,low=0,style={draw=none},node style={anchor=north east}}]}
},
visualize grid={common={direction axis=x axis,padded}},
ticks={step=\pgfkeysvalueof{/tikz/data visualization/school book axes/unit}},
padding=0.75em
}
}{%
standard labels
}{%
@make labels
},
school book axes/.cd,
standard labels/.style={
/tikz/data visualization/@make labels/.style={
x axis={
visualize label={
x axis={goto=padded max, anchor at max},
y axis={goto=0}
}
},
y axis={
visualize label={
y axis={goto=padded max, anchor at max},
x axis={goto=0}
}
}
}
},
unit/.initial=1,
}%
\tikzdatavisualizationset{
new axis system={scientific axes}{%
xy Cartesian,
every axis/.append style={style={draw=black!50}},
every ticks/.append style={style={draw=black!50}},
x axis={
length=\pgfkeysvalueof{/tikz/data visualization/scientific axes/width},
ticks
},
y axis={
length=\pgfkeysvalueof{/tikz/data visualization/scientific axes/height},
ticks
}
}{%
standard labels,
outer ticks,
}{%
@make axes,
@make labels
},
scientific axes/.cd,
width/.initial=5cm,
height/.initial=0.618*\pgfkeysvalueof{/tikz/data visualization/scientific axes/width},%
outer ticks/.style={
/tikz/data visualization/@make axes/.style={
x axis={
visualize ticks={common={y axis={goto=padded min},direction axis=y axis,high=0pt},major={tick text at low}},
visualize ticks={common={y axis={goto=padded max},direction axis=y axis,low=0pt}},
visualize axis={y axis={goto=padded min},padded},
visualize axis={y axis={goto=padded max},padded},
visualize grid={common={direction axis=y axis,padded}},
},
y axis={
visualize ticks={common={x axis={goto=padded min},direction axis=x axis,high=0pt},major={tick text at low}},
visualize ticks={common={x axis={goto=padded max},direction axis=x axis,low=0pt}},
visualize axis={x axis={goto=padded min},padded},
visualize axis={x axis={goto=padded max},padded},
visualize grid={common={direction axis=x axis,padded}},
}
}
},
inner ticks/.style={
/tikz/data visualization/@make axes/.style={
x axis={
visualize ticks={common={y axis={goto=padded min},direction axis=y axis,low=0pt},major={tick text at low}},
visualize ticks={common={y axis={goto=padded max},direction axis=y axis,high=0pt}},
visualize axis={y axis={goto=padded min},padded},
visualize axis={y axis={goto=padded max},padded},
visualize grid={common={direction axis=y axis,padded}},
},
y axis={
visualize ticks={common={x axis={goto=padded min},direction axis=x axis,low=0pt},major={tick text at low}},
visualize ticks={common={x axis={goto=padded max},direction axis=x axis,high=0pt}},
visualize axis={x axis={goto=padded min},padded},
visualize axis={x axis={goto=padded max},padded},
visualize grid={common={direction axis=x axis,padded}},
}
}
},
clean/.style={
/tikz/data visualization/@make axes/.style={
x axis={
visualize ticks={common={y axis={goto=padded min},direction axis=y axis,high=0pt},major={tick text at low}},
visualize axis={y axis={goto=padded min}},
visualize axis={y axis={goto=min}, style={black!25, line cap=rect}},
visualize axis={y axis={goto=max}, style={black!25, line cap=rect}},
visualize grid={common={direction axis=y axis}},
padding=.5em,
},
y axis={
visualize ticks={common={x axis={goto=padded min},direction axis=x axis,high=0pt},major={tick text at low}},
visualize axis={x axis={goto=padded min}},
visualize axis={x axis={goto=min}, style={black!25, line cap=rect}},
visualize axis={x axis={goto=max}, style={black!25, line cap=rect}},
visualize grid={common={direction axis=x axis}},
padding=.5em
},
}
},
standard labels/.style={
/tikz/data visualization/@make labels/.style={
x axis={
visualize label={
x axis={goto pos=.5},
node style={
at={(0,0 |- data visualization bounding box.south)},
below
}
}
},
y axis={
visualize label={
y axis={goto pos=.5},
node style={
at={(0,0 -| data visualization bounding box.west)},
rotate=90,
above}
}
}
}
},
upright labels/.style={
/tikz/data visualization/@make labels/.style={
x axis={
visualize label={
x axis={goto pos=.5},
node style={
at={(0,0 |- data visualization bounding box.south)},
below
}
}
},
y axis={
visualize label={
y axis={goto pos=.5},
node style={
at={(0,0 -| data visualization bounding box.west)},
left
}
}
}
}
},
end labels/.style={
/tikz/data visualization/@make labels/.style={
x axis={
visualize label={
y axis={goto=padded min},
node style={
at={(0,0 -| data visualization bounding box.east)},
right
}
}
},
y axis={
visualize label={
x axis={goto=padded min},
node style={
at={(0,0 |- data visualization bounding box.north)},
above
}
}
}
}
}
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.formats.functions.code.tex ====
\ProvidesFileRCS{tikzlibrarydatavisualization.formats.functions.code.tex}
\usetikzlibrary{datavisualization}%
\usepgflibrary{datavisualization.formats.functions}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.formats.functions.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.polar.code.tex ====
\ProvidesFileRCS{tikzlibrarydatavisualization.polar.code.tex}
\usetikzlibrary{datavisualization}%
\usepgflibrary{datavisualization.polar}%
\tikzdatavisualizationset{%
new polar axes/.style 2 args={
new axis base=#1,
#1={attribute=angle},
new axis base=#2,
#2={attribute=radius},
#2/scaling/default=0 at 0 and 1 at 1cm,
new object={
store=/tikz/data visualization/#1/polar transformer,
class=polar transformer,
arg1/.expanded=\pgfkeysvalueof{/tikz/data visualization/angle axis/attribute}/scaled,
arg2/.expanded=\pgfkeysvalueof{/tikz/data visualization/radius axis/attribute}/scaled,
arg3 from key=/tikz/data visualization/#1/unit vector 0 degrees,
arg4 from key=/tikz/data visualization/#1/unit vector 90 degrees
},
/tikz/data visualization/#1/unit vector 0 degrees/.initial=\pgfqpoint{1pt}{0pt},
/tikz/data visualization/#1/unit vector 90 degrees/.initial=\pgfqpoint{0pt}{1pt},
},
new polar axes/.default={angle axis}{radius axis}
}%
\def\tikz@lib@dv@polar@a#1{
\pgfkeyssetvalue{\tikz@dv@axis/unit vector 0 degrees}{#1}
}%
\def\tikz@lib@dv@polar@b#1{
\pgfkeyssetvalue{\tikz@dv@axis/unit vector 90 degrees}{#1}
}%
\tikzset{
/tikz/data visualization/axis options/.cd,
unit vectors/.code 2 args={
\tikz@scan@one@point\tikz@lib@dv@polar@a#1
\tikz@scan@one@point\tikz@lib@dv@polar@b#2
},
degrees/.style={\tikz@dv@axis/scaling=0 at 0 and 1 at 1},
radians/.style={\tikz@dv@axis/scaling=0 at 0 and 0.03141592653589793 at 1.8},
}%
\tikzdatavisualizationset{
new axis system={scientific polar axes}{%
new polar axes,
angle axis={attribute=angle},
radius axis={attribute=radius},
every axis/.append style={style={draw=black!50}},
every ticks/.append style={style={draw=black!50}},
}{%
0 to 360,%
outer ticks,
}{%
@make axes,
scientific polar axes/@setup axes,
/utils/exec={
\edef\pgf@marshal{\noexpand\tikzdatavisualizationset{\pgfkeysvalueof{/tikz/data visualization/@which visualize radius axis}/.list={\pgfkeysvalueof{/tikz/data visualization/\pgfkeysvalueof{/tikz/data visualization/@which radius axes at}}}}}
\pgf@marshal
},
@make labels
},
@which radius axes at/.initial=@inner radius axes at,
@which visualize radius axis/.initial=@visualize radius axis,
@inner radius axes at/.initial=,
@clean radius axes at/.initial=,
@visualize radius axis/.style 2 args={
radius axis={
visualize axis={angle axis={goto=#1},high=padded max,low=0},
visualize ticks={
common={angle axis={goto=#1}, direction axis=angle axis},
major={tick text at #2,
options at=0 as [{style={draw=none},no tick text}]
}
}
}
},
@visualize clean radius axis/.style n args={5}{
radius axis={
visualize axis={angle
axis={goto=#1},high=max,low=0,style={black!25,line cap=rect}},
visualize axis={angle
axis={goto=#1},high=max,low=0,style={line cap=rect,#4}},
visualize ticks={
style={#4},
common={angle axis={goto=#1}, direction axis=angle axis, #3=0},
major={tick text at #2,#5}
}
}
},
@visualize zero/.style={@inner visualize zero={#1}},
@clean visualize zero/.style={},
@inner visualize zero/.style={
radius axis={
visualize ticks={
common={angle axis={goto=0}, direction axis=angle axis},
major={tick text at low,low=0,high=0,at=0 as
[{style={draw=none},node style={anchor=#1}}]
}
}
}
},
@degrees/.style={
angle axis={degrees, ticks={step=15, tick suffix=$^\circ$, major={
options at=360 as [{style={draw=none},no tick text}],
options at=-180 as [{style={draw=none},no tick text}]}}}
},
@rad/.style={
angle axis={radians, ticks={
step=(pi/12),
node style={
/pgf/number format/frac,
/pgf/number format/frac shift={1}
},
tick typesetter/.code={%
\pgfmathsetmacro{\tikz@lib@dv@pol}{round(####1*3.819718634205488)/12}%
\pgfmathapproxequalto{\tikz@lib@dv@pol}{0}%
\ifdim\pgfmathresult pt=1.0pt%
$0$%
\else%
\pgfmathapproxequalto{\tikz@lib@dv@pol}{1}%
\ifdim\pgfmathresult pt=1.0pt%
$\pi$%
\else
\pgfmathapproxequalto{\tikz@lib@dv@pol}{-1}%
\ifdim\pgfmathresult pt=1.0pt%
$-\pi$%
\else%
\pgfmathprintnumber{\tikz@lib@dv@pol}$\pi$%
\fi%
\fi%
\fi%
},
major={
options at=6.2831985e0 as [{style={draw=none},no tick text}],
options at=6.2831192e0 as [{style={draw=none},no tick text}],
options at=6.2830794e0 as [{style={draw=none},no tick text}],
options at=6.2828787e0 as [{style={draw=none},no tick text}],
options at=6.2831598e0 as [{style={draw=none},no tick text}],
options at=-3.1415991e0 as [{style={draw=none},no tick text}],
options at=-3.1415802e0 as [{style={draw=none},no tick text}],
options at=-3.1415602e0 as [{style={draw=none},no tick text}],
options at=-3.14153961e0 as [{style={draw=none},no tick text}],
options at=-3.1414406e0 as [{style={draw=none},no tick text}],
}
}
}
},
@make labels/.style={},
}%
\tikzdatavisualizationset{
scientific polar axes/.cd,
outer ticks/.style={
/tikz/data visualization/@make axes/.style={
radius axis={
min value=0,
length=\pgfkeysvalueof{/tikz/data visualization/scientific polar axes/radius},
padding=0em,
ticks={few},
visualize grid={common={direction axis=angle axis,low=min,high=max}},
},
angle axis={
visualize axis={radius axis={goto=padded max},low=min,high=max},
visualize ticks={common={radius axis={goto=padded max},direction
axis=radius axis},common={low=0},major={tick text at high}},
visualize grid={common={direction axis=radius axis},low=0,high=padded max},
}
},
/tikz/data visualization/@which radius axes at=@inner radius axes at,
/tikz/data visualization/@which visualize radius axis=@visualize radius axis,
/tikz/data visualization/@visualize zero/.style={@inner visualize zero={##1}},
},
inner ticks/.style={
/tikz/data visualization/@make axes/.style={
radius axis={
min value=0,
length=\pgfkeysvalueof{/tikz/data visualization/scientific polar axes/radius},
padding=0em,
ticks={few},
visualize grid={common={direction axis=angle axis,low=min,high=max}},
},
angle axis={
visualize axis={radius axis={goto=padded max},low=min,high=max},
visualize ticks={common={radius axis={goto=padded max},direction
axis=radius axis},common={high=0},major={tick text at high}},
visualize grid={common={direction axis=radius axis},low=0,high=padded max},
}
},
/tikz/data visualization/@which radius axes at=@inner radius axes at,
/tikz/data visualization/@which visualize radius axis=@visualize radius axis,
/tikz/data visualization/@visualize zero/.style={@inner visualize zero={##1}},
},
clean/.style={
/tikz/data visualization/@make axes/.style={
radius axis={
min value=0,
length=\pgfkeysvalueof{/tikz/data visualization/scientific polar axes/radius},
padding=.5em,
ticks={few},
visualize grid={common={direction axis=angle axis,low=min,high=max}},
},
angle axis={
padding=.5em,
visualize axis={radius axis={goto=max}, style={black!25, line cap=rect},low=min,high=max},
visualize axis={radius axis={goto=padded max}, style={line cap=rect}, low=min,high=max},
visualize ticks={common={radius axis={goto=padded max}, direction axis=radius axis},common={low=0},major={tick text at high}},
visualize grid={common={direction axis=radius axis},low=0,high=max},
}
},
/tikz/data visualization/@which radius axes at=@clean radius axes at,
/tikz/data visualization/@which visualize radius axis=@visualize clean radius axis,
/tikz/data visualization/@visualize zero/.style={@clean visualize zero={##1}},
},
radius/.initial=3.25cm,
0 to pi half/.style={
@setup axes/.style={
angle axis={min value=0, max value=1.570796326794897},
@rad,
@visualize zero=north east,
@inner radius axes at={{0}{low},{1.570796326794897}{high}},
@clean radius axes at={%
{0}{low}{high}{yshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{1.570796326794897}{high}{low}{xshift=-\pgfkeysvalueof{/tikz/data visualization/angle axis/padding max}}{}
}
}
},
0 to 90/.style={
@setup axes/.style={
angle axis={min value=0, max value=90},
@degrees,
@visualize zero=north east,
@inner radius axes at={{0}{low},{90}{high}},
@clean radius axes at={%
{0}{low}{high}{yshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{90}{high}{low}{xshift=-\pgfkeysvalueof{/tikz/data visualization/angle axis/padding max}}{}
}
}
},
quadrant/.style={
@setup axes/.style={
angle axis={scaling=min at 0 and max at 90, ticks},
@visualize zero=north east,
@inner radius axes at={{min}{low},{max}{high}},
@clean radius axes at={%
{min}{low}{high}{yshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{max}{high}{low}{xshift=-\pgfkeysvalueof{/tikz/data visualization/angle axis/padding max}}{}
}
}
},
quadrant clockwise/.style={
@setup axes/.style={
angle axis={scaling=min at 90 and max at 0, ticks},
@visualize zero=north east,
@inner radius axes at={{min}{low},{max}{high}},
@clean radius axes at={%
{max}{high}{low}{yshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{min}{low}{high}{xshift=-\pgfkeysvalueof{/tikz/data visualization/angle axis/padding max}}{}
}
}
},
-pi half to 0/.style={
@setup axes/.style={
angle axis={min value=-1.570796326794897, max value=0},
@rad,
@visualize zero=south east,
@inner radius axes at={{-1.570796326794897}{low},{0}{high}},
@clean radius axes at={%
{-1.570796326794897}{low}{high}{xshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{0}{high}{low}{yshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding max}}{}
}
}
},
-90 to 0/.style={
@setup axes/.style={
angle axis={min value=-90, max value=0},
@degrees,
@visualize zero=south east,
@inner radius axes at={{-90}{low},{0}{high}},
@clean radius axes at={%
{-90}{low}{high}{xshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{0}{high}{low}{yshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding max}}{}
}
}
},
fourth quadrant/.style={
@setup axes/.style={
angle axis={scaling=min at -90 and max at 0, ticks},
@visualize zero=south east,
@inner radius axes at={{min}{low},{max}{high}},
@clean radius axes at={%
{min}{low}{high}{xshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{max}{high}{low}{yshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding max}}{}
}
}
},
fourth quadrant clockwise/.style={
@setup axes/.style={
angle axis={scaling=min at 0 and max at -90, ticks},
@visualize zero=south east,
@inner radius axes at={{min}{low},{max}{high}},
@clean radius axes at={%
{max}{high}{low}{xshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{min}{low}{high}{yshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding max}}{}
}
}
},
0 to pi/.style={
@setup axes/.style={
angle axis={min value=0, max value=3.141592653589793},
@rad,
@visualize zero=north,
@inner radius axes at={{0}{low},{1.570796326794897}{high},{3.141592653589793}{high}},
@clean radius axes at={%
{0}{low}{high}{yshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{3.141592653589793}{high}{low}{yshift=-\pgfkeysvalueof{/tikz/data
visualization/angle axis/padding max}}{options at=0 as
[{style={draw=none}, no tick text}]}
}
}
},
0 to 180/.style={
@setup axes/.style={
angle axis={min value=0, max value=180},
@degrees,
@visualize zero=north,
@inner radius axes at={{0}{low},{90}{high},{180}{high}},
@clean radius axes at={%
{0}{low}{high}{yshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{180}{high}{low}{yshift=-\pgfkeysvalueof{/tikz/data
visualization/angle axis/padding max}}{options at=0 as
[{style={draw=none}, no tick text}]}
}
}
},
upper half/.style={
@setup axes/.style={
angle axis={scaling=min at 0 and max at 180, ticks},
@visualize zero=north,
@inner radius axes at={{min}{low},{max}{high}},
@clean radius axes at={%
{min}{low}{high}{yshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{max}{high}{low}{yshift=-\pgfkeysvalueof{/tikz/data
visualization/angle axis/padding max}}{options at=0 as
[{style={draw=none}, no tick text}]}
}
}
},
upper half clockwise/.style={
@setup axes/.style={
angle axis={scaling=min at 180 and max at 0, ticks},
@visualize zero=north,
@inner radius axes at={{min}{low},{max}{high}},
@clean radius axes at={%
{min}{low}{high}{yshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{max}{high}{low}{yshift=-\pgfkeysvalueof{/tikz/data
visualization/angle axis/padding max}}{options at=0 as
[{style={draw=none}, no tick text}]}
}
}
},
lower half/.style={
@setup axes/.style={
angle axis={scaling=min at -180 and max at 0, ticks},
@visualize zero=south,
@inner radius axes at={{min}{low},{max}{high}},
@clean radius axes at={%
{min}{low}{high}{yshift=-\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{max}{high}{low}{yshift=\pgfkeysvalueof{/tikz/data
visualization/angle axis/padding max}}{options at=0 as
[{style={draw=none}, no tick text}]}
}
}
},
lower half clockwise/.style={
@setup axes/.style={
angle axis={scaling=min at 0 and max at -180, ticks},
@visualize zero=south,
@inner radius axes at={{min}{low},{max}{high}},
@clean radius axes at={%
{min}{low}{high}{yshift=-\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{max}{high}{low}{yshift=\pgfkeysvalueof{/tikz/data
visualization/angle axis/padding max}}{options at=0 as
[{style={draw=none}, no tick text}]}
}
}
},
-pi half to pi half/.style={
@setup axes/.style={
@rad,
angle axis={min value=-1.570796326794897, max value=1.570796326794897},
@visualize zero=east,
@inner radius axes at={{0}{low},{1.570796326794897}{low},{-1.570796326794897}{high}},
@clean radius axes at={%
{-1.570796326794897}{low}{high}{xshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{1.570796326794897}{high}{low}{xshift=-\pgfkeysvalueof{/tikz/data
visualization/angle axis/padding max}}{options at=0 as
[{style={draw=none}, no tick text}]}
}
}
},
-90 to 90/.style={
@setup axes/.style={
angle axis={min value=-90, max value=90},
@degrees,
@visualize zero=east,
@inner radius axes at={{-90}{low},{0}{low},{90}{high}},
@clean radius axes at={%
{-90}{low}{high}{xshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{90}{high}{low}{xshift=-\pgfkeysvalueof{/tikz/data
visualization/angle axis/padding max}}{options at=0 as
[{style={draw=none}, no tick text}]}
}
}
},
right half/.style={
@setup axes/.style={
angle axis={scaling=min at -90 and max at 90, ticks},
@visualize zero=east,
@inner radius axes at={{min}{low},{max}{high}},
@clean radius axes at={%
{min}{low}{high}{xshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{max}{high}{low}{xshift=-\pgfkeysvalueof{/tikz/data
visualization/angle axis/padding max}}{options at=0 as
[{style={draw=none}, no tick text}]}
}
}
},
right half clockwise/.style={
@setup axes/.style={
angle axis={scaling=min at 90 and max at -90, ticks},
@visualize zero=east,
@inner radius axes at={{min}{low},{max}{high}},
@clean radius axes at={%
{min}{low}{high}{xshift=\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{max}{high}{low}{xshift=-\pgfkeysvalueof{/tikz/data
visualization/angle axis/padding max}}{options at=0 as
[{style={draw=none}, no tick text}]}
}
}
},
left half/.style={
@setup axes/.style={
angle axis={scaling=min at 90 and max at 270, ticks},
@visualize zero=west,
@inner radius axes at={{min}{low},{max}{high}},
@clean radius axes at={%
{min}{low}{high}{xshift=-\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{max}{high}{low}{xshift=\pgfkeysvalueof{/tikz/data
visualization/angle axis/padding max}}{options at=0 as
[{style={draw=none}, no tick text}]}
}
}
},
left half clockwise/.style={
@setup axes/.style={
angle axis={scaling=min at 270 and max at 90, ticks},
@visualize zero=west,
@inner radius axes at={{min}{low},{max}{high}},
@clean radius axes at={%
{min}{low}{high}{xshift=-\pgfkeysvalueof{/tikz/data visualization/angle axis/padding min}}{},%
{max}{high}{low}{xshift=\pgfkeysvalueof{/tikz/data
visualization/angle axis/padding max}}{options at=0 as
[{style={draw=none}, no tick text}]}
}
}
},
0 to 2pi/.style={
@setup axes/.style={
angle axis={min value=0, max value=6.283185307179586},
@rad,
@visualize zero=north east,
@inner radius axes at={{0}{low},{1.570796326794897}{high},{3.141592653589793}{high},{4.71238898038469}{low}},
@clean radius axes at={{0}{low}{high}{}{}}
}
},
-pi to pi/.style={
@setup axes/.style={
angle axis={min value=-3.141592653589793, max value=3.141592653589793},
@rad,
@visualize zero=north east,
@inner radius axes at={{0}{low},{1.570796326794897}{high},{3.141592653589793}{high},{-1.57079632679489}{low}},
@clean radius axes at={{0}{low}{high}{}{}}
}
},
0 to 360/.style={
@setup axes/.style={
angle axis={min value=0, max value=360},
@degrees,
@visualize zero=north east,
@inner radius axes at={{0}{low},{90}{high},{180}{high},{270}{low}},
@clean radius axes at={{0}{low}{high}{}{}}
}
},
-180 to 180/.style={
@setup axes/.style={
angle axis={min value=-180, max value=180},
@degrees,
@visualize zero=north east,
@inner radius axes at={{0}{low},{90}{high},{180}{high},{-90}{low}},
@clean radius axes at={{0}{low}{high}{}{}}
}
},
}%
\tikzset{
/tikz/data visualization/axis options/.cd,
percent/.style={\tikz@dv@axis/scaling=0 at 0 and 1 at 3.6},
full circle/.style={\tikz@dv@axis/scaling=min at 0 and max at 360},
half circle/.style={\tikz@dv@axis/scaling=min at 0 and max at 180},
quarter circle/.style={\tikz@dv@axis/scaling=min at 0 and max at 90}
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.polar.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.sparklines.code.tex ====
\ProvidesFileRCS{tikzlibrarydatavisualization.sparklines.code.tex}
\usetikzlibrary{datavisualization}%
\tikzdatavisualizationset{
spark line/.style={
xy Cartesian,
x axis={
unit length={1pt}
},
y axis={
scaling={min at -0.2em and max at 0.8em}
},
new line plot,
every spark line plot/.try
}
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/datavisualization/tikzlibrarydatavisualization.sparklines.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/graphs/tikzlibrarygraphs.code.tex ====
\ProvidesFileRCS{tikzlibrarygraphs.code.tex}
\def\tikzgraphsset{\pgfqkeys{/tikz/graphs}}%
\tikzgraphsset{
new ->/.code n args={4}{%
\path [->,every new ->/.try]
(#1\tikzgraphleftanchor)
edge[#3] #4
(#2\tikzgraphrightanchor);},
new --/.code n args={4}{
\path [-,every new --/.try]
(#1\tikzgraphleftanchor)
edge[#3] #4
(#2\tikzgraphrightanchor);},
new <->/.code n args={4}{
\path [<->,every new <->/.try]
(#1\tikzgraphleftanchor)
edge[#3] #4
(#2\tikzgraphrightanchor);},
new -!-/.code n args={4}{},
new <-/.code n args={4}{%
\path [<-,every new <-/.try]
(#1\tikzgraphleftanchor)
edge[#3] #4
(#2\tikzgraphrightanchor);
}
}%
\def\tikz@lib@graph@store@anchor#1#2{%
\def\tikz@temp{#1}%
\ifx\tikz@temp\pgfutil@empty%
\let#2\tikz@temp%
\else%
\def\tikz@temp{.#1}%
\let#2\tikz@temp%
\fi%
}%
\tikzgraphsset{
default edge kind/.initial=--,
--/.style={default edge kind=--},
->/.style={default edge kind=->},
<-/.style={default edge kind=<-},
<->/.style={default edge kind=<->},
-!-/.style={default edge kind=-!-},
default edge operator/.initial=matching and star,
left anchor/.code=\tikz@lib@graph@store@anchor{#1}{\tikzgraphleftanchor},
right anchor/.code=\tikz@lib@graph@store@anchor{#1}{\tikzgraphrightanchor},
left anchor=,
right anchor=
}%
\tikzgraphsset{
use existing nodes/.is if=tikz@lib@graph@all
}%
\tikzset{
new set/.code={
\expandafter\global\expandafter\let\csname tikz@lg@node@set #1\endcsname\pgfutil@empty%
},
set/.code={
\tikz@fig@mustbenamed%
\ifcsname tikz@lg@node@set #1\endcsname\else
\tikzerror{Undefined set `#1'}%
\fi
\expandafter\def\expandafter\tikz@alias\expandafter{\tikz@alias%
\expandafter\def\expandafter\pgf@temp\expandafter{\csname tikz@lg@node@set #1\endcsname}%
\expandafter\expandafter\expandafter\pgfutil@g@addto@macro\expandafter\pgf@temp\expandafter{\expandafter\tikz@lg@do\expandafter{\tikz@fig@name}}%
}%
},%
}%
\newif\iftikz@lib@graph@all
\tikzgraphsset{
simple/.code={
\iftikz@lib@graph@simple%
\else
\tikz@lib@graph@simpletrue%
\pgfkeysalso{operator=\tikz@lib@graph@simple@done}%
\fi%
},
multi/.code={
\tikz@lib@graph@simplefalse%
}
}%
\newif\iftikz@lib@graph@simple
\def\tikz@lib@graph@set@simple@edge#1#2#3#4#5{%
\ifcsname tikz@lg@e@#3@#2\endcsname%
\expandafter\global\expandafter\let\csname tikz@lg@e@#3@#2\endcsname\relax%
\fi%
\expandafter\gdef\csname tikz@lg@e@#2@#3\endcsname{\tikz@lib@graph@make@simple@edge{#1}{#2}{#3}{#4}{#5}}%
}%
\def\tikz@lib@graph@make@simple@edge#1#2#3#4#5{%
\pgfqkeys{/tikz/graphs}{new #1={#2}{#3}{#4}{#5}}%
}%
\def\tikz@lib@graph@simple@done{%
\tikz@lib@graph@pack@node@list%
{%
\let\tikz@lg@do\tikz@lib@graph@simple@node%
\tikz@lib@graph@node@list
}%
}%
\def\tikz@lib@graph@simple@node#1{%
{%
\def\tikz@lib@graph@simple@from@node{#1}%
\let\tikz@lg@do\tikz@lib@graph@simple@other@node%
\tikz@lib@graph@node@list%
}%
}%
\def\tikz@lib@graph@simple@other@node#1{%
\ifcsname tikz@lg@e@\tikz@lib@graph@simple@from@node @#1\endcsname%
\csname tikz@lg@e@\tikz@lib@graph@simple@from@node @#1\endcsname%
\expandafter\global\expandafter\let\csname tikz@lg@e@\tikz@lib@graph@simple@from@node @#1\endcsname\relax%
\fi%
}%
\tikzgraphsset{
@nodes styling/.style=,
nodes/.style={/tikz/graphs/@nodes styling/.append style={,#1}},
@edges styling/.initial=,
edges/.style={/tikz/graphs/@edges styling/.append={,#1}},
edge/.style={edges={#1}},
@edges node/.initial=,
edge node/.style={/tikz/graphs/@edges node/.append={#1}},
edge label/.style={/tikz/graphs/@edges node/.append={node[auto]{#1}}},
edge label'/.style={/tikz/graphs/@edges node/.append={node[auto,swap]{#1}}},
@operators/.initial=,
operator/.style={/tikz/graphs/@operators/.append={#1}},
@extra group options/.style=,
}%
\def\tikzgraphinvokeoperator#1{%
{%
\pgfkeyslet{/tikz/graphs/@operators}\pgfutil@empty%
\pgfkeys{/tikz/graphs/.cd,#1}%
\pgfkeysgetvalue{/tikz/graphs/@operators}\tikz@lib@graph@temp%
\global\let\tikz@lib@graph@temp\tikz@lib@graph@temp%
}%
\tikz@lib@graph@temp%
\global\let\tikz@lib@graph@temp\relax%
}%
\def\tikz@lib@graph@parser{%
\pgfutil@ifnextchar[{\tikz@lib@graph@parser@}{\tikz@lib@graph@parser@[]}%
}%
\def\tikz@lib@graph@parser@[#1]{%
\setbox\tikz@whichbox=\hbox\bgroup%
\unhbox\tikz@whichbox%
\hbox\bgroup
\bgroup%
\pgfinterruptpath%
\scope[graphs/.cd,@graph drawing setup/.try,@operators=,every graph/.try,#1]%
\begingroup%
\iftikz@graph@quick%
\expandafter\tikz@lib@graphs@parse@quick@graph%
\else%
\expandafter\tikz@lib@graphs@normal@main%
\fi%
}%
\long\def\tikz@lib@graphs@normal@main#1{%
\pgfkeysgetvalue{/tikz/graphs/@operators}\tikz@lib@graph@outer@operators%
\let\tikz@lib@graph@options\pgfutil@empty%
\let\tikz@lib@graph@node@list\pgfutil@empty%
\pgfkeyssetvalue{/tikz/graphs/placement/depth}{0}%
\pgfkeyssetvalue{/tikz/graphs/placement/width}{0}%
\pgfkeyssetvalue{/tikz/graphs/placement/level}{0}%
\tikz@lib@graph@start@hint@group%
\tikz@lib@graph@parse@group{#1}%
\tikz@lib@graph@end@hint@group
\tikz@lib@graph@outer@operators%
\let\tikz@lg@do=\tikz@lib@graph@cleanup%
\tikz@lib@graph@node@list%
\tikz@lib@graph@main@done%
}%
\def\tikz@lib@graph@main@done{%
\endgroup%
\endscope%
\endpgfinterruptpath%
\egroup
\egroup%
\egroup%
\tikz@lib@graph@parser@done%
}%
\def\tikz@lib@graph@start@hint@group{%
\pgfkeyssetvalue{/tikz/graphs/placement/local depth}{0}%
\pgfkeyssetvalue{/tikz/graphs/placement/local width}{0}%
\pgfkeyssetvalue{/tikz/graphs/placement/chain count}{0}%
\pgfkeyssetvalue{/tikz/graphs/placement/element count}{0}%
}%
\def\tikz@lib@graph@end@hint@group{%
\xdef\tikz@lib@graph@group@depth{\pgfkeysvalueof{/tikz/graphs/placement/local depth}}
\xdef\tikz@lib@graph@group@width{\pgfkeysvalueof{/tikz/graphs/placement/local width}}
}%
\def\tikz@lib@graph@hint@aftergroup{%
\pgfkeysgetvalue{/tikz/graphs/placement/width}\tikz@temp@h%
\pgfkeysgetvalue{/tikz/graphs/placement/local width}\tikz@temp@lh%
\pgfkeysgetvalue{/tikz/graphs/placement/local depth}\tikz@temp@lw%
\pgfmathsetmacro\tikz@temp@h{\tikz@lib@graph@group@width+\tikz@temp@h}
\pgfmathsetmacro\tikz@temp@lh{\tikz@lib@graph@group@width+\tikz@temp@lh}
\pgfmathsetmacro\tikz@temp@lw{max(\tikz@lib@graph@group@depth,\tikz@temp@lw)}
\pgfkeyslet{/tikz/graphs/placement/width}\tikz@temp@h%
\pgfkeyslet{/tikz/graphs/placement/local width}\tikz@temp@lh%
\pgfkeyslet{/tikz/graphs/placement/local depth}\tikz@temp@lw%
\pgfkeysgetvalue{/tikz/graphs/placement/element count}\tikz@temp%
\c@pgf@counta=\tikz@temp\relax%
\advance\c@pgf@counta by1\relax%
\edef\tikz@temp{\the\c@pgf@counta}%
\pgfkeyslet{/tikz/graphs/placement/element count}\tikz@temp%
}%
\def\tikz@lib@graph@placement@update{%
\pgfkeys{/tikz/graphs/placement/logical node depth/.expand once=\tikz@lib@graph@name}
\let\tikz@lib@graph@node@depth\pgfmathresult
\pgfkeys{/tikz/graphs/placement/logical node width/.expand once=\tikz@lib@graph@name}
\let\tikz@lib@graph@node@width\pgfmathresult
\pgfkeysgetvalue{/tikz/graphs/placement/width}\tikz@temp@h%
\pgfkeysgetvalue{/tikz/graphs/placement/local width}\tikz@temp@lh%
\pgfkeysgetvalue{/tikz/graphs/placement/local depth}\tikz@temp@lw%
\pgfmathsetmacro\tikz@temp@h{\tikz@lib@graph@node@width+\tikz@temp@h}
\pgfmathsetmacro\tikz@temp@lh{\tikz@lib@graph@node@width+\tikz@temp@lh}
\pgfmathsetmacro\tikz@temp@lw{max(\tikz@lib@graph@node@depth,\tikz@temp@lw)}
\pgfkeyslet{/tikz/graphs/placement/width}\tikz@temp@h%
\pgfkeyslet{/tikz/graphs/placement/local width}\tikz@temp@lh%
\pgfkeyslet{/tikz/graphs/placement/local depth}\tikz@temp@lw%
\pgfkeysgetvalue{/tikz/graphs/placement/element count}\tikz@temp%
\c@pgf@counta=\tikz@temp\relax%
\advance\c@pgf@counta by1\relax%
\edef\tikz@temp{\the\c@pgf@counta}%
\pgfkeyslet{/tikz/graphs/placement/element count}\tikz@temp%
}%
\def\tikz@lib@graph@placement@after@chain@update{%
\pgfkeysgetvalue{/tikz/graphs/placement/depth}\tikz@temp@w%
\pgfkeysgetvalue{/tikz/graphs/placement/local width}\tikz@temp@lh%
\pgfkeysgetvalue{/tikz/graphs/placement/local depth}\tikz@temp@lw%
\pgfmathsetmacro\tikz@temp@w{\tikz@lib@graph@chain@depth+\tikz@temp@w}%
\pgfmathsetmacro\tikz@temp@lw{\tikz@lib@graph@chain@depth+\tikz@temp@lw}%
\pgfmathsetmacro\tikz@temp@lh{max(\tikz@lib@graph@chain@width,\tikz@temp@lh)}%
\pgfkeyslet{/tikz/graphs/placement/depth}\tikz@temp@w%
\pgfkeyslet{/tikz/graphs/placement/local width}\tikz@temp@lh%
\pgfkeyslet{/tikz/graphs/placement/local depth}\tikz@temp@lw%
\pgfkeysgetvalue{/tikz/graphs/placement/chain count}\tikz@temp%
\c@pgf@counta=\tikz@temp\relax%
\advance\c@pgf@counta by1\relax%
\edef\tikz@temp{\the\c@pgf@counta}%
\pgfkeyslet{/tikz/graphs/placement/chain count}\tikz@temp%
}%
\long\def\tikz@lib@graph@parse@group#1{
\let\tikz@lib@graph@group@qa\pgfutil@empty%
\let\tikz@lib@graph@group@q\pgfutil@empty%
\let\tikz@lib@graph@group@c\pgfutil@empty%
\let\tikz@lib@graph@group@cont\pgfutil@empty%
\let\tikz@lib@graph@group@conta\pgfutil@empty%
\tikz@lib@graph@group@check#1\par\pgf@stop@eogroup%
}%
\def\tikz@lib@graph@group@check{%
\pgfutil@ifnextchar[\tikz@lib@graph@group@opt{\tikz@lib@graph@group@opt[]}%
}%
\def\tikz@lib@graph@group@opt[#1]{%
\let\tikz@lib@graph@parse@extras\pgfutil@empty%
\tikzgraphsset{
@operators=,
every group/.try,
@extra group options,
@extra group options/.style=,%
#1}%
\expandafter\tikz@lib@graph@par\tikz@lib@graph@parse@extras%
}%
\tikzgraphsset{
parse/.code={\expandafter\def\expandafter\tikz@lib@graph@parse@extras\expandafter{\tikz@lib@graph@parse@extras#1}},
}%
\def\tikz@lib@graph@par{%
\pgfutil@ifnextchar\bgroup{\tikz@lib@graph@par@@}{\tikz@lib@graph@par@}%
}%
\long\def\tikz@lib@graph@par@#1\par{%
\pgfutil@ifnextchar\pgf@stop@eogroup{%
\expandafter\tikz@lib@graph@quotes\tikz@lib@graph@group@c#1"}{%
\expandafter\def\expandafter\tikz@lib@graph@group@c\expandafter{\tikz@lib@graph@group@c#1}%
\tikz@lib@graph@par%
}%
}%
\long\def\tikz@lib@graph@par@@#1{%
\expandafter\def\expandafter\tikz@lib@graph@group@c\expandafter{\tikz@lib@graph@group@c{#1}}%
\tikz@lib@graph@par
}%
\def\tikz@lib@graph@quotes{%
\pgfutil@ifnextchar\bgroup{\tikz@lib@graph@quotes@@}{\tikz@lib@graph@quotes@}%
}%
\def\tikz@lib@graph@quotes@#1"{%
\pgfutil@ifnextchar\pgf@stop@eogroup{%
\tikz@lib@graph@passon{#1}%
}{%
\expandafter\def\expandafter\tikz@lib@graph@group@q\expandafter{\tikz@lib@graph@group@q#1"}%
\tikz@lib@graph@quotes@cont%
}%
}%
\def\tikz@lib@graph@quotes@cont#1"#2"{%
\pgfutil@ifnextchar\pgf@stop@eogroup{%
\tikz@lib@graph@passon{{#1}"#2}}{%
\expandafter\def\expandafter\tikz@lib@graph@group@q\expandafter{\tikz@lib@graph@group@q{#1}"#2"}%
\tikz@lib@graph@quotes@cont}%
}%
\def\tikz@lib@graph@quotes@@#1{%
\expandafter\def\expandafter\tikz@lib@graph@group@q\expandafter{\tikz@lib@graph@group@q{#1}}%
\tikz@lib@graph@quotes%
}%
{%
\catcode`\"=13\relax
\gdef\tikz@lib@graph@passon#1{\expandafter\tikz@lib@graph@quotesactive\tikz@lib@graph@group@q#1"}%
\gdef\tikz@lib@graph@quotesactive{%
\pgfutil@ifnextchar\bgroup{\tikz@lib@graph@quotesactive@@}{\tikz@lib@graph@quotesactive@}%
}%
\gdef\tikz@lib@graph@quotesactive@#1"{%
\pgfutil@ifnextchar\pgf@stop@eogroup{%
\expandafter\tikz@lib@graph@encloser\tikz@lib@graph@group@qa#1[%
}{%
\expandafter\def\expandafter\tikz@lib@graph@group@qa\expandafter{\tikz@lib@graph@group@qa#1"}%
\tikz@lib@graph@quotesactive@cont%
}%
}%
\gdef\tikz@lib@graph@quotesactive@cont#1"#2"{%
\pgfutil@ifnextchar\pgf@stop@eogroup{%
\expandafter\tikz@lib@graph@encloser\tikz@lib@graph@group@qa{#1}"#2[}{%
\expandafter\def\expandafter\tikz@lib@graph@group@qa\expandafter{\tikz@lib@graph@group@qa{#1}"#2"}%
\tikz@lib@graph@quotesactive@cont}%
}%
\gdef\tikz@lib@graph@quotesactive@@#1{%
\expandafter\def\expandafter\tikz@lib@graph@group@qa\expandafter{\tikz@lib@graph@group@qa{#1}}%
\tikz@lib@graph@quotesactive%
}%
}%
\def\tikz@lib@graph@encloser{%
\pgfutil@ifnextchar\bgroup{\tikz@lib@graph@encloser@@}{\tikz@lib@graph@encloser@}%
}%
\def\tikz@lib@graph@encloser@#1[{%
\pgfutil@ifnextchar\pgf@stop@eogroup{%
\expandafter\tikz@lib@graph@semi\tikz@lib@graph@group@cont#1;%
}{%
\expandafter\def\expandafter\tikz@lib@graph@group@cont\expandafter{\tikz@lib@graph@group@cont#1[}%
\tikz@lib@graph@encloser@cont%
}%
}%
\def\tikz@lib@graph@encloser@cont#1]#2[{%
\pgfutil@ifnextchar\pgf@stop@eogroup{%
\expandafter\tikz@lib@graph@semi\tikz@lib@graph@group@cont{#1}]#2;}{%
\expandafter\def\expandafter\tikz@lib@graph@group@cont\expandafter{\tikz@lib@graph@group@cont{#1}]#2[}%
\tikz@lib@graph@encloser@cont}%
}%
\def\tikz@lib@graph@encloser@@#1{%
\expandafter\def\expandafter\tikz@lib@graph@group@cont\expandafter{\tikz@lib@graph@group@cont{#1}}%
\tikz@lib@graph@encloser%
}%
\def\tikz@lib@graph@semi{%
\pgfutil@ifnextchar\bgroup{\tikz@lib@graph@semi@@}{\tikz@lib@graph@semi@}%
}%
\def\tikz@lib@graph@semi@#1;{%
\pgfutil@ifnextchar\pgf@stop@eogroup{%
\expandafter\tikz@lib@graph@main@parser\tikz@lib@graph@group@conta#1,}{%
\expandafter\def\expandafter\tikz@lib@graph@group@conta\expandafter{\tikz@lib@graph@group@conta#1,}%
\tikz@lib@graph@semi%
}%
}%
\def\tikz@lib@graph@semi@@#1{%
\expandafter\def\expandafter\tikz@lib@graph@group@conta\expandafter{\tikz@lib@graph@group@conta{#1}}%
\tikz@lib@graph@semi%
}%
\def\tikz@lib@graph@main@parser{%
\begingroup%
\pgfkeyssetvalue{/tikz/graphs/placement/local depth}{0}%
\pgfkeyssetvalue{/tikz/graphs/placement/local width}{0}%
\let\tikz@lib@graph@stored@actions\pgfutil@empty%
\let\tikz@lib@graph@node@list\pgfutil@empty%
\tikz@lib@graph@main@parser@start%
}%
\def\tikz@lib@graph@main@parser@start{%
\pgfutil@ifnextchar\bgroup{\tikz@lib@graph@protect@group}{\tikz@lib@graph@main@parser@cont}%
}%
\def\tikz@lib@graph@protect@group#1{%
\pgfutil@ifnextchar\relax{\tikz@lib@graph@main@parser@cont{{#1}}}{\tikz@lib@graph@main@parser@cont{{#1}}}%
}%
\def\tikz@lib@graph@main@parser@cont{\tikz@lib@graph@check@quotes\tikz@lib@graph@main@parser@cont@normal}%
\def\tikz@lib@graph@main@parser@cont@normal#1,{%
\tikz@lib@graph@parse@one#1-\pgf@stop@eodashes%
}%
\def\tikz@lib@graph@parse@one{%
\pgfutil@ifnextchar\bgroup\tikz@lib@graph@scope\tikz@lib@graph@node%
}%
\def\tikz@lib@graph@check@quotes#1{%
\let\tikz@lib@graph@cont@quote#1%
\pgfutil@ifnextchar"{\begingroup\pgfkeys@temptoks{}\pgfutil@empty\tikz@lib@graph@quote@parser}{\tikz@lib@graph@check@quotes@active}%
}%
{%
\catcode`\"=13\relax
\gdef\tikz@lib@graph@check@quotes@active{%
\pgfutil@ifnextchar"{\begingroup\pgfkeys@temptoks{}\pgfutil@empty\tikz@lib@graph@quote@parser@active}{\tikz@lib@graph@cont@quote}%
}%
\gdef\tikz@lib@graph@quote@parser@active"#1"{%
\pgfkeys@temptoks\expandafter{\the\pgfkeys@temptoks #1}%
\pgfutil@ifnextchar"{\pgfkeys@temptoks\expandafter{\the\pgfkeys@temptoks "}\tikz@lib@graph@quote@parser@active}{\tikz@lib@graph@quote@parser@done}%
}%
}%
\def\tikz@lib@graph@quote@parser"#1"{%
\pgfkeys@temptoks\expandafter{\the\pgfkeys@temptoks #1}%
\pgfutil@ifnextchar"{\pgfkeys@temptoks\expandafter{\the\pgfkeys@temptoks "}\tikz@lib@graph@quote@parser}{\tikz@lib@graph@quote@parser@done}%
}%
\def\tikz@lib@graph@quote@parser@done{%
{\expandafter\scantokens\expandafter{%
\expandafter\expandafter\expandafter\tikzlibgraphactivations\expandafter\expandafter\expandafter\tikzlibgraphdoedef\expandafter{\the\pgfkeys@temptoks}%
}}%
{\expandafter\scantokens\expandafter{\expandafter\tikzlibgraphactivationsbrace\expandafter\xdef\expandafter\tikzlibgraphreplaced\expandafter<\tikzlibgraphreplaced>\catcode`\}=2\relax}}%
\edef\tikzlibgraphreplaced{\expandafter\detokenize\expandafter{\tikzlibgraphreplaced}}
\pgfutil@ifnextchar/\tikz@lib@graph@quotes@slash\tikz@lib@graph@quotes@no@slash%
}%
\def\tikz@lib@graph@quotes@no@slash{%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter%
\tikz@smuggle\expandafter\expandafter\expandafter{\expandafter\tikzlibgraphreplaced\expandafter/\expandafter{\the\pgfkeys@temptoks}}%
\expandafter\endgroup\expandafter\tikz@lib@graph@cont@quote\tikz@smuggle%
}%
\def\tikz@lib@graph@quotes@slash/{%
\pgfutil@ifnextchar/%
{\tikz@lib@graph@quotes@no@slash/}{\expandafter\endgroup\expandafter\tikz@lib@graph@cont@quote\tikzlibgraphreplaced/}%
}%
\def\tikzlibgraphdoedef{\xdef\tikzlibgraphreplaced}%
\def\tikz@lib@prepare@active#1#2#3{%
{%
\catcode`#1=13\relax%
\scantokens{\gdef\tikzlibgraphactivator{\def#2{@#3@}}}%
}%
\pgfutil@g@addto@macro\tikzlibgraphactivations{\catcode`#1=13\relax}%
\expandafter\pgfutil@g@addto@macro\expandafter\tikzlibgraphactivations\expandafter{\tikzlibgraphactivator}%
}%
\let\tikzlibgraphactivations\pgfutil@empty
\outer\def\tikz@lib@outer@test{\tabalign}%
\ifx\+\tikz@lib@outer@test
\def\+{\tabalign}
\fi
\tikz@lib@prepare@active{\$}{$}{DOLLAR SIGN}%
\tikz@lib@prepare@active{\&}{&}{AMPERSAND}%
\tikz@lib@prepare@active{\^}{^}{CIRCUMFLEX ACCENT}%
\tikz@lib@prepare@active{\~}{~}{TILDE}%
\tikz@lib@prepare@active{\_}{_}{LOW LINE}%
\tikz@lib@prepare@active{\|}{|}{VERTICAL LINE}%
\tikz@lib@prepare@active{\[}{[}{LEFT SQUARE BRACKET}%
\tikz@lib@prepare@active{\]}{]}{RIGHT SQUARE BRACKET}%
\tikz@lib@prepare@active{\(}{(}{LEFT PARENTHESIS}%
\tikz@lib@prepare@active{\)}{)}{RIGHT PARENTHESIS}%
\tikz@lib@prepare@active{\/}{/}{SOLIDUS}%
\tikz@lib@prepare@active{\.}{.}{FULL STOP}%
\tikz@lib@prepare@active{\-}{-}{HYPHEN MINUS}%
\tikz@lib@prepare@active{\,}{,}{COMMA}%
\tikz@lib@prepare@active{\+}{+}{PLUS SIGN}%
\tikz@lib@prepare@active{\*}{*}{ASTERISK}%
\tikz@lib@prepare@active{\'}{'}{APOSTROPHE}%
\tikz@lib@prepare@active{\!}{!}{EXCLAMATION MARK}%
\tikz@lib@prepare@active{\"}{"}{QUOTATION MARK}%
\tikz@lib@prepare@active{\:}{:}{COLON}%
\tikz@lib@prepare@active{\;}{;}{SEMINCOLON}%
\tikz@lib@prepare@active{\<}{<}{LESS THAN SIGN}%
\tikz@lib@prepare@active{\=}{=}{EQUALS SIGN}%
\tikz@lib@prepare@active{\>}{>}{GREATER THAN SIGN}%
\tikz@lib@prepare@active{\?}{?}{QUESTION MARK}%
\tikz@lib@prepare@active{\`}{`}{GRAVE ACCENT}%
{\catcode`\%=11\catcode`\#=11
\tikz@lib@prepare@active{\%}{%}{PERCENT SIGN}
\tikz@lib@prepare@active{\#}{#}{NUMBER SIGN}
}
\pgfutil@g@addto@macro\tikzlibgraphactivations{\catcode`\\=13\relax}%
{%
\catcode`\|=0\relax
\catcode`\\=13\relax
|pgfutil@g@addto@macro|tikzlibgraphactivations{|def\{@REVERSE SOLIDUS@}}%
}%
{%
\gdef\tikzlibgraphscommercialat{@COMMERCIAL AT@}%
\let\g=\pgfutil@g@addto@macro
\catcode`\@=13\relax
\g\tikzlibgraphactivations{\catcode`\@=13\relax\let@=\tikzlibgraphscommercialat}%
}%
\def\tikzlibgraphactivationsbrace{%
\catcode`\{=13\relax%
\catcode`\}=13\relax%
\catcode`\<=1\relax%
\catcode`\>=2\relax%
}%
{%
\catcode`\{=13\relax%
\catcode`\}=13\relax%
\catcode`\<=1\relax%
\catcode`\>=2\relax%
\pgfutil@g@addto@macro\tikzlibgraphactivationsbrace<\def{<@LEFT CURLY BRACE@>> %
\pgfutil@g@addto@macro\tikzlibgraphactivationsbrace<\def}<@RIGHT CURLY BRACE@>> %
>%
\def\tikz@lib@graph@node{\tikz@lib@graph@check@quotes\tikz@lib@graph@node@normal}%
\def\tikz@lib@graph@node@normal{%
\pgfutil@ifnextchar({\tikz@lib@graph@node@dressed}{\tikz@lib@graph@node@naked}%
}%
\def\tikz@lib@graph@node@dressed(#1){%
\tikz@lib@graph@node@naked{(#1)}%
}%
\def\tikz@lib@graph@node@naked#1-{%
\tikz@lib@graph@@node#1<\pgf@stop%
}%
\def\tikz@lib@graph@@node#1<#2\pgf@stop%
{
\tikz@lib@graph@grab@name#1\pgf@stop%
\tikz@lib@graph@stored@actions%
\pgfutil@ifnextchar\pgf@stop@eodashes{%
\tikz@lib@graph@graph@done%
}{%
\def\pgf@test{#2}%
\ifx\pgf@test\pgfutil@empty%
\expandafter\tikz@lib@graph@no@back@arrow%
\else%
\expandafter\tikz@lib@graph@back@arrow%
\fi%
}%
}%
\def\tikz@lib@graph@no@back@arrow{%
\pgfutil@ifnextchar>\tikz@lib@graph@forward@arrow{%
\pgfutil@ifnextchar-\tikz@lib@graph@undirected@arrow{%
\pgfutil@ifnextchar!\tikz@lib@graph@no@arrow{%
\tikzerror{One of the arrow types <-, --, ->, -!- or <-> expected}%
\tikz@lib@graph@undirected@arrow%
}%
}%
}%
}%
\def\tikz@lib@graph@undirected@arrow-{%
\def\tikz@lib@graph@arrow@type{--}%
\tikz@lib@graph@after@arrow%
}%
\def\tikz@lib@graph@forward@arrow>{%
\def\tikz@lib@graph@arrow@type{->}%
\tikz@lib@graph@after@arrow%
}%
\def\tikz@lib@graph@bi@arrow>{%
\def\tikz@lib@graph@arrow@type{<->}%
\tikz@lib@graph@after@arrow%
}%
\def\tikz@lib@graph@no@arrow!-{%
\def\tikz@lib@graph@arrow@type{-!-}%
\tikz@lib@graph@after@arrow%
}%
\def\tikz@lib@graph@back@arrow{%
\pgfutil@ifnextchar>{\tikz@lib@graph@bi@arrow}{%
\def\tikz@lib@graph@arrow@type{<-}%
\tikz@lib@graph@after@arrow%
}%
}%
\def\tikz@lib@graph@after@arrow{%
\pgfutil@ifnextchar[{\tikz@lib@graph@after@arrow@opt}{\tikz@lib@graph@after@arrow@opt[]}%
}%
\def\tikz@lib@graph@after@arrow@opt[#1]{%
\tikzgraphinvokeoperator{recolor source by=source''}
\tikzgraphinvokeoperator{recolor target by=target'}
\expandafter\def\expandafter\tikz@lib@graph@stored@actions\expandafter{%
\expandafter\tikz@lib@graph@joiner\expandafter{\tikz@lib@graph@arrow@type}{#1}}%
\tikzgdeventgroupcallback{descendants}%
\tikz@lib@graph@parse@one%
}%
\def\tikz@lib@graph@joiner#1#2{%
\tikzgraphinvokeoperator{recolor source by=source'}
\tikzgraphinvokeoperator{recolor source'' by=source}
{%
\tikz@enable@edge@quotes%
\pgfkeyssetvalue{/tikz/graphs/default edge kind}{#1}%
\pgfkeys{/tikz/graphs/.cd,@operators=,%
/tikz/graphs/.unknown/.code=\tikz@lib@graph@unknown@edge@option{##1},#2}%
\pgfkeysgetvalue{/tikz/graphs/@operators}\pgf@temp%
\ifx\pgf@temp\pgfutil@empty%
\edef\pgf@temp{\noexpand\pgfkeys{/tikz/graphs/.cd,\pgfkeysvalueof{/tikz/graphs/default edge operator}}}%
\pgf@temp%
\pgfkeysgetvalue{/tikz/graphs/@operators}\pgf@temp%
\fi%
\pgf@temp%
}%
\tikzgraphinvokeoperator{not source',not target'}
}%
\def\tikz@lib@graph@unknown@edge@option#1{%
\def\tikz@temp{/tikz/graphs/@edges styling/.append=}
\expandafter\expandafter\expandafter\pgfkeys%
\expandafter\expandafter\expandafter{\expandafter\tikz@temp\expandafter{\expandafter,\pgfkeyscurrentname={#1}}}
}%
\def\tikz@lib@graph@graph@done\pgf@stop@eodashes{%
\xdef\tikz@lib@graph@chain@depth{\pgfkeysvalueof{/tikz/graphs/placement/local depth}}
\xdef\tikz@lib@graph@chain@width{\pgfkeysvalueof{/tikz/graphs/placement/local width}}
\expandafter%
\endgroup%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@lib@graph@node@list%
\expandafter\expandafter\expandafter{\expandafter\tikz@lib@graph@node@list\tikz@lib@graph@node@list}%
\tikz@lib@graph@placement@after@chain@update
\pgfutil@ifnextchar\pgf@stop@eogroup%
\tikz@lib@graph@graph@group@done%
\tikz@lib@graph@main@parser%
}%
\def\tikz@lib@graph@graph@group@done\pgf@stop@eogroup{%
\pgfkeysvalueof{/tikz/graphs/@operators}%
}%
\def\tikz@lib@graph@grab@name{%
\pgfutil@ifnextchar\foreach\tikz@lib@graph@do@foreach\tikz@lib@graph@parse@node@text%
}%
\def\tikz@lib@graph@do@foreach\foreach#1in{%
\pgfutil@ifnextchar\bgroup{\tikz@lib@graph@do@foreach@normal{#1}}{\def\tikz@temp{#1}\tikz@lib@graph@do@foreach@macro}%
}%
\def\tikz@lib@graph@do@foreach@macro#1{%
\expandafter\expandafter\expandafter\tikz@lib@graph@do@foreach@normal\expandafter\tikz@temp\expandafter{#1}%
}%
\def\tikz@lib@graph@do@foreach@normal#1#2#3\pgf@stop{%
\begingroup
\let\tikz@lib@graph@node@list@saved\pgfutil@empty%
\xdef\tikz@lib@graph@saved@placement{%
{\pgfkeysvalueof{/tikz/graphs/placement/local depth}}%
{\pgfkeysvalueof{/tikz/graphs/placement/local width}}%
{\pgfkeysvalueof{/tikz/graphs/placement/chain count}}%
{\pgfkeysvalueof{/tikz/graphs/placement/element count}}%
{\pgfkeysvalueof{/tikz/graphs/placement/width}}%
{\pgfkeysvalueof{/tikz/graphs/placement/depth}}%
}%
\foreach #1 in {#2}%
{%
\let\tikz@lib@graph@node@list\tikz@lib@graph@node@list@saved%
\expandafter\tikz@lib@graph@setup@placement\tikz@lib@graph@saved@placement%
\tikz@lib@graph@parse@group{#3}%
\xdef\tikz@lib@graph@saved@placement{%
{\pgfkeysvalueof{/tikz/graphs/placement/local depth}}%
{\pgfkeysvalueof{/tikz/graphs/placement/local width}}%
{\pgfkeysvalueof{/tikz/graphs/placement/chain count}}%
{\pgfkeysvalueof{/tikz/graphs/placement/element count}}%
{\pgfkeysvalueof{/tikz/graphs/placement/width}}%
{\pgfkeysvalueof{/tikz/graphs/placement/depth}}%
}%
\global\let\tikz@lib@graph@node@list@saved\tikz@lib@graph@node@list%
}%
\expandafter%
\endgroup%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@lib@graph@node@list%
\expandafter\expandafter\expandafter{\expandafter\tikz@lib@graph@node@list\tikz@lib@graph@node@list@saved}%
\expandafter\tikz@lib@graph@setup@placement\tikz@lib@graph@saved@placement%
}%
\def\tikz@lib@graph@setup@placement#1#2#3#4#5#6{%
\pgfkeyssetvalue{/tikz/graphs/placement/local depth}{#1}%
\pgfkeyssetvalue{/tikz/graphs/placement/local width}{#2}%
\pgfkeyssetvalue{/tikz/graphs/placement/chain count}{#3}%
\pgfkeyssetvalue{/tikz/graphs/placement/element count}{#4}%
\pgfkeyssetvalue{/tikz/graphs/placement/width}{#5}%
\pgfkeyssetvalue{/tikz/graphs/placement/depth}{#6}%
}%
\def\tikz@lib@graph@parse@node@text#1\pgf@stop{%
\pgfutil@in@{//}{#1 }
\ifpgfutil@in@%
\tikz@lib@parse@layout@node#1\pgf@stop%
\else%
\tikz@lib@graph@fake@nodefalse
\let\tikz@lib@graph@node@parsed\tikz@lib@graph@node@opt@normal%
\def\tikz@lib@graph@empty@node@parsed{\tikzgdeventcallback{node}{}}%
\tikz@lib@parse@normal@node#1[\pgf@stop%
\fi%
}%
\newif\iftikzgraphsautonumbernodes
\newcount\tikz@lib@auto@number
\def\tikz@lib@do@autonumber{%
\ifx\tikz@lib@graph@name@only\pgfutil@empty%
\else%
\edef\tikz@lib@graph@name@only{\tikz@lib@graph@name@only\tikz@lib@auto@sep\the\tikz@lib@auto@number}%
\global\advance\tikz@lib@auto@number by1\relax%
\fi%
}%
\def\tikz@lib@parse@normal@node#1[{
\pgfutil@in@{/}{#1}%
\ifpgfutil@in@%
\tikz@lib@parse@node@with@slash#1\pgf@stop%
\else
\pgfutil@in@{__}{#1}%
\ifpgfutil@in@%
\tikz@lib@parse@node@with@doubleunder#1\pgf@stop%
\else
\edef\pgf@marshal{\noexpand\pgfkeys@spdef\noexpand\tikz@lib@graph@name@only{#1}}%
\pgf@marshal%
\let\tikz@lib@graph@node@text\tikz@lib@graph@name@only%
\edef\tikz@lib@graph@name{\tikz@lib@graph@path\tikz@lib@graph@name@only}%
\fi%
\fi%
\tikz@lib@graph@handle@node@cont%
}%
\def\tikz@lib@parse@node@with@slash#1/{
\pgfkeys@spdef\tikz@lib@graph@name@only{#1}%
\ifx\tikz@lib@graph@name@only\pgfutil@empty%
\global\advance\tikz@fig@count by1\relax
\edef\tikz@lib@graph@name@only{tikz@f@\the\tikz@fig@count}%
\fi%
\edef\tikz@lib@graph@name{\tikz@lib@graph@path\tikz@lib@graph@name@only}%
\pgfutil@ifnextchar"\tikz@lg@slash@quote{\pgfutil@ifnextchar\tikz@active@quotes@token\tikz@lg@slash@quote@active\tikz@lg@slash@cont}
}%
\def\tikz@lg@slash@quote"#1"#2\pgf@stop{%
\iftikz@handle@active@nodes%
\def\tikz@lib@graph@node@text{\scantokens{#1}}%
\else
\def\tikz@lib@graph@node@text{#1}%
\fi%
}%
{\catcode`\"=13\relax
\gdef\tikz@lg@slash@quote@active"#1"#2\pgf@stop{%
\iftikz@handle@active@nodes%
\def\tikz@lib@graph@node@text{\scantokens{#1}}%
\else
\def\tikz@lib@graph@node@text{#1}%
\fi%
}%
}%
\def\tikz@lg@slash@cont#1\pgf@stop{%
\iftikz@handle@active@nodes%
\def\tikz@lib@graph@node@text{\scantokens{#1}}%
\else
\def\tikz@lib@graph@node@text{#1}%
\fi%
}%
\def\tikz@lib@parse@node@with@doubleunder#1__{\tikz@lib@parse@node@with@slash{#1}/}%
\def\tikz@lg@find@fresh@name{%
\edef\tikz@lib@graph@name@only{\tikz@lib@graph@name@only'}%
\edef\tikz@lib@graph@name{\tikz@lib@graph@path\tikz@lib@graph@name@only}%
\tikz@lg@if@local@node{\tikz@lib@graph@name}{\tikz@lg@find@fresh@name}{}%
}%
\def\tikz@lib@graph@handle@node@cont{%
\iftikzgraphsautonumbernodes%
\tikz@lib@do@autonumber%
\fi%
\iftikz@lib@graph@fresh@node%
\tikz@lg@if@local@node{\tikz@lib@graph@name}{\tikz@lg@find@fresh@name}{}%
\fi%
\let\tikzgraphnodeas\tikzgraphnodeas@default%
\pgfutil@ifnextchar\pgf@stop{%
\ifx\tikz@lib@graph@name@only\pgfutil@empty%
\expandafter\tikz@lib@graph@node@empty@done%
\else
\expandafter\tikz@lib@graph@node@opt\expandafter[\expandafter]\expandafter[%
\fi%
}{\tikz@lib@graph@node@opt[}%
}%
\def\tikzgraphnodeas@default{%
\tikz@lib@graph@typesetter%
}%
\let\tikz@lib@graph@empty@node@parsed\relax%
\def\tikz@lib@graph@node@opt[#1]#2[\pgf@stop{%
\tikz@lib@graph@node@parsed{#1}%
}%
\def\tikz@lib@graph@node@empty@done\pgf@stop{\tikz@lib@graph@empty@node@parsed}%
\def\tikz@lib@parse@layout@node#1//{%
\pgf@lib@graph@empty@layout@nodefalse%
\let\tikz@lib@graph@node@parsed\tikz@lib@layout@node@parsed%
\let\tikz@lib@graph@empty@node@parsed\tikz@lib@graph@empty@layout@node@parsed
\tikz@lib@parse@normal@node#1[\pgf@stop%
}%
\newif\ifpgf@lib@graph@empty@layout@node
\def\tikz@lib@layout@node@parsed{%
\tikz@lib@layout@parse@rest%
}%
\def\tikz@lib@graph@empty@layout@node@parsed{%
\pgf@lib@graph@empty@layout@nodetrue
\tikz@lib@layout@parse@rest{}%
}%
\def\tikz@lib@layout@parse@rest#1{%
\def\tikz@lib@layout@node@options{#1}%
\pgfutil@ifnextchar[{\tikz@lib@layout@node@opt}{\tikz@lib@layout@node@opt[]}%
}%
\def\tikz@lib@layout@node@parsed#1{%
\def\tikz@lib@layout@node@options{#1}%
\pgfutil@ifnextchar[{\tikz@lib@layout@node@opt}{\tikz@lib@layout@node@opt[]}%
}%
\def\tikz@lib@layout@node@opt[#1]{%
\def\tikz@lib@layout@options{#1}%
\pgfutil@ifnextchar\bgroup{\tikz@lib@layout@start}{\tikzerror{Opening brace at beginning of sublayout expected}}%
}%
\def\tikz@lib@graph@node@opt@normal#1{%
\expandafter\tikz@lib@graph@test@use@list\tikz@lib@graph@name@only\pgf@stop
\iftikz@lib@graph@use@list%
\let\tikz@lg@temp\pgfutil@empty%
\foreach \tikz@lg@node@name in \tikz@lib@graph@use@list {\expandafter\tikz@lib@graph@handle@use\expandafter{\tikz@lg@node@name}}
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@lib@graph@node@list%
\expandafter\expandafter\expandafter{%
\expandafter\tikz@lib@graph@node@list\tikz@lg@temp}%
\let\tikz@lg@do\tikz@lib@graph@do@use%
\tikz@lg@temp%
\else%
\edef\tikz@lib@graph@name{\tikz@lib@graph@path\tikz@lib@graph@name@only}%
\expandafter\ifx\csname tikz@lib@graph@def@\tikz@lib@graph@name@only\endcsname\relax%
\pgfkeysgetvalue{/tikz/graphs/placement/level}\tikz@temp%
\c@pgf@counta=\tikz@temp\relax%
\advance\c@pgf@counta by1\relax%
\edef\tikz@temp{\the\c@pgf@counta}%
\pgfkeyslet{/tikz/graphs/placement/level}\tikz@temp%
\tikzgraphsset{
level/.try=\pgfkeysvalueof{/tikz/graphs/placement/level},
level \pgfkeysvalueof{/tikz/graphs/placement/level}/.try
}
{%
\edef\tikz@lib@graph@node@list{\noexpand\tikz@lg@do{\tikz@lib@graph@name}}%
\global\tikz@lib@graph@node@createdfalse%
\pgfkeyslet{/tikz/graphs/@operators}\pgfutil@empty%
\tikz@lib@activate@source@target@edge@syntax%
\tikz@lg@if@local@node{\tikz@lib@graph@name}%
{\tikz@lg@local@node@handle{#1}}%
{%
\tikz@lg@init@color{\tikz@lib@graph@name}{\tikz@lgc@all@true\tikz@lgc@source@true\tikz@lgc@target@true}%
\iftikz@lib@graph@all%
\tikzgraphsset{#1}\pgfkeysvalueof{/tikz/graphs/@operators}%
\else%
\pgfkeys{/tikz/graphs/placement/place}%
\let\tikzgraphnodetext\tikz@lib@graph@node@text%
\let\tikzgraphnodename\tikz@lib@graph@name@only%
\let\tikzgraphnodepath\tikz@lib@graph@path%
\let\tikzgraphnodefullname\tikz@lib@graph@name%
\iftikz@lib@graph@fake@node%
{%
\pgfkeys{
/tikz/graphs/.cd,%
.unknown/.code=,
/tikz/graphs/@nodes styling,%
#1}%
\pgfkeysgetvalue{/tikz/graphs/@operators}\tikz@lib@graph@op@save%
\global\let\tikz@lib@graph@op@save\tikz@lib@graph@op@save%
}%
\else%
\node [%
name=\tikz@lib@graph@name,%
execute at end node={%
\pgfkeysgetvalue{/tikz/graphs/@operators}\tikz@lib@graph@op@save%
\global\let\tikz@lib@graph@op@save\tikz@lib@graph@op@save%
},%
graphs/redirect unknown to tikz,
/tikz/graphs/.cd,%
/tikz/graphs/@nodes styling,%
#1]%
{%
\tikzgraphnodeas%
};%
\fi%
\tikz@lib@graph@op@save\global\let\tikz@lib@graph@op@save\relax%
\global\tikz@lib@graph@node@createdtrue%
\fi
}%
}%
\iftikz@lib@graph@node@created\tikz@lib@graph@placement@update\fi%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@lib@graph@node@list%
\expandafter\expandafter\expandafter{%
\expandafter\tikz@lib@graph@node@list\expandafter\tikz@lg@do\expandafter{\tikz@lib@graph@name}}%
\iftikz@lib@graph@trie\tikzgraphsset{name=\tikz@lib@graph@name@only}\fi%
\else
\tikz@lib@graph@handle@graph{#1}%
\fi
\fi%
}%
\newif\iftikz@lib@graph@fake@node
\newif\iftikz@lib@graph@use@list
\def\tikz@lib@graph@test@use@list{%
\pgfutil@ifnextchar({\tikz@lib@graph@use@list@grap}{\tikz@lib@graph@test@use@list@done}%
}%
\def\tikz@lib@graph@test@use@list@done#1\pgf@stop{\tikz@lib@graph@use@listfalse}%
\def\tikz@lib@graph@use@list@grap(#1)\pgf@stop{\def\tikz@lib@graph@use@list{#1}\tikz@lib@graph@use@listtrue}%
\def\tikz@lib@layout@start#1#2\pgf@stop{%
\tikz@lib@ensure@gd@loaded%
\tikz@lib@graph@fake@nodefalse%
\ifpgf@lib@graph@empty@layout@node%
\else%
\ifx\tikz@lib@graph@name\pgfutil@empty%
\tikzerror{Internal error: Node has no name, but it should!}%
\else
\tikz@lib@graph@fake@nodetrue%
\expandafter\tikz@lib@graph@node@opt@normal\expandafter{\tikz@lib@layout@node@options}%
\fi%
\fi%
\edef\tikz@lib@graph@name{\tikz@lib@graph@path\tikz@lib@graph@name@only}%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@lib@layout@node@options\expandafter\expandafter\expandafter{\expandafter\tikz@lib@layout@startup@node@options\tikz@lib@layout@node@options,}%
\begingroup
\iftikz@lib@graph@fake@node%
\expandafter\expandafter\expandafter%
\expandafter\expandafter\expandafter\expandafter\tikz@lib@make@subgraph@node%
\expandafter\expandafter\expandafter%
\expandafter\expandafter\expandafter\expandafter{%
\expandafter\expandafter\expandafter\tikz@lib@graph@name%
\expandafter\expandafter\expandafter}%
\expandafter\expandafter\expandafter{%
\expandafter\tikz@lib@graph@node@text\expandafter}\expandafter{\tikz@lib@layout@node@options}
\fi%
\expandafter\expandafter\expandafter\scope\expandafter\expandafter\expandafter[\expandafter\tikz@lib@layout@node@options@prefix\tikz@lib@layout@options]
\tikzgdeventgroupcallback{array}%
\let\tikz@lib@graph@node@list\pgfutil@empty%
\tikz@lib@graph@start@hint@group%
\tikz@lib@graph@parse@group{#1}%
\tikz@lib@graph@end@hint@group%
\def\tikz@lg@old@col{\tikz@lgc@source@true}%
\let\tikz@lg@new@col\pgfutil@empty%
\let\tikz@lg@do\tikz@lg@change@color%
\tikz@lib@graph@node@list%
\def\tikz@lg@old@col{\tikz@lgc@target@true}%
\tikz@lib@graph@node@list%
\expandafter%
\endscope\expandafter%
\endgroup%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@lib@graph@node@list%
\expandafter\expandafter\expandafter{\expandafter\tikz@lib@graph@node@list\tikz@lib@graph@node@list}%
\tikz@lib@graph@hint@aftergroup%
}%
\def\tikz@lib@make@subgraph@node#1#2#3{%
\pgfgdsubgraphnode{#1}{#3}{\pgfgdsubgraphnodecontents{#2}}%
}%
\def\tikz@lib@layout@startup@node@options{%
/utils/exec=\tikzlibignorecomparisonsINTERNAL,
/tikz/graphs/.cd,%
redirect unknown to tikz,%
anchor=base,%
/tikz/every subgraph node/.try,%
}%
\def\tikzlibignorecomparisonsINTERNAL{%
\pgfkeys{/handlers/first char syntax=true}
\pgfkeyssetvalue{/handlers/first char syntax/\expandafter\meaning\string>}{\pgfutil@gobble}%
\pgfkeyssetvalue{/handlers/first char syntax/\expandafter\meaning\string<}{\pgfutil@gobble}%
}%
\def\tikz@lib@layout@node@options@prefix{graphs/.cd,}%
\ifx\tikz@lib@ensure@gd@loaded\pgfutil@undefined%
\def\tikz@lib@ensure@gd@loaded{\tikzerror{You must say \string\usetikzlibrary{graphdrawing} to use the (sub)layout syntax}}%
\fi
\def\tikz@lg@local@node@handle#1{%
\tikzgraphsset{source,target,.unknown/.code=,#1}%
\tikzgdlatenodeoptionacallback{\tikz@pp@name\tikz@lib@graph@name}%
\node also[graphs/redirect unknown to tikz,/tikz/graphs/.cd,#1](\tikz@lib@graph@name);%
\pgfkeysvalueof{/tikz/graphs/@operators}%
}%
\tikzgraphsset{redirect unknown to tikz/.style={
/tikz/graphs/.unknown/.code={%
\let\tikz@key\pgfkeyscurrentname%
\pgfkeys{tikz/.cd,\tikz@key={##1},/tikz/graphs/.cd}%
}}
}%
\def\tikz@lib@activate@source@target@edge@syntax{%
\pgfkeys{/handlers/first char syntax=true}
\pgfkeyssetvalue{/handlers/first char syntax/\expandafter\meaning\string>}{\tikz@lg@parse@more}%
\pgfkeyssetvalue{/handlers/first char syntax/\expandafter\meaning\string<}{\tikz@lg@parse@less}%
}%
\def\tikz@lg@parse@less#1{\tikz@lg@parse@less@#1\pgf@stop}%
\def\tikz@lg@parse@less@<{\pgfutil@ifnextchar"{\tikz@lg@parse@quote{source}}{\tikz@lg@parse@noquote{source}}}%
\def\tikz@lg@parse@more#1{\tikz@lg@parse@more@#1\pgf@stop}%
\def\tikz@lg@parse@more@>{\pgfutil@ifnextchar"{\tikz@lg@parse@quote{target}}{\tikz@lg@parse@noquote{target}}}%
\def\tikz@lg@parse@noquote#1#2\pgf@stop{{\tikzgraphsset{#1 edge style={#2}}}}%
\def\tikz@lg@parse@quote#1#2\pgf@stop{%
{\tikzgraphsset{/tikz/node quotes mean={#1 edge node={node [every edge quotes,##2]{##1}}},/utils/exec=\tikz@enable@node@quotes,#2}}%
}%
\tikzgraphsset{
clear >/.style=target edge clear,
clear , -!-, or <-> expected}%
}%
}%
}%
\def\tikz@lib@graph@scope@minus-{
\pgfutil@ifnextchar>\tikz@lib@graph@forward@arrow{%
\pgfutil@ifnextchar-\tikz@lib@graph@undirected@arrow{%
\pgfutil@ifnextchar!\tikz@lib@graph@no@arrow{%
\pgfutil@ifnextchar\pgf@stop@eodashes\tikz@lib@graph@graph@done{%
\tikzerror{One of the arrow types <-, --, ->, -!-, or <-> expected}%
\tikz@lib@graph@undirected@arrow%
}%
}%
}%
}%
}%
\def\tikz@lib@graph@scope@less<-{\tikz@lib@graph@back@arrow}%
\tikzgraphsset{
declare/.code 2 args={\expandafter\def\csname tikz@lib@graph@def@#1\endcsname{\tikz@lib@graph@do@graph{#2}}}%
}%
\def\tikz@lib@graph@handle@graph#1{%
\begingroup%
\let\tikz@lib@graph@node@list\pgfutil@empty%
\tikzgraphsset{@extra group options/.style={#1}}%
\tikz@lib@graph@start@hint@group%
\csname tikz@lib@graph@def@\tikz@lib@graph@name@only\endcsname%
\tikz@lib@graph@end@hint@group%
\expandafter%
\endgroup%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@lib@graph@node@list%
\expandafter\expandafter\expandafter{\expandafter\tikz@lib@graph@node@list\tikz@lib@graph@node@list}%
\tikz@lib@graph@hint@aftergroup%
}%
\def\tikz@lib@graph@do@graph#1{%
\tikz@lib@graph@parse@group{#1}%
}%
\let\tikz@lib@graph@path\pgfutil@empty
\tikzgraphsset{
name separator/.store in=\tikz@lib@graph@name@separator,
name separator=\space,
name/.code={%
\edef\tikz@lib@graph@path{\tikz@lib@graph@path#1\tikz@lib@graph@name@separator}%
}%
}%
\def\tikz@lg@newif{\csname newif\endcsname}%
\tikzgraphsset{
as/.code=\def\tikzgraphnodeas{#1},%
color class/.style={%
/utils/exec=\expandafter\tikz@lg@newif\csname iftikz@lgc@#1@\endcsname,
#1/.style={operator={%
\edef\tikz@lg@col{\expandafter\noexpand\csname tikz@lgc@#1@true\endcsname}%
\let\tikz@lg@do\tikz@lg@colorize%
\tikz@lib@graph@node@list%
}},
not #1/.style={operator={%
\edef\tikz@lg@old@col{\expandafter\noexpand\csname tikz@lgc@#1@true\endcsname}%
\let\tikz@lg@new@col\pgfutil@empty%
\let\tikz@lg@do\tikz@lg@change@color%
\tikz@lib@graph@node@list%
}},
recolor #1 by/.style={operator={%
\edef\tikz@lg@old@col{\expandafter\noexpand\csname tikz@lgc@#1@true\endcsname}%
\edef\tikz@lg@new@col{\expandafter\noexpand\csname tikz@lgc@##1@true\endcsname}%
\let\tikz@lg@do\tikz@lg@change@color%
\tikz@lib@graph@node@list%
}},
!#1/.style=not #1,
},
color class=source,
color class=source',
color class=source'',
color class=target,
color class=target',
color class=all
}%
\def\tikz@lg@init@color#1#2{%
\expandafter\gdef\csname tikz@lgc@#1\endcsname{#2}%
}%
\def\tikz@lib@graph@cleanup#1{%
\expandafter\global\expandafter\let\csname tikz@lgc@#1\endcsname\relax%
\ifcsname tikz@lgca@@#1\endcsname\expandafter\global\expandafter\let\csname tikz@lgca@@#1\endcsname\relax\fi%
\ifcsname tikz@lgcb@@#1\endcsname\expandafter\global\expandafter\let\csname tikz@lgcb@@#1\endcsname\relax\fi%
}%
\def\tikz@lg@colorize#1{%
\expandafter\let\expandafter\pgf@temp\csname tikz@lgc@#1\endcsname%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@temp%
\expandafter\expandafter\expandafter{%
\expandafter\tikz@lg@col\pgf@temp}%
\expandafter\global\expandafter\let\csname tikz@lgc@#1\endcsname\pgf@temp%
}%
\def\tikz@lg@change@color#1{%
\def\tikz@lg@temp@save{#1}%
\let\tikz@lg@collect\pgfutil@empty%
\expandafter\let\expandafter\pgf@temp\csname tikz@lgc@#1\endcsname%
\expandafter\tikz@lg@change@check\pgf@temp\pgf@stop%
}%
\def\tikz@lg@change@check#1{%
\ifx#1\pgf@stop%
\tikz@lg@change@write@back%
\else%
\def\pgf@temp{#1}%
\ifx\pgf@temp\tikz@lg@old@col%
\expandafter\tikz@lg@change@add\expandafter{\tikz@lg@new@col}%
\else%
\tikz@lg@change@add{#1}%
\fi%
\expandafter\tikz@lg@change@check
\fi%
}%
\def\tikz@lg@change@add#1{%
\expandafter\def\expandafter\tikz@lg@collect\expandafter{\tikz@lg@collect#1}%
}%
\def\tikz@lg@change@write@back{%
\expandafter\global\expandafter\let\csname tikz@lgc@\tikz@lg@temp@save\endcsname\tikz@lg@collect%
}%
\def\tikz@lg@if@has@color#1#2#3#4{%
{%
\csname tikz@lgc@#1\endcsname%
\expandafter\let\expandafter\pgf@temp\csname iftikz@lgc@#2@\endcsname%
\ifx\pgf@temp\relax%
\tikz@lib@reset@temp%
\fi%
\pgf@temp%
\global\tikz@color@testtrue%
\else%
\global\tikz@color@testfalse%
\fi%
}%
\iftikz@color@test#3\else#4\fi%
}%
\newif\iftikz@color@test
\def\tikz@lg@if@local@node#1#2#3{\expandafter\ifx\csname tikz@lgc@#1\endcsname\relax#3\else#2\fi}%
\def\tikz@lib@reset@temp{\let\pgf@temp\iffalse}%
\def\tikz@lib@annotate@#1#2#3#4{%
\expandafter\ifx\csname tikz@lgc#1@@#2\endcsname\relax%
\expandafter\gdef\csname tikz@lgc#1@@#2\endcsname{{#3}{#4}}%
\else%
\expandafter\expandafter\expandafter\tikz@lib@annotate@read\csname tikz@lgc#1@@#2\endcsname{#3}{#4}%
\expandafter\global\expandafter\let\csname tikz@lgc#1@@#2\endcsname\pgf@temp%
\fi%
}%
\def\tikz@lib@annotate@read#1#2#3#4{\def\pgf@temp{{#1,#3}{#2#4}}}%
\tikzgraphsset{
source edge style/.code=\tikz@lib@annotate@{a}{\tikz@lib@graph@name}{#1}{},
source edge node/.code=\tikz@lib@annotate@{a}{\tikz@lib@graph@name}{}{#1},
source edge clear/.code={
\expandafter\global\expandafter\let\csname tikz@lgca@@\tikz@lib@graph@name\endcsname\relax%
},
target edge style/.code=\tikz@lib@annotate@{b}{\tikz@lib@graph@name}{#1}{},
target edge node/.code=\tikz@lib@annotate@{b}{\tikz@lib@graph@name}{}{#1},
target edge clear/.code={%
\expandafter\global\expandafter\let\csname tikz@lgcb@@\tikz@lib@graph@name\endcsname\relax%
}
}%
\def\tikz@lib@graph@pack@node@list{%
{%
\let\tikz@lg@packed\pgfutil@empty%
\let\tikz@lg@do\tikz@lg@packer%
\tikz@lib@graph@node@list%
\expandafter
}\expandafter%
\def\expandafter\tikz@lib@graph@node@list\expandafter{\tikz@lg@packed}%
}%
\def\tikz@lg@packer#1{%
\expandafter\ifx\csname tikz@lg@p@#1\endcsname\pgf@stop%
\else%
\expandafter\let\csname tikz@lg@p@#1\endcsname\pgf@stop%
\expandafter\def\expandafter\tikz@lg@packed\expandafter{\tikz@lg@packed\tikz@lg@do{#1}}
\fi
}%
\def\tikzgraphforeachcolorednode#1#2{%
\tikz@lib@graph@pack@node@list%
\expandafter\def\expandafter\iftikz@lib@graph@color@picker\expandafter{\csname iftikz@lgc@#1@\endcsname}%
\let\tikz@lib@graph@action#2%
\let\tikz@lg@do\tikz@lg@pick%
\tikz@lib@graph@node@list%
}%
\def\tikz@lg@pick#1{
{%
\csname tikz@lgc@#1\endcsname%
\iftikz@lib@graph@color@picker
\global\tikz@color@testtrue%
\else%
\global\tikz@color@testfalse%
\fi%
}%
\iftikz@color@test\tikz@lib@graph@action{#1}\fi%
}%
\def\tikzgraphpreparecolor#1#2#3{%
\let\tikz@lib@graph@count#2%
\tikz@lib@graph@count0\relax
\def\tikz@lib@graph@prefix{#3}%
\tikzgraphforeachcolorednode{#1}\tikz@lib@graph@prepare%
}%
\def\tikz@lib@graph@prepare#1{%
\advance\tikz@lib@graph@count by1\relax%
\expandafter\def\csname\tikz@lib@graph@prefix\the\tikz@lib@graph@count\endcsname{#1}%
}%
\tikzgraphsset{
complete bipartite/.style 2 args={operator={
\def\tikz@lg@shoreb{#2}%
\tikzgraphforeachcolorednode{#1}\tikz@lib@graph@bipartite@outer
}},
complete bipartite/.default={target'}{source'},
induced complete bipartite/.style 2 args={
induced independent set={#1},
induced independent set={#2},
complete bipartite={#1}{#2}
},
induced complete bipartite/.default={target'}{source'},
}%
\def\tikz@lib@graph@bipartite@outer#1{%
\def\tikz@lib@graph@from{#1}%
{%
\tikzgraphforeachcolorednode{\tikz@lg@shoreb}\tikz@lib@graph@bipartite@inner%
}%
}%
\def\tikz@lib@graph@bipartite@inner#1{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\tikz@lib@graph@from\else%
\tikz@lib@graph@default@new@edge{\tikz@lib@graph@from}{#1}%
\fi%
}%
\def\tikz@lib@graph@default@new@edge#1#2{%
\pgfkeysgetvalue{/tikz/graphs/@edges styling}\pgf@temp
\pgfkeysgetvalue{/tikz/graphs/@edges node}\pgf@temp@b
\let\tikz@lib@add@temp\pgfutil@empty%
\tikz@lib@graph@add@edge@annotations{a}{#1}
\tikz@lib@graph@add@edge@annotations{b}{#2}
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@temp%
\expandafter\expandafter\expandafter{\expandafter\pgf@temp\tikz@lib@add@temp}%
\expandafter\expandafter\expandafter\tikz@lib@graph@default@new@edge@%
\expandafter\expandafter\expandafter{\expandafter\pgf@temp\expandafter}\expandafter{\pgf@temp@b}{#1}{#2}%
}%
\def\tikz@lib@graph@default@new@edge@#1#2#3#4{%
\iftikz@lib@graph@simple%
\edef\tikz@temp{{\pgfkeysvalueof{/tikz/graphs/default edge kind}}{#3}{#4}}
\expandafter\tikz@lib@graph@set@simple@edge\tikz@temp{#1}{#2}%
\else%
\pgfkeys{/tikz/graphs/.cd,new \pgfkeysvalueof{/tikz/graphs/default edge kind}={#3}{#4}{#1}{#2}}%
\fi%
}%
\def\tikz@lib@graph@add@edge@annotations#1#2{%
\ifcsname tikz@lgc#1@@#2\endcsname%
\expandafter\let\expandafter\tikz@lg@temp@\csname tikz@lgc#1@@#2\endcsname%
\ifx\tikz@lg@temp@\relax\else
\expandafter\tikz@lib@graph@add@edge@annotations@\tikz@lg@temp@%
\let\tikz@lib@add@temp\tikz@lib@final@edge@style
\fi%
\fi%
}%
\def\tikz@lib@graph@add@edge@annotations@#1#2{
\expandafter\def\expandafter\pgf@temp\expandafter{\pgf@temp,#1}%
\expandafter\def\expandafter\pgf@temp@b\expandafter{\pgf@temp@b#2}%
}%
\def\tikz@lib@final@edge@style{,after source and target edge/.try}%
\tikzgraphsset{
clique/.style={operator={
\tikzgraphpreparecolor{#1}\c@pgf@counta{tikz@lg}%
\tikz@lg@clique@loop%
}},
clique/.default=all
}%
\def\tikz@lg@clique@loop{%
\ifnum\c@pgf@counta=0\relax%
\else
\c@pgf@countb=\c@pgf@counta\relax%
\tikz@lg@clique@loop@inner%
\advance\c@pgf@counta by-1\relax%
\expandafter\tikz@lg@clique@loop%
\fi%
}%
\def\tikz@lg@clique@loop@inner{%
\advance\c@pgf@countb by-1\relax%
\ifnum\c@pgf@countb>0\relax%
\tikz@lib@graph@default@new@edge{\csname tikz@lg\the\c@pgf@countb\endcsname}{\csname tikz@lg\the\c@pgf@counta\endcsname}%
\expandafter\tikz@lg@clique@loop@inner%
\fi%
}%
\tikzgraphsset{
induced independent set/.style={operator={
\pgfkeysgetvalue{/tikz/graphs/default edge kind}\tikz@lg@default%
\pgfkeyssetvalue{/tikz/graphs/default edge kind}{-!-}%
\tikzgraphpreparecolor{#1}\c@pgf@counta{tikz@lg}%
\tikz@lg@indep@loop%
\pgfkeyslet{/tikz/graphs/default edge kind}\tikz@lg@default%
}},
induced independent set/.default=all
}%
\def\tikz@lg@indep@loop{%
\ifnum\c@pgf@counta=0\relax%
\else
\c@pgf@countb=\c@pgf@counta\relax%
\tikz@lg@indep@loop@inner%
\advance\c@pgf@counta by-1\relax%
\expandafter\tikz@lg@indep@loop%
\fi%
}%
\def\tikz@lg@indep@loop@inner{%
\advance\c@pgf@countb by-1\relax%
\ifnum\c@pgf@countb>0\relax%
\tikz@lib@graph@default@new@edge{\csname tikz@lg\the\c@pgf@counta\endcsname}{\csname tikz@lg\the\c@pgf@countb\endcsname}%
\expandafter\tikz@lg@indep@loop@inner%
\fi%
}%
\tikzgraphsset{
path/.style={operator={%
\let\tikz@lg@prev\relax%
\tikzgraphforeachcolorednode{#1}\tikz@lib@graph@path@do%
}},
path/.default=all,
induced path/.style={induced independent set={#1},path={#1}},
induced path/.default=all,
}%
\def\tikz@lib@graph@path@do#1{%
\ifx\tikz@lg@prev\relax%
\else%
\tikz@lib@graph@default@new@edge{\tikz@lg@prev}{#1}%
\fi
\def\tikz@lg@prev{#1}%
}%
\tikzgraphsset{
cycle/.style={operator={%
\let\tikz@lg@prev\relax%
\let\tikz@lg@first\relax%
\tikzgraphforeachcolorednode{#1}\tikz@lib@graph@cycle@do%
\ifx\tikz@lg@first\relax%
\else%
\tikz@lib@graph@default@new@edge{\tikz@lg@prev}{\tikz@lg@first}%
\fi%
}},
cycle/.default=all,
induced cycle/.style={induced independent set={#1},cycle={#1}},
induced cycle/.default=all,
}%
\def\tikz@lib@graph@cycle@do#1{%
\ifx\tikz@lg@prev\relax%
\def\tikz@lg@prev{#1}%
\let\tikz@lg@first\tikz@lg@prev%
\else%
\tikz@lib@graph@default@new@edge{\tikz@lg@prev}{#1}%
\def\tikz@lg@prev{#1}%
\fi%
}%
\tikzgraphsset{
matching and star/.style 2 args={operator=%
{%
\tikzgraphpreparecolor{#1}\c@pgf@counta{tikz@lg}
\c@pgf@countb=0\relax%
\let\tikz@lg@prev\relax
\tikzgraphforeachcolorednode{#2}\tikz@lib@graph@flow@do%
\tikz@lib@graph@flow@rest%
}%
},
matching and star/.default={target'}{source'}
}%
\def\tikz@lib@graph@flow@do#1{%
\advance\c@pgf@countb by1\relax%
\ifnum\c@pgf@countb>\c@pgf@counta\relax%
\c@pgf@countb=\c@pgf@counta\relax%
\fi%
\ifnum\c@pgf@countb>0\relax%
\tikz@lib@graph@default@new@edge{\csname tikz@lg\the\c@pgf@countb\endcsname}{#1}%
\fi%
\def\tikz@lg@prev{#1}%
}%
\def\tikz@lib@graph@flow@rest{%
\ifnum\c@pgf@countb<\c@pgf@counta\relax%
\ifnum\c@pgf@countb>0\relax%
\advance\c@pgf@countb by1\relax%
\tikz@lib@graph@default@new@edge{\csname tikz@lg\the\c@pgf@countb\endcsname}{\tikz@lg@prev}%
\expandafter\tikz@lib@graph@flow@rest%
\fi%
\fi%
}%
\tikzgraphsset{
matching/.style 2 args={operator=
{%
\tikzgraphpreparecolor{#1}\c@pgf@counta{tikz@lg}
\c@pgf@countb=0\relax%
\tikzgraphforeachcolorednode{#2}\tikz@lib@graph@matching@do%
}%
},
matching/.default={target'}{source'}
}%
\def\tikz@lib@graph@matching@do#1{%
\advance\c@pgf@countb by1\relax%
\ifnum\c@pgf@countb>\c@pgf@counta\relax%
\else%
\tikz@lib@graph@default@new@edge{\csname tikz@lg\the\c@pgf@countb\endcsname}{#1}%
\fi%
}%
\tikzgraphsset{
butterfly/.style={operator=
{}{%
\pgfkeys{/tikz/graphs/butterfly/.cd,#1}%
\ifnum\pgfkeysvalueof{/tikz/graphs/butterfly/level}=0\relax%
\tikzgraphinvokeoperator{matching and star={\pgfkeysvalueof{/tikz/graphs/butterfly/from}}{\pgfkeysvalueof{/tikz/graphs/butterfly/to}}}%
\else%
{%
\tikzgraphpreparecolor{\pgfkeysvalueof{/tikz/graphs/butterfly/from}}\c@pgf@counta{tikz@lg}
\c@pgf@countb=0\relax%
\tikzgraphforeachcolorednode{\pgfkeysvalueof{/tikz/graphs/butterfly/to}}\tikz@lib@graph@butterfly@do%
}%
\iftikz@butterfly@prime\else\tikzgraphinvokeoperator{matching and star={\pgfkeysvalueof{/tikz/graphs/butterfly/from}}{\pgfkeysvalueof{/tikz/graphs/butterfly/to}}}\fi%
\fi%
}%
},
butterfly/.default=,
butterfly/level/.initial=1,
butterfly/from/.initial=target',
butterfly/to/.initial=source',
butterfly'/.style={operator={}{\tikz@butterfly@primetrue\pgfkeysalso{butterfly={#1}}}},
butterfly'/.default=,
}%
\newif\iftikz@butterfly@prime
\def\tikz@lib@graph@butterfly@do#1{%
\advance\c@pgf@countb by1\relax%
\c@pgf@countc=\pgfkeysvalueof{/tikz/graphs/butterfly/level}\relax%
{%
\count0=\c@pgf@countc\relax%
\multiply\count0 by2\relax%
\count1=\c@pgf@countb\relax%
\advance\count1 by-1\relax%
\count2=\count1\relax%
\count3=\count1\relax%
\divide\count1 by\count0\relax%
\multiply\count1 by\count0\relax%
\advance\count2 by-\count1\relax%
\ifnum\count2<\c@pgf@countc\relax%
\advance\count3 by \c@pgf@countc\relax%
\else%
\advance\count3 by -\c@pgf@countc\relax%
\fi%
\expandafter%
}%
\expandafter\c@pgf@countc\the\count3\relax%
\advance\c@pgf@countc by1\relax%
\ifnum\c@pgf@countc>\c@pgf@counta\relax%
\c@pgf@countc=\c@pgf@counta\relax%
\fi%
\tikz@lib@graph@default@new@edge{\csname tikz@lg\the\c@pgf@countc\endcsname}{#1}%
}%
\tikzgraphsset{no edges/.style={operator=\relax}}%
\tikzgraphsset{
grid/.style={operator={
\tikzgraphpreparecolor{#1}\c@pgf@counta{tikz@lg}%
\c@pgf@countb=0\relax%
\tikzgraphpreparewrapafter%
\tikz@lg@grid@loop%
}%
},
grid/.default=all
}%
\def\tikzgraphpreparewrapafter{%
\pgfkeysgetvalue{/tikz/graphs/wrap after}\tikz@temp%
\ifnum\tikz@temp=0\relax%
\pgfmathparse{sqrt(\tikzgraphVnum)}%
\pgfmathint{\pgfmathresult}%
\edef\tikzgraphwrapafter{\pgfmathresult}%
\else%
\edef\tikzgraphwrapafter{\tikz@temp}
\fi%
}%
\def\tikz@lg@grid@loop{%
\ifnum\c@pgf@counta=0\relax%
\else%
\advance\c@pgf@countb by 1\relax%
\pgfmathmod{\c@pgf@countb-1}{\tikzgraphwrapafter}%
\pgfmathint{\pgfmathresult}%
\ifnum\pgfmathresult>0%
\pgfmathsubtract{\c@pgf@countb}{1}%
\pgfmathint{\pgfmathresult}%
\tikz@lib@graph@default@new@edge{\csname tikz@lg\the\c@pgf@countb\endcsname}{\csname tikz@lg\pgfmathresult\endcsname}%
\fi%
\pgfmathparse{\c@pgf@countb <= \tikzgraphwrapafter}%
\ifnum\pgfmathresult=0%
\pgfmathsubtract{\c@pgf@countb}{\tikzgraphwrapafter}%
\pgfmathint{\pgfmathresult}%
\tikz@lib@graph@default@new@edge{\csname tikz@lg\pgfmathresult\endcsname}{\csname tikz@lg\the\c@pgf@countb\endcsname}%
\fi%
\advance\c@pgf@counta by-1\relax%
\expandafter\tikz@lg@grid@loop%
\fi%
}%
\tikzgraphsset{
placement/.cd,
compute position/.code=\tikz@lib@graph@linear@pos,
place/.code={%
\pgfkeys{/tikz/graphs/placement/compute position}%
\aftergroup\tikz@lib@graph@reset@locals%
\pgfkeyssetvalue{/tikz/graphs/placement/element count}{0}%
\pgfkeyssetvalue{/tikz/graphs/placement/chain count}{0}%
\pgfkeyssetvalue{/tikz/graphs/placement/depth}{0}%
\pgfkeyssetvalue{/tikz/graphs/placement/width}{0}%
\pgfkeyssetvalue{/tikz/graphs/placement/local depth}{0}%
\pgfkeyssetvalue{/tikz/graphs/placement/local width}{0}%
},
element count/.initial=0,
chain count/.initial=0,
depth/.initial=0,
width/.initial=0,
level/.initial=0,
logical node depth/.code=\def\pgfmathresult{1},
logical node width/.code=\def\pgfmathresult{1},
}%
\def\tikz@lib@graph@reset@locals{%
\gdef\tikz@lib@graph@group@depth{0}%
\gdef\tikz@lib@graph@group@width{0}%
}%
\tikzgraphsset{
Cartesian placement/.style={
placement/place,
placement/compute position/.code=\tikz@lib@graph@linear@pos%
},
chain shift/.initial={(1,0)},
group shift/.initial={(0,-1)},
grow right/.style={
placement/place,
chain shift={(#1,0)},
@auto anchor horizontal=center,
placement/logical node width/.code=\def\pgfmathresult{1}
},
grow right/.default=1,
grow left/.style={
placement/place,
chain shift={(-#1,0)},
@auto anchor horizontal=center,
placement/logical node width/.code=\def\pgfmathresult{1}
},
grow left/.default=1,
grow up/.style={
placement/place,
chain shift={(0,#1)},
@auto anchor horizontal=center,
placement/logical node width/.code=\def\pgfmathresult{1}
},
grow up/.default=1,
grow down/.style={
placement/place,
chain shift={(0,-#1)},
@auto anchor vertical=center,
placement/logical node width/.code=\def\pgfmathresult{1}
},
grow down/.default=1,
branch right/.style={
placement/place,
group shift={(#1,0)},
@auto anchor horizontal=center,
placement/logical node depth/.code=\def\pgfmathresult{1}
},
branch right/.default=1,
branch left/.style={
placement/place,
group shift={(-#1,0)},
@auto anchor horizontal=center,
placement/logical node depth/.code=\def\pgfmathresult{1}
},
branch left/.default=1,
branch up/.style={
placement/place,
group shift={(0,#1)},
@auto anchor vertical=center,
placement/logical node depth/.code=\def\pgfmathresult{1}
},
branch up/.default=1,
branch down/.style={
placement/place,
group shift={(0,-#1)},
@auto anchor vertical=center,
placement/logical node depth/.code=\def\pgfmathresult{1}
},
branch down/.default=1,
grow right sep/.style={
Cartesian placement,
chain shift={(1pt,0)},
@auto anchor horizontal=west,
placement/logical node width/.code=\tikz@lib@graph@width@sep{##1}{#1}
},
grow right sep/.default=1em,
grow left sep/.style={
Cartesian placement,
chain shift={(-1pt,0)},
@auto anchor horizontal=east,
placement/logical node width/.code=\tikz@lib@graph@width@sep{##1}{#1}
},
grow left sep/.default=1em,
grow up sep/.style={
Cartesian placement,
chain shift={(0,1pt)},
@auto anchor vertical=south,
placement/logical node width/.code=\tikz@lib@graph@depth@sep{##1}{#1}
},
grow up sep/.default=1em,
grow down sep/.style={
Cartesian placement,
chain shift={(0,-1pt)},
@auto anchor vertical=north,
placement/logical node width/.code=\tikz@lib@graph@depth@sep{##1}{#1}
},
grow down sep/.default=1em,
grow right sep/.style={
Cartesian placement,
chain shift={(1pt,0)},
@auto anchor horizontal=west,
placement/logical node width/.code=\tikz@lib@graph@width@sep{##1}{#1}
},
branch right sep/.style={
Cartesian placement,
group shift={(1pt,0)},
@auto anchor horizontal=west,
placement/logical node depth/.code=\tikz@lib@graph@width@sep{##1}{#1}
},
branch right sep/.default=1em,
branch left sep/.style={
Cartesian placement,
group shift={(-1pt,0)},
@auto anchor horizontal=east,
placement/logical node depth/.code=\tikz@lib@graph@width@sep{##1}{#1}
},
branch left sep/.default=1em,
branch up sep/.style={
Cartesian placement,
group shift={(0,1pt)},
@auto anchor vertical=south,
placement/logical node depth/.code=\tikz@lib@graph@depth@sep{##1}{#1}
},
branch up sep/.default=1em,
branch down sep/.style={
Cartesian placement,
group shift={(0,-1pt)},
@auto anchor vertical=north,
placement/logical node depth/.code=\tikz@lib@graph@depth@sep{##1}{#1}
},
branch down sep/.default=1em,
@auto anchor horizontal/.style={
nodes={anchor=\csname tikz@lib@graph@auto@\tikz@lib@graph@auto@h @\tikz@lib@graph@auto@v\endcsname},
/utils/exec=\def\tikz@lib@graph@auto@h{#1}
},
@auto anchor vertical/.style={
nodes={anchor=\csname tikz@lib@graph@auto@\tikz@lib@graph@auto@h @\tikz@lib@graph@auto@v\endcsname},
/utils/exec=\def\tikz@lib@graph@auto@v{#1}
},
no placement/.style={
placement/place,
placement/compute position/.code=%
}
}%
\def\tikz@lib@graph@auto@h{center}%
\def\tikz@lib@graph@auto@v{center}%
\def\tikz@lib@graph@auto@center@center{center}%
\def\tikz@lib@graph@auto@west@center{west}%
\def\tikz@lib@graph@auto@east@center{east}%
\def\tikz@lib@graph@auto@center@north{north}%
\def\tikz@lib@graph@auto@west@north{north west}%
\def\tikz@lib@graph@auto@east@north{north east}%
\def\tikz@lib@graph@auto@center@south{south}%
\def\tikz@lib@graph@auto@west@south{south west}%
\def\tikz@lib@graph@auto@east@south{south east}%
\def\tikz@lib@graph@linear@pos{%
\pgfkeysgetvalue{/tikz/graphs/chain shift}\tikz@temp
\expandafter\tikz@scan@one@point\expandafter\pgf@process\tikz@temp
\pgf@process{\pgfpointscale{\pgfkeysvalueof{/tikz/graphs/placement/width}}{}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgfkeysgetvalue{/tikz/graphs/group shift}\tikz@temp
\expandafter\tikz@scan@one@point\expandafter\pgf@process\tikz@temp
\pgf@process{\pgfpointscale{\pgfkeysvalueof{/tikz/graphs/placement/depth}}{}}%
\advance\pgf@xa by\pgf@x%
\advance\pgf@ya by\pgf@y%
\edef\tikz@lib@graph@shift{(\the\pgf@xa,\the\pgf@ya)}
\pgfkeys{/tikz/graphs/nodes/.expanded={shift={\tikz@lib@graph@shift}}}
}%
\def\tikz@lib@graph@width@sep#1#2{%
\pgf@process{\pgfpointdiff{\pgfpointanchor{#1}{west}}{\pgfpointanchor{#1}{east}}}%
\pgfmathparse{#2+\the\pgf@x}%
}%
\def\tikz@lib@graph@depth@sep#1#2{%
\pgf@process{\pgfpointdiff{\pgfpointanchor{#1}{south}}{\pgfpointanchor{#1}{north}}}%
\pgfmathparse{#2+\the\pgf@y}%
}%
\tikzgraphsset{,
circular placement/.style={
placement/place,
placement/compute position/.code=\tikz@lib@graph@circular@pos,%
placement/logical node depth/.code=\def\pgfmathresult{1},
placement/logical node width/.code=\def\pgfmathresult{1},
},
clockwise/.style={
circular placement,
group polar shift={(-360/#1:0)}
},
clockwise/.default=\tikzgraphVnum,
counterclockwise/.style={
circular placement,
group polar shift={(360/#1:0)}
},
counterclockwise/.default=\tikzgraphVnum,
chain polar shift/.initial={(0:1cm)},
group polar shift/.initial={(60:0)},
radius/.initial=1cm,
phase/.initial=90,
}%
\def\tikz@lib@graph@circular@pos{%
\pgfkeysgetvalue{/tikz/graphs/chain polar shift}\tikz@temp
\expandafter\tikz@lib@graph@decompose@polar\tikz@temp%
\pgf@process{\pgfpointscale{\pgfkeysvalueof{/tikz/graphs/placement/width}}{}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgfkeysgetvalue{/tikz/graphs/group polar shift}\tikz@temp
\expandafter\tikz@lib@graph@decompose@polar\tikz@temp%
\pgf@process{\pgfpointscale{\pgfkeysvalueof{/tikz/graphs/placement/depth}}{}}%
\advance\pgf@xa by\pgf@x%
\advance\pgf@ya by\pgf@y%
\pgfmathparse{\pgfkeysvalueof{/tikz/graphs/radius}}%
\advance\pgf@ya by\pgfmathresult pt%
\pgfmathsetmacro\tikz@temp{\the\pgf@xa+\pgfkeysvalueof{/tikz/graphs/phase}}%
\edef\tikz@lib@graph@shift{(\tikz@temp:\the\pgf@ya)}
\pgfkeys{/tikz/graphs/nodes/.expanded={shift={\tikz@lib@graph@shift}}}
}%
\def\tikz@lib@graph@decompose@polar(#1:#2){%
\pgfmathsetlength\pgf@x{#1}%
\pgfmathsetlength\pgf@y{#2}%
}%
\tikzgraphsset{
grid placement/.style={
placement/place,
placement/compute position/.code=\tikz@lib@graph@grid@pos,%
},
}%
\def\tikz@lib@graph@grid@pos{%
\tikzgraphpreparewrapafter%
\pgfkeysgetvalue{/tikz/graphs/placement/depth}\tikz@temp@depth%
\pgfkeysgetvalue{/tikz/graphs/placement/width}\tikz@temp@width%
\pgfmathsetmacro{\tikz@temp}{max(\tikz@temp@depth, \tikz@temp@width)}%
\pgfmathsetmacro{\tikz@temp@col}{mod(\tikz@temp,\tikzgraphwrapafter)}%
\pgfmathsetmacro{\tikz@temp@row}{div(\tikz@temp,\tikzgraphwrapafter)}%
\pgfkeysgetvalue{/tikz/graphs/group shift}\tikz@temp%
\expandafter\tikz@scan@one@point\expandafter\tikz@lib@graph@grid@pos@a\tikz@temp%
\pgfkeysgetvalue{/tikz/graphs/chain shift}\tikz@temp%
\expandafter\tikz@scan@one@point\expandafter\tikz@lib@graph@grid@pos@b\tikz@temp%
\edef\tikz@lib@graph@shift{(\the\pgf@xa,\the\pgf@ya)}
\pgfkeys{/tikz/graphs/nodes/.expanded={shift={\tikz@lib@graph@shift}}}
}%
\def\tikz@lib@graph@grid@pos@a#1{\pgf@process{\pgfpointscale{\tikz@temp@row}{#1}}\pgf@xa=\pgf@x\relax\pgf@ya=\pgf@y\relax}%
\def\tikz@lib@graph@grid@pos@b#1{\pgf@process{\pgfpointscale{\tikz@temp@col}{#1}}%
\advance\pgf@xa by\pgf@x\relax
\advance\pgf@ya by\pgf@y\relax}%
\tikzgraphsset{
wrap after/.initial=0,
V/.code={%
\def\tikzgraphV{#1}%
\c@pgf@counta=0\foreach \tikz@dummy in {#1} {\global\advance\c@pgf@counta by1\relax}%
\edef\tikzgraphVnum{\the\c@pgf@counta}
},
V={1},
n/.style={V={1,...,#1},name shore V/.style={name=V}},
W/.code={%
\def\tikzgraphW{#1}%
\c@pgf@counta=0\foreach \tikz@dummy in {#1} {\global\advance\c@pgf@counta by1\relax}%
\edef\tikzgraphWnum{\the\c@pgf@counta}
},
W={1},
m/.style={W={1,...,#1},name shore W/.style={name=W}},
name shore V/.style=,
name shore W/.style=,
}%
\tikzgraphsset{quick/.is if=tikz@graph@quick}%
\newif\iftikz@graph@quick
\def\tikz@lib@graphs@parse@quick@graph{
\begingroup%
\global\tikz@qnode@count0\relax%
\let\tikzgraphnodepath\pgfutil@empty%
\tikz@q@outertrue%
\afterassignment\tikz@lib@graphs@quick@main\let\pgf@temp=%
}%
\newcount\tikz@qnode@count
\newif\iftikz@q@outer
\def\tikz@lib@graphs@quick@main{%
\afterassignment\tikz@lib@graphs@quick@handle\let\pgf@let@token=%
}%
\def\tikz@lib@graphs@quick@handle{%
\ifx\pgf@let@token"%
\expandafter\tikz@lib@graphs@quick@first@node%
\else%
\expandafter\tikz@lib@graphs@quick@other%
\fi%
}%
\def\tikz@lib@graphs@quick@other{%
\let\tikz@next\tikz@lib@graphs@quick@error%
\ifx\pgf@let@token\egroup%
\let\tikz@next\tikz@lib@graphs@quick@end@group%
\else%
\ifx\pgf@let@token\bgroup%
\let\tikz@next\tikz@lib@graphs@quick@start@group%
\else%
\ifx\pgf@let@token\par%
\let\tikz@next\tikz@lib@graphs@quick@main%
\fi%
\fi
\fi%
\tikz@next%
}%
\def\tikz@lib@graphs@quick@error#1{\tikzerror{Unexpected token '\string#1' in quick graph syntax}\tikz@lib@graphs@quick@main}%
\def\tikz@lib@graphs@quick@start@group{%
\pgfutil@ifnextchar[\tikz@lib@graphs@quick@start@group@{\tikzerror{Group
in quick graph syntax must start with options.}}
}%
\def\tikz@lib@graphs@quick@start@group@[#1]{%
\begingroup%
\tikz@q@outerfalse%
\tikzgraphsset{#1}%
\tikz@lib@graphs@quick@main%
}%
\def\tikz@lib@graphs@quick@end@group{%
\iftikz@q@outer%
\endgroup%
\pgfutil@loop%
\ifnum\tikz@qnode@count>0\relax%
\expandafter\global\expandafter\let\csname tikz@gr@q@@\csname tikz@gr@qn@@\the\tikz@qnode@count\endcsname\endcsname\relax%
\expandafter\global\expandafter\let\csname tikz@gr@qn@@\the\tikz@qnode@count\endcsname\relax%
\global\advance\tikz@qnode@count by-1\relax%
\pgfutil@repeat%
\expandafter\tikz@lib@graph@main@done%
\else%
\endgroup%
\expandafter\tikz@lib@graphs@end@group@%
\fi%
}%
\def\tikz@lib@graphs@end@group@{%
\pgfutil@ifnextchar;{\expandafter\tikz@lib@graphs@quick@main\pgfutil@gobble}{%
\pgfutil@ifnextchar,{\expandafter\tikz@lib@graphs@quick@main\pgfutil@gobble}{%
\tikzerror{Graph groups in quick syntax must be followed by a semicolon or a comma.}%
}%
}%
}%
\def\tikz@lib@graphs@quick@first@node{%
\let\tikz@quick@prev@node\relax%
\tikz@lib@graphs@quick@node%
}%
\def\tikz@lib@graphs@quick@node#1"{%
\def\tikzgraphnodename{#1}%
\let\tikzgraphnodetext\tikzgraphnodename%
\iftikzgraphsautonumbernodes
\edef\tikzgraphnodename{\tikzgraphnodename\tikz@lib@auto@sep\the\tikz@lib@auto@number}%
\global\advance\tikz@lib@auto@number by1\relax%
\fi
\pgfutil@ifnextchar/\tikz@lib@graphs@quick@text\tikz@lib@graphs@quick@opt%
}%
\def\tikz@lib@graphs@quick@text/"#1"{%
\def\tikzgraphnodetext{#1}%
\tikz@lib@graphs@quick@opt%
}%
\def\tikz@lib@graphs@quick@opt{%
\pgfutil@ifnextchar[\tikz@lib@graphs@quick@withopt{\tikz@lib@graphs@quick@withopt[]}%
}%
\def\tikz@lib@graphs@quick@withopt[#1]{%
\expandafter\ifx\csname tikz@gr@q@@\tikzgraphnodename\endcsname\relax%
\global\advance\tikz@qnode@count by1\relax%
\expandafter\global\expandafter\let\csname tikz@gr@q@@\tikzgraphnodename\endcsname\pgfutil@empty%
\expandafter\global\expandafter\let\csname tikz@gr@qn@@\the\tikz@qnode@count\endcsname\tikzgraphnodename%
\let\tikzgraphnodefullname\tikzgraphnodename%
\let\tikzgraphnodeas\tikzgraphnodeas@default%
\node [%
name=\tikzgraphnodename,%
graphs/redirect unknown to tikz,
/tikz/graphs/.cd,%
/tikz/graphs/@nodes styling,%
#1]%
{%
\tikzgraphnodeas%
};%
\else%
\tikzgdlatenodeoptionacallback{\tikzgraphnodename}%
\node also[graphs/redirect unknown to tikz,/tikz/graphs/.cd,#1](\tikzgraphnodename);%
\fi%
\tikz@lig@graph@quikc@make@edge@if@necessary%
\tikz@lib@graphs@quick@scan@after@node%
}%
\def\tikz@lig@graph@quikc@make@edge@if@necessary{%
\ifx\tikz@quick@prev@node\relax%
\else%
\tikz@lib@graphs@quick@make@edge%
\fi%
}%
\def\tikz@lib@graphs@quick@scan@after@node{%
\pgfutil@ifnextchar,\tikz@lib@graphs@quick@comma{%
\pgfutil@ifnextchar;\tikz@lib@graphs@quick@semi{%
\pgfutil@ifnextchar\egroup{\tikz@lib@graphs@quick@semi;}{%
\pgfutil@ifnextchar\par{\expandafter\tikz@lib@graphs@quick@scan@after@node\tikz@lib@graphs@quick@gobble@par}%
\tikz@lib@graphs@quick@connector}}}%
}%
\long\def\tikz@lib@graphs@quick@gobble@par#1{}%
\def\tikz@lib@graphs@quick@comma,{\tikz@lib@graphs@quick@main}%
\def\tikz@lib@graphs@quick@semi;{\tikz@lib@graphs@quick@main}%
\def\tikz@lib@graphs@quick@connector#1#2{%
\def\tikz@lib@graphs@quick@edge@kind{#1#2}%
\pgfutil@ifnextchar>\tikz@lib@graphs@back@edge{%
\pgfutil@ifnextchar[\tikz@lib@graphs@quick@connector@handle@opt{\tikz@lib@graphs@quick@connector@handle@opt[]}%
}%
}%
\def\tikz@lib@graphs@back@edge#1{%
\expandafter\def\expandafter\tikz@lib@graphs@quick@edge@kind\expandafter{\tikz@lib@graphs@quick@edge@kind#1}%
\pgfutil@ifnextchar[\tikz@lib@graphs@quick@connector@handle@opt{\tikz@lib@graphs@quick@connector@handle@opt[]}%
}%
\def\tikz@lib@graphs@quick@connector@handle@opt[#1]{%
\def\tikz@lib@graphs@quick@edge@options{#1}%
\let\tikz@quick@prev@node\tikzgraphnodename%
\tikz@lib@graphs@quick@scan@after@connector%
}%
\def\tikz@lib@graphs@quick@scan@after@connector{%
\pgfutil@ifnextchar\par{\expandafter\tikz@lib@graphs@quick@scan@after@connector\tikz@lib@graphs@quick@gobble@par}{%
\pgfutil@ifnextchar"{\expandafter\tikz@lib@graphs@quick@node\pgfutil@gobble}{%
\tikzerror{Quotation marks expected after edge connector}%
}%
}%
}%
\def\tikz@lib@graphs@quick@make@edge{%
{
\expandafter\tikz@lib@graphs@quick@make@edge@styling\expandafter{\tikz@lib@graphs@quick@edge@options}%
\expandafter\expandafter\expandafter\tikz@lib@graphs@quick@make@edge@for%
\expandafter\expandafter\expandafter{\expandafter\tikz@quick@prev@node\expandafter}\expandafter{\tikzgraphnodename}%
}
}%
\def\tikz@lib@graphs@quick@make@edge@styling#1{%
\tikz@enable@edge@quotes%
\tikzgraphsset{.unknown/.code=\tikz@lib@graph@unknown@edge@option{##1},#1}%
}%
\def\tikz@lib@graphs@quick@make@edge@for#1#2{%
\pgfkeysgetvalue{/tikz/graphs/@edges styling}\pgf@tempa
\pgfkeysgetvalue{/tikz/graphs/@edges node}\pgf@temp@b
\expandafter\expandafter\expandafter\tikz@lib@graphs@quick@make@edge@for@with%
\expandafter\expandafter\expandafter{\expandafter\pgf@tempa\expandafter}\expandafter{\pgf@temp@b}{#1}{#2}%
}%
\def\tikz@lib@graphs@quick@make@edge@for@with#1#2#3#4{%
\tikzgraphsset{new \tikz@lib@graphs@quick@edge@kind={#3}{#4}{#1}{#2}}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/graphs/tikzlibrarygraphs.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/graphs/tikzlibrarygraphs.standard.code.tex ====
\ProvidesFileRCS{tikzlibrarygraphs.standard.code.tex}
\usetikzlibrary{graphs}%
\tikzgraphsset{
declare={subgraph I_n}%
{
\foreach \tikz@lib@graph@node@num in \tikzgraphV
{ \tikz@lib@graph@node@num }
},
declare={subgraph I_nm}%
{
subgraph I_n [name shore V] -- [no edges]
subgraph I_n [name shore W, V/.expand once=\tikzgraphW]
},
declare={subgraph K_n}%
{
[clique]
subgraph I_n
},
declare={subgraph K_nm}%
{
[color class=shore V,
color class=shore W,
complete bipartite={shore V}{shore W}]
subgraph I_n [name shore V, shore V] -- [no edges]
subgraph I_n [name shore W, V/.expand once=\tikzgraphW, shore W]
},
declare={subgraph C_n}%
{
[cycle]
subgraph I_n
},
declare={subgraph P_n}%
{
[path]
subgraph I_n
},
declare={subgraph Grid_n}%
{
[grid]
subgraph I_n
},
p/.initial=0.5,
declare={subgraph G_np}%
{
[/utils/exec={
\pgfmathsetmacro\tikz@lib@lg@p{\pgfkeysvalueof{/tikz/graphs/p}}
\let\tikz@lib@gnp@edges\pgfutil@empty%
\foreach \tikz@lib@graph@node@a [count=\tikz@lib@g@count@a] in \tikzgraphV
\foreach \tikz@lib@graph@node@b [count=\tikz@lib@g@count@b] in \tikzgraphV
{
\ifnum\tikz@lib@g@count@a<\tikz@lib@g@count@b\relax
\pgfmathparse{rnd}
\ifdim\pgfmathresult pt<\tikz@lib@lg@p pt%
\ifx\tikz@lib@gnp@edges\pgfutil@empty
\xdef\tikz@lib@gnp@edges{\tikz@lib@graph@node@a--\tikz@lib@graph@node@b}%
\else
\xdef\tikz@lib@gnp@edges{\tikz@lib@gnp@edges,\tikz@lib@graph@node@a--\tikz@lib@graph@node@b}%
\fi
\fi
\fi
}
}]
\foreach \tikz@lg@temp in \tikz@lib@gnp@edges {
[parse/.expand once=\tikz@lg@temp]
}
},
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/graphs/tikzlibrarygraphs.standard.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzexternalshared.code.tex ====
\toksdef\t@tikzexternal@tmpa=0
\toksdef\t@tikzexternal@tmpb=1
\newif\iftikzexternal@nestedflag
\newif\iftikzexternal@verboseuptodate
\newif\iftikzexternal@verboseio
\newif\iftikzexternal@genfigurelist
\newif\iftikzexternal@onlynamed
\newif\iftikzexternal@file@isuptodate
\newif\iftikzexternal@force@remake
\newif\iftikzexternal@optimize
\newif\iftikzexternal@export@enabled
\tikzexternal@export@enabledtrue
\gdef\c@tikzexternal@version{2}
\newif\iftikzexternalremakenext
\newif\iftikzexternal@verbose@optimize
\tikzexternal@verbose@optimizetrue
\newif\iftikzexternalexportnext
\tikzexternalexportnexttrue
\def\tikzifexternalizing#1#2{%
\ifpgf@external@grabshipout #1\else #2\fi
}%
\def\tikzifexternalizingnext#1#2{%
\ifpgf@external@grabshipout
\tikzexternalgetnextfilename\tikzexternal@temp
\tikzifexternaljobnamematches\tikzexternal@temp{#1}{#2}%
\else
#2%
\fi
}%
\def\tikzifexternalizingcurrent#1#2{%
\ifpgf@external@grabshipout
\tikzexternalgetcurrentfilename\tikzexternal@temp
\ifx\tikzexternal@temp\pgfutil@empty
#2%
\else
\tikzifexternaljobnamematches\tikzexternal@temp{#1}{#2}%
\fi
\else
#2%
\fi
}%
\def\tikzifexternaljobnamematches#1#2#3{%
\edef\pgf@tempa{\expandafter\string\csname#1\endcsname}%
\edef\pgf@tempb{\expandafter\string\csname\pgfactualjobname\endcsname}%
\ifx\pgf@tempa\pgf@tempb #2\else#3 \fi%
}%
\pgfutil@IfUndefined{pdfshellescape}{%
\pgfutil@IfUndefined{pdf@shellescape}{%
\def\tikzexternalcheckshellescape{0}%
}{%
\let\tikzexternalcheckshellescape=\pdf@shellescape
}%
}{%
\let\tikzexternalcheckshellescape=\pdfshellescape
}%
\ifnum\tikzexternalcheckshellescape=1
\def\tikzexternalcheckshellescape{\pgfkeysvalueof{/tikz/external/shell escape}\space}%
\else
\def\tikzexternalcheckshellescape{}%
\fi
\newif\iftikzexternal@auto@detect@jobname
\pgfqkeys{/tikz/external}{
figure list/.is if=tikzexternal@genfigurelist,
aux in dpth/.style={/pgf/images/aux in dpth={#1}},%
disable dependency files/.code={%
\let\tikzexternalfiledependsonfile@ACTIVE=\tikzexternalfiledependsonfile
},
mode/.is choice,
mode/only graphics/.code = {%
\def\tikzexternal@opmode{0}%
\pgfkeysalso{/pgf/images/aux in dpth=true}%
},
mode/no graphics/.code = {\def\tikzexternal@opmode{1}},
mode/only pictures/.code = {\def\tikzexternal@opmode{1}},
mode/graphics if exists/.code= {%
\def\tikzexternal@opmode{2}%
\pgfkeysalso{/pgf/images/aux in dpth=true}%
},
mode/list only/.code = {\def\tikzexternal@opmode{3}\tikzexternal@genfigurelisttrue},
mode/convert with system call/.code={%
\def\tikzexternal@opmode{4}%
\pgfkeysalso{/tikz/external/figure list=false,/pgf/images/aux in dpth=true}%
},
mode/list and make/.code = {%
\def\tikzexternal@opmode{5}%
\pgfkeysalso{/tikz/external/figure list=true,/pgf/images/aux in dpth=true}%
},
mode=convert with system call,
force remake/.is if=tikzexternal@force@remake,
force remake/.default=true,
failed ref warnings for/.initial={\ref,\cite,\pageref},
export next/.is if=tikzexternalexportnext,
export/.is if=tikzexternal@export@enabled,
remake next/.is if=tikzexternalremakenext,
remake next/.default=true,
verbose IO/.is if=tikzexternal@verboseio,
verbose IO/.default=true,
verbose IO=true,
verbose optimize/.is if=tikzexternal@verbose@optimize,
verbose up to date/.is if=tikzexternal@verboseuptodate,
verbose/.style={
verbose IO=#1,
verbose optimize=#1,
verbose up to date=#1,
},
shell escape/.initial=-shell-escape,
read main aux/.is if=pgfexternalreadmainaux,
image discarded text/.initial={%
[[ \textsc{Image Discarded Due To} \texttt{`/tikz/external/%
\ifcase\tikzexternal@opmode\relax
mode=only graphics%
\or
mode=no graphics%
\or
mode=graphics if exists%
\or
mode=list only%
\or
mode=convert with system call%
\or
mode=list and make%
\fi
'}~]]%
\pgfutil@ifundefined{tikzexternal@warning@at@end}{%
\pgfutil@ifundefined{AtEndDocument}{}{%
\AtEndDocument{%
\message{! Package tikz Warning: Some images are not up-to-date and need to be generated. }%
}%
}%
\gdef\tikzexternal@warning@at@end{1}%
}{}%
},
optimize/.is choice,
optimize/true/.code={%
\tikzexternal@optimizetrue
\iftikzexternal@optimize
\ifpgf@external@grabshipout
\tikzexternal@optimize@REPLACE
\fi
\fi
},
optimize/false/.code={%
\tikzexternal@optimizefalse%
\tikzexternal@optimize@RESTORE
},%
optimize=true,
optimize away text/.code={[ \textsc{\string#1\ optimized away because it does not contribute to exported PDF}]},
optimize/install/.code={},%
optimize/restore/.code={},%
optimize command away/.code 2 args={%
\expandafter\global\expandafter\let\csname\string#1@ORIG\endcsname=#1%
\pgfkeysalso{%
/tikz/external/optimize/install/.append code={%
\def#1{\tikzexternal@optimize@away@cmd{#1}{#2}}%
},
/tikz/external/optimize/restore/.append code={%
\expandafter\let\expandafter#1\csname\string#1@ORIG\endcsname
}
}%
\iftikzexternal@optimize
\ifpgf@external@grabshipout
\tikzexternal@optimize@REPLACE
\fi
\fi
},
optimize command away=\includegraphics,
optimize command away=\pgfincludeexternalgraphics,
optimize latex env away/.code={%
\expandafter\let\expandafter\pgf@tempa\csname #1\endcsname
\expandafter\global\expandafter\let\csname #1@ORIG\endcsname=\pgf@tempa%
\pgfkeysalso{%
/tikz/external/optimize/install/.append code={%
\pgfutil@namedef{#1}{\tikzexternal@optimize@away@latex@env{#1}}%
},
/tikz/external/optimize/restore/.append code={%
\pgfutil@namelet{#1}{#1@ORIG}%
}%
}%
},
only named/.is if=tikzexternal@onlynamed,
only named/.default=true,
figure name/.initial=\tikzexternal@realjob-figure,
reset counter/.code={%
\expandafter\gdef\csname c@tikzext@no@#1\endcsname{0}%
},%
prefix/.code={\tikzsetexternalprefix{#1}},
up to date check/.is choice,
up to date check/simple/.code={\def\tikzexternal@uptodate@mode{0}},
up to date check/md5/.code={\def\tikzexternal@uptodate@mode{1}},
up to date check/diff/.code={\def\tikzexternal@uptodate@mode{2}},
up to date check=md5,
}
\expandafter\def\csname tikzexternal@driver@pgfsys-luatex.def\endcsname{%
\pgfkeyssetvalue{/tikz/external/system call}{%
lualatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"%
}%
}%
\expandafter\def\csname tikzexternal@driver@pgfsys-pdftex.def\endcsname{%
\pgfutil@IfUndefined{directlua}{%
\pgfkeyssetvalue{/tikz/external/system call}{%
pdflatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"%
}%
}{%
\pgfkeyssetvalue{/tikz/external/system call}{%
lualatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"%
}%
}%
}%
\expandafter\def\csname tikzexternal@driver@pgfsys-xetex.def\endcsname{%
\pgfkeyssetvalue{/tikz/external/system call}{%
xelatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"%
}%
}%
\expandafter\def\csname tikzexternal@driver@pgfsys-dvips.def\endcsname{%
\pgfkeyssetvalue{/tikz/external/system call}{%
latex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource" %
&& dvips -o "\image".ps "\image".dvi %
}%
}%
\pgfutil@ifundefined{tikzexternal@driver@\pgfsysdriver}{%
\csname tikzexternal@driver@pgfsys-pdftex.def\endcsname
}{%
\csname tikzexternal@driver@\pgfsysdriver\endcsname
}%
\def\tikzsetfigurename#1{\pgfkeyssetvalue{/tikz/external/figure name}{#1}}%
\def\tikzappendtofigurename#1{\pgfkeys{/tikz/external/figure name/.add={}{#1}}}
\def\tikzsetexternalprefix#1{\def\tikzexternal@filenameprefix{#1}}
\tikzsetexternalprefix{}
\def\tikzexternalize{%
\pgfutil@ifnextchar[{%
\tikzexternalize@opt
}{%
\tikzexternalize@opt[]%
}%
}%
\def\tikzexternalize@opt[#1]{%
\pgfutil@ifnextchar\bgroup{%
\tikzexternal@auto@detect@jobnamefalse
\tikzexternalize@opt@withname[#1]%
}{%
\tikzexternal@auto@detect@jobnametrue
\pgfutil@ifundefined{tikzexternalrealjob}{%
\let\tikzexternalrealjob=\jobname
}{}%
\def\pgf@tempa{\tikzexternalize@opt@withname[#1]}%
\expandafter\pgf@tempa\expandafter{\tikzexternalrealjob}%
}%
}%
\def\tikzexternalize@opt@withname[#1]#2{%
\gdef\tikzexternalrealjob{#2}%
\if1\tikzexternalize@hasbeencalled
\else
\pgfqkeys{/tikz/external}{#1}%
\def\tikzexternal@realjob{#2}%
\tikzexternalauxlock@init
\pgfrealjobname{#2}%
\def\tikzexternalize@hasbeencalled{1}%
\tikzexternalenable
\def\tikzexternal@determineimgextension##1:##2\relax{\gdef\tikzexternalimgextension{##1}}%
\xdef\pgf@tempa{\pgfsys@imagesuffixlist}%
\expandafter\tikzexternal@determineimgextension\pgf@tempa:\relax
\pgfutil@ifundefined{includegraphics}{%
\let\tikzexternal@orig@includegraphics=\relax
}{%
\let\tikzexternal@orig@includegraphics=\includegraphics
}%
\let\tikzexternalfiledependsonfile=\tikzexternalfiledependsonfile@ACTIVE
\let\tikzpicturedependsonfile=\tikzpicturedependsonfile@ACTIVE
\fi
}
\def\tikzexternalize@hasbeencalled{0}%
\def\tikzifexternalizehasbeencalled#1#2{%
\if1\tikzexternalize@hasbeencalled
#1%
\else
#2%
\fi
}%
\def\tikzexternalauxlock@init{%
\if4\tikzexternal@opmode
\ifpgfexternalreadmainaux
\edef\pgf@tempa{\expandafter\string\csname\tikzexternal@realjob\endcsname}%
\edef\pgf@tempb{\expandafter\string\csname\jobname\endcsname}%
\ifx\pgf@tempa\pgf@tempb
\tikzexternalauxlock@setlock{0}%
\else
\tikzexternalauxlock@getlockvalue
\if1\tikzexternallocked
\pgfexternalreadmainauxfalse
\else
\pgfexternalreadmainauxtrue
\fi
\fi
\else
\def\tikzexternalauxlock@setlock##1{}%
\fi
\fi
}
\def\tikzexternalauxlock@getlockvalue{%
\openin\r@pgf@reada=\tikzexternal@realjob.auxlock
\ifeof\r@pgf@reada
\def\tikzexternallocked{0}%
\else
\read\r@pgf@reada to\pgf@tempa
\pgf@tempa
\pgfutil@ifundefined
{tikzexternallocked}
{\def\tikzexternallocked{1}}%
{}%
\fi
\closein\r@pgf@reada
}%
\def\tikzexternalauxlock@setlock#1{%
\immediate\openout\w@pgf@writea=\tikzexternal@realjob.auxlock
\immediate\write\w@pgf@writea{\noexpand\def\noexpand\tikzexternallocked{#1}}%
\immediate\closeout\w@pgf@writea
}
\def\pgf@external@grab@refundefinedtrue@code{%
\gdef\noexpand\tikzexternal@systemcall@reschedule@to@end@document{1}%
}%
\def\tikzexternalimgextension{}%
\def\tikzexternaldisable{%
\tikzexternaldisable@nofading
\pgfutil@ifundefined{tikzexternal@orig@tikzfadingfrompicture}
{}%
{%
\let\tikzfadingfrompicture=\tikzexternal@orig@tikzfadingfrompicture
\let\endtikzfadingfrompicture=\tikzexternal@orig@endtikzfadingfrompicture
\let\tikzfading=\tikzexternal@orig@tikzfading
}%
}%
\def\tikzexternaldisable@nofading{%
\let\tikz=\tikzexternal@origtikz
\tikzexternal@TEXDIALECT@restore@picture
\iftikzexternal@optimize
\ifpgf@external@grabshipout
\tikzexternal@optimize@RESTORE
\fi
\fi
}
\def\tikzexternalenable{%
\if\tikzexternalize@hasbeencalled1%
\let\tikz=\tikzexternal@tikz@replacement
\tikzexternal@TEXDIALECT@installreplacement@picture
\pgfutil@ifundefined{tikzfadingfrompicture}%
{}%
{%
\pgfutil@ifundefined{tikzexternal@orig@tikzfadingfrompicture}{%
\let\tikzexternal@orig@tikzfadingfrompicture=\tikzfadingfrompicture
\let\tikzexternal@orig@endtikzfadingfrompicture=\endtikzfadingfrompicture
\let\tikzexternal@orig@tikzfading=\tikzfading
}{}%
\def\tikzfadingfrompicture{%
\begingroup
\tikzexternaldisable@nofading
\tikzexternal@orig@tikzfadingfrompicture}%
\def\endtikzfadingfrompicture{%
\tikzexternal@orig@endtikzfadingfrompicture
\endgroup}%
\def\tikzfading[##1]{%
\begingroup
\tikzexternaldisable@nofading
\tikzexternal@orig@tikzfading[##1]%
\endgroup}%
}%
\iftikzexternal@optimize
\ifpgf@external@grabshipout
\tikzexternal@optimize@REPLACE
\fi
\fi
\fi
}%
\def\tikzsetnextfilename#1{\gdef\tikzexternal@nextfile{#1}}
\tikzsetnextfilename{}
\long\gdef\tikzexternal@TEXDIALECT@collectpicture#1#2\endtikzpicture{#1{#2}}
\def\tikzexternal@TEXDIALECT@begpicture{\tikzpicture}
\def\tikzexternal@TEXDIALECT@endpicture{\endtikzpicture}%
\def\tikzexternal@TEXDIALECT@installreplacement@picture{%
\let\tikzpicture=\tikzexternal@tikzpicture@replacement
}%
\def\tikzexternal@TEXDIALECT@restore@picture{%
\let\tikzpicture=\tikzexternal@origpicture
}%
\let\tikzexternal@origtikz=\tikz
\let\tikzexternal@origpicture=\tikzpicture
\let\tikzexternal@origendpicture=\endtikzpicture
\let\tikzexternal@curfilename=\relax
\def\tikzexternal@tikzpicture@replacement{%
\leavevmode
\global\tikzexternal@file@isuptodatetrue%
\tikzexternal@getnextfilename\tikzexternal@curfilename
\ifx\tikzexternal@curfilename\pgfutil@empty
\ifpgf@external@grabshipout
\iftikzexternal@optimize
\let\tikzexternal@next=\tikzexternal@skipfigure
\else
\let\tikzexternal@next=\tikzexternal@normalpicture@nographics
\fi
\else
\let\tikzexternal@next=\tikzexternal@normalpicture@nographics
\fi
\else
\ifpgf@external@grabshipout
\tikzifexternaljobnamematches\tikzexternal@curfilename{%
\let\tikzexternal@next=\tikzexternal@externalizefig
}{%
\iftikzexternal@optimize
\let\tikzexternal@next=\tikzexternal@skipfigure
\else
\let\tikzexternal@next=\tikzexternal@normalpicture@nographics
\fi
}%
\else
\ifcase\tikzexternal@opmode\relax
\let\tikzexternal@next=\tikzexternal@forcegraphics
\or
\let\tikzexternal@next=\tikzexternal@normalpicture@nographics
\or
\let\tikzexternal@next=\tikzexternal@externalizefig
\or
\let\tikzexternal@next=\tikzexternal@listmodepicture
\or
\let\tikzexternal@next=\tikzexternal@externalizefig@systemcall
\or
\let\tikzexternal@next=\tikzexternal@list@and@makefile@mode@picture
\fi
\fi
\fi
\tikzexternal@next
}%
\def\tikzexternal@tikz@replacement{%
\pgfutil@ifnextchar[{\tikzexternal@tikz@replacement@opt}{\tikzexternal@tikz@replacement@opt[]}%
}%
\def\tikzexternal@tikz@replacement@opt[#1]{%
\pgfutil@ifnextchar\bgroup{\tikzexternal@tikz@replacement@opt@{#1}}{\tikzexternal@tikz@replacement@opt@@{#1}}%
}
\long\def\tikzexternal@tikz@replacement@opt@#1#2{%
\tikzexternal@tikz@replacement@opt@process{#1}{#2}%
}%
\def\tikzexternal@tikz@replacement@opt@@#1{%
\def\tikz@next{\tikzexternal@tikz@replacement@collectnormalsemicolon{#1}}%
\ifnum\the\catcode`\;=\active\relax%
\def\tikz@next{\tikzexternal@tikz@replacement@collectactivesemicolon{#1}}%
\fi%
\tikz@next}
\long\def\tikzexternal@tikz@replacement@collectnormalsemicolon#1#2;{%
\tikzexternal@tikz@replacement@opt@process{#1}{#2;}%
}%
{
\catcode`\;=\active
\long\gdef\tikzexternal@tikz@replacement@collectactivesemicolon#1#2;{%
\tikzexternal@tikz@replacement@opt@process{#1}{#2;}%
}
}
\long\def\tikzexternal@tikz@replacement@opt@process#1#2{%
\begingroup
\t@tikzexternal@tmpa=\expandafter{\tikzexternal@TEXDIALECT@begpicture[#1]#2}%
\t@tikzexternal@tmpb=\expandafter{\tikzexternal@TEXDIALECT@endpicture}%
\xdef\pgf@tempa{\the\t@tikzexternal@tmpa\the\t@tikzexternal@tmpb}%
\endgroup
\pgf@tempa
}
\def\tikzexternal@getnextfilename@advancecount{%
\begingroup
\c@pgf@counta=\csname c@tikzext@no@\tikzexternal@figurename\endcsname\relax
\advance\c@pgf@counta by1
\expandafter\xdef\csname c@tikzext@no@\tikzexternal@figurename\endcsname{\the\c@pgf@counta}%
\endgroup
}%
\def\tikzexternalgetnextfilename#1{%
\begingroup
\let\tikzexternal@getnextfilename@advancecount\relax%
\let\tikzexternal@getnextfilename@resetglobals=\relax%
\def\tikzexternal@protocol@to@file##1{}%
\tikzexternal@getnextfilename#1%
\pgfmath@smuggleone#1%
\endgroup
}%
\def\tikzexternalgetcurrentfilename#1{%
\ifx\tikzexternal@curfilename\relax
\let#1=\pgfutil@empty
\else
\let#1=\tikzexternal@curfilename
\fi
}
\def\tikzexternal@getnextfilename#1{%
\let#1=\pgfutil@empty
\iftikzexternal@export@enabled
\iftikzexternalexportnext
\begingroup
\t@tikzexternal@tmpa=\expandafter{\tikzexternal@filenameprefix}%
\ifx\tikzexternal@nextfile\pgfutil@empty
\iftikzexternal@onlynamed
\xdef\pgf@tempa{}%
\else
\pgfkeysgetvalue{/tikz/external/figure name}\tikzexternal@figurename
\pgfutil@ifundefined{c@tikzext@no@\tikzexternal@figurename}{%
\expandafter\gdef\csname c@tikzext@no@\tikzexternal@figurename\endcsname{0}%
}{}%
\t@tikzexternal@tmpb=\expandafter{\tikzexternal@figurename}%
\xdef\pgf@tempa{\the\t@tikzexternal@tmpa\the\t@tikzexternal@tmpb\csname c@tikzext@no@\tikzexternal@figurename\endcsname}%
\tikzexternal@getnextfilename@advancecount
\fi
\else
\t@tikzexternal@tmpb=\expandafter{\tikzexternal@nextfile}%
\xdef\pgf@tempa{\the\t@tikzexternal@tmpa\the\t@tikzexternal@tmpb}%
\fi
\endgroup
\let#1=\pgf@tempa
\fi
\fi
\tikzexternal@getnextfilename@resetglobals%
\tikzexternal@protocol@to@file#1%
}%
\def\tikzexternal@getnextfilename@resetglobals{%
\global\let\tikzexternal@nextfile=\pgfutil@empty
\global\tikzexternalexportnexttrue
}%
\def\tikzexternal@protocol@to@file#1{%
\ifpgf@external@grabshipout%
\else
\iftikzexternal@genfigurelist
\edef\tikzexternal@temp{#1}%
\ifx\tikzexternal@temp\pgfutil@empty
\else
\pgfutil@ifundefined{tikzexternal@listmode@openedfile}{%
\message{Opening '\tikzexternal@realjob.figlist' for writing.}%
\begingroup
\globaldefs=1
\csname newwrite\endcsname\tikzexternal@outfile
\endgroup
\immediate\openout\tikzexternal@outfile=\tikzexternal@realjob.figlist\relax
\gdef\tikzexternal@listmode@openedfile{1}%
\if\tikzexternal@opmode5%
\tikzexternal@list@and@make@prepare
\fi
}{}%
\iftikzexternal@verboseio
\pgf@typeout{Writing '#1' to '\tikzexternal@realjob.figlist'.}%
\fi
\immediate\write\tikzexternal@outfile{#1}%
\if\tikzexternal@opmode5%
\tikzexternal@list@and@make@gentarget{#1}%
\fi
\fi
\fi
\fi
}%
\def\tikzexternal@list@and@make@gentarget#1{%
\tikzexternal@assemble@systemcall{#1}{\pgf@tempa}%
\def\tikzexternal@tempb{\pgfutilstrreplace{^^J}{^^J\tikzexternal@TABchar}}%
\expandafter\tikzexternal@tempb\expandafter{\pgf@tempa}%
\let\pgf@tempa=\pgfretval
\iftikzexternal@verboseio
\pgf@typeout{Writing '#1' to '\tikzexternal@realjob.makefile'.}%
\fi
\global\tikzexternal@file@isuptodatetrue%
\tikzexternal@checkforceremake%
\immediate\write\tikzexternal@outmakefile{#1\tikzexternalimgextension: \iftikzexternal@file@isuptodate\else FORCEREMAKE\fi}%
\immediate\write\tikzexternal@outmakefile{\tikzexternal@TABchar\pgf@tempa}%
\immediate\write\tikzexternal@outmakefile{}%
}
\def\tikzexternal@list@and@make@prepare{%
\iftikzexternal@verboseio
\pgf@typeout{Opening '\tikzexternal@realjob.makefile' for writing.}%
\fi
\begingroup
\globaldefs=1
\csname newwrite\endcsname\tikzexternal@outmakefile
\endgroup
\immediate\openout\tikzexternal@outmakefile=\tikzexternal@realjob.makefile\relax
\immediate\write\tikzexternal@outmakefile{ALL_FIGURE_NAMES=\tikzexternal@DOLLARchar(shell cat \tikzexternal@realjob.figlist)}%
\immediate\write\tikzexternal@outmakefile{ALL_FIGURES=\tikzexternal@DOLLARchar(ALL_FIGURE_NAMES:\tikzexternal@PERCENTchar=\tikzexternal@PERCENTchar\tikzexternalimgextension)}%
\immediate\write\tikzexternal@outmakefile{}%
\immediate\write\tikzexternal@outmakefile{allimages: \tikzexternal@DOLLARchar(ALL_FIGURES)}%
\immediate\write\tikzexternal@outmakefile{\tikzexternal@TABchar @echo All images exist now. Use make -B to re-generate them.}%
\immediate\write\tikzexternal@outmakefile{}%
\immediate\write\tikzexternal@outmakefile{FORCEREMAKE:}%
\immediate\write\tikzexternal@outmakefile{}%
\immediate\write\tikzexternal@outmakefile{-include $(ALL_FIGURE_NAMES:\tikzexternal@PERCENTchar=\tikzexternal@PERCENTchar.\tikzexternaldepext)}%
\immediate\write\tikzexternal@outmakefile{}%
\tikzexternalmakefiledefaultdeprule
\immediate\write\tikzexternal@outmakefile{}%
\tikzexternal@outmakefile@pendingcommands
\pgfutil@ifundefined{AtEndDocument}{}{%
\AtEndDocument{\pgf@typeout{===== mode=`list and make': Use 'make -f \tikzexternal@realjob.makefile' to generate all images. Then, re-run (pdf)latex \tikzexternal@realjob. =====}}%
}%
}%
\def\tikzexternaldepext{dep}
\def\tikzexternalmakefiledefaultdeprule{%
\immediate\write\tikzexternal@outmakefile{\tikzexternal@PERCENTchar.\tikzexternaldepext:}%
\immediate\write\tikzexternal@outmakefile{\tikzexternal@TABchar mkdir -p \tikzexternal@normal@dq $(dir $@)\tikzexternal@normal@dq}%
\immediate\write\tikzexternal@outmakefile{\tikzexternal@TABchar touch \tikzexternal@normal@dq $@\tikzexternal@normal@dq\space \tikzexternal@HASHchar\space will be filled later.}%
}%
\def\tikzexternalifwritesmakefile#1#2{%
\if5\tikzexternal@opmode #1\else #2\fi
}%
\def\tikzexternal@outmakefile@pendingcommands{}%
\def\tikzexternalwritetomakefile#1{%
\if\tikzexternal@opmode5%
\pgfutil@ifundefined{tikzexternal@outmakefile}{%
\expandafter\gdef\expandafter\tikzexternal@outmakefile@pendingcommands\expandafter{%
\tikzexternal@outmakefile@pendingcommands
\immediate\write\tikzexternal@outmakefile{#1}%
}%
}{%
\immediate\write\tikzexternal@outmakefile{#1}%
}%
\fi
}%
\def\tikzexternal@dep@file@name{}
\def\tikzexternalfiledependsonfile@ACTIVE#1#2{%
\begingroup
\def\tikzpicturedependsonfile@name{#1}%
\ifx\tikzpicturedependsonfile@name\pgfutil@empty
\else
\tikzifexternalizingcurrent
{\tikzexternalfiledependsonfile@append@to@dep@file{#1}{#2}}%
{\tikzexternalfiledependsonfile@append@to@makefile{#1}{#2}}%
\fi
\endgroup
}%
\def\tikzexternalfiledependsonfile#1#2{}%
\def\tikzexternalfiledependsonfile@append@to@dep@file#1#2{%
\tikzexternalgetcurrentfilename\tikzpicturedependsonfile@name
\edef\tikzpicturedependsonfile@name{\tikzpicturedependsonfile@name.\tikzexternaldepext}%
\ifx\tikzexternal@dep@file@name\tikzpicturedependsonfile@name
\else
\pgfutil@ifundefined{tikzexternal@dep@file}{%
\begingroup
\globaldefs=1
\csname newwrite\endcsname\tikzexternal@dep@file
\endgroup
}{}%
\ifx\tikzexternal@dep@file@name\pgfutil@empty
\else
\immediate\closeout\tikzexternal@dep@file
\fi
\global\let\tikzexternal@dep@file@name=\tikzpicturedependsonfile@name
\immediate\openout\tikzexternal@dep@file=\tikzexternal@dep@file@name\relax
\fi
\immediate\write\tikzexternal@dep@file{#1\tikzexternalimgextension: #2}%
}
\def\tikzexternalfiledependsonfile@append@to@makefile#1#2{%
\edef\tikzexternal@temp{#1\tikzexternalimgextension: #2}%
\expandafter\tikzexternalwritetomakefile\expandafter{\tikzexternal@temp}%
}
\def\tikzpicturedependsonfile@ACTIVE#1{%
\begingroup
\tikzexternalgetcurrentfilename\tikzpicturedependsonfile@name
\ifx\tikzpicturedependsonfile@name\pgfutil@empty
\tikzexternalgetnextfilename\tikzpicturedependsonfile@name
\fi
\expandafter\tikzexternalfiledependsonfile\expandafter{\tikzpicturedependsonfile@name}{#1}%
\endgroup
}%
\def\tikzpicturedependsonfile#1{}%
\def\tikzexternal@externalizefig{%
\ifpgf@external@grabshipout%
\expandafter\tikzexternal@externalizefig@GRAB%
\else
\expandafter\tikzexternal@externalizefig@mode@graphics@if@exists
\fi%
}
\def\tikzexternal@externalizefig@mode@graphics@if@exists{%
\gdef\pgf@filename{}%
\xdef\pgf@tempa{\noexpand\pgf@findfile\pgfsys@imagesuffixlist:+{\tikzexternal@curfilename}}%
\pgf@tempa
\ifx\pgf@filename\pgfutil@empty%
\expandafter\tikzexternal@normalpicture@nographics
\else
\expandafter\tikzexternal@forcegraphics
\fi
}%
\def\tikzexternal@optimize@away@cmd#1#2{%
\pgfutil@ifnextchar[{%
\tikzexternal@optimize@away@cmd@{#1}{#2}%
}{%
\tikzexternal@optimize@away@cmd@{#1}{#2}[]%
}%
}%
\def\tikzexternal@optimize@away@cmd@#1#2[#3]{%
\def\tikz@temp{#2}%
\ifx\tikz@temp\pgfutil@empty
\def\tikz@temp{\tikzexternal@optimize@away@cmd@auto{#1}{#3}}%
\else
\ifcase#2\relax
\def\tikzexternal@optimize@away@cmd@manual{%
\tikzexternal@optimize@away@cmd@@@{#1}{#3}{}%
}%
\or
\def\tikzexternal@optimize@away@cmd@manual##1{%
\tikzexternal@optimize@away@cmd@@@{#1}{#3}{{##1}}%
}%
\or
\def\tikzexternal@optimize@away@cmd@manual##1##2{%
\tikzexternal@optimize@away@cmd@@@{#1}{#3}{{##1}{##2}}%
}%
\or
\def\tikzexternal@optimize@away@cmd@manual##1##2##3{%
\tikzexternal@optimize@away@cmd@@@{#1}{#3}{{##1}{##2}{##3}}%
}%
\or
\def\tikzexternal@optimize@away@cmd@manual##1##2##3##4{%
\tikzexternal@optimize@away@cmd@@@{#1}{#3}{{##1}{##2}{##3}{##4}}%
}%
\or
\def\tikzexternal@optimize@away@cmd@manual##1##2##3##4##5{%
\tikzexternal@optimize@away@cmd@@@{#1}{#3}{{##1}{##2}{##3}{##4}{##5}}%
}%
\or
\def\tikzexternal@optimize@away@cmd@manual##1##2##3##4##5##6{%
\tikzexternal@optimize@away@cmd@@@{#1}{#3}{{##1}{##2}{##3}{##4}{##5}{##6}}%
}%
\or
\def\tikzexternal@optimize@away@cmd@manual##1##2##3##4##5##6##7{%
\tikzexternal@optimize@away@cmd@@@{#1}{#3}{{##1}{##2}{##3}{##4}{##5}{##6}{##7}}%
}%
\or
\def\tikzexternal@optimize@away@cmd@manual##1##2##3##4##5##6##7##8{%
\tikzexternal@optimize@away@cmd@@@{#1}{#3}{{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}}%
}%
\or
\def\tikzexternal@optimize@away@cmd@manual##1##2##3##4##5##6##7##8##9{%
\tikzexternal@optimize@away@cmd@@@{#1}{#3}{{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}{##9}}%
}%
\fi
\def\tikz@temp{\tikzexternal@optimize@away@cmd@manual}%
\fi
\tikz@temp
}%
\def\tikzexternal@optimize@away@cmd@auto#1#2{%
\pgfutil@ifnextchar\bgroup{%
\tikzexternal@optimize@away@cmd@auto@{#1}{#2}%
}{%
\tikzexternal@optimize@away@cmd@auto@{#1}{#2}{}%
}
}%
\def\tikzexternal@optimize@away@cmd@auto@#1#2#3{%
\tikzexternal@optimize@away@cmd@@@{#1}{#2}{{#3}}%
}%
\def\tikzexternal@optimize@away@cmd@@@#1#2#3{%
\begingroup
\toks0={#1[#2]#3}%
\iftikzexternal@verbose@optimize
\pgf@typeout{The command '\the\toks0' has been optimized away. Use '/tikz/external/optimize=false' to disable this.}%
\fi
\endgroup
\begingroup
\pgfkeysvalueof{/tikz/external/optimize away text/.@cmd}#1\pgfeov%
\endgroup
}%
\def\tikzexternal@optimize@away@latex@env#1{%
\def\tikzexternal@optimize@away@latex@env@{#1}%
\begingroup
\def\tikzexternal@laTeX@collect@until@end@tikzpicturetikzpicturestring{#1}%
\tikzexternal@TEXDIALECT@collectpicture\tikzexternal@optimize@away@latex@env@close
}%
\long\def\tikzexternal@optimize@away@latex@env@close#1{%
\iftikzexternal@verbose@optimize
\pgf@typeout{The complete contents of \string\begin{tikzexternal@optimize@away@latex@env@} up to the next \end{tikzexternal@optimize@away@latex@env@} has been optimized away because it does not contribute to the exported PDF. Use '/tikz/external/optimize=false' to disable this.}%
\fi
\endgroup
\expandafter\let\csname end\tikzexternal@optimize@away@latex@env@\endcsname=\relax
\expandafter\end\expandafter{\tikzexternal@optimize@away@latex@env@}%
}%
\def\tikzexternal@optimize@REPLACE{%
\pgfkeysvalueof{/tikz/external/optimize/install/.@cmd}\pgfeov
}%
\def\tikzexternal@optimize@RESTORE{%
\pgfkeysvalueof{/tikz/external/optimize/restore/.@cmd}\pgfeov
}%
\def\tikzexternal@closeenvironments{%
\let\endtikzpicture=\relax
\tikzexternal@TEXDIALECT@endpicture
\let\endtikzpicture=\tikzexternal@origendpicture
\let\tikzexternal@curfilename=\relax
}
\def\tikzexternal@skipfigure{%
\tikzexternal@TEXDIALECT@collectpicture\tikzexternal@skipfigure@@
}
\long\def\tikzexternal@skipfigure@@#1{%
\iftikzexternal@verbose@optimize
\pgf@typeout{A tikzpicture has been optimized away. Use '/tikz/external/optimize=false' to disable this.}%
\fi
\tikzexternal@closeenvironments
\pgfkeysvalueof{/tikz/external/optimize away text/.@cmd}tikzpicture\pgfeov%
}
\def\tikzexternal@normalpicture@nographics{%
\tikzexternal@nestedflagfalse
\let\tikzpicture=\tikzexternal@normalpicture@begreplace
\let\endtikzpicture=\tikzexternal@normalpicture@endreplace
\tikzpicture
}
\def\tikzexternal@normalpicture@begreplace{%
\begingroup
\tikzexternal@nestedflagtrue
\tikzexternal@origpicture
}
\def\tikzexternal@normalpicture@endreplace{%
\tikzexternal@origendpicture
\endgroup
\iftikzexternal@nestedflag
\else
\let\tikzpicture=\tikzexternal@tikzpicture@replacement
\let\endtikzpicture=\tikzexternal@origendpicture
\fi
}%
\def\tikzexternal@forcegraphics{%
\tikzexternal@TEXDIALECT@collectpicture\tikzexternal@forcegraphics@@
}
\long\def\tikzexternal@forcegraphics@@#1{\tikzexternal@forcegraphics@@@}%
\def\tikzexternal@forcegraphics@@@{%
\if5\tikzexternal@opmode
\let\tikz@refundefinedtrue@@=\G@refundefinedtrue
\gdef\G@refundefinedtrue{%
\tikz@refundefinedtrue@@
\tikzexternal@forceremake@undefined@reference@handler
}%
\fi
\expandafter\pgfincludeexternalgraphics\expandafter{\tikzexternal@curfilename}%
\if5\tikzexternal@opmode
\global\let\G@refundefinedtrue=\tikz@refundefinedtrue@@
\fi
\tikzexternal@closeenvironments
}
\def\tikzexternal@forceremake@undefined@reference@handler{%
\pgf@typeout{===== 'mode=list and make': encountered undefined reference in current picture. Adding dependency to FORCEREMAKE. Rerun make to update the picture.' ========^^J}%
\tikzpicturedependsonfile{FORCEREMAKE}%
}%
\def\tikzexternal@listmodepicture{%
\tikzexternal@TEXDIALECT@collectpicture\tikzexternal@listmodepicture@@
}
\long\def\tikzexternal@listmodepicture@@#1{\tikzexternal@listmodepicture@@@}
\def\tikzexternal@listmodepicture@@@{%
\pgfkeysvalueof{/tikz/external/image discarded text}%
\tikzexternal@closeenvironments
}
\def\tikzexternal@list@and@makefile@mode@picture{%
\tikzexternal@TEXDIALECT@collectpicture\tikzexternal@list@and@makefile@mode@picture@
}%
\long\def\tikzexternal@list@and@makefile@mode@picture@#1{%
\tikzexternal@check@uptodate@mode{#1}%
\gdef\pgf@filename{}%
\xdef\pgf@tempa{\noexpand\pgf@findfile\pgfsys@imagesuffixlist:+{\tikzexternal@curfilename}}%
\pgf@tempa
\ifx\pgf@filename\pgfutil@empty%
\expandafter\tikzexternal@listmodepicture@@@
\else
\expandafter\tikzexternal@forcegraphics@@@
\fi
}%
\def\tikzexternal@externalizefig@before@grab{%
\pgfutil@IfUndefined{TP@holdbox}{%
}{%
\global\setbox\TP@holdbox\vbox{}%
}%
}%
\def\tikzexternal@externalizefig@GRAB{%
\ifpgf@external@grabshipout
\iftikzexternal@optimize
\tikzexternal@optimize@RESTORE
\fi
\tikzexternal@externalizefig@before@grab
\fi
\def\tikzpicture{%
\def\tikzpicture{%
\begingroup
\def\endtikzpicture{%
\tikzexternal@origendpicture
\endgroup
}%
\tikzexternal@origpicture
}%
\pgf@external@grab{\tikzexternal@curfilename}%
\tikzexternal@origpicture
}%
\def\endtikzpicture{%
\tikzexternal@origendpicture
\pgf@externalend
\tikzexternal@ensure@nonempty@floats
\let\tikzpicture=\tikzexternal@tikzpicture@replacement
\let\endtikzpicture=\tikzexternal@origendpicture
\iftikzexternal@optimize
\ifpgf@external@grabshipout
\tikzexternal@optimize@REPLACE
\fi
\fi
}%
\tikzpicture
}%
\def\tikzexternal@ensure@nonempty@floats{%
tikzexternal: picture has been externalized. This text is required to avoid empty floats.
}%
\def\tikzexternal@externalizefig@systemcall{%
\tikzexternal@TEXDIALECT@collectpicture\tikzexternal@externalizefig@systemcall@@
}
{
\catcode`\"=12
\catcode`\'=12
\catcode`\;=12
\catcode`\&=12
\catcode`\-=12
\xdef\tikzexternal@normal@dq{"}
\xdef\tikzexternal@normal@sq{'}
\xdef\tikzexternal@normal@semic{;}
\xdef\tikzexternal@normal@and{&}
\xdef\tikzexternal@normal@dash{-}
\catcode`\"=13
\catcode`\'=13
\catcode`\;=13
\catcode`\&=13
\catcode`\-=13
\gdef\tikzexternal@activate@normal@dq{\let"=\tikzexternal@normal@dq}
\gdef\tikzexternal@activate@normal@sq{\let'=\tikzexternal@normal@sq}
\gdef\tikzexternal@activate@normal@semic{\let;=\tikzexternal@normal@semic}
\gdef\tikzexternal@activate@normal@and{\let&=\tikzexternal@normal@and}
\gdef\tikzexternal@activate@normal@dash{\let-=\tikzexternal@normal@dash}
\catcode`\|=0
\catcode`\\=12
|xdef|tikzexternal@normal@backslash{\}%
}
{
\catcode`\^^I=12
\catcode`\$=12
\catcode`\%=12
\catcode`\#=12
\gdef\tikzexternal@HASHchar{#}
\gdef\tikzexternal@TABchar{^^I}\gdef\tikzexternal@PERCENTchar{%}\xdef\tikzexternal@DOLLARchar{$}}
\def\tikzexternal@assemble@systemcall#1#2{%
\begingroup
\def\image{#1}%
\iftikzexternal@auto@detect@jobname
\edef\texsource{\string\def\string\tikzexternalrealjob{\tikzexternal@realjob}\string\input{\tikzexternal@realjob}}%
\else
\let\texsource=\tikzexternal@realjob
\fi
\ifnum\the\catcode`\"=13 \tikzexternal@activate@normal@dq\fi
\ifnum\the\catcode`\'=13 \tikzexternal@activate@normal@sq\fi
\ifnum\the\catcode`\;=13 \tikzexternal@activate@normal@semic\fi
\ifnum\the\catcode`\-=13 \tikzexternal@activate@normal@dash\fi
\let\\=\tikzexternal@normal@backslash
\xdef#2{\pgfkeysvalueof{/tikz/external/system call}}%
\endgroup
}%
\long\def\tikzexternal@externalizefig@systemcall@@#1{%
\tikzexternal@externalizefig@systemcall@uptodatecheck{#1}%
\tikzexternal@assemble@systemcall{\tikzexternal@curfilename}{\pgf@tempa}%
\global\let\tikzexternal@cursyscall=\pgf@tempa
\gdef\tikzexternal@typeset@picture@on@failure{1}%
\iftikzexternal@file@isuptodate
\iftikzexternal@verboseio
\pgf@typeout{===== Image '\tikzexternal@curfilename' is up-to-date. ======}%
\fi
\let\pgf@filename=\tikzexternal@curfilename
\else
\begingroup
\tikzexternalauxlock@setlock1%
\tikzexternal@externalizefig@systemcall@call{\tikzexternal@cursyscall}%
\tikzexternalauxlock@setlock0%
\expandafter\tikzexternal@externalizefig@systemcall@assertsuccess\expandafter{\tikzexternal@cursyscall}%
\pgfmath@smuggleone\pgf@filename
\endgroup
\fi
\ifx\pgf@filename\pgfutil@empty
\if1\tikzexternal@typeset@picture@on@failure
\begingroup
\toks0={%
\tikzexternaldisable
}%
\toks1={%
\tikzpicture
#1%
}%
\toks2={%
\tikzexternal@TEXDIALECT@endpicture
\tikzexternalenable
}%
\xdef\tikzexternal@externalizefig@systemcall@next{%
\the\toks0
\noexpand\scantokens{\the\toks1 }%
\the\toks2
}%
\endgroup
\else
\gdef\tikzexternal@externalizefig@systemcall@next{\tikzexternal@closeenvironments}%
\fi
\else
\gdef\tikzexternal@systemcall@reschedule@to@end@document{0}%
\expandafter\pgfincludeexternalgraphics\expandafter{\tikzexternal@curfilename}%
\if1\tikzexternal@systemcall@reschedule@to@end@document
\pgfutil@IfUndefined{AtVeryEndDocument}{%
}{%
\pgf@typeout{===== The previous system call resulted in undefined references inside of the output file. Rescheduling it for \string\end{document}. ========}%
\expandafter\tikzexternal@externalizefig@systemcall@reschedule\expandafter{\tikzexternal@cursyscall}%
}%
\fi
\gdef\tikzexternal@externalizefig@systemcall@next{\tikzexternal@closeenvironments}%
\fi
\tikzexternal@externalizefig@systemcall@next
}%
\def\tikzexternal@externalizefig@systemcall@call#1{%
\iftikzexternal@verboseio
\pgf@typeout{===== 'mode=convert with system call': Invoking '#1' ========}%
\fi
\pgfutil@shellescape{#1}%
}%
\def\tikzexternal@checkforceremake{%
\iftikzexternal@force@remake
\global\tikzexternal@file@isuptodatefalse
\else
\iftikzexternalremakenext
\global\tikzexternal@file@isuptodatefalse
\global\tikzexternalremakenextfalse
\fi
\fi
}
\pgfutil@IfUndefined{pdfmdfivesum}{%
}{%
\let\tikzexternal@mdfivesum=\pdfmdfivesum
}%
\long\def\tikzexternal@computemdfivesum#1{%
\t@tikzexternal@tmpb={#1}%
\edef\tikzexternal@temp{\the\t@tikzexternal@tmpb}%
\edef\pgfretval{\tikzexternal@mdfivesum{\meaning\tikzexternal@temp}}%
}
\long\def\tikzexternal@computemdfivesum@diff@fallback#1{%
\t@tikzexternal@tmpb={#1}%
\edef\tikzexternal@temp{\the\t@tikzexternal@tmpb}%
\edef\pgfretval{\meaning\tikzexternal@temp}%
}
\long\def\tikzexternal@hashfct@serialize@std#1{%
\noexpand\def\noexpand\tikzexternallastkey{#1}%
}%
\long\def\tikzexternal@hashfct@serialize@tok#1{%
\noexpand\begingroup
\noexpand\toks0={#1}%
\noexpand\xdef\noexpand\tikzexternallastkey{\noexpand\the\noexpand\toks0 }%
\noexpand\endgroup
}%
\def\tikzexternal@check@uptodate@ext{.md5}
\def\tikzexternal@check@uptodate@mode@warn@fallback{%
\message{Package tikz Warning: The key 'up to date check=md5' is impossible, there is no macro to compute MD5. Falling back to 'up to date check=diff'.}%
\global\let\tikzexternal@check@uptodate@mode@warn@fallback=\relax
}%
\long\def\tikzexternal@check@uptodate@mode#1{%
\if1\tikzexternal@uptodate@mode
\pgfutil@IfUndefined{tikzexternal@mdfivesum}{%
\tikzexternal@check@uptodate@mode@warn@fallback
\def\tikzexternal@uptodate@mode{2}%
}{}%
\fi
\ifcase\tikzexternal@uptodate@mode
\let\tikzexternal@hashfct=\pgfutil@empty
\let\tikzexternal@hashfct@serialize=\pgfutil@empty
\or
\let\tikzexternal@hashfct=\tikzexternal@computemdfivesum
\let\tikzexternal@hashfct@serialize=\tikzexternal@hashfct@serialize@std
\or
\let\tikzexternal@hashfct=\tikzexternal@computemdfivesum@diff@fallback
\let\tikzexternal@hashfct@serialize=\tikzexternal@hashfct@serialize@tok
\fi
\ifx\tikzexternal@hashfct\pgfutil@empty
\else
\tikzpicturedependsonfile{\tikzexternal@curfilename\tikzexternal@check@uptodate@ext}%
\tikzexternal@hashfct{#1}%
\let\tikzexternal@lastkey@new=\pgfretval
\begingroup
\global\let\tikzexternallastkey=\pgfutil@empty
\openin\r@pgf@reada=\tikzexternal@curfilename\tikzexternal@check@uptodate@ext\relax %
\ifeof\r@pgf@reada
\else
\endlinechar=-1 %
\read\r@pgf@reada to\pgf@tempa
\pgf@tempa
\fi
\closein\r@pgf@reada
\let\tikzexternal@lastkey=\tikzexternallastkey
\pgfmath@smuggleone\tikzexternal@lastkey
\endgroup
\edef\tikzexternal@lastkey@normalized{\meaning\tikzexternal@lastkey}%
\edef\tikzexternal@lastkey@new@normalized{\meaning\tikzexternal@lastkey@new}%
\iftikzexternal@verboseuptodate
\pgf@typeout{Up-to-date check of \tikzexternal@curfilename: new \tikzexternal@lastkey@new@normalized; old \tikzexternal@lastkey@normalized.^^J}%
\fi
\ifx\tikzexternal@lastkey@normalized\tikzexternal@lastkey@new@normalized
\tikzexternal@file@isuptodatetrue
\else
\tikzexternal@file@isuptodatefalse
\immediate\openout\w@pgf@writea=\tikzexternal@curfilename\tikzexternal@check@uptodate@ext\relax%
\immediate\write\w@pgf@writea{\tikzexternal@hashfct@serialize{\tikzexternal@lastkey@new}\tikzexternal@PERCENTchar}%
\immediate\closeout\w@pgf@writea
\fi
\fi
}
\long\def\tikzexternal@externalizefig@systemcall@uptodatecheck#1{%
\tikzexternal@check@uptodate@mode{#1}%
\tikzexternal@checkforceremake
\iftikzexternal@file@isuptodate
\gdef\pgf@filename{}%
\xdef\pgf@tempa{\noexpand\pgf@findfile\pgfsys@imagesuffixlist:+{\tikzexternal@curfilename}}%
\pgf@tempa
\ifx\pgf@filename\pgfutil@empty%
\global\tikzexternal@file@isuptodatefalse
\fi
\fi
}%
\def\tikzexternal@externalizefig@systemcall@assertsuccess#1{%
\gdef\pgf@filename{}%
\xdef\pgf@tempa{\noexpand\pgf@findfile\pgfsys@imagesuffixlist:+{\tikzexternal@curfilename}}%
\pgf@tempa
\ifx\pgf@filename\pgfutil@empty%
\tikzexternal@externalizefig@systemcall@handleexception{#1}%
\fi
}%
\def\tikzexternal@externalizefig@systemcall@handleexception@msg#1{%
\tikzerror{Sorry, the system call '#1' did NOT result in a usable output file '\tikzexternal@curfilename' (expected one of \pgfsys@imagesuffixlist). Please verify that you have enabled system calls. For pdflatex, this is 'pdflatex -shell-escape'. Sometimes it is also named 'write 18' or something like that. Or maybe the command simply failed? Error messages can be found in '\tikzexternal@curfilename.log'. If you continue now, I'll try to typeset the picture}{}%
}
\def\tikzexternal@externalizefig@systemcall@handleexception@retry@later#1{%
\gdef\tikzexternal@systemcall@reschedule@to@end@document{0}%
\expandafter\pgfexternalreaddpth\expandafter{\tikzexternal@curfilename}%
\if1\tikzexternal@systemcall@reschedule@to@end@document
\pgfutil@IfUndefined{AtVeryEndDocument}{%
\tikzexternal@externalizefig@systemcall@handleexception@msg{#1}%
}{%
\pgf@typeout{===== The last system call resulted in an EMPTY output file. Maybe it is part of \string\ref. Rescheduling it for \string\end{document}. ========}%
\gdef\tikzexternal@typeset@picture@on@failure{0}%
\tikzexternal@externalizefig@systemcall@reschedule{#1}%
}%
\else
\tikzexternal@externalizefig@systemcall@handleexception@msg{#1}%
\fi
}
\def\tikzexternal@externalizefig@systemcall@reschedule#1{%
\t@tikzexternal@tmpb={%
\global\let\tikzexternal@externalizefig@systemcall@handleexception=\tikzexternal@externalizefig@systemcall@handleexception@msg%
\tikzexternal@externalizefig@systemcall@call{#1}%
\tikzexternal@externalizefig@systemcall@assertsuccess{#1}%
}%
\xdef\pgfutil@tempa{%
\noexpand\def\noexpand\tikzexternal@curfilename{\tikzexternal@curfilename}%
\the\t@tikzexternal@tmpb
}%
\expandafter\AtVeryEndDocument\expandafter{\pgfutil@tempa}%
\gdef\tikzexternal@has@rescheduled@something{1}%
}%
\let\tikzexternal@externalizefig@systemcall@handleexception=\tikzexternal@externalizefig@systemcall@handleexception@retry@later%
\def\tikzexternal@has@rescheduled@something{0}%
\pgfutil@IfUndefined{AtVeryEndDocument}{}{%
\AtVeryEndDocument{%
\if1\tikzexternal@has@rescheduled@something
\pgf@typeout{===== tikzexternal: \string\end{document} reached. Working on rescheduled images to resolve references... ========}%
\fi
}%
}
\def\pgfexternal@error@no@shipout{%
\begingroup
\begingroup
\immediate\openout\pgf@plotwrite=\pgfactualjobname.dpth
\let\w@pgfexternal@auxout=\pgf@plotwrite
\pgfexternalstorecommand@isexporting{\gdef\noexpand\tikzexternal@systemcall@reschedule@to@end@document{1}}%
\immediate\closeout\pgf@plotwrite
\endgroup
\tikzexternal@assemble@systemcall{\pgfactualjobname}{\pgf@tempa}%
\toks0=\expandafter{\pgf@tempa}%
\tikzerror{Sorry, image externalization failed: the resulting image was EMPTY. I tried to externalize '\pgfactualjobname', but it seems there is no such image in the document!?
\if\tikzexternal@opmode4 ^^J
\space\space You are currently using 'mode=convert with system call'. This problem can happen if the image (or one of the images preceding it) was declared inside of a \string\label{} (i.e. in the .aux file): 'convert with system call' has no access to the main aux file.^^J
\space\space Possible solutions in this case:^^J
\space\space (a) Try using 'mode=list and make',^^J
\space\space (b) Issue the externalization command '\the\toks0' *manually* (also check the preceding externalized images, perhaps the file name sequence is not correct).^^J
\space\space Repeat: the resulting image was EMPTY, your attention is required
\else
\if\tikzexternal@opmode5 ^^J
\space\space You are currently using 'mode=list and make'. Possible solutions:^^J
\space\space (a) Try to delete `\tikzexternal@realjob.makefile'. Perhaps it is not up-to-date.^^J
\space\space (b) Perhaps pictures are declared inside of \string\label{} and the .aux file is not up-to-date. Re-run latex, perhaps re-generate the graphics as well.^^J
\space\space Repeat: the resulting image was EMPTY, your attention is required
\fi
\fi}%
\endgroup
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzexternalshared.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary3d.code.tex ====
\ProvidesFileRCS{tikzlibrary3d.code.tex}
\tikzdeclarecoordinatesystem{xyz cylindrical}
{%
\pgfset{/tikz/cs/.cd,angle=0,radius=0,z=0,#1}%
\pgfpointcylindrical{\tikz@cs@angle}{\tikz@cs@xradius}{\tikz@cs@z}%
}%
\tikzdeclarecoordinatesystem{xyz spherical}
{%
\pgfset{/tikz/cs/.cd,angle=0,radius=0,latitude=0,longitude=0,#1}%
\pgfpointspherical{\tikz@cs@angle}{\tikz@cs@latitude}{\tikz@cs@xradius}%
}%
\pgfset{/tikz/cs/longitude/.store in=\tikz@cs@angle}%
\pgfset{/tikz/cs/latitude/.store in=\tikz@cs@latitude}%
\tikzoption{plane origin}{\def\tikz@plane@origin{\tikz@scan@one@point\pgfutil@firstofone#1}}%
\tikzoption{plane x}{\def\tikz@plane@x{\tikz@scan@one@point\pgfutil@firstofone#1}}%
\tikzoption{plane y}{\def\tikz@plane@y{\tikz@scan@one@point\pgfutil@firstofone#1}}%
\let\tikz@plane@origin=\pgfpointorigin
\def\tikz@plane@x{\pgfpointxy{1}{0}}%
\def\tikz@plane@y{\pgfpointxy{0}{1}}%
\tikzoption{canvas is plane}[]{
\tikz@canvas@is@plane
}%
\tikzoption{canvas is xy plane at z}[]{%
\def\tikz@plane@origin{\pgfpointxyz{0}{0}{#1}}%
\def\tikz@plane@x{\pgfpointxyz{1}{0}{#1}}%
\def\tikz@plane@y{\pgfpointxyz{0}{1}{#1}}%
\tikz@canvas@is@plane
}%
\tikzoption{canvas is yx plane at z}[]{%
\def\tikz@plane@origin{\pgfpointxyz{0}{0}{#1}}%
\def\tikz@plane@x{\pgfpointxyz{0}{1}{#1}}%
\def\tikz@plane@y{\pgfpointxyz{1}{0}{#1}}%
\tikz@canvas@is@plane
}%
\tikzoption{canvas is xz plane at y}[]{%
\def\tikz@plane@origin{\pgfpointxyz{0}{#1}{0}}%
\def\tikz@plane@x{\pgfpointxyz{1}{#1}{0}}%
\def\tikz@plane@y{\pgfpointxyz{0}{#1}{1}}%
\tikz@canvas@is@plane
}%
\tikzoption{canvas is zx plane at y}[]{%
\def\tikz@plane@origin{\pgfpointxyz{0}{#1}{0}}%
\def\tikz@plane@x{\pgfpointxyz{0}{#1}{1}}%
\def\tikz@plane@y{\pgfpointxyz{1}{#1}{0}}%
\tikz@canvas@is@plane
}%
\tikzoption{canvas is yz plane at x}[]{%
\def\tikz@plane@origin{\pgfpointxyz{#1}{0}{0}}%
\def\tikz@plane@x{\pgfpointxyz{#1}{1}{0}}%
\def\tikz@plane@y{\pgfpointxyz{#1}{0}{1}}%
\tikz@canvas@is@plane
}%
\tikzoption{canvas is zy plane at x}[]{%
\def\tikz@plane@origin{\pgfpointxyz{#1}{0}{0}}%
\def\tikz@plane@x{\pgfpointxyz{#1}{0}{1}}%
\def\tikz@plane@y{\pgfpointxyz{#1}{1}{0}}%
\tikz@canvas@is@plane
}%
\def\tikz@canvas@is@plane{
\pgf@process{\tikz@plane@x}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\tikz@plane@y}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{\tikz@plane@origin}%
\edef\pgf@marshal{\noexpand\tikz@addtransform{%
\noexpand\pgftransformtriangle
{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}
\noexpand\pgftransformscale{0.035146}%
\noexpand\pgfsetxvec{\noexpand\pgfpoint{1cm}{0cm}}%
\noexpand\pgfsetyvec{\noexpand\pgfpoint{0cm}{1cm}}%
\noexpand\pgfsetzvec{\noexpand\pgfpoint{0cm}{0cm}}%
}}%
\pgf@marshal%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary3d.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryangles.code.tex ====
\ProvidesFileRCS{tikzlibraryangles.code.tex}
\tikzset{
pics/angle/.style = {
setup code = \tikz@lib@angle@parse#1\pgf@stop,
code = {},
background code = \tikz@lib@angle@background#1\pgf@stop,
foreground code = \tikz@lib@angle@foreground#1\pgf@stop,
},
pics/right angle/.style = {
setup code = \tikz@lib@angle@parse#1\pgf@stop,
code = {},
background code = \tikz@lib@rightangle@background#1\pgf@stop,
foreground code = \tikz@lib@rightangle@foreground#1\pgf@stop,
},
pics/angle/.default=A--B--C,
angle eccentricity/.initial=.6,
angle radius/.initial=5mm,
}%
\def\tikz@lib@angle@background#1--#2--#3\pgf@stop{%
\path [name prefix ..] [pic actions, draw=none] (#2.center)
-- ++(\tikz@start@angle@temp:\tikz@lib@angle@rad pt)
arc [start angle=\tikz@start@angle@temp, end
angle=\tikz@end@angle@temp, radius=\tikz@lib@angle@rad pt] -- cycle;
}%
\def\tikz@lib@angle@foreground#1--#2--#3\pgf@stop{%
\path [name prefix ..] [pic actions, fill=none, shade=none]
([shift={(\tikz@start@angle@temp:\tikz@lib@angle@rad pt)}]#2.center)
arc [start angle=\tikz@start@angle@temp, end
angle=\tikz@end@angle@temp, radius=\tikz@lib@angle@rad pt];
\ifx\tikzpictext\relax\else%
\def\pgf@temp{\node()[name prefix
..,at={([shift={({.5*\tikz@start@angle@temp+.5*\tikz@end@angle@temp}:\pgfkeysvalueof{/tikz/angle
eccentricity}*\tikz@lib@angle@rad pt)}]#2.center)}]}
\expandafter\pgf@temp\expandafter[\tikzpictextoptions]{\tikzpictext};%
\fi
}%
\def\tikz@lib@rightangle@background#1--#2--#3\pgf@stop{%
\path [name prefix ..] [pic actions, draw=none] (#2.center)
-- ++(\tikz@start@angle@temp:\tikz@lib@angle@rad pt)
-- ++(\tikz@end@angle@temp:\tikz@lib@angle@rad pt)
-- ++(\tikz@start@angle@temp:-\tikz@lib@angle@rad pt)
-- cycle;
}%
\def\tikz@lib@rightangle@foreground#1--#2--#3\pgf@stop{%
\path [name prefix ..] [pic actions, fill=none, shade=none]
([shift={(\tikz@start@angle@temp:\tikz@lib@angle@rad pt)}]#2.center)
-- ++(\tikz@end@angle@temp:\tikz@lib@angle@rad pt)
-- ++(\tikz@start@angle@temp:-\tikz@lib@angle@rad pt);
\ifx\tikzpictext\relax\else%
\def\pgf@temp{\node()[name prefix
..,at={([shift={({.5*\tikz@start@angle@temp+.5*\tikz@end@angle@temp}:\pgfkeysvalueof{/tikz/angle
eccentricity}*1.4142136*\tikz@lib@angle@rad pt)}]#2.center)}]}
\expandafter\pgf@temp\expandafter[\tikzpictextoptions]{\tikzpictext};%
\fi
}%
\def\tikz@lib@angle@parse#1--#2--#3\pgf@stop{%
\pgfmathsetmacro\tikz@lib@angle@rad{\pgfkeysvalueof{/tikz/angle radius}}
\ifdim\tikz@lib@angle@rad pt>0pt\else\def\tikz@lib@angle@rad{12}\fi%
\pgf@process{\pgfpointanchor{#2}{center}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgfpointanchor{#1}{center}}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{\pgfpointanchor{#3}{center}}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\advance\pgf@xb by-\pgf@xa%
\advance\pgf@yb by-\pgf@ya%
\advance\pgf@xc by-\pgf@xa%
\advance\pgf@yc by-\pgf@ya%
\pgfmathsetmacro{\tikz@start@angle@temp}{atan2(\the\pgf@yb,\the\pgf@xb)}
\pgfmathsetmacro{\tikz@end@angle@temp}{atan2(\the\pgf@yc,\the\pgf@xc)}
\ifdim\tikz@end@angle@temp pt<\tikz@start@angle@temp pt%
\pgfmathsetmacro{\tikz@start@angle@temp}{\tikz@start@angle@temp-360}%
\fi%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryangles.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryanimations.code.tex ====
\ProvidesFileRCS{tikzlibraryanimations.code.tex}
\usepgfmodule{animations}%
\def\tikz@collect@scope@anims#1{%
\let\tikz@scope@anims\pgfutil@empty%
\let\tikz@collect@command#1%
\tikz@collect@scope@anims@parse%
}%
\def\tikz@collect@scope@anims@parse{%
\pgfutil@ifnextchar[{\tikz@collect@scope@anims@opt}{%
\pgfutil@ifnextchar:{\tikz@collect@scope@anims@go}{%
\tikz@collect@scope@anims@done}}%
}%
\def\tikz@collect@scope@anims@done{%
\expandafter\tikz@collect@command\expandafter[\tikz@scope@anims]%
}%
\def\tikz@collect@scope@anims@opt[{%
\expandafter\tikz@collect@command\expandafter[\tikz@scope@anims%
}%
\def\tikz@collect@scope@anims@go:#1=#2{%
\expandafter\def\expandafter\tikz@scope@anims\expandafter{\tikz@scope@anims animate={myself:={:{#1}={#2}}},}%
\tikz@collect@scope@anims@parse%
}%
\def\tikzanimateset{\pgfqkeys{/tikz/animate}}%
\tikzanimateset{
.code={
\pgfkeys{/handlers/first char syntax=true}
\pgfkeyssetvalue{/handlers/first char syntax/\expandafter\meaning\string"}{\tikz@animation@value}%
\def\tikz@anim@t{0}%
\def\tikz@anim@t@base{0}%
\def\tikz@anim@t@current{0}%
\tikzanimateset{#1}
},
scope/.code=\tikz@anim@scope{#1}{}{},
sync/.code=\tikz@anim@sync@scope{#1}{}{},
entry/.code=\tikz@anim@make@entry,
object/.code=\tikz@anim@set@object{#1},
attribute/.code=\tikz@anim@set@attr{#1},
id/.code=\tikz@anim@set@id{#1},
time/.code=\tikz@anim@set@time{#1},
value/.code=\tikz@anim@add{\tikz@anim@value{#1}},%
remember/.code=\pgfmathadd@{\tikz@anim@t}{\tikz@anim@t@base}\global\let#1\pgfmathresult,
resume/.code=\tikz@anim@resume{#1},
fork/.code={\tikz@anim@parse@time{#1}\pgfmathadd@\tikz@anim@t\tikz@anim@t@base\let\tikz@anim@t@base\pgfmathresult\def\tikz@anim@t{0}},
fork/.default = 0later,
base/.style={scope={/utils/exec=\let\tikz@animation@time\tikz@anim@base@text,#1,entry}},
}%
\tikzset{
make snapshot of/.code=\edef\tikz@temp{#1}\ifx\tikz@temp\pgfutil@empty\else\pgfsnapshot{#1}\fi,
make snapshot after/.code=\edef\tikz@temp{#1}\ifx\tikz@temp\pgfutil@empty\else\pgfsnapshotafter{#1}\fi,
make snapshot if necessary/.code=\ifpgfsysanimationsupported\else\pgfsnapshot{#1}\fi,
make snapshot if necessary/.default=0s,
}%
\def\tikz@anim@scope#1#2#3{%
{#2\tikzanimateset{#1}#3}%
}%
\def\tikz@anim@sync@scope#1#2#3{%
{%
#2%
\tikzanimateset{#1}%
#3%
\pgfmathadd@{\tikz@anim@t}{\tikz@anim@t@base}%
\expandafter%
}\expandafter\pgfmathsubtract@\expandafter{\pgfmathresult}{\tikz@anim@t@base}%
\tikz@anim@set@time{\pgfmathresult}%
}%
\def\tikz@anim@set@time#1{%
\tikz@anim@parse@time{#1}%
\let\tikz@anim@t@current\tikz@anim@t%
\pgfmathadd@\tikz@anim@t\tikz@anim@t@base%
\let\tikz@animation@time\pgfmathresult%
}%
\def\tikz@anim@value#1{%
\def\tikz@anim@result{#1}
\ifx\tikz@anim@result\pgf@special@current@text%
\else%
\ifx\tikz@animation@parser\relax%
\else%
\tikz@animation@parser{#1}%
\fi%
\fi%
}%
\def\tikz@anim@resume#1{%
\pgfparsetime{#1}%
\pgfmathsubtract@{\pgftimeresult}{\tikz@anim@t@base}%
\tikz@anim@set@time{\pgfmathresult}%
}%
\def\tikz@animation@syntax@check#1#2{%
\def\tikz@animation@rest{#1}%
\expandafter\pgfutil@in@\expandafter:\expandafter{\tikz@key}%
\ifpgfutil@in@%
\expandafter\tikz@anim@parse@colon\tikz@key\pgf@stop%
\else%
#2%
\fi%
}%
\def\tikz@anim@parse@colon#1:#2\pgf@stop{%
\expandafter\tikz@anim@sync@scope\expandafter{\tikz@animation@rest}{%
\tikz@anim@set@object{#1}%
\pgfutil@in@_{#2}%
\ifpgfutil@in@%
\tikz@anim@parse@under#2\pgf@stop%
\else%
\tikz@anim@parse@under#2_\pgf@stop%
\fi%
}{\tikz@anim@make@entry}%
}%
\def\tikz@anim@parse@under#1_#2\pgf@stop{%
\tikz@anim@set@attr{#1}%
\tikz@anim@set@id{#2}%
}%
\def\tikz@anim@set@attr#1{%
\pgfkeys@spdef\tikz@anim@a{#1}%
\ifx\tikz@anim@a\pgfutil@empty%
\else%
\let\tikz@anim@tl@attributes\tikz@anim@a%
\fi%
}%
\def\tikz@anim@set@id#1{%
\pgfkeys@spdef\tikz@anim@a{#1}%
\ifx\tikz@anim@a\pgfutil@empty%
\else%
\let\tikz@anim@tl@id\tikz@anim@a%
\fi%
}%
\def\tikz@anim@set@object#1{%
\pgfkeys@spdef\tikz@anim@a{#1}%
\ifx\tikz@anim@a\pgfutil@empty%
\else%
\let\tikz@anim@tl@objects\tikz@anim@a%
\fi%
}%
\def\tikz@animation@value#1{%
\tikz@animation@value@parser#1\pgf@stop%
}%
\def\tikz@animation@value@parser"#1"{%
\def\tikz@animation@value@head{#1}%
\pgfutil@ifnextchar\pgf@stop{\tikz@animation@value@rest=}{%
\pgfutil@ifnextchar b\tikz@animation@value@rest@base\tikz@animation@value@rest%
}%
}%
\def\tikz@animation@value@rest=#1\pgf@stop{%
\tikz@anim@sync@scope{#1}{\expandafter\tikz@anim@add\expandafter{\expandafter\tikz@anim@value\expandafter{\tikz@animation@value@head}}}{\tikz@anim@make@entry}%
}%
\def\tikz@animation@value@rest@base base{%
\tikz@anim@sync@scope{}{\let\tikz@animation@time\tikz@anim@base@text\expandafter\tikz@anim@add\expandafter{\expandafter\tikz@anim@value\expandafter{\tikz@animation@value@head}}}{\tikz@anim@make@entry}%
\pgfutil@ifnextchar\pgf@stop{\tikz@animation@value@rest=}{\tikz@animation@value@rest}%
}%
\def\tikz@anim@simple@parse#1{} %
\def\tikz@anim@slant@parse#1{\pgfmathsetmacro\tikz@anim@result{atan(#1)}}%
\def\tikz@anim@dashpattern@parse#1{%
\pgfmathsetmacro\tikz@anim@dash@phase{\tikz@dashphase}%
\def\tikz@dashpattern{}%
\expandafter\tikz@scandashon\pgfutil@gobble#1o\@nil%
\edef\tikz@anim@result{{\tikz@dashpattern}{\tikz@anim@dash@phase pt}}%
}%
\def\tikz@anim@dashoffset@parse#1{%
\pgfmathparse{#1}%
\edef\tikz@anim@result{{\tikz@dashpattern}{\pgfmathresult pt}}%
}%
\def\tikz@anim@dash@parse#1{%
\tikz@anim@dash@parse@#1\pgf@stop%
}%
\def\tikz@anim@dash@parse@#1phase#2\pgf@stop{%
\pgfmathsetmacro\tikz@anim@dash@phase{#2}%
\def\tikz@dashpattern{}%
\expandafter\tikz@scandashon\pgfutil@gobble#1o\@nil%
\edef\tikz@anim@result{{\tikz@dashpattern}{\tikz@anim@dash@phase pt}}%
}%
\def\tikz@anim@xshift@parse#1{\pgfmathparse{#1}\edef\tikz@anim@result{\noexpand\pgfqpoint{\pgfmathresult pt}{0pt}}}%
\def\tikz@anim@yshift@parse#1{\pgfmathparse{#1}\edef\tikz@anim@result{\noexpand\pgfqpoint{0pt}{\pgfmathresult pt}}}%
\def\tikz@anim@xscale@parse#1{\pgfmathparse{#1}\edef\tikz@anim@result{\pgfmathresult,1}}%
\def\tikz@anim@yscale@parse#1{\pgfmathparse{#1}\edef\tikz@anim@result{1,\pgfmathresult}}%
\def\tikz@anim@shift@parse#1{\tikz@scan@one@point\tikz@anim@do@shift#1}%
\def\tikz@anim@do@shift#1{\def\tikz@anim@result{#1}}%
\def\tikz@anim@position@parse#1{%
\begingroup%
\let\tikz@transform=\relax%
\pgf@xc-\pgf@pt@x%
\pgf@yc-\pgf@pt@y%
\pgfsettransform\tikz@anim@saved@transform%
\tikz@scan@one@point\tikz@anim@do@position#1}%
\def\tikz@anim@do@position#1{%
\pgf@process{\pgfpointtransformed{#1}}%
\advance\pgf@x by\pgf@xc%
\advance\pgf@y by\pgf@yc%
\xdef\tikz@anim@temp{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\endgroup%
\let\tikz@anim@result\tikz@anim@temp%
}%
\def\tikz@anim@view@parse#1{\tikz@anim@view@parse@#1\pgf@stop}%
\def\tikz@anim@view@parse@{%
\pgfutil@ifnextchar({\tikz@scan@one@point\tikz@anim@view@parse@a}{\tikz@anim@view@node}%
}%
\def\tikz@anim@view@parse@a#1{%
\def\tikz@anim@result{{#1}}%
\pgfutil@ifnextchar r{\tikz@anim@view@parsed@rec}{\tikz@scan@one@point\tikz@anim@view@parse@b}%
}%
\def\tikz@anim@view@parsed@rec rectangle{\tikz@scan@one@point\tikz@anim@view@parse@b}%
\def\tikz@anim@view@parse@b#1{%
\expandafter\def\expandafter\tikz@anim@result\expandafter{\tikz@anim@result{#1}}%
\pgfutil@ifnextchar\pgf@stop\pgfutil@gobble{\tikzerror{Wrong view syntax}}%
}%
\def\tikz@anim@view@node#1\pgf@stop{%
\expandafter\ifx\csname pgf@sh@ns@#1\endcsname\relax%
\tikzerror{Undefined node '#1'}%
\else%
{%
\pgf@process{\pgfpointanchor{#1}{west}}%
\pgf@xa\pgf@x \pgf@ya\pgf@y
\pgf@xb\pgf@x \pgf@yb\pgf@y
\pgf@process{\pgfpointanchor{#1}{north}}%
\ifdim\pgf@x<\pgf@xa \pgf@xa=\pgf@x\fi%
\ifdim\pgf@x>\pgf@xb \pgf@xb=\pgf@x\fi%
\ifdim\pgf@y<\pgf@ya \pgf@ya=\pgf@y\fi%
\ifdim\pgf@y>\pgf@yb \pgf@yb=\pgf@y\fi%
\pgf@process{\pgfpointanchor{#1}{south}}%
\ifdim\pgf@x<\pgf@xa \pgf@xa=\pgf@x\fi%
\ifdim\pgf@x>\pgf@xb \pgf@xb=\pgf@x\fi%
\ifdim\pgf@y<\pgf@ya \pgf@ya=\pgf@y\fi%
\ifdim\pgf@y>\pgf@yb \pgf@yb=\pgf@y\fi%
\pgf@process{\pgfpointanchor{#1}{east}}%
\ifdim\pgf@x<\pgf@xa \pgf@xa=\pgf@x\fi%
\ifdim\pgf@x>\pgf@xb \pgf@xb=\pgf@x\fi%
\ifdim\pgf@y<\pgf@ya \pgf@ya=\pgf@y\fi%
\ifdim\pgf@y>\pgf@yb \pgf@yb=\pgf@y\fi%
\xdef\tikz@anim@result{{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}}
}%
\fi%
}%
\def\tikz@anim@path@parse#1{%
{%
\setbox0=\hbox{{%
\pgfinterruptpath%
\expandafter\tikz@scan@next@command#1\pgf@stop%
\pgfsyssoftpath@getcurrentpath\tikz@anim@result%
\pgfprocessround{\tikz@anim@result}{\tikz@anim@result}%
\global\let\tikz@anim@result\tikz@anim@result%
\endpgfinterruptpath%
}}%
}%
}%
\def\tikz@anim@along#1#2{%
{%
\setbox0=\hbox{{%
\pgfinterruptpath%
\pgf@relevantforpicturesizefalse%
\iftikz@anim@is@position%
\let\tikz@transform=\relax%
\pgf@x-\pgf@pt@x%
\pgf@y-\pgf@pt@y%
\edef\tikz@anim@along@shift{\pgf@xc\the\pgf@x\pgf@yc\the\pgf@y}%
\pgfsettransformentries#1%
\else%
\pgftransformreset%
\fi
\tikz@scan@next@command#2\pgf@stop%
\pgfsyssoftpath@getcurrentpath\tikz@anim@parsed@path%
\pgfprocessround{\tikz@anim@parsed@path}{\tikz@anim@parsed@path}%
\iftikz@anim@is@position%
\tikz@anim@shift@path%
\global\let\tikz@anim@parsed@path\tikz@anim@patched@path%
\else%
\global\let\tikz@anim@parsed@path\tikz@anim@parsed@path%
\fi%
\endpgfinterruptpath%
}}%
}%
\pgfanimationset{along softpath/.expand once=\tikz@anim@parsed@path}%
}%
\def\tikz@anim@shift@path{%
\let\tikz@anim@patched@path\pgfutil@empty%
\tikz@anim@along@shift%
\expandafter\tikz@anim@shift@path@\tikz@anim@parsed@path\pgf@stop%
}%
\def\tikz@anim@shift@path@{%
\pgfutil@ifnextchar\pgf@stop\pgfutil@gobble{%
\pgfutil@ifnextchar\bgroup\tikz@anim@shift@path@sub\tikz@anim@shift@path@copy}%
}%
\def\tikz@anim@shift@path@copy#1{%
\expandafter\def\expandafter\tikz@anim@patched@path\expandafter{\tikz@anim@patched@path#1}%
\tikz@anim@shift@path@%
}%
\def\tikz@anim@shift@path@sub#1#2{%
\pgf@x#1%
\pgf@y#2%
\advance\pgf@x by\pgf@xc%
\advance\pgf@y by\pgf@yc%
\edef\tikz@temp{{\the\pgf@x}{\the\pgf@y}}%
\expandafter\tikz@anim@shift@path@copy\expandafter{\tikz@temp}%
}%
\def\tikz@anim@parse@origin#1{%
\tikz@scan@one@point\tikz@anim@parse@origin@#1\relax%
}%
\def\tikz@anim@parse@origin@#1{\tikz@anim@add{\pgfanimationset{origin={#1}}}}%
\def\tikz@anim@tl@objects{}%
\def\tikz@anim@tl@attributes{}%
\def\tikz@anim@tl@id{default}%
\let\tikz@anim@tl@exec@options\pgfutil@empty
\let\tikz@anim@tl@early@options\pgfutil@empty
\def\tikz@anim@add@early#1{\expandafter\def\expandafter\tikz@anim@tl@early@options\expandafter{\tikz@anim@tl@early@options#1}}%
\def\tikz@anim@add@once@early#1{%
\global\advance\tikz@anim@once@count by1\relax%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\tikz@anim@tl@early@options%
\expandafter\expandafter\expandafter{\expandafter\tikz@anim@tl@early@options\expandafter\tikz@anim@exec@once\expandafter{\the\tikz@anim@once@count}{#1}}%
}%
\def\tikz@anim@add#1{\expandafter\def\expandafter\tikz@anim@tl@exec@options\expandafter{\tikz@anim@tl@exec@options#1}}%
\def\tikz@anim@add@once#1{%
\global\advance\tikz@anim@once@count by1\relax%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\tikz@anim@tl@exec@options%
\expandafter\expandafter\expandafter{\expandafter\tikz@anim@tl@exec@options\expandafter\tikz@anim@exec@once\expandafter{\the\tikz@anim@once@count}{#1}}%
}%
\newcount\tikz@anim@once@count%
\def\tikz@anim@exec@once#1#2{%
\expandafter\ifx\csname tikz@anim@once@#1\endcsname\pgf@stop%
\else%
\expandafter\let\csname tikz@anim@once@#1\endcsname\pgf@stop%
#2%
\fi%
}%
\newif\iftikz@anim@do@entry
\def\tikz@anim@make@entry{%
\tikz@anim@do@entrytrue%
\ifx\tikz@anim@tl@objects\pgfutil@empty\tikz@anim@do@entryfalse\fi%
\ifx\tikz@anim@tl@attributes\pgfutil@empty\tikz@anim@do@entryfalse\fi%
\ifx\tikz@anim@tl@exec@options\pgfutil@empty\ifx\tikz@anim@tl@early@options\pgfutil@empty\tikz@anim@do@entryfalse\fi\fi%
\iftikz@anim@do@entry%
\foreach\tikz@anim@tl@object in\tikz@anim@tl@objects{%
\expandafter\tikzanimationattributesset\expandafter{\tikz@anim@tl@attributes}%
}%
\fi%
}%
\def\tikzanimationattributesset#1{\pgfqkeys{/tikz/animate/attributes}{#1}}%
\tikzanimationattributesset{
.unknown/.code={
\let\tikz@anim@attribute@name\pgfkeyscurrentname
\expandafter\let\expandafter\pgf@temp\csname tikz@anim@def@pgf@attr@\tikz@anim@attribute@name\endcsname%
\ifx\pgf@temp\relax%
\tikzerror{Unknown animation attribute '\tikz@anim@attribute@name'}%
\else%
\expandafter\tikz@timeline@config\expandafter\tikz@anim@tl@object\expandafter\tikz@anim@attribute@name\expandafter\tikz@anim@tl@id\expandafter{\tikz@anim@configs}%
\edef\pgf@marshal{\noexpand\tikz@timeline@entry{\tikz@anim@tl@object}{\tikz@anim@attribute@name}{\tikz@anim@tl@id}}%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgf@marshal\expandafter\expandafter\expandafter{\expandafter\pgf@marshal\expandafter{\tikz@anim@tl@early@options}}%
\expandafter\expandafter\expandafter\pgf@marshal\expandafter\expandafter\expandafter{\expandafter\expandafter\expandafter\tikz@anim@entry\expandafter\expandafter\expandafter{\expandafter\tikz@anim@tl@exec@options\expandafter\def\expandafter\tikz@animation@time\expandafter{\tikz@animation@time}}}%
\fi%
}
}%
\let\tikz@anim@configs\pgfutil@empty
\def\tikz@anim@entry#1{%
\let\tikz@anim@result\pgfutil@empty%
\pgf@anim@reset@linear%
#1%
\ifx\tikz@anim@result\pgfutil@empty%
\else%
\ifx\tikz@animation@time\pgfutil@empty%
\else%
\ifx\tikz@animation@time\tikz@anim@base@text%
\expandafter\pgf@anim@base\expandafter{\tikz@anim@result}%
\else%
\expandafter\expandafter\expandafter\pgf@anim@entry%
\expandafter\expandafter\expandafter{\expandafter\tikz@animation@time\expandafter}\expandafter{\tikz@anim@result}%
\fi%
\fi%
\fi%
}%
\let\tikz@animation@time\pgfutil@empty%
\def\tikz@anim@base@text{base}%
\tikzanimateset{
.unknown/.code={%
\let\tikz@key\pgfkeyscurrentname%
\tikz@animation@syntax@check{#1}{\tikz@anim@options{#1}}%
}
}%
\def\tikz@anim@options#1{
\let\tikz@anim@key\pgfkeyscurrentname%
\pgfqkeys{/tikz/animate/options}{\tikz@anim@key/.try={#1}}%
\ifpgfkeyssuccess%
\else%
\def\tikz@anim@unparsed@value{#1}%
\expandafter\tikz@anim@time@test\tikz@anim@key\pgf@stop%
\fi%
}%
\tikzanimateset{
options/.cd,
name/.code=\tikz@anim@add{\pgfanimationset{name={#1}}},
forever/.code=\tikz@anim@add{\pgfanimationset{freeze at end}},
freeze/.code=\tikz@anim@add{\pgfanimationset{freeze at end}},
restart/.code=\tikz@anim@add{\pgfanimationset{restart={#1}}},
repeats/.code=\tikz@anim@add{\pgfanimationset{repeats={#1}}},
repeats/.default=,
repeat/.code=\tikz@anim@add{\pgfanimationset{repeats={#1}}},
repeat/.default=,
begin/.code=\tikz@anim@add@once{\pgfanimationset{begin={#1}}},
end/.code=\tikz@anim@add@once{\pgfanimationset{end={#1}}},
begin on/.code=\tikz@anim@event{begin}{#1},
end on/.code=\tikz@anim@event{begin}{#1},
begin snapshot/.code=\tikz@anim@add{\pgfanimationset{begin snapshot={#1}}},
origin/.code=\tikz@anim@parse@origin{#1},
transform/.code=\tikz@anim@add{\pgfanimationset{transform={\let\tikz@transform\relax\tikzset{#1}}}},
along/.code=\tikz@anim@handle@along#1\pgf@stop,
entry control/.code=\tikz@anim@add{\pgfanimationset{entry control={#1}}},
exit control/.code=\tikz@anim@add{\pgfanimationset{exit control={#1}}},
stay/.code=\tikz@anim@add{\pgfanimationset{stay}},
jump/.code=\tikz@anim@add{\pgfanimationset{jump}},
ease/.style={
entry control={1-(#1)}{1},
exit control={#1}{0}
},
ease/.default=0.5,
ease in/.style={
entry control={1-(#1)}{1},
},
ease in/.default=0.5,
ease out/.style={
exit control={#1}{0},
},
ease out/.default=0.5,
arrows/.code=\tikz@anim@add@early{\pgfanimationset{arrows={#1}}},
shorten >/.code=\tikz@anim@add@early{\pgfanimationset{shorten >={#1}}},
shorten ,double=none,every accepting by arrow]
--
([shift=(\tikz@accepting@angle:\tikz@accepting@distance)]\tikztostart.\tikz@accepting@angle)
node [shape=rectangle,anchor=\tikz@accepting@anchor] {\tikz@accepting@text}
}]
edge ()
}
}}}%
\tikzset{every accepting by arrow/.style={}}%
\tikzset{accepting by double/.style= {double,outer sep=.5\pgflinewidth+.3pt}} %
\tikzset{initial by arrow/.style= {after node path=
{
{
[to path=
{
[->,double=none,every initial by arrow]
([shift=(\tikz@initial@angle:\tikz@initial@distance)]\tikztostart.\tikz@initial@angle)
node [shape=rectangle,anchor=\tikz@initial@anchor] {\tikz@initial@text}
-- (\tikztostart)}]
edge ()
}
}}}%
\tikzset{every initial by arrow/.style={}}%
\tikzset{initial by diamond/.style={shape=diamond}}%
\tikzoption{initial text}{\tikzaddafternodepathoption{\def\tikz@initial@text{#1}}}%
\tikzoption{accepting text}{\tikzaddafternodepathoption{\def\tikz@accepting@text{#1}}}%
\tikzoption{initial where}{\tikzaddafternodepathoption{\csname tikz@initial@compute@#1\endcsname}}%
\tikzoption{accepting where}{\tikzaddafternodepathoption{\csname tikz@accepting@compute@#1\endcsname}}%
\tikzoption{initial distance}{\tikzaddafternodepathoption{\def\tikz@initial@distance{#1}}}%
\tikzoption{accepting distance}{\tikzaddafternodepathoption{\def\tikz@accepting@distance{#1}}}%
\def\tikz@initial@text{start}%
\def\tikz@accepting@text{}%
\def\tikz@initial@distance{3ex}%
\def\tikz@accepting@distance{3ex}%
\def\tikz@initial@compute@above{\def\tikz@initial@angle{90}\def\tikz@initial@anchor{south}}%
\def\tikz@initial@compute@below{\def\tikz@initial@angle{270}\def\tikz@initial@anchor{north}}%
\def\tikz@initial@compute@left{\def\tikz@initial@angle{180}\def\tikz@initial@anchor{east}}%
\def\tikz@initial@compute@right{\def\tikz@initial@angle{0}\def\tikz@initial@anchor{west}}%
\def\tikz@initial@angle{180}%
\def\tikz@initial@anchor{east}%
\def\tikz@accepting@compute@above{\def\tikz@accepting@angle{90}\def\tikz@accepting@anchor{south}}%
\def\tikz@accepting@compute@below{\def\tikz@accepting@angle{270}\def\tikz@accepting@anchor{north}}%
\def\tikz@accepting@compute@left{\def\tikz@accepting@angle{180}\def\tikz@accepting@anchor{east}}%
\def\tikz@accepting@compute@right{\def\tikz@accepting@angle{0}\def\tikz@accepting@anchor{west}}%
\def\tikz@accepting@angle{0}%
\def\tikz@accepting@anchor{west}%
\tikzset{initial above/.style= {initial by arrow,initial where=above}}%
\tikzset{initial below/.style= {initial by arrow,initial where=below}}%
\tikzset{initial left/.style= {initial by arrow,initial where=left}}%
\tikzset{initial right/.style= {initial by arrow,initial where=right}}%
\tikzset{accepting above/.style= {accepting by arrow,accepting where=above}}%
\tikzset{accepting below/.style= {accepting by arrow,accepting where=below}}%
\tikzset{accepting left/.style= {accepting by arrow,accepting where=left}}%
\tikzset{accepting right/.style= {accepting by arrow,accepting where=right}}%
\tikzset{state/.style= {state without output}}%
\tikzset{accepting/.style= {accepting by double}}%
\tikzset{initial/.style= {initial by arrow}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybabel.code.tex ====
\ProvidesFileRCS{tikzlibrarybabel.code.tex}
\tikzset{
handle active characters in code,
handle active characters in nodes,
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybabel.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex ====
\ProvidesFileRCS{tikzlibrarybackgrounds.code.tex}
\pgfdeclarelayer{background}%
\pgfsetlayers{background,main}%
\tikzset{on background layer/.style={
execute at begin scope={%
\pgfonlayer{background}%
\let\tikz@options=\pgfutil@empty%
\tikzset{every on background layer/.try,#1}%
\tikz@options},
execute at end scope={\endpgfonlayer}
}
}%
\tikzset{background rectangle/.style= {draw}}%
\tikzset{background top/.style= {draw}}%
\tikzset{background bottom/.style= {draw}}%
\tikzset{background left/.style= {draw}}%
\tikzset{background right/.style= {draw}}%
\tikzset{background grid/.style= {help lines,draw}}%
\tikzoption{inner frame sep}{\def\tikz@framexsep{#1}\def\tikz@frameysep{#1}}%
\tikzoption{inner frame xsep}{\def\tikz@framexsep{#1}}%
\tikzoption{inner frame ysep}{\def\tikz@frameysep{#1}}%
\def\tikz@framexsep{1ex}%
\def\tikz@frameysep{1ex}%
\tikzoption{outer frame sep}{\def\tikz@outerframexsep{#1}\def\tikz@outerframeysep{#1}}%
\tikzoption{outer frame xsep}{\def\tikz@outerframexsep{#1}}%
\tikzoption{outer frame ysep}{\def\tikz@outerframeysep{#1}}%
\def\tikz@outerframexsep{0ex}%
\def\tikz@outerframeysep{0ex}%
\tikzset{loose background/.style= {inner frame sep=2ex}}%
\tikzset{tight background/.style= {inner frame sep=0ex}}%
\tikzset{framed/.style= {style=show background rectangle}}%
\tikzset{gridded/.style= {style=show background grid}}%
\tikzset{show background rectangle/.style={execute at end picture=\tikz@background@framed}}%
\tikzset{show background top/.style= {execute at end picture=\tikz@background@top}}%
\tikzset{show background bottom/.style= {execute at end picture=\tikz@background@bottom}}%
\tikzset{show background left/.style= {execute at end picture=\tikz@background@left}}%
\tikzset{show background right/.style= {execute at end picture=\tikz@background@right}}%
\tikzset{show background grid/.style= {execute at end picture=\tikz@background@grid}}%
\def\tikz@background@save{%
\pgftransformreset%
\ifx\tikz@bg@minx\@undefined%
\pgf@xb=\pgf@picminx%
\pgf@yb=\pgf@picminy%
\pgf@xc=\pgf@picmaxx%
\pgf@yc=\pgf@picmaxy%
\pgfmathsetlength{\pgf@x}{\tikz@framexsep}%
\pgfmathsetlength{\pgf@y}{\tikz@frameysep}%
\advance\pgf@xb by-\pgf@x%
\advance\pgf@yb by-\pgf@y%
\advance\pgf@xc by\pgf@x%
\advance\pgf@yc by\pgf@y%
\edef\tikz@bg@minx{\the\pgf@xb}%
\edef\tikz@bg@miny{\the\pgf@yb}%
\edef\tikz@bg@maxx{\the\pgf@xc}%
\edef\tikz@bg@maxy{\the\pgf@yc}%
\pgfmathsetlength{\pgf@x}{\tikz@outerframexsep}%
\pgfmathsetlength{\pgf@y}{\tikz@outerframeysep}%
\advance\pgf@xb by-\pgf@x%
\advance\pgf@yb by-\pgf@y%
\advance\pgf@xc by\pgf@x%
\advance\pgf@yc by\pgf@y%
\edef\tikz@bg@outerminx{\the\pgf@xb}%
\edef\tikz@bg@outerminy{\the\pgf@yb}%
\edef\tikz@bg@outermaxx{\the\pgf@xc}%
\edef\tikz@bg@outermaxy{\the\pgf@yc}%
\fi%
}%
\def\tikz@background@framed{%
\tikz@background@save%
\pgfonlayer{background}
\path[style=background rectangle] (\tikz@bg@minx,\tikz@bg@miny) rectangle (\tikz@bg@maxx,\tikz@bg@maxy);
\endpgfonlayer
}%
\def\tikz@background@top{%
\tikz@background@save%
\pgfonlayer{background}
\path[style=background top] (\tikz@bg@outerminx,\tikz@bg@maxy) -- (\tikz@bg@outermaxx,\tikz@bg@maxy);
\endpgfonlayer
}%
\def\tikz@background@bottom{%
\tikz@background@save%
\pgfonlayer{background}
\path[style=background bottom] (\tikz@bg@outerminx,\tikz@bg@miny) -- (\tikz@bg@outermaxx,\tikz@bg@miny);
\endpgfonlayer
}%
\def\tikz@background@left{%
\tikz@background@save%
\pgfonlayer{background}
\path[style=background left] (\tikz@bg@minx,\tikz@bg@outerminy) -- (\tikz@bg@minx,\tikz@bg@outermaxy);
\endpgfonlayer
}%
\def\tikz@background@right{%
\tikz@background@save%
\pgfonlayer{background}
\path[style=background right] (\tikz@bg@maxx,\tikz@bg@outerminy) -- (\tikz@bg@maxx,\tikz@bg@outermaxy);
\endpgfonlayer
}%
\def\tikz@background@grid{%
\tikz@background@save%
\pgfonlayer{background}
\path[style=background grid] (\tikz@bg@minx,\tikz@bg@miny) grid (\tikz@bg@maxx,\tikz@bg@maxy);
\endpgfonlayer
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybending.code.tex ====
\ProvidesFileRCS{tikzlibrarybending.code.tex}
\usepgfmodule{bending}%
\tikzset{arrows=[flex]}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybending.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalc.code.tex ====
\ProvidesFileRCS{tikzlibrarycalc.code.tex}
\def\tikz@let@command et{%
\let\p=\tikz@cc@dop%
\let\x=\tikz@cc@dox%
\let\y=\tikz@cc@doy%
\let\n=\tikz@cc@don%
\pgfutil@ifnextchar i{\tikz@cc@stop@let}{\tikz@cc@handle@line}%
}%
\def\tikz@cc@handle@line{%
\pgfutil@ifnextchar\p{%
\tikz@cc@handle@coor%
}{%
\pgfutil@ifnextchar\n{%
\tikz@cc@handle@num%
}{%
\pgfutil@ifnextchar i{%
\tikz@cc@stop@let
}{%
\tikzerror{``\string\p'' or ``\string\n'' expected}%
}%
}%
}%
}%
\def\tikz@cc@handle@num\n#1#2=#3{%
\pgfmathparse{#3}%
\expandafter\edef\csname tikz@cc@n@#1\endcsname{\pgfmathresult\ifpgfmathunitsdeclared pt\fi}
\pgfutil@ifnextchar,{\tikz@cc@handle@nextline}{\tikz@cc@stop@let}%
}%
\def\tikz@cc@handle@coor\p#1#2={%
\def\tikz@cc@coord@name{#1}%
\tikz@scan@one@point\tikz@cc@dolet%
}%
\def\tikz@cc@dolet#1{%
\pgf@process{#1}%
\expandafter\edef\csname tikz@cc@p@\tikz@cc@coord@name\endcsname{\the\pgf@x,\the\pgf@y}%
\expandafter\edef\csname tikz@cc@x@\tikz@cc@coord@name\endcsname{\the\pgf@x}%
\expandafter\edef\csname tikz@cc@y@\tikz@cc@coord@name\endcsname{\the\pgf@y}%
\pgfutil@ifnextchar,{\tikz@cc@handle@nextline}{\tikz@cc@stop@let}%
}%
\def\tikz@cc@handle@nextline,{%
\tikz@cc@handle@line%
}%
\def\tikz@cc@stop@let in{%
\tikz@scan@next@command%
}%
\def\tikz@cc@dop#1{\csname tikz@cc@p@#1\endcsname}%
\def\tikz@cc@dox#1{\csname tikz@cc@x@#1\endcsname}%
\def\tikz@cc@doy#1{\csname tikz@cc@y@#1\endcsname}%
\def\tikz@cc@don#1{\csname tikz@cc@n@#1\endcsname}%
\def\tikz@parse@calculator#1(${%
\def\tikz@cc@command{#1}%
\begingroup%
\pgf@xa=0pt%
\pgf@ya=0pt%
\tikz@cc@parse+%
}%
\def\tikz@cc@parse{%
\pgfutil@ifnextchar${%
\tikz@cc@end%
}
{\pgfutil@ifnextchar+{%
\tikz@cc@add%
}{%
\pgfutil@ifnextchar-{%
\tikz@cc@sub%
}{%
\tikzerror{+ or - expected}%
\tikz@cc@end$%
}%
}%
}%
}%
\def\tikz@cc@end$#1){%
\xdef\tikz@marshal{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
\endgroup%
\expandafter\tikz@cc@command\expandafter{\tikz@marshal}%
}%
\def\tikz@cc@add+{%
\def\tikz@cc@factor{1}%
\tikz@cc@factororcoordinate%
}%
\def\tikz@cc@sub-{%
\def\tikz@cc@factor{-1}%
\tikz@cc@factororcoordinate%
}%
\def\tikz@cc@factororcoordinate{%
\pgfutil@ifnextchar({%
\tikz@cc@coordinate%
}{%
\tikz@cc@parse@factor%
}%
}%
\def\tikz@cc@parse@factor#1*({%
\pgfmathparse{#1*\tikz@cc@factor}%
\let\tikz@cc@factor=\pgfmathresult%
\tikz@cc@coordinate(%
}%
\def\tikz@cc@coordinate{%
\tikz@scan@absolute\tikz@cc@after@coordinate%
}%
\def\tikz@cc@after@coordinate#1{%
\pgf@process{#1}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\tikz@cc@mid@checks%
}%
\def\tikz@cc@mid@checks{%
\ifnum\the\catcode`\!=\active\relax
\expandafter\tikz@cc@mid@checks@active
\else
\expandafter\tikz@cc@mid@checks@nonactive
\fi
}%
\def\tikz@cc@mid@checks@nonactive{%
\pgfutil@ifnextchar!{%
\tikz@cc@mid@nonactive%
}{%
\advance\pgf@xa by\tikz@cc@factor\pgf@xb
\advance\pgf@ya by\tikz@cc@factor\pgf@yb
\tikz@cc@parse%
}%
}%
\def\tikz@cc@mid@nonactive!{%
\pgfutil@ifnextchar({%
\tikz@scan@one@point\tikz@cc@project%
}{%
\tikz@cc@mid@num@nonactive%
}%
}%
\begingroup
\catcode`\!=\active
\gdef\tikz@cc@mid@checks@active{%
\pgfutil@ifnextchar!{%
\tikz@cc@mid@active%
}{%
\advance\pgf@xa by\tikz@cc@factor\pgf@xb
\advance\pgf@ya by\tikz@cc@factor\pgf@yb
\tikz@cc@parse%
}%
}%
\gdef\tikz@cc@mid@active!{%
\pgfutil@ifnextchar({%
\tikz@scan@one@point\tikz@cc@project%
}{%
\tikz@cc@mid@num@active%
}%
}%
\endgroup
\def\tikz@cc@mid@num@nonactive#1!{\tikz@cc@mid@num{#1}}%
\begingroup
\catcode`\!=\active
\gdef\tikz@cc@mid@num@active#1!{\tikz@cc@mid@num{#1}}%
\endgroup
\def\tikz@cc@mid@num#1{%
\pgfmathparse{#1}%
\ifpgfmathunitsdeclared%
\let\tikz@cc@mid@unit=\pgfmathresult%
\expandafter\tikz@cc@scan@rot\expandafter\tikz@cc@after@unit%
\else%
\let\tikz@cc@mid@factor=\pgfmathresult%
\pgfmathparse{1-\tikz@cc@mid@factor}%
\let\tikz@cc@mid@factor@one=\pgfmathresult%
\expandafter\tikz@cc@scan@rot\expandafter\tikz@cc@after@num%
\fi%
}%
\def\tikz@cc@after@num#1{%
\pgf@process{#1}%
\pgf@xb=\tikz@cc@mid@factor@one\pgf@xb%
\pgf@yb=\tikz@cc@mid@factor@one\pgf@yb%
\advance\pgf@xb by\tikz@cc@mid@factor\pgf@x%
\advance\pgf@yb by\tikz@cc@mid@factor\pgf@y%
\tikz@cc@mid@checks%
}%
\def\tikz@cc@after@unit#1{%
\pgf@process{#1}%
\advance\pgf@x by-\pgf@xb%
\advance\pgf@y by-\pgf@yb%
\pgf@process{\pgfpointnormalised{}}%
\advance\pgf@xb by\tikz@cc@mid@unit\pgf@x%
\advance\pgf@yb by\tikz@cc@mid@unit\pgf@y%
\tikz@cc@mid@checks%
}%
\def\tikz@cc@project#1{%
\pgf@process{#1}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\begingroup
\ifnum\the\catcode`\!=\active
\def\tikz@next{%
\endgroup
\expandafter\tikz@cc@scan@rot\expandafter\tikz@cc@after@project
\tikz@cc@scan@ex@active}%
\else
\def\tikz@next{%
\endgroup
\expandafter\tikz@cc@scan@rot\expandafter\tikz@cc@after@project
\tikz@cc@scan@ex@nonactive}%
\fi
\tikz@next%
}%
\def\tikz@cc@scan@ex@nonactive!{}%
\begingroup
\catcode`\!=\active
\gdef\tikz@cc@scan@ex@active!{}%
\endgroup
\def\tikz@cc@after@project#1{%
\pgf@process{#1}%
\advance\pgf@x by-\pgf@xb%
\advance\pgf@y by-\pgf@yb%
\advance\pgf@xc by-\pgf@xb%
\advance\pgf@yc by-\pgf@yb%
\pgf@process{\pgfpointnormalised{}}%
\pgf@xc=\pgf@sys@tonumber{\pgf@xc}\pgf@x%
\advance\pgf@xc by\pgf@sys@tonumber{\pgf@yc}\pgf@y%
\advance\pgf@xb by\pgf@sys@tonumber{\pgf@xc}\pgf@x%
\advance\pgf@yb by\pgf@sys@tonumber{\pgf@xc}\pgf@y%
\tikz@cc@mid@checks%
}%
\def\tikz@cc@scan@rot#1{%
\pgfutil@ifnextchar({%
\tikz@scan@one@point#1%
}%
{%
\def\tikz@cc@scan@rot@cmd{#1}%
\ifnum\the\catcode`\:=\active\relax
\expandafter\tikz@cc@scan@one@rot@active%
\else
\expandafter\tikz@cc@scan@one@rot@nonactive%
\fi
}%
}%
\def\tikz@cc@scan@one@rot@nonactive#1:{%
\def\tikz@cc@scan@rot@angle{#1}%
\tikz@scan@one@point\tikz@cc@handle@rot%
}%
\begingroup
\catcode`\:=\active
\gdef\tikz@cc@scan@one@rot@active#1:{%
\def\tikz@cc@scan@rot@angle{#1}%
\tikz@scan@one@point\tikz@cc@handle@rot%
}%
\endgroup
\def\tikz@cc@handle@rot#1{%
\pgf@process{#1}%
{%
\pgftransformreset%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgftransformshift{\pgfqpoint{\pgf@xb}{\pgf@yb}}%
\pgftransformrotate{\tikz@cc@scan@rot@angle}%
\pgftransformshift{\pgfqpoint{-\pgf@xb}{-\pgf@yb}}%
\pgfpointtransformed{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
\expandafter
}%
\edef\tikz@marshal{\noexpand\tikz@cc@scan@rot@cmd{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
\tikz@marshal%
}%
\tikzdeclarecoordinatesystem{tangent}
{%
\tikzset{cs/.cd,#1}%
\expandafter\ifx\csname tikz@tangent@\tikz@cs@type\endcsname\relax%
\tikzerror{I do not know how to compute the tangent to
a \tikz@cs@type}%
\pgfpointorigin%
\else%
\expandafter\tikz@scan@one@point\expandafter\tikz@lib@do@tangent\tikz@cs@point%
\fi%
}%
\tikzset{cs/node/.code=\tikz@cs@unpack{\tikz@cs@node}{\tikz@cs@type}{#1}}%
\tikzset{cs/point/.store in=\tikz@cs@point}%
\def\tikz@lib@do@tangent{\csname tikz@tangent@\tikz@cs@type\endcsname}%
\def\tikz@tangent@coordinate#1{%
\pgfpointanchor{\tikz@cs@node}{center}%
}%
\def\tikz@tangent@circle#1{%
{%
\pgf@process{\pgfpointtransformed{#1}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgfpointtransformed{\pgfpointanchor{\tikz@cs@node}{center}}}%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\pgftransformreset%
\pgftransformshift{\pgfpointanchor{\tikz@cs@node}{center}}%
\pgf@process{\pgfpointanchor{\tikz@cs@node}{east}}%
\pgf@xc=\pgf@x%
\pgfmathparse{veclen(\the\pgf@xa,\the\pgf@ya)}
\pgfmathparse{acos(\the\pgf@xc/\pgfmathresult)}
\ifnum\pgfkeysvalueof{/tikz/cs/solution}>1\relax%
\pgfmathparse{0-\pgfmathresult}%
\fi%
\let\tikz@lib@temp=\pgfmathresult%
\pgf@process{\pgfpointnormalised{\pgfqpoint{\pgf@xa}{\pgf@ya}}}%
\pgf@ya=-\pgf@y%
\pgftransformcm{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}{\pgfpointorigin}%
\pgf@process{\pgfpointtransformed{\pgfpointpolar{\tikz@lib@temp}{\the\pgf@xc}}}%
}%
{%
\pgftransforminvert%
\pgf@process{\pgfpointtransformed{}}%
}%
}%
\def\tikz@intersect@circle@and@circle{%
{%
\pgftransformreset%
\pgf@process{\pgfpointanchor{\tikz@cs@node@a}{center}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgfpointanchor{\tikz@cs@node@a}{east}}%
\advance\pgf@x by-\pgf@xa%
\pgf@xc=\pgf@x%
\pgf@process{\pgfpointanchor{\tikz@cs@node@b}{center}}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{\pgfpointanchor{\tikz@cs@node@b}{east}}%
\advance\pgf@x by-\pgf@xb%
\pgf@yc=\pgf@x%
\pgf@process{%
\pgfpointintersectionofcircles{\pgfqpoint{\pgf@xa}{\pgf@ya}}{\pgfqpoint{\pgf@xb}{\pgf@yb}}{\pgf@xc}{\pgf@yc}{\pgfkeysvalueof{/tikz/cs/solution}}%
}%
}%
{%
\pgftransforminvert%
\pgf@process{\pgfpointtransformed{}}%
}%
}%
\def\tikz@intersect@line@and@circle{%
{%
\expandafter\tikz@scan@one@point\expandafter\tikz@parse@line\tikz@cs@line@a%
\pgf@process{\pgfpointtransformed{}}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{\pgfpointtransformed{\pgfqpoint{\pgf@xc}{\pgf@yc}}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgfpointtransformed{\pgfpointanchor{\tikz@cs@node@b}{center}}}%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\advance\pgf@xb by-\pgf@x%
\advance\pgf@yb by-\pgf@y%
\pgftransformreset%
\pgftransformshift{\pgfpointanchor{\tikz@cs@node@b}{center}}%
\pgf@process{\pgfpointanchor{\tikz@cs@node@b}{east}}%
\edef\tikz@lib@saved@radius{\pgf@sys@tonumber{\pgf@x}}%
\pgf@x=\pgf@xb%
\pgf@y=\pgf@yb%
\advance\pgf@x by-\pgf@xa%
\advance\pgf@y by-\pgf@ya%
\pgf@process{\pgfpointnormalised{}}%
\pgf@xc=\pgf@sys@tonumber{\pgf@xa}\pgf@x%
\advance\pgf@xc by\pgf@sys@tonumber{\pgf@ya}\pgf@y%
\pgf@xc=-\pgf@xc%
\advance\pgf@xa by\pgf@sys@tonumber{\pgf@xc}\pgf@x%
\advance\pgf@ya by\pgf@sys@tonumber{\pgf@xc}\pgf@y%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@xb=\tikz@lib@saved@radius pt%
\c@pgf@counta=1\relax%
\loop%
\ifdim\pgf@xb>50pt%
\multiply\c@pgf@counta by2\relax%
\divide\pgf@xa by2\relax%
\divide\pgf@ya by2\relax%
\divide\pgf@xb by2\relax%
\repeat%
\pgf@xb=\pgf@sys@tonumber{\pgf@xb}\pgf@xb%
\pgf@yb=\pgf@sys@tonumber{\pgf@xa}\pgf@xa%
\advance\pgf@xb by-\pgf@yb%
\pgf@yb=\pgf@sys@tonumber{\pgf@ya}\pgf@ya%
\advance\pgf@xb by-\pgf@yb%
\ifdim\pgf@xb<0pt%
\pgf@xb=0pt%
\fi%
\pgfmathsqrt@{\pgf@sys@tonumber{\pgf@xb}}%
\pgfmathmultiply@{\pgfmathresult}{\the\c@pgf@counta}%
\multiply\pgf@xa by\c@pgf@counta\relax%
\multiply\pgf@ya by\c@pgf@counta\relax%
\ifnum\pgfkeysvalueof{/tikz/cs/solution}>1\relax%
\pgfmathsubtract{0}{\pgfmathresult}%
\fi%
\advance\pgf@xa by \pgfmathresult\pgf@xc%
\advance\pgf@ya by \pgfmathresult\pgf@yc%
\pgf@process{\pgfpointtransformed{\pgfqpoint{\pgf@xa}{\pgf@ya}}}%
}%
{%
\pgftransforminvert%
\pgf@process{\pgfpointtransformed{}}%
}%
}%
\def\tikz@intersect@circle@and@line{%
{%
\let\tikz@cs@node@b=\tikz@cs@node@a%
\let\tikz@cs@line@a=\tikz@cs@line@b%
\tikz@intersect@line@and@circle%
}%
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalc.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalendar.code.tex ====
\ProvidesFileRCS{tikzlibrarycalendar.code.tex}
\pgfutil@usemodule{pgfcalendar}
\tikzoption{dates}{\tikz@lib@cal@parse#1\relax}
\def\tikz@lib@cal@parse#1to#2\relax{%
\def\tikz@lib@cal@start{#1}
\def\tikz@lib@cal@end{#2}%
}
\tikzoption{execute at begin day scope}{\expandafter\def\expandafter\tikz@atbegin@day\expandafter{\tikz@atbegin@day#1}}
\tikzoption{execute at end day scope}{%
\def\pgf@temp{#1}%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@atend@day%
\expandafter\expandafter\expandafter{\expandafter\pgf@temp\tikz@atend@day}}
\tikzoption{execute before day scope}{\expandafter\def\expandafter\tikz@before@day\expandafter{\tikz@before@day#1}}
\tikzoption{execute after day scope}{\expandafter\def\expandafter\tikz@after@day\expandafter{\tikz@after@day#1}}
\let\tikz@atbegin@day=\pgfutil@empty
\let\tikz@atend@day=\pgfutil@empty
\let\tikz@before@day=\pgfutil@empty
\let\tikz@after@day=\pgfutil@empty
\tikzoption{day xshift}{\def\tikz@lib@cal@xshift{#1}}
\tikzoption{day yshift}{\def\tikz@lib@cal@yshift{#1}}
\def\tikz@lib@cal@yshift{3ex}
\def\tikz@lib@cal@xshift{3.5ex}
\tikzoption{month xshift}{\def\tikz@lib@cal@month@xshift{#1}}
\tikzoption{month yshift}{\def\tikz@lib@cal@month@yshift{#1}}
\def\tikz@lib@cal@month@yshift{9ex}
\def\tikz@lib@cal@month@xshift{9ex}
\tikzoption{day code}{\def\tikzdaycode{#1}}
\tikzoption{day text}{\def\tikzdaytext{#1}}
\tikzoption{days}{\tikzset{every day/.append style={#1}}}
\tikzset{every day/.style={anchor=base east}}
\tikzoption{month code}{\def\tikzmonthcode{#1}}
\tikzoption{month text}{\def\tikzmonthtext{#1}}
\tikzset{every month/.style={}}
\tikzoption{year code}{\def\tikzyearcode{#1}}
\tikzoption{year text}{\def\tikzyeartext{#1}}
\tikzset{every year/.style={}}
\def\tikzdaycode{\node[name=\pgfcalendarsuggestedname,every day]{\tikzdaytext};}
\def\tikzmonthcode{\node[every month]{\tikzmonthtext};}
\def\tikzyearcode{\node[every year]{\tikzyeartext};}
\def\tikzdaytext{\%d-}
\def\tikzmonthtext{\%mt}
\def\tikzyeartext{\%y0}
\tikzoption{tikz@lib@cal@width}{\def\tikz@lib@cal@width{#1}}
\def\tikz@lib@cal@width{1}
\tikzset{day list downward/.style={%
execute before day scope={
\ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{}
{%
\pgfmathsetlength{\pgf@y}{\tikz@lib@cal@month@yshift}%
\pgftransformyshift{-\pgf@y}
}%
}{}%
},
execute after day scope={\pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}\pgftransformyshift{-\pgf@y}},
tikz@lib@cal@width=1
}}
\tikzset{day list upward/.style={%
execute before day scope={
\ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{}
{%
\pgftransformyshift{\tikz@lib@cal@month@yshift}%
}%
}{}%
},
execute after day scope={\pgftransformyshift\tikz@lib@cal@yshift},
tikz@lib@cal@width=1
}}
\tikzset{day list right/.style={%
execute before day scope={
\ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{}
{%
\pgftransformxshift{\tikz@lib@cal@month@xshift}%
}%
}{}%
},
execute after day scope={\pgftransformxshift\tikz@lib@cal@xshift},
tikz@lib@cal@width=30%
}}
\tikzset{day list left/.style={%
execute before day scope={
\ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{}
{%
\pgfmathsetlength{\pgf@x}{\tikz@lib@cal@month@xshift}
\pgftransformxshift{-\pgf@x}%
}%
}{}%
},
execute after day scope={
\pgfmathsetlength{\pgf@x}{\tikz@lib@cal@xshift}
\pgftransformxshift{-\pgf@x}%
},
tikz@lib@cal@width=30%
}}
\tikzset{week list/.style={%
execute before day scope={%
\ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{}
{%
\pgfmathsetlength{\pgf@y}{\tikz@lib@cal@month@yshift}%
\pgftransformyshift{-\pgf@y}
}%
}{}%
},
execute at begin day scope={%
\pgfmathsetlength\pgf@x{\tikz@lib@cal@xshift}%
\pgf@x=\pgfcalendarcurrentweekday\pgf@x%
\pgftransformxshift{\pgf@x}%
},
execute after day scope={%
\ifdate{Sunday}{%
\pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}%
\pgftransformyshift{-\pgf@y}
}{}%
},
tikz@lib@cal@width=7
}}
\tikzset{month list/.style={%
execute before day scope={%
\ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{}
{%
\pgfmathsetlength{\pgf@y}{\tikz@lib@cal@month@yshift}%
\pgftransformyshift{-\pgf@y}
}%
}{}%
\ifdate{day of month=1}
{%
\edef\tikz@lib@cal@month@list@start{\pgfcalendarcurrentweekday}%
}{}%
\ifdate{equals=\pgfcalendarbeginiso}%
{%
{%
\c@pgf@counta=\pgfcalendarcurrentjulian%
\advance\c@pgf@counta by-\pgfcalendarcurrentday%
\advance\c@pgf@counta by1\relax%
\pgfcalendarjuliantoweekday{\c@pgf@counta}{\c@pgf@countb}%
\xdef\pgf@temp{\the\c@pgf@countb}%
}%
\let\tikz@lib@cal@month@list@start=\pgf@temp%
}{}%
},
execute at begin day scope={%
\pgfmathsetlength\pgf@xa{\tikz@lib@cal@xshift}%
\pgf@xb=\pgfcalendarcurrentday\pgf@xa%
\advance\pgf@xb by\tikz@lib@cal@month@list@start\pgf@xa%
\advance\pgf@xb by-\pgf@xa\relax%
\pgftransformxshift{\pgf@xb}%
},
tikz@lib@cal@width=37
}}
\tikzset{month label left/.style={%
execute before day scope={\ifdate{day of month=1}{\tikzmonthcode}{}},
every month/.append style={anchor=base east,xshift=-3.5ex}
}}
\tikzset{month label left vertical/.style={%
execute before day scope={\ifdate{day of month=1}{\tikzmonthcode}{}},
every month/.append style={anchor=base east,xshift=-4.5ex,yshift=2.25ex,rotate=90}
}}
\tikzset{month label right/.style={%
execute before day scope={\ifdate{day of month=1}{%
{%
\pgfmathsetlength{\pgf@xa}{\tikz@lib@cal@xshift}%
\pgftransformxshift{\tikz@lib@cal@width\pgf@xa}%
\pgftransformxshift{-\pgf@xa}%
\tikzmonthcode%
}}{}},
every month/.append style={anchor=base west,xshift=1ex}
}}
\tikzset{month label right vertical/.style={%
execute before day scope={\ifdate{day of month=1}{%
{%
\pgfmathsetlength{\pgf@xa}{\tikz@lib@cal@xshift}%
\pgftransformxshift{\tikz@lib@cal@width\pgf@xa}%
\pgftransformxshift{-\pgf@xa}%
\tikzmonthcode%
}}{}},
every month/.append style={anchor=base west,xshift=2ex,yshift=2.25ex,rotate=-90}
}}
\tikzset{month label above centered/.style={%
execute before day scope={%
\ifdate{day of month=1}{%
{
\pgfmathsetlength{\pgf@xa}{\tikz@lib@cal@xshift}%
\pgf@xb=\tikz@lib@cal@width\pgf@xa%
\advance\pgf@xb by-\pgf@xa%
\pgf@xb=.5\pgf@xb%
\pgftransformxshift{\pgf@xb}%
\pgftransformxshift{-1.5ex}%
\pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}%
\pgftransformyshift{1.25\pgf@y}
\tikzmonthcode%
}
}{}},
every month/.append style={anchor=base}
}}
\tikzset{month label above left/.style={%
execute before day scope={%
\ifdate{day of month=1}{%
{
\pgftransformxshift{-3.25ex}%
\pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}%
\pgftransformyshift{1.25\pgf@y}
\tikzmonthcode%
}
}{}},
every month/.append style={anchor=base west}
}}
\tikzset{month label above right/.style={%
execute before day scope={%
\ifdate{day of month=1}{%
{
\pgfmathsetlength{\pgf@xa}{\tikz@lib@cal@xshift}%
\pgf@xb=\tikz@lib@cal@width\pgf@xa%
\advance\pgf@xb by-\pgf@xa%
\pgftransformxshift{\pgf@xb}%
\pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}%
\pgftransformyshift{1.25\pgf@y}
\tikzmonthcode%
}
}{}},
every month/.append style={anchor=base east}
}}
\tikzset{month label below centered/.style={%
execute before day scope={%
\ifdate{day of month=1}{%
{
\pgfmathsetlength{\pgf@xa}{\tikz@lib@cal@xshift}%
\pgf@xb=\tikz@lib@cal@width\pgf@xa%
\advance\pgf@xb by-\pgf@xa%
\pgf@xb=.5\pgf@xb%
\pgftransformxshift{\pgf@xb}%
\pgftransformxshift{-1.5ex}%
\pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}%
\pgftransformyshift{-1.25\pgf@y}
\tikzmonthcode%
}
}{}},
every month/.append style={anchor=base}
}}
\tikzset{month label below left/.style={%
execute before day scope={%
\ifdate{day of month=1}{%
{
\pgftransformxshift{-3.25ex}%
\pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}%
\pgftransformyshift{-1.25\pgf@y}
\tikzmonthcode%
}
}{}},
every month/.append style={anchor=base west}
}}
\def\tikz@lib@cal@calendar{%
\begingroup%
\let\tikz@lib@cal@ifs=\pgfutil@empty%
\tikz@resetexpandcount
\tikzset{name=,at={(0,0)}}%
\let\%=\pgfcalendarshorthand%
\tikzset{every calendar/.try}%
\tikz@lib@cal@scanner%
}
\def\tikz@lib@cal@scanner{%
\afterassignment\tikz@lib@cal@handle\let\pgf@let@token=%
}
\def\tikz@lib@cal@handle{%
\pgfutil@switch\pgfutil@ifx\pgf@let@token{%
{;}{\let\pgfutil@next\tikz@lib@cal@stop}%
{(}{\let\pgfutil@next\tikz@lib@cal@name}%
{a}{\let\pgfutil@next\tikz@lib@cal@at}%
{[}{\let\pgfutil@next\tikz@lib@cal@option}%
{i}{\let\pgfutil@next\tikz@lib@cal@if}%
}{\tikz@resetexpandcount\pgfutil@next}{\tikz@lib@cal@expand}%
}
\def\tikz@lib@cal@expand{%
\advance\tikz@expandcount by -1
\ifnum\tikz@expandcount<0\relax%
\tikzerror{Giving up on this calendar}%
\let\pgfutil@next=\tikz@lib@cal@end%
\else%
\let\pgfutil@next=\tikz@lib@cal@@expand
\fi%
\pgfutil@next}
\def\tikz@lib@cal@@expand{\expandafter\tikz@lib@cal@scanner\pgf@let@token}
\def\tikz@lib@cal@name#1){%
\tikzset{name=#1}%
\tikz@lib@cal@scanner%
}
\def\tikz@lib@cal@at t#1(#2){%
\tikzset{at={(#2)}}%
\tikz@lib@cal@scanner%
}
\def\tikz@lib@cal@option#1]{%
\tikzset{#1}%
\tikz@lib@cal@scanner%
}
\def\tikz@lib@cal@if f#1(#2){%
\pgfutil@ifnextchar[{\tikz@lib@cal@if@opt{#2}}{\tikz@lib@cal@if@code{#2}}}%
\def\tikz@lib@cal@if@opt#1[#2]{\tikz@lib@cal@if@code{#1}{\tikzset{#2}}}
\def\tikz@lib@cal@if@code#1#2{%
\pgfutil@ifnextchar e{\tikz@lib@cal@if@else{#1}{#2}}{\tikz@lib@cal@if@else{#1}{#2}else{}}}
\def\tikz@lib@cal@if@else#1#2else{%
\pgfutil@ifnextchar[{\tikz@lib@cal@if@else@opt{#1}{#2}}{\tikz@lib@cal@if@else@code{#1}{#2}}}%
\def\tikz@lib@cal@if@else@opt#1#2[#3]{\tikz@lib@cal@if@else@code{#1}{#2}{\tikzset{#3}}}
\def\tikz@lib@cal@if@else@code#1#2#3{%
\expandafter\def\expandafter\tikz@lib@cal@ifs\expandafter{\tikz@lib@cal@ifs\ifdate{#1}{#2}{#3}}%
\tikz@lib@cal@scanner%
}
\def\tikz@lib@cal@stop{%
\pgftransformshift{\tikz@node@at}%
\expandafter\pgfcalendar\expandafter{\tikz@fig@name}{\tikz@lib@cal@start}{\tikz@lib@cal@end}%
{%
\tikz@before@day%
\scope%
\tikz@atbegin@day%
\tikz@lib@cal@ifs%
\tikzdaycode%
\tikz@atend@day%
\endscope%
\tikz@after@day%
}%
\endgroup%
}
\tikzoption{if}{%
\let\tikz@lib@cal@scanner@orig=\tikz@lib@cal@scanner%
\let\tikz@lib@cal@scanner=\relax%
\tikz@lib@cal@if f#1\relax%
\let\tikz@lib@cal@scanner=\tikz@lib@cal@scanner@orig}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalendar.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarychains.code.tex ====
\ProvidesFileRCS{tikzlibrarychains.code.tex}
\usetikzlibrary{positioning}%
\tikzset{start chain/.default=,
start chain/.code={%
\tikz@lib@chain@parse{#1}%
\ifx\tikz@lib@chain@name\pgfutil@empty%
\def\tikz@lib@chain@name{chain}%
\fi%
\ifx\tikz@lib@chain@direction\relax%
\let\tikz@lib@chain@direction=\tikz@lib@chain@default@direction%
\fi%
\expandafter\ifx\csname tikz@lib@chain@active@\tikz@lib@chain@name\endcsname\relax%
\expandafter\let\csname tikz@lib@chain@active@\tikz@lib@chain@name\endcsname=\pgfutil@empty%
\expandafter\global\expandafter\let\csname tikz@lib@chain@exists@\tikz@lib@chain@name\endcsname=\pgfutil@empty%
\expandafter\gdef\csname tikz@lib@chain@count@\tikz@lib@chain@name\endcsname{0}%
\expandafter\global\expandafter\let\csname tikz@lib@chain@dir@\tikz@lib@chain@name\endcsname\tikz@lib@chain@direction%
\let\tikz@lib@current@chain=\tikz@lib@chain@name%
\let\chainin=\tikz@lib@chainin%
\else%
\tikzerror{Chain ``\tikz@lib@chain@name'' is already active}%
\fi%
},
continue chain/.default=,
continue chain/.code={%
\tikz@lib@chain@parse{#1}%
\ifx\tikz@lib@chain@name\pgfutil@empty%
\let\tikz@lib@chain@name\tikz@lib@current@chain%
\fi%
\expandafter\ifx\csname tikz@lib@chain@exists@\tikz@lib@chain@name\endcsname\relax%
\tikzerror{Unknown chain ``#1''}%
\else%
\let\tikz@lib@current@chain=\tikz@lib@chain@name%
\expandafter\let\csname tikz@lib@chain@active@\tikz@lib@chain@name\endcsname=\pgfutil@empty%
\ifx\tikz@lib@chain@direction\relax%
\else%
\expandafter\global\expandafter\let\csname tikz@lib@chain@dir@\tikz@lib@chain@name\endcsname\tikz@lib@chain@direction%
\fi%
\fi%
},
join/.code=\tikz@lib@parse@join{#1},
join/.default={}%
}%
\def\tikz@lib@chain@parse#1{%
\pgfutil@in@{going }{#1}%
\ifpgfutil@in@%
\tikz@lib@chain@going#1\pgf@stop%
\else%
\pgfutil@in@{placed }{#1}%
\ifpgfutil@in@%
\tikz@lib@chain@positioning#1\pgf@stop%
\else%
\def\tikz@lib@chain@name{#1}%
\let\tikz@lib@chain@direction\relax%
\fi%
\fi%
}%
\def\tikz@lib@chain@going#1going #2\pgf@stop{%
\def\tikz@lib@chain@name{#1}%
\ifx\tikz@lib@chain@name\pgfutil@empty%
\else%
\tikz@lib@chain@strip#1\pgf@stop%
\fi%
\tikz@lib@chain@is@goingtrue%
\def\tikz@lib@chain@direction{%
\ifx\tikzchainprevious\pgfutil@empty%
\else%
\tikz@lib@chain@place{#2}%
\fi%
}%
}%
\def\tikz@lib@chain@positioning#1placed #2\pgf@stop{%
\def\tikz@lib@chain@name{#1}%
\ifx\tikz@lib@chain@name\pgfutil@empty%
\else%
\tikz@lib@chain@strip#1\pgf@stop%
\fi%
\tikz@lib@chain@is@goingfalse%
\def\tikz@lib@chain@direction{\tikz@lib@chain@place{#2}}%
}%
\newif\iftikz@lib@chain@is@going
\tikzset{/tikz/chain default direction/.code=%
{%
\tikz@lib@chain@parse{#1}%
\let\tikz@lib@chain@default@direction=\tikz@lib@chain@direction%
},%
/tikz/chain default direction=going right
}%
\def\tikz@lib@current@chain{chain}%
\pgfutil@g@addto@macro\tikz@node@reset@hook{\let\tikz@lib@chain@caller=\relax}%
\pgfutil@g@addto@macro\tikz@node@begin@hook{\tikz@lib@chain@caller}%
\tikzset{
on chain/.default=,
on chain/.code=\tikz@lib@on@chain{#1}%
}%
\def\tikz@lib@on@chain#1{%
\tikz@lib@chain@parse{#1}%
\ifx\tikz@lib@chain@name\pgfutil@empty%
\let\tikz@lib@chain@name\tikz@lib@current@chain%
\fi%
\expandafter\ifx\csname tikz@lib@chain@exists@\tikz@lib@chain@name\endcsname\relax%
\tikzerror{Unknown chain ``\tikz@lib@chain@name''}%
\else%
\c@pgf@counta\csname tikz@lib@chain@count@\tikz@lib@chain@name\endcsname\relax%
\ifnum\c@pgf@counta=0\relax%
\global\let\tikzchainprevious=\pgfutil@empty%
\else
\xdef\tikzchainprevious{\tikz@lib@chain@name-\the\c@pgf@counta}%
\fi%
\advance\c@pgf@counta by1\relax%
\xdef\tikzchaincount{\the\c@pgf@counta}%
\ifx\tikz@lib@chain@direction\relax%
\csname tikz@lib@chain@dir@\tikz@lib@chain@name\endcsname%
\else%
\tikz@lib@chain@direction%
\fi%
\edef\tikz@lib@chain@caller{\noexpand\tikz@lib@chain@last@found{\tikz@lib@chain@name}}%
\fi%
}%
\def\tikz@lib@chain@last@found#1{%
\c@pgf@counta\csname tikz@lib@chain@count@#1\endcsname\relax%
\advance\c@pgf@counta by1\relax%
\xdef\tikzchaincurrent{#1-\the\c@pgf@counta}%
\expandafter\xdef\csname tikz@lib@chain@count@#1\endcsname{\the\c@pgf@counta}%
\ifnum\c@pgf@counta=1\relax%
\tikzset{alias/.expanded={#1-begin}} %
\fi%
\tikzset{alias/.expanded={#1-end}} %
\tikzset{alias/.expanded={#1-\the\c@pgf@counta}} %
\tikz@lib@chain@direction%
\tikzset{every on chain/.try}%
}%
\def\tikz@lib@chain@place#1{%
\pgfutil@in@{=}{#1}%
\ifpgfutil@in@%
\tikzset{#1}%
\else%
\tikzset{#1=of \tikzchainprevious}%
\fi%
}%
\def\tikz@lib@chain@strip#1 \pgf@stop{%
\def\tikz@lib@chain@name{#1}%
}%
\def\tikz@lib@parse@join#1{%
\def\tikz@temp{#1}%
\ifx\tikz@temp\pgfutil@empty%
\tikz@lib@parse@join@by by \pgf@stop%
\else%
\pgfutil@in@{with }{#1}%
\ifpgfutil@in@%
\pgfutil@in@{by }{#1}%
\ifpgfutil@in@%
\tikz@lib@parse@join@with@by#1\pgf@stop%
\else%
\tikz@lib@parse@join@with@by#1 by \pgf@stop%
\fi%
\else%
\tikz@lib@parse@join@by#1\pgf@stop%
\fi%
\fi%
}%
\def\tikz@lib@parse@join@with@by with #1 by #2\pgf@stop{%
\tikzset{after node path={(#1)edge[every join,#2](\tikzchaincurrent)}}%
}%
\def\tikz@lib@parse@join@by by #1\pgf@stop{%
\tikzset{after node path={\ifx\tikzchainprevious\pgfutil@empty\else (\tikzchainprevious)edge[every join,#1](\tikzchaincurrent)\fi}}%
}%
\tikzset{every join/.style=}%
\def\tikz@lib@chainin#1(#2){\pgfutil@ifnextchar[{\tikz@lib@chainin@{#2}}{\tikz@lib@chainin@{#2}[]}}%
\def\tikz@lib@chainin@#1[#2]{\path[late options={name=#1,on chain,every chain in/.try,#2}]}%
\tikzset{start branch/.code={%
\let\tikz@lib@save@current\tikz@lib@current@chain%
\pgfkeysalso{/tikz/start chain/.expand once=\tikz@lib@current@chain/#1}%
\path[late options={name=\tikz@lib@save@current-end,on chain}];%
}%
}%
\tikzset{continue branch/.style={continue chain/.expand once=\tikz@lib@current@chain/#1}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarychains.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.code.tex ====
\usepgfmodule{decorations}%
\tikzset{decorate/.is if=tikz@decoratepath,
/pgf/decoration/name/.store in=\tikz@decoration@name,
/pgf/decoration/.unknown/.code=%
\pgfifdecoration{\pgfkeyscurrentname}{\edef\tikz@decoration@name{\pgfkeyscurrentname}}
{\pgfifmetadecoration{\pgfkeyscurrentname}{\edef\tikz@decoration@name{\pgfkeyscurrentname}}
{\pgfkeys{/errors/unknown
key/.expanded={/pgf/decoration/\pgfkeyscurrentname}{\pgfutil@unexpanded{#1}}}}},%
/pgf/decoration/raise/.code={\def\tikz@dec@shift{\pgftransformyshift{#1}}\tikz@dec@trans},
/pgf/decoration/mirror/.code={%
\csname if#1\endcsname
\def\tikz@dec@mirror{\pgftransformyscale{-1}}%
\else%
\let\tikz@dec@mirror=\relax%
\fi%
\tikz@dec@trans%
},
/pgf/decoration/mirror/.default=true,
/pgf/decoration/transform/.code={%
{%
\pgftransformreset%
\def\tikz@transform{}%
\pgfkeysalso{/tikz/.cd, #1}%
\expandafter\gdef\expandafter\tikz@g@temptransform\expandafter{\tikz@transform}%
}%
\let\tikz@dec@user@transform=\tikz@g@temptransform%
\tikz@dec@trans%
},%
/pgf/decoration/pre/.initial=lineto,
/pgf/decoration/post/.initial=lineto,
/pgf/decoration/pre length/.initial=0pt,
/pgf/decoration/post length/.initial=0pt,
}%
\let\tikz@decoration@name=\tikz@nonetext
\def\tikz@dec@trans{\pgfsetdecorationsegmenttransformation{\tikz@dec@user@transform\tikz@dec@mirror\tikz@dec@shift}}%
\let\tikz@dec@user@transform=\relax
\let\tikz@dec@shift=\relax
\let\tikz@dec@mirror=\relax
\pgfdeclaremetadecoration{tikz@internal}{pre}{%
\state{pre}[width=\pgfkeysvalueof{/pgf/decoration/pre length}, next state=main]
{
\tikz@dec@trans
\decoration{\pgfkeysvalueof{/pgf/decoration/pre}}
}%
\state{main}[width=\pgfmetadecoratedremainingdistance-\pgfkeysvalueof{/pgf/decoration/post length}, next state=final]
{
\tikz@dec@trans
\decoration{\tikz@decoration@name}
}%
\state{final}
{
\tikz@dec@trans
\decoration{\pgfkeysvalueof{/pgf/decoration/post}}
}%
}%
\newif\iftikz@metadecoration
\def\tikz@lib@dec@addtomacro#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}%
\def\tikz@lib@decoration[#1]{%
\begingroup%
\tikzset{#1}%
\ifx\tikz@decoration@name\tikz@nonetext%
\else
\expandafter\tikz@lib@do@dec%
\fi%
\pgfutil@ifnextchar\bgroup{%
\begingroup%
\tikz@auto@end@pathfalse%
\aftergroup\tikz@enddecoration%
\afterassignment\tikz@scan@next@command%
\let\tikz@lib@next%
}%
{%
\tikzerror{A decoration must begin with a brace}%
\tikz@enddecoration%
}%
}%
\def\tikz@lib@do@dec{%
\pgfifmetadecoration{\tikz@decoration@name}%
{\expandafter\pgfmetadecoration\expandafter{\tikz@decoration@name}}%
{%
\pgfifdecoration{\tikz@decoration@name}%
{\tikz@lib@dec@startdecoration}%
{\tikzerror{Unknown (meta-)decoration '\tikz@decoration@name'. Perhaps you
misspelled it?}}%
}%
\ifx\pgfdecorateexistingpath\pgfutil@empty%
\pgfpathmoveto{\pgfqpoint{\the\tikz@lastxsaved}{\the\tikz@lastysaved}}%
\fi%
}%
\newbox\tikz@lib@dec@box
\def\tikz@enddecoration{%
\global\setbox\tikz@lib@dec@box=\box\tikz@tempbox%
\ifx\tikz@decoration@name\tikz@nonetext%
\else
\iftikz@metadecoration%
\endpgfmetadecoration%
\else%
\tikz@lib@dec@stopdecoration%
\fi%
\fi
\endgroup%
\setbox\tikz@tempbox=\box\tikz@lib@dec@box%
}%
\def\tikz@lib@dec@decorate@path{%
\ifx\tikz@decoration@name\tikz@nonetext%
\else%
\pgfgetpath\tikz@lib@dec@currentpath%
\pgfsetpath\pgfutil@empty%
\pgfifmetadecoration{\tikz@decoration@name}
{
\expandafter\pgfmetadecoration\expandafter{\tikz@decoration@name}%
\pgfsetpath\tikz@lib@dec@currentpath%
\endpgfmetadecoration%
}
{
\pgfifdecoration{\tikz@decoration@name}
{
\tikz@lib@dec@startdecoration%
\pgfsetpath\tikz@lib@dec@currentpath%
\tikz@lib@dec@stopdecoration%
}
{
\tikzerror{Unknown (meta-)decoration '\tikz@decoration@name'. Perhaps
you misspelled it?}
}
}
\fi%
}%
\def\tikz@lib@dec@zpttext{0pt}%
\newif\iftikz@lib@dec@temp
\def\tikz@lib@dec@startdecoration{%
\pgfkeysgetvalue{/pgf/decoration/pre length}{\tikz@lib@pre}%
\pgfkeysgetvalue{/pgf/decoration/post length}{\tikz@lib@post}%
\tikz@lib@dec@tempfalse%
\ifx\tikz@lib@pre\tikz@lib@dec@zpttext%
\ifx\tikz@lib@post\tikz@lib@dec@zpttext%
\else%
\tikz@lib@dec@temptrue%
\fi%
\else%
\tikz@lib@dec@temptrue%
\fi%
\iftikz@lib@dec@temp%
\pgfmetadecoration{tikz@internal}%
\else%
\expandafter\pgfdecoration\expandafter{\expandafter{\tikz@decoration@name}{\pgfdecoratedpathlength}{}{}}%
\fi%
}%
\def\tikz@lib@dec@stopdecoration{%
\iftikz@lib@dec@temp%
\endpgfmetadecoration%
\else%
\endpgfdecoration%
\fi%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.footprints.code.tex ====
\usetikzlibrary{decorations}%
\usepgflibrary{decorations.footprints}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.footprints.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.fractals.code.tex ====
\usetikzlibrary{decorations}%
\usepgflibrary{decorations.fractals}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.fractals.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.markings.code.tex ====
\usetikzlibrary{decorations}%
\usepgflibrary{decorations.markings}%
\def\pgf@lib@dec@doarrowhead{%
\pgfutil@ifnextchar[{\tikz@lib@dec@doarrowhead}{\tikz@lib@dec@doarrowhead[]}%
}%
\def\tikz@lib@dec@doarrowhead[#1]#2{%
\scope[#1]
\pgf@lib@dec@arrowhead{1}{#2}%
\endscope
}%
\def\pgf@lib@dec@doarrowheadrev{%
\pgfutil@ifnextchar[{\tikz@lib@dec@doarrowheadrev}{\tikz@lib@dec@doarrowheadrev[]}%
}%
\def\tikz@lib@dec@doarrowheadrev[#1]#2{%
\scope[#1]
\pgf@lib@dec@arrowhead{-1}{#2}%
\endscope
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.markings.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.pathmorphing.code.tex ====
\usetikzlibrary{decorations}%
\usepgflibrary{decorations.pathmorphing}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.pathmorphing.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.pathreplacing.code.tex ====
\usetikzlibrary{decorations}%
\usepgflibrary{decorations.pathreplacing}%
\def\tikz@lib@dec@installinputsegmentpoints{%
\pgf@process{\pgf@decorate@inputsegment@first}%
\edef\tikzinputsegmentfirst{\the\pgf@x,\the\pgf@y}%
\pgf@process{\pgf@decorate@inputsegment@last}%
\edef\tikzinputsegmentlast{\the\pgf@x,\the\pgf@y}%
\pgf@process{\pgf@decorate@inputsegment@supporta}%
\edef\tikzinputsegmentsupporta{\the\pgf@x,\the\pgf@y}%
\pgf@process{\pgf@decorate@inputsegment@supportb}%
\edef\tikzinputsegmentsupportb{\the\pgf@x,\the\pgf@y}%
}%
\pgfkeys{
/pgf/decoration/.cd,
moveto code/.code=\def\pgfdecoratedinputsegmentmovetocode{\tikz@lib@dec@installinputsegmentpoints#1},
lineto code/.code=\def\pgfdecoratedinputsegmentlinetocode{\tikz@lib@dec@installinputsegmentpoints#1},
curveto code/.code=\def\pgfdecoratedinputsegmentcurvetocode{\tikz@lib@dec@installinputsegmentpoints#1},
closepath code/.code=\def\pgfdecoratedinputsegmentclosepathcode{\tikz@lib@dec@installinputsegmentpoints#1}
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.pathreplacing.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.shapes.code.tex ====
\usetikzlibrary{decorations}%
\usepgflibrary{decorations.shapes}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.shapes.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.text.code.tex ====
\usetikzlibrary{decorations}%
\usepgflibrary{decorations.text}%
\def\tikz@lib@dec@te@space@text{space}%
\def\tikz@lib@dec@align@left@text{left}%
\def\tikz@lib@dec@align@right@text{right}%
\def\tikz@lib@dec@align@center@text{center}%
\def\tikz@lib@dec@te@none@text{none}%
\newif\iftikz@lib@dec@te@pathfromtext%
\newif\iftikz@lib@dec@te@segmentfromwidth%
\newif\iftikz@lib@dec@te@scaletexttopath%
\newif\iftikz@lib@dec@te@fittexttopath%
\newif\iftikz@lib@dec@te@wordsep%
\newif\iftikz@lib@dec@te@finalletter%
\def\tikz@lib@dec@te@addto@macro#1#2{%
\expandafter\def\expandafter#1\expandafter{#1#2}%
}%
\def\tikz@lib@dec@te@namelet#1#2{%
\expandafter\expandafter\expandafter\let\expandafter\expandafter\csname\expandafter#1\expandafter\endcsname\expandafter=\csname#2\endcsname%
}%
\def\tikz@lib@dec@te@advancecountmacro#1#2{%
\pgfutil@tempcnta=#1\relax%
\advance\pgfutil@tempcnta by#2\relax%
\edef#1{\the\pgfutil@tempcnta}%
}%
\def\tikz@lib@dec@te@advancedimenmacro#1#2{%
\pgf@x=#1\relax%
\advance\pgf@x by#2\relax%
\edef#1{\the\pgf@x}%
}%
\def\tikz@lib@dec@te@start@parameters#1{%
\expandafter\let\csname tikz@lib@dec@te@character@#1\endcsname=\pgfutil@empty%
}%
\def\tikz@lib@dec@te@addto@parameters#1#2{%
\expandafter\tikz@lib@dec@te@addto@macro\expandafter%
{\csname tikz@lib@dec@te@character@#1\endcsname}{#2}%
}%
\def\tikz@lib@dec@te@addmacroto@parameters#1#2{%
\def\tikz@lib@dec@te@marshal{\expandafter\tikz@lib@dec@te@addto@macro\expandafter%
{\csname tikz@lib@dec@te@character@#1\endcsname}}%
\expandafter\tikz@lib@dec@te@marshal\expandafter{\expandafter\def\expandafter#2\expandafter{#2}}%
}%
\def\tikz@lib@dec@te@getparameters#1{\csname tikz@lib@dec@te@character@#1\endcsname}%
\let\tikz@lib@dec@te@textoptions=\pgfutil@empty
\let\tikz@lib@dec@te@widthoptions=\pgfutil@empty
\let\tikz@lib@dec@te@charactercountvar=\pgfutil@empty
\let\tikz@lib@dec@te@charactertotalvar=\pgfutil@empty
\let\tikz@lib@dec@te@lettercountvar=\pgfutil@empty
\let\tikz@lib@dec@te@lettertotalvar=\pgfutil@empty
\let\tikz@lib@dec@te@wordcountvar=\pgfutil@empty
\let\tikz@lib@dec@te@wordctotalvar=\pgfutil@empty
\let\tikz@lib@dec@te@transformtext=\pgfutil@empty%
\pgfkeys{/pgf/decoration/text effects/.cd,
.unknown/.code={\let\tikz@lib@dec@te@key@tmp=\pgfkeyscurrentname%
\pgfkeysalso{/tikz/\tikz@lib@dec@te@key@tmp={#1}}},
path from text/.is if=tikz@lib@dec@te@pathfromtext,
path from text angle/.store in=\tikz@lib@dec@te@pathfromtextangle,
path from text angle=0,
fit text to path/.is if=tikz@lib@dec@te@fittexttopath,
characters/.style={/pgf/decoration/text effects/every character/.style={#1}},
characters/.append/.code={\pgfkeysalso{/pgf/decoration/text effects/every character/.append style={#1}}},
character widths/.code={\pgfkeysalso{/pgf/decoration/text effects/every character width/.style={#1}}},
character widths/.append/.code={\pgfkeysalso{/pgf/decoration/text effects/every character width/.append style={#1}}},
character count/.store in=\tikz@lib@dec@te@charactercountvar,
character count=,
character total/.store in=\tikz@lib@dec@te@charactertotalvar,
character total=,
letter count/.store in=\tikz@lib@dec@te@lettercountvar,
letter count=,
letter total/.store in=\tikz@lib@dec@te@lettertotalvar,
letter total=,
word count/.store in=\tikz@lib@dec@te@wordcountvar,
word count=,
word total/.store in=\tikz@lib@dec@te@wordtotalvar,
word total=,
style characters/.code args={#1 with #2}{\tikz@lib@dec@te@parse@stylecharacters{#1}{#2}},
text along path/.style={
inner xsep=0pt,
anchor=base,
transform shape
},
segment from width/.is if=tikz@lib@dec@te@segmentfromwidth,
segment from width=true,
word separator/.code={%
\def\tikz@lib@dec@te@tmp{#1}%
\ifx\tikz@lib@dec@te@tmp\tikz@lib@dec@te@space@text%
\let\tikz@lib@dec@te@wordsep=\tikz@lib@dec@te@spacetoken%
\else%
\def\tikz@lib@dec@te@wordsep{#1}
\fi},
word separator=space,
character command/.code={%
\def\tikz@lib@dec@te@tmp{#1}%
\ifx\tikz@lib@dec@te@tmp\pgfutil@empty%
\def\tikz@lib@dec@te@charactercommand{\tikz@lib@dec@te@charactertypesetonly}%
\else%
\def\tikz@lib@dec@te@charactercommand{#1}%
\fi%
},
character command=,
every character width/.style={/pgf/decoration/text effects/every character/.try},
every character/.style={},
reverse text/.code={\tikz@lib@dec@te@addto@macro\tikz@lib@dec@te@transformtext%
{\tikz@lib@dec@te@reversetext}},
group letters into words/.code={\tikz@lib@dec@te@addto@macro\tikz@lib@dec@te@transformtext%
{\tikz@lib@dec@te@groupletters}},
group letters/.code={\tikz@lib@dec@te@addto@macro\tikz@lib@dec@te@transformtext%
{\tikz@lib@dec@te@groupletters}},
replace characters/.code args={#1 with #2}{\tikz@lib@dec@te@parse@replacecharacters{#1}{#2}},
scale text to path/.is if=tikz@lib@dec@te@scaletexttopath,
fit text to path/.is if=tikz@lib@dec@te@fittexttopath,
repeat text/.store in=\tikz@lib@dec@te@repeattext,
repeat text/.default=-1,
repeat text=0,
}%
\def\tikz@lib@dec@te@charactertypesetonly#1{#1}%
\tikzset{%
text effects/.code={\pgfkeysalso{/pgf/decoration/text effects/.cd,#1}},
}%
\def\tikz@lib@dec@te@preparetext{%
\let\tikz@lib@dec@te@text=\pgfdecorationtext%
\tikz@lib@dec@te@scancharacters{%
\expandafter\let\csname tikz@lib@dec@te@character@\tikz@lib@dec@te@scancount @token\endcsname=%
\tikz@lib@dec@te@character%
}%
\let\tikz@lib@dec@te@charactertotalcount=\tikz@lib@dec@te@scancount%
\ifx\tikz@lib@dec@te@transformtext\pgfutil@empty%
\else%
\tikz@lib@dec@te@transformtext%
\fi%
\def\tikz@lib@dec@te@charactercount{0}%
\def\tikz@lib@dec@te@wordcount{0}%
\def\tikz@lib@dec@te@wordsepcount{0}%
\def\tikz@lib@dec@te@lettercount{0}%
\def\tikz@lib@dec@te@lastcharacter{0}%
\pgfmathloop%
\ifnum\pgfmathcounter>\tikz@lib@dec@te@charactertotalcount%
\ifnum\tikz@lib@dec@te@lettercount>0\relax%
\tikz@lib@dec@te@addto@parameters{\tikz@lib@dec@te@lastcharactercount}{\tikz@lib@dec@te@finallettertrue}%
\fi
\else%
\expandafter\let\expandafter\tikz@lib@dec@te@character\expandafter=\csname tikz@lib@dec@te@character@\pgfmathcounter @token\endcsname%
\tikz@lib@dec@te@advancecountmacro{\tikz@lib@dec@te@charactercount}{1}%
\tikz@lib@dec@te@start@parameters{\tikz@lib@dec@te@charactercount}%
\tikz@lib@dec@te@addmacroto@parameters{\tikz@lib@dec@te@charactercount}{\tikz@lib@dec@te@charactercount}%
\ifx\tikz@lib@dec@te@character\tikz@lib@dec@te@wordsep%
\tikz@lib@dec@te@advancecountmacro{\tikz@lib@dec@te@wordsepcount}{1}%
\ifnum\tikz@lib@dec@te@lettercount>0\relax%
\tikz@lib@dec@te@addto@parameters{\tikz@lib@dec@te@lastcharactercount}{\tikz@lib@dec@te@finallettertrue}%
\fi
\def\tikz@lib@dec@te@lettercount{0}%
\tikz@lib@dec@te@addto@parameters{\tikz@lib@dec@te@charactercount}{\tikz@lib@dec@te@wordseptrue}%
\else
\ifnum\tikz@lib@dec@te@lettercount=0\relax%
\tikz@lib@dec@te@advancecountmacro\tikz@lib@dec@te@wordcount{1}%
\fi%
\tikz@lib@dec@te@addto@parameters{\tikz@lib@dec@te@charactercount}{\tikz@lib@dec@te@finalletterfalse}%
\tikz@lib@dec@te@advancecountmacro{\tikz@lib@dec@te@lettercount}{1}%
\tikz@lib@dec@te@addto@parameters{\tikz@lib@dec@te@charactercount}{\tikz@lib@dec@te@wordsepfalse}%
\expandafter\let\csname tikz@lib@dec@te@word \tikz@lib@dec@te@wordcount @lettercount\endcsname=\tikz@lib@dec@te@lettercount%
\fi%
\tikz@lib@dec@te@addmacroto@parameters{\tikz@lib@dec@te@charactercount}{\tikz@lib@dec@te@lettercount}%
\tikz@lib@dec@te@addmacroto@parameters{\tikz@lib@dec@te@charactercount}{\tikz@lib@dec@te@wordcount}%
\tikz@lib@dec@te@addmacroto@parameters{\tikz@lib@dec@te@charactercount}{\tikz@lib@dec@te@character}%
\let\tikz@lib@dec@te@lastcharactercount=\pgfmathcounter%
\repeatpgfmathloop%
\let\tikz@lib@dec@te@wordtotal=\tikz@lib@dec@te@wordcount%
\pgfmathloop
\ifnum\pgfmathcounter>\tikz@lib@dec@te@charactertotalcount%
\else%
\tikz@lib@dec@te@addmacroto@parameters{\pgfmathcounter}{\tikz@lib@dec@te@charactertotalcount}%
\tikz@lib@dec@te@addmacroto@parameters{\pgfmathcounter}{\tikz@lib@dec@te@wordtotal}%
\expandafter\let\expandafter\tikz@lib@dec@te@lettertotalcount\expandafter=\csname tikz@lib@dec@te@word \tikz@lib@dec@te@wordcount @lettercount\endcsname%
\tikz@lib@dec@te@addmacroto@parameters{\pgfmathcounter}{\tikz@lib@dec@te@lettertotalcount}%
\repeatpgfmathloop%
\def\tikz@lib@dec@te@textwidth{0pt}%
\pgfmathloop%
\ifnum\pgfmathcounter>\tikz@lib@dec@te@charactertotalcount%
\else%
\def\tikz@lib@dec@te@characterwidth{0pt}%
\tikz@lib@dec@te@getcharacterwidth{\pgfmathcounter}%
\expandafter\let\csname tikz@lib@dec@te@character@\pgfmathcounter @width\endcsname=\tikz@lib@dec@te@characterwidth%
\pgf@x=\tikz@lib@dec@te@characterwidth\relax%
\pgf@x=0.5\pgf@x%
\expandafter\edef\csname tikz@lib@dec@te@character@\pgfmathcounter @prewidth\endcsname{\the\pgf@x}%
\expandafter\edef\csname tikz@lib@dec@te@character@\pgfmathcounter @postwidth\endcsname{\the\pgf@x}%
\tikz@lib@dec@te@advancedimenmacro{\tikz@lib@dec@te@textwidth}{\tikz@lib@dec@te@characterwidth}%
\repeatpgfmathloop%
}%
\def\tikz@lib@dec@te@spacetoken{ }%
\let\tikz@lib@dec@te@wordsep=\tikz@lib@dec@te@spacetoken
\def\tikz@lib@dec@te@scancharacters#1{%
\def\tikz@lib@dec@te@@@scancharacters@process{#1}%
\def\tikz@lib@dec@te@scancount{0}%
\expandafter\tikz@lib@dec@te@@scancharacters\tikz@lib@dec@te@text\tikz@lib@dec@te@scancharacters}%
\def\tikz@lib@dec@te@@scancharacters{%
\futurelet\tikz@lib@dec@te@token\tikz@lib@dec@te@@@scancharacters}%
\def\tikz@lib@dec@te@@@scancharacters{%
\ifx\tikz@lib@dec@te@token\tikz@lib@dec@te@scancharacters%
\let\tikz@lib@dec@te@next=\tikz@lib@dec@te@@@@scancharacters%
\else%
\tikz@lib@dec@te@advancecountmacro\tikz@lib@dec@te@scancount{1}%
\ifx\tikz@lib@dec@te@token\pgfutil@sptoken%
\let\tikz@lib@dec@te@next=\tikz@lib@dec@te@@@scancharacters@space%
\else%
\ifx\tikz@lib@dec@te@token\bgroup%
\let\tikz@lib@dec@te@next=\tikz@lib@dec@te@@@scancharacters@bgroup%
\else%
\let\tikz@lib@dec@te@next=\tikz@lib@dec@te@@@scancharacters@normal%
\fi%
\fi%
\fi%
\tikz@lib@dec@te@next%
}%
\def\tikz@lib@dec@te@@@scancharacters@space{%
\let\tikz@lib@dec@te@character=\tikz@lib@dec@te@spacetoken%
\tikz@lib@dec@te@@@scancharacters@process%
\pgfutil@ifnextchar x\tikz@lib@dec@te@@scancharacters\tikz@lib@dec@te@@scancharacters%
}%
\def\tikz@lib@dec@te@@@scancharacters@bgroup#1{%
\def\tikz@lib@dec@te@character{{#1}}%
\tikz@lib@dec@te@@@scancharacters@process%
\tikz@lib@dec@te@@scancharacters%
}%
\def\tikz@lib@dec@te@@@scancharacters@normal#1{%
\def\tikz@lib@dec@te@character{#1}%
\tikz@lib@dec@te@@@scancharacters@process%
\tikz@lib@dec@te@@scancharacters%
}%
\def\tikz@lib@dec@te@@@@scancharacters#1\tikz@lib@dec@te@scancharacters{}%
\def\tikz@lib@dec@te@reversetext{%
\c@pgf@counta=\tikz@lib@dec@te@charactertotalcount%
\pgfmathloop%
\ifnum\pgfmathcounter>\c@pgf@counta%
\else%
\tikz@lib@dec@te@namelet{tikz@lib@dec@te@tmp}{tikz@lib@dec@te@character@\pgfmathcounter @token}%
\tikz@lib@dec@te@namelet{tikz@lib@dec@te@character@\pgfmathcounter @token}{tikz@lib@dec@te@character@\the\c@pgf@counta @token}%
\tikz@lib@dec@te@namelet{tikz@lib@dec@te@character@\the\c@pgf@counta @token}{tikz@lib@dec@te@tmp}%
\advance\c@pgf@counta by-1\relax%
\repeatpgfmathloop%
}%
\def\tikz@lib@dec@te@groupletters{%
\c@pgf@counta=0\relax%
\let\tikz@lib@dec@te@tmp=\pgfutil@empty%
\let\tikz@lib@dec@te@@tmp=\pgfutil@empty%
\pgfmathloop%
\ifnum\pgfmathcounter>\tikz@lib@dec@te@charactertotalcount%
\ifx\tikz@lib@dec@te@@tmp\pgfutil@empty%
\else%
\advance\c@pgf@counta by1\relax%
\tikz@lib@dec@te@namelet{tikz@lib@dec@te@character@\the\c@pgf@counta @token}{tikz@lib@dec@te@@tmp}%
\fi%
\else%
\tikz@lib@dec@te@namelet{tikz@lib@dec@te@tmp}{tikz@lib@dec@te@character@\pgfmathcounter @token}%
\ifx\tikz@lib@dec@te@tmp\tikz@lib@dec@te@wordsep%
\advance\c@pgf@counta by1\relax%
\tikz@lib@dec@te@namelet{tikz@lib@dec@te@character@\the\c@pgf@counta @token}{tikz@lib@dec@te@@tmp}%
\let\tikz@lib@dec@te@@tmp=\pgfutil@empty%
\advance\c@pgf@counta by1\relax%
\tikz@lib@dec@te@namelet{tikz@lib@dec@te@character@\the\c@pgf@counta @token}{tikz@lib@dec@te@wordsep}%
\else%
\expandafter\tikz@lib@dec@te@addto@macro\expandafter{\expandafter\tikz@lib@dec@te@@tmp\expandafter}\expandafter{\tikz@lib@dec@te@tmp}%
\fi%
\repeatpgfmathloop%
\edef\tikz@lib@dec@te@charactertotalcount{\the\c@pgf@counta}%
}%
\def\tikz@lib@dec@te@getcharacterwidth#1{%
\csname tikz@lib@dec@te@character@#1\endcsname%
\tikz@lib@dec@te@getoptions{every character width/.try}%
\let\tikz@lib@dec@te@lastcharacterwidth=\tikz@lib@dec@te@characterwidth%
\pgfpositionnodelater\tikz@lib@dec@te@@getcharacterwidth%
\pgfutil@ifundefined{tikz@lib@dec@te@character@replacements@\meaning\tikz@lib@dec@te@character @code}{%
\expandafter\node\expandafter[\tikz@lib@dec@te@options,scale=\tikz@lib@dec@scaledcharacterwidthfactor]%
{\hbox{\tikz@lib@dec@te@charactercommand{\tikz@lib@dec@te@character}}};%
\let\tikz@lib@dec@te@characterwidth=\tikz@lib@dec@te@characterwidth@tmp%
}{%
\tikz@lib@dec@te@getcharacter@replacementwidth{\tikz@lib@dec@te@character}%
\let\tikz@lib@dec@te@characterwidth=\tikz@lib@dec@te@character@replacementwidth%
}%
}%
\def\tikz@lib@dec@te@addwidthstoparameters{%
\pgfmathloop%
\ifnum\pgfmathcounter>\tikz@lib@dec@te@charactertotalcount%
\else%
\tikz@lib@dec@te@namelet{tikz@lib@dec@te@characterwidth}{tikz@lib@dec@te@character@\pgfmathcounter @width}%
\tikz@lib@dec@te@namelet{tikz@lib@dec@te@characterprewidth}{tikz@lib@dec@te@character@\pgfmathcounter @prewidth}%
\tikz@lib@dec@te@namelet{tikz@lib@dec@te@characterpostwidth}{tikz@lib@dec@te@character@\pgfmathcounter @postwidth}%
\tikz@lib@dec@te@addmacroto@parameters{\pgfmathcounter}{\tikz@lib@dec@te@characterwidth}%
\tikz@lib@dec@te@addmacroto@parameters{\pgfmathcounter}{\tikz@lib@dec@te@characterprewidth}%
\tikz@lib@dec@te@addmacroto@parameters{\pgfmathcounter}{\tikz@lib@dec@te@characterpostwidth}%
\repeatpgfmathloop%
}%
\def\tikz@lib@dec@te@addoptions#1{%
\expandafter\def\expandafter\tikz@lib@dec@te@options\expandafter{\tikz@lib@dec@te@options,#1}%
}%
\def\tikz@lib@dec@te@getoptions#1{%
\let\tikz@lib@dec@te@lastcharactercommand=\tikz@lib@dec@te@charactercommand%
\def\tikz@lib@dec@te@options{/pgf/decoration/text effects/.cd}%
\tikz@lib@dec@te@addoptions{#1}%
\let\tikzdecorationcharactercount=\tikz@lib@dec@te@charactercount%
\let\tikzdecorationcharactertotal=\tikz@lib@dec@te@charactertotalcount%
\let\tikzdecorationlettercount=\tikz@lib@dec@te@lettercount%
\let\tikzdecorationlettertotal=\tikz@lib@dec@te@lettertotalcount%
\let\tikzdecorationwordcount=\tikz@lib@dec@te@wordcount%
\let\tikzdecorationwordtotal=\tikz@lib@dec@te@wordtotal%
\let\tikzdecorationcharacter=\tikz@lib@dec@te@character%
\ifx\tikz@lib@dec@te@charactercountvar\pgfutil@empty%
\else%
\expandafter\let\tikz@lib@dec@te@charactercountvar=\tikz@lib@dec@te@charactercount%
\fi%
\ifx\tikz@lib@dec@te@charactertotalvar\pgfutil@empty%
\else%
\expandafter\let\tikz@lib@dec@te@charactertotalvar=\tikz@lib@dec@te@charactertotalcount%
\fi%
\ifx\tikz@lib@dec@te@wordcountvar\pgfutil@empty%
\else%
\expandafter\let\tikz@lib@dec@te@wordcountvar=\tikz@lib@dec@te@wordcount%
\fi%
\ifx\tikz@lib@dec@te@wordtotalvar\pgfutil@empty%
\else%
\expandafter\let\tikz@lib@dec@te@wordtotalvar=\tikz@lib@dec@te@wordtotal%
\fi%
\ifx\tikz@lib@dec@te@lettercountvar\pgfutil@empty%
\else%
\expandafter\let\tikz@lib@dec@te@lettercountvar=\tikz@lib@dec@te@lettercount%
\fi%
\ifx\tikz@lib@dec@te@lettertotalvar\pgfutil@empty%
\else%
\expandafter\let\tikz@lib@dec@te@lettertotalvar=\tikz@lib@dec@te@lettetotal%
\fi%
\edef\tikz@lib@dec@te@tmp{character \tikz@lib@dec@te@charactercount/.try,%
character {\meaning\tikz@lib@dec@te@character}/.try}%
\expandafter\tikz@lib@dec@te@addoptions\expandafter{\tikz@lib@dec@te@tmp}%
\ifx\tikz@lib@dec@te@character\tikz@lib@dec@te@wordsep%
\tikz@lib@dec@te@addoptions{/pgf/decoration/text effects/every word separator/.try}%
\else%
\ifnum\tikz@lib@dec@te@wordcount>0\relax%
\edef\tikz@lib@dec@te@tmp{every word/.try, word \tikz@lib@dec@te@wordcount/.try}%
\expandafter\tikz@lib@dec@te@addoptions\expandafter{\tikz@lib@dec@te@tmp}%
\ifnum\tikz@lib@dec@te@lettercount>0\relax%
\edef\tikz@lib@dec@te@tmp{every letter/.try,every \tikz@lib@dec@te@lettercount\space letter/.try}%
\expandafter\tikz@lib@dec@te@addoptions\expandafter{\tikz@lib@dec@te@tmp}%
\ifnum\tikz@lib@dec@te@lettercount=1\relax%
\edef\tikz@lib@dec@te@tmp{every first letter/.try}%
\expandafter\tikz@lib@dec@te@addoptions\expandafter{\tikz@lib@dec@te@tmp}%
\fi%
\iftikz@lib@dec@te@finalletter%
\tikz@lib@dec@te@addoptions{every final letter/.try}%
\fi%
\fi%
\fi%
\fi%
}%
\def\tikz@lib@dec@te@@getcharacterwidth{%
\iftikz@lib@dec@te@segmentfromwidth%
\pgf@x=\pgfpositionnodelatermaxx\relax%
\advance\pgf@x by-\pgfpositionnodelaterminx\relax%
\else%
\pgf@x=\pgfpositionnodelatermaxy\relax%
\advance\pgf@x by-\pgfpositionnodelaterminy\relax%
\fi%
\xdef\tikz@lib@dec@te@characterwidth@tmp{\the\pgf@x}%
}%
\def\tikz@lib@dec@te@drawcharacter{%
\csname tikz@lib@dec@te@character@\tikz@lib@dec@te@charactercount\endcsname%
\tikz@lib@dec@te@getoptions{every character/.try}%
\pgfpositionnodelater\relax%
\pgfutil@ifundefined{tikz@lib@dec@te@character@replacements@\meaning\tikz@lib@dec@te@character @code}{%
\expandafter\node\expandafter[\tikz@lib@dec@te@options, scale=\tikz@lib@dec@scaledcharacterwidthfactor]{\hbox{\tikz@lib@dec@te@charactercommand{\tikz@lib@dec@te@character}}};%
}{\tikz@lib@dec@te@drawcharacter@replacement{\tikz@lib@dec@te@character}}%
}%
\def\tikz@lib@dec@te@drawcharacter@replacement#1{%
\pgfscope%
\expandafter\tikzset\expandafter{\tikz@lib@dec@te@options}%
\csname tikz@lib@dec@te@character@replacements@\meaning#1@code\endcsname%
\endpgfscope%
}%
\newbox\tikz@lib@dec@te@box
\def\tikz@lib@dec@te@getcharacter@replacementwidth#1{%
\pgfinterruptpicture%
\setbox\tikz@lib@dec@te@box=\hbox{%
\pgfpicture
\expandafter\tikzset\expandafter{\tikz@lib@dec@te@options}%
\csname tikz@lib@dec@te@character@replacements@\meaning#1@code\endcsname%
\endpgfpicture}%
\xdef\tikz@lib@dec@te@character@replacementwidth{\the\wd\tikz@lib@dec@te@box}%
\endpgfinterruptpicture%
}%
\def\tikz@lib@dec@scaledcharacterwidthfactor{1}%
\def\tikz@lib@dec@te@state@setup@precomputation{%
\def\tikz@lib@te@alignshift{0pt}%
\iftikz@lib@dec@te@pathfromtext%
\else%
\let\tikz@lib@dec@te@text=\pgfdecorationtext%
\tikz@lib@dec@te@preparetext%
\iftikz@lib@dec@te@scaletexttopath%
\pgfmathdivide{\pgfdecoratedpathlength}{\tikz@lib@dec@te@textwidth}%
\let\tikz@lib@dec@scaledcharacterwidthfactor=\pgfmathresult%
\expandafter\pgfkeys\expandafter{\tikz@lib@dec@te@tmp}%
\pgfmathloop
\ifnum\pgfmathcounter>\tikz@lib@dec@te@charactertotalcount%
\else%
\pgf@x=\csname tikz@lib@dec@te@character@\pgfmathcounter @prewidth\endcsname\relax%
\pgf@x=\tikz@lib@dec@scaledcharacterwidthfactor\pgf@x%
\expandafter\edef\csname tikz@lib@dec@te@character@\pgfmathcounter @prewidth\endcsname{\the\pgf@x}%
\pgf@x=\csname tikz@lib@dec@te@character@\pgfmathcounter @postwidth\endcsname\relax%
\pgf@x=\tikz@lib@dec@scaledcharacterwidthfactor\pgf@x%
\expandafter\edef\csname tikz@lib@dec@te@character@\pgfmathcounter @postwidth\endcsname{\the\pgf@x}%
\repeatpgfmathloop%
\tikz@lib@dec@te@addwidthstoparameters%
\let\tikz@lib@dec@te@textwidth=\pgfdecoratedpathlength%
\else%
\iftikz@lib@dec@te@fittexttopath%
\pgf@x=\pgfdecoratedpathlength%
\pgf@xa=\csname tikz@lib@dec@te@character@1@postwidth\endcsname\relax%
\pgf@xb=\csname tikz@lib@dec@te@character@\tikz@lib@dec@te@charactertotalcount @prewidth\endcsname\relax%
\advance\pgf@x by-\pgf@xa%
\advance\pgf@x by-\pgf@xb%
\pgf@y=\tikz@lib@dec@te@textwidth\relax%
\advance\pgf@y by-\pgf@xa%
\advance\pgf@y by-\pgf@xb%
\pgfmathdivide{\the\pgf@x}{\the\pgf@y}%
\let\tikz@lib@dec@characterwidthscale=\pgfmathresult%
\pgfmathloop
\ifnum\pgfmathcounter>\tikz@lib@dec@te@charactertotalcount\relax%
\else%
\ifnum\pgfmathcounter>1\relax%
\pgf@x=\csname tikz@lib@dec@te@character@\pgfmathcounter @prewidth\endcsname\relax%
\pgf@x=\tikz@lib@dec@characterwidthscale\pgf@x%
\expandafter\edef\csname tikz@lib@dec@te@character@\pgfmathcounter @prewidth\endcsname{\the\pgf@x}%
\fi%
\ifnum\pgfmathcounter<\tikz@lib@dec@te@charactertotalcount\relax%
\pgf@x=\csname tikz@lib@dec@te@character@\pgfmathcounter @postwidth\endcsname\relax%
\pgf@x=\tikz@lib@dec@characterwidthscale\pgf@x%
\expandafter\edef\csname tikz@lib@dec@te@character@\pgfmathcounter @postwidth\endcsname{\the\pgf@x}%
\fi%
\repeatpgfmathloop%
\tikz@lib@dec@te@addwidthstoparameters%
\let\tikz@lib@dec@te@textwidth=\pgfdecoratedpathlength%
\else%
\pgfkeysgetvalue{/pgf/decoration/text align/align}{\tikz@lib@dec@align}%
\ifx\tikz@lib@dec@align\tikz@lib@dec@align@center@text%
\pgf@x=\pgfdecoratedpathlength\relax%
\advance\pgf@x by-\tikz@lib@dec@te@textwidth\relax%
\ifdim\pgf@x<0pt\relax%
\pgf@x=0pt\relax%
\fi%
\divide\pgf@x by2\relax%
\pgf@xa=\csname tikz@lib@dec@te@character@1@prewidth\endcsname\relax%
\advance\pgf@xa by\pgf@x%
\expandafter\edef\csname tikz@lib@dec@te@character@1@prewidth\endcsname{\the\pgf@xa}%
\pgf@xa=\csname tikz@lib@dec@te@character@\tikz@lib@dec@te@charactertotalcount @postwidth\endcsname\relax%
\advance\pgf@xa by\pgf@x%
\expandafter\edef\csname tikz@lib@dec@te@character@\tikz@lib@dec@te@charactertotalcount @postwidth\endcsname{\the\pgf@xa}%
\else%
\ifx\tikz@lib@dec@align\tikz@lib@dec@align@right@text%
\pgf@x=\pgfdecoratedpathlength\relax%
\advance\pgf@x by-\tikz@lib@dec@te@textwidth\relax%
\ifdim\pgf@x<0pt\relax%
\pgf@x=0pt\relax%
\fi%
\pgf@xa=\csname tikz@lib@dec@te@character@1@prewidth\endcsname\relax%
\advance\pgf@xa by\pgf@x%
\expandafter\edef\csname tikz@lib@dec@te@character@1@prewidth\endcsname{\the\pgf@xa}%
\fi%
\fi%
\tikz@lib@dec@te@addwidthstoparameters%
\fi%
\fi%
\fi%
}%
\def\pgf@decorate@path@check@moveto#1{%
\expandafter\pgf@decorate@path@@check@moveto#1\pgf@decorate@stop\pgf@decorate@@stop}%
\def\pgf@decorate@token@stop{\pgf@decorate@stop}%
\def\pgf@decorate@path@@check@moveto#1#2#3#4\pgf@decorate@@stop#5#6{%
\def\pgf@decorate@temp{#4}%
\pgf@x=#2\relax%
\pgf@y=#3\relax%
\ifx\pgf@decorate@temp\pgf@decorate@token@stop%
\iftikz@lib@dec@te@pathfromtext%
\pgfextract@process\tikz@lib@dec@te@pathstart{}%
\tikz@lib@dec@te@preparetext%
\tikz@lib@dec@te@addwidthstoparameters%
\pgfsetpath\pgfutil@empty%
\pgfpathmoveto{\tikz@lib@dec@te@pathstart}%
\pgfpathlineto{\pgfpointadd{\tikz@lib@dec@te@pathstart}%
{\pgfpointpolar{\tikz@lib@dec@te@pathfromtextangle}{\tikz@lib@dec@te@textwidth}}}%
\pgfgetpath\pgfdecoratedpath%
\pgfsetpath\pgfutil@empty%
\else%
#5%
\fi%
\else%
\tikz@lib@dec@te@pathfromtextfalse%
#6%
\fi%
}%
\pgfdeclaredecoration{text effects along path}{setup}{%
\state{setup}[width=+0pt, next state=scan, persistent precomputation={%
\tikz@lib@dec@te@state@setup@precomputation%
\def\tikz@lib@dec@te@charactercount{0}%
}]{}%
\state{scan}[width=+0pt, next state=pre token, persistent precomputation={%
\tikz@lib@dec@te@advancecountmacro\tikz@lib@dec@te@charactercount{1}%
\ifnum\tikz@lib@dec@te@charactercount>\tikz@lib@dec@te@charactertotalcount\relax%
\ifnum\tikz@lib@dec@te@repeattext=0\relax%
\def\pgf@decorate@next@state{final}%
\else%
\tikz@lib@dec@te@advancecountmacro\tikz@lib@dec@te@repeattext{-1}%
\def\tikz@lib@dec@te@charactercount{1}%
\fi%
\fi%
\csname tikz@lib@dec@te@character@\tikz@lib@dec@te@charactercount\endcsname%
}]{}%
\state{pre token}[width=+\tikz@lib@dec@te@characterprewidth, next state=token]{}%
\state{token}[width=+0pt, next state=post token]
{%
\tikz@lib@dec@te@drawcharacter%
}%
\state{post token}[width=+\tikz@lib@dec@te@characterpostwidth, next state=scan]{}%
}%
\def\tikz@lib@dec@te@parse@stylecharacters#1#2{%
\def\tikz@lib@dec@te@text{#1}%
\tikz@lib@dec@te@scancharacters{%
\pgfkeysalso{/pgf/decoration/text effects/character {\meaning\tikz@lib@dec@te@character}/.style={#2}}%
}%
}%
\def\tikz@lib@dec@te@parse@replacecharacters#1#2{%
\def\tikz@lib@dec@te@text{#1}%
\tikz@lib@dec@te@scancharacters{%
\expandafter\def\csname tikz@lib@dec@te@character@replacements@\meaning\tikz@lib@dec@te@character @code\endcsname{#2}%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.text.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryer.code.tex ====
\ProvidesFileRCS{tikzlibraryer.code.tex}
\usetikzlibrary{shapes.geometric}%
\tikzset{every entity/.style= {}}%
\tikzset{entity/.style= {rectangle,draw,
minimum height=2\baselineskip,
minimum width=4\baselineskip,every entity}}%
\tikzset{every relationship/.style= {}}%
\tikzset{relationship/.style= {diamond,draw,
minimum size=1.5\baselineskip,
inner sep=1pt,
every relationship}}%
\tikzset{every attribute/.style= {}}%
\tikzset{attribute/.style= {minimum size=1.5\baselineskip,ellipse,draw,every attribute}}%
\tikzset{key attribute/.style= {font=\itshape,attribute}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryer.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfadings.code.tex ====
\ProvidesFileRCS{tikzlibraryfadings.code.tex}
\usepgflibrary{fadings}%
\def\tikzfadingfrompicture{%
\begingroup%
\setbox\pgfpic=\hbox\bgroup%
\tikzpicture%
}%
\def\endtikzfadingfrompicture{%
\global\let\tikz@smuggle=\tikz@fig@name%
\endtikzpicture
\egroup%
\pgfdeclarefading{\tikz@smuggle}{\box\pgfpic}%
\endgroup%
}%
\def\starttikzfadingfrompicture{\tikzfadingfrompicture}%
\def\stopttikzfadingfrompicture{\endtikzfadingfrompicture}%
\def\tikzfading[#1]{%
{%
\setbox\pgfpic=\hbox{%
\tikzset{#1}%
\global\let\tikz@smuggle=\tikz@fig@name%
\tikz{%
\useasboundingbox(0,0) (100bp,100bp);
\node at (50bp,50bp) [rotate=\tikz@shade@angle]
{\pgfuseshading{\tikz@shading}};
}%
}%
\pgfdeclarefading{\tikz@smuggle}{\box\pgfpic}%
}%
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfadings.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex ====
\ProvidesFileRCS{tikzlibraryfit.code.tex}
\pgfqkeys{/tikz}{%
fit/.code=\tikz@lib@fit{#1},
rotate fit/.code={%
\pgfmathsetmacro\tikz@lib@fit@rotate{#1}%
\pgfkeysalso{/tikz/rotate=\tikz@lib@fit@rotate}%
},
}%
\def\tikz@lib@fit@rotate{0}%
\def\tikz@lib@fit#1{%
\pgf@xb=-16000pt\relax%
\pgf@xa=16000pt\relax%
\pgf@yb=-16000pt\relax%
\pgf@ya=16000pt\relax%
\tikz@lib@fit@scan#1\pgf@stop%
\ifdim\pgf@xa>\pgf@xa%
\else%
\pgf@x=\pgf@xb%
\advance\pgf@x by-\pgf@xa%
\pgf@y=\pgf@yb%
\advance\pgf@y by-\pgf@ya%
\advance\pgf@xa by.5\pgf@x%
\advance\pgf@ya by.5\pgf@y%
\ifdim\tikz@lib@fit@rotate pt=0pt\relax%
{%
\pgftransforminvert%
\pgf@pos@transform{\pgf@xa}{\pgf@ya}%
\global\pgf@xa\pgf@xa
\global\pgf@ya\pgf@ya
}
\else%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
{%
\pgf@xc=\pgf@xa%
\pgf@yc=\pgf@ya%
\pgftransforminvert%
\pgf@pos@transform{\pgf@xc}{\pgf@yc}%
\pgftransformreset%
\pgftransformrotate{\tikz@lib@fit@rotate}%
\pgf@pos@transform{\pgf@xc}{\pgf@yc}%
\global\pgf@x=\pgf@xc%
\global\pgf@y=\pgf@yc%
}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@x=\pgf@xc%
\pgf@y=\pgf@yc%
\fi%
\edef\tikz@node@at{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
\pgfkeysalso{/tikz/anchor=center,/tikz/text badly centered}%
\pgfkeysalso{/tikz/text width/.expanded=\the\pgf@x}%
\pgf@x=\pgf@y%
\pgf@y=.5\pgf@y%
\pgfkeysalso{
/tikz/transform shape=false,
/tikz/text height/.expanded=\the\pgf@y-.5\dp\pgfnodeparttextbox,
/tikz/text depth/.expanded=\the\pgf@x-\noexpand\the\ht\pgfnodeparttextbox}%
\pgfkeysalso{every fit/.try}%
\fi%
}%
\def\tikz@lib@fit@scan{%
\pgfutil@ifnextchar\pgf@stop{\pgfutil@gobble}
{\tikz@scan@one@point\tikz@lib@fit@scan@handle}}%
\def\tikz@lib@fit@scan@handle#1{%
\iftikz@shapeborder%
\tikz@lib@fit@adjust{\pgfpointanchor{\tikz@shapeborder@name}{west}}%
\tikz@lib@fit@adjust{\pgfpointanchor{\tikz@shapeborder@name}{east}}%
\tikz@lib@fit@adjust{\pgfpointanchor{\tikz@shapeborder@name}{north}}%
\tikz@lib@fit@adjust{\pgfpointanchor{\tikz@shapeborder@name}{south}}%
\else%
\tikz@lib@fit@adjust{#1}%
\fi%
\tikz@lib@fit@scan%
}%
\def\tikz@lib@fit@adjust#1{%
\ifdim\tikz@lib@fit@rotate pt=0pt\relax%
\pgf@process{\pgfpointtransformed{#1}}%
\else%
{%
\pgf@process{\pgfpointtransformed{#1}}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfgettransform\tikz@lib@fit@transform%
\pgftransforminvert%
\pgf@pos@transform{\pgf@xc}{\pgf@yc}%
\pgftransformreset%
\pgftransformrotate{-\tikz@lib@fit@rotate}%
\pgf@pos@transform{\pgf@xc}{\pgf@yc}%
\pgfsettransform\tikz@lib@fit@transform%
\pgf@pos@transform{\pgf@xc}{\pgf@yc}%
\global\pgf@x=\pgf@xc%
\global\pgf@y=\pgf@yc%
}%
\fi%
\ifdim\pgf@x<\pgf@xa%
\pgf@xa=\pgf@x%
\fi%
\ifdim\pgf@y<\pgf@ya%
\pgf@ya=\pgf@y%
\fi%
\ifdim\pgf@x>\pgf@xb%
\pgf@xb=\pgf@x%
\fi%
\ifdim\pgf@y>\pgf@yb%
\pgf@yb=\pgf@y%
\fi%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfixedpointarithmetic.code.tex ====
\usepgflibrary{fixedpointarithmetic}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfixedpointarithmetic.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfolding.code.tex ====
\ProvidesFileRCS{tikzlibraryfolding.code.tex}
\tikzoption{folding line length}{\pgfmathsetlength\tikz@lib@fold@length{#1}}%
\newdimen\tikz@lib@fold@length
\tikz@lib@fold@length=2cm
\def\tikz@lib@fold@triangle#1#2#3#4{%
\scope[xshift=.5\tikz@lib@fold@length,yshift=.28868\tikz@lib@fold@length]
#1
\endscope
\scope[shift={(60:\tikz@lib@fold@length)},rotate=-60]
#2
\endscope
\scope[xshift=\tikz@lib@fold@length,rotate=180]
#3
\endscope
\scope[rotate=60]
#4
\endscope
}%
\def\tikz@lib@fold@square#1#2#3#4#5{%
\scope[xshift=.5\tikz@lib@fold@length,yshift=.5\tikz@lib@fold@length]
#1
\endscope
\scope[yshift=\tikz@lib@fold@length]
#2
\endscope
\scope[xshift=\tikz@lib@fold@length,yshift=\tikz@lib@fold@length,rotate=-90]
#3
\endscope
\scope[xshift=\tikz@lib@fold@length,rotate=180]
#4
\endscope
\scope[rotate=90]
#5
\endscope
}%
\def\tikz@lib@fold@squarerhombusr#1#2#3#4#5{%
\scope[xshift=.63\tikz@lib@fold@length,yshift=.4755\tikz@lib@fold@length,xslant=0.34]
#1
\endscope
\scope[shift={(70.529:\tikz@lib@fold@length)}]
#2
\endscope
\scope[shift={(35.264:1.63299\tikz@lib@fold@length)},rotate=-109.471]
#3
\endscope
\scope[xshift=\tikz@lib@fold@length,rotate=180]
#4
\endscope
\scope[rotate=70.529]
#5
\endscope
}%
\def\tikz@lib@fold@squarerhombusl#1#2#3#4#5{%
\scope[xshift=.33\tikz@lib@fold@length,yshift=.4755\tikz@lib@fold@length,xslant=-0.34]
#1
\endscope
\scope[shift={(109.471:\tikz@lib@fold@length)}]
#2
\endscope
\scope[shift={(54.736:1.1547\tikz@lib@fold@length)},rotate=-70.529]
#3
\endscope
\scope[xshift=\tikz@lib@fold@length,rotate=180]
#4
\endscope
\scope[rotate=109.471]
#5
\endscope
}%
\def\tikz@lib@fold@goldenrhombusr#1#2#3#4#5{%
\scope[xshift=.724\tikz@lib@fold@length,yshift=.447\tikz@lib@fold@length, xslant=0.447]
#1
\endscope
\scope[shift={(63.435:\tikz@lib@fold@length)}]
#2
\endscope
\scope[shift={(31.717:1.701\tikz@lib@fold@length)},rotate=-116.565]
#3
\endscope
\scope[xshift=\tikz@lib@fold@length,rotate=180]
#4
\endscope
\scope[rotate=63.435]
#5
\endscope
}%
\def\tikz@lib@fold@goldenrhombusl#1#2#3#4#5{%
\scope[xshift=.276\tikz@lib@fold@length,yshift=.447\tikz@lib@fold@length, xslant=-0.447]
#1
\endscope
\scope[shift={(116.565:\tikz@lib@fold@length)}]
#2
\endscope
\scope[shift={(58.283:1.051\tikz@lib@fold@length)},rotate=-63.435]
#3
\endscope
\scope[xshift=\tikz@lib@fold@length,rotate=180]
#4
\endscope
\scope[rotate=116.565]
#5
\endscope
}%
\def\tikz@lib@fold@pentagon#1#2#3#4#5#6{%
\scope[xshift=.5\tikz@lib@fold@length,yshift=0.68819\tikz@lib@fold@length]
#1
\endscope
\scope[shift={(108:\tikz@lib@fold@length)},shift={(36:\tikz@lib@fold@length)},rotate=-36]
#2
\endscope
\scope[xshift=\tikz@lib@fold@length,shift={(72:\tikz@lib@fold@length)},rotate=-108]
#3
\endscope
\scope[xshift=\tikz@lib@fold@length,rotate=180]
#4
\endscope
\scope[rotate=108]
#5
\endscope
\scope[shift={(108:\tikz@lib@fold@length)},rotate=36]
#6
\endscope
}%
\def\tikz@lib@fold@hexagon#1#2#3#4#5#6#7{%
\scope
[shift={(60:\tikz@lib@fold@length)}]
#1
\endscope
\scope
[shift={(120:\tikz@lib@fold@length)},
shift={(60:\tikz@lib@fold@length)}]
#2
\endscope
\scope
[shift={(120:\tikz@lib@fold@length)},
shift={(60:\tikz@lib@fold@length)},
xshift=\tikz@lib@fold@length,
rotate=-60]
#3
\endscope
\scope
[xshift=\tikz@lib@fold@length,
shift={(60:\tikz@lib@fold@length)},
rotate=-120]
#4
\endscope
\scope
[xshift=\tikz@lib@fold@length,
rotate=180]
#5
\endscope
\scope
[rotate=120]
#6
\endscope
\scope
[shift={(120:\tikz@lib@fold@length)},
rotate=60]
#7
\endscope
}%
\def\tikz@lib@fold@octagon#1#2#3#4#5#6#7#8#9{%
\scope[xshift=.5\tikz@lib@fold@length,yshift=1.20711\tikz@lib@fold@length]
#1
\endscope
\scope[yshift=2.41421\tikz@lib@fold@length]
#2
\endscope
\scope[xshift=\tikz@lib@fold@length,yshift=2.41421\tikz@lib@fold@length,rotate=-45]
#3
\endscope
\scope[xshift=1.70711\tikz@lib@fold@length,yshift=1.70711\tikz@lib@fold@length,rotate=-90]
#4
\endscope
\scope[xshift=1.70711\tikz@lib@fold@length,yshift=.70711\tikz@lib@fold@length,rotate=-135]
#5
\endscope
\scope[xshift=\tikz@lib@fold@length,rotate=180]
#6
\endscope
\scope[rotate=135]
#7
\endscope
\scope[xshift=-.70711\tikz@lib@fold@length,yshift=.70711\tikz@lib@fold@length,rotate=90]
#8
\endscope
\scope[xshift=-.70711\tikz@lib@fold@length,yshift=1.70711\tikz@lib@fold@length,rotate=45]
#9
\endscope
}%
\def\tikz@lib@fold@decagon#1#2#3#4#5#6#7{%
\scope[shift={(72:1.61803\tikz@lib@fold@length)}] %
#1
\endscope
\scope
[shift={(36:\tikz@lib@fold@length)},
shift={(72:\tikz@lib@fold@length)},
shift={(108:\tikz@lib@fold@length)},
shift={(144:\tikz@lib@fold@length)}]
#2
\endscope
\scope
[xshift=\tikz@lib@fold@length,
shift={(36:\tikz@lib@fold@length)},
shift={(72:\tikz@lib@fold@length)},
shift={(108:\tikz@lib@fold@length)},
shift={(144:\tikz@lib@fold@length)},
rotate=-36]
#3
\endscope
\scope
[xshift=\tikz@lib@fold@length,
shift={(36:\tikz@lib@fold@length)},
shift={(72:\tikz@lib@fold@length)},
shift={(108:\tikz@lib@fold@length)},
rotate=-72]
#4
\endscope
\scope
[xshift=\tikz@lib@fold@length,
shift={(36:\tikz@lib@fold@length)},
shift={(72:\tikz@lib@fold@length)},
rotate=-108]
#5
\endscope
\scope
[xshift=\tikz@lib@fold@length,
shift={(36:\tikz@lib@fold@length)},
rotate=-144]
#6
\endscope
\scope
[xshift=\tikz@lib@fold@length,
rotate=180]
#7
\endscope
\tikz@lib@fold@decagonbis
}%
\def\tikz@lib@fold@decagonbis#1#2#3#4{%
\scope
[rotate=144]
#1
\endscope
\scope
[shift={(144:\tikz@lib@fold@length)},
rotate=108]
#2
\endscope
\scope
[shift={(144:\tikz@lib@fold@length)},
shift={(108:\tikz@lib@fold@length)},
rotate=72]
#3
\endscope
\scope
[shift={(144:\tikz@lib@fold@length)},
shift={(108:\tikz@lib@fold@length)},
shift={(72:\tikz@lib@fold@length)},
rotate=36]
#4
\endscope
}%
\def\tikz@lib@fold@path{\draw[every fold](0,0) -- (\tikz@lib@fold@length,0pt);}%
\def\tikz@lib@fold@cut@path{\draw[every cut](0,0) -- (\tikz@lib@fold@length,0pt);}%
\def\tikz@lib@fold@ear@path{
\path[every ear] (0,0) -- (.5\tikz@lib@fold@length,.2\tikz@lib@fold@length) --(\tikz@lib@fold@length,0pt) --(0,0) -- cycle;
\draw[every fold](0,0) -- (\tikz@lib@fold@length,0pt);
\draw[every cut] (0,0) -- (.5\tikz@lib@fold@length,.2\tikz@lib@fold@length) --(\tikz@lib@fold@length,0pt);}%
\def\tikz@lib@fold@ear@custom@left@path#1{
\path[every ear] (0,0) -- (#1:.66\tikz@lib@fold@length) -- (\tikz@lib@fold@length,0pt) --(0,0) -- cycle;
\draw[every fold](0,0) -- (\tikz@lib@fold@length,0pt);
\draw[every cut] (0,0) -- (#1:.66\tikz@lib@fold@length) -- (\tikz@lib@fold@length,0pt);}%
\def\tikz@lib@fold@ear@custom@right@path#1{
\path[every ear] (0,0) -- (\tikz@lib@fold@length,0pt) -- ++(-#1:-.66\tikz@lib@fold@length) --(0,0) -- cycle;
\draw[every fold](0,0) -- (\tikz@lib@fold@length,0pt);
\draw[every cut] (\tikz@lib@fold@length,0pt) -- ++(-#1:-.66\tikz@lib@fold@length) -- (0,0);}%
\tikzset{every ear/.style={}}%
\tikzset{every cut/.style={}}%
\tikzset{every fold/.style={help lines}}%
\tikzoption{face 1}{\def\tikz@lib@fold@face@A{#1}}%
\tikzoption{face 2}{\def\tikz@lib@fold@face@B{#1}}%
\tikzoption{face 3}{\def\tikz@lib@fold@face@C{#1}}%
\tikzoption{face 4}{\def\tikz@lib@fold@face@D{#1}}%
\tikzoption{face 5}{\def\tikz@lib@fold@face@E{#1}}%
\tikzoption{face 6}{\def\tikz@lib@fold@face@F{#1}}%
\tikzoption{face 7}{\def\tikz@lib@fold@face@G{#1}}%
\tikzoption{face 8}{\def\tikz@lib@fold@face@H{#1}}%
\tikzoption{face 9}{\def\tikz@lib@fold@face@I{#1}}%
\tikzoption{face 10}{\def\tikz@lib@fold@face@J{#1}}%
\tikzoption{face 11}{\def\tikz@lib@fold@face@K{#1}}%
\tikzoption{face 12}{\def\tikz@lib@fold@face@L{#1}}%
\tikzoption{face 13}{\def\tikz@lib@fold@face@M{#1}}%
\tikzoption{face 14}{\def\tikz@lib@fold@face@N{#1}}%
\tikzoption{face 15}{\def\tikz@lib@fold@face@O{#1}}%
\tikzoption{face 16}{\def\tikz@lib@fold@face@P{#1}}%
\tikzoption{face 17}{\def\tikz@lib@fold@face@Q{#1}}%
\tikzoption{face 18}{\def\tikz@lib@fold@face@R{#1}}%
\tikzoption{face 19}{\def\tikz@lib@fold@face@S{#1}}%
\tikzoption{face 20}{\def\tikz@lib@fold@face@T{#1}}%
\tikzoption{face 21}{\def\tikz@lib@fold@face@U{#1}}%
\tikzoption{face 22}{\def\tikz@lib@fold@face@V{#1}}%
\tikzoption{face 23}{\def\tikz@lib@fold@face@W{#1}}%
\tikzoption{face 24}{\def\tikz@lib@fold@face@X{#1}}%
\tikzoption{face 25}{\def\tikz@lib@fold@face@Y{#1}}%
\tikzoption{face 26}{\def\tikz@lib@fold@face@Z{#1}}%
\tikzoption{face 27}{\def\tikz@lib@fold@face@AA{#1}}%
\tikzoption{face 28}{\def\tikz@lib@fold@face@AB{#1}}%
\tikzoption{face 29}{\def\tikz@lib@fold@face@AC{#1}}%
\tikzoption{face 30}{\def\tikz@lib@fold@face@AD{#1}}%
\tikzoption{face 31}{\def\tikz@lib@fold@face@AE{#1}}%
\tikzoption{face 32}{\def\tikz@lib@fold@face@AF{#1}}%
\tikzoption{face 33}{\def\tikz@lib@fold@face@AG{#1}}%
\tikzoption{face 34}{\def\tikz@lib@fold@face@AH{#1}}%
\tikzoption{face 35}{\def\tikz@lib@fold@face@AI{#1}}%
\tikzoption{face 36}{\def\tikz@lib@fold@face@AJ{#1}}%
\tikzoption{face 37}{\def\tikz@lib@fold@face@AK{#1}}%
\tikzoption{face 38}{\def\tikz@lib@fold@face@AL{#1}}%
\tikzoption{face 39}{\def\tikz@lib@fold@face@AM{#1}}%
\tikzoption{face 40}{\def\tikz@lib@fold@face@AN{#1}}%
\tikzoption{face 41}{\def\tikz@lib@fold@face@AO{#1}}%
\tikzoption{face 42}{\def\tikz@lib@fold@face@AP{#1}}%
\tikzoption{face 43}{\def\tikz@lib@fold@face@AQ{#1}}%
\tikzoption{face 44}{\def\tikz@lib@fold@face@AR{#1}}%
\tikzoption{face 45}{\def\tikz@lib@fold@face@AS{#1}}%
\tikzoption{face 46}{\def\tikz@lib@fold@face@AT{#1}}%
\tikzoption{face 47}{\def\tikz@lib@fold@face@AU{#1}}%
\tikzoption{face 48}{\def\tikz@lib@fold@face@AV{#1}}%
\tikzoption{face 49}{\def\tikz@lib@fold@face@AW{#1}}%
\tikzoption{face 50}{\def\tikz@lib@fold@face@AX{#1}}%
\tikzoption{face 51}{\def\tikz@lib@fold@face@AY{#1}}%
\tikzoption{face 52}{\def\tikz@lib@fold@face@AZ{#1}}%
\tikzoption{face 53}{\def\tikz@lib@fold@face@BA{#1}}%
\tikzoption{face 54}{\def\tikz@lib@fold@face@BB{#1}}%
\tikzoption{face 55}{\def\tikz@lib@fold@face@BC{#1}}%
\tikzoption{face 56}{\def\tikz@lib@fold@face@BD{#1}}%
\tikzoption{face 57}{\def\tikz@lib@fold@face@BE{#1}}%
\tikzoption{face 58}{\def\tikz@lib@fold@face@BF{#1}}%
\tikzoption{face 59}{\def\tikz@lib@fold@face@BG{#1}}%
\tikzoption{face 60}{\def\tikz@lib@fold@face@BH{#1}}%
\tikzoption{face 61}{\def\tikz@lib@fold@face@BI{#1}}%
\tikzoption{face 62}{\def\tikz@lib@fold@face@BJ{#1}}%
\tikzoption{face 63}{\def\tikz@lib@fold@face@BK{#1}}%
\tikzoption{face 64}{\def\tikz@lib@fold@face@BL{#1}}%
\tikzoption{face 65}{\def\tikz@lib@fold@face@BM{#1}}%
\tikzoption{face 66}{\def\tikz@lib@fold@face@BN{#1}}%
\tikzoption{face 67}{\def\tikz@lib@fold@face@BO{#1}}%
\tikzoption{face 68}{\def\tikz@lib@fold@face@BP{#1}}%
\tikzoption{face 69}{\def\tikz@lib@fold@face@BQ{#1}}%
\tikzoption{face 70}{\def\tikz@lib@fold@face@BR{#1}}%
\tikzoption{face 71}{\def\tikz@lib@fold@face@BS{#1}}%
\tikzoption{face 72}{\def\tikz@lib@fold@face@BT{#1}}%
\tikzoption{face 73}{\def\tikz@lib@fold@face@BU{#1}}%
\tikzoption{face 74}{\def\tikz@lib@fold@face@BV{#1}}%
\tikzoption{face 75}{\def\tikz@lib@fold@face@BW{#1}}%
\tikzoption{face 76}{\def\tikz@lib@fold@face@BX{#1}}%
\tikzoption{face 77}{\def\tikz@lib@fold@face@BY{#1}}%
\tikzoption{face 78}{\def\tikz@lib@fold@face@BZ{#1}}%
\tikzoption{face 79}{\def\tikz@lib@fold@face@CA{#1}}%
\tikzoption{face 80}{\def\tikz@lib@fold@face@CB{#1}}%
\tikzoption{face 81}{\def\tikz@lib@fold@face@CC{#1}}%
\tikzoption{face 82}{\def\tikz@lib@fold@face@CD{#1}}%
\tikzoption{face 83}{\def\tikz@lib@fold@face@CE{#1}}%
\tikzoption{face 84}{\def\tikz@lib@fold@face@CF{#1}}%
\tikzoption{face 85}{\def\tikz@lib@fold@face@CG{#1}}%
\tikzoption{face 86}{\def\tikz@lib@fold@face@CH{#1}}%
\tikzoption{face 87}{\def\tikz@lib@fold@face@CI{#1}}%
\tikzoption{face 88}{\def\tikz@lib@fold@face@CJ{#1}}%
\tikzoption{face 89}{\def\tikz@lib@fold@face@CK{#1}}%
\tikzoption{face 90}{\def\tikz@lib@fold@face@CL{#1}}%
\tikzoption{face 91}{\def\tikz@lib@fold@face@CM{#1}}%
\tikzoption{face 92}{\def\tikz@lib@fold@face@CN{#1}}%
\let\tikz@lib@fold@face@A=\pgfutil@empty
\let\tikz@lib@fold@face@B=\pgfutil@empty
\let\tikz@lib@fold@face@C=\pgfutil@empty
\let\tikz@lib@fold@face@D=\pgfutil@empty
\let\tikz@lib@fold@face@E=\pgfutil@empty
\let\tikz@lib@fold@face@F=\pgfutil@empty
\let\tikz@lib@fold@face@G=\pgfutil@empty
\let\tikz@lib@fold@face@H=\pgfutil@empty
\let\tikz@lib@fold@face@I=\pgfutil@empty
\let\tikz@lib@fold@face@J=\pgfutil@empty
\let\tikz@lib@fold@face@K=\pgfutil@empty
\let\tikz@lib@fold@face@L=\pgfutil@empty
\let\tikz@lib@fold@face@M=\pgfutil@empty
\let\tikz@lib@fold@face@N=\pgfutil@empty
\let\tikz@lib@fold@face@O=\pgfutil@empty
\let\tikz@lib@fold@face@P=\pgfutil@empty
\let\tikz@lib@fold@face@Q=\pgfutil@empty
\let\tikz@lib@fold@face@R=\pgfutil@empty
\let\tikz@lib@fold@face@S=\pgfutil@empty
\let\tikz@lib@fold@face@T=\pgfutil@empty
\let\tikz@lib@fold@face@U=\pgfutil@empty
\let\tikz@lib@fold@face@V=\pgfutil@empty
\let\tikz@lib@fold@face@W=\pgfutil@empty
\let\tikz@lib@fold@face@X=\pgfutil@empty
\let\tikz@lib@fold@face@Y=\pgfutil@empty
\let\tikz@lib@fold@face@Z=\pgfutil@empty
\let\tikz@lib@fold@face@AA=\pgfutil@empty
\let\tikz@lib@fold@face@AB=\pgfutil@empty
\let\tikz@lib@fold@face@AC=\pgfutil@empty
\let\tikz@lib@fold@face@AD=\pgfutil@empty
\let\tikz@lib@fold@face@AE=\pgfutil@empty
\let\tikz@lib@fold@face@AF=\pgfutil@empty
\let\tikz@lib@fold@face@AG=\pgfutil@empty
\let\tikz@lib@fold@face@AH=\pgfutil@empty
\let\tikz@lib@fold@face@AI=\pgfutil@empty
\let\tikz@lib@fold@face@AJ=\pgfutil@empty
\let\tikz@lib@fold@face@AK=\pgfutil@empty
\let\tikz@lib@fold@face@AL=\pgfutil@empty
\let\tikz@lib@fold@face@AM=\pgfutil@empty
\let\tikz@lib@fold@face@AN=\pgfutil@empty
\let\tikz@lib@fold@face@AO=\pgfutil@empty
\let\tikz@lib@fold@face@AP=\pgfutil@empty
\let\tikz@lib@fold@face@AQ=\pgfutil@empty
\let\tikz@lib@fold@face@AR=\pgfutil@empty
\let\tikz@lib@fold@face@AS=\pgfutil@empty
\let\tikz@lib@fold@face@AT=\pgfutil@empty
\let\tikz@lib@fold@face@AU=\pgfutil@empty
\let\tikz@lib@fold@face@AV=\pgfutil@empty
\let\tikz@lib@fold@face@AW=\pgfutil@empty
\let\tikz@lib@fold@face@AX=\pgfutil@empty
\let\tikz@lib@fold@face@AY=\pgfutil@empty
\let\tikz@lib@fold@face@AZ=\pgfutil@empty
\let\tikz@lib@fold@face@BA=\pgfutil@empty
\let\tikz@lib@fold@face@BB=\pgfutil@empty
\let\tikz@lib@fold@face@BC=\pgfutil@empty
\let\tikz@lib@fold@face@BD=\pgfutil@empty
\let\tikz@lib@fold@face@BE=\pgfutil@empty
\let\tikz@lib@fold@face@BF=\pgfutil@empty
\let\tikz@lib@fold@face@BG=\pgfutil@empty
\let\tikz@lib@fold@face@BH=\pgfutil@empty
\let\tikz@lib@fold@face@BI=\pgfutil@empty
\let\tikz@lib@fold@face@BJ=\pgfutil@empty
\let\tikz@lib@fold@face@BK=\pgfutil@empty
\let\tikz@lib@fold@face@BL=\pgfutil@empty
\let\tikz@lib@fold@face@BM=\pgfutil@empty
\let\tikz@lib@fold@face@BN=\pgfutil@empty
\let\tikz@lib@fold@face@BO=\pgfutil@empty
\let\tikz@lib@fold@face@BP=\pgfutil@empty
\let\tikz@lib@fold@face@BQ=\pgfutil@empty
\let\tikz@lib@fold@face@BR=\pgfutil@empty
\let\tikz@lib@fold@face@BS=\pgfutil@empty
\let\tikz@lib@fold@face@BT=\pgfutil@empty
\let\tikz@lib@fold@face@BU=\pgfutil@empty
\let\tikz@lib@fold@face@BV=\pgfutil@empty
\let\tikz@lib@fold@face@BW=\pgfutil@empty
\let\tikz@lib@fold@face@BX=\pgfutil@empty
\let\tikz@lib@fold@face@BY=\pgfutil@empty
\let\tikz@lib@fold@face@BZ=\pgfutil@empty
\let\tikz@lib@fold@face@CA=\pgfutil@empty
\let\tikz@lib@fold@face@CB=\pgfutil@empty
\let\tikz@lib@fold@face@CC=\pgfutil@empty
\let\tikz@lib@fold@face@CD=\pgfutil@empty
\let\tikz@lib@fold@face@CE=\pgfutil@empty
\let\tikz@lib@fold@face@CF=\pgfutil@empty
\let\tikz@lib@fold@face@CG=\pgfutil@empty
\let\tikz@lib@fold@face@CH=\pgfutil@empty
\let\tikz@lib@fold@face@CI=\pgfutil@empty
\let\tikz@lib@fold@face@CJ=\pgfutil@empty
\let\tikz@lib@fold@face@CK=\pgfutil@empty
\let\tikz@lib@fold@face@CL=\pgfutil@empty
\let\tikz@lib@fold@face@CM=\pgfutil@empty
\let\tikz@lib@fold@face@CN=\pgfutil@empty
\tikzset{numbered faces/.style={%
face 1={\node{1};},
face 2={\node{2};},
face 3={\node{3};},
face 4={\node{4};},
face 5={\node{5};},
face 6={\node{6};},
face 7={\node{7};},
face 8={\node{8};},
face 9={\node{9};},
face 10={\node{10};},
face 11={\node{11};},
face 12={\node{12};},
face 13={\node{13};},
face 14={\node{14};},
face 15={\node{15};},
face 16={\node{16};},
face 17={\node{17};},
face 18={\node{18};},
face 19={\node{19};},
face 20={\node{20};},
face 21={\node{21};},
face 22={\node{22};},
face 23={\node{23};},
face 24={\node{24};},
face 25={\node{25};},
face 26={\node{26};},
face 27={\node{27};},
face 28={\node{28};},
face 29={\node{29};},
face 30={\node{30};},
face 31={\node{31};},
face 32={\node{32};},
face 33={\node{33};},
face 34={\node{34};},
face 35={\node{35};},
face 36={\node{36};},
face 37={\node{37};},
face 38={\node{38};},
face 39={\node{39};},
face 40={\node{40};},
face 41={\node{41};},
face 42={\node{42};},
face 43={\node{43};},
face 44={\node{44};},
face 45={\node{45};},
face 46={\node{46};},
face 47={\node{47};},
face 48={\node{48};},
face 49={\node{49};},
face 50={\node{50};},
face 51={\node{51};},
face 52={\node{52};},
face 53={\node{53};},
face 54={\node{54};},
face 55={\node{55};},
face 56={\node{56};},
face 57={\node{57};},
face 58={\node{58};},
face 59={\node{59};},
face 60={\node{60};},
face 61={\node{61};},
face 62={\node{62};},
face 63={\node{63};},
face 64={\node{64};},
face 65={\node{65};},
face 66={\node{66};},
face 67={\node{67};},
face 68={\node{68};},
face 69={\node{69};},
face 70={\node{70};},
face 71={\node{71};},
face 72={\node{72};},
face 73={\node{73};},
face 74={\node{74};},
face 75={\node{75};},
face 76={\node{76};},
face 77={\node{77};},
face 78={\node{78};},
face 79={\node{79};},
face 80={\node{80};},
face 81={\node{81};},
face 82={\node{82};},
face 83={\node{83};},
face 84={\node{84};},
face 85={\node{85};},
face 86={\node{86};},
face 87={\node{87};},
face 88={\node{88};},
face 89={\node{89};},
face 90={\node{90};},
face 91={\node{91};},
face 92={\node{92};}}}%
\tikzset{
pics/dodecahedron folding/.style = {code=\tikzfoldingdodecahedron[];},
pics/tetrahedron folding/.style = {code=\tikzfoldingtetrahedron[];},
pics/tetrahedron truncated folding/.style = {code=\tikzfoldingtruncatedtetrahedron[];},
pics/cube folding/.style = {code=\tikzfoldingcube[];},
pics/cube truncated folding/.style = {code=\tikzfoldingtruncatedcube[];},
pics/octahedron folding/.style = {code=\tikzfoldingoctahedron[];},
pics/octahedron truncated folding/.style = {code=\tikzfoldingtruncatedoctahedron[];},
pics/dodecahedron folding/.style = {code=\tikzfoldingdodecahedron[];},
pics/dodecahedron' folding/.style = {code=\tikzfoldingalternatedodecahedron[];},
pics/dodecahedron rhombic folding/.style = {code=\tikzfoldingrhombicdodecahedron[];},
pics/dodecahedron golden folding/.style = {code=\tikzfoldinggoldenrhombicdodecahedron[];},
pics/cuboctahedron folding/.style = {code=\tikzfoldingcuboctahedron[];},
pics/cuboctahedron truncated folding/.style = {code=\tikzfoldingtruncatedcuboctahedron[];},
pics/icosahedron folding/.style = {code=\tikzfoldingicosahedron[];},
pics/rhombicuboctahedron folding/.style = {code=\tikzfoldingrhombicuboctahedron[];},
pics/snub cube folding/.style = {code=\tikzfoldingsnubcube[];},
pics/icosidodecahedron folding/.style = {code=\tikzfoldingicosidodecahedron[];}
}%
\def\tikzfoldingdodecahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@A}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@B}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@C}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@D}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@E}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@F}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@G}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@H}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@I}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@J}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@K}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@L}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
\endgroup
}%
\def\tikzfoldingalternatedodecahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@A}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@B}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@C}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@D}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@E}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@F}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@G}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
}
}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@H}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@I}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@J}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@K}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@pentagon
{\tikz@lib@fold@face@L}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
\endgroup
}%
\def\tikzfoldingtetrahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@triangle
{\tikz@lib@fold@face@A}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@B}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@C}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@D}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
\endgroup
}%
\def\tikzfoldingcube#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@square{\tikz@lib@fold@face@A}
{
\tikz@lib@fold@square{\tikz@lib@fold@face@B}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{
\tikz@lib@fold@square{\tikz@lib@fold@face@C}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{
\tikz@lib@fold@square{\tikz@lib@fold@face@D}
{
\tikz@lib@fold@square{\tikz@lib@fold@face@E}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{
\tikz@lib@fold@square{\tikz@lib@fold@face@F}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
\endgroup
}%
\def\tikzfoldingoctahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@triangle
{\tikz@lib@fold@face@A}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@B}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@C}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@D}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@E}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@F}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@G}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@H}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
\endgroup
}%
\def\tikzfoldingicosahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@triangle
{\tikz@lib@fold@face@A}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@B}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@C}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@D}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@E}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@F}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@G}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@H}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@I}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@J}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@K}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@L}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@M}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@N}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@O}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@P}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@Q}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@R}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@S}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@T}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
\endgroup
}%
\def\tikzfoldingtruncatedtetrahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@A}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@B}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@C}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@D}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@E}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@F}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@G}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@H}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
\endgroup
}%
\def\tikzfoldingcuboctahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@square
{\tikz@lib@fold@face@A}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@B}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@C}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@D}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@E}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@F}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@G}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@H}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@I}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@J}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@K}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@L}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@M}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@N}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
\endgroup
}%
\def\tikzfoldingtruncatedcube#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@octagon
{\tikz@lib@fold@face@A}
{\tikz@lib@fold@octagon
{\tikz@lib@fold@face@B}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@C}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@D}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@E}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@F}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@octagon
{\tikz@lib@fold@face@G}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@H}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@octagon
{\tikz@lib@fold@face@I}
{\tikz@lib@fold@octagon
{\tikz@lib@fold@face@J}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@K}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@L}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@octagon
{\tikz@lib@fold@face@M}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@N}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
\endgroup
}%
\def\tikzfoldingtruncatedoctahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@A}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@B}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@C}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@D}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@E}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@F}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@G}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@H}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@I}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@J}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@K}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@L}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@M}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@N}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
\endgroup
}%
\def\tikzfoldingrhombicuboctahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@square
{\tikz@lib@fold@face@A}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@B}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@C}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@D}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@E}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@F}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@G}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@H}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@I}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@J}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@K}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@L}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@M}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@N}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@O}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@P}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@Q}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@R}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@S}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@T}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@U}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@V}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@W}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@triangle
{\tikz@lib@fold@face@X}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@Y}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@Z}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
\endgroup
}%
\def\tikzfoldingtruncatedcuboctahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@square
{\tikz@lib@fold@face@A}
{\tikz@lib@fold@octagon
{\tikz@lib@fold@face@B}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@C}
{\tikz@lib@fold@octagon
{\tikz@lib@fold@face@D}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@E}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@F}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@custom@right@path{15}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@G}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@custom@left@path{15}}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@H}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@I}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@J}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@custom@right@path{15}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@custom@left@path{15}}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@K}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@custom@right@path{15}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@custom@left@path{15}}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@L}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@M}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@N}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@custom@right@path{15}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@custom@left@path{15}}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@octagon
{\tikz@lib@fold@face@O}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@P}
{\tikz@lib@fold@octagon
{\tikz@lib@fold@face@Q}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@R}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@S}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@T}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@custom@right@path{15}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@custom@left@path{15}}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@U}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@custom@right@path{15}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@custom@left@path{15}}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@V}
{\tikz@lib@fold@octagon
{\tikz@lib@fold@face@W}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@square
{\tikz@lib@fold@face@X}
{\tikz@lib@fold@octagon
{\tikz@lib@fold@face@Y}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@hexagon
{\tikz@lib@fold@face@Z}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@custom@right@path{15}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@custom@left@path{15}}
{\tikz@lib@fold@ear@path}
}
\endgroup
}%
\def\tikzfoldingsnubcube#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@square{\tikz@lib@fold@face@A}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@B}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@C}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@D}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@square{\tikz@lib@fold@face@E}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@F}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@G}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@H}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@I}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@J}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@K}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@L}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@M}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@square{\tikz@lib@fold@face@N}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@O}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@P}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@Q}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@R}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@S}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@T}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@U}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@V}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@square{\tikz@lib@fold@face@W}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@X}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@Y}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@Z}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AA}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AB}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AC}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AD}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AE}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@square{\tikz@lib@fold@face@AF}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AG}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AH}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AI}
{
\tikz@lib@fold@square{\tikz@lib@fold@face@AJ}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AK}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AL}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
\endgroup
}%
\def\tikzfoldingicosidodecahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@pentagon{\tikz@lib@fold@face@A}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@B}
{
\tikz@lib@fold@pentagon{\tikz@lib@fold@face@C}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@D}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@custom@right@path{24}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@E}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@F}
{
\tikz@lib@fold@pentagon{\tikz@lib@fold@face@G}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@custom@right@path{24}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@H}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@pentagon{\tikz@lib@fold@face@I}
{\tikz@lib@fold@ear@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@J}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@K}
{\tikz@lib@fold@ear@custom@right@path{24}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@L}
{
\tikz@lib@fold@pentagon{\tikz@lib@fold@face@M}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@N}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@pentagon{\tikz@lib@fold@face@O}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@P}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@ear@custom@right@path{24}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@Q}
{\tikz@lib@fold@ear@custom@right@path{24}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@pentagon{\tikz@lib@fold@face@R}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@S}
{
\tikz@lib@fold@pentagon{\tikz@lib@fold@face@T}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@custom@right@path{24}}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@U}
{
\tikz@lib@fold@pentagon{\tikz@lib@fold@face@V}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@custom@right@path{24}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@W}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@X}
{\tikz@lib@fold@ear@custom@right@path{24}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@Y}
{
\tikz@lib@fold@pentagon{\tikz@lib@fold@face@Z}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@custom@right@path{24}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AA}
{
\tikz@lib@fold@pentagon{\tikz@lib@fold@face@AB}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AC}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{
\tikz@lib@fold@pentagon{\tikz@lib@fold@face@AD}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AE}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@ear@custom@right@path{24}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{
\tikz@lib@fold@triangle{\tikz@lib@fold@face@AF}
{\tikz@lib@fold@ear@custom@right@path{24}}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
\endgroup
}%
\def\tikzfoldingrhombicdodecahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@squarerhombusr{\tikz@lib@fold@face@B}
{\tikz@lib@fold@squarerhombusl{\scope[rotate=90]\tikz@lib@fold@face@C\endscope}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@squarerhombusr{\tikz@lib@fold@face@E}
{\tikz@lib@fold@squarerhombusl{\scope[rotate=90]\tikz@lib@fold@face@F\endscope}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@squarerhombusr{\scope[rotate=180]\tikz@lib@fold@face@D\endscope}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@squarerhombusl{\scope[rotate=-90]\tikz@lib@fold@face@H\endscope}
{\tikz@lib@fold@squarerhombusr{\scope[rotate=180]\tikz@lib@fold@face@G\endscope}
{\tikz@lib@fold@squarerhombusl{\scope[rotate=-90]\tikz@lib@fold@face@L\endscope}
{\tikz@lib@fold@squarerhombusr{\scope[rotate=180]\tikz@lib@fold@face@K\endscope}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@squarerhombusl{\scope[rotate=90]\tikz@lib@fold@face@J\endscope}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@squarerhombusl{\tikz@lib@fold@face@H}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@squarerhombusr{\tikz@lib@fold@face@F}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
\endgroup
}%
\def\tikzfoldinggoldenrhombicdodecahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@A}
{\tikz@lib@fold@goldenrhombusl{\scope[rotate=180]\tikz@lib@fold@face@B\endscope}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@path}
}
{\tikz@lib@fold@goldenrhombusr{\scope[rotate=180]\tikz@lib@fold@face@E\endscope}
{\tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@H}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@G}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@goldenrhombusl{\scope[rotate=180]\tikz@lib@fold@face@D\endscope}
{\tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@I}
{\tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@L}
{\tikz@lib@fold@goldenrhombusr{\scope[rotate=180]\tikz@lib@fold@face@K\endscope}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@goldenrhombusl{\scope[rotate=180]\tikz@lib@fold@face@J\endscope}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@F}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@path}
}
{\tikz@lib@fold@goldenrhombusr{\scope[rotate=180]\tikz@lib@fold@face@C\endscope}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
\endgroup
}%
\def\tikzfoldingrhombictricontahedron#1[#2]#3;{%
\begingroup%
\tikzset{#2}%
\tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@A}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@B}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@F}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@I}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@J}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@K}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@path}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@H}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@G}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@L}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@N}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@M}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@C}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@N}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@N}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@N}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@N}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@D}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@D}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@D}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@D}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@D}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@D}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@E}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@E}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@E}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@E}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@E}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@cut@path}
}
{\tikz@lib@fold@path}
{\tikz@lib@fold@path}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@E}
{ \tikz@lib@fold@goldenrhombusl{\tikz@lib@fold@face@E}
{ \tikz@lib@fold@goldenrhombusr{\tikz@lib@fold@face@E}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@ear@path}
}
{\tikz@lib@fold@ear@path}
{\tikz@lib@fold@path}
{\tikz@lib@fold@path}
}
}
\endgroup
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfolding.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfpu.code.tex ====
\usepgflibrary{fpu}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfpu.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryintersections.code.tex ====
\usepgflibrary{intersections}%
\pgfkeys{%
/tikz/name path global/.code={%
\expandafter\global\expandafter\let\csname tikz@intersect@path@name@#1\endcsname=\relax
\tikz@key@name@path{#1}{\gdef}%
},
/tikz/name path local/.code={%
\pgfkeys{/tikz/name path={#1}}%
},
/tikz/name path/.code={%
\tikz@key@name@path{#1}{\def}%
},
}%
\def\tikz@key@name@path#1#2{%
\tikz@addmode{%
\pgfsyssoftpath@getcurrentpath\tikz@intersect@temppath@round%
\pgfprocessround\tikz@intersect@temppath@round\tikz@intersect@temppath%
\ifx\tikz@intersect@namedpaths\pgfutil@empty%
\else%
\tikz@intersect@namedpaths%
\fi%
\tikz@intersect@addto@path@names{#1}{#2}%
}%
}%
\def\tikz@intersect@addto@path@names#1#2{%
\edef\tikz@marshal{#2\expandafter\noexpand\csname tikz@intersect@path@name@#1\endcsname}%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\tikz@marshal%
\expandafter\expandafter\expandafter{\expandafter\tikz@marshal\expandafter{\tikz@intersect@temppath}}%
\expandafter\pgfutil@g@addto@macro\expandafter\tikz@intersect@namedpaths\expandafter{\tikz@marshal}%
}%
\let\tikz@finish@orig=\tikz@finish
\def\tikz@finish{%
\tikz@finish@orig%
\tikz@intersect@finish%
}%
\def\tikz@intersect@finish{%
\tikz@intersect@namedpaths%
}%
\let\tikz@intersect@namedpaths=\pgfutil@empty
\let\tikz@intersect@path@a=\pgfutil@empty
\let\tikz@intersect@path@b=\pgfutil@empty
\let\tikz@intersect@name=\pgfutil@empty
\let\tikz@intersect@total=\pgfutil@empty
\tikzset{
every scope/.append style={
execute at begin scope={\let\tikz@intersect@namedpaths@outside\tikz@intersect@namedpaths},
execute at end scope={\global\let\tikz@intersect@namedpaths\tikz@intersect@namedpaths@outside},
},
name intersections/.code={%
\tikzset{/tikz/intersection/.cd,
by=,
#1}%
\pgfutil@ifundefined{tikz@intersect@path@name@\tikz@intersect@path@a}{%
\tikzerror{I do not know the path named `\tikz@intersect@path@a'. Perhaps you misspelt it}}%
{\pgfutil@ifundefined{tikz@intersect@path@name@\tikz@intersect@path@b}{%
\tikzerror{I do not know the path named `\tikz@intersect@path@b'. Perhaps you misspelt it}}%
{%
\pgfintersectionofpaths%
{%
\expandafter\pgfsetpath\csname tikz@intersect@path@name@\tikz@intersect@path@a\endcsname%
}%
{%
\expandafter\pgfsetpath\csname tikz@intersect@path@name@\tikz@intersect@path@b\endcsname%
}%
\ifx\tikz@intersect@total\pgfutil@empty%
\else%
\expandafter\let\tikz@intersect@total=\pgfintersectionsolutions%
\fi%
\ifx\tikz@intersect@name\pgfutil@empty%
\def\tikz@intersect@@name{intersection}%
\else%
\let\tikz@intersect@@name=\tikz@intersect@name%
\fi%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgfintersectionsolutions\relax%
\else%
\path[reset cm]\pgfextra{\pgftransformshift{\pgfpointintersectionsolution{\pgfmathcounter}}}%
coordinate (\tikz@intersect@@name-\pgfmathcounter);
\repeatpgfmathloop%
\ifx\tikz@intersect@by\pgfutil@empty%
\else%
\foreach\tikz@intersect@name[count=\tikz@intersection@count] in \tikz@intersect@by%
{\expandafter\tikz@intersect@name@parse\tikz@intersect@name\pgf@stop}%
\fi%
}%
}%
},%
intersection/.cd,
of/.code=\tikz@intersect@path@names@parse#1\tikz@stop,%
name/.store in=\tikz@intersect@name,
total/.store in=\tikz@intersect@total,
by/.store in=\tikz@intersect@by,
sort by/.code=\edef\tikz@intersect@sort@by{#1}\tikz@intersect@check@sort@by%
}%
\def\tikz@intersect@check@sort@by{%
\ifx\tikz@intersect@sort@by\tikz@intersect@path@a%
\pgfintersectionsortbyfirstpath%
\else%
\ifx\tikz@intersect@sort@by\tikz@intersect@path@b%
\pgfintersectionsortbysecondpath%
\else%
\pgf@intersect@sortfalse%
\fi%
\fi%
}%
\def\tikz@intersect@path@names@parse#1 and #2\tikz@stop{%
\def\tikz@intersect@path@a{#1}%
\def\tikz@intersect@path@b{#2}%
}%
\def\tikz@intersect@name@parse{\pgfutil@ifnextchar[\tikz@intersect@name@parse@opt{\tikz@intersect@name@parse@opt[]}}%
\def\tikz@intersect@name@parse@opt[#1]#2\pgf@stop{%
\coordinate [#1] (#2) at (\tikz@intersect@@name-\tikz@intersection@count);
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryintersections.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarylindenmayersystems.code.tex ====
\usepgflibrary{lindenmayersystems}%
\def\tikz@@lsystem-system{%
\pgfutil@ifnextchar[{\tikz@lsystem@options}{\tikz@lsystem@options[]}}%
\def\tikz@lsystem indenmayer system{%
\pgfutil@ifnextchar[{\tikz@lsystem@options}{\tikz@lsystem@options[]}}%
\def\tikz@lsystem@options[#1]{%
\tikzset{#1}%
\ifx\tikz@lsystem@rules\pgfutil@empty%
\else%
\tikz@lsystem@declare%
\def\tikz@lsystem@name{tikz@temp}%
\fi%
\ifx\tikz@lsystem@anchor\pgfutil@empty%
\pgfpathmoveto{\pgfqpoint{\tikz@lastxsaved}{\tikz@lastysaved}}%
\pgflindenmayersystem{\tikz@lsystem@name}{\tikz@lsystem@axiom}{\tikz@lsystem@order}%
\else%
\pgfextract@process\tikz@lsystem@pos{\pgfqpoint{\tikz@lastxsaved}{\tikz@lastysaved}}%
\setbox\pgfnodeparttextbox=\hbox{%
\pgfinterruptpicture%
\pgfpicture%
\pgfpathmoveto{\pgfpointorigin}%
\pgflindenmayersystem{\tikz@lsystem@name}{\tikz@lsystem@axiom}{\tikz@lsystem@order}%
\begingroup%
\tikz@finish%
\endpgfpicture%
\endpgfinterruptpicture%
}%
{%
\pgftransformshift{\tikz@lsystem@pos}%
\tikzset{inner sep=0pt, outer sep=0pt, minimum size=0pt}%
\pgfmultipartnode{rectangle}{\tikz@lsystem@anchor}{lindenmayer system}{\pgfusepath{discard}}%
}%
\fi%
\tikz@scan@next@command}%
\tikzset{%
lindenmayer system/.style={/pgf/lindenmayer system/.cd, #1,/tikz/.cd},
l-system/.style={lindenmayer system={#1}},
}%
\pgfkeys{/pgf/lindenmayer system/.cd,
name/.code=\edef\tikz@lsystem@name{#1}\let\tikz@lsystem@rules=\pgfutil@empty,%
axiom/.store in=\tikz@lsystem@axiom,%
order/.store in=\tikz@lsystem@order,
.unknown/.code={%
\pgfutil@ifundefined{pgf@lsystem@\pgfkeyscurrentname}{%
\pgfkeys{/errors/unknown key={/pgf/lindenmayer system/\pgfkeyscurrentname}{#1}}%
\let\tikz@lsystem@name=\pgfutil@empty%
}%
{\edef\tikz@lsystem@name{\pgfkeyscurrentname}}
},%
anchor/.store in=\tikz@lsystem@anchor,%
rule set/.store in=\tikz@lsystem@rules
}%
\let\tikz@lsystem@anchor=\pgfutil@empty%
\let\tikz@lsystem@rules=\pgfutil@empty%
\def\tikz@lsystem@declare{%
\expandafter\let\csname pgf@lsystem@tikz@temp\endcsname=\relax%
\pgfdeclarelindenmayersystem{tikz@temp}{%
\expandafter\tikz@lsystem@parse@rules\tikz@lsystem@rules,\tikz@stop,%
}%
}%
\def\tikz@lsystem@parse@rules#1,{%
\ifx#1\tikz@stop%
\else%
\rule{#1}%
\expandafter\tikz@lsystem@parse@rules%
\fi%
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarylindenmayersystems.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymath.code.tex ====
\usetikzlibrary{fpu}
\edef\tikz@math@at@catcode{\the\catcode`\@}%
\catcode`\@=11
\def\tikz@math@gobblespaces#1{\pgfutil@ifnextchar x{#1}{#1}}%
\def\tikz@math@meaning@macro{macro}%
\def\tikz@math@meaning@dimen{dimen}%
\def\tikz@math@meaning@count{count}%
\def\tikz@math@meaning@null{null}%
\def\tikz@math@getmeaning#1{\expandafter\tikz@math@@getmeaning\meaning#1\tikz@math@getmeaning@stop}%
\def\tikz@math@@getmeaning#1#2#3#4#5\tikz@math@getmeaning@stop{%
\if#1u%
\let\tikz@math@meaning=\tikz@math@meaning@macro%
\else%
\if#1m%
\let\tikz@math@meaning=\tikz@math@meaning@macro%
\else%
\if#2d%
\let\tikz@math@meaning=\tikz@math@meaning@dimen%
\else%
\if#2c%
\let\tikz@math@meaning=\tikz@math@meaning@count%
\else%
\if#3k%
\let\tikz@math@meaning=\tikz@math@meaning@dimen%
\else%
\let\tikz@math@meaning=\tikz@math@meaning@null%
\fi%
\fi%
\fi%
\fi%
\fi%
}%
\def\tikz@math@firstoftwo#1#2{#1}%
\def\tikz@math@secondoftwo#1#2{#2}%
\def\tikz@math@getvarstring#1{%
\begingroup%
\escapechar=-1\relax%
\expandafter\tikz@math@@getvarstring\string#1\tikz@math}%
\def\tikz@math@@getvarstring#1\tikz@math#2{%
\endgroup%
\def#2{#1}%
}%
\long\def\tikz@math@collecttosemicolon@other#1#2;{%
\def\tikz@math@collected{#2}#1}%
\def\tikz@math@semicolon@other{;}%
{\catcode`\;=13
\long\gdef\tikz@math@collecttosemicolon@active#1#2;{%
\def\tikz@math@collected{#2}#1}%
\gdef\tikz@math@semicolon@active{;}%
}%
\def\tikz@math@setvartype#1#2{%
\expandafter\let\csname tikz@math@var@vartype@\string#1\endcsname=#2%
}%
\def\tikz@math@getvartype#1#2{%
\def\tikz@math@marshal{\let#1=}%
\expandafter\tikz@math@marshal\csname
tikz@math@var@vartype@\string#2\endcsname%
}%
\def\tikz@math@ifvarcoordinate#1{%
\expandafter\ifx\csname
tikz@math@var@vartype@\string#1\endcsname\tikz@math@keyword@coordinate%
\let\tikz@math@next=\tikz@math@firstoftwo%
\else%
\let\tikz@math@next=\tikz@math@secondoftwo%
\fi%
\tikz@math@next%
}%
\def\tikz@math@ifvarinteger#1{%
\expandafter\ifx\csname
tikz@math@var@vartype@\string#1\endcsname\tikz@math@keyword@integer%
\let\tikz@math@next=\tikz@math@firstoftwo%
\else%
\let\tikz@math@next=\tikz@math@secondoftwo%
\fi%
\tikz@math@next%
}%
\def\tikz@math@setvarindexed#1{%
\expandafter\let\csname
tikz@math@var@subtype@\string#1\endcsname=\tikz@math@subtype@indexed%
}%
\def\tikz@math@clearvarindexed#1{%
\expandafter\let\csname tikz@math@var@subtype@\string#1\endcsname=\relax%
}%
\def\tikz@math@ifvarindexed#1{%
\expandafter\ifx\csname tikz@math@var@subtype@\string#1\endcsname\relax%
\let\tikz@math@next=\tikz@math@secondoftwo%
\else%
\let\tikz@math@next=\tikz@math@firstoftwo%
\fi%
\tikz@math@next%
}%
\def\tikz@math@stop{@}%
\let\tikz@math@parse@hook@before=\pgfutil@empty
\let\tikz@math@parse@hook@after=\pgfutil@empty
\def\tikz@math{%
\ifnum\catcode`\;=13\relax%
\let\tikz@math@semicolon=\tikz@math@semicolon@active%
\let\tikz@math@collecttosemicolon=\tikz@math@collecttosemicolon@active%
\else%
\let\tikz@math@semicolon=\tikz@math@semicolon@other%
\let\tikz@math@collecttosemicolon=\tikz@math@collecttosemicolon@other%
\fi%
\tikz@math@parse@hook@before%
\tikz@@math}%
\long\def\tikz@@math#1{%
\def\tikz@math@marshal{\tikz@math@parse#1}%
\expandafter\expandafter\expandafter\tikz@math@marshal\expandafter\tikz@math@stop\tikz@math@semicolon}%
\def\tikz@math@parse{\pgfutil@ifnextchar\bgroup\tikz@math@@parse@bgroup\tikz@math@@parse@nobgroup}%
\def\tikz@math@@parse@bgroup{%
\tikz@math@collecttosemicolon{%
\ifx\pgf@selectfontorig\tikz@math@undefined%
\begingroup\tikz@math@collected\endgroup%
\else%
\begingroup\csname nullfont\endcsname\tikz@math@collected\endgroup%
\fi\tikz@math@parse}}%
\def\tikz@math@@parse@nobgroup{\tikz@math@collecttosemicolon{\tikz@math@@parse@@nobgroup}}%
\def\tikz@math@@parse@@nobgroup{%
\let\tikz@math@tmp=\tikz@math@collected%
\ifx\tikz@math@tmp\tikz@math@stop%
\def\tikz@math@next{\expandafter\tikz@math@parse@finish\tikz@math@semicolon}%
\else%
\def\tikz@math@next{\expandafter\expandafter\expandafter\tikz@math@parse@keyword@check\expandafter\tikz@math@tmp\tikz@math@semicolon}%
\fi%
\tikz@math@next%
}%
\def\tikz@math@parse@finish{%
\tikz@math@collecttosemicolon{\tikz@math@parse@hook@after}%
}%
\newif\iftikz@math@let
\def\tikz@math@parse@keyword@check#1{%
\tikz@math@letfalse%
\tikz@math@getmeaning{#1}%
\ifx\tikz@math@meaning\tikz@math@meaning@null%
\let\tikz@math@next=\tikz@math@parse@keyword%
\else%
\let\tikz@math@next=\tikz@math@parse@nokeyword%
\fi%
\tikz@math@next#1}%
\def\tikz@math@parse@keyword{%
\let\tikz@math@parsed@keyword=\pgfutil@empty%
\futurelet\tikz@math@parse@token\tikz@math@@parse@keyword}%
\def\tikz@math@@parse@keyword{%
\ifx\tikz@math@parse@token\pgfutil@sptoken%
\let\tikz@math@next=\tikz@math@@@parse@keyword%
\else%
\ifx\tikz@math@parse@token(%
\let\tikz@math@next=\tikz@math@@@parse@keyword%
\else%
\ifx\tikz@math@parse@token\bgroup%
\let\tikz@math@next=\tikz@math@@@parse@keyword%
\else%
\let\tikz@math@next=\tikz@math@@@@parse@keyword%
\fi%
\fi%
\fi%
\tikz@math@next}%
\def\tikz@math@error#1{\pgfutil@packageerror{tikz}{tikz math library: #1}{}}%
\def\tikz@math@@@parse@keyword{%
\expandafter\ifx\csname tikz@math@process@keyword@\tikz@math@parsed@keyword\endcsname\relax%
\expandafter\ifx\csname pgfmath\tikz@math@parsed@keyword\endcsname\relax%
\tikz@math@error{Unknown function or keyword '\tikz@math@parsed@keyword'}%
\else%
\def\tikz@math@next{\tikz@math@collecttosemicolon{\tikz@math@function@noassign}}%
\fi%
\else%
\expandafter\def\expandafter\tikz@math@next\expandafter{\csname tikz@math@process@keyword@\tikz@math@parsed@keyword\endcsname}%
\fi%
\tikz@math@next}%
\def\tikz@math@@@@parse@keyword#1{%
\edef\tikz@math@parsed@keyword{\tikz@math@parsed@keyword#1}%
\futurelet\tikz@math@parse@token\tikz@math@@parse@keyword%
}%
\def\tikz@math@function@noassign{%
\pgfmathparse{\tikz@math@parsed@keyword\tikz@math@collected}%
\tikz@math@parse%
}%
\def\tikz@math@process@keyword@count{\tikz@math@collecttosemicolon{\tikz@math@process@keyword@@count}}%
\def\tikz@math@process@keyword@@count{%
\def\tikz@math@assign@register{\csname newcount\endcsname}%
\expandafter\tikz@math@gobblespaces\expandafter\tikz@math@process@registers\tikz@math@collected,@,}%
\def\tikz@math@process@keyword@length{\tikz@math@collecttosemicolon{\tikz@math@process@keyword@@length}}%
\def\tikz@math@process@keyword@@length{%
\def\tikz@math@assign@register{\csname newdimen\endcsname}%
\expandafter\tikz@math@gobblespaces\expandafter\tikz@math@process@registers\tikz@math@collected,@,}%
\def\tikz@math@process@registers#1#2,{%
\def\tikz@math@var{#1}%
\ifx\tikz@math@var\tikz@math@stop%
\let\tikz@math@next=\tikz@math@parse%
\else%
\tikz@math@assign@register#1\relax%
\let\tikz@math@next=\tikz@math@process@registers%
\fi%
\tikz@math@gobblespaces\tikz@math@next%
}%
\def\tikz@math@process@keyword@if#1then{%
\def\tikz@math@if@condition{#1}%
\tikz@math@gobblespaces\tikz@math@parse@if@iftrue%
}%
\def\tikz@math@parse@if@iftrue#1{%
\def\tikz@math@if@trueaction{#1}%
\pgfutil@ifnextchar e{\tikz@math@parse@else}{\tikz@math@if@doif}}%
\def\tikz@math@parse@else else{\tikz@math@gobblespaces\tikz@math@if@doifelse}%
\def\tikz@math@if@doif{\tikz@math@collecttosemicolon{\tikz@math@if@@doif}}%
\def\tikz@math@if@@doif{%
\pgfmathparse{\tikz@math@if@condition}%
\ifpgfmathfloatparseactive%
\pgfmathfloattofixed{\pgfmathresult}%
\fi%
\ifdim\pgfmathresult pt=0pt\relax%
\else%
\expandafter\tikz@math\expandafter{\tikz@math@if@trueaction}%
\fi%
\tikz@math@parse%
}%
\def\tikz@math@if@doifelse{\tikz@math@collecttosemicolon{\tikz@math@if@@doifelse}}%
\def\tikz@math@if@@doifelse{%
\pgfmathparse{\tikz@math@if@condition}%
\ifpgfmathfloatparseactive%
\pgfmathfloattofixed{\pgfmathresult}%
\fi%
\let\tikz@math@if@falseaction=\tikz@math@collected%
\ifdim\pgfmathresult pt=0pt\relax%
\expandafter\tikz@math\expandafter{\tikz@math@if@falseaction}%
\else%
\expandafter\tikz@math\expandafter{\tikz@math@if@trueaction}%
\fi%
\tikz@math@parse%
}%
\def\tikz@math@process@keyword@let{%
\tikz@math@lettrue%
\tikz@math@gobblespaces\tikz@math@parse@nokeyword%
}%
\def\tikz@math@parse@nokeyword#1{%
\def\tikz@math@var{#1}%
\tikz@math@getvarstring{#1}\tikz@math@varstring%
\let\tikz@math@vartype=\pgfutil@empty%
\ifx\tikz@math@var\tikz@math@stop%
\let\tikz@math@next=\tikz@math@parse@finish%
\else%
\ifx\tikz@math@semicolon\tikz@math@var%
\let\tikz@math@next=\tikz@math@parse%
\else%
\let\tikz@math@next=\tikz@math@parse@index@check%
\fi%
\fi%
\tikz@math@next}%
\def\tikz@math@parse@index@check{%
\pgfutil@ifnextchar={\tikz@math@parse@noindex}{\tikz@math@parse@index}}%
\def\tikz@math@parse@noindex{%
\expandafter\tikz@math@clearvarindexed\tikz@math@var%
\let\tikz@math@current@index=\pgfutil@empty%
\tikz@math@parse@afterindex%
}%
\def\tikz@math@parse@index#1{%
\def\tikz@math@tmp{#1}%
\expandafter\tikz@math@setvarindexed\tikz@math@var%
\edef\tikz@math@current@index{#1}%
\tikz@math@parse@afterindex%
}%
\def\tikz@math@parse@afterindex#1={\tikz@math@gobblespaces\tikz@math@parse@assignment}%
\def\tikz@math@parse@assignment{\tikz@math@collecttosemicolon{\tikz@math@parse@@assignment}}%
\def\tikz@math@parse@@assignment{%
\expandafter\expandafter\expandafter\tikz@math@doassignment\expandafter\expandafter\expandafter%
{\expandafter\tikz@math@var\expandafter}\expandafter{\tikz@math@collected}%
\tikz@math@parse%
}%
\def\tikz@math@dollar@char{$}%
\def\tikz@math@dollar@char{$}%
\def\tikz@math@doassignment#1#2{%
\tikz@math@ifvarcoordinate{#1}{%
\def\tikz@math@var{#1}%
\tikz@math@getvarstring{#1}\tikz@math@varstring%
\expandafter\pgfutil@in@\tikz@math@dollar@char{#2}%
\edef\tikz@math@expression{#2}%
\ifpgfutil@in@%
\expandafter\tikz@scan@one@point\expandafter\tikz@math@assign@coordinate\tikz@math@expression%
\else%
\expandafter\ifx\csname tikz@library@calc@loaded\endcsname\relax%
\expandafter\tikz@scan@one@point\expandafter\tikz@math@assign@coordinate\tikz@math@expression%
\else%
\expandafter\tikz@scan@one@point\expandafter\tikz@math@assign@coordinate\expandafter%
(\expandafter$\tikz@math@expression$)%
\fi%
\fi%
}{%
\iftikz@math@let%
\ifx\tikz@math@current@index\pgfutil@empty%
\edef#1{#2}%
\else%
\edef\tikz@math@tmp{#2}%
\expandafter\expandafter\expandafter\tikz@math@assign@index\expandafter\expandafter\expandafter%
{\expandafter\tikz@math@varstring\expandafter}\expandafter{\tikz@math@tmp}%
\fi%
\tikz@math@letfalse%
\else%
\ifx\tikz@math@current@index\pgfutil@empty%
\tikz@math@getmeaning{#1}%
\ifx\tikz@math@meaning\tikz@math@meaning@dimen%
\pgfmathsetlength{#1}{#2}%
\let\tikz@math@last@assigned@value=\pgfmathresult%
\else%
\ifx\tikz@math@meaning\tikz@math@meaning@count%
\pgfmathsetcount{#1}{#2}%
\let\tikz@math@last@assigned@value=\pgfmathresult%
\else%
\tikz@math@ifvarinteger{#1}{\pgfmathparse{int(#2)}}{\pgfmathparse{#2}}%
\let\tikz@math@last@assigned@value=\pgfmathresult%
\let#1=\pgfmathresult%
\fi%
\fi%
\else%
\tikz@math@ifvarinteger{#1}{\pgfmathparse{int(#2)}}{\pgfmathparse{#2}}%
\expandafter\tikz@math@assign@index\expandafter{\tikz@math@varstring}\pgfmathresult%
\let\tikz@math@last@assigned@value=\pgfmathresult%
\fi%
\fi%
}%
}%
\def\tikz@math@assign@index#1#2{%
\expandafter\def\csname#1\endcsname##1{\csname
tikz@math@var@indexed@#1@##1\endcsname}%
\expandafter\edef\csname
tikz@math@var@indexed@#1@\tikz@math@current@index\endcsname{#2}\relax%
}%
\def\tikz@math@assign@coordinate#1{%
\pgf@process{#1}%
\ifx\tikz@math@current@index\pgfutil@empty%
\expandafter\edef\csname\tikz@math@varstring\endcsname{\the\pgf@x,\the\pgf@y}%
\expandafter\edef\csname\tikz@math@varstring x\endcsname{\the\pgf@x}%
\expandafter\edef\csname\tikz@math@varstring y\endcsname{\the\pgf@y}%
\else%
\expandafter\tikz@math@assign@index\expandafter{\tikz@math@varstring}{\the\pgf@x,\the\pgf@y}%
\expandafter\tikz@math@assign@index\expandafter{\tikz@math@varstring x}{\the\pgf@x}%
\expandafter\tikz@math@assign@index\expandafter{\tikz@math@varstring y}{\the\pgf@y}%
\fi%
}%
\def\tikz@math@keyword@coordinate{coordinate}%
\def\tikz@math@process@keyword@coordinate{%
\let\tikz@math@vartype=\tikz@math@keyword@coordinate%
\tikz@math@gobblespaces\tikz@math@process@vartypes%
}%
\def\tikz@math@keyword@integer{integer}%
\def\tikz@math@process@keyword@integer{%
\let\tikz@math@vartype=\tikz@math@keyword@integer%
\tikz@math@gobblespaces\tikz@math@process@vartypes%
}%
\def\tikz@math@process@keyword@int{%
\tikz@math@process@keyword@integer%
}%
\def\tikz@math@keyword@real{real}%
\def\tikz@math@process@keyword@real{%
\let\tikz@math@vartype=\tikz@math@keyword@real%
\tikz@math@gobblespaces\tikz@math@process@vartypes%
}%
\def\tikz@math@process@keyword@point{\tikz@math@process@keyword@coordinate}%
\def\tikz@math@process@vartypes{\tikz@math@collecttosemicolon{\tikz@math@process@@vartypes}}%
\def\tikz@math@process@@vartypes{%
\expandafter\tikz@math@@process@vartypes\tikz@math@collected,@,\tikz@math%
}%
\def\tikz@math@@process@vartypes#1#2,{%
\def\tikz@math@var{#1}%
\tikz@math@getvarstring{#1}\tikz@math@varstring%
\ifx\tikz@math@var\tikz@math@stop%
\let\tikz@math@next=\tikz@math@@@process@vartypes%
\else%
\expandafter\tikz@math@setvartype\tikz@math@var\tikz@math@vartype%
\def\tikz@math@next{\tikz@math@gobblespaces\tikz@math@@process@vartypes}%
\fi%
\tikz@math@next%
}%
\def\tikz@math@process@keyword@print{\tikz@math@collecttosemicolon{\tikz@math@process@keyword@@print}}%
\def\tikz@math@process@keyword@@print{%
\begingroup\tikz@math@collected\endgroup\tikz@math@parse%
}%
\def\tikz@math@@@process@vartypes#1\tikz@math{%
\tikz@math@parse%
}%
\newcount\tikz@math@for@depth
\def\tikz@math@for@namedef#1{\expandafter\def\csname tikz@math@for@def@#1@\the\tikz@math@for@depth\endcsname}%
\def\tikz@math@for@nameedef#1{\expandafter\edef\csname tikz@math@for@def@#1@\the\tikz@math@for@depth\endcsname}%
\def\tikz@math@for@namelet#1{\expandafter\let\csname tikz@math@for@def@#1@\the\tikz@math@for@depth\endcsname}%
\def\tikz@math@for@namegetvalue#1#2{%
\def\tikz@math@marshal{\let#2=}%
\expandafter\tikz@math@marshal\csname tikz@math@for@def@#1@\the\tikz@math@for@depth\endcsname}%
\def\tikz@math@process@keyword@for{%
\tikz@math@for%
}%
\def\tikz@math@for@external{%
\ifnum\catcode`\;=13\relax%
\let\tikz@math@semicolon=\tikz@math@semicolon@active%
\let\tikz@math@collecttosemicolon=\tikz@math@collecttosemicolon@active%
\else%
\let\tikz@math@semicolon=\tikz@math@semicolon@other%
\let\tikz@math@collecttosemicolon=\tikz@math@collecttosemicolon@other%
\fi
\advance\tikz@math@for@depth by1\relax%
\tikz@math@for@namedef{execute}{\tikz@math@for@external@execute}%
\tikz@math@for@namedef{finished}{\relax}%
\tikz@math@gobblespaces\tikz@math@for@parsevar}%
\def\tikz@math@for@external@execute#1{#1}%
\def\tikz@math@for{%
\advance\tikz@math@for@depth by1\relax%
\tikz@math@for@namedef{execute}{\tikz@math}%
\tikz@math@for@namedef{finished}{\tikz@math@parse}%
\tikz@math@gobblespaces\tikz@math@for@parsevar}%
\def\tikz@math@for@parsevar#1{%
\tikz@math@for@namedef{var}{#1}%
\tikz@math@for@parsein}%
\def\tikz@math@getindex#1{%
\tikz@math@@getindex#1\tikz@math@getindex\tikz@math@@getindex%
}%
\def\tikz@math@@getindex#1#2\tikz@math@@getindex{#1}%
\def\tikz@math@for@parsein#1in{%
\def\tikz@math@tmp{#1}%
\ifx\tikz@math@tmp\pgfutil@empty%
\tikz@math@for@namedef{index}{}%
\else%
\tikz@math@for@nameedef{index}{\tikz@math@getindex{#1}}%
\fi%
\tikz@math@gobblespaces\tikz@math@for@parselist%
}%
\long\def\tikz@math@for@parselist#1{%
\edef\tikz@math@for@list{#1}%
\tikz@math@gobblespaces{%
\tikz@math@collecttosemicolon{\tikz@math@for@parseaction}}}%
\def\tikz@math@for@parseaction{%
\tikz@math@for@namedef{prevvalue}{}%
\tikz@math@for@namedef{prevprevvalue}{}%
\tikz@math@for@namelet{action}=\tikz@math@collected%
\expandafter\tikz@math@for@scan\tikz@math@for@list,\tikz@math,\tikz@@math%
}%
\def\tikz@math@token{\tikz@math}%
\def\tikz@math@for@scan#1,{%
\def\tikz@math@for@value{#1}%
\ifx\tikz@math@for@value\tikz@math@token%
\let\tikz@math@next=\tikz@math@for@scan@end%
\else%
\ifx\tikz@math@for@value\pgfutil@empty%
\let\tikz@math@next=\tikz@math@for@scan@end%
\else%
\pgfutil@in@{...}{#1}%
\ifpgfutil@in@%
\let\tikz@math@next=\tikz@math@for@scan@dots%
\else%
\tikz@math@for@namegetvalue{var}{\tikz@math@var}%
\tikz@math@for@namegetvalue{index}{\tikz@math@current@index}%
\tikz@math@for@namegetvalue{action}{\tikz@math@action}%
\expandafter\tikz@math@getvarstring\expandafter{\tikz@math@var}\tikz@math@varstring%
\expandafter\tikz@math@doassignment\expandafter{\tikz@math@var}{#1}%
\tikz@math@for@namelet{value}=\tikz@math@last@assigned@value%
\tikz@math@for@namegetvalue{execute}{\tikz@math@execute}%
\expandafter\tikz@math@execute\expandafter{\tikz@math@action}%
\tikz@math@for@namegetvalue{prevvalue}{\tikz@math@prevvalue}%
\tikz@math@for@namelet{prevprevvalue}=\tikz@math@prevvalue%
\tikz@math@for@namegetvalue{value}{\tikz@math@value}%
\tikz@math@for@namelet{prevvalue}=\tikz@math@value%
\let\tikz@math@next=\tikz@math@for@scan%
\fi%
\fi%
\fi%
\tikz@math@next%
}%
\newdimen\tikz@math@dimen
\def\tikz@math@for@scan@dots#1,{%
\pgfmathparse{#1}\let\tikz@math@value=\pgfmathresult%
\tikz@math@for@nameedef{endvalue}{\tikz@math@value}%
\tikz@math@for@namegetvalue{prevvalue}{\tikz@math@prevvalue}%
\tikz@math@for@namegetvalue{prevprevvalue}{\tikz@math@prevprevvalue}%
\tikz@math@dimen=\tikz@math@prevvalue pt\relax%
\ifx\tikz@math@prevprevvalue\pgfutil@empty%
\ifdim\tikz@math@prevvalue pt<\tikz@math@value pt\relax%
\def\tikz@math@step{1pt}%
\else%
\def\tikz@math@step{-1pt}%
\fi%
\else%
\tikz@math@dimen=\tikz@math@prevvalue pt\relax%
\advance\tikz@math@dimen by-\tikz@math@prevprevvalue pt\relax%
\edef\tikz@math@step{\the\tikz@math@dimen}%
\fi%
\ifdim\tikz@math@step<0pt\relax%
\tikz@math@for@namedef{comparitor}{<}%
\else%
\tikz@math@for@namedef{comparitor}{>}%
\fi%
\tikz@math@for@nameedef{step}{\tikz@math@step}%
\tikz@math@for@doloop%
}%
\def\tikz@math@for@doloop{%
\tikz@math@for@namegetvalue{prevvalue}{\tikz@math@prevvalue}%
\tikz@math@for@namegetvalue{step}{\tikz@math@step}%
\tikz@math@for@namegetvalue{comparitor}{\tikz@math@comparitor}%
\tikz@math@for@namegetvalue{endvalue}{\tikz@math@endvalue}%
\tikz@math@dimen=\tikz@math@prevvalue pt\relax%
\advance\tikz@math@dimen by\tikz@math@step\relax%
\ifdim\tikz@math@dimen\tikz@math@comparitor\tikz@math@endvalue pt\relax%
\let\tikz@math@next=\tikz@math@for@endloop%
\else%
\tikz@math@for@nameedef{value}{\pgfmath@tonumber{\tikz@math@dimen}}%
\tikz@math@for@namegetvalue{var}{\tikz@math@var}%
\expandafter\tikz@math@getvarstring\expandafter{\tikz@math@var}\tikz@math@varstring%
\tikz@math@for@namegetvalue{index}{\tikz@math@current@index}%
\tikz@math@for@namegetvalue{action}{\tikz@math@action}%
\tikz@math@for@namegetvalue{value}{\tikz@math@value}%
\expandafter\expandafter\expandafter\tikz@math@doassignment\expandafter\expandafter\expandafter%
{\expandafter\tikz@math@var\expandafter}\expandafter{\tikz@math@value}%
\tikz@math@for@namegetvalue{execute}{\tikz@math@execute}%
\expandafter\tikz@math@execute\expandafter{\tikz@math@action}%
\tikz@math@for@namegetvalue{prevvalue}{\tikz@math@prevvalue}%
\tikz@math@for@namelet{prevprevvalue}=\tikz@math@prevvalue%
\tikz@math@for@namegetvalue{value}{\tikz@math@value}%
\tikz@math@for@namelet{prevvalue}=\tikz@math@value%
\let\tikz@math@next=\tikz@math@for@doloop%
\fi%
\tikz@math@next%
}%
\def\tikz@math@for@endloop{%
\tikz@math@for@scan}%
\def\tikz@math@for@scan@end#1\tikz@@math{%
\tikz@math@for@namegetvalue{finished}{\tikz@math@next}%
\advance\tikz@math@for@depth by-1\relax%
\tikz@math@next}%
\def\tikz@math@process@keyword@return{%
\tikz@math@collecttosemicolon{\pgfmathparse{\tikz@math@collected}\tikz@math@parse}}%
\def\tikz@math@process@keyword@function{\tikz@math@collecttosemicolon{\tikz@math@process@keyword@@function}}%
\def\tikz@math@process@keyword@@function{%
\let\tikz@math@function@name=\pgfutil@empty%
\let\tikz@math@function@arguments=\pgfutil@empty%
\let\tikz@math@function@body=\pgfutil@empty%
\expandafter\expandafter\expandafter\tikz@math@@declarefunction\expandafter\tikz@math@collected\tikz@math@semicolon%
}%
\def\tikz@math@@declarefunction{%
\pgfutil@ifnextchar\bgroup\tikz@math@@@collectbody\tikz@math@@@declarefunction}%
\def\tikz@math@@@declarefunction#1{%
\if#1(%
\let\tikz@math@next=\tikz@math@@@collectarguments%
\else%
\expandafter\def\expandafter\tikz@math@function@name\expandafter{\tikz@math@function@name#1}%
\let\tikz@math@next=\tikz@math@@declarefunction%
\fi%
\tikz@math@next%
}%
\def\tikz@math@@@collectarguments#1){%
\def\tikz@math@function@arguments{#1}%
\tikz@math@@declarefunction%
}%
\newtoks\tikz@math@toks
\tikz@math@toks={#}%
\edef\tikz@math@char@hash{\the\tikz@math@toks}%
\tikz@math@toks={}%
\def\tikz@math@@@collectbody{\tikz@math@collecttosemicolon{\tikz@math@@@@collectbody}}%
\def\tikz@math@@@@collectbody{%
\tikz@math@toks={}%
\c@pgf@counta=0\relax%
\ifx\tikz@math@function@arguments\pgfutil@empty%
\else%
\expandafter\tikz@math@createargumentlist\tikz@math@function@arguments,,%
\expandafter\tikz@math@addto@toks\expandafter{\tikz@math@collected}%
\fi%
\edef\tikz@math@local@temp{%
\noexpand\pgfmathdeclarefunction{\tikz@math@function@name}{\the\c@pgf@counta}%
{\noexpand\def\noexpand\return{0}\noexpand\tikz@math{\the\tikz@math@toks}}%
}%
\tikz@math@local@temp
\tikz@math@parse%
}%
\def\tikz@math@addto@toks#1{%
\expandafter\tikz@math@toks\expandafter{\the\tikz@math@toks#1}}%
\def\tikz@math@createargumentlist{%
\pgfutil@ifnextchar
x\tikz@math@@createargumentlist\tikz@math@@createargumentlist}%
\def\tikz@math@comma{,}%
\def\tikz@math@@createargumentlist#1,{%
\def\tikz@math@tmp{#1}%
\ifx\tikz@math@tmp\pgfutil@empty%
\let\tikz@math@next=\relax%
\else%
\advance\c@pgf@counta by1\relax%
\tikz@math@addto@toks{#1=}%
\expandafter\expandafter\expandafter\tikz@math@addto@toks\expandafter\expandafter\expandafter%
{\expandafter\tikz@math@char@hash\the\c@pgf@counta;}%
\let\tikz@math@next=\tikz@math@createargumentlist%
\fi%
\tikz@math@next%
}%
\let\tikzmath=\tikz@math
\tikzset{evaluate/.code={\tikz@math{#1}}}%
\let\tikzmathfor=\tikz@math@for@external
\catcode`\@=\tikz@math@at@catcode\relax
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymath.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex ====
\ProvidesFileRCS{tikzlibrarymatrix.code.tex}
\tikzset{matrix of nodes/.style={%
matrix,%
cells={anchor=base},%
execute at begin cell=\tikz@lib@matrix@start@cell,%
execute at end cell=\tikz@lib@matrix@end@cell,%
execute at empty cell=\tikz@lib@matrix@empty@cell,
execute at begin matrix=\iftikz@handle@active@code\tikz@orig@shorthands\fi,%
}}%
\def\tikz@lib@matrix@empty@cell{\iftikz@lib@matrix@empty\node[name=\tikzmatrixname-\the\pgfmatrixcurrentrow-\the\pgfmatrixcurrentcolumn]{};\fi}%
\newif\iftikz@lib@matrix@plain
\def\tikz@lib@matrix@start@cell{%
\pgfutil@ifnextchar|{\tikz@lib@matrix@with@options}{\tikz@lib@matrix@normal@start@cell}}%
\def\tikz@lib@matrix@with@options|#1|{\tikz@lib@matrix@plainfalse\node%
[name=\tikzmatrixname-\the\pgfmatrixcurrentrow-\the\pgfmatrixcurrentcolumn]#1\bgroup\tikz@lib@matrix@startup}%
\def\tikz@lib@matrix@normal@start@cell{\pgfutil@ifnextchar\let{\tikz@lib@matrix@check}{\tikz@lib@matrix@plainfalse\node
[name=\tikzmatrixname-\the\pgfmatrixcurrentrow-\the\pgfmatrixcurrentcolumn]\bgroup\tikz@lib@matrix@startup}}%
\def\tikz@lib@matrix@check#1{%
\pgfutil@ifnextchar\tikz@signal@path{\tikz@lib@matrix@plaintrue\let}{\tikz@lib@matrix@plainfalse\node
[name=\tikzmatrixname-\the\pgfmatrixcurrentrow-\the\pgfmatrixcurrentcolumn]\bgroup\tikz@lib@matrix@startup\let}%
}%
\def\tikz@lib@matrix@end@cell{%
\iftikz@lib@matrix@plain%
\else%
\expandafter\egroup\expandafter;%
\fi%
}%
\def\tikz@lib@matrix@startup{%
\pgfutil@ifnextchar\bgroup{%
\let\tikz@lib@matrix@saved@eol=\\%
\let\\=\pgfmatrixendrow%
\afterassignment\tikz@lib@matrix@smuggle%
\let\tikz@next}
{\let\\=\pgfmatrixendrow}%
}%
\def\tikz@lib@matrix@smuggle{%
\bgroup%
\let\\=\tikz@lib@matrix@saved@eol%
}%
\newif\iftikz@lib@matrix@empty
\tikzoption{nodes in empty cells}[true]{\csname tikz@lib@matrix@empty#1\endcsname}%
\tikzset{matrix of math nodes/.style={%
matrix of nodes,
nodes={%
execute at begin node=$,%
execute at end node=$%
}%
}}%
\tikzoption{left delimiter}{\tikzset{append after command={\tikz@delimiter%
{south east}%
{south west}%
{every delimiter,every left delimiter}%
{south}%
{north}%
{#1}%
{.}%
{\pgf@y}}}}%
\tikzoption{right delimiter}{\tikzset{append after command={\tikz@delimiter%
{south west}%
{south east}%
{every delimiter,every right delimiter}%
{south}%
{north}%
{.}%
{#1}%
{\pgf@y}}}}%
\tikzoption{above delimiter}{\tikzset{append after command={\tikz@delimiter%
{south east}%
{north west}%
{every delimiter,every above delimiter,rotate=-90}%
{west}%
{east}%
{#1}%
{.}%
{\pgf@x}}}}%
\tikzoption{below delimiter}{\tikzset{append after command={\tikz@delimiter%
{south west}%
{south west}%
{every delimiter,every below delimiter,rotate=-90}%
{west}%
{east}%
{.}%
{#1}%
{\pgf@x}}}}%
\def\tikz@delimiter#1#2#3#4#5#6#7#8{%
\bgroup
\pgfextra{\let\tikz@save@last@fig@name=\tikz@last@fig@name\tikz@node@is@a@labelfalse}%
node[outer sep=0pt,inner sep=0pt,draw=none,fill=none,anchor=#1,at=(\tikz@last@fig@name.#2),#3]
{%
{\nullfont\pgf@process{\pgfpointdiff{\pgfpointanchor{\tikz@last@fig@name}{#4}}{\pgfpointanchor{\tikz@last@fig@name}{#5}}}}%
$\left#6\vcenter{\hrule height .5#8 depth .5#8 width0pt}\right#7$%
}
\pgfextra{\global\let\tikz@last@fig@name=\tikz@save@last@fig@name}%
\egroup%
}%
\tikzset{every delimiter/.style={}}%
\tikzset{every left delimiter/.style={}}%
\tikzset{every right delimiter/.style={}}%
\tikzset{every above delimiter/.style={}}%
\tikzset{every below delimiter/.style={}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymindmap.code.tex ====
\ProvidesFileRCS{tikzlibrarymindmap.code.tex}
\usetikzlibrary{trees,decorations}%
\pgfdeclaredecoration{circle connection bar}{initial}
{%
\state{initial}[width=0pt,next state=bar]
{
{
\pgftransformxshift{-\pgfkeysvalueof{/pgf/decoration/start radius}}%
\pgfpathmoveto{\pgfpointpolar{\pgfdecorationsegmentangle}{\pgfkeysvalueof{/pgf/decoration/start radius}}}
\pgfpatharc{\pgfdecorationsegmentangle}{-\pgfdecorationsegmentangle}{\pgfkeysvalueof{/pgf/decoration/start radius}}
\pgfutil@tempcnta=-\pgfdecorationsegmentangle\relax
\advance\pgfutil@tempcnta by90\relax
\pgfmathsetlength\pgfutil@tempdima{\pgfkeysvalueof{/pgf/decoration/start radius}}
\pgfmathsetlength\pgfutil@tempdimb{\pgfdecorationsegmentamplitude}
\pgfpathcurveto
{\pgfpointadd
{\pgfpointpolar{-\pgfdecorationsegmentangle}{\pgfkeysvalueof{/pgf/decoration/start radius}}}
{\pgfpointpolar{\the\pgfutil@tempcnta}{.25\pgfutil@tempdima}}}
{\pgfqpoint{1.25\pgfutil@tempdima}{-.5\pgfutil@tempdimb}}
{\pgfqpoint{1.5\pgfutil@tempdima}{-.5\pgfutil@tempdimb}}
\pgfpathlineto{\pgfpoint{1.5\pgfutil@tempdima}{.5\pgfutil@tempdimb}}
\pgfutil@tempcnta=\pgfdecorationsegmentangle\relax
\advance\pgfutil@tempcnta by-90\relax
\pgfpathcurveto
{\pgfpoint{1.25\pgfutil@tempdima}{.5\pgfutil@tempdimb}}
{\pgfpointadd
{\pgfpointpolar{\pgfdecorationsegmentangle}{\pgfkeysvalueof{/pgf/decoration/start radius}}}
{\pgfpointpolar{\the\pgfutil@tempcnta}{.25\pgfutil@tempdima}}}
{\pgfpointpolar{\pgfdecorationsegmentangle}{\pgfkeysvalueof{/pgf/decoration/start radius}}}
\pgfpathclose
}
}%
\state{bar}[width=0pt,next state=end]
{
\pgfmathsetlength\pgfutil@tempdima{\pgfkeysvalueof{/pgf/decoration/start radius}}%
\pgfmathsetlength\pgfutil@tempdimb{\pgfkeysvalueof{/pgf/decoration/end radius}}%
\pgfmathsetlength\pgf@xc{\pgfdecorationsegmentamplitude}%
\pgfpathrectangle
{\pgfqpoint{.5\pgfutil@tempdima}{-.5\pgf@xc}}
{\pgfpoint{\pgfdecoratedremainingdistance+-.5\pgfutil@tempdimb+-.5\pgfutil@tempdima}{\pgf@xc}}
}%
\state{end}[width=0pt,next state=final]
{
{
\pgftransformxshift{\pgfdecoratedremainingdistance}%
\pgftransformxscale{-1}%
\pgftransformxshift{-\pgfkeysvalueof{/pgf/decoration/end radius}}%
\pgfpathmoveto{\pgfpointpolar{\pgfdecorationsegmentangle}{\pgfkeysvalueof{/pgf/decoration/end radius}}}
\pgfpatharc{\pgfdecorationsegmentangle}{-\pgfdecorationsegmentangle}{\pgfkeysvalueof{/pgf/decoration/end radius}}
\pgfutil@tempcnta=-\pgfdecorationsegmentangle\relax
\advance\pgfutil@tempcnta by90\relax
\pgfmathsetlength\pgfutil@tempdima{\pgfkeysvalueof{/pgf/decoration/end radius}}
\pgfmathsetlength\pgfutil@tempdimb{\pgfdecorationsegmentamplitude}%
\pgfpathcurveto
{\pgfpointadd
{\pgfpointpolar{-\pgfdecorationsegmentangle}{\pgfkeysvalueof{/pgf/decoration/end radius}}}
{\pgfpointpolar{\the\pgfutil@tempcnta}{.25\pgfutil@tempdima}}}
{\pgfqpoint{1.25\pgfutil@tempdima}{-.5\pgfutil@tempdimb}}
{\pgfqpoint{1.5\pgfutil@tempdima}{-.5\pgfutil@tempdimb}}
\pgfpathlineto{\pgfpoint{1.5\pgfutil@tempdima}{.5\pgfutil@tempdimb}}
\pgfutil@tempcnta=\pgfdecorationsegmentangle\relax
\advance\pgfutil@tempcnta by-90\relax
\pgfpathcurveto
{\pgfpoint{1.25\pgfutil@tempdima}{.5\pgfutil@tempdimb}}
{\pgfpointadd
{\pgfpointpolar{\pgfdecorationsegmentangle}{\pgfkeysvalueof{/pgf/decoration/end radius}}}
{\pgfpointpolar{\the\pgfutil@tempcnta}{.25\pgfutil@tempdima}}}
{\pgfpointpolar{\pgfdecorationsegmentangle}{\pgfkeysvalueof{/pgf/decoration/end radius}}}
\pgfpathclose
}
}%
\state{final}
{}%
}%
\pgfkeys{/pgf/decoration/angle=20}%
\tikzset{circle connection bar/.style=
{to path={
\pgfextra{%
\tikz@lib@mindmap@check{\tikztostart}%
\tikz@compute@circle@radii\tikz@compute@segmentamplitude%
}
[every circle connection bar]
decorate [decoration=circle connection bar]
{ -- (\tikztotarget) \tikztonodes}
},
append after command={[fill=\tikz@concept@color,draw=none]}
}}%
\tikzset{every circle connection bar/.style={}}%
\def\tikz@compute@circle@radii{%
\pgf@process{\pgfpointtransformed{\pgfpointanchor{\tikztostart}{center}}}%
\pgf@xa=\pgf@x%
\pgf@process{\pgfpointtransformed{\pgfpointanchor{\tikztostart}{west}}}%
\advance\pgf@xa by-\pgf@x%
\pgfkeys{/pgf/decoration/start radius/.expanded=\the\pgf@xa}%
\pgf@process{\pgfpointtransformed{\pgfpointanchor{\tikztotarget}{center}}}%
\pgf@xa=\pgf@x%
\pgf@process{\pgfpointtransformed{\pgfpointanchor{\tikztotarget}{west}}}%
\advance\pgf@xa by-\pgf@x%
\pgfkeys{/pgf/decoration/end radius/.expanded=\the\pgf@xa}%
}%
\def\tikz@compute@segmentamplitude{%
\pgf@x=\pgfkeysvalueof{/pgf/decoration/start radius}\relax%
\ifdim\pgf@x>\pgfkeysvalueof{/pgf/decoration/end radius}\relax%
\pgf@x=\pgfkeysvalueof{/pgf/decoration/end radius}\relax%
\fi%
\pgf@x=.175\pgf@x\relax%
\edef\pgfdecorationsegmentamplitude{\the\pgf@x}%
}%
\def\tikz@lib@mindmap@check#1{%
\pgfutil@ifundefined{pgf@sh@ns@#1}%
{\tikzerror{You are attempting to connect two things by a circle
connection bar where one is not a node}}{%
\expandafter\ifx\csname pgf@sh@ns@#1\endcsname\tikz@lib@coordinate@text%
\tikzerror{You are attempting to connect node of shape
'coordinate' by a circle connection bar. The shape should be
'circle' or something similar, instead.}
\fi%
}
}%
\def\tikz@lib@coordinate@text{coordinate}%
\tikzoption{circle connection bar switch color}{\tikz@parse@switch#1\pgf@unique}%
\def\tikz@parse@switch from (#1) to (#2)\pgf@unique{%
\tikzset{to path={%
\pgfextra{%
\tikz@lib@mindmap@check{\tikztostart}%
\tikz@compute@circle@radii\tikz@compute@segmentamplitude%
\global\let\tikz@lib@save@start=\tikztostart%
\global\let\tikz@lib@save@target=\tikztotarget%
\pgfkeysgetvalue{/pgf/decoration/start radius}\pgf@temp%
\global\let\tikz@lib@saved@start@radius=\pgf@temp%
\pgfkeysgetvalue{/pgf/decoration/end radius}\pgf@temp%
\global\let\tikz@lib@saved@end@radius=\pgf@temp%
}%
[every circle connection bar]
decorate [decoration=circle connection bar]
{ -- (\tikztotarget) \tikztonodes}
},
append after command={
[fill=none,draw=none,path picture=\tikz@lib@shade@pic]
\pgfextra{
\pgfutil@colorlet{tikz@switch@from}{#1}%
\pgfutil@colorlet{tikz@switch@to}{#2}%
}}
}
}%
\def\tikz@lib@shade@pic{%
\pgftransformreset%
\pgf@process{\pgfpointnormalised{\pgfpointdiff{\pgfpointanchor{\tikz@lib@save@start}{center}}{\pgfpointanchor{\tikz@lib@save@target}{center}}}}%
\edef\tikz@lib@mm@vec{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgfmathsetlength\pgf@xc{\tikz@lib@saved@start@radius}
\pgf@process{\pgfpointadd{\pgfpointtransformed{\pgfpointanchor{\tikz@lib@save@start}{center}}}
{\pgfpointscale{\pgf@sys@tonumber{\pgf@xc}}{\tikz@lib@mm@vec}}}
\edef\tikz@lib@mm@start{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgfmathsetlength\pgf@xc{\tikz@lib@saved@end@radius}
\pgf@process{\pgfpointdiff{\tikz@lib@mm@start}{\pgfpointadd{\pgfpointtransformed{\pgfpointanchor{\tikz@lib@save@target}{center}}}
{\pgfpointscale{-\pgf@sys@tonumber{\pgf@xc}}{\tikz@lib@mm@vec}}}}
\edef\tikz@lib@mm@end{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgftransformshift{\tikz@lib@mm@start}
\pgflowlevelsynccm
\pgf@process{\tikz@lib@mm@vec}
{
\pgf@xa=-\pgf@x%
\pgftransformcm{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}%
{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@xa}}%
{\pgfpointorigin}%
\pgf@process{\pgfpointtransformed{\tikz@lib@mm@end}}%
\expandafter
}
\edef\tikz@lib@mm@length{\the\pgf@x}%
\pgf@process{\tikz@lib@mm@vec}
\pgf@ya=-\pgf@y%
\pgftransformcm{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}%
{\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}%
{\pgfpointorigin}%
\pgfmathsetlength\pgf@y{\tikz@lib@saved@start@radius}%
\pgfmathsetlength\pgf@ya{\tikz@lib@saved@end@radius}%
\ifdim\pgf@y<\pgf@ya%
\pgf@y=\pgf@ya%
\fi%
\pgf@y=0.01992528\pgf@y%
\pgftransformyscale{\pgf@sys@tonumber{\pgf@y}}%
\pgfpathrectanglecorners
{\pgfpoint{-\tikz@lib@saved@start@radius}{-50bp}}
{\pgfpoint{1pt}{50bp}}
\pgfsetfillcolor{tikz@switch@from}
\pgfusepath{fill}
\pgfpathrectanglecorners
{\pgfpoint{\tikz@lib@mm@length+\tikz@lib@saved@end@radius}{-50bp}}
{\pgfpoint{\tikz@lib@mm@length-1pt}{50bp}}
\pgfsetfillcolor{tikz@switch@to}
\pgfusepath{fill}
\pgf@x=\tikz@lib@mm@length%
\pgf@x=0.009962\pgf@x%
\pgftransformxscale{\pgf@sys@tonumber{\pgf@x}}%
\pgftransformxshift{50bp}
\pgflowlevelsynccm%
\pgfuseshading{tikz@shade@bar}
}%
\tikzoption{concept color}{%
\let\tikz@old@concept@color=\tikz@concept@color%
\def\tikz@edge@to@parent@path{
(\tikzparentnode)
to[circle connection bar switch color=from (\tikz@old@concept@color) to (#1)]
(\tikzchildnode)}
\def\tikz@concept@color{#1}%
}%
\pgfdeclarehorizontalshading[tikz@switch@from,tikz@switch@to]{tikz@shade@bar}{100bp}{%
color(0pt)=(tikz@switch@from);
color(100bp)=(tikz@switch@to)}%
\tikzset{concept/.style= {circle,fill=\tikz@concept@color,draw=\tikz@concept@color,every concept}}%
\tikzset{every concept/.style= {}}%
\def\tikz@concept@color{black}%
\tikzset{tikz@concept@setting/.style={edge from parent path={(\tikzparentnode) to [circle connection bar] (\tikzchildnode)}}}%
\tikzset{tikz@concept@color@set/.style={}}%
\tikzset{extra concept/.style= {concept color=black!50,level 2 concept,concept,every extra concept}}%
\tikzset{every extra concept/.style={}}%
\tikzset{concept connection/.style={line width=1mm,shorten <=2mm,shorten >=2mm,cap=round,draw=black!50}}%
\tikzset{mindmap/.style=
{fill,draw,very thick,outer sep=0pt,inner sep=1pt,%
every child/.append style={style=tikz@concept@setting,style=tikz@concept@color@set},%
root concept,
level 1/.append style={level 1 concept},
level 2/.append style={level 2 concept},
level 3/.append style={level 3 concept},
level 4/.append style={level 4 concept},
text centered,%
segment angle=20,
style=every mindmap,
}}%
\tikzset{every mindmap/.style={}}%
\tikzset{root concept/.style= {minimum size=4cm,text width=3.5cm,font=\pgfutil@font@large}}%
\tikzset{level 1 concept/.style={minimum size=2.25cm,
level distance=5cm,
text width=2cm,
sibling angle=60,
font=\pgfutil@font@small}}%
\tikzset{level 2 concept/.style={minimum size=1.75cm,%
level distance=2.9cm,%
text width=1.5cm,%
sibling angle=60,%
font=\pgfutil@font@footnotesize}}%
\tikzset{level 3 concept/.style={minimum size=1.15cm,%
text width=1cm,%
level distance=2.4cm,%
sibling angle=30,%
font=\pgfutil@font@tiny}}%
\tikzset{level 4 concept/.style={minimum size=0.9cm,%
text width=0.7cm,
level distance=1.85cm,%
sibling angle=30,%
font=\pgfutil@font@tiny}}%
\tikzset{small mindmap/.style=
{%
root concept/.style={minimum size=2.3cm,text width=2.1cm,font=\pgfutil@font@footnotesize},
level 1 concept/.style={%
minimum size=1.5cm,
level distance=2.8cm,
text width=1.4cm,
sibling angle=75,
font=\pgfutil@font@scriptsize},%
level 2 concept/.style={%
minimum size=1.1cm,%
level distance=2.2cm,%
text width=1.1cm,%
sibling angle=60,%
font=\pgfutil@font@tiny},%
level 3 concept/.style={%
level 2 concept,
sibling angle=30,%
font=\pgfutil@font@tiny},%
level 4 concept/.style={%
level 3 concept,
},
mindmap,%
line width=2pt,
}}%
\tikzset{large mindmap/.style=
{%
root concept/.style={minimum size=5.6cm,text width=4.5cm,font=\pgfutil@font@Large},
level 1 concept/.style={%
minimum size=3.2cm,
level distance=7cm,
text width=2.8cm,
sibling angle=60,
font=},%
level 2 concept/.style={%
minimum size=2.45cm,%
level distance=4cm,%
text width=2.2cm,%
sibling angle=60,%
font=\pgfutil@font@small%
},%
level 3 concept/.style={%
minimum size=1.63cm,%
text width=1.4cm,%
level distance=3.38cm,%
sibling angle=30,%
font=\pgfutil@font@scriptsize},%
level 4 concept/.style={%
minimum size=1.27cm,%
text width=1cm,
level distance=2.60cm,%
sibling angle=30,%
font=\pgfutil@font@tiny},%
mindmap,%
line width=2pt,
}}%
\tikzset{huge mindmap/.style=
{%
root concept/.style={minimum size=8cm,text width=7cm,font=\pgfutil@font@huge},
level 1 concept/.style={%
minimum size=4.5cm,
level distance=10cm,
text width=4cm,
sibling angle=60,
font=\pgfutil@font@large},%
level 2 concept/.style={%
minimum size=3.5cm,%
level distance=5.8cm,%
text width=3cm,%
sibling angle=60,%
font=%
},%
level 3 concept/.style={%
minimum size=2.3cm,%
text width=2cm,%
level distance=4.8cm,%
sibling angle=30,%
font=\pgfutil@font@footnotesize},%
level 4 concept/.style={%
minimum size=1.7cm,%
text width=1.4cm,
level distance=3.7cm,%
sibling angle=30,%
font=\pgfutil@font@scriptsize},%
mindmap,%
line width=3pt,
}}%
\tikzset{annotation/.style={shape=rectangle,
minimum size=0pt,
text width=3.5cm,
outer sep=1.5mm,
inner sep=1mm,
text badly ragged,
rounded corners,
font=\pgfutil@font@tiny,
every annotation}}%
\tikzset{every annotation/.style={}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymindmap.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypatterns.code.tex ====
\ProvidesFileRCS{tikzlibrarypatterns.code.tex}
\usepgflibrary{patterns}%
\tikzoption{pattern color}{\edef\tikz@pattern@color{#1}}%
\tikzoption{pattern}[]{%
\edef\tikz@temp{#1}%
\ifx\tikz@temp\tikz@nonetext%
\tikz@addmode{\tikz@mode@fillfalse}%
\else%
\ifx\tikz@temp\pgfutil@empty%
\else%
\tikz@addoption{\pgfsetfillpattern{#1}{\tikz@pattern@color}}%
\def\tikz@pattern{#1}%
\fi%
\tikz@addmode{\tikz@mode@filltrue}%
\fi%
}%
\def\tikz@pattern@color{black}%
\def\tikz@pattern{dots}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypatterns.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypatterns.meta.code.tex ====
\usepgflibrary{patterns.meta}%
\tikzset{%
pattern color/.code=\edef\tikz@pattern@color{#1},
pattern/.code={%
\edef\tikz@temp{#1}%
\ifx\tikz@temp\tikz@nonetext%
\tikz@addmode{\tikz@mode@fillfalse}%
\else%
\ifx\tikz@temp\pgfutil@empty%
\else%
\tikz@addoption{\pgfsetfillpattern{#1}{\tikz@pattern@color}}%
\def\tikz@pattern{#1}%
\fi%
\tikz@addmode{\tikz@mode@filltrue}%
\fi%
}
}%
\def\tikz@pattern@color{black}%
\def\tikz@pattern{}%
\tikzset{patterns/.cd,
.unknown/.code={%
\let\tikz@pat@key=\pgfkeyscurrentname%
\pgfkeys{/pgf/patterns/\tikz@pat@key/.try={#1}}%
},
bottom left/.style={/pgf/patterns/bottom left={\tikz@scan@one@point\pgf@pat@process#1}},
top right/.style={/pgf/patterns/top right={\tikz@scan@one@point\pgf@pat@process#1}},
bounding box/.style args={#1(#2)#3and#4(#5)#6}{%
/tikz/patterns/bottom left={(#2)},
/tikz/patterns/top right={#4(#5)},
},
tile size/.style={/pgf/patterns/tile size={\tikz@scan@one@point\pgf@pat@process#1}},
tile transformation/.style={/pgf/patterns/tile transformation={%
\let\tikz@transform=\relax\pgfkeys{/tikz/.cd,#1}}%
},
infer tile bounding box/.code={
\def\pgf@pat@codeafter{%
\xdef\tikz@pat@installbb{%
\noexpand\pgfkeys{/tikz/patterns/bounding box={%
(\the\pgf@picminx-#1,\the\pgf@picminy-#1) and
(\the\pgf@picmaxx+#1,\the\pgf@picmaxy+#1)
},
/tikz/patterns/tile size={%
(\the\pgf@picmaxx-\the\pgf@picminx,
\the\pgf@picmaxy-\the\pgf@picminy)}}}%
}%
\let\pgf@pat@declarepost=\tikz@pat@installbb%
},
infer tile bounding box/.default=0pt,
}%
\def\tikzdeclarepattern#1{%
\begingroup%
\def\pgf@pat@codebefore{%
\let\tikz@transform=\relax%
\pgftransformreset%
\tikz@declarepattern@install%
\ifnum\pgf@pat@type=0\relax%
\let\pgfsetstrokecolor=\pgfutil@gobble%
\let\pgfsetfillcolor=\pgfutil@gobble%
\fi%
\def\tikz@fig{\tikzerror{You cannot use `\string\node' inside a pattern}}%
\def\tikz@edge@plain{\tikzerror{You cannot use `edge' inside a pattern}}%
\def\tikz@to{\tikzerror{You cannot use `to' paths inside a pattern}}%
\tikzset{pattern/.code={\tikzerror{You cannot nest patterns}},
pattern color/.style={pattern}}%
}%
\pgfdeclarepattern{/tikz/patterns/.cd,#1}%
\endgroup%
}%
\def\tikz@declarepattern@install{%
\let\tikz@compat@color@set=\tikz@compat@color@set@insidepatttern%
\tikz@installcommands%
}%
\let\tikz@compat@color@set@orig=\tikz@compat@color@set
\def\tikz@compat@color@set@insidepatttern#1{%
\tikz@compat@color@set@orig{#1}%
\pgfsetfillcolor{#1}\pgfsetstrokecolor{#1}%
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypatterns.meta.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryperspective.code.tex ====
\ProvidesFileRCS{tikzlibraryperspective.code.tex}
\pgfmathsetmacro\pgf@H@tpp@aa{+1}
\pgfmathsetmacro\pgf@H@tpp@ab{+0}
\pgfmathsetmacro\pgf@H@tpp@ac{+0}
\pgfmathsetmacro\pgf@H@tpp@ba{+0}
\pgfmathsetmacro\pgf@H@tpp@bb{+1}
\pgfmathsetmacro\pgf@H@tpp@bc{+0}
\pgfmathsetmacro\pgf@H@tpp@ca{+0}
\pgfmathsetmacro\pgf@H@tpp@cb{+0}
\pgfmathsetmacro\pgf@H@tpp@cc{+1}
\pgfmathsetmacro\pgf@H@tpp@da{+0}
\pgfmathsetmacro\pgf@H@tpp@db{+0}
\pgfmathsetmacro\pgf@H@tpp@dc{+0}
\def\pgfpointperspectivexyz#1#2#3{%
\pgfmathsetmacro\pgf@pp@w%
{ \pgf@H@tpp@da*(#1) + \pgf@H@tpp@db*(#2) + \pgf@H@tpp@dc*(#3) + 1}
\pgfmathsetmacro\pgf@pp@x%
{(\pgf@H@tpp@aa*(#1) + \pgf@H@tpp@ab*(#2) + \pgf@H@tpp@ac*(#3))/\pgf@pp@w}
\pgfmathsetmacro\pgf@pp@y%
{(\pgf@H@tpp@ba*(#1) + \pgf@H@tpp@bb*(#2) + \pgf@H@tpp@bc*(#3))/\pgf@pp@w}
\pgfmathsetmacro\pgf@pp@z%
{(\pgf@H@tpp@ca*(#1) + \pgf@H@tpp@cb*(#2) + \pgf@H@tpp@cc*(#3))/\pgf@pp@w}
\pgf@x=\pgf@pp@x\pgf@xx%
\advance\pgf@x by \pgf@pp@y\pgf@yx%
\advance\pgf@x by \pgf@pp@z\pgf@zx%
\pgf@y=\pgf@pp@x\pgf@xy%
\advance\pgf@y by \pgf@pp@y\pgf@yy%
\advance\pgf@y by \pgf@pp@z\pgf@zy}
\tikzdeclarecoordinatesystem{three point perspective}
{%
\tikzset{cs/.cd,x=0,y=0,z=0,#1}%
\pgfpointperspectivexyz{\tikz@cs@x}{\tikz@cs@y}{\tikz@cs@z}
}
\tikzaliascoordinatesystem{tpp}{three point perspective}
\pgfkeys{
/perspective/.cd,
p/.code args={(#1,#2,#3)}{
\pgfmathparse{ifthenelse(#1,int(1),int(0))}
\ifnum\pgfmathresult=0\else
\pgfmathsetmacro\pgf@H@tpp@ba{#2/#1}
\pgfmathsetmacro\pgf@H@tpp@ca{#3/#1}
\pgfmathsetmacro\pgf@H@tpp@da{ 1/#1}
\fi
},
q/.code args={(#1,#2,#3)}{
\pgfmathparse{ifthenelse(#2,int(1),int(0))}
\ifnum\pgfmathresult=0\else
\pgfmathsetmacro\pgf@H@tpp@ab{#1/#2}
\pgfmathsetmacro\pgf@H@tpp@cb{#3/#2}
\pgfmathsetmacro\pgf@H@tpp@db{ 1/#2}
\fi
},
r/.code args={(#1,#2,#3)}{
\pgfmathparse{ifthenelse(#3,int(1),int(0))}
\ifnum\pgfmathresult=0\else
\pgfmathsetmacro\pgf@H@tpp@ac{#1/#3}
\pgfmathsetmacro\pgf@H@tpp@bc{#2/#3}
\pgfmathsetmacro\pgf@H@tpp@dc{ 1/#3}
\fi
},
}
\tikzset{
perspective/.append code={\pgfkeys{/perspective/.cd,#1}},
perspective/.default={
p={(10,0,0)},
q={(0,10,0)},
r={(0,0,20)}},
}
\tikzset{
3d view/.code 2 args={%
\pgfmathsetmacro\pgf@view@az{#1}%
\pgfmathsetmacro\pgf@view@el{#2}%
\pgfmathsetmacro\pgf@xvec@x{cos(\pgf@view@az)}%
\pgfmathsetmacro\pgf@xvec@y{-sin(\pgf@view@az)*sin(\pgf@view@el)}%
\pgfmathsetmacro\pgf@yvec@x{sin(\pgf@view@az)}%
\pgfmathsetmacro\pgf@yvec@y{cos(\pgf@view@az)*sin(\pgf@view@el)}%
\pgfmathsetmacro\pgf@zvec@x{+0}%
\pgfmathsetmacro\pgf@zvec@y{cos(\pgf@view@el)}%
\pgfsetxvec{\pgfpoint{\pgf@xvec@x cm}{\pgf@xvec@y cm}}%
\pgfsetyvec{\pgfpoint{\pgf@yvec@x cm}{\pgf@yvec@y cm}}%
\pgfsetzvec{\pgfpoint{\pgf@zvec@x cm}{\pgf@zvec@y cm}}%
},
3d view/.default={-30}{15},
isometric view/.style={3d view={-45}{atan(1/sqrt(2))}},
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryperspective.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypetri.code.tex ====
\ProvidesFileRCS{tikzlibrarypetri.code.tex}
\tikzset{every place/.style= {}}%
\tikzset{place/.style= {circle,draw,inner sep=0pt,
minimum size=5ex,
every place}}%
\tikzset{every transition/.style= {}}%
\tikzset{transition/.style= {rectangle,draw,inner sep=0pt,
minimum size=4mm,
every transition}}%
\tikzset{pre/.style= {<-,shorten <=1pt}}%
\tikzset{post/.style= {->,shorten >=1pt}}%
\tikzset{pre and post/.style= {<->,shorten >=1pt,shorten <=1pt}}%
\tikzset{every token/.style= {}}%
\tikzset{token/.style= {fill=black,draw=none,circle,
inner sep=0.5pt,minimum size=1ex,
text=white,font=\pgfutil@font@tiny,every token}}%
\tikzoption{token distance}{\def\tikz@token@distance{#1}}%
\def\tikz@token@distance{1.5ex}%
\tikzset{children are tokens/.style= {growth function=\tikz@grow@tokens,edge from parent path=}}%
\tikzoption{tokens}{%
\ifnum#1>0\relax%
\tikzset{append after command={}
{[children are tokens]child foreach \tikz@dummy in {1,...,#1} {node[token]{}}}}%
\fi}%
\tikzoption{colored tokens}{%
\tikzset{append after command={}%
{[children are tokens]child foreach \tikz@child@color in {#1} {node[token,\tikz@child@color]{}}}}%
}%
\tikzoption{structured tokens}{%
\tikzset{append after command={}%
{[children are tokens]child foreach \tikzpetrichildname in {#1} {node[token]{\tikzpetrichildname}}}}%
}%
\def\tikz@grow@tokens{%
\pgfmathsetlength{\pgf@xa}{\tikz@token@distance}%
\pgfmathsetlength{\pgf@ya}{\tikz@token@distance}%
\pgf@xc=0pt%
\pgf@yc=0pt%
\csname tikz@grow@tokens@placer@\the\tikznumberofchildren @\the\tikznumberofcurrentchild\endcsname%
\pgftransformshift{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
}%
\def\tikz@def@grow@tokens#1#2#3#4{%
\expandafter\def\csname tikz@grow@tokens@placer@#1@#2\endcsname{%
\pgf@xc=#3\pgf@xa%
\pgf@yc=#4\pgf@ya}%
}%
\tikz@def@grow@tokens{1}{1}{0}{0}%
\tikz@def@grow@tokens{2}{1}{-.5}{0}%
\tikz@def@grow@tokens{2}{2}{.5}{0}%
\tikz@def@grow@tokens{3}{1}{0} {0.57}%
\tikz@def@grow@tokens{3}{2}{-.5}{-.306025}%
\tikz@def@grow@tokens{3}{3}{.5} {-.306025}%
\tikz@def@grow@tokens{4}{1}{-.5}{.5}%
\tikz@def@grow@tokens{4}{2}{.5}{.5}%
\tikz@def@grow@tokens{4}{3}{-.5}{-.5}%
\tikz@def@grow@tokens{4}{4}{.5}{-.5}%
\tikz@def@grow@tokens{5}{1}{0}{.85}%
\tikz@def@grow@tokens{5}{2}{-0.808398}{0.26266}%
\tikz@def@grow@tokens{5}{3}{0.808398}{0.26266}%
\tikz@def@grow@tokens{5}{4}{-0.499617}{-0.687664}%
\tikz@def@grow@tokens{5}{5}{0.499617}{-0.687664}%
\tikz@def@grow@tokens{6}{1}{-1}{.5}%
\tikz@def@grow@tokens{6}{2}{0}{.5}%
\tikz@def@grow@tokens{6}{3}{1}{.5}%
\tikz@def@grow@tokens{6}{4}{-1}{-.5}%
\tikz@def@grow@tokens{6}{5}{0}{-.5}%
\tikz@def@grow@tokens{6}{6}{1}{-.5}%
\tikz@def@grow@tokens{7}{1}{0}{1}%
\tikz@def@grow@tokens{7}{2}{-1}{.5}%
\tikz@def@grow@tokens{7}{3}{0}{0}%
\tikz@def@grow@tokens{7}{4}{1}{.5}%
\tikz@def@grow@tokens{7}{5}{-1}{-.5}%
\tikz@def@grow@tokens{7}{6}{0}{-1}%
\tikz@def@grow@tokens{7}{7}{1}{-.5}%
\tikz@def@grow@tokens{8}{1}{-.5}{1}%
\tikz@def@grow@tokens{8}{2}{.5}{1}%
\tikz@def@grow@tokens{8}{3}{-1}{0}%
\tikz@def@grow@tokens{8}{4}{0}{0}%
\tikz@def@grow@tokens{8}{5}{1}{0}%
\tikz@def@grow@tokens{8}{6}{-1}{-1}%
\tikz@def@grow@tokens{8}{7}{0}{-1}%
\tikz@def@grow@tokens{8}{8}{1}{-1}%
\tikz@def@grow@tokens{9}{1}{-1}{1}%
\tikz@def@grow@tokens{9}{2}{0}{1}%
\tikz@def@grow@tokens{9}{3}{1}{1}%
\tikz@def@grow@tokens{9}{4}{-1}{0}%
\tikz@def@grow@tokens{9}{5}{0}{0}%
\tikz@def@grow@tokens{9}{6}{1}{0}%
\tikz@def@grow@tokens{9}{7}{-1}{-1}%
\tikz@def@grow@tokens{9}{8}{0}{-1}%
\tikz@def@grow@tokens{9}{9}{1}{-1}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypetri.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryplothandlers.code.tex ====
\ProvidesFileRCS{tikzlibraryplothandlers.code.tex}
\usepgflibrary{plothandlers}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryplothandlers.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryplotmarks.code.tex ====
\ProvidesFileRCS{tikzlibraryplotmarks.code.tex}
\usepgflibrary{plotmarks}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryplotmarks.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex ====
\ProvidesFileRCS{tikzlibrarypositioning.code.tex}
\tikzset{above/.code=\tikz@lib@place@handle@{#1}{south}{0}{1}{north}{1}}%
\tikzset{above left/.code=\tikz@lib@place@handle@{#1}{south east}{-1}{1}{north west}{0.707106781}}%
\tikzset{above right/.code=\tikz@lib@place@handle@{#1}{south west}{1}{1}{north east}{0.707106781}}%
\tikzset{base left/.code =\tikz@lib@place@handle@{#1}{base east}{-1}{0}{base west}{1}}%
\tikzset{base right/.code=\tikz@lib@place@handle@{#1}{base west}{1}{0}{base east}{1}}%
\tikzset{below/.code=\tikz@lib@place@handle@{#1}{north}{0}{-1}{south}{1}}%
\tikzset{below left/.code=\tikz@lib@place@handle@{#1}{north east}{-1}{-1}{south west}{0.707106781}}%
\tikzset{below right/.code=\tikz@lib@place@handle@{#1}{north west}{1}{-1}{south east}{0.707106781}}%
\tikzset{left/.code =\tikz@lib@place@handle@{#1}{east}{-1}{0}{west}{1}}%
\tikzset{mid left/.code =\tikz@lib@place@handle@{#1}{mid east}{-1}{0}{mid west}{1}}%
\tikzset{mid right/.code=\tikz@lib@place@handle@{#1}{mid west}{1}{0}{mid east}{1}}%
\tikzset{right/.code=\tikz@lib@place@handle@{#1}{west}{1}{0}{east}{1}}%
\newif\iftikz@lib@ignore@size
\pgfutil@g@addto@macro\tikz@node@reset@hook{\tikz@addtransform{\tikz@lib@pos@call}\let\tikz@lib@pos@call=\relax}%
\tikzset{on grid/.is if=tikz@lib@ignore@size}%
\tikzset{node distance=1cm and 1cm}%
\def\tikz@lib@place@handle@#1#2#3#4#5#6{%
\def\tikz@anchor{#2}%
\let\tikz@do@auto@anchor=\relax%
\edef\tikz@temp{#1}%
\def\tikz@lib@place@single@factor{#6}%
\expandafter\tikz@lib@place@handle@@\expandafter{\tikz@temp}{#3}{#4}{#5}%
}%
\def\tikz@lib@place@handle@@#1#2#3#4{%
\pgfutil@in@{of }{#1}%
\ifpgfutil@in@%
\tikz@lib@place@of#1\tikz@stop{#4}%
\else%
\edef\tikz@lib@place@nums{#1}%
\fi%
\ifx\tikz@lib@place@nums\pgfutil@empty%
\else%
\expandafter\tikz@lib@place@parse@nums\expandafter{\tikz@lib@place@nums}%
\pgf@x=#2\pgf@x%
\pgf@y=#3\pgf@y%
\edef\tikz@lib@pos@call{\noexpand\pgftransformshift{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
\fi%
}%
\def\tikz@lib@place@parse@nums#1{%
\pgfutil@in@{and}{#1}%
\ifpgfutil@in@%
\tikz@lib@place@parse@nums@#1\tikz@stop%
\else%
\tikz@lib@place@parse@nums@#1and#1\tikz@stop%
\pgf@x=\tikz@lib@place@single@factor\pgf@x%
\pgf@y=\tikz@lib@place@single@factor\pgf@y%
\fi
}%
\def\tikz@lib@place@parse@nums@#1and#2\tikz@stop{%
\pgfmathparse{#2}%
\ifpgfmathunitsdeclared%
\pgf@xa=\pgfmathresult pt%
\pgf@ya=0pt%
\else%
\let\tikz@lib@temp=\pgfmathresult%
\pgf@process{\pgfpointxy{\tikz@lib@temp}{0}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\fi%
\pgfmathparse{#1}%
\ifpgfmathunitsdeclared%
\advance\pgf@ya by\pgfmathresult pt%
\else%
\let\tikz@lib@temp=\pgfmathresult%
\pgf@process{\pgfpointxy{0}{\tikz@lib@temp}}%
\advance\pgf@xa by\pgf@x%
\advance\pgf@ya by\pgf@y%
\fi%
\pgf@x=\pgf@xa%
\pgf@y=\pgf@ya%
}%
\def\tikz@lib@place@of#1of #2\tikz@stop#3{%
\def\tikz@temp{#1}%
\ifx\tikz@temp\pgfutil@empty%
\tikz@lib@place@of@{\tikz@node@distance}{#2}{#3}%
\else%
\tikz@lib@place@of@{#1}{#2}{#3}%
\fi%
}%
\def\tikz@lib@place@of@#1#2#3{%
\tikz@scan@one@point\tikz@lib@place@remember(#2)%
\iftikz@shapeborder%
\iftikz@lib@ignore@size%
\edef\tikz@node@at{\noexpand\pgfpointanchor{\tikz@shapeborder@name}{center}}%
\def\tikz@anchor{center}%
\else%
\edef\tikz@node@at{\noexpand\pgfpointanchor{\tikz@shapeborder@name}{#3}}%
\fi%
\fi%
\edef\tikz@lib@place@nums{#1}%
}%
\def\tikz@lib@place@remember#1{\def\tikz@node@at{#1}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryquotes.code.tex ====
\ProvidesFileRCS{tikzlibraryquotes.code.tex}
\def\tikz@quote@parser#1{\tikz@quote@@parser#1\pgf@stop}%
\def\tikz@quote@@parser"#1"{%
\pgfutil@ifnextchar\bgroup{%
\tikz@quote@@parser@group{#1}}{%
\pgfutil@ifnextchar'{%
\tikz@quote@@parser@apo{#1}}{%
\tikz@quote@@parser@normal{#1}}}}%
\def\tikz@quote@@parser@apo#1'{%
\pgfutil@ifnextchar\bgroup{\tikz@quote@@parser@apo@group{#1}}{\tikz@quote@@parser@apo@normal{#1}}}%
\def\tikz@quote@@parser@group#1#2#3\pgf@stop{%
\expandafter\def\expandafter\tikz@temp\expandafter{\tikz@quotes@as{#1}{#2}}%
\expandafter\pgfkeysalso\expandafter{\tikz@temp}%
}%
\def\tikz@quote@@parser@normal#1#2\pgf@stop{%
\expandafter\def\expandafter\tikz@temp\expandafter{\tikz@quotes@as{#1}{#2}}%
\expandafter\pgfkeysalso\expandafter{\tikz@temp}%
}%
\def\tikz@quote@@parser@apo@group#1#2#3\pgf@stop{%
\expandafter\def\expandafter\tikz@temp\expandafter{\tikz@quotes@as{#1}{',#2}}%
\expandafter\pgfkeysalso\expandafter{\tikz@temp}%
}%
\def\tikz@quote@@parser@apo@normal#1#2\pgf@stop{%
\expandafter\def\expandafter\tikz@temp\expandafter{\tikz@quotes@as{#1}{',#2}}%
\expandafter\pgfkeysalso\expandafter{\tikz@temp}%
}%
\pgfkeys{/handlers/first char syntax=true}%
\def\tikz@enable@node@quotes{%
\pgfkeyssetvalue{/handlers/first char syntax/\expandafter\meaning\string"}{\tikz@quote@parser}%
\let\tikz@quotes@as\tikz@node@quotes@as%
}%
\def\tikz@enable@edge@quotes{%
\pgfkeyssetvalue{/handlers/first char syntax/\expandafter\meaning\string"}{\tikz@quote@parser}%
\let\tikz@quotes@as\tikz@edge@quotes@as%
}%
\def\tikz@enable@pic@quotes{%
\pgfkeyssetvalue{/handlers/first char syntax/\expandafter\meaning\string"}{\tikz@quote@parser}%
\let\tikz@quotes@as\tikz@pic@quotes@as%
}%
\tikzset{
node quotes mean/.code={\def\tikz@node@quotes@as##1##2{#1}},
edge quotes mean/.code={\def\tikz@edge@quotes@as##1##2{#1}},
pic quotes mean/.code={\def\tikz@pic@quotes@as##1##2{#1}},
quotes mean pin/.style={node quotes mean={
pin={[direction shorthands,every pin quotes/.try,##2]##1}}},
quotes mean label/.style={node quotes mean={
label={[direction shorthands,every label quotes/.try,##2]##1}}},
quotes mean label,
edge quotes mean={edge node={node [every edge quotes,#2]{#1}}},
pic quotes mean={pic text={#1},pic text options={every pic quotes/.try,#2}},
every edge quotes/.style={auto},
direction shorthands/.code={%
\pgfkeyslet{/tikz/centered/.@cmd}\tikz@label@@centered
\pgfkeyslet{/tikz/above/.@cmd}\tikz@label@@above
\pgfkeyslet{/tikz/below/.@cmd}\tikz@label@@below
\pgfkeyslet{/tikz/left/.@cmd}\tikz@label@@left
\pgfkeyslet{/tikz/right/.@cmd}\tikz@label@@right
\pgfkeyslet{/tikz/above left/.@cmd}\tikz@label@@above@left
\pgfkeyslet{/tikz/above right/.@cmd}\tikz@label@@above@right
\pgfkeyslet{/tikz/below left/.@cmd}\tikz@label@@below@left
\pgfkeyslet{/tikz/below right/.@cmd}\tikz@label@@below@right
}
}%
\def\tikz@label@@centered#1\pgfeov{\pgfkeysalso{label position=center,pin position=center}}%
\def\tikz@label@@above#1\pgfeov{\pgfkeysalso{label position=90,pin position=90}}%
\def\tikz@label@@below#1\pgfeov{\pgfkeysalso{label position=-90,pin position=-90}}%
\def\tikz@label@@left#1\pgfeov{\pgfkeysalso{label position=180,pin position=180}}%
\def\tikz@label@@right#1\pgfeov{\pgfkeysalso{label position=0,pin position=0}}%
\def\tikz@label@@above@left#1\pgfeov{\pgfkeysalso{label position=135,pin position=135}}%
\def\tikz@label@@below@left#1\pgfeov{\pgfkeysalso{label position=-135,pin position=-135}}%
\def\tikz@label@@above@right#1\pgfeov{\pgfkeysalso{label position=45,pin position=45}}%
\def\tikz@label@@below@right#1\pgfeov{\pgfkeysalso{label position=-45,pin position=-45}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryquotes.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryrdf.code.tex ====
\ProvidesFileRCS{tikzlibraryrdf.code.tex}
\def\tikz@add@rdf@pre@option#1{\expandafter\def\expandafter\tikz@rdf@pre@options\expandafter{\tikz@rdf@pre@options#1}}%
\def\tikz@add@rdf@post@option#1{\expandafter\def\expandafter\tikz@rdf@post@options\expandafter{\tikz@rdf@post@options#1}}%
\let\tikz@rdf@pre@options\pgfutil@empty
\let\tikz@rdf@post@options\pgfutil@empty
\tikzset{
rdf engine on/.code={%
\def\tikz@clear@rdf@options{\let\tikz@rdf@pre@options\pgfutil@empty\let\tikz@rdf@post@options\pgfutil@empty}%
\def\tikz@do@rdf@pre@options{\tikz@rdf@pre@options\let\tikz@rdf@pre@options\pgfutil@empty}%
\def\tikz@do@rdf@post@options{\tikz@rdf@post@options\let\tikz@rdf@post@options\pgfutil@empty}%
\pgfkeys{/tikz/rdf engine/.code=\tikz@add@rdf@pre@option{\pgfqkeys{/tikz/rdf engine}{##1}}}%
},
rdf engine/.cd,
every statement/.style=,
prefix/.code=\pgfrdfprefix{#1},
statement/.code={%
{%
\pgfkeys{/tikz/rdf engine/every statement}%
\pgfqkeys{/tikz/rdf engine/statements}{#1}%
\iftikz@rdf@is@a@container\tikz@rdf@init@container\fi%
\iftikz@rdf@is@a@member\tikz@rdf@make@member\fi%
\tikz@rdf@make@triple%
\expandafter}\tikz@rdf@action%
},
get scope curie/.code={%
\ifx\tikz@id@name\pgfutil@empty%
\def\tikz@id@name{@rdf}%
\fi%
\pgfidrefnextuse\tikz@temp{\tikz@id@name}%
\edef#1{\tikzrdfhashmark\tikz@temp}%
},
get new resource curie/.code={%
\pgfsys@new@id\tikz@temp%
\edef#1{\tikzrdfhashmark\tikz@temp}%
},
scope is new context/.style={get scope curie=\tikzrdfcontext}
}%
\def\tikzrdfcontext{\tikzrdfhashmark}%
\tikzset{
rdf engine/statements/.cd,
subject/.code={%
\def\tikz@rdf@target{\tikz@rdf@subject}%
\tikz@rdf@parse{#1}%
},
predicate/.code={%
\def\tikz@rdf@target{\tikz@rdf@predicate}%
\tikz@rdf@parse{#1}%
},
object/.code={%
\let\tikz@rdf@object@literal\relax%
\let\tikz@rdf@object\relax%
\def\tikz@temp{#1}%
\ifx\tikz@temp\tikz@rdf@current@scope@text%
\tikz@rdf@object@scope@contenttrue%
\else%
\tikz@rdf@object@scope@contentfalse%
\def\tikz@rdf@target{\tikz@rdf@object}%
\tikz@rdf@parse{#1}%
\fi%
},
has type/.style={predicate=rdf:type,object={#1}},
is a bag/.style={has type=rdf:Bag, is a container},
is a sequence/.style={has type=rdf:Seq, is a container},
is an alternative/.style={has type=rdf:Alt, is a container},
is a container/.code={\tikz@rdf@is@a@containertrue},
has as member/.code={\tikz@rdf@is@a@membertrue},%
}%
\def\tikz@rdf@current@scope@text{scope content}%
\let\tikz@rdf@subject\relax
\let\tikz@rdf@predicate\pgfutil@empty
\let\tikz@rdf@object\relax
\let\tikz@rdf@object@literal\relax
\let\tikz@rdf@container\relax
\newif\iftikz@rdf@object@scope@content
\newif\iftikz@rdf@is@a@container
\newif\iftikz@rdf@is@a@member
\def\tikz@rdf@parse#1{%
\edef\tikz@temp{#1}%
\expandafter\tikz@rdf@parse@#1\relax%
}%
\def\tikz@rdf@parse@{%
\pgfutil@ifnextchar({\tikz@rdf@parse@name}{%
\pgfutil@ifnextchar"{\tikz@rdf@parse@literals}{%
\tikz@rdf@parse@curie%
}%
}%
}%
\def\tikz@rdf@parse@name(#1)\relax{%
\pgfidrefprevuse\tikz@rdf@the@id{#1}\expandafter\edef\tikz@rdf@target{\tikzrdfhashmark\tikz@rdf@the@id}%
}%
\def\tikz@rdf@parse@literals"#1"{%
\ifx\tikz@rdf@target\tikz@rdf@object@name%
\def\tikz@rdf@object@literal{#1}%
\else%
\tikzerror{Only RDF objects can be literals}%
\fi%
\pgfutil@ifnextchar\relax\pgfutil@gobble\tikz@rdf@parse@literals@rest%
}%
\def\tikz@rdf@parse@literals@rest and scope content\relax{%
\tikz@rdf@object@scope@contenttrue%
}%
\def\tikz@rdf@object@name{\tikz@rdf@object}%
\def\tikz@rdf@parse@curie#1\relax{%
\expandafter\def\tikz@rdf@target{#1}%
}%
{%
\catcode`\#=11
\gdef\tikzrdfhashmark{#}%
}%
\def\tikz@rdf@make@triple{%
\ifx\tikz@rdf@subject\relax%
\tikzerror{RDF statement misses subject}%
\else%
\ifx\tikz@rdf@predicate\relax%
\tikzerror{RDF statement misses predicate}%
\else%
\iftikz@rdf@object@scope@content%
\edef\tikz@marshal{\noexpand\tikz@rdf@make@content@triple{\tikz@rdf@subject}{\tikz@rdf@predicate}{\tikz@rdf@object@literal}}%
\tikz@marshal%
\else%
\ifx\tikz@rdf@object\relax%
\ifx\tikz@rdf@object@literal\relax%
\tikzerror{RDF statement misses object}%
\else%
\edef\tikz@marshal{\noexpand\tikz@rdf@make@literal@triple{\tikz@rdf@subject}{\tikz@rdf@predicate}{\tikz@rdf@object@literal}}%
\tikz@marshal%
\fi%
\else%
\edef\tikz@marshal{\noexpand\tikz@rdf@make@normal@triple{\tikz@rdf@subject}{\tikz@rdf@predicate}{\tikz@rdf@object}}%
\tikz@marshal%
\fi%
\fi%
\fi%
\fi%
}%
\def\tikz@rdf@make@content@triple#1#2#3{%
\def\tikz@rdf@action{%
\def\tikz@rdf@invoke@code{%
\def\tikz@temp{#3}%
\ifx\tikz@temp\tikz@rdf@object@literal@text\else%
\pgfrdfcontent{#3}%
\fi%
\pgfrdfabout{#1}%
\pgfrdfdatatype{rdf:XMLLiteral}%
\foreach \tikz@rdf@pred in {#2}{%
\ifx\tikz@rdf@pred\pgfutil@empty\else%
\expandafter\pgfrdfproperty\expandafter{\tikz@rdf@pred}%
\fi%
}%
}%
}%
}%
\def\tikz@rdf@make@literal@triple#1#2#3{%
\def\tikz@rdf@action{%
\tikz@add@rdf@post@option{%
{%
\pgfrdfabout{#1}%
\foreach \tikz@rdf@pred in {#2}{%
\ifx\tikz@rdf@pred\pgfutil@empty\else%
\expandafter\pgfrdfproperty\expandafter{\tikz@rdf@pred}%
\fi%
}%
\pgfrdfcontent{#3}%
\pgfidscope%
\endpgfidscope%
}%
}%
}%
}%
\def\tikz@rdf@make@normal@triple#1#2#3{%
\def\tikz@rdf@action{%
\tikz@add@rdf@post@option{%
{%
\pgfrdfabout{#1}%
\foreach \tikz@rdf@pred in {#2}{%
\ifx\tikz@rdf@pred\pgfutil@empty\else%
\expandafter\pgfrdfproperty\expandafter{\tikz@rdf@pred}%
\fi%
}%
\pgfrdfresource{#3}%
\pgfidscope%
\endpgfidscope%
}%
}%
}%
}%
\def\tikz@rdf@object@literal@text{\tikz@rdf@object@literal}%
\def\tikz@rdf@init@container{%
\ifx\tikz@rdf@subject\relax%
\tikzerror{RDF statement misses subject}%
\else%
\expandafter\gdef\csname tikz@rdf@c@\tikz@rdf@subject\endcsname{0}%
\fi%
}%
\def\tikz@rdf@make@member{%
\ifx\tikz@rdf@subject\relax%
\tikzerror{RDF statement misses subject}%
\else%
\expandafter\let\expandafter\tikz@temp\csname tikz@rdf@c@\tikz@rdf@subject\endcsname%
\ifx\tikz@temp\relax%
\tikzerror{RDF subject is not a container}%
\else%
\c@pgf@counta\tikz@temp%
\advance\c@pgf@counta by1\relax%
\expandafter\xdef\csname tikz@rdf@c@\tikz@rdf@subject\endcsname{\the\c@pgf@counta}%
\edef\tikz@rdf@predicate{rdf:_\the\c@pgf@counta}%
\fi%
\fi%
}%
\let\tikz@rdf@invoke@code\relax
\def\tikz@rdf@id@hook{%
\tikz@rdf@invoke@code%
\let\tikz@rdf@invoke@code\relax%
}%
\expandafter\def\expandafter\tikz@id@hook\expandafter{\tikz@id@hook\tikz@rdf@id@hook}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryrdf.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryscopes.code.tex ====
\ProvidesFileRCS{tikzlibraryscopes.code.tex}
\def\tikz@lib@scope@check{%
\pgfutil@ifnextchar\tikz@intersect@finish{%
\tikz@intersect@finish\afterassignment\tikz@lib@scope@check\let\tikz@next%
}{%
\pgfutil@ifnextchar\par{%
\afterassignment\tikz@lib@scope@check\let\tikz@next%
}%
{\pgfutil@ifnextchar\bgroup{%
\afterassignment\tikz@lib@scope@gotcha\let\tikz@next%
}%
{}%
}%
}%
}%
\def\tikz@lib@scope@gotcha{%
\pgfutil@ifnextchar[{%
\tikz@lib@scope@action%
}{%
\bgroup%
}%
}%
\def\tikz@lib@scope@action[#1]{%
\scope[#1]\bgroup\aftergroup\endscope%
\tikz@lib@scope@check%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryscopes.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshadings.code.tex ====
\ProvidesFileRCS{tikzlibraryshadings.code.tex}
\usepgflibrary{shadings}%
\tikzset{
lower left/.style={shading=bilinear interpolation,/utils/exec=\colorlet{lower left}{#1}},
upper left/.style={shading=bilinear interpolation,/utils/exec=\colorlet{upper left}{#1}},
lower right/.style={shading=bilinear interpolation,/utils/exec=\colorlet{lower right}{#1}},
upper right/.style={shading=bilinear interpolation,/utils/exec=\colorlet{upper right}{#1}}
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshadings.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshadows.code.tex ====
\ProvidesFileRCS{tikzlibraryshadows.code.tex}
\usetikzlibrary{fadings}%
\tikzset{
/tikz/shadow scale/.initial=1,
/tikz/shadow xshift/.initial=0pt,
/tikz/shadow yshift/.initial=0pt,
}%
\tikzset{
general shadow/.style={
preaction={
#1,
transform canvas={
scale around=\pgfkeysvalueof{/tikz/shadow scale}:(current path bounding box.center),
shift={(\pgfkeysvalueof{/tikz/shadow xshift},\pgfkeysvalueof{/tikz/shadow yshift})}
},
}
},
every shadow/.style={}
}%
\tikzset{
/tikz/drop shadow/.style={
general shadow={%
shadow scale=1,
shadow xshift=.5ex,
shadow yshift=-.5ex,
opacity=.5,
fill=black!50,
every shadow,
#1
}
}
}%
\tikzset{
/tikz/circular drop shadow/.style={
general shadow={%
shadow scale=1.1,
shadow xshift=.3ex,
shadow yshift=-.3ex,
fill=black!50,
path fading={circle with fuzzy edge 15 percent},
every shadow,
#1
}
}
}%
\tikzset{
/tikz/circular glow/.style={
general shadow={%
shadow scale=1.25,
shadow xshift=0pt,
shadow yshift=0pt,
fill=black!50,
path fading={circle with fuzzy edge 15 percent},
every shadow,
#1,
}
}
}%
\tikzset{
/tikz/copy shadow/.style={
general shadow={%
/utils/exec={\let\tikz@lib@shadow@fill=\tikz@fillcolor\let\tikz@lib@shadow@draw=\tikz@strokecolor},
shadow scale=1,
shadow xshift=.5ex,
shadow yshift=.5ex,
fill=\tikz@lib@shadow@fill,
draw=\tikz@lib@shadow@draw,
every shadow,
#1
}
}
}%
\tikzset{
/tikz/double copy shadow/.style={
general shadow={%
/utils/exec={\let\tikz@lib@shadow@fill=\tikz@fillcolor\let\tikz@lib@shadow@draw=\tikz@strokecolor},
shadow scale=1,
shadow xshift=.5ex,
shadow yshift=.5ex,
fill=\tikz@lib@shadow@fill,
draw=\tikz@lib@shadow@draw,
#1,
shadow xshift/.expanded=2*\pgfkeysvalueof{/tikz/shadow xshift},
shadow yshift/.expanded=2*\pgfkeysvalueof{/tikz/shadow yshift},
},
general shadow={%
/utils/exec={\let\tikz@lib@shadow@fill=\tikz@fillcolor\let\tikz@lib@shadow@draw=\tikz@strokecolor},
shadow scale=1,
shadow xshift=.5ex,
shadow yshift=.5ex,
fill=\tikz@lib@shadow@fill,
draw=\tikz@lib@shadow@draw,
#1,
},
}
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshadows.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.arrows.code.tex ====
\ProvidesFileRCS{tikzlibraryshapes.arrows.code.tex}
\usepgflibrary{shapes.arrows}%
\pgfkeys{/tikz/arrow box arrows/.code={\pgf@lib@arrowbox@parsearrows{#1}}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.arrows.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.callouts.code.tex ====
\usepgflibrary{shapes.callouts}%
\pgfkeys{/tikz/callout absolute pointer/.code={%
\tikz@scan@one@point\tikz@lib@callout@checkforplus#1\relax%
}%
}%
\def\tikz@lib@callout@checkforplus#1{%
\pgfutil@ifnextchar+{\def\tikz@lib@callout@originalpoint{#1}\tikz@lib@callout@scan@relative}%
{\pgf@lib@callout@makeabsolutepointer{#1}}}%
\def\tikz@lib@callout@scan@relative+{%
\pgfutil@ifnextchar+{\tikz@lib@callout@scan@plusplus}{\tikz@lib@callout@scan@plus}}%
\def\tikz@lib@callout@scan@plusplus+{\tikz@scan@one@point\tikz@lib@callout@add}%
\def\tikz@lib@callout@scan@plus{\tikz@scan@one@point\tikz@lib@callout@add}%
\def\tikz@lib@callout@add#1{%
\expandafter\pgf@lib@callout@makeabsolutepointer\expandafter{%
\expandafter\pgfpointadd\expandafter{\tikz@lib@callout@originalpoint}{#1}}%
}%
\pgfkeys{/tikz/callout relative pointer/.code={%
\tikz@scan@one@point\pgf@lib@callout@makerelativepointer#1\relax%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.callouts.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.code.tex ====
\ProvidesFileRCS{tikzlibraryshapes.code.tex}
\usetikzlibrary{shapes.geometric}%
\usetikzlibrary{shapes.misc}%
\usetikzlibrary{shapes.symbols}%
\usetikzlibrary{shapes.arrows}%
\usetikzlibrary{shapes.callouts}%
\usetikzlibrary{shapes.multipart}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.gates.logic.IEC.code.tex ====
\ProvidesFileRCS{tikzlibraryshapes.gates.logic.IEC.code.tex}
\usepgflibrary{shapes.gates.logic.IEC}%
\tikzset{%
use IEC style logic gates/.code={%
\tikzset{%
and gate/.style={shape=and gate IEC},
nand gate/.style={shape=nand gate IEC},
or gate/.style={shape=or gate IEC},
nor gate/.style={shape=nor gate IEC},
xor gate/.style={shape=xor gate IEC},
xnor gate/.style={shape=xnor gate IEC},
not gate/.style={shape=not gate IEC},
buffer gate/.style={shape=buffer gate IEC},
and gate symbol/.style={and gate IEC symbol={##1}},
nand gate symbol/.style={nand gate IEC symbol={##1}},
or gate symbol/.style={or gate IEC symbol={##1}},
nor gate symbol/.style={nor gate IEC symbol={##1}},
xor gate symbol/.style={xor gate IEC symbol={##1}},
xnor gate symbol/.style={xnor gate IEC symbol={##1}},
not gate symbol/.style={not gate IEC symbol={##1}},
buffer gate symbol/.style={buffer gate IEC symbol={##1}},
logic gate symbol align/.style={/pgf/logic gate IEC symbol align={##1}},
logic gate symbol color/.style={/pgf/logic gate IEC symbol color={##1}}
}%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.gates.logic.IEC.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.gates.logic.US.code.tex ====
\ProvidesFileRCS{tikzlibraryshapes.gates.logic.US.code.tex}
\usepgflibrary{shapes.gates.logic.US}%
\tikzset{%
use US style logic gates/.code={%
\tikzset{%
and gate/.style={shape=and gate US},
nand gate/.style={shape=nand gate US},
or gate/.style={shape=or gate US},
nor gate/.style={shape=nor gate US},
xor gate/.style={shape=xor gate US},
xnor gate/.style={shape=xnor gate US},
not gate/.style={shape=not gate US},
buffer gate/.style={shape=buffer gate US}
}%
},
use CDH style logic gates/.code={%
\tikzset{%
and gate/.style={shape=and gate CDH},
nand gate/.style={shape=nand gate CDH},
or gate/.style={shape=or gate US},
nor gate/.style={shape=nor gate US},
xor gate/.style={shape=xor gate US},
xnor gate/.style={shape=xnor gate US},
not gate/.style={shape=not gate US},
buffer gate/.style={shape=buffer gate US}
}
}
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.gates.logic.US.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.geometric.code.tex ====
\ProvidesFileRCS{tikzlibraryshapes.geometric.code.tex}
\usepgflibrary{shapes.geometric}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.geometric.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.misc.code.tex ====
\ProvidesFileRCS{tikzlibraryshapes.misc.code.tex}
\usepgflibrary{shapes.misc}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.misc.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex ====
\ProvidesFileRCS{tikzlibraryshapes.multipart.code.tex}
\usepgflibrary{shapes.multipart}%
\pgfkeys{/tikz/rectangle split/parts/.code={%
\pgfkeys{/pgf/rectangle split parts={#1}}%
}%
}%
\pgfkeys{/tikz/rectangle split use custom fill/.code={%
\pgfkeys{/pgf/rectangle split use custom fill={#1}}%
\pgfkeys{/tikz/fill=none}}%
}%
\pgfkeys{/tikz/rectangle split draw splits/.is if=pgfrectanglesplitdrawsplits}%
\pgfkeys{/tikz/rectangle split part align/.code={%
\pgfkeys{/pgf/rectangle split part align={#1}}%
}%
}%
\pgfkeys{/tikz/rectangle split part fill/.code={%
\pgfkeys{/pgf/rectangle split part fill={#1}}%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.symbols.code.tex ====
\ProvidesFileRCS{tikzlibraryshapes.symbols.code.tex}
\pgfkeysifdefined{/tikz/shape border uses incircle}{}{%
\pgfkeys{/tikz/shape border uses incircle/.is if=pgfshapeborderusesincircle}}%
\usepgflibrary{shapes.symbols}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.symbols.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarysnakes.code.tex ====
\ProvidesFileRCS{tikzlibrarysnakes.code.tex}
\pgfwarning{Snakes have been superseded by
decorations. Please use the decoration libraries instead of the snakes
library}%
\usetikzlibrary{decorations.pathmorphing,decorations.pathreplacing,decorations.shapes}%
\tikzoption{snake}[]{%
\def\tikz@@snake{#1}%
\ifx\tikz@@snake\pgfutil@empty%
\tikz@snakedtrue%
\else%
\ifx\tikz@@snake\tikz@nonetext%
\tikz@snakedfalse%
\else%
\tikz@snakedtrue%
\let\tikz@snake=\tikz@@snake%
\fi%
\fi}%
\tikzoption{raise snake}{\def\pgf@snake@raise{\pgftransformyshift{#1}}}%
\tikzoption{mirror snake}[true]{%
\csname if#1\endcsname
\def\pgf@snake@mirror{\pgftransformyscale{-1}}%
\else%
\let\pgf@snake@mirror=\pgfutil@empty%
\fi
}%
\tikzoption{gap before snake}{\def\tikz@presnake{{moveto}{#1}{\noexpand\tikz@snake@install@trans}{}}}%
\tikzoption{line before snake}{\def\tikz@presnake{{lineto}{#1}{\noexpand\tikz@snake@install@trans}{}}}%
\tikzoption{gap after snake}{\def\tikz@postsnake{{moveto}{#1}{\noexpand\tikz@snake@install@trans}{}}\def\tikz@mainsnakelength{\pgfsnakeremainingdistance-#1}}%
\tikzoption{line after snake}{\def\tikz@postsnake{{lineto}{#1}{\noexpand\tikz@snake@install@trans}{}}\def\tikz@mainsnakelength{\pgfsnakeremainingdistance-#1}}%
\tikzoption{gap around snake}{%
\def\tikz@presnake{{moveto}{#1}{\noexpand\tikz@snake@install@trans}{}}%
\def\tikz@postsnake{{moveto}{#1}{\noexpand\tikz@snake@install@trans}{}}%
\def\tikz@mainsnakelength{\pgfsnakeremainingdistance-#1}%
}%
\tikzoption{line around snake}{%
\def\tikz@presnake{{lineto}{#1}{\noexpand\tikz@snake@install@trans}{}}%
\def\tikz@postsnake{{lineto}{#1}{\noexpand\tikz@snake@install@trans}{}}%
\def\tikz@mainsnakelength{\pgfsnakeremainingdistance-#1}%
}%
\let\pgf@snake@mirror=\pgfutil@empty
\let\pgf@snake@raise=\pgfutil@empty
\def\tikz@snake@install@trans{\pgfsetsnakesegmenttransformation{\pgf@snake@mirror\pgf@snake@raise}}%
\def\tikz@snake{zigzag}%
\let\tikz@presnake=\pgfutil@empty
\let\tikz@postsnake=\pgfutil@empty
\def\tikz@mainsnakelength{\pgfsnakeremainingdistance}%
\tikzset{snake triangles 45/.style= {snake=triangles,segment object length=2.41421356\pgfsnakesegmentamplitude}}%
\tikzset{snake triangles 60/.style= {snake=triangles,segment object length=1.73205081\pgfsnakesegmentamplitude}}%
\tikzset{snake triangles 90/.style= {snake=triangles,segment object length=\pgfsnakesegmentamplitude}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarysnakes.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryspy.code.tex ====
\ProvidesFileRCS{tikzlibraryspy.code.tex}
\tikzset{
spy using outlines/.style={
spy scope={
every spy on node/.style={very thin,draw},
every spy in node/.style={thick,draw},
#1
}
},
spy using overlays/.style={
spy scope={
every spy on node/.style={fill,fill opacity=0.2,text opacity=1},
every spy in node/.style={fill,fill opacity=0.2,text opacity=1},
#1
}
},
connect spies/.style={
spy connection path={\draw[thin] (tikzspyonnode) -- (tikzspyinnode);}
}
}%
\newbox\tikz@lib@spybox
\let\tikz@lib@spy@collection=\pgfutil@empty%
\tikzset{spy scope/.style={
size/.style={minimum size={##1}},
height/.style={minimum height={##1}},
width/.style={minimum width={##1}},
execute at begin scope={%
\let\tikz@lib@spy@save=\tikz@lib@spy@collection%
\setbox\tikz@lib@spybox=\hbox\bgroup\bgroup%
\let\spy=\tikz@lib@spy@parse},
execute at end scope={%
\egroup\egroup%
{%
\copy\tikz@lib@spybox%
\tikz@lib@spy@collection%
}%
\global\let\tikz@lib@spy@collection=\tikz@lib@spy@save%
},%
tikz@lib@spy@style/.style={#1},
tikz@lib@reset@gs
},
lens/.store in=\tikz@lib@spy@lens,
lens=,
magnification/.style={lens={scale={#1}}},
spy connection path/.store in=\tikz@lib@spy@path,
spy connection path=
}%
\tikzset{
tikz@lib@reset@gs/.style={black,thin,solid,opaque,line cap=butt,line join=miter}
}%
\def\tikz@lib@spy@parse{%
\pgfutil@ifnextchar[{\tikz@lib@spy@parse@opt}{\tikz@lib@spy@parse@opt[]}%
}%
\def\tikz@lib@spy@parse@opt[#1]{
\pgfutil@ifnextchar x{\tikz@lib@spy@parse@opta[#1]}{\tikz@lib@spy@parse@opta[#1]}%
}%
\def\tikz@lib@spy@parse@opta[#1]on#2in node#3;{%
\pgfutil@g@addto@macro\tikz@lib@spy@collection{\tikz@lib@spy@do{#1}{#2}{#3}}%
}%
\def\tikz@lib@spy@do#1#2#3{%
\scope[tikz@lib@spy@style,#1]
\node [alias=tikzspyonnode,inner sep=0pt,outer sep=0pt,every spy on node/.try,
/utils/exec={
{%
\let\tikz@transform=\relax
\pgftransformreset%
\expandafter\tikzset\expandafter{\tikz@lib@spy@lens}
\pgftransforminvert%
\pgfgettransformentries\a\b\c\d\e\f%
\global\let\pgf@lib@svg@a=\a%
\global\let\pgf@lib@svg@b=\b%
\global\let\pgf@lib@svg@c=\c%
\global\let\pgf@lib@svg@d=\d%
}%
\tikz@addtransform{%
\tikz@scan@one@point\pgftransformshift#2%
\pgftransformcm{\pgf@lib@svg@a}{\pgf@lib@svg@b}{\pgf@lib@svg@c}{\pgf@lib@svg@d}{\pgfpointorigin}%
}
}]{};
\expandafter\pgfutil@switch\expandafter\pgfutil@ifstrequal\expandafter{\tikz@anchor}{%
{north} {\def\tikz@spy@anchor{south}}%
{north east}{\def\tikz@spy@anchor{south west}}%
{east} {\def\tikz@spy@anchor{west}}%
{south east}{\def\tikz@spy@anchor{north west}}%
{south} {\def\tikz@spy@anchor{north}}%
{south west}{\def\tikz@spy@anchor{north east}}%
{west} {\def\tikz@spy@anchor{east}}%
{north west}{\def\tikz@spy@anchor{south east}}%
}{}{\def\tikz@spy@anchor{center}}%
\node [alias=tikzspyinnode,inner sep=0pt,outer sep=0pt,at={#2},every spy in node/.try,
path picture={\node[anchor=\tikz@spy@anchor,tikz@lib@reset@gs]{\nullfont%
\pgfpicture\relax\pgfsetbaseline{default}\pgfsettrimleft{default}\pgfsettrimright{default}%
\pgftransformreset%
\let\tikz@transform=\relax%
\expandafter\tikzset\expandafter{\tikz@lib@spy@lens}%
\pgflowlevelsynccm%
\tikz@scan@one@point\tikz@lib@spy@shift#2%
\pgflowlevelsynccm%
\copy\tikz@lib@spybox%
\endpgfpicture};}]#3{};
\tikz@lib@spy@path
\endscope
}%
\def\tikz@lib@spy@shift#1{%
\pgf@process{#1}%
\pgf@x=-\pgf@x%
\pgf@y=-\pgf@y%
\pgftransformshift{}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryspy.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarysvg.path.code.tex ====
\ProvidesFileRCS{tikzlibrarysvg.path.code.tex}
\usepgflibrary{svg.path}%
\def\tikz@svg@path vg{\pgfutil@ifnextchar[\tikz@svg@@path{\tikz@svg@@path[]}}%
\def\tikz@svg@@path[#1]{\pgfutil@ifnextchar"{\tikz@svg@@path@old{#1}}{\tikz@svg@@path@new{#1}}}%
\def\tikz@svg@@path@new#1#2{\tikz@svg@@path@old{#1}"#2"}%
\def\tikz@svg@@path@old#1"#2"{
{%
\tikzset{#1}%
\pgfpathsvg{#2}%
}%
{
\pgftransforminvert
\pgf@process{\pgfpointtransformed{\pgfqpoint{\pgf@path@lastx}{\pgf@path@lasty}}}
}
\tikz@lastx=\pgf@x%
\tikz@lasty=\pgf@y%
\tikz@lastxsaved=\tikz@lastx%
\tikz@lastysaved=\tikz@lasty%
\tikz@updatecurrenttrue%
\tikz@scan@next@command
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarysvg.path.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarythrough.code.tex ====
\ProvidesFileRCS{tikzlibrarythrough.code.tex}
\tikzset{circle through/.code={%
\pgfkeysalso{shape=circle,inner sep=0pt,outer sep=0pt}%
\pgfgettransform{\tikz@lib@saved@transform}%
\tikz@scan@one@point\tikz@lib@circle@through#1%
}}%
\def\tikz@lib@circle@through#1{%
\tikz@addoption{%
{%
\pgfsettransform{\tikz@lib@saved@transform}%
\pgf@process{\pgfpointtransformed{#1}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgfpointtransformed{\tikz@node@at}}%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\pgfmathparse{2*veclen(\the\pgf@xa,\the\pgf@ya)}%
\global\let\tikz@lib@circle@size=\pgfmathresult%
}%
\pgfset{/pgf/minimum size/.expanded=\tikz@lib@circle@size}%
}%
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarythrough.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex ====
\ProvidesFileRCS{tikzlibrarytopaths.code.tex}
\tikzset{move to/.style= {to path={(\tikztotarget) \tikztonodes}}}
\tikzset{line to/.style= {to path={-- (\tikztotarget) \tikztonodes}}}
\tikzset{every curve to/.style= {}}
\tikzset{curve to/.style= {to path=\tikz@to@curve@path}}
\tikzoption{bend angle}{\pgfmathsetmacro\tikz@to@bend{#1}}
\tikzoption{bend left}[]{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgfutil@empty%
\else%
\pgfmathsetmacro\tikz@to@bend{#1}%
\fi%
\let\tikz@to@out=\tikz@to@bend%
\pgfmathsetmacro\tikz@to@in{180-(\tikz@to@out)}%
\tikz@to@switch@on%
\tikz@to@relativetrue%
}
\tikzoption{bend right}[]{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgfutil@empty%
\else%
\pgfmathsetmacro\tikz@to@bend{#1}%
\fi%
\pgfmathsetmacro\tikz@to@out{-(\tikz@to@bend)}
\pgfmathsetmacro\tikz@to@in{180-(\tikz@to@out)}
\tikz@to@switch@on%
\tikz@to@relativetrue%
}
\tikzoption{relative}[true]{\csname tikz@to@relative#1\endcsname}
\newif\iftikz@to@relative
\tikz@to@relativefalse
\tikzoption{in}{\def\tikz@to@in{#1}\tikz@to@switch@on}
\tikzoption{out}{\def\tikz@to@out{#1}\tikz@to@switch@on}
\tikzoption{in looseness}{\tikz@to@set@in@looseness{#1}}
\tikzoption{out looseness}{\tikz@to@set@out@looseness{#1}}
\tikzoption{looseness}{\tikz@to@set@in@looseness{#1}\tikz@to@set@out@looseness{#1}}
\tikzoption{in control}{\tikz@to@set@in@control{#1}}
\tikzoption{out control}{\tikz@to@set@out@control{#1}}
\tikzoption{controls}{\tikz@to@parse@controls#1\pgf@stop}
\tikzoption{in min distance}{\tikz@to@set@distances{#1}{}{}{}}
\tikzoption{in max distance}{\tikz@to@set@distances{}{#1}{}{}}
\tikzoption{in distance}{\tikz@to@set@distances{#1}{#1}{}{}}
\tikzoption{out min distance}{\tikz@to@set@distances{}{}{#1}{}}
\tikzoption{out max distance}{\tikz@to@set@distances{}{}{}{#1}}
\tikzoption{out distance}{\tikz@to@set@distances{}{}{#1}{#1}}
\tikzoption{min distance}{\tikz@to@set@distances{#1}{}{#1}{}}
\tikzoption{max distance}{\tikz@to@set@distances{}{#1}{}{#1}}
\tikzoption{distance}{\tikz@to@set@distances{#1}{#1}{#1}{#1}}
\def\tikz@to@set@distances#1#2#3#4{%
\tikz@to@setifnotempy{#1}{\tikz@to@in@min}{\let\tikz@to@end@compute=\tikz@to@end@compute@looseness}%
\tikz@to@setifnotempy{#2}{\tikz@to@in@max}{\let\tikz@to@end@compute=\tikz@to@end@compute@looseness}%
\tikz@to@setifnotempy{#3}{\tikz@to@out@min}{\let\tikz@to@start@compute=\tikz@to@start@compute@looseness}%
\tikz@to@setifnotempy{#4}{\tikz@to@out@max}{\let\tikz@to@start@compute=\tikz@to@start@compute@looseness}%
\tikz@to@switch@on%
}
\def\tikz@to@setifnotempy#1#2#3{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgfutil@empty\else\def#2{#1}#3\fi%
}
\def\tikz@to@set@in@looseness#1{%
\pgfmathsetmacro\tikz@to@in@looseness{#1}%
\let\tikz@to@end@compute=\tikz@to@end@compute@looseness%
\tikz@to@switch@on%
}
\def\tikz@to@set@out@looseness#1{%
\pgfmathsetmacro\tikz@to@out@looseness{#1}%
\let\tikz@to@start@compute=\tikz@to@start@compute@looseness%
\tikz@to@switch@on%
}
\def\tikz@to@parse@controls#1and#2\pgf@stop{\tikz@to@set@in@control{#2}\tikz@to@set@out@control{#1}}
\def\tikz@to@set@in@control#1{%
\def\tikz@to@in@control{#1}%
\let\tikz@to@end@compute=\tikz@to@end@compute@control%
\tikz@to@switch@on%
}
\def\tikz@to@set@out@control#1{%
\def\tikz@to@out@control{#1}%
\let\tikz@to@start@compute=\tikz@to@start@compute@control%
\tikz@to@switch@on%
}
\def\tikz@to@bend{30}
\def\tikz@to@out{45}
\def\tikz@to@in{135}
\def\tikz@to@out@looseness{1}
\def\tikz@to@in@looseness{1}
\def\tikz@to@in@min{0pt}
\def\tikz@to@in@max{10000pt}
\def\tikz@to@out@min{0pt}
\def\tikz@to@out@max{10000pt}
\def\tikz@to@switch@on{\let\tikz@to@path=\tikz@to@curve@path}
\def\tikz@to@curve@path{%
[every curve to]
\pgfextra{\iftikz@to@relative\tikz@to@compute@relative\else\tikz@to@compute\fi}
\tikz@computed@path
\pgfextra{\tikz@updatenexttrue\tikz@updatecurrenttrue}%
\tikztonodes%
}
\def\tikz@to@modify#1#2{%
\pgfutil@ifundefined{pgf@sh@ns@#1}
{}%
{\edef#1{#1.#2}}
}%
\def\tikz@to@compute{%
\let\tikz@tofrom=\tikztostart%
\let\tikz@toto=\tikztotarget%
\tikz@to@modify\tikz@tofrom\tikz@to@out%
\tikz@to@modify\tikz@toto\tikz@to@in%
\ifx\tikz@to@start@compute\tikz@to@start@compute@looseness%
\tikz@to@compute@distance%
\else%
\ifx\tikz@from@start@compute\tikz@to@start@compute@looseness%
\tikz@to@compute@distance%
\fi%
\fi%
\tikz@to@start@compute%
\tikz@to@end@compute%
\edef\tikz@computed@path{.. controls \tikz@computed@start and \tikz@computed@end .. (\tikztotarget)}
}
\def\tikz@to@compute@distance{\tikz@scan@one@point\tikz@@to@compute@distance(\tikz@tofrom)}
\def\tikz@@to@compute@distance#1{%
\def\tikz@first@point{#1}%
\tikz@scan@one@point\tikz@@@to@compute@distance(\tikz@toto)}
\def\tikz@@@to@compute@distance#1{%
\iftikz@updatecurrent\else
\tikz@updatenextfalse
\fi
\def\tikz@second@point{#1}%
\tikz@to@compute@distance@main%
}
\def\tikz@to@compute@distance@main{%
\pgf@process{\pgfpointdiff{\tikz@first@point}{\tikz@second@point}}%
\ifdim\pgf@x<0pt\pgf@xa=-\pgf@x\else\pgf@xa=\pgf@x\fi%
\ifdim\pgf@y<0pt\pgf@ya=-\pgf@y\else\pgf@ya=\pgf@y\fi%
\pgf@process{\pgfpointnormalised{\pgfqpoint{\pgf@xa}{\pgf@ya}}}%
\ifdim\pgf@x>\pgf@y%
\c@pgf@counta=\pgf@x%
\ifnum\c@pgf@counta=0\relax%
\else%
\divide\c@pgf@counta by 255\relax%
\pgf@xa=16\pgf@xa\relax%
\divide\pgf@xa by\c@pgf@counta%
\pgf@xa=16\pgf@xa\relax%
\fi%
\else%
\c@pgf@counta=\pgf@y%
\ifnum\c@pgf@counta=0\relax%
\else%
\divide\c@pgf@counta by 255\relax%
\pgf@ya=16\pgf@ya\relax%
\divide\pgf@ya by\c@pgf@counta%
\pgf@xa=16\pgf@ya\relax%
\fi%
\fi%
\pgf@x=0.3915\pgf@xa%
\pgf@xa=\tikz@to@out@looseness\pgf@x%
\pgf@xb=\tikz@to@in@looseness\pgf@x%
\pgfmathsetlength{\pgf@ya}{\tikz@to@out@min}
\ifdim\pgf@xa<\pgf@ya%
\pgf@xa=\pgf@ya%
\fi%
\pgfmathsetlength{\pgf@ya}{\tikz@to@out@max}
\ifdim\pgf@xa>\pgf@ya%
\pgf@xa=\pgf@ya%
\fi%
\pgfmathsetlength{\pgf@ya}{\tikz@to@in@min}
\ifdim\pgf@xb<\pgf@ya%
\pgf@xb=\pgf@ya%
\fi%
\pgfmathsetlength{\pgf@ya}{\tikz@to@in@max}
\ifdim\pgf@xb>\pgf@ya%
\pgf@xb=\pgf@ya%
\fi%
}
\def\tikz@to@start@compute@looseness{%
\edef\tikz@computed@start{([shift=({\tikz@to@out}:\the\pgf@xa)]\tikz@tofrom)}%
}
\def\tikz@to@end@compute@looseness{%
\edef\tikz@computed@end{([shift=({\tikz@to@in}:\the\pgf@xb)]\tikz@toto)}%
}
\def\tikz@to@start@compute@control{%
\let\tikz@computed@start=\tikz@to@out@control%
}
\def\tikz@to@end@compute@control{%
\let\tikz@computed@end=\tikz@to@in@control%
}
\let\tikz@to@start@compute=\tikz@to@start@compute@looseness%
\let\tikz@to@end@compute=\tikz@to@end@compute@looseness%
\def\tikz@to@compute@relative{%
\tikz@scan@one@point\tikz@@to@compute@relative(\tikztostart)%
}
\def\tikz@@to@compute@relative#1{%
\def\tikz@tofrom{#1}%
\tikz@scan@one@point\tikz@@@to@compute@relative(\tikztotarget)%
}
\def\tikz@@@to@compute@relative#1{%
\def\tikz@toto{#1}%
\begingroup
\pgfutil@ifundefined{pgf@sh@ns@\tikztostart}
{%
\let\tikz@first@point=\tikz@tofrom%
\let\tikz@tostart@tikz=\pgfutil@empty
}%
{%
{%
\tikz@tofrom%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
{%
\pgftransformreset%
\pgftransformshift{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
\pgftransformrotate{\tikz@to@out}%
\pgftransformshift{\pgfqpoint{-\pgf@xc}{-\pgf@yc}}%
\pgf@process{\pgfpointtransformed{\tikz@toto}}%
}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfpointshapeborder{\tikztostart}{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
\xdef\tikz@tofrom@smuggle{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
}%
\let\tikz@first@point=\tikz@tofrom@smuggle%
\tikz@first@point%
\edef\tikz@tostart@tikz{(\the\pgf@x,\the\pgf@y)}%
}%
\pgfutil@ifundefined{pgf@sh@ns@\tikztotarget}
{%
\let\tikz@second@point=\tikz@toto%
}%
{%
{%
\tikz@toto%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
{%
\pgftransformreset%
\pgftransformshift{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
\pgftransformrotate{180}%
\pgftransformrotate{\tikz@to@in}%
\pgftransformshift{\pgfqpoint{-\pgf@xc}{-\pgf@yc}}%
\pgf@process{\pgfpointtransformed{\tikz@tofrom}}%
}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfpointshapeborder{\tikztotarget}{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
\xdef\tikz@toto@smuggle{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
}%
\let\tikz@second@point=\tikz@toto@smuggle%
}%
\tikz@second@point%
\edef\tikz@totarget@tikz{(\the\pgf@x,\the\pgf@y)}%
\tikz@to@compute@distance@main%
\edef\tikz@to@first@distance{\the\pgf@xa}%
\edef\tikz@to@second@distance{\the\pgf@xb}%
\pgftransformreset%
\pgf@process{\tikz@first@point}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\tikz@second@point}%
\advance\pgf@x by-\pgf@xa%
\advance\pgf@y by-\pgf@ya%
\pgfpointnormalised{}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@xb=-\pgf@x%
\pgf@yb=-\pgf@y%
{%
\pgftransformshift{\tikz@first@point}%
\pgftransformcm{\pgf@sys@tonumber\pgf@xc}{\pgf@sys@tonumber\pgf@yc}{\pgf@sys@tonumber\pgf@yb}{\pgf@sys@tonumber\pgf@xc}%
{\pgfpointorigin}%
\pgf@process{\pgfpointtransformed{\pgfpointpolar{\tikz@to@out}{\tikz@to@first@distance}}}%
\xdef\tikz@computed@start{(\the\pgf@x,\the\pgf@y)}%
}
{%
\pgftransformshift{\tikz@second@point}%
\pgftransformcm{\pgf@sys@tonumber\pgf@xc}{\pgf@sys@tonumber\pgf@yc}{\pgf@sys@tonumber\pgf@yb}{\pgf@sys@tonumber\pgf@xc}%
{\pgfpointorigin}%
\pgf@process{\pgfpointtransformed{\pgfpointpolar{\tikz@to@in}{\tikz@to@second@distance}}}%
\xdef\tikz@computed@end{(\the\pgf@x,\the\pgf@y)}%
}
\xdef\tikz@computed@path{
\tikz@tostart@tikz
.. controls \tikz@computed@start and \tikz@computed@end ..
\tikz@totarget@tikz}%
\endgroup
}
\tikzset{loop/.style= {to path={
\pgfextra{\let\tikztotarget=\tikztostart}
[looseness=8,min distance=5mm,every loop]
\tikz@to@curve@path
}}}
\tikzset{every loop/.style= {->,shorten >=1pt}}
\tikzset{loop right/.style= {right,out=15,in=-15,loop}}
\tikzset{loop above/.style= {above,out=105,in=75,loop}}
\tikzset{loop left/.style= {left,out=195,in=165,loop}}
\tikzset{loop below/.style= {below,out=285,in=255,loop}}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytrees.code.tex ====
\ProvidesFileRCS{tikzlibrarytrees.code.tex}
\tikzoption{grow via three points}{\let\tikz@grow=\tikz@grow@three\tikz@parse@three#1}%
\def\tikz@parse@three one child at#1(#2)#3and two children at#4(#5)#6and#7(#8){%
\def\tikz@tree@one@child{\tikz@scan@one@point\pgf@process(#2)}
\def\tikz@tree@left@child{\tikz@scan@one@point\pgf@process(#5)}
\def\tikz@tree@right@child{\tikz@scan@one@point\pgf@process(#8)}
}%
\def\tikz@grow@three{%
\pgf@process{\tikz@tree@one@child}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\tikz@tree@left@child}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\advance\pgf@xb by-\pgf@xa%
\advance\pgf@yb by-\pgf@ya%
\pgf@process{\tikz@tree@right@child}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\advance\pgf@xc by-\pgf@xa%
\advance\pgf@yc by-\pgf@ya%
\advance\pgf@xc by-\pgf@xb%
\advance\pgf@yc by-\pgf@yb%
\advance\tikznumberofchildren by-1\relax%
\pgf@xb=\tikznumberofchildren\pgf@xb\relax%
\pgf@yb=\tikznumberofchildren\pgf@yb\relax%
\advance\tikznumberofcurrentchild by-1\relax%
\pgf@xc=\tikznumberofcurrentchild\pgf@xc\relax%
\pgf@yc=\tikznumberofcurrentchild\pgf@yc\relax%
\advance\pgf@xa by\pgf@xb%
\advance\pgf@xa by\pgf@xc%
\advance\pgf@ya by\pgf@yb%
\advance\pgf@ya by\pgf@yc%
\edef\pgf@temp{\noexpand\pgftransformshift{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}}%
\pgf@temp%
}%
\tikzset{
grow cyclic/.style={
edge from parent/.append style={reset cm},
growth function=\tikz@grow@circle,
}
}%
\tikzset{sibling angle/.initial=20}%
\def\tikz@grow@circle{%
\pgftransformrotate{%
(\pgfkeysvalueof{/tikz/sibling angle})*(-.5-.5*\tikznumberofchildren+\tikznumberofcurrentchild)}%
\pgftransformxshift{\the\tikzleveldistance}%
}%
\tikzoption{counterclockwise from}{\let\tikz@grow=\tikz@grow@circle@from\def\tikz@grow@circle@from@start{#1}}%
\def\tikz@grow@circle@from{%
\pgftransformshift{\pgfpointpolar{\tikz@grow@circle@from@start+(\pgfkeysvalueof{/tikz/sibling angle})*(\tikznumberofcurrentchild-1)}{\the\tikzleveldistance}}%
}%
\tikzoption{clockwise from}{\let\tikz@grow=\tikz@grow@circle@from@\def\tikz@grow@circle@from@start{#1}}%
\def\tikz@grow@circle@from@{%
\pgftransformshift{\pgfpointpolar{\tikz@grow@circle@from@start-(\pgfkeysvalueof{/tikz/sibling angle})*(\tikznumberofcurrentchild-1)}{\the\tikzleveldistance}}%
}%
\tikzset{edge from parent fork down/.style=
{edge from parent path={(\tikzparentnode\tikzparentanchor) -- +(0pt,-.5\tikzleveldistance) -| (\tikzchildnode\tikzchildanchor)}}}%
\tikzset{edge from parent fork up/.style=
{edge from parent path={(\tikzparentnode\tikzparentanchor) -- +(0pt,.5\tikzleveldistance) -| (\tikzchildnode\tikzchildanchor)}}}%
\tikzset{edge from parent fork left/.style=
{edge from parent path={(\tikzparentnode\tikzparentanchor) -- +(-.5\tikzleveldistance,0pt) |- (\tikzchildnode\tikzchildanchor)}}}%
\tikzset{edge from parent fork right/.style=
{edge from parent path={(\tikzparentnode\tikzparentanchor) -- +(.5\tikzleveldistance,0pt) |- (\tikzchildnode\tikzchildanchor)}}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytrees.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryturtle.code.tex ====
\ProvidesFileRCS{tikzlibraryturtle.code.tex}
\tikzset{turtle/.style={/tikz/turtle/.cd,#1}}%
\tikzset{turtle/direction/.code=\gdef\tikz@lib@turtle@dir{#1},turtle/direction=90}%
\tikzset{turtle/distance/.initial=1cm}%
\tikzset{turtle/how/.style=}%
\tikzset{turtle/home/.style={/tikz/insert path={(0,0) [turtle/direction=90]}}}%
\tikzset{
turtle/forward/.default=\pgfkeysvalueof{/tikz/turtle/distance},
turtle/forward/.style={/tikz/insert path={to[/tikz/turtle/how]++({\tikz@lib@turtle@dir}:{#1})}}
}%
\tikzset{
turtle/back/.default=\pgfkeysvalueof{/tikz/turtle/distance},
turtle/back/.style={turtle forward={-(#1)}}
}%
\tikzset{
turtle/left/.default=90,
turtle/left/.code={%
\pgfmathparse{(#1)+(\tikz@lib@turtle@dir)}%
\ifdim\pgfmathresult pt>360pt\relax%
\pgfmathparse{\pgfmathresult-360}%
\fi%
\global\let\tikz@lib@turtle@dir\pgfmathresult
}
}%
\tikzset{
turtle/right/.default=90,
turtle/right/.code={%
\pgfmathparse{#1}
\pgfmathparse{(\tikz@lib@turtle@dir)-\pgfmathresult}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathparse{\pgfmathresult+360}%
\fi%
\global\let\tikz@lib@turtle@dir\pgfmathresult
}
}%
\tikzset{turtle/.cd,
fd/.style={forward={#1}},
fd/.default=\pgfkeysvalueof{/tikz/turtle/distance},
bk/.style={back={#1}},
bk/.default=\pgfkeysvalueof{/tikz/turtle/distance},
lt/.style={left={#1}},
lt/.default=90,
rt/.style={right={#1}},
rt/.default=90}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryturtle.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryviews.code.tex ====
\ProvidesFileRCS{tikzlibraryviews.code.tex}
\tikzset{
meet/.style={execute at begin scope={\tikz@lib@view@parse{meet}#1\pgf@stop},execute at end scope={\endpgfviewboxscope}},
view/.style={meet = {#1}},
slice/.style={execute at begin scope={\tikz@lib@view@parse{slice}#1\pgf@stop},execute at end scope={\endpgfviewboxscope}},
}%
\def\tikz@lib@view@parse#1#2\pgf@stop{%
\tikz@scan@one@point\tikz@lib@view@a#2\pgf@stop%
\pgfviewboxscope{\tikz@lib@view@stored@a}{\tikz@lib@view@stored@b}{\tikz@lib@view@stored@c}{\tikz@lib@view@stored@d}{#1}%
}%
\def\tikz@lib@view@a#1{%
\def\tikz@lib@view@stored@a{#1}%
\pgfutil@ifnextchar r{\tikz@lib@view@a@rec}{\tikz@scan@one@point\tikz@lib@view@b}%
}%
\def\tikz@lib@view@a@rec rectangle{\tikz@scan@one@point\tikz@lib@view@b}%
\def\tikz@lib@view@b#1{%
\def\tikz@lib@view@stored@b{#1}%
\pgfutil@ifnextchar\pgf@stop{%
\let\tikz@lib@view@stored@c\tikz@lib@view@stored@a%
\let\tikz@lib@view@stored@d\tikz@lib@view@stored@b%
\pgfutil@gobble%
}{\tikz@lib@view@b@at}%
}%
\def\tikz@lib@view@b@at at{\tikz@scan@one@point\tikz@lib@view@c}%
\def\tikz@lib@view@c#1{%
\def\tikz@lib@view@stored@c{#1}%
\pgfutil@ifnextchar r{\tikz@lib@view@c@rec}{\tikz@scan@one@point\tikz@lib@view@d}%
}%
\def\tikz@lib@view@c@rec rectangle{\tikz@scan@one@point\tikz@lib@view@d}%
\def\tikz@lib@view@d#1{\def\tikz@lib@view@stored@d{#1}\pgfutil@ifnextchar\pgf@stop\pgfutil@gobble{\tikzerror{Wrong syntax for meet or slice key}}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryviews.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex ====
\ProvidesPackageRCS{tikz.code.tex}
\def\tikzerror#1{\pgfutil@packageerror{tikz}{#1}{}}
\usepgflibrary{plothandlers}
\newdimen\tikz@lastx
\newdimen\tikz@lasty
\newdimen\tikz@lastxsaved
\newdimen\tikz@lastysaved
\newdimen\tikz@lastmovetox
\newdimen\tikz@lastmovetoy
\newdimen\tikzleveldistance
\newdimen\tikzsiblingdistance
\newbox\tikz@figbox
\newbox\tikz@figbox@bg
\newbox\tikz@tempbox
\newbox\tikz@tempbox@bg
\newcount\tikztreelevel
\newcount\tikznumberofchildren
\newcount\tikznumberofcurrentchild
\newcount\tikz@fig@count
\newif\iftikz@node@is@a@label
\newif\iftikz@snaked
\newif\iftikz@decoratepath
\let\tikz@options\pgfutil@empty
\def\tikz@addoption#1{%
\expandafter\def\expandafter\tikz@options\expandafter{\tikz@options#1}}%
\def\tikz@addmode#1{%
\expandafter\def\expandafter\tikz@mode\expandafter{\tikz@mode#1}}%
\def\tikz@addtransform#1{%
\ifx\tikz@transform\relax
#1%
\else
\expandafter\def\expandafter\tikz@transform\expandafter{\tikz@transform#1}%
\fi
}%
\pgfkeys{/tikz/.is family}%
\def\tikzset{\pgfqkeys{/tikz}}%
\def\tikzoption#1{%
\pgfutil@ifnextchar[%
{\tikzoption@opt{#1}}{\tikzoption@noopt{#1}}}%
\def\tikzoption@opt#1[#2]#3{%
\pgfkeysdef{/tikz/#1}{#3}%
\pgfkeyssetvalue{/tikz/#1/.@def}{#2}}%
\def\tikzoption@noopt#1#2{%
\pgfkeysdef{/tikz/#1}{#2}%
\pgfkeyssetvalue{/tikz/#1/.@def}{\pgfkeysvaluerequired}}%
\tikzoption{baseline}[0pt]{%
\pgfutil@ifnextchar(%
{\tikz@baseline@coordinate}{\tikz@baseline@simple}#1\@nil}%
\def\tikz@baseline@simple#1\@nil{\pgfsetbaseline{#1}}%
\def\tikz@baseline@coordinate#1\@nil{%
\pgfsetbaselinepointlater{\tikz@scan@one@point\pgfutil@firstofone#1}}%
\tikzoption{trim left}[0pt]{\pgfutil@ifnextchar({\tikz@trim@coordinate{left}}{\tikz@trim@simple{left}}#1\@nil}%
\tikzoption{trim right}{\pgfutil@ifnextchar({\tikz@trim@coordinate{right}}{\tikz@trim@simple{right}}#1\@nil}%
\def\tikz@trim@simple#1#2\@nil{\csname pgfsettrim#1\endcsname{#2}}%
\def\tikz@trim@coordinate#1#2\@nil{\csname pgfsettrim#1pointlater\endcsname{\tikz@scan@one@point\pgfutil@firstofone#2}}%
\tikzoption{line width}{\tikz@semiaddlinewidth{#1}}%
\def\tikz@semiaddlinewidth#1{\tikz@addoption{\pgfsetlinewidth{#1}}\pgfmathsetlength\pgflinewidth{#1}}%
\tikzoption{cap}{\tikz@addoption{\csname pgfset#1cap\endcsname}}%
\tikzoption{join}{\tikz@addoption{\csname pgfset#1join\endcsname}}%
\tikzoption{line cap}{\tikz@addoption{\csname pgfset#1cap\endcsname}}%
\tikzoption{line join}{\tikz@addoption{\csname pgfset#1join\endcsname}}%
\tikzoption{miter limit}{\tikz@addoption{\pgfsetmiterlimit{#1}}}%
\tikzoption{dash pattern}{%
\def\tikz@temp{#1}%
\ifx\tikz@temp\pgfutil@empty%
\def\tikz@dashpattern{}%
\tikz@addoption{\pgfsetdash{}{0pt}}%
\else%
\def\tikz@dashpattern{}%
\expandafter\tikz@scandashon\pgfutil@gobble#1o\@nil%
\edef\tikz@temp{{\tikz@dashpattern}{\noexpand\tikz@dashphase}}%
\expandafter\tikz@addoption\expandafter{\expandafter\pgfsetdash\tikz@temp}%
\fi}%
\tikzoption{dash phase}{%
\def\tikz@dashphase{#1}%
\edef\tikz@temp{{\tikz@dashpattern}{\noexpand\tikz@dashphase}}%
\expandafter\tikz@addoption\expandafter{\expandafter\pgfsetdash\tikz@temp}%
}%
\tikzoption{dash}{\tikz@parse@full@dash#1\pgf@stop}%
\def\tikz@parse@full@dash#1phase#2\pgf@stop{%
\def\tikz@dashphase{#2}%
\def\tikz@temp{#1}%
\ifx\tikz@temp\pgfutil@empty%
\def\tikz@dashpattern{}%
\tikz@addoption{\pgfsetdash{}{0pt}}%
\else%
\def\tikz@dashpattern{}%
\expandafter\tikz@scandashon\pgfutil@gobble#1o\@nil%
\edef\tikz@temp{{\tikz@dashpattern}{\noexpand\tikz@dashphase}}%
\expandafter\tikz@addoption\expandafter{\expandafter\pgfsetdash\tikz@temp}%
\fi%
}%
\def\tikz@dashphase{0pt}%
\def\tikz@dashpattern{}%
\def\tikz@scandashon n#1o{%
\expandafter\def\expandafter\tikz@dashpattern\expandafter{\tikz@dashpattern{#1}}%
\pgfutil@ifnextchar\@nil{\pgfutil@gobble}{\tikz@scandashoff}}%
\def\tikz@scandashoff ff#1o{%
\expandafter\def\expandafter\tikz@dashpattern\expandafter{\tikz@dashpattern{#1}}%
\pgfutil@ifnextchar\@nil{\pgfutil@gobble}{\tikz@scandashon}}%
\tikzset{
dash expand off/.code={%
\ifcsname tikz@library@decorations@loaded\endcsname\else
\tikzerror{You need \string\usetikzlibrary{decorations} for ``dash expand off''}%
\fi
\tikz@addoption{%
\pgfgetpath\currentpath
\pgfprocessround{\currentpath}{\currentpath}%
\pgf@decorate@parsesoftpath{\currentpath}{\currentpath}%
\pgfmathsetmacro\on{\expandafter\pgfutil@firstoftwo\tikz@dashpattern}%
\pgfmathsetmacro\off{\expandafter\pgfutil@secondoftwo\tikz@dashpattern}%
\pgfmathsetmacro\tikz@dashphase{\tikz@dashphase}%
\pgfmathsubtract@{\on}{\tikz@dashphase}%
\pgfmathmax@{\pgfmathresult,0}%
\let\dashphase=\pgfmathresult
\edef\rest{\pgf@sys@tonumber\dimexpr\pgf@decorate@totalpathlength - \on pt + 2\dimexpr\dashphase pt\relax\relax}%
\edef\onoff{\pgf@sys@tonumber\dimexpr\on pt+\off pt\relax}%
\pgfmathdivide@{\rest}{\onoff}%
\pgfmathfloor@{\pgfmathresult}%
\pgfmathmax@{\pgfmathresult,1}%
\pgfmathdivide@{\rest}{\pgfmathresult}%
\pgfmathsubtract@{\pgfmathresult}{\on}%
\pgfmathmax@{\pgfmathresult,\off}%
\edef\tikz@marshal{\noexpand\pgfsetdash{{+\on pt}{+\pgfmathresult pt}}{+\dashphase pt}}%
\tikz@marshal
}%
}
}
\tikzoption{draw opacity}{\tikz@addoption{\pgfsetstrokeopacity{#1}}}%
\tikzoption{double}[]{%
\def\tikz@temp{#1}%
\ifx\tikz@temp\tikz@nonetext%
\tikz@addmode{\tikz@mode@doublefalse}%
\else%
\ifx\tikz@temp\pgfutil@empty%
\else%
\pgfsetinnerstrokecolor{#1}%
\fi%
\tikz@addmode{\tikz@mode@doubletrue}%
\tikzset{every double/.try}%
\fi}%
\tikzoption{double distance}{%
\pgfmathsetlength{\pgf@x}{#1}%
\edef\tikz@double@setup{%
\pgf@x=\the\pgf@x%
\advance\pgf@x by2\pgflinewidth%
\pgflinewidth=\pgf@x%
\noexpand\pgfsetlinewidth{\pgflinewidth}%
\noexpand\pgfsetinnerlinewidth{\the\pgf@x}%
}%
\tikzset{double}}%
\def\tikz@double@setup{%
\pgf@x=2\pgflinewidth%
\advance\pgf@x by0.6pt%
\pgflinewidth=\pgf@x%
\pgfsetlinewidth{\pgflinewidth}%
\pgfsetinnerlinewidth{0.6pt}%
}%
\tikzset{double distance between line centers/.code={
\pgfmathsetlength{\pgf@x}{#1}%
\edef\tikz@double@setup{%
\pgf@x=\pgflinewidth%
\pgf@xa=\the\pgf@x%
\advance\pgf@x by\pgf@xa%
\advance\pgf@xa by-\pgflinewidth%
\pgflinewidth=\pgf@x%
\noexpand\pgfsetlinewidth{\pgflinewidth}%
\noexpand\pgfsetinnerlinewidth{\pgf@xa}%
}%
\tikzset{double}}}%
\tikzset{double equal sign distance/.style={double distance between line centers=0.45ex}}%
\tikzoption{even odd rule}[]{\tikz@addoption{\pgfseteorule}}%
\tikzoption{nonzero rule}[]{\tikz@addoption{\pgfsetnonzerorule}}%
\tikzoption{fill opacity}{\tikz@addoption{\pgfsetfillopacity{#1}}}%
\tikzoption{opacity}{\tikz@addoption{\pgfsetstrokeopacity{#1}\pgfsetfillopacity{#1}}}%
\tikzset{blend mode/.code={\tikz@addoption{\pgfsetblendmode{#1}}}}%
\tikzoption{color}{%
\tikz@addoption{%
\ifx\tikz@fillcolor\pgfutil@empty%
\ifx\tikz@strokecolor\pgfutil@empty%
\else%
\pgfsys@color@reset@inorderfalse%
\let\tikz@strokecolor\pgfutil@empty%
\let\tikz@fillcolor\pgfutil@empty%
\fi%
\else%
\pgfsys@color@reset@inorderfalse%
\let\tikz@strokecolor\pgfutil@empty%
\let\tikz@fillcolor\pgfutil@empty%
\fi%
\pgfutil@colorlet{tikz@color}{#1}%
\pgfutil@colorlet{.}{tikz@color}%
\pgfsetcolor{.}%
\pgfsys@color@reset@inordertrue%
}%
\def\tikz@textcolor{#1}}%
\tikzoption{rounded corners}[4pt]{\pgfsetcornersarced{\pgfpoint{#1}{#1}}}%
\tikzoption{sharp corners}[]{\pgfsetcornersarced{\pgfpointorigin}}%
\tikzset{x radius/.initial=0pt}%
\tikzset{y radius/.initial=0pt}%
\tikzset{%
radius/.code={%
\pgfmathparse{#1}%
\ifpgfmathunitsdeclared
\pgfkeyssetevalue{/tikz/x radius}{\pgfmathresult pt}%
\pgfkeyssetevalue{/tikz/y radius}{\pgfmathresult pt}%
\else
\pgfkeyssetevalue{/tikz/x radius}{\pgfmathresult}%
\pgfkeyssetevalue{/tikz/y radius}{\pgfmathresult}%
\fi
}%
}%
\tikzset{start angle/.initial=}%
\tikzset{end angle/.initial=}%
\tikzset{delta angle/.initial=}%
\tikzoption{x}{\tikz@handle@vec{\pgfsetxvec}{\tikz@handle@x}#1\relax}%
\tikzoption{y}{\tikz@handle@vec{\pgfsetyvec}{\tikz@handle@y}#1\relax}%
\tikzoption{z}{\tikz@handle@vec{\pgfsetzvec}{\tikz@handle@z}#1\relax}%
\def\tikz@handle@vec#1#2{\pgfutil@ifnextchar({\tikz@handle@coordinate#1}{\tikz@handle@single#2}}%
\def\tikz@handle@coordinate#1{\tikz@scan@one@point#1}%
\def\tikz@handle@single#1#2\relax{#1{#2}}%
\def\tikz@handle@x#1{\pgfsetxvec{\pgfpoint{#1}{0pt}}}%
\def\tikz@handle@y#1{\pgfsetyvec{\pgfpoint{0pt}{#1}}}%
\def\tikz@handle@z#1{\pgfsetzvec{\pgfpoint{#1}{#1}}}%
\tikzoption{scale}{\tikz@addtransform{\pgftransformscale{#1}}}%
\tikzoption{scale around}{\tikz@addtransform{\def\tikz@aroundaction{\pgftransformscale}\tikz@doaround{#1}}}%
\tikzoption{xscale}{\tikz@addtransform{\pgftransformxscale{#1}}}%
\tikzoption{xslant}{\tikz@addtransform{\pgftransformxslant{#1}}}%
\tikzoption{yscale}{\tikz@addtransform{\pgftransformyscale{#1}}}%
\tikzoption{yslant}{\tikz@addtransform{\pgftransformyslant{#1}}}%
\tikzoption{rotate}{\tikz@addtransform{\pgftransformrotate{#1}}}%
\tikzoption{rotate around}{\tikz@addtransform{\def\tikz@aroundaction{\pgftransformrotate}\tikz@doaround{#1}}}%
\def\tikz@doaround#1{%
\edef\tikz@temp{#1}%
\expandafter\tikz@doparseA\tikz@temp%
}%
\def\tikz@doparseA#1:{%
\def\tikz@temp@rot{#1}%
\tikz@scan@one@point\tikz@doparseB%
}%
\def\tikz@doparseB#1{%
\pgf@process{#1}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgftransformshift{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
\tikz@aroundaction{\tikz@temp@rot}%
\pgftransformshift{\pgfqpoint{-\pgf@xc}{-\pgf@yc}}%
}%
\tikzoption{shift}{\tikz@addtransform{\tikz@scan@one@point\pgftransformshift#1\relax}}%
\tikzoption{xshift}{\tikz@addtransform{\pgftransformxshift{#1}}}%
\tikzoption{yshift}{\tikz@addtransform{\pgftransformyshift{#1}}}%
\tikzoption{cm}{\tikz@addtransform{\tikz@parse@cm#1\relax}}%
\tikzoption{reset cm}[]{\tikz@addtransform{\pgftransformreset}}%
\tikzoption{shift only}[]{\tikz@addtransform{\pgftransformresetnontranslations}}%
\def\tikz@parse@cm#1,#2,#3,#4,{%
\def\tikz@p@cm{{#1}{#2}{#3}{#4}}%
\tikz@scan@one@point\tikz@parse@cmA}%
\def\tikz@parse@cmA#1{%
\expandafter\pgftransformcm\tikz@p@cm{#1}%
}%
\tikzset{transform canvas/.code=%
{%
\tikz@addoption
{%
{%
\pgftransformreset%
\let\tikz@transform=\relax%
\tikzset{#1}%
\pgflowlevelsynccm%
}%
\pgf@relevantforpicturesizefalse%
}%
}%
}%
\tikzset{turn/.code={%
\pgf@x=0pt%
\pgf@y\pgf@x%
\pgf@process{\tikz@tangent}%
\advance\pgf@x by-\tikz@lastx%
\advance\pgf@y by-\tikz@lasty%
\pgfpointnormalised{}%
\pgf@x=-\pgf@x%
\pgf@ya=-\pgf@y%
\pgftransformcm%
{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@ya}}%
{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@x}}{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}%
}%
}%
\def\tikz@tangent@lookup{%
\pgfgetpath\tikz@temp%
\pgfprocesspathextractpoints\tikz@temp%
\pgfpointsecondlastonpath%
}%
\def\tikz@xyz@rotate@let{%
\let\pgf@z=\pgf@yc%
\let\pgf@za=\pgf@xc%
}%
\def\tikz@xyz@rotate@xyz@xaxis#1#2#3#4{%
\tikz@xyz@rotate@let%
\pgf@x=#1\relax%
\pgf@ya=#2\relax%
\pgf@za=#3\relax%
\pgfmathsin@{#4}\let\tikz@xyz@sin=\pgfmathresult%
\pgfmathcos@{#4}\let\tikz@xyz@cos=\pgfmathresult%
\pgf@y=\tikz@xyz@cos\pgf@ya%
\advance\pgf@y by-\tikz@xyz@sin\pgf@za%
\pgf@z=\tikz@xyz@sin\pgf@ya%
\advance\pgf@z by\tikz@xyz@cos\pgf@za%
}%
\def\tikz@xyz@rotate@xyz@yaxis#1#2#3#4{%
\tikz@xyz@rotate@let%
\pgf@xa=#1\relax%
\pgf@y=#2\relax%
\pgf@za=#3\relax%
\pgfmathsin@{#4}\let\tikz@xyz@sin=\pgfmathresult%
\pgfmathcos@{#4}\let\tikz@xyz@cos=\pgfmathresult%
\pgf@x=\tikz@xyz@cos\pgf@xa%
\advance\pgf@x by\tikz@xyz@sin\pgf@za%
\pgf@z=-\tikz@xyz@sin\pgf@xa%
\advance\pgf@z by\tikz@xyz@cos\pgf@za%
}%
\def\tikz@xyz@rotate@xyz@zaxis#1#2#3#4{%
\tikz@xyz@rotate@let%
\pgf@xa=#1\relax%
\pgf@ya=#2\relax%
\pgf@z=#3\relax%
\pgfmathsin@{#4}\let\tikz@xyz@sin=\pgfmathresult%
\pgfmathcos@{#4}\let\tikz@xyz@cos=\pgfmathresult%
\pgf@x=\tikz@xyz@cos\pgf@xa%
\advance\pgf@x by-\tikz@xyz@sin\pgf@ya%
\pgf@y=\tikz@xyz@sin\pgf@xa%
\advance\pgf@y by\tikz@xyz@cos\pgf@ya%
}%
\tikzset{rotate around x/.code={%
\tikz@xyz@rotate@let%
\pgfmathparse{#1}\let\tikz@xyz@angle=\pgfmathresult%
\tikz@xyz@rotate@xyz@xaxis{0pt}{1pt}{0pt}{\tikz@xyz@angle}%
\pgfextract@process\tikz@xyz@rotate@yvec{\pgfpointxyz{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@z}}}%
\tikz@xyz@rotate@xyz@xaxis{0pt}{0pt}{1pt}{\tikz@xyz@angle}%
\pgfsetzvec{\pgfpointxyz{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@z}}}%
\pgfsetyvec{\tikz@xyz@rotate@yvec}%
},
rotate around y/.code={%
\tikz@xyz@rotate@let%
\pgfmathparse{#1}\let\tikz@xyz@angle=\pgfmathresult%
\tikz@xyz@rotate@xyz@yaxis{1pt}{0pt}{0pt}{\tikz@xyz@angle}%
\pgfextract@process\tikz@xyz@rotate@xvec{\pgfpointxyz{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@z}}}%
\tikz@xyz@rotate@xyz@yaxis{0pt}{0pt}{1pt}{\tikz@xyz@angle}%
\pgfsetzvec{\pgfpointxyz{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@z}}}%
\pgfsetxvec{\tikz@xyz@rotate@xvec}%
},
rotate around z/.code={%
\tikz@xyz@rotate@let%
\pgfmathparse{#1}\let\tikz@xyz@angle=\pgfmathresult%
\tikz@xyz@rotate@xyz@zaxis{1pt}{0pt}{0pt}{\tikz@xyz@angle}%
\pgfextract@process\tikz@xyz@rotate@xvec{\pgfpointxyz{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@z}}}%
\tikz@xyz@rotate@xyz@zaxis{0pt}{1pt}{0pt}{\tikz@xyz@angle}%
\pgfsetyvec{\pgfpointxyz{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@z}}}%
\pgfsetxvec{\tikz@xyz@rotate@xvec}%
},
}%
\tikzoption{xstep}{\def\tikz@grid@x{#1}}%
\tikzoption{ystep}{\def\tikz@grid@y{#1}}%
\tikzoption{step}{\tikz@handle@vec{\tikz@step@point}{\tikz@step@single}#1\relax}%
\def\tikz@step@single#1{\def\tikz@grid@x{#1}\def\tikz@grid@y{#1}}%
\def\tikz@step@point#1{\pgf@process{#1}\edef\tikz@grid@x{\the\pgf@x}\edef\tikz@grid@y{\the\pgf@y}}%
\def\tikz@grid@x{1cm}%
\def\tikz@grid@y{1cm}%
\newif\iftikz@current@point@local
\tikzset{current point is local/.is if=tikz@current@point@local}%
\newif\iftikz@mode@double
\newif\iftikz@mode@fill
\newif\iftikz@mode@draw
\newif\iftikz@mode@clip
\newif\iftikz@mode@boundary
\newif\iftikz@mode@shade
\newif\iftikz@mode@fade@path
\newif\iftikz@mode@fade@scope
\let\tikz@mode=\pgfutil@empty
\def\tikz@nonetext{none}%
\tikzoption{path only}[]{\let\tikz@mode=\pgfutil@empty}%
\tikzset{
shade/.is choice,
shade/.default=true,
shade/true/.code=\tikz@addmode{\tikz@mode@shadetrue},
shade/false/.code=\tikz@addmode{\tikz@mode@shadefalse},
shade/none/.code=\tikz@addmode{\tikz@mode@shadefalse},
}%
\tikzoption{fill}[]{%
\edef\tikz@temp{#1}%
\ifx\tikz@temp\tikz@nonetext%
\tikz@addmode{\tikz@mode@fillfalse}%
\else%
\ifx\tikz@temp\pgfutil@empty%
\else%
\tikz@addoption{\pgfsetfillcolor{#1}}%
\def\tikz@fillcolor{#1}%
\fi%
\tikz@addmode{\tikz@mode@filltrue}%
\fi%
}%
\tikzoption{draw}[]{%
\edef\tikz@temp{#1}%
\ifx\tikz@temp\tikz@nonetext%
\tikz@addmode{\tikz@mode@drawfalse}%
\else%
\ifx\tikz@temp\pgfutil@empty%
\else%
\tikz@addoption{\pgfsetstrokecolor{#1}}%
\def\tikz@strokecolor{#1}%
\fi%
\tikz@addmode{\tikz@mode@drawtrue}%
\fi%
}%
\tikzoption{clip}[]{\tikz@addmode{\tikz@mode@cliptrue}}%
\tikzoption{use as bounding box}[]{\tikz@addmode{\tikz@mode@boundarytrue}}%
\tikzoption{save path}{\tikz@addmode{\pgfsyssoftpath@getcurrentpath#1\global\let#1=#1}}%
\tikzoption{use path}{\tikz@addmode{\pgfsyssoftpath@setcurrentpath#1}}%
\let\tikz@fillcolor=\pgfutil@empty
\let\tikz@strokecolor=\pgfutil@empty
\tikzset{insert path/.code=\tikz@scan@next@command#1\pgf@stop}%
\tikzset{pattern/.code=\tikzerror{You need to say \string\usetikzlibrary{patterns}},
pattern color/.style=pattern}%
\tikzset{path picture/.code=\tikz@addmode{\def\tikz@path@picture{#1}}}%
\tikzset{path fading/.code={
\def\tikz@temp{#1}%
\ifx\tikz@temp\tikz@nonetext%
\tikz@addmode{\tikz@mode@fade@pathfalse}%
\else%
\ifx\tikz@temp\pgfutil@empty%
\else%
\def\tikz@path@fading{#1}%
\fi%
\tikz@addmode{\tikz@mode@fade@pathtrue}%
\fi%
},
path fading/.default=,
scope fading/.code={
\def\tikz@temp{#1}%
\ifx\tikz@temp\tikz@nonetext%
\tikz@addmode{\tikz@mode@fade@scopefalse}%
\else%
\ifx\tikz@temp\pgfutil@empty%
\else%
\def\tikz@scope@fading{#1}%
\fi%
\tikz@addmode{\tikz@mode@fade@scopetrue}%
\fi%
},
scope fading/.default=}%
\tikzset{fit fading/.is if=tikz@fade@adjust}%
\tikzset{fading transform/.store in=\tikz@fade@transform}%
\tikzset{fading angle/.style={fading transform={rotate={#1}}}}%
\newif\iftikz@fade@adjust%
\tikz@fade@adjusttrue%
\let\tikz@fade@transform\pgfutil@empty%
\pgfutil@colorlet{transparent}{pgftransparent}%
\def\tikz@do@fade@transform{\let\tikz@transform=\relax\expandafter\tikzset\expandafter{\tikz@fade@transform}}%
\newif\iftikz@transparency@group%
\tikzset{/tikz/transparency group/.code=\tikz@transparency@grouptrue\def\tikz@transparency@group@options{isolated=true,#1}\let\tikz@blend@group\pgfutil@empty}%
\tikzset{/tikz/blend group/.code=\tikz@transparency@grouptrue\def\tikz@transparency@group@options{isolated=true}\def\tikz@blend@group{\pgfsetblendmode{#1}}}%
\let\tikz@blend@group\pgfutil@empty
\tikzoption{shading}{\def\tikz@shading{#1}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{shading angle}{\def\tikz@shade@angle{#1}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{top color}{%
\pgfutil@colorlet{tikz@axis@top}{#1}%
\pgfutil@colorlet{tikz@axis@middle}{tikz@axis@top!50!tikz@axis@bottom}%
\def\tikz@shading{axis}\def\tikz@shade@angle{0}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{bottom color}{%
\pgfutil@colorlet{tikz@axis@bottom}{#1}%
\pgfutil@colorlet{tikz@axis@middle}{tikz@axis@top!50!tikz@axis@bottom}%
\def\tikz@shading{axis}\def\tikz@shade@angle{0}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{middle color}{%
\pgfutil@colorlet{tikz@axis@middle}{#1}%
\def\tikz@shading{axis}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{left color}{%
\pgfutil@colorlet{tikz@axis@top}{#1}%
\pgfutil@colorlet{tikz@axis@middle}{tikz@axis@top!50!tikz@axis@bottom}%
\def\tikz@shading{axis}\def\tikz@shade@angle{90}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{right color}{%
\pgfutil@colorlet{tikz@axis@bottom}{#1}%
\pgfutil@colorlet{tikz@axis@middle}{tikz@axis@top!50!tikz@axis@bottom}%
\def\tikz@shading{axis}\def\tikz@shade@angle{90}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{ball color}{\pgfutil@colorlet{tikz@ball}{#1}\def\tikz@shading{ball}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{inner color}{\pgfutil@colorlet{tikz@radial@inner}{#1}\def\tikz@shading{radial}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{outer color}{\pgfutil@colorlet{tikz@radial@outer}{#1}\def\tikz@shading{radial}\tikz@addmode{\tikz@mode@shadetrue}}%
\def\tikz@shading{axis}%
\def\tikz@shade@angle{0}%
\pgfdeclareverticalshading[tikz@axis@top,tikz@axis@middle,tikz@axis@bottom]{axis}{100bp}{%
color(0bp)=(tikz@axis@bottom);
color(25bp)=(tikz@axis@bottom);
color(50bp)=(tikz@axis@middle);
color(75bp)=(tikz@axis@top);
color(100bp)=(tikz@axis@top)}%
\pgfutil@colorlet{tikz@axis@top}{gray}%
\pgfutil@colorlet{tikz@axis@middle}{gray!50!white}%
\pgfutil@colorlet{tikz@axis@bottom}{white}%
\pgfdeclareradialshading[tikz@ball]{ball}{\pgfqpoint{-10bp}{10bp}}{%
color(0bp)=(tikz@ball!15!white);
color(9bp)=(tikz@ball!75!white);
color(18bp)=(tikz@ball!70!black);
color(25bp)=(tikz@ball!50!black);
color(50bp)=(black)}%
\pgfutil@colorlet{tikz@ball}{blue}%
\pgfdeclareradialshading[tikz@radial@inner,tikz@radial@outer]{radial}{\pgfpointorigin}{%
color(0bp)=(tikz@radial@inner);
color(25bp)=(tikz@radial@outer);
color(50bp)=(tikz@radial@outer)}%
\pgfutil@colorlet{tikz@radial@inner}{gray}%
\pgfutil@colorlet{tikz@radial@outer}{white}%
\tikzset{
pin distance/.store in=\tikz@pin@distance,
pin distance=3ex,
pin position/.store in=\tikz@pin@default@pos,
pin position=above,
pin edge/.store in=\tikz@pin@edge@style,
pin edge={},
tikz@pin@post/.code={\global\let\tikz@pin@edge@style@smuggle=\tikz@pin@edge@style},
tikz@pre@pin@edge/.code={%
\toks0=\expandafter{\tikz@pin@edge@style@smuggle}%
\edef\pgf@marshal{\noexpand\tikzset{tikz@pin@options/.style={\the\toks0}}}%
\pgf@marshal
},%
}%
\tikzset{%
pin/.code={%
\begingroup
\ifnum\the\catcode`\:=\active\relax
\def\tikz@next{%
\endgroup
\tikz@parse@pin@active@i{#1}}%
\else
\def\tikz@next{%
\endgroup
\pgfutil@ifnextchar[%
{\tikz@parse@pin@nonactive}
{\tikz@parse@pin@nonactive[]}#1:\pgf@nil}%
\fi
\tikz@next}}%
\begingroup
\catcode`\:=\active\relax
\gdef\tikz@parse@pin@active@i#1{%
\pgfutil@ifnextchar[%
{\tikz@parse@pin@active}
{\tikz@parse@pin@active[]}#1:\pgf@nil}%
\long\gdef\tikz@parse@pin@active[#1]#2:#3\pgf@nil{%
\def\tikz@temp{#3}%
\ifx\tikz@temp\pgfutil@empty
\tikz@@parse@pin@active[#1]\tikz@pin@default@pos:#2:\pgf@nil%
\else
\tikz@@parse@pin@active[#1]#2:#3\pgf@nil%
\fi}%
\long\gdef\tikz@@parse@pin@active[#1]#2:#3:\pgf@nil{%
\tikzset{%
append after command = {%
\bgroup
[current point is local = true]
\pgfextra{\let\tikz@save@last@node=\tikzlastnode\tikz@node@is@a@labelfalse}%
node [tikz@label@angle = #2,
anchor=@auto,
every pin,
#1,
append after command = {%
(\tikz@save@last@node)
edge [every pin edge,
tikz@pre@pin@edge,
tikz@pin@options]
(\tikzlastnode)},
tikz@label@post = \tikz@pin@distance,
tikz@pin@post] {#3}
\egroup}}}%
\endgroup
\long\def\tikz@parse@pin@nonactive[#1]#2:#3\pgf@nil{%
\def\tikz@temp{#3}%
\ifx\tikz@temp\pgfutil@empty
\tikz@@parse@pin@nonactive[#1]\tikz@pin@default@pos:#2:\pgf@nil%
\else
\tikz@@parse@pin@nonactive[#1]#2:#3\pgf@nil%
\fi}%
\long\def\tikz@@parse@pin@nonactive[#1]#2:#3:\pgf@nil{%
\tikzset{%
append after command = {%
\bgroup
[current point is local = true]
\pgfextra{\let\tikz@save@last@node=\tikzlastnode\tikz@node@is@a@labelfalse}%
node [tikz@label@angle = #2,
anchor=@auto,
every pin,
#1,
append after command = {%
(\tikz@save@last@node)
edge [every pin edge,
tikz@pre@pin@edge,
tikz@pin@options]
(\tikzlastnode)},
tikz@label@post = \tikz@pin@distance,
tikz@pin@post] {#3}
\egroup}}}%
\tikzset{
label distance/.store in=\tikz@label@distance,
label distance=0pt,
label position/.store in=\tikz@label@default@pos,
label position=above,
absolute/.is if=tikz@absolute,
tikz@label@angle/.store in=\tikz@label@angle
}%
\newif\iftikz@absolute
\def\tikz@on@text{center}%
\tikzset{tikz@label@post/.code 2 args={
\edef\tikz@label@angle{\tikz@label@angle}%
\expandafter\pgfkeys@spdef\expandafter\tikz@label@angle\expandafter{\tikz@label@angle}%
\csname tikz@label@angle@is@\tikz@label@angle\endcsname
\ifx\tikz@label@angle\tikz@on@text%
\def\tikz@node@at{\pgfpointanchor{\tikzlastnode}{center}}%
\def\tikz@anchor{center}%
\else%
\iftikz@absolute%
\pgftransformreset%
\pgf@process{%
\pgfpointshapeborder{\tikzlastnode}%
{\pgfpointadd{\pgfpointanchor{\tikzlastnode}{center}}{\pgfpointpolar{\tikz@label@angle}{1pt}}}}%
\edef\tikz@node@at{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\tikz@compute@direction{\tikz@label@angle}%
\tikz@addtransform{\pgftransformshift{\pgfpointpolar{\tikz@label@angle}{#1}}}%
\else%
\pgf@process{\pgfpointanchor{\tikzlastnode}{\tikz@label@angle}}%
\edef\tikz@node@at{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{\pgfpointanchor{\tikzlastnode}{center}}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\tikz@label@simplefalse%
\ifdim\pgf@xc=\pgf@xb\relax%
\ifdim\pgf@yc=\pgf@yb\relax%
\tikz@label@simpletrue%
\fi%
\fi%
\iftikz@label@simple%
\tikz@compute@direction{\tikz@label@angle}%
\tikz@addtransform{\pgftransformshift{\pgfpointpolar{\tikz@label@angle}{#1}}}%
\else%
\pgf@process{\pgfpointnormalised{%
\pgfpointdiff{\pgfpointtransformed{\pgfqpoint{\pgf@xc}{\pgf@yc}}}{\pgfpointtransformed{\pgfqpoint{\pgf@xb}{\pgf@yb}}}}}%
\edef\pgf@marshal{%
\noexpand\tikz@addtransform{\noexpand\pgftransformshift{\noexpand\pgfpointscale{#1}{
\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}}}%
\pgf@marshal%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@x=\pgf@yc%
\pgf@y=-\pgf@xc%
\ifx\tikz@anchor\tikz@auto@text%
\tikz@auto@anchor%
\fi%
\fi%
\fi%
\fi}
}%
\newif\iftikz@label@simple%
\tikzset{%
label/.code={%
\begingroup
\ifnum\the\catcode`\:=\active\relax
\def\tikz@next{%
\endgroup
\tikz@parse@label@active@i{#1}}%
\else
\def\tikz@next{%
\endgroup
\pgfutil@ifnextchar[%
{\tikz@parse@label@nonactive}
{\tikz@parse@label@nonactive[]}#1:\pgf@nil}%
\fi
\tikz@next}}%
\begingroup
\catcode`\:=\active\relax
\gdef\tikz@parse@label@active@i#1{%
\pgfutil@ifnextchar[%
{\tikz@parse@label@active}
{\tikz@parse@label@active[]}#1:\pgf@nil}%
\gdef\tikz@parse@label@active[#1]#2:#3\pgf@nil{%
\def\tikz@temp{#3}%
\ifx\tikz@temp\pgfutil@empty
\tikz@@parse@label@active[#1]\tikz@label@default@pos:#2:\pgf@nil%
\else
\def\tikz@temp{#2}%
\ifx\tikz@temp\pgfutil@empty
\tikz@@parse@label@active[#1]\tikz@label@default@pos:#3\pgf@nil%
\else
\tikz@@parse@label@active[#1]#2:#3\pgf@nil%
\fi
\fi
}%
\gdef\tikz@@parse@label@active[#1]#2:#3:\pgf@nil{%
\tikzset{%
append after command = {%
\bgroup
[current point is local=true]
\pgfextra{\let\tikz@save@last@fig@name=\tikz@last@fig@name\tikz@node@is@a@labelfalse}
node [tikz@label@angle = #2,
anchor=@auto,
every label,
#1,
tikz@label@post = \tikz@label@distance] {\iftikz@handle@active@nodes\expandafter\scantokens\else\expandafter\pgfutil@firstofone\fi{#3\noexpand}}
\pgfextra{\global\let\tikz@last@fig@name=\tikz@save@last@fig@name}
\egroup}}}%
\endgroup
\def\tikz@parse@label@nonactive[#1]#2:#3\pgf@nil{%
\def\tikz@temp{#3}%
\ifx\tikz@temp\pgfutil@empty
\tikz@@parse@label@nonactive[#1]\tikz@label@default@pos:#2:\pgf@nil%
\else
\def\tikz@temp{#2}%
\ifx\tikz@temp\pgfutil@empty
\tikz@@parse@label@nonactive[#1]\tikz@label@default@pos:#3\pgf@nil%
\else
\tikz@@parse@label@nonactive[#1]#2:#3\pgf@nil%
\fi
\fi
}%
\def\tikz@@parse@label@nonactive[#1]#2:#3:\pgf@nil{%
\tikzset{%
append after command = {%
\bgroup
[current point is local=true]
\pgfextra{\let\tikz@save@last@fig@name=\tikz@last@fig@name\tikz@node@is@a@labelfalse}
node [tikz@label@angle = #2,
anchor=@auto,
every label,
#1,
tikz@label@post = \tikz@label@distance] {\iftikz@handle@active@nodes\expandafter\scantokens\else\expandafter\pgfutil@firstofone\fi{#3\noexpand}}
\pgfextra{\global\let\tikz@last@fig@name=\tikz@save@last@fig@name}
\egroup}}}%
\expandafter\def\csname tikz@label@angle@is@right\endcsname{\def\tikz@label@angle{0}}%
\expandafter\def\csname tikz@label@angle@is@above right\endcsname{\def\tikz@label@angle{45}}%
\expandafter\def\csname tikz@label@angle@is@above\endcsname{\def\tikz@label@angle{90}}%
\expandafter\def\csname tikz@label@angle@is@above left\endcsname{\def\tikz@label@angle{135}}%
\expandafter\def\csname tikz@label@angle@is@left\endcsname{\def\tikz@label@angle{180}}%
\expandafter\def\csname tikz@label@angle@is@below left\endcsname{\def\tikz@label@angle{225}}%
\expandafter\def\csname tikz@label@angle@is@below\endcsname{\def\tikz@label@angle{270}}%
\expandafter\def\csname tikz@label@angle@is@below right\endcsname{\def\tikz@label@angle{315}}%
\def\tikz@compute@direction#1{%
\ifx\tikz@anchor\tikz@auto@text%
\let\tikz@do@auto@anchor=\relax
\pgfmathsetcount{\c@pgf@counta}{#1}%
\ifnum\c@pgf@counta<0\relax
\advance\c@pgf@counta by 360\relax%
\fi%
\ifnum\c@pgf@counta>359\relax
\advance\c@pgf@counta by-360\relax%
\fi%
\ifnum\c@pgf@counta<4\relax%
\def\tikz@anchor{west}%
\else\ifnum\c@pgf@counta<87\relax%
\def\tikz@anchor{south west}%
\else\ifnum\c@pgf@counta<94\relax%
\def\tikz@anchor{south}%
\else\ifnum\c@pgf@counta<177\relax%
\def\tikz@anchor{south east}%
\else\ifnum\c@pgf@counta<184\relax%
\def\tikz@anchor{east}%
\else\ifnum\c@pgf@counta<267\relax%
\def\tikz@anchor{north east}%
\else\ifnum\c@pgf@counta<274\relax%
\def\tikz@anchor{north}%
\else\ifnum\c@pgf@counta<357\relax%
\def\tikz@anchor{north west}%
\else%
\def\tikz@anchor{west}%
\fi\fi\fi\fi\fi\fi\fi\fi%
\fi%
}%
\def\tikz@auto@text{@auto}%
\tikzset{
name/.code={\edef\tikz@fig@name{\tikz@pp@name{#1}}\let\tikz@id@name\tikz@fig@name},%
name prefix/.initial=,%
name suffix/.initial=,%
local bounding box/.style={/pgf/local bounding box/.expanded=\tikz@pp@name{#1}}
}%
\def\tikz@pp@name#1{\csname pgfk@/tikz/name prefix\endcsname#1\csname pgfk@/tikz/name suffix\endcsname}%
\tikzset{
node contents/.code=\def\tikz@node@content{#1},
pic type/.code=\def\tikz@node@content{#1}, %
}%
\tikzset{
behind path/.code=\def\tikz@whichbox{\tikz@figbox@bg},
in front of path/.code=\def\tikz@whichbox{\tikz@figbox}
}%
\def\tikz@whichbox{\tikz@figbox}%
\tikzoption{at}{\tikz@scan@one@point\tikz@set@at#1}%
\def\tikz@set@at#1{\def\tikz@node@at{#1}}%
\tikzoption{shape}{\edef\tikz@shape{#1}}%
\tikzoption{nodes}{\tikzset{every node/.append style={#1}}}%
\tikzset{alias/.code={%
\tikz@fig@mustbenamed
\begingroup
\toks0=\expandafter{\tikz@alias}%
\edef\pgf@temp{\noexpand\pgfnodealias{\tikz@pp@name{#1}}{\noexpand\tikz@fig@name}}%
\toks1=\expandafter{\pgf@temp}%
\xdef\pgf@marshal{%
\noexpand\def\noexpand\tikz@alias{\the\toks0 \the\toks1 }%
}%
\endgroup
\pgf@marshal
}}%
\def\tikzaddafternodepathoption#1{#1\tikzset{prefix after command={\pgfextra{#1}}}}%
\tikzset{after node path/.style={append after command={#1}}}%
\tikzset{pic text/.store in=\tikzpictext}%
\let\tikzpictext\relax
\tikzset{pic text options/.store in=\tikzpictextoptions}%
\let\tikzpictextoptions\pgfutil@empty
\tikzoption{anchor}{\def\tikz@anchor{#1}\let\tikz@do@auto@anchor=\relax}%
\tikzoption{left}[]{\def\tikz@anchor{east}\tikz@possibly@transform{x}{-}{#1}}%
\tikzoption{right}[]{\def\tikz@anchor{west}\tikz@possibly@transform{x}{}{#1}}%
\tikzoption{above}[]{\def\tikz@anchor{south}\tikz@possibly@transform{y}{}{#1}}%
\tikzoption{below}[]{\def\tikz@anchor{north}\tikz@possibly@transform{y}{-}{#1}}%
\tikzoption{above left}[]%
{\def\tikz@anchor{south east}%
\tikz@possibly@transform{x}{-}{#1}\tikz@possibly@transform{y}{}{#1}}%
\tikzoption{above right}[]%
{\def\tikz@anchor{south west}%
\tikz@possibly@transform{x}{}{#1}\tikz@possibly@transform{y}{}{#1}}%
\tikzoption{below left}[]%
{\def\tikz@anchor{north east}%
\tikz@possibly@transform{x}{-}{#1}\tikz@possibly@transform{y}{-}{#1}}%
\tikzoption{below right}[]%
{\def\tikz@anchor{north west}%
\tikz@possibly@transform{x}{}{#1}\tikz@possibly@transform{y}{-}{#1}}%
\tikzset{centered/.code=\def\tikz@anchor{center}}%
\tikzoption{node distance}{\def\tikz@node@distance{#1}}%
\def\tikz@node@distance{1cm}%
\tikzoption{above of}{\tikz@of{#1}{90}}%
\tikzoption{below of}{\tikz@of{#1}{-90}}%
\tikzoption{left of}{\tikz@of{#1}{180}}%
\tikzoption{right of}{\tikz@of{#1}{0}}%
\tikzoption{above left of}{\tikz@of{#1}{135}}%
\tikzoption{below left of}{\tikz@of{#1}{-135}}%
\tikzoption{above right of}{\tikz@of{#1}{45}}%
\tikzoption{below right of}{\tikz@of{#1}{-45}}%
\def\tikz@of#1#2{%
\def\tikz@anchor{center}%
\let\tikz@do@auto@anchor=\relax%
\tikz@addtransform{%
\expandafter\tikz@extract@node@dist\tikz@node@distance and\pgf@stop%
\pgftransformshift{\pgfpointpolar{#2}{\tikz@extracted@node@distance}}}%
\def\tikz@node@at{\pgfpointanchor{\tikz@pp@name{#1}}{center}}}%
\def\tikz@extract@node@dist#1and#2\pgf@stop{%
\def\tikz@extracted@node@distance{#1}}%
\tikzset{
transform shape nonlinear/.is choice,
transform shape nonlinear/.default=true,
transform shape nonlinear/true/.code=\let\tikz@nlt\relax,
transform shape nonlinear/false/.code=\def\tikz@nlt{\pgfapproximatenonlineartranslation},
transform shape nonlinear=false,
}%
\tikzoption{transform shape}[true]{%
\csname tikz@fullytransformed#1\endcsname%
\iftikz@fullytransformed%
\pgfresetnontranslationattimefalse%
\else%
\pgfresetnontranslationattimetrue%
\fi%
}%
\newif\iftikz@fullytransformed
\pgfresetnontranslationattimetrue%
\def\tikz@anchor{center}%
\def\tikz@shape{rectangle}%
\def\tikz@possibly@transform#1#2#3{%
\let\tikz@do@auto@anchor=\relax%
\def\tikz@test{#3}%
\ifx\tikz@test\pgfutil@empty%
\else%
\pgfmathsetlength{\pgf@x}{#3}%
\pgf@x=#2\pgf@x\relax%
\edef\tikz@marshal{\noexpand\tikz@addtransform{%
\expandafter\noexpand\csname pgftransform#1shift\endcsname{\the\pgf@x}}}%
\tikz@marshal%
\fi%
}%
\tikzoption{remember picture}[true]{\csname pgfrememberpicturepositiononpage#1\endcsname}
\tikzset{
overlay/.is choice,
overlay/true/.code={\pgf@relevantforpicturesizefalse},
overlay/false/.code={\pgf@relevantforpicturesizetrue},
overlay/.default=true
}
\tikzoption{sloped}[true]{\csname pgfslopedattime#1\endcsname}%
\tikzoption{allow upside down}[true]{\csname pgfallowupsidedownattime#1\endcsname}%
\tikzoption{pos}{\edef\tikz@time{#1}\ifx\tikz@time\pgfutil@empty\else\pgfmathsetmacro\tikz@time{\tikz@time}\fi}%
\tikzoption{auto}[]{\csname tikz@install@auto@anchor@#1\endcsname}%
\tikzoption{swap}[]{%
\def\tikz@temp{left}%
\ifx\tikz@auto@anchor@direction\tikz@temp%
\def\tikz@auto@anchor@direction{right}%
\else%
\def\tikz@auto@anchor@direction{left}%
\fi%
}%
\tikzset{'/.style=swap}%
\def\tikz@install@auto@anchor@{\let\tikz@do@auto@anchor=\tikz@auto@anchor@on}%
\def\tikz@install@auto@anchor@false{\let\tikz@do@auto@anchor=\relax}%
\def\tikz@install@auto@anchor@left{\let\tikz@do@auto@anchor=\tikz@auto@anchor@on\def\tikz@auto@anchor@direction{left}}%
\def\tikz@install@auto@anchor@right{\let\tikz@do@auto@anchor=\tikz@auto@anchor@on\def\tikz@auto@anchor@direction{right}}%
\let\tikz@do@auto@anchor=\relax%
\def\tikz@auto@anchor@on{\csname tikz@auto@anchor@\tikz@auto@anchor@direction\endcsname}
\def\tikz@auto@anchor@left{\tikz@auto@pre\tikz@auto@anchor\tikz@auto@post}%
\def\tikz@auto@anchor@right{\tikz@auto@pre\tikz@auto@anchor@prime\tikz@auto@post}%
\def\tikz@auto@anchor@direction{left}%
\tikzoption{text}{\def\tikz@textcolor{#1}}%
\tikzoption{font}{\def\tikz@textfont{#1}}%
\tikzoption{node font}{\def\tikz@node@textfont{#1}}%
\tikzoption{text opacity}{\def\tikz@textopacity{#1}}%
\tikzoption{text width}{\def\tikz@text@width{#1}}%
\tikzoption{text height}{\def\tikz@text@height{#1}}%
\tikzoption{text depth}{\def\tikz@text@depth{#1}}%
\tikzoption{text ragged}[]%
{\def\tikz@text@action{\pgfutil@raggedright\rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax}}%
\tikzoption{text badly ragged}[]{\def\tikz@text@action{\pgfutil@raggedright\relax}}%
\tikzoption{text ragged left}[]%
{\def\tikz@text@action{\pgfutil@raggedleft\leftskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax}}%
\tikzoption{text badly ragged left}[]{\def\tikz@text@action{\pgfutil@raggedleft\relax}}%
\tikzoption{text justified}[]{\def\tikz@text@action{\leftskip0pt\rightskip0pt\relax}}%
\tikzoption{text centered}[]{\def\tikz@text@action{%
\leftskip0pt plus2em%
\rightskip0pt plus2em%
\spaceskip.3333em \xspaceskip.5em%
\parfillskip=0pt%
\iftikz@warn@for@narrow@centered\else\hbadness10000\fi%
\let\\=\@centercr%
\relax}}%
\tikzoption{text badly centered}[]%
{\def\tikz@text@action{%
\let\\=\@centercr%
\parfillskip=0pt%
\rightskip\pgfutil@flushglue%
\leftskip\pgfutil@flushglue\relax}}%
\tikzset{badness warnings for centered text/.is if=tikz@warn@for@narrow@centered}%
\newif\iftikz@warn@for@narrow@centered
\def\tikz@text@reset{%
\let\tikz@text@width=\pgfutil@empty
\let\tikz@text@height=\pgfutil@empty
\let\tikz@text@depth=\pgfutil@empty
\let\tikz@textcolor=\pgfutil@empty
\let\tikz@textfont=\pgfutil@empty
\let\tikz@textopacity=\pgfutil@empty
\let\tikz@node@textfont=\pgfutil@empty
\def\tikz@text@action{\pgfutil@raggedright\rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax}%
}
\tikz@text@reset
\tikzset{
node halign header/.initial=,
align/.is choice,
align/left/.style ={text ragged,node halign header=\tikz@align@left@header},
align/flush left/.style ={text badly ragged,node halign header=\tikz@align@left@header},
align/right/.style ={text ragged left,node halign header=\tikz@align@right@header},
align/flush right/.style ={text badly ragged left,node halign header=\tikz@align@right@header},
align/center/.style={text centered,node halign header=\tikz@align@center@header},
align/flush center/.style={text badly centered,node halign header=\tikz@align@center@header},
align/justify/.style ={text justified,node halign header=\tikz@align@left@header},
align/none/.style ={text justified,node halign header=},
}%
\def\tikz@align@left@header{##\hfil\cr}%
\def\tikz@align@right@header{\hfil##\cr}%
\def\tikz@align@center@header{\hfil##\hfil\cr}%
\tikzoption{arrows}{\tikz@processarrows{#1}}%
\tikzoption{>}{\pgfdeclarearrow{name=<->,means={#1}}}%
\pgfdeclarearrow{name=|<->|, means={>[sep=0pt].|}}%
\tikzoption{shorten <}{\pgfsetshortenstart{#1}}%
\tikzoption{shorten >}{\pgfsetshortenend{#1}}%
\def\tikz@processarrows#1{%
\def\tikz@current@arrows{#1}%
\def\tikz@temp{#1}%
\ifx\tikz@temp\pgfutil@empty%
\else%
\pgfsetarrows{#1}%
\fi%
}%
\def\tikz@current@arrows{-}%
\tikzoption{bend}{\tikz@scan@one@point\tikz@set@parabola@bend#1\relax}%
\tikzoption{bend pos}{\def\tikz@parabola@bend@factor{#1}}%
\tikzoption{parabola height}{%
\def\tikz@parabola@bend@factor{.5}%
\def\tikz@parabola@bend{\pgfpointadd{\pgfpoint{0pt}{#1}}{\tikz@last@position@saved}}}%
\def\tikz@parabola@bend{\tikz@last@position@saved}%
\def\tikz@parabola@bend@factor{0}%
\def\tikz@set@parabola@bend#1{\def\tikz@parabola@bend{#1}}%
\tikzoption{domain}{\edef\tikz@plot@domain{#1}\expandafter\tikz@plot@samples@recalc\tikz@plot@domain\relax}%
\tikzoption{range}{\def\tikz@plot@range{#1}}%
\tikzoption{yrange}{\def\tikz@plot@range{#1}}%
\let\tikz@plot@range=\pgfutil@empty
\tikzoption{xrange}{\def\tikz@plot@xrange{#1}}%
\let\tikz@plot@xrange=\pgfutil@empty
\tikzoption{smooth}[]{\let\tikz@plot@handler=\pgfplothandlercurveto}%
\tikzoption{smooth cycle}[]{\let\tikz@plot@handler=\pgfplothandlerclosedcurve}%
\tikzoption{sharp plot}[]{\let\tikz@plot@handler\pgfplothandlerlineto}%
\tikzoption{sharp cycle}[]{\let\tikz@plot@handler\pgfplothandlerpolygon}%
\tikzoption{tension}{\pgfsetplottension{#1}}%
\tikzoption{xcomb}[]{\let\tikz@plot@handler=\pgfplothandlerxcomb}%
\tikzoption{ycomb}[]{\let\tikz@plot@handler=\pgfplothandlerycomb}%
\tikzoption{polar comb}[]{\let\tikz@plot@handler=\pgfplothandlerpolarcomb}%
\tikzoption{ybar}[]{\let\tikz@plot@handler=\pgfplothandlerybar}%
\tikzoption{ybar interval}[]{\let\tikz@plot@handler=\pgfplothandlerybarinterval}%
\tikzoption{xbar interval}[]{\let\tikz@plot@handler=\pgfplothandlerxbarinterval}%
\tikzoption{xbar}[]{\let\tikz@plot@handler=\pgfplothandlerxbar}%
\tikzoption{const plot}[]{\let\tikz@plot@handler=\pgfplothandlerconstantlineto}%
\tikzoption{const plot mark left}[]{\let\tikz@plot@handler=\pgfplothandlerconstantlineto}%
\tikzoption{const plot mark right}[]{\let\tikz@plot@handler=\pgfplothandlerconstantlinetomarkright}%
\tikzoption{const plot mark mid}[]{\let\tikz@plot@handler=\pgfplothandlerconstantlinetomarkmid}%
\tikzoption{jump mark right}[]{\let\tikz@plot@handler=\pgfplothandlerjumpmarkright}%
\tikzoption{jump mark mid}[]{\let\tikz@plot@handler=\pgfplothandlerjumpmarkmid}%
\tikzoption{jump mark left}[]{\let\tikz@plot@handler=\pgfplothandlerjumpmarkleft}%
\tikzoption{raw gnuplot}[true]{\csname tikz@plot@raw@gnuplot#1\endcsname}%
\tikzoption{prefix}{\def\tikz@plot@prefix{#1}}%
\tikzoption{id}{\def\tikz@plot@id{#1}}%
\tikzoption{samples}{\pgfmathsetmacro\tikz@plot@samples{max(2,#1)}\expandafter\tikz@plot@samples@recalc\tikz@plot@domain\relax}%
\tikzoption{samples at}{\def\tikz@plot@samplesat{#1}}%
\tikzoption{parametric}[true]{\csname tikz@plot@parametric#1\endcsname}%
\tikzoption{variable}{\def\tikz@plot@var{#1}}%
\tikzoption{only marks}[]{\let\tikz@plot@handler\pgfplothandlerdiscard}%
\tikzoption{mark}{%
\def\tikz@plot@mark{#1}%
\def\tikz@temp{none}%
\ifx\tikz@temp\tikz@plot@mark
\let\tikz@plot@mark=\pgfutil@empty
\fi
}%
\tikzset{
no marks/.style={mark=none},%
no markers/.style={mark=none},%
every mark/.style={},
mark options/.style={%
every mark/.style={#1}%
}}%
\tikzoption{mark size}{\pgfsetplotmarksize{#1}}%
\tikzoption{mark indices}{\def\tikz@mark@list{#1}}%
\tikzoption{mark phase}{\pgfsetplotmarkphase{#1}}%
\tikzoption{mark repeat}{\pgfsetplotmarkrepeat{#1}}%
\let\tikz@mark@list=\pgfutil@empty
\let\tikz@plot@handler=\pgfplothandlerlineto
\let\tikz@plot@mark=\pgfutil@empty
\def\tikz@plot@samples{25}%
\def\tikz@plot@domain{-5:5}%
\def\tikz@plot@var{\x}%
\def\tikz@plot@samplesat{-5,-4.5833333,...,5}%
\def\tikz@plot@samples@recalc#1:#2\relax{%
\begingroup
\pgfmathparse{#1}%
\let\tikz@temp@start=\pgfmathresult%
\pgfmathparse{#2}%
\let\tikz@temp@end=\pgfmathresult%
\pgfmathsetmacro\tikz@temp@diff{(\tikz@temp@end-\tikz@temp@start)/(\tikz@plot@samples-1)}%
\pgfkeys{/pgf/fpu/output format/fixed/.try}%
\pgfmathsetmacro\tikz@temp@diff@abs{abs(\tikz@temp@diff)}%
\ifdim\tikz@temp@diff@abs pt<0.0001pt\relax%
\edef\tikz@plot@samplesat{\tikz@temp@start,\tikz@temp@end}%
\else%
\pgfmathparse{\tikz@temp@start+\tikz@temp@diff}%
\edef\tikz@plot@samplesat{\tikz@temp@start,\pgfmathresult,...,\tikz@temp@end}%
\fi%
\pgfmath@smuggleone\tikz@plot@samplesat
\endgroup
}%
\def\tikz@plot@prefix{\jobname.}%
\def\tikz@plot@id{pgf-plot}%
\newif\iftikz@plot@parametric
\newif\iftikz@plot@raw@gnuplot
\tikzoption{to path}{\def\tikz@to@path{#1}}%
\def\tikz@to@path{-- (\tikztotarget) \tikztonodes}%
\tikzset{edge macro/.store in=\tikz@edge@macro}%
\let\tikz@edge@macro\pgfutil@empty
\tikzset{
edge node/.code={
\expandafter\def\expandafter\tikz@tonodes\expandafter{\tikz@tonodes #1}
},
edge label/.style={/tikz/edge node={node[auto]{#1}}},
edge label'/.style={/tikz/edge node={node[auto,swap]{#1}}},
}%
\tikzset{
append after command/.code=\expandafter\def\expandafter\tikz@after@path\expandafter{\tikz@after@path#1},
prefix after command/.code={%
\def\tikz@temp{#1}%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@after@path%
\expandafter\expandafter\expandafter{%
\expandafter\tikz@temp\tikz@after@path}%
},
}%
\let\tikz@after@path\pgfutil@empty
\newif\iftikz@child@missing
\pgfkeys{/tikz/missing/.is if=tikz@child@missing}%
\tikzset{edge from parent macro/.initial=\tikz@edge@from@parent@macro}%
\def\tikz@edge@from@parent@macro#1#2{
[style=edge from parent, #1, /utils/exec=\tikz@node@is@a@labeltrue] \tikz@edge@to@parent@path #2}%
\tikzoption{edge from parent path}{\def\tikz@edge@to@parent@path{#1}}%
\tikzoption{parent anchor}{\def\tikzparentanchor{.#1}\ifx\tikzparentanchor\tikz@border@text\let\tikzparentanchor\pgfutil@empty\fi}%
\tikzoption{child anchor}{\def\tikzchildanchor{.#1}\ifx\tikzchildanchor\tikz@border@text\let\tikzchildanchor\pgfutil@empty\fi}%
\tikzoption{level distance}{\pgfmathsetlength\tikzleveldistance{#1}}%
\tikzoption{sibling distance}{\pgfmathsetlength\tikzsiblingdistance{#1}}%
\tikzoption{growth function}{\let\tikz@grow=#1}%
\tikzset{grow siblings on line/.style={growth function=\tikz@grow@direction}}%
\tikzoption{growth parent anchor}{\def\tikz@growth@anchor{#1}}%
\tikzoption{grow}{\tikz@set@growth{#1}\edef\tikz@special@level{\the\tikztreelevel}}%
\tikzoption{grow'}{\tikz@set@growth{#1}\tikz@swap@growth\edef\tikz@special@level{\the\tikztreelevel}}%
\def\tikz@growth@anchor{center}%
\def\tikz@special@level{-1}%
\def\tikz@swap@growth{%
\let\tikz@temp=\tikz@angle@grow@right%
\let\tikz@angle@grow@right=\tikz@angle@grow@left%
\let\tikz@angle@grow@left=\tikz@temp%
}%
\def\tikz@set@growth#1{%
\let\tikz@grow=\tikz@grow@direction%
\expandafter\ifx\csname tikz@grow@direction@#1\endcsname\relax%
\c@pgf@counta=#1\relax%
\else%
\c@pgf@counta=\csname tikz@grow@direction@#1\endcsname%
\fi%
\edef\tikz@angle@grow{\the\c@pgf@counta}%
\advance\c@pgf@counta by-90\relax%
\edef\tikz@angle@grow@left{\the\c@pgf@counta}%
\advance\c@pgf@counta by180\relax%
\edef\tikz@angle@grow@right{\the\c@pgf@counta}%
}%
\def\tikz@border@text{.border}%
\let\tikzparentanchor=\pgfutil@empty
\let\tikzchildanchor=\pgfutil@empty
\def\tikz@edge@to@parent@path{(\tikzparentnode\tikzparentanchor) -- (\tikzchildnode\tikzchildanchor)}%
\tikzleveldistance=15mm%
\tikzsiblingdistance=15mm%
\def\tikz@grow@direction@down{-90}%
\def\tikz@grow@direction@up{90}%
\def\tikz@grow@direction@left{180}%
\def\tikz@grow@direction@right{0}%
\def\tikz@grow@direction@south{-90}%
\def\tikz@grow@direction@north{90}%
\def\tikz@grow@direction@west{180}%
\def\tikz@grow@direction@east{0}%
\expandafter\def\csname tikz@grow@direction@north east\endcsname{45}%
\expandafter\def\csname tikz@grow@direction@north west\endcsname{135}%
\expandafter\def\csname tikz@grow@direction@south east\endcsname{-45}%
\expandafter\def\csname tikz@grow@direction@south west\endcsname{-135}%
\def\tikz@grow@direction{%
\pgftransformshift{\pgfpointpolar{\tikz@angle@grow}{\tikzleveldistance}}%
\ifnum\tikztreelevel=\tikz@special@level%
\else%
\pgf@xc=.5\tikzsiblingdistance%
\c@pgf@counta=\tikznumberofchildren%
\advance\c@pgf@counta by1\relax%
\pgfutil@tempdima=\c@pgf@counta\pgf@xc%
\pgftransformshift{\pgfpointpolar{\tikz@angle@grow@left}{\pgfutil@tempdima}}%
\pgftransformshift{\pgfpointpolar{\tikz@angle@grow@right}{\tikznumberofcurrentchild\tikzsiblingdistance}}%
\fi%
}%
\tikzset{grow=down}%
\tikzset{snake/.code=\tikzerror{You need to say \string\usetikzlibrary{snakes}}}%
\tikzset{decorate/.code=\tikzerror{You need to load a decoration library}}%
\usepgfmodule{matrix}%
\tikzoption{matrix}[true]{\csname tikz@is@matrix#1\endcsname}%
\tikzoption{matrix anchor}{\def\tikz@matrix@anchor{#1}}%
\tikzoption{column sep}{\def\pgfmatrixcolumnsep{#1}}%
\tikzoption{row sep}{\def\pgfmatrixrowsep{#1}}%
\tikzoption{cells}{\tikzset{every cell/.append style={#1}}}%
\tikzoption{ampersand replacement}{\def\tikz@ampersand@replacement{#1}}%
\newif\iftikz@is@matrix
\let\tikz@matrix@anchor=\pgfutil@empty
\let\tikz@ampersand@replacement=\pgfutil@empty
\tikzset{%
handle active characters in code/.is if=tikz@handle@active@code,
handle active characters in nodes/.is if=tikz@handle@active@nodes,
}%
\newif\iftikz@handle@active@code
\newif\iftikz@handle@active@nodes
\tikzoption{execute at begin picture}{\expandafter\def\expandafter\tikz@atbegin@picture\expandafter{\tikz@atbegin@picture#1}}%
\tikzoption{execute at end picture}{\expandafter\def\expandafter\tikz@atend@picture\expandafter{\tikz@atend@picture#1}}%
\tikzoption{execute at begin scope}{\expandafter\def\expandafter\tikz@atbegin@scope\expandafter{\tikz@atbegin@scope#1}}%
\tikzoption{execute at end scope}{\expandafter\def\expandafter\tikz@atend@scope\expandafter{\tikz@atend@scope#1}}%
\tikzoption{execute at begin to}{\expandafter\def\expandafter\tikz@atbegin@to\expandafter{\tikz@atbegin@to#1}}%
\tikzoption{execute at end to}{\expandafter\def\expandafter\tikz@atend@to\expandafter{\tikz@atend@to#1}}%
\tikzoption{execute at begin node}{\expandafter\def\expandafter\tikz@atbegin@node\expandafter{\tikz@atbegin@node#1}}%
\tikzoption{execute at end node}{\expandafter\def\expandafter\tikz@atend@node\expandafter{\tikz@atend@node#1}}%
\tikzoption{execute at begin matrix}{\expandafter\def\expandafter\tikz@atbegin@matrix\expandafter{\tikz@atbegin@matrix#1}}%
\tikzoption{execute at end matrix}{\expandafter\def\expandafter\tikz@atend@matrix\expandafter{\tikz@atend@matrix#1}}%
\tikzoption{execute at begin cell}{\expandafter\def\expandafter\tikz@atbegin@cell\expandafter{\tikz@atbegin@cell#1}}%
\tikzoption{execute at end cell}{\expandafter\def\expandafter\tikz@atend@cell\expandafter{\tikz@atend@cell#1}}%
\tikzoption{execute at empty cell}{\expandafter\def\expandafter\tikz@at@emptycell\expandafter{\tikz@at@emptycell#1}}%
\let\tikz@atbegin@picture=\pgfutil@empty
\let\tikz@atend@picture=\pgfutil@empty
\let\tikz@atbegin@scope=\pgfutil@empty
\let\tikz@atend@scope=\pgfutil@empty
\let\tikz@atbegin@to=\pgfutil@empty
\let\tikz@atend@to=\pgfutil@empty
\let\tikz@atbegin@node=\pgfutil@empty
\let\tikz@atend@node=\pgfutil@empty
\let\tikz@atbegin@cell=\pgfutil@empty
\let\tikz@atend@cell=\pgfutil@empty
\let\tikz@at@emptycell=\pgfutil@empty
\let\tikz@atbegin@matrix=\pgfutil@empty
\let\tikz@atend@matrix=\pgfutil@empty
\tikzset{preaction/.code=\expandafter\def\expandafter\tikz@preactions\expandafter{\tikz@preactions\tikz@extra@preaction{#1}}}%
\tikzset{postaction/.code=\expandafter\def\expandafter\tikz@postactions\expandafter{\tikz@postactions\tikz@extra@postaction{#1}}}%
\let\tikz@preactions=\pgfutil@empty
\let\tikz@postactions=\pgfutil@empty
\tikzoption{set style}{\tikzstyle#1}%
\def\tikzstyle{\pgfutil@ifnextchar\bgroup\tikz@style@parseA\tikz@style@parseB}%
\def\tikz@style@parseB#1={\tikz@style@parseA{#1}=}%
\def\tikz@style@parseA#1#2=#3[#4]{%
\pgfutil@in@[{#2}%
\ifpgfutil@in@%
\tikz@style@parseC{#1}#2={#4}%
\else%
\tikz@style@parseD{#1}#2={#4}%
\fi%
}%
\def\tikz@style@parseC#1[#2]#3=#4{%
\pgfkeys{/tikz/#1/.default={#2}}%
\pgfutil@in@+{#3}%
\ifpgfutil@in@%
\pgfkeys{/tikz/#1/.append style={#4}}%
\else%
\pgfkeys{/tikz/#1/.style={#4}}%
\fi}%
\def\tikz@style@parseD#1#2=#3{%
\pgfutil@in@+{#2}%
\ifpgfutil@in@%
\pgfkeys{/tikz/#1/.append style={#3}}%
\else%
\pgfkeys{/tikz/#1/.style={#3}}%
\fi}%
\tikzset{help lines/.style= {color=gray,line width=0.2pt}}%
\tikzset{every picture/.style= {}}%
\tikzset{every path/.style= {}}%
\tikzset{every scope/.style= {}}%
\tikzset{every plot/.style= {}}%
\tikzset{every node/.style= {}}%
\tikzset{every child/.style= {}}%
\tikzset{every child node/.style= {}}%
\tikzset{every to/.style= {}}%
\tikzset{every cell/.style= {}}%
\tikzset{every matrix/.style= {}}%
\tikzset{every edge/.style= {draw}}%
\tikzset{every label/.style= {draw=none,fill=none}}%
\tikzset{every pin/.style= {draw=none,fill=none}}%
\tikzset{every pin edge/.style= {help lines}}%
\tikzset{ultra thin/.style= {line width=0.1pt}}%
\tikzset{very thin/.style= {line width=0.2pt}}%
\tikzset{thin/.style= {line width=0.4pt}}%
\tikzset{semithick/.style= {line width=0.6pt}}%
\tikzset{thick/.style= {line width=0.8pt}}%
\tikzset{very thick/.style= {line width=1.2pt}}%
\tikzset{ultra thick/.style= {line width=1.6pt}}%
\tikzset{solid/.style= {dash pattern=}}%
\tikzset{dotted/.style= {dash pattern=on \pgflinewidth off 2pt}}%
\tikzset{densely dotted/.style= {dash pattern=on \pgflinewidth off 1pt}}%
\tikzset{loosely dotted/.style= {dash pattern=on \pgflinewidth off 4pt}}%
\tikzset{dashed/.style= {dash pattern=on 3pt off 3pt}}%
\tikzset{densely dashed/.style= {dash pattern=on 3pt off 2pt}}%
\tikzset{loosely dashed/.style= {dash pattern=on 3pt off 6pt}}%
\tikzset{dashdotted/.style= {dash pattern=on 3pt off 2pt on \the\pgflinewidth off 2pt}}%
\tikzset{dash dot/.style= {dash pattern=on 3pt off 2pt on \the\pgflinewidth off 2pt}}%
\tikzset{densely dashdotted/.style= {dash pattern=on 3pt off 1pt on \the\pgflinewidth off 1pt}}%
\tikzset{densely dash dot/.style= {dash pattern=on 3pt off 1pt on \the\pgflinewidth off 1pt}}%
\tikzset{loosely dashdotted/.style= {dash pattern=on 3pt off 4pt on \the\pgflinewidth off 4pt}}%
\tikzset{loosely dash dot/.style= {dash pattern=on 3pt off 4pt on \the\pgflinewidth off 4pt}}%
\tikzset{dashdotdotted/.style= {dash pattern=on 3pt off 2pt on \the\pgflinewidth off 2pt on \the\pgflinewidth off 2pt}}%
\tikzset{densely dashdotdotted/.style= {dash pattern=on 3pt off 1pt on \the\pgflinewidth off 1pt on \the\pgflinewidth off 1pt}}%
\tikzset{loosely dashdotdotted/.style= {dash pattern=on 3pt off 4pt on \the\pgflinewidth off 4pt on \the\pgflinewidth off 4pt}}%
\tikzset{dash dot dot/.style= {dash pattern=on 3pt off 2pt on \the\pgflinewidth off 2pt on \the\pgflinewidth off 2pt}}%
\tikzset{densely dash dot dot/.style= {dash pattern=on 3pt off 1pt on \the\pgflinewidth off 1pt on \the\pgflinewidth off 1pt}}%
\tikzset{loosely dash dot dot/.style= {dash pattern=on 3pt off 4pt on \the\pgflinewidth off 4pt on \the\pgflinewidth off 4pt}}%
\tikzset{transparent/.style= {opacity=0}}%
\tikzset{ultra nearly transparent/.style={opacity=0.05}}%
\tikzset{very nearly transparent/.style= {opacity=0.1}}%
\tikzset{nearly transparent/.style= {opacity=0.25}}%
\tikzset{semitransparent/.style= {opacity=0.5}}%
\tikzset{nearly opaque/.style= {opacity=0.75}}%
\tikzset{very nearly opaque/.style= {opacity=0.9}}%
\tikzset{ultra nearly opaque/.style= {opacity=0.95}}%
\tikzset{opaque/.style= {opacity=1}}%
\tikzset{at start/.style= {pos=0}}%
\tikzset{very near start/.style= {pos=0.125}}%
\tikzset{near start/.style= {pos=0.25}}%
\tikzset{midway/.style= {pos=0.5}}%
\tikzset{near end/.style= {pos=0.75}}%
\tikzset{very near end/.style= {pos=0.875}}%
\tikzset{at end/.style= {pos=1}}%
\tikzset{bend at start/.style= {bend pos=0,bend={+(0,0)}}}%
\tikzset{bend at end/.style= {bend pos=1,bend={+(0,0)}}}%
\tikzset{edge from parent/.style= {draw}}%
\tikzset{
animate/.code=\tikzerror{You need to say \string\usetikzlibrary{animations} to use animations}
}
\newif\iftikz@is@node
\let\tikz@id@name\pgfutil@empty
\let\tikz@id@hook\pgfutil@empty
\def\tikz@call@id@hook{\ifx\tikz@id@hook\pgfutil@empty\else\tikz@id@hook\pgfuseid{\tikz@id@name}\fi}%
\let\tikz@clear@rdf@options\relax
\let\tikz@do@rdf@post@options\relax
\let\tikz@do@rdf@pre@options\relax
\pgfkeys{/tikz/style/.style={#1}}%
\pgfkeys{/tikz/.unknown/.code=%
\let\tikz@key\pgfkeyscurrentname%
\pgfkeys{/pgf/\tikz@key/.try={#1}}%
\ifpgfkeyssuccess%
\else%
\expandafter\pgfutil@in@\expandafter!\expandafter{\tikz@key}%
\ifpgfutil@in@%
\expandafter\tikz@addoption\expandafter{\expandafter\tikz@compat@color@set\expandafter{\tikz@key}}%
\edef\tikz@textcolor{\tikz@key}%
\else%
\pgfutil@doifcolorelse{\tikz@key}
{%
\expandafter\tikz@addoption\expandafter{\expandafter\tikz@compat@color@set\expandafter{\tikz@key}}%
\edef\tikz@textcolor{\tikz@key}%
}%
{%
\expandafter\pgfutil@in@\expandafter-\expandafter{\tikz@key}%
\ifpgfutil@in@%
\expandafter\tikz@processarrows\expandafter{\tikz@key}%
\else%
\expandafter\ifx\csname pgf@sh@s@\tikz@key\endcsname\relax%
\pgfkeys{/errors/unknown key/.expand
once=\expandafter{\expandafter/\expandafter t\expandafter i\expandafter k\expandafter z\expandafter/\tikz@key}{#1}}%
\else%
\edef\tikz@shape{\tikz@key}%
\fi%
\fi%
}%
\fi%
\fi%
}%
\def\tikz@compat@color@set#1{%
\pgfutil@color{#1}\pgfutil@colorlet{pgffillcolor}{#1}%
\expandafter\let\expandafter\pgf@temp\csname\string\color@pgffillcolor\endcsname%
\global\let\pgf@strokecolor@global=\pgf@temp
\global\let\pgf@fillcolor@global=\pgf@temp
}%
\def\tikz@startup@env{%
\ifnum\the\catcode`\;=\active\relax\expandafter\let\expandafter\tikz@origsemi\expandafter=\tikz@activesemicolon\fi%
\ifnum\the\catcode`\:=\active\relax\expandafter\let\expandafter\tikz@origcolon\expandafter=\tikz@activecolon\fi%
\ifnum\the\catcode`\|=\active\relax\expandafter\let\expandafter\tikz@origbar\expandafter=\tikz@activebar\fi%
\tikz@deactivatthings%
\iftikz@handle@active@code%
\tikz@switchoff@shorthands%
\fi%
}%
\newif\iftikz@inside@picture
\tikz@inside@picturefalse
\def\tikz@check@inside@picture{%
\iftikz@inside@picture%
\pgfwarning{Nesting tikzpictures is NOT supported}%
\fi%
\tikz@inside@picturetrue%
}
\def\tikzpicture{%
\begingroup%
\tikz@startup@env%
\tikz@collect@scope@anims\tikz@picture}%
\def\tikz@picture[#1]{%
\pgfpicture%
\let\tikz@atbegin@picture=\pgfutil@empty%
\let\tikz@atend@picture=\pgfutil@empty%
\let\tikz@transform=\relax%
\def\tikz@time{.5}%
\tikz@installcommands%
\scope[every picture,#1]%
\iftikz@handle@active@code%
\tikz@switchoff@shorthands%
\fi%
\expandafter\tikz@atbegin@picture%
\tikz@lib@scope@check%
}%
\def\endtikzpicture{%
\tikz@atend@picture%
\global\let\pgf@shift@baseline@smuggle=\pgf@baseline%
\global\let\pgf@trimleft@final@smuggle=\pgf@trimleft%
\global\let\pgf@trimright@final@smuggle=\pgf@trimright%
\global\let\pgf@remember@smuggle=\ifpgfrememberpicturepositiononpage%
\pgf@remember@layerlist@globally
\endscope%
\let\pgf@baseline=\pgf@shift@baseline@smuggle%
\let\pgf@trimleft=\pgf@trimleft@final@smuggle%
\let\pgf@trimright=\pgf@trimright@final@smuggle%
\let\ifpgfrememberpicturepositiononpage=\pgf@remember@smuggle%
\pgf@restore@layerlist@from@global
\endpgfpicture\endgroup}%
\def\tikz{%
\begingroup%
\tikz@startup@env%
\tikz@collect@scope@anims\tikz@opt}%
\def\tikz@opt[#1]{\tikzpicture[#1]\pgfutil@ifnextchar\bgroup{\tikz@}{\tikz@@single}}%
\def\tikz@{\bgroup\tikz@auto@end@pathtrue\aftergroup\endtikzpicture\aftergroup\endgroup\let\pgf@temp=}%
\def\tikz@@single#1{%
\expandafter\ifx\csname tikz@protected@command\string#1\endcsname\relax%
\expandafter\tikz@@%
\else%
\begingroup\def\tikz@path@do@at@end{\endgroup\endtikzpicture\endgroup}%
\fi%
#1%
}%
\expandafter\let\csname tikz@protected@command\string\draw\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\pattern\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\fill\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\filldraw\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\shade\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\shadedraw\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\clip\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\graph\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\useasboundingbox\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\node\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\coordinate\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\matrix\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\datavisualization\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\path\endcsname\pgfutil@empty%
\expandafter\let\csname tikz@protected@command\string\pic\endcsname\pgfutil@empty%
\def\tikz@@{%
\let\tikz@next=\tikz@collectnormalsemicolon%
\ifnum\the\catcode`\;=\active\relax%
\let\tikz@next=\tikz@collectactivesemicolon%
\fi%
\tikz@next}%
\def\tikz@collectnormalsemicolon#1;{#1;\endtikzpicture\endgroup}
{
\catcode`\;=\active
\gdef\tikz@collectactivesemicolon#1;{#1;\endtikzpicture\endgroup}
}%
\def\tikzifinpicture#1#2{%
\pgfutil@ifundefined{filldraw}{#2}{#1}%
}%
\def\tikz@collect@scope@anims#1{%
\pgfutil@ifnextchar[#1{#1[]}%
}%
\def\tikz@scope@env{%
\pgfscope%
\begingroup%
\let\tikz@atbegin@scope=\pgfutil@empty%
\let\tikz@atend@scope=\pgfutil@empty%
\let\tikz@options=\pgfutil@empty%
\tikz@clear@rdf@options%
\let\tikz@mode=\pgfutil@empty%
\let\tikz@id@name=\pgfutil@empty%
\tikz@transparency@groupfalse%
\tikzset{every scope/.try}%
\tikz@collect@scope@anims\tikz@scope@opt%
}%
\def\tikz@scope@opt[#1]{%
\tikzset{#1}%
\tikz@options%
\tikz@do@rdf@pre@options%
\iftikz@transparency@group\expandafter\pgftransparencygroup\expandafter[\tikz@transparency@group@options]\tikz@blend@group\fi%
\tikz@is@nodefalse%
\tikz@call@id@hook%
\pgfidscope%
\tikz@do@rdf@post@options%
\begingroup%
\let\tikz@id@name\pgfutil@empty%
\expandafter\tikz@atbegin@scope%
\expandafter\pgfclearid%
\tikz@lib@scope@check%
}%
\def\endtikz@scope@env{%
\tikz@atend@scope%
\endgroup%
\endpgfidscope%
\iftikz@transparency@group\endpgftransparencygroup\fi%
\endgroup%
\endpgfscope%
\tikz@lib@scope@check%
}%
\def\tikz@scoped{\tikz@collect@scope@anims\tikz@scoped@opt}%
\def\tikz@scoped@opt[#1]{\scope[#1]\pgfutil@ifnextchar\bgroup{\tikz@scoped@}{\tikz@scoped@@single}}%
\def\tikz@scoped@{\bgroup\tikz@auto@end@pathtrue\aftergroup\endscope\let\pgf@temp=}%
\def\tikz@scoped@@single#1{%
\expandafter\ifx\csname tikz@scoped@protected@command\string#1\endcsname\relax%
\expandafter\tikz@scoped@@%
\else%
\begingroup\def\tikz@scoped@path@do@at@end{\endgroup\endscope}%
\fi%
#1%
}%
\def\tikz@scoped@@{%
\let\tikz@scoped@next=\tikz@scoped@collectnormalsemicolon%
\ifnum\the\catcode`\;=\active\relax%
\let\tikz@scoped@next=\tikz@scoped@collectactivesemicolon%
\fi%
\tikz@scoped@next}%
\def\tikz@scoped@collectnormalsemicolon#1;{#1;\endscope}
{
\catcode`\;=\active
\gdef\tikz@scoped@collectactivesemicolon#1;{#1;\endscope}
}%
\def\tikzaddtikzonlycommandshortcutlet#1#2{%
\expandafter\def\expandafter\tikz@installcommands\expandafter{\tikz@installcommands
\let#1=#2%
}%
}%
\def\tikzaddtikzonlycommandshortcutdef#1#2{%
\expandafter\def\expandafter\tikz@installcommands\expandafter{\tikz@installcommands
\def#1{#2}%
}%
}%
\def\tikz@installcommands{%
\let\tikz@origscope=\scope%
\let\tikz@origscoped=\scoped%
\let\tikz@origendscope=\endscope%
\let\tikz@origstartscope=\startscope%
\let\tikz@origstopscope=\stopscope%
\let\tikz@origpath=\path%
\let\tikz@origagainpath=\againpath%
\let\tikz@origdraw=\draw%
\let\tikz@origpattern=\pattern%
\let\tikz@origfill=\fill%
\let\tikz@origfilldraw=\filldraw%
\let\tikz@origshade=\shade%
\let\tikz@origshadedraw=\shadedraw%
\let\tikz@origclip=\clip%
\let\tikz@origuseasboundingbox=\useasboundingbox%
\let\tikz@orignode=\node%
\let\tikz@origpic=\pic%
\let\tikz@origcoordinate=\coordinate%
\let\tikz@origmatrix=\matrix%
\let\tikz@origcalendar=\calendar%
\let\tikz@origdv=\datavisualization%
\let\tikz@origgraph=\graph%
\let\scope=\tikz@scope@env%
\let\scoped=\tikz@scoped%
\let\endscope=\endtikz@scope@env%
\let\startscope=\scope%
\let\stopscope=\endscope%
\let\path=\tikz@command@path%
\let\againpath=\tikz@command@againpath%
\def\draw{\path[draw]}%
\def\pattern{\path[pattern]}%
\def\fill{\path[fill]}%
\def\filldraw{\path[fill,draw]}%
\def\shade{\path[shade]}%
\def\shadedraw{\path[shade,draw]}%
\def\clip{\path[clip]}%
\def\graph{\path graph}%
\def\useasboundingbox{\path[use as bounding box]}%
\def\node{\tikz@path@overlay{node}}%
\def\pic{\tikz@path@overlay{pic}}%
\def\coordinate{\tikz@path@overlay{coordinate}}%
\def\matrix{\tikz@path@overlay{node[matrix]}}%
\def\calendar{\tikz@lib@cal@calendar}%
\def\datavisualization{\tikz@lib@datavisualization}%
}%
\ifx\tikz@lib@cal@calendar\@undefined
\def\tikz@lib@cal@calendar{\tikzerror{You need to say \string\usetikzlibrary{calendar} to use the \string\calendar{} command}}%
\fi
\ifx\tikz@lib@datavisualization\@undefined
\def\tikz@lib@datavisualization{\tikzerror{You need to say \string\usetikzlibrary{datavisualization} to use the \string\datavisualization{} command}}%
\fi
\def\tikz@path@overlay#1{%
\let\tikz@signal@path=\tikz@signal@path%
\pgfutil@ifnextchar<{\tikz@path@overlayed{#1}}{\path #1}}%
\def\tikz@path@overlayed#1<#2>{\path<#2> #1}%
\def\tikz@uninstallcommands{%
\let\scope=\tikz@origscope%
\let\scoped=\tikz@origscoped%
\let\endscope=\tikz@origendscope%
\let\startscope=\tikz@origstartscope%
\let\stopscope=\tikz@origstopscope%
\let\path=\tikz@origpath%
\let\againpath=\tikz@origagainpath%
\let\draw=\tikz@origdraw%
\let\pattern=\tikz@origpattern%
\let\fill=\tikz@origfill%
\let\filldraw=\tikz@origfilldraw%
\let\shade=\tikz@origshade%
\let\shadedraw=\tikz@origshadedraw%
\let\clip=\tikz@origclip%
\let\useasboundingbox=\tikz@origuseasboundingbox%
\let\node=\tikz@orignode%
\let\pic=\tikz@origpic%
\let\coordinate=\tikz@origcoordinate%
\let\matrix=\tikz@origmatrix%
\let\calendar=\tikz@origcalendar%
\let\datavisualization=\tikz@origdv%
\let\graph=\tikz@origgraph%
}%
{%
\catcode`\;=12
\gdef\tikz@nonactivesemicolon{;}%
\catcode`\:=12
\gdef\tikz@nonactivecolon{:}%
\catcode`\|=12
\gdef\tikz@nonactivebar{|}%
\catcode`\!=12
\gdef\tikz@nonactiveexlmark{!}%
\catcode`\;=\active
\catcode`\:=\active
\catcode`\|=\active
\catcode`\"=\active
\catcode`\!=\active
\gdef\tikz@activesemicolon{;}%
\gdef\tikz@activecolon{:}%
\gdef\tikz@activebar{|}%
\gdef\tikz@activequotes{"}%
\global\let\tikz@active@quotes@token="%
\gdef\tikz@activeexlmark{!}%
\gdef\tikz@deactivatthings{%
\def;{\tikz@nonactivesemicolon}%
\def:{\tikz@nonactivecolon}%
\def|{\tikz@nonactivebar}%
\def!{\tikz@nonactiveexlmark}%
}%
}%
\let\tikz@orig@shorthands\pgfutil@empty
\def\tikz@switchoff@shorthands{%
\ifx\tikz@orig@shorthands\pgfutil@empty%
\edef\tikz@orig@shorthands{%
\catcode\noexpand`\noexpand\;\the\catcode`\;\relax%
\catcode\noexpand`\noexpand\:\the\catcode`\:\relax%
\catcode\noexpand`\noexpand\|\the\catcode`\|\relax%
\catcode\noexpand`\noexpand\!\the\catcode`\!\relax%
\catcode\noexpand`\noexpand\,\the\catcode`\,\relax%
\catcode\noexpand`\noexpand\<\the\catcode`\<\relax%
\catcode\noexpand`\noexpand\>\the\catcode`\>\relax%
\catcode\noexpand`\noexpand\"\the\catcode`\"\relax%
\catcode\noexpand`\noexpand\'\the\catcode`\'\relax%
\catcode\noexpand`\noexpand\-\the\catcode`\-\relax%
\catcode\noexpand`\noexpand\=\the\catcode`\=\relax%
\catcode\noexpand`\noexpand\.\the\catcode`\.\relax%
\catcode\noexpand`\noexpand\$\the\catcode`\$\relax%
}%
\catcode`\;12\relax%
\catcode`\:12\relax%
\catcode`\|12\relax%
\catcode`\!12\relax%
\catcode`\,12\relax%
\catcode`\<12\relax%
\catcode`\>12\relax%
\catcode`\"12\relax%
\catcode`\'12\relax%
\catcode`\-12\relax%
\catcode`\=12\relax%
\catcode`\.12\relax%
\catcode`\$3\relax%
\fi%
}%
\def\tikz@command@path{%
\let\tikz@signal@path=\tikz@signal@path%
\pgfutil@ifnextchar[{\tikz@check@earg}%
{\pgfutil@ifnextchar<{\tikz@doopt}{\tikz@@command@path}}}%
\pgfutil@protected\def\tikz@signal@path{\tikz@signal@path}%
\def\tikz@check@earg[#1]{%
\pgfutil@ifnextchar<{\tikz@swap@args[#1]}{\tikz@@command@path[#1]}}
\def\tikz@swap@args[#1]<#2>{\tikz@command@path<#2>[#1]}%
\def\tikz@doopt{%
\let\tikz@next=\tikz@eargnormalsemicolon%
\ifnum\the\catcode`\;=\active\relax%
\let\tikz@next=\tikz@eargactivesemicolon%
\fi%
\tikz@next}%
\long\def\tikz@eargnormalsemicolon<#1>#2;{\alt<#1>{\tikz@@command@path#2;}{\tikz@path@do@at@end}}%
{
\catcode`\;=\active
\long\global\def\tikz@eargactivesemicolon<#1>#2;{\alt<#1>{\tikz@@command@path#2;}{\tikz@path@do@at@end}}%
}
\def\tikz@@command@path{%
\edef\tikzscope@linewidth{\the\pgflinewidth}%
\begingroup%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\let\tikz@path@do@at@end=\tikz@lib@scope@check%
\let\tikz@options=\pgfutil@empty%
\tikz@clear@rdf@options%
\let\tikz@mode=\pgfutil@empty%
\let\tikz@moveto@waiting=\relax%
\let\tikz@timer=\relax%
\let\tikz@tangent=\relax%
\let\tikz@collected@onpath=\pgfutil@empty%
\let\tikz@preactions=\pgfutil@empty%
\let\tikz@postactions=\pgfutil@empty%
\tikz@snakedfalse%
\tikz@decoratepathfalse%
\tikz@node@is@a@labelfalse%
\tikz@resetexpandcount
\pgf@path@lastx=0pt%
\pgf@path@lasty=0pt%
\tikz@lastx=0pt%
\tikz@lasty=0pt%
\tikz@lastxsaved=0pt%
\tikz@lastysaved=0pt%
\tikzset{every path/.try}%
\tikz@scan@next@command%
}%
\def\tikz@scan@next@command{%
\ifx\tikz@collected@onpath\pgfutil@empty%
\else%
\tikz@invoke@collected@onpath%
\fi%
\afterassignment\tikz@handle\let\pgf@let@token=%
}%
\newcount\tikz@expandcount
\def\tikz@resetexpandcount{\tikz@expandcount=100\relax}
\let\tikz@collected@onpath=\pgfutil@empty%
\edef\tikz@frozen@relax@token{\ifnum0=0\fi}
\def\tikz@handle{%
\pgfutil@switch\pgfutil@ifx\pgf@let@token{%
{(}{\let\pgfutil@next\tikz@movetoabs}%
{+}{\let\pgfutil@next\tikz@movetorel}%
{-}{\let\pgfutil@next\tikz@lineto}%
{.}{\let\pgfutil@next\tikz@dot}%
{r}{\let\pgfutil@next\tikz@rect}%
{n}{\let\pgfutil@next\tikz@fig}%
{[}{\let\pgfutil@next\tikz@parse@options}%
{c}{\let\pgfutil@next\tikz@cchar}%
{\bgroup}{\let\pgfutil@next\tikz@beginscope}%
{\egroup}{\let\pgfutil@next\tikz@endscope}%
{;}{\let\pgfutil@next\tikz@finish}%
{a}{\let\pgfutil@next\tikz@a@char}%
{e}{\let\pgfutil@next\tikz@e@char}%
{g}{\let\pgfutil@next\tikz@g@char}%
{s}{\let\pgfutil@next\tikz@schar}%
{|}{\let\pgfutil@next\tikz@vh@lineto}%
{p}{\pgfsetmovetofirstplotpoint\let\pgfutil@next\tikz@pchar}%
{t}{\let\pgfutil@next\tikz@to}%
{\pgfextra}{\let\pgfutil@next\tikz@extra}%
{\foreach}{\let\pgfutil@next\tikz@foreach}%
{f}{\let\pgfutil@next\tikz@fchar}%
{\pgf@stop}{\let\pgfutil@next\relax}%
{\par}{\let\pgfutil@next\tikz@scan@next@command}%
{d}{\let\pgfutil@next\tikz@decoration}%
{l}{\let\pgfutil@next\tikz@l@char}%
{:}{\let\pgfutil@next\tikz@colon@char}%
{\relax}{\relax\let\pgfutil@next\tikz@scan@next@command}%
}{\tikz@resetexpandcount\pgfutil@next}{\tikz@expand}%
}%
\def\tikz@l@char{%
\pgfutil@ifnextchar e{\tikz@let@command}{%
\pgfutil@ifnextchar i{\tikz@lsystem}{%
\pgfutil@ifnextchar-{\tikz@@lsystem}{\tikz@expand}%
}%
}%
}%
\def\tikz@lsystem{%
\tikzerror{You need to say \string\usetikzlibrary{lindenmayersystems} to draw Lindenmayer systems}
}%
\def\tikz@@lsystem{%
\tikzerror{You need to say \string\usetikzlibrary{lindenmayersystems} to draw L-systems}
}%
\def\tikz@pchar{\pgfutil@ifnextchar l{\tikz@plot}{\pgfutil@ifnextchar i{\tikz@subpicture}{\tikz@parabola}}}%
\def\tikz@cchar{%
\pgfutil@ifnextchar i{\tikz@circle}%
{\pgfutil@ifnextchar h{\tikz@children}{\tikz@cochar}}}%
\def\tikz@cochar o{%
\pgfutil@ifnextchar o{\tikz@coordinate}{\tikz@cosine}}%
\def\tikz@e@char{%
\pgfutil@ifnextchar l{\tikz@ellipse}{\tikz@@e@char}}%
\def\tikz@a@char{%
\pgfutil@ifnextchar r{\tikz@arcA}{\tikzerror{Arc expected}}}%
\def\tikz@@e@char dge{%
\pgfutil@ifnextchar f{\tikz@edgetoparent}{\tikz@edge@plain}}%
\def\tikz@schar{\pgfutil@ifnextchar i{\tikz@sine}{\tikz@svg@path}}%
\def\tikz@g@char r{\pgfutil@ifnextchar i{\tikz@grid}{\tikz@graph}}%
\def\tikz@svg@path{%
\tikzerror{You need to say \string\usetikzlibrary{svg.path} to use the svg path command}
}%
\def\tikz@finish{%
\box\tikz@figbox@bg%
\iftikz@decoratepath%
\tikz@lib@dec@decorate@path%
\fi%
\pgfsyssoftpath@getcurrentpath\tikz@actions@path%
\edef\tikz@restorepathsize{%
\global\pgf@pathmaxx=\the\pgf@pathmaxx%
\global\pgf@pathmaxy=\the\pgf@pathmaxy%
\global\pgf@pathminx=\the\pgf@pathminx%
\global\pgf@pathminy=\the\pgf@pathminy%
}%
\tikz@preactions%
\let\tikz@path@picture=\pgfutil@empty%
\tikz@mode@fillfalse%
\tikz@mode@drawfalse%
\tikz@mode@doublefalse%
\tikz@mode@clipfalse%
\tikz@mode@boundaryfalse%
\tikz@mode@fade@pathfalse%
\tikz@mode@fade@scopefalse%
\edef\tikz@pathextend{%
{\noexpand\pgfqpoint{\the\pgf@pathminx}{\the\pgf@pathminy}}%
{\noexpand\pgfqpoint{\the\pgf@pathmaxx}{\the\pgf@pathmaxy}}%
}%
\tikz@mode%
\iftikz@mode@fade@path%
\tikz@addoption{%
\iftikz@fade@adjust%
\iftikz@mode@draw%
\pgfsetfadingforcurrentpathstroked{\tikz@path@fading}{\tikz@do@fade@transform}%
\else%
\pgfsetfadingforcurrentpath{\tikz@path@fading}{\tikz@do@fade@transform}%
\fi%
\else%
\pgfsetfading{\tikz@path@fading}{\tikz@do@fade@transform}%
\fi%
\tikz@mode@fade@pathfalse%
}%
\fi%
\iftikz@mode@fade@scope%
\iftikz@fade@adjust%
\iftikz@mode@draw%
\pgfsetfadingforcurrentpathstroked{\tikz@scope@fading}{\tikz@do@fade@transform}%
\else%
\pgfsetfadingforcurrentpath{\tikz@scope@fading}{\tikz@do@fade@transform}%
\fi%
\else%
\pgfsetfading{\tikz@scope@fading}{\tikz@do@fade@transform}%
\fi%
\tikz@mode@fade@scopefalse%
\fi%
\ifx\tikz@options\pgfutil@empty%
\else%
\pgfsys@beginscope%
\let\pgfscope@stroke@color=\pgf@strokecolor@global%
\let\pgfscope@fill@color=\pgf@fillcolor@global%
\begingroup%
\tikz@options%
\fi%
\tikz@do@rdf@pre@options%
\tikz@is@nodefalse%
\tikz@call@id@hook%
\iftikz@mode@clip\else%
\pgfidscope%
\tikz@do@rdf@post@options%
\begingroup%
\fi%
\iftikz@mode@fill%
\iftikz@mode@shade%
\pgfsyssoftpath@getcurrentpath\tikz@temppath
\pgfprocessround{\tikz@temppath}{\tikz@temppath}%
\pgfsyssoftpath@setcurrentpath\tikz@temppath%
\pgfsyssoftpath@invokecurrentpath%
\pgfpushtype%
\pgfusetype{.path fill}%
\pgfsys@fill%
\pgfpoptype%
\tikz@mode@fillfalse%
\else%
\ifx\tikz@path@picture\pgfutil@empty%
\else%
\pgfsyssoftpath@getcurrentpath\tikz@temppath
\pgfprocessround{\tikz@temppath}{\tikz@temppath}%
\pgfsyssoftpath@setcurrentpath\tikz@temppath%
\pgfsyssoftpath@invokecurrentpath%
\pgfpushtype%
\pgfusetype{.path fill}%
\pgfsys@fill%
\pgfpoptype%
\tikz@mode@fillfalse%
\fi%
\fi%
\fi%
\iftikz@mode@shade%
\pgfsyssoftpath@getcurrentpath\tikz@temppath
\pgfprocessround{\tikz@temppath}{\tikz@temppath}%
\pgfsyssoftpath@setcurrentpath\tikz@temppath%
\pgfpushtype%
\pgfusetype{.path shade}%
\pgfshadepath{\tikz@shading}{\tikz@shade@angle}%
\pgfpoptype%
\tikz@mode@shadefalse%
\fi%
\ifx\tikz@path@picture\pgfutil@empty%
\else%
\begingroup%
\pgfusetype{.path picture}%
\pgfidscope%
\pgfsys@beginscope%
\let\tikz@id@name\pgfutil@empty%
\pgfclearid%
\pgfsyssoftpath@getcurrentpath\tikz@temppath
\pgfprocessround{\tikz@temppath}{\tikz@temppath}%
\pgfsyssoftpath@setcurrentpath\tikz@temppath%
\pgfsyssoftpath@invokecurrentpath%
\pgfsys@clipnext%
\pgfsys@discardpath%
\pgf@relevantforpicturesizefalse%
\expandafter\def\csname pgf@sh@ns@path picture bounding box\endcsname{rectangle}
\expandafter\edef\csname pgf@sh@np@path picture bounding box\endcsname{%
\def\noexpand\southwest{\noexpand\pgfqpoint{\the\pgf@pathminx}{\the\pgf@pathminy}}%
\def\noexpand\northeast{\noexpand\pgfqpoint{\the\pgf@pathmaxx}{\the\pgf@pathmaxy}}%
}
\expandafter\def\csname pgf@sh@nt@path picture bounding box\endcsname{{1}{0}{0}{1}{0pt}{0pt}}
\expandafter\def\csname pgf@sh@pi@path picture bounding box\endcsname{\pgfpictureid}
\pgfinterruptpath%
\tikz@path@picture%
\endpgfinterruptpath%
\pgfsys@endscope%
\endpgfidscope%
\endgroup%
\let\tikz@path@picture=\pgfutil@empty%
\fi%
\iftikz@mode@draw%
\iftikz@mode@double%
\begingroup%
\pgfsys@beginscope%
\tikz@double@setup%
\fi%
\fi%
\pgfpushtype%
\edef\tikz@temp{\noexpand\pgfusepath{%
\iftikz@mode@fill fill,\fi%
\iftikz@mode@draw draw,\fi%
\iftikz@mode@clip clip\fi%
}}%
\pgfusetype{.path}%
\tikz@temp%
\pgfpoptype%
\tikz@mode@fillfalse%
\iftikz@mode@draw%
\iftikz@mode@double%
\pgfsys@endscope%
\endgroup%
\fi%
\fi%
\tikz@mode@drawfalse%
\tikz@postactions%
\box\tikz@figbox%
\iftikz@mode@clip\else\endgroup\endpgfidscope\fi%
\ifx\tikz@options\pgfutil@empty%
\else%
\endgroup%
\global\let\pgf@strokecolor@global=\pgfscope@stroke@color%
\global\let\pgf@fillcolor@global=\pgfscope@fill@color%
\pgfsys@endscope%
\iftikz@mode@clip%
\tikzerror{Extra options not allowed for clipping path command.}%
\fi%
\fi%
\iftikz@mode@clip%
\aftergroup\pgf@relevantforpicturesizefalse%
\fi%
\iftikz@mode@boundary%
\aftergroup\pgf@relevantforpicturesizefalse%
\fi%
\endgroup%
\global\pgflinewidth=\tikzscope@linewidth%
\tikz@path@do@at@end%
}%
\let\tikz@lib@scope@check\pgfutil@empty%
\def\tikz@path@do@at@end{\tikz@lib@scope@check}%
\def\tikz@@pathtext{@path}%
\def\pgf@outer@auto@adjust@hook{%
{%
\tikz@mode@drawfalse%
\tikz@mode%
\expandafter%
}%
\iftikz@mode@draw\else%
\pgfkeyslet{/pgf/outer xsep}\pgf@zero@text
\pgfkeyslet{/pgf/outer ysep}\pgf@zero@text
\fi%
}%
\def\tikz@extra@preaction#1{%
{%
\pgfsys@beginscope%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\path[#1];%
\pgfsyssoftpath@setcurrentpath\tikz@actions@path%
\tikz@restorepathsize%
\pgfsys@endscope%
}%
}%
\def\tikz@extra@postaction#1{%
{%
\pgfsys@beginscope%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\tikz@restorepathsize%
\path[#1]\pgfextra{\pgfsyssoftpath@setcurrentpath\tikz@actions@path};%
\pgf@resetpathsizes%
\pgfsys@endscope%
}%
}%
\def\tikz@skip#1{\tikz@scan@next@command#1}%
\def\tikz@expand{%
\advance\tikz@expandcount by -1
\ifnum\tikz@expandcount<0\relax%
\expandafter\pgfutil@firstoftwo
\else
\expandafter\pgfutil@secondoftwo
\fi
{%
\tikzerror{Giving up on this path. Did you forget a semicolon?}%
\global\let\tikz@expand@last@token=\pgf@let@token
\tikz@finish%
\expandafter\let\expandafter\tikz@expand@last@token@\csname tikz@expand@last@token\endcsname
\global\let\tikz@expand@last@token=\relax
\tikz@expand@last@token@
}{%
\tikz@@expand
}%
}
\def\tikz@@expand{%
\expandafter\tikz@scan@next@command\pgf@let@token}%
\newif\iftikz@auto@end@path
\def\tikz@beginscope{\begingroup\tikz@auto@end@pathfalse\tikz@scan@next@command}%
\def\tikz@endscope{%
\iftikz@auto@end@path\expandafter\tikz@finish\expandafter\egroup\else\expandafter\tikz@@endscope\fi%
}%
\def\tikz@@endscope{%
\global\setbox\tikz@tempbox=\box\tikz@figbox%
\global\setbox\tikz@tempbox@bg=\box\tikz@figbox@bg%
\global\let\tikz@tangent@temp\tikz@tangent%
\edef\tikz@marshal{%
\tikz@lastx=\the\tikz@lastx%
\tikz@lasty=\the\tikz@lasty%
\iftikz@current@point@local%
\else%
\tikz@lastxsaved=\the\tikz@lastxsaved%
\tikz@lastysaved=\the\tikz@lastysaved%
\ifx\tikz@moveto@waiting\relax%
\let\tikz@moveto@waiting\relax%
\else%
\def\noexpand\tikz@moveto@waiting{\tikz@moveto@waiting}%
\fi%
\iftikz@shapeborder%
\noexpand\tikz@shapebordertrue%
\def\noexpand\tikz@shapeborder@name{\tikz@shapeborder@name}%
\else%
\noexpand\tikz@shapeborderfalse%
\fi%
\fi%
}%
\expandafter%
\endgroup\tikz@marshal%
\setbox\tikz@figbox=\box\tikz@tempbox%
\setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
\let\tikz@tangent\tikz@tangent@temp%
\tikz@scan@next@command}%
\def\tikz@extra{\pgfutil@ifnextchar\bgroup\tikz@@extra\relax}%
\long\def\tikz@@extra#1{#1\tikz@scan@next@command}%
\let\endpgfextra=\tikz@scan@next@command
\def\pgfextra{pgfextra}%
\def\tikz@fchar oreach{\tikz@foreach}%
\def\tikz@foreach{%
\def\pgffor@beginhook{%
\tikz@lastx=\tikz@foreach@save@lastx%
\tikz@lasty=\tikz@foreach@save@lasty%
\tikz@lastxsaved=\tikz@foreach@save@lastxsaved%
\tikz@lastysaved=\tikz@foreach@save@lastysaved%
\setbox\tikz@figbox=\box\tikz@tempbox%
\setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
\expandafter\tikz@scan@next@command\pgfutil@firstofone}%
\def\pgffor@endhook{\pgfextra{%
\xdef\tikz@foreach@save@lastx{\the\tikz@lastx}%
\xdef\tikz@foreach@save@lasty{\the\tikz@lasty}%
\xdef\tikz@foreach@save@lastxsaved{\the\tikz@lastxsaved}%
\xdef\tikz@foreach@save@lastysaved{\the\tikz@lastysaved}%
\global\setbox\tikz@tempbox=\box\tikz@figbox%
\global\setbox\tikz@tempbox@bg=\box\tikz@figbox@bg%
\pgfutil@gobble}}%
\def\pgffor@afterhook{%
\tikz@lastx=\tikz@foreach@save@lastx%
\tikz@lasty=\tikz@foreach@save@lasty%
\tikz@lastxsaved=\tikz@foreach@save@lastxsaved%
\tikz@lastysaved=\tikz@foreach@save@lastysaved%
\let\pgffor@beginhook\relax%
\let\pgffor@endhook\relax%
\let\pgffor@afterhook\relax%
\setbox\tikz@figbox=\box\tikz@tempbox%
\setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
\tikz@scan@next@command}%
\global\setbox\tikz@tempbox=\box\tikz@figbox%
\global\setbox\tikz@tempbox@bg=\box\tikz@figbox@bg%
\xdef\tikz@foreach@save@lastx{\the\tikz@lastx}%
\xdef\tikz@foreach@save@lasty{\the\tikz@lasty}%
\xdef\tikz@foreach@save@lastxsaved{\the\tikz@lastxsaved}%
\xdef\tikz@foreach@save@lastysaved{\the\tikz@lastysaved}%
\foreach}%
\def\tikz@command@againpath#1{%
\pgfextra{%
\pgfsyssoftpath@getcurrentpath\tikz@temp%
\expandafter\pgfutil@g@addto@macro\expandafter\tikz@temp\expandafter{#1}%
\pgfsyssoftpath@setcurrentpath\tikz@temp%
}%
}%
\def\tikz@colon@char#1=#2{%
\tikz@scan@next@command{[animate={myself:{#1}={#2}}]}%
}%
\newif\iftikz@shapeborder
\def\tikz@movetoabs{\tikz@moveto(}%
\def\tikz@movetorel{\tikz@moveto+}%
\def\tikz@moveto{%
\tikz@scan@one@point{\tikz@@moveto}}%
\def\tikz@@moveto#1{%
\tikz@make@last@position{#1}%
\iftikz@shapeborder%
\edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
\else%
\tikz@@movetosave{\tikz@last@position}%
\let\tikz@moveto@waiting=\relax%
\fi%
\tikz@scan@next@command%
}%
\def\tikz@@movetosave#1{%
{\pgftransformreset
\pgf@process{#1}%
\xdef\tikz@marshal{%
\tikz@lastmovetox=\the\pgf@x\relax%
\tikz@lastmovetoy=\the\pgf@y\relax%
}%
}%
\tikz@marshal
\pgfpathmoveto{#1}%
}%
\let\tikz@moveto@waiting=\relax %
\def\tikz@flush@moveto{%
\ifx\tikz@moveto@waiting\relax%
\else%
\tikz@@movetosave{\tikz@last@position}%
\fi%
\let\tikz@moveto@waiting=\relax%
}%
\def\tikz@flush@moveto@toward#1#2#3{%
\ifx\tikz@moveto@waiting\relax%
\else%
\pgf@process{\pgfpointshapeborder{\tikz@moveto@waiting}{#1}}%
#2=\pgf@x%
#3=\pgf@y%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\tikz@@movetosave{\pgfqpoint{\pgf@x}{\pgf@y}}%
\fi%
\let\tikz@moveto@waiting=\relax%
}%
\def\tikz@collect@coordinate@onpath#1c{%
\pgfutil@ifnextchar y{\tikz@cycle@expander@add#1}{\tikz@collect@coordinate@onpath@{#1}}}%
\def\tikz@collect@coordinate@onpath@#1oordinate{%
\pgfutil@ifnextchar[{\tikz@@collect@coordinate@opt#1}{\tikz@@collect@coordinate@opt#1[]}}%
\def\tikz@@collect@coordinate@opt#1[#2]{%
\pgfutil@ifnextchar({\tikz@@collect@coordinate#1[#2]}{%
\tikz@collect@label@onpath#1node[shape=coordinate,#2]{}}}%
\def\tikz@@collect@coordinate#1[#2](#3){%
\tikz@collect@label@onpath#1node[shape=coordinate,#2](#3){}}%
\newif\iftikz@collect@pic
\def\tikz@collect@label@onpath#1node{%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath node}%
\let\tikz@collect@cont#1%
\tikz@collect@picfalse%
\tikz@collect@label@scan}%
\def\tikz@collect@pic@onpath#1pic{%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath pic}%
\let\tikz@collect@cont#1
\tikz@collect@pictrue%
\tikz@collect@label@scan}%
\def\tikz@collect@label@scan{%
\pgfutil@ifnextchar f{\tikz@collect@nodes}{%
\pgfutil@ifnextchar({\tikz@collect@paran}%
{\pgfutil@ifnextchar[{\tikz@collect@options}%
{\pgfutil@ifnextchar:{\tikz@collect@animation}%
{\pgfutil@ifnextchar\bgroup{\tikz@collect@arg}%
{\tikz@collect@cont}}}}}%
}%
\def\tikz@collect@nodes foreach#1in{%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath foreach#1in}%
\pgfutil@ifnextchar\bgroup\tikz@collect@nodes@group\tikz@collect@nodes@one%
}%
\def\tikz@collect@nodes@one#1{%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath #1}%
\tikz@collect@label@scan%
}%
\def\tikz@collect@nodes@group#1{%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath{#1}}%
\tikz@collect@label@scan%
}%
\def\tikz@collect@animation#1=#2{%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath#1={#2}}%
\tikz@collect@label@scan%
}%
\def\tikz@collect@paran#1){%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath#1)}%
\tikz@collect@label@scan%
}%
\def\tikz@collect@options#1]{%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath#1]}%
\tikz@collect@label@scan%
}%
\def\tikz@collect@arg#1{%
\iftikz@handle@active@nodes%
\iftikz@collect@pic%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath{#1}}%
\else%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath{\scantokens{#1}}}%
\fi%
\else%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath{#1}}%
\fi%
\tikz@collect@cont%
}%
\def\tikz@invoke@collected@onpath{%
\tikz@node@is@a@labeltrue%
\let\tikz@temp=\tikz@collected@onpath%
\let\tikz@collected@onpath=\pgfutil@empty%
\expandafter\tikz@scan@next@command\tikz@temp\pgf@stop%
\tikz@node@is@a@labelfalse%
}%
\def\tikz@cycle@expander#1{\pgfutil@ifnextchar c{\tikz@cycle@expander@{#1}}{#1}}%
\def\tikz@cycle@expander@#1c{\pgfutil@ifnextchar y{\tikz@cycle@expander@add{#1}}{#1c}}%
\def\tikz@cycle@expander@add#1ycle{#1(current subpath start)--cycle}%
\def\tikz@lineto{%
\pgfutil@ifnextchar |%
{\expandafter\tikz@hv@lineto\pgfutil@gobble}%
{\expandafter\pgfutil@ifnextchar\tikz@activebar{\expandafter\tikz@hv@lineto\pgfutil@gobble}%
{\expandafter\tikz@lineto@mid\pgfutil@gobble}}}%
\def\tikz@lineto@mid{%
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@lineto@mid}%
{%
\pgfutil@ifnextchar c{\tikz@close}{%
\pgfutil@ifnextchar p{\tikz@lineto@plot@or@pic}{\tikz@scan@one@point{\tikz@@lineto}}}}}%
\def\tikz@lineto@plot@or@pic p{%
\pgfutil@ifnextchar i{\tikz@collect@pic@onpath\tikz@lineto@mid p}{%
\pgfsetlinetofirstplotpoint\tikz@plot}%
}%
\def\tikz@@lineto#1{%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}
\iftikz@shapeborder%
\pgf@process{\pgfpointshapeborder{\tikz@shapeborder@name}{\tikz@last@position}}%
\tikz@make@last@position{\pgfqpoint{\pgf@x}{\pgf@y}}%
\tikz@flush@moveto@toward{\tikz@last@position}\pgf@x\pgf@y%
\tikz@path@lineto{\tikz@last@position}%
\edef\tikz@timer@end{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\tikz@make@last@position{#1}%
\edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
\else%
\tikz@make@last@position{#1}%
\tikz@flush@moveto@toward{\tikz@last@position}\pgf@x\pgf@y%
\tikz@path@lineto{\tikz@last@position}%
\edef\tikz@timer@end{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\fi%
\let\tikz@timer=\tikz@timer@line%
\let\tikz@tangent\tikz@timer@start%
\tikz@scan@next@command%
}%
\def\tikz@path@lineto#1{%
\iftikz@snaked%
{
\pgfsyssoftpathmovetorelevantfalse%
\pgfpathsnakesto{\tikz@presnake,{\tikz@snake}{\tikz@mainsnakelength}{\noexpand\tikz@snake@install@trans}{},\tikz@postsnake}{#1}%
}
\else%
\pgfpathlineto{#1}%
\fi%
}%
\def\tikz@path@close#1{%
\iftikz@snaked%
{%
\pgftransformreset%
\pgfpathsnakesto{\tikz@presnake,{\tikz@snake}{\tikz@mainsnakelength}{\noexpand\tikz@snake@install@trans}{},\tikz@postsnake}{#1}%
}%
\fi%
\pgfpathclose%
}%
\def\tikz@hv@lineto{%
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@hv@lineto}{%
\pgfutil@ifnextchar p{\tikz@collect@pic@onpath\tikz@hv@lineto}%
{\pgfutil@ifnextchar c{\tikz@collect@coordinate@onpath\tikz@hv@lineto}%
{\tikz@scan@one@point{\tikz@@hv@lineto}}}}}%
\def\tikz@@hv@lineto#1{%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\pgf@yc=\tikz@lasty%
\tikz@make@last@position{#1}%
\edef\tikz@tangent{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\pgf@yc}}%
\tikz@flush@moveto@toward{\pgfqpoint{\tikz@lastx}{\pgf@yc}}\pgf@x\pgf@yc%
\iftikz@shapeborder%
{%
\pgf@process{\pgfpointshapeborder{\tikz@shapeborder@name}{\pgfqpoint{\tikz@lastx}{\pgf@yc}}}%
\tikz@make@last@position{\pgfqpoint{\pgf@x}{\pgf@y}}%
\tikz@path@lineto{\pgfqpoint{\tikz@lastx}{\pgf@yc}}%
\tikz@path@lineto{\tikz@last@position}%
\xdef\tikz@timer@end@temp{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
}%
\let\tikz@timer@end=\tikz@timer@end@temp%
\edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
\else%
\tikz@path@lineto{\pgfqpoint{\tikz@lastx}{\pgf@yc}}%
\tikz@path@lineto{\tikz@last@position}%
\edef\tikz@timer@end{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\fi%
\let\tikz@timer=\tikz@timer@hvline%
\tikz@scan@next@command%
}%
\def\tikz@vh@lineto-{\tikz@vh@lineto@next}%
\def\tikz@vh@lineto@next{%
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@vh@lineto@next}{%
\pgfutil@ifnextchar p{\tikz@collect@pic@onpath\tikz@vh@lineto@next}%
{\pgfutil@ifnextchar c{\tikz@collect@coordinate@onpath\tikz@vh@lineto@next}%
{\tikz@scan@one@point\tikz@@vh@lineto}}}}%
\def\tikz@@vh@lineto#1{%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\pgf@xc=\tikz@lastx%
\tikz@make@last@position{#1}%
\edef\tikz@tangent{\noexpand\pgfqpoint{\the\pgf@xc}{\the\tikz@lasty}}%
\tikz@flush@moveto@toward{\pgfqpoint{\pgf@xc}{\tikz@lasty}}\pgf@xc\pgf@y%
\iftikz@shapeborder%
{%
\pgf@process{\pgfpointshapeborder{\tikz@shapeborder@name}{\pgfqpoint{\pgf@xc}{\tikz@lasty}}}%
\tikz@make@last@position{\pgfqpoint{\pgf@x}{\pgf@y}}%
\tikz@path@lineto{\pgfqpoint{\pgf@xc}{\tikz@lasty}}%
\tikz@path@lineto{\tikz@last@position}%
\xdef\tikz@timer@end@temp{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
}%
\let\tikz@timer@end=\tikz@timer@end@temp%
\edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
\else%
\tikz@path@lineto{\pgfqpoint{\pgf@xc}{\tikz@lasty}}%
\tikz@path@lineto{\tikz@last@position}%
\edef\tikz@timer@end{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\fi%
\let\tikz@timer=\tikz@timer@vhline%
\tikz@scan@next@command%
}%
\def\tikz@close c{%
\pgfutil@ifnextchar o{\tikz@collect@coordinate@onpath\tikz@lineto@mid c}%
{\tikz@@close c}}%
\def\tikz@@close cycle{%
\tikz@flush@moveto%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}
\tikz@make@last@position{\expandafter\pgfpoint\pgfsyssoftpath@lastmoveto}%
\tikz@path@close{\expandafter\pgfpoint\pgfsyssoftpath@lastmoveto}%
\def\pgfstrokehook{}%
\edef\tikz@timer@end{%
\noexpand\pgfqpoint{\the\tikz@lastmovetox}{\the\tikz@lastmovetoy}}%
\let\tikz@timer=\tikz@timer@line%
\let\tikz@tangent\tikz@timer@start%
\tikz@scan@next@command%
}%
\def\tikz@parse@options#1]{%
\tikzset{#1}%
\tikz@scan@next@command%
}%
\def\tikz@edge@plain{%
\begingroup%
\ifx\tikz@to@use@whom\pgfutil@undefined\else\tikz@to@use@whom\fi
\let\tikz@to@or@edge@function=\tikz@do@edge%
\let\tikz@@to@local@options\pgfutil@empty%
\let\tikz@collected@onpath=\pgfutil@empty%
\tikz@to@or@edge}%
\def\tikz@to o{%
\tikz@to@use@last@coordinate%
\let\tikz@to@or@edge@function=\tikz@do@to%
\let\tikz@@to@local@options\pgfutil@empty%
\let\tikz@collected@onpath=\pgfutil@empty%
\tikz@to@or@edge}%
\def\tikz@to@or@edge{%
\pgfutil@ifnextchar[{\tikz@to@or@edge@option}{%
\pgfutil@ifnextchar:{\tikz@to@or@edge@animation}{%
\tikz@@to@collect}}%
}%
\def\tikz@to@or@edge@option[#1]{%
\expandafter\def\expandafter\tikz@@to@local@options\expandafter{\tikz@@to@local@options,#1}%
\tikz@to@or@edge%
}%
\def\tikz@to@or@edge@animation:#1=#2{%
\expandafter\def\expandafter\tikz@@to@local@options\expandafter{\tikz@@to@local@options,%
animate={myself:{#1}={#2}}}%
\tikz@to@or@edge%
}%
\def\tikz@@to@collect{%
\pgfutil@ifnextchar(\tikz@@to@or@edge@coordinate%
{\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@@to@collect}%
{\pgfutil@ifnextchar p{\tikz@collect@pic@onpath\tikz@@to@collect}%
{\pgfutil@ifnextchar c{\tikz@collect@coordinate@onpath\tikz@@to@collect}%
{\pgfutil@ifnextchar +{\tikz@scan@one@point\tikz@@to@or@edge@math}%
{\tikzerror{(, +, coordinate, pic, or node expected}%
\tikz@@to@or@edge@coordinate()}}}}}%
}%
\def\tikz@@to@or@edge@coordinate({%
\pgfutil@ifnextchar${%
\tikz@scan@one@point\tikz@@to@or@edge@math(%
}{%
\pgfutil@ifnextchar[{%
\tikz@scan@one@point\tikz@@to@or@edge@math(%
}{%
\tikz@@to@or@edge@@coordinate(%
}%
}%
}%
\def\tikz@@to@or@edge@math#1{%
\pgf@process{#1}%
\iftikz@updatecurrent\else
\tikz@updatenextfalse
\fi
\edef\tikztotarget{\the\pgf@x,\the\pgf@y}%
\tikz@to@or@edge@function%
}%
\def\tikz@@to@or@edge@@coordinate(#1){%
\def\tikztotarget{#1}%
\tikz@to@or@edge@function%
}%
\def\tikz@do@edge{%
\ifx\tikz@edge@macro\pgfutil@empty%
\setbox\tikz@whichbox=\hbox\bgroup%
\unhbox\tikz@whichbox%
\hbox\bgroup
\bgroup%
\pgfinterruptpath%
\pgfscope%
\let\tikz@transform=\pgfutil@empty%
\let\tikz@options=\pgfutil@empty%
\tikz@clear@rdf@options%
\let\tikz@tonodes=\tikz@collected@onpath%
\def\tikztonodes{{\pgfextra{\tikz@node@is@a@labeltrue}\tikz@tonodes}}%
\let\tikz@collected@onpath=\pgfutil@empty%
\tikz@options%
\tikz@do@rdf@pre@options%
\pgfidscope%
\tikz@do@rdf@post@options%
\tikz@transform%
\let\tikz@transform=\relax%
\let\tikz@after@path\pgfutil@empty%
\tikz@atbegin@to%
\tikz@enable@edge@quotes%
\path[style=every edge]\expandafter[\tikz@@to@local@options](\tikztostart)\tikz@to@path
\pgfextra{\global\let\tikz@after@path@smuggle=\tikz@after@path};%
\tikz@atend@to%
\endpgfidscope%
\endpgfscope%
\endpgfinterruptpath%
\egroup
\egroup%
\egroup%
\global\setbox\tikz@tempbox=\box\tikz@whichbox%
\expandafter\endgroup%
\expandafter\setbox\tikz@whichbox=\box\tikz@tempbox%
\else%
\expandafter\expandafter\expandafter\tikz@edge@macro%
\expandafter\expandafter\expandafter{\expandafter\tikz@@to@local@options\expandafter}\expandafter{\tikz@collected@onpath}%
\endgroup%
\let\tikz@after@path@smuggle=\pgfutil@empty%
\fi%
\expandafter\tikz@scan@next@command\tikz@after@path@smuggle%
}%
\def\tikz@do@to{%
\let\tikz@tonodes=\tikz@collected@onpath%
\def\tikztonodes{{\pgfextra{\tikz@node@is@a@labeltrue}\tikz@tonodes}}%
\let\tikz@collected@onpath=\pgfutil@empty%
\tikz@scan@next@command%
{%
\pgfextra{\let\tikz@after@path\pgfutil@empty}%
\pgfextra{\tikz@atbegin@to}%
\pgfextra{\tikz@enable@edge@quotes}%
[style=every to]\expandafter[\tikz@@to@local@options]\tikz@to@path%
\pgfextra{\tikz@atend@to}%
\pgf@stop%
\expandafter\tikz@scan@next@command\expandafter%
}\tikz@after@path%
\pgfextra{\tikz@updatenexttrue\tikz@updatecurrenttrue}%
}%
\def\tikz@to@use@last@coordinate{%
\iftikz@shapeborder%
\edef\tikztostart{\tikz@shapeborder@name}%
\else%
\edef\tikztostart{\the\tikz@lastx,\the\tikz@lasty}%
\fi%
}%
\def\tikz@to@use@last@fig@name{%
\edef\tikztostart{\tikz@to@last@fig@name}%
}%
\def\tikz@graph aph{\tikz@lib@graph@parser}%
\def\tikz@lib@graph@parser{\pgfutil@ifnextchar[\tikz@graph@error{\tikz@graph@error[]}}%
\def\tikz@graph@error[#1]#2{%
\tikzerror{You need to say \string\usetikzlibrary{graphs} in order to use the graph syntax}%
\tikz@lib@graph@parser@done%
}%
\def\tikz@lib@graph@parser@done{%
\tikz@scan@next@command%
}%
\def\tikz@edgetoparent from parent{\pgfutil@ifnextchar[\tikz@@edgetoparent{\tikz@@edgetoparent[]}}%
\def\tikz@@edgetoparent[#1]{%
\let\tikz@edge@to@parent@needed=\pgfutil@empty%
\def\tikz@edgetoparent@options{#1}%
\begingroup%
\let\tikz@collected@onpath=\pgfutil@empty%
\tikz@edgetoparentcollect%
}%
\def\tikz@edgetoparentcollect{%
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@edgetoparentcollect}%
{%
\expandafter%
\endgroup%
\expandafter\tikz@edgetoparent@rollout\expandafter{\tikz@collected@onpath}%
}%
}%
\def\tikz@edgetoparent@rollout#1{%
\pgfkeysgetvalue{/tikz/edge from parent macro}\tikz@etop@temp
\expandafter\tikz@scan@next@command\expandafter\tikz@etop@temp\expandafter{\tikz@edgetoparent@options}{#1}%
}%
\def\tikz@dot.{\tikz@@dot}%
\def\tikz@@dot{%
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@@dot}{%
\pgfutil@ifnextchar p{\tikz@collect@pic@onpath\tikz@@dot}%
{\pgfutil@ifnextchar c{\tikz@curveto@double}{\tikz@curveto@auto}}}%
}%
\def\tikz@curveto@double co{%
\pgfutil@ifnextchar o{\tikz@collect@coordinate@onpath\tikz@@dot co}
{\tikz@cureveto@@double}}%
\def\tikz@cureveto@@double ntrols#1{%
\tikz@scan@one@point\tikz@curveA#1%
}%
\def\tikz@curveA#1{%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
{%
\tikz@lastxsaved=\tikz@lastx%
\tikz@lastysaved=\tikz@lasty%
\tikz@make@last@position{#1}%
\xdef\tikz@curve@first{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
}%
\pgfutil@ifnextchar a
{\tikz@curveBand}%
{\let\tikz@curve@second\tikz@curve@first\tikz@curveCdots}%
}%
\def\tikz@curveBand and{%
\tikz@scan@one@point\tikz@curveB%
}%
\def\tikz@curveB#1{%
\def\tikz@curve@second{#1}%
\tikz@curveCdots}
\def\tikz@curveCdots{%
\afterassignment\tikz@curveCdot\let\pgfutil@next=}%
\def\tikz@curveCdot.{%
\ifx\pgfutil@next.%
\else%
\tikzerror{Dot expected}%
\fi%
\iftikz@updatenext
\tikz@updatecurrenttrue%
\fi
\tikz@curveCcheck%
}%
\def\tikz@curveCcheck{%
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@curveCcheck}{%
\pgfutil@ifnextchar p{\tikz@collect@pic@onpath\tikz@curveCcheck}%
{\pgfutil@ifnextchar c{\tikz@collect@coordinate@onpath\tikz@curveCcheck}
{\tikz@scan@one@point\tikz@curveC}}}%
}%
\def\tikz@curveC#1{%
\tikz@make@last@position{#1}%
\edef\tikz@curve@third{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
{%
\tikz@lastxsaved=\tikz@lastx%
\tikz@lastysaved=\tikz@lasty%
\tikz@make@last@position{\tikz@curve@second}%
\xdef\tikz@curve@second{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
}%
\ifx\tikz@moveto@waiting\relax%
\else%
\pgf@process{\pgfpointshapeborder{\tikz@moveto@waiting}{\tikz@curve@first}}%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\tikz@@movetosave{\pgfqpoint{\pgf@x}{\pgf@y}}%
\fi%
\let\tikz@timer@cont@one=\tikz@curve@first%
\let\tikz@timer@cont@two=\tikz@curve@second%
\iftikz@shapeborder%
{%
\pgf@process{\pgfpointshapeborder{\tikz@shapeborder@name}{\tikz@curve@second}}%
\tikz@make@last@position{\pgfqpoint{\pgf@x}{\pgf@y}}%
\edef\tikz@curve@third{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\pgfpathcurveto{\tikz@curve@first}{\tikz@curve@second}{\tikz@curve@third}%
\global\let\tikz@timer@end@temp=\tikz@curve@third%
}%
\let\tikz@timer@end=\tikz@timer@end@temp%
\edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
\else%
\pgfpathcurveto{\tikz@curve@first}{\tikz@curve@second}{\tikz@curve@third}%
\let\tikz@timer@end=\tikz@curve@third
\let\tikz@moveto@waiting=\relax%
\fi%
\let\tikz@timer=\tikz@timer@curve%
\let\tikz@tangent=\tikz@curve@second%
\tikz@scan@next@command%
}%
\def\tikz@rect ectangle{%
\tikz@flush@moveto%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\tikz@@rect}%
\def\tikz@@rect{%
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@@rect}{%
\pgfutil@ifnextchar p{\tikz@collect@pic@onpath\tikz@@rect}%
{\pgfutil@ifnextchar c{\tikz@collect@coordinate@onpath\tikz@@rect}%
{
\pgf@xa=\tikz@lastx\relax%
\pgf@ya=\tikz@lasty\relax%
\tikz@scan@one@point\tikz@rectB}}}}%
\def\tikz@rectB#1{%
\tikz@make@last@position{#1}%
\edef\tikz@timer@end{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\let\tikz@timer=\tikz@timer@line%
\tikz@@movetosave{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\tikz@path@lineto{\pgfqpoint{\pgf@xa}{\tikz@lasty}}%
\tikz@path@lineto{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}%
\tikz@path@lineto{\pgfqpoint{\tikz@lastx}{\pgf@ya}}%
\iftikz@snaked%
\tikz@path@lineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\fi%
\pgfpathclose%
\tikz@@movetosave{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}%
\def\pgfstrokehook{}%
\let\tikz@tangent\relax%
\tikz@scan@next@command%
}%
\def\tikz@grid id{%
\tikz@flush@moveto%
\pgf@xa=\tikz@lastx\relax%
\pgf@ya=\tikz@lasty\relax%
\pgfutil@ifnextchar[{\tikz@gridA}{\tikz@gridA[]}}%
\def\tikz@gridA[#1]{%
\def\tikz@grid@options{#1}%
\tikz@cycle@expander{\tikz@scan@one@point\tikz@gridB}}%
\def\tikz@gridB#1{%
\tikz@make@last@position{#1}%
\let\tikz@tangent\relax%
{%
\let\tikz@after@path\pgfutil@empty%
\expandafter\tikzset\expandafter{\tikz@grid@options}
\tikz@checkunit{\tikz@grid@x}%
\iftikz@isdimension%
\pgf@process{\pgfpoint{\tikz@grid@x}{0pt}}%
\else%
\pgf@process{\pgfpointxy{\tikz@grid@x}{0}}%
\fi%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\tikz@checkunit{\tikz@grid@y}%
\iftikz@isdimension%
\pgf@process{\pgfpoint{0pt}{\tikz@grid@y}}%
\else%
\pgf@process{\pgfpointxy{0}{\tikz@grid@y}}%
\fi%
\advance\pgf@xb by\pgf@x%
\advance\pgf@yb by\pgf@y%
\pgfpathgrid[stepx=\pgf@xb,stepy=\pgf@yb]%
{\pgfqpoint{\pgf@xa}{\pgf@ya}}{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}%
\expandafter}%
\expandafter\tikz@scan@next@command\tikz@after@path%
}%
\def\tikz@plot lot{%
\tikz@flush@moveto%
\pgfutil@ifnextchar[{\tikz@@plot}{\tikz@@plot[]}}%
\def\tikz@@plot[#1]{%
\let\tikz@tangent\tikz@tangent@lookup%
\begingroup%
\let\tikz@after@path\pgfutil@empty%
\let\tikz@options=\pgfutil@empty%
\tikzset{every plot/.try}%
\tikzset{#1}%
\pgfutil@ifnextchar f{\tikz@plot@f}%
{\pgfutil@ifnextchar c{\tikz@plot@scan@points}%
{\pgfutil@ifnextchar ({\tikz@plot@expression}{%
\tikzerror{Cannot parse this plotting data}%
\endgroup}}}}%
\def\tikz@plot@f f{\pgfutil@ifnextchar i{\tikz@plot@file}{\tikz@plot@function}}%
\def\tikz@plot@file ile#1{\def\tikz@plot@data{\pgfplotxyfile{#1}}\tikz@@@plot}%
\def\tikz@plot@scan@points coordinates#1{%
\pgfplothandlerrecord\tikz@plot@data%
\pgfplotstreamstart%
\pgfutil@ifnextchar\pgf@stop{\pgfplotstreamend\expandafter\tikz@@@plot\pgfutil@gobble}
{\tikz@scan@one@point\tikz@plot@next@point}%
#1\pgf@stop%
}%
\def\tikz@plot@next@point#1{%
\pgfplotstreampoint{#1}%
\pgfutil@ifnextchar\pgf@stop{\pgfplotstreamend\expandafter\tikz@@@plot\pgfutil@gobble}%
{\tikz@scan@one@point\tikz@plot@next@point}%
}%
\def\tikz@plot@function unction#1{%
\def\tikz@plot@filename{\tikz@plot@prefix\tikz@plot@id}%
\iftikz@plot@raw@gnuplot%
\def\tikz@plot@data{\pgfplotgnuplot[\tikz@plot@filename]{#1}}%
\else%
\iftikz@plot@parametric%
\def\tikz@plot@data{\pgfplotgnuplot[\tikz@plot@filename]{%
set samples \tikz@plot@samples;
set parametric;
plot [t=\tikz@plot@domain]
[\tikz@plot@xrange]
[\tikz@plot@range]
#1}}%
\else%
\def\tikz@plot@data{\pgfplotgnuplot[\tikz@plot@filename]{%
set samples \tikz@plot@samples;
plot [x=\tikz@plot@domain]
\ifx\tikz@plot@range\pgfutil@empty\else[\tikz@plot@range]\fi
#1}}%
\fi%
\fi%
\tikz@@@plot%
}%
\def\tikz@plot@no@resample{%
\pgfutil@IfFileExists{\tikz@plot@filename.table}%
{\def\tikz@plot@data{\pgfplotxyfile{\tikz@plot@filename.table}}}%
{}%
}%
\def\tikz@plot@expression(#1){%
\edef\tikz@plot@data{\noexpand\pgfplotfunction{\expandafter\noexpand\tikz@plot@var}{\tikz@plot@samplesat}}%
\expandafter\def\expandafter\tikz@plot@data\expandafter{\tikz@plot@data{\tikz@scan@one@point\pgfutil@firstofone(#1)}}%
\tikz@@@plot%
}%
\def\tikz@@@plot{%
\def\pgfplotlastpoint{\pgfpointorigin}%
\tikz@plot@handler%
\tikz@plot@data%
\global\let\tikz@@@temp=\pgfplotlastpoint%
\ifx\tikz@plot@mark\pgfutil@empty%
\else%
\setbox\tikz@whichbox=\hbox{%
\unhbox\tikz@whichbox%
\hbox{{%
\pgfinterruptpath%
\pgfscope%
\let\tikz@options=\pgfutil@empty%
\let\tikz@transform=\pgfutil@empty%
\tikzset{every mark}%
\tikz@options%
\ifx\tikz@mark@list\pgfutil@empty%
\pgfplothandlermark{\tikz@transform\pgfuseplotmark{\tikz@plot@mark}}%
\else
\pgfplothandlermarklisted{\tikz@transform\pgfuseplotmark{\tikz@plot@mark}}{\tikz@mark@list}%
\fi
\tikz@plot@data%
\endpgfscope
\endpgfinterruptpath%
}}%
}%
\fi%
\global\setbox\tikz@tempbox=\box\tikz@whichbox%
\global\let\tikz@after@path@smuggle=\tikz@after@path
\expandafter\endgroup%
\expandafter\setbox\tikz@whichbox=\box\tikz@tempbox%
\tikz@make@last@position{\tikz@@@temp}%
\expandafter\tikz@scan@next@command\tikz@after@path@smuggle%
}%
\pgfdeclareplotmark{ball}
{%
\def\tikz@shading{ball}%
\shade (0pt,0pt) circle (\pgfplotmarksize);%
}%
\def\tikz@cosine s{\tikz@cycle@expander{\tikz@scan@one@point\tikz@@cosine}}
\def\tikz@@cosine#1{%
\let\tikz@tangent\tikz@tangent@lookup%
\tikz@flush@moveto%
\pgf@process{#1}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\advance\pgf@xc by-\tikz@lastx%
\advance\pgf@yc by-\tikz@lasty%
\advance\tikz@lastx by\pgf@xc%
\advance\tikz@lasty by\pgf@yc%
\tikz@lastxsaved=\tikz@lastx%
\tikz@lastysaved=\tikz@lasty%
\tikz@updatecurrenttrue%
\pgfpathcosine{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
\tikz@scan@next@command%
}%
\def\tikz@sine in{\tikz@cycle@expander{\tikz@scan@one@point\tikz@@sine}}
\def\tikz@@sine#1{%
\let\tikz@tangent\tikz@tangent@lookup%
\tikz@flush@moveto%
\pgf@process{#1}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\advance\pgf@xc by-\tikz@lastx%
\advance\pgf@yc by-\tikz@lasty%
\advance\tikz@lastx by\pgf@xc%
\advance\tikz@lasty by\pgf@yc%
\tikz@lastxsaved=\tikz@lastx%
\tikz@lastysaved=\tikz@lasty%
\tikz@updatecurrenttrue%
\pgfpathsine{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
\tikz@scan@next@command%
}%
\def\tikz@parabola arabola{%
\let\tikz@tangent\tikz@tangent@lookup%
\pgfutil@ifnextchar[{\tikz@parabola@options}{\tikz@parabola@options[]}}%
\def\tikz@parabola@options[#1]{%
\def\tikz@parabola@option{#1}%
\pgfutil@ifnextchar b{\tikz@parabola@scan@bend}{\tikz@cycle@expander{\tikz@scan@one@point\tikz@parabola@semifinal}}}%
\def\tikz@parabola@scan@bend bend{\tikz@scan@one@point\tikz@parabola@scan@bendB}%
\def\tikz@parabola@scan@bendB#1{%
\def\tikz@parabola@bend{#1}%
\tikz@cycle@expander{\tikz@scan@one@point\tikz@parabola@semifinal}%
}%
\def\tikz@parabola@semifinal#1{%
\tikz@flush@moveto%
\pgf@xb=\tikz@lastx%
\pgf@yb=\tikz@lasty%
\tikz@make@last@position{#1}%
\pgf@xc=\tikz@lastx%
\pgf@yc=\tikz@lasty%
\begingroup%
\let\tikz@after@path\pgfutil@empty%
\expandafter\tikzset\expandafter{\tikz@parabola@option}%
\tikz@lastxsaved=\tikz@parabola@bend@factor\tikz@lastx%
\tikz@lastysaved=\tikz@parabola@bend@factor\tikz@lasty%
\advance\tikz@lastxsaved by\pgf@xb%
\advance\tikz@lastysaved by\pgf@yb%
\advance\tikz@lastxsaved by-\tikz@parabola@bend@factor\pgf@xb%
\advance\tikz@lastysaved by-\tikz@parabola@bend@factor\pgf@yb%
\expandafter\tikz@make@last@position\expandafter{\tikz@parabola@bend}%
\advance\pgf@xc by-\tikz@lastx%
\advance\pgf@yc by-\tikz@lasty%
\advance\tikz@lastx by-\pgf@xb%
\advance\tikz@lasty by-\pgf@yb%
\xdef\tikz@parabola@b{{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}}%
\expandafter\endgroup%
\expandafter\expandafter\expandafter\pgfpathparabola\expandafter\tikz@parabola@b%
\expandafter\tikz@scan@next@command\tikz@after@path%
}%
\def\tikz@circle ircle{\tikz@flush@moveto\tikz@@circle}%
\def\tikz@ellipse llipse{\tikz@flush@moveto\tikz@@circle}%
\def\tikz@@circle{%
\let\tikz@tangent\relax%
\pgfutil@ifnextchar(\tikz@@@circle
{\pgfutil@ifnextchar[\tikz@circle@opt{%
\advance\tikz@expandcount by -10\relax%
\ifnum\tikz@expandcount<0\relax%
\let\pgfutil@next=\tikz@@circle@normal%
\else%
\let\pgfutil@next=\tikz@@circle@scanexpand%
\fi%
\pgfutil@next%
}}%
}%
\def\tikz@@circle@scanexpand{\expandafter\tikz@@circle}%
\def\tikz@@circle@normal{\tikz@circle@opt[]}%
\def\tikz@circle@opt[#1]{%
{%
\def\tikz@node@at{\tikz@last@position}%
\let\tikz@transform=\pgfutil@empty%
\tikzset{every circle/.try,#1}%
\pgftransformshift{\tikz@node@at}%
\tikz@transform%
\tikz@do@ellipse{\pgfkeysvalueof{/tikz/x radius}}{\pgfkeysvalueof{/tikz/y radius}}
}%
\tikz@scan@next@command%
}%
\def\tikz@@@circle(#1){%
{%
\pgftransformshift{\tikz@last@position}%
\pgfutil@in@{ and }{#1}%
\ifpgfutil@in@%
\tikz@@ellipseB(#1)%
\else%
\tikz@do@circle{#1}%
\fi%
}%
\tikz@scan@next@command%
}%
\def\tikz@@ellipseB(#1 and #2){%
\tikz@do@ellipse{#1}{#2}%
}%
\def\tikz@do@circle#1{%
\pgfmathparse{#1}%
\let\tikz@ellipse@x=\pgfmathresult
\ifpgfmathunitsdeclared
\pgfpathellipse{\pgfpointorigin}%
{\pgfqpoint{\tikz@ellipse@x pt}{0pt}}%
{\pgfpoint{0pt}{\tikz@ellipse@x pt}}%
\else
\pgfpathellipse{\pgfpointorigin}%
{\pgfpointxy{\tikz@ellipse@x}{0}}%
{\pgfpointxy{0}{\tikz@ellipse@x}}%
\fi
}
\def\tikz@do@ellipse#1#2{
\pgfmathparse{#1}%
\let\tikz@ellipse@x=\pgfmathresult%
\ifpgfmathunitsdeclared%
\pgfmathparse{#2}%
\let\tikz@ellipse@y=\pgfmathresult%
\ifpgfmathunitsdeclared%
\pgfpathellipse{\pgfpointorigin}{%
\pgfqpoint{\tikz@ellipse@x pt}{0pt}}{\pgfpoint{0pt}{\tikz@ellipse@y pt}}%
\else%
\tikzerror{You cannot mix dimensions and dimensionless values in an ellipse}%
\fi%
\else%
\pgfmathparse{#2}%
\let\tikz@ellipse@y=\pgfmathresult%
\ifpgfmathunitsdeclared%
\tikzerror{You cannot mix dimensions and dimensionless values in an ellipse}%
\else%
\pgfpathellipse{\pgfpointorigin}{%
\pgfpointxy{\tikz@ellipse@x}{0}}{\pgfpointxy{0}{\tikz@ellipse@y}}%
\fi%
\fi%
}%
\def\tikz@arcA rc{\tikz@flush@moveto\tikz@arc@cont}%
\def\tikz@arc@cont{%
\pgfutil@ifnextchar(%
{\tikz@@arcto}{%
\pgfutil@ifnextchar[%
{\tikz@arc@opt}%
{%
\advance\tikz@expandcount by -10\relax%
\ifnum\tikz@expandcount<0\relax%
\let\pgfutil@next=\tikz@@arc@normal%
\else%
\let\pgfutil@next=\tikz@@arc@scanexpand%
\fi%
\pgfutil@next%
}%
}%
}%
\def\tikz@@arc@scanexpand{\expandafter\tikz@arc@cont}%
\def\tikz@@arc@normal{\tikz@arc@opt[]}%
\def\tikz@arc@opt[#1]{%
{%
\tikzset{every arc/.try,#1}%
\pgfkeysgetvalue{/tikz/start angle}\tikz@s
\pgfkeysgetvalue{/tikz/end angle}\tikz@e
\pgfkeysgetvalue{/tikz/delta angle}\tikz@d
\ifx\tikz@s\pgfutil@empty%
\pgfmathsetmacro\tikz@s{\tikz@e-\tikz@d}
\else
\ifx\tikz@e\pgfutil@empty%
\pgfmathsetmacro\tikz@e{\tikz@s+\tikz@d}
\fi%
\fi%
\xdef\pgf@marshal{\noexpand%
\tikz@do@arc{\tikz@s}{\tikz@e}
{\pgfkeysvalueof{/tikz/x radius}}
{\pgfkeysvalueof{/tikz/y radius}}}%
}%
\pgf@marshal%
\tikz@arcfinal%
}%
\def\tikz@@arcto(#1){%
\edef\tikz@temp{(#1)}%
\expandafter\tikz@@@arcto@check@slashand\tikz@temp%
}%
\def\tikz@@@arcto@check@slashand(#1:#2:#3){%
\pgfutil@in@{ and }{#3}%
\ifpgfutil@in@%
\tikz@parse@arc@and(#1:#2:#3)%
\else%
\tikz@parse@arc@and(#1:#2:{#3} and {#3})%
\fi%
\tikz@arcfinal%
}%
\def\tikz@parse@arc@and(#1:#2:#3 and #4){%
\tikz@do@arc{#1}{#2}{#3}{#4}%
}%
\def\tikz@do@arc#1#2#3#4{%
\let\tikz@tangent\tikz@tangent@lookup%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\pgfmathsetmacro\tikz@timer@start@angle{#1}%
\pgfmathsetmacro\tikz@timer@end@angle{#2}%
\pgfmathparse{#3}%
\let\tikz@arc@x=\pgfmathresult%
\ifpgfmathunitsdeclared%
\pgfmathparse{#4}%
\let\tikz@arc@y=\pgfmathresult%
\ifpgfmathunitsdeclared%
\tikz@@@arcfinal{\pgfpatharc{\tikz@timer@start@angle}{\tikz@timer@end@angle}{\tikz@arc@x pt and \tikz@arc@y pt}}
{\pgfpointpolar{\tikz@timer@start@angle}{\tikz@arc@x pt and \tikz@arc@y pt}}
{\pgfpointpolar{\tikz@timer@end@angle}{\tikz@arc@x pt and \tikz@arc@y pt}}%
\edef\tikz@timer@zero@axis{\noexpand\pgfqpoint{\tikz@arc@x pt}{0pt}}
\edef\tikz@timer@ninety@axis{\noexpand\pgfqpoint{0pt}{\tikz@arc@y pt}}
\else%
\tikzerror{You cannot mix dimensions and dimensionless values in an arc}%
\fi%
\else%
\pgfmathparse{#4}%
\let\tikz@arc@y=\pgfmathresult%
\ifpgfmathunitsdeclared%
\tikzerror{You cannot mix dimensions and dimensionless values in an arc}%
\else%
\tikz@@@arcfinal{\pgfpatharcaxes{\tikz@timer@start@angle}{\tikz@timer@end@angle}{\pgfpointxy{\tikz@arc@x}{0}}{\pgfpointxy{0}{\tikz@arc@y}}}
{\pgfpointpolarxy{\tikz@timer@start@angle}{\tikz@arc@x and \tikz@arc@y}}{\pgfpointpolarxy{\tikz@timer@end@angle}{\tikz@arc@x and \tikz@arc@y}}%
\pgf@process{\pgfpointxy{\tikz@arc@x}{0}}
\edef\tikz@timer@zero@axis{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\pgf@process{\pgfpointxy{0}{\tikz@arc@y}}
\edef\tikz@timer@ninety@axis{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\fi%
\fi%
}%
\def\tikz@@@arcfinal#1#2#3{%
#1%
\pgf@process{#2}
\xdef\tikz@arc@save@first{\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgf@process{#3}
\xdef\tikz@arc@save@second{\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
}%
\def\tikz@arcfinal{%
\pgf@process{\tikz@arc@save@first}%
\advance\tikz@lastx by-\pgf@x%
\advance\tikz@lasty by-\pgf@y%
\pgf@process{\tikz@arc@save@second}%
\advance\tikz@lastx by\pgf@x%
\advance\tikz@lasty by\pgf@y%
\tikz@lastxsaved=\tikz@lastx%
\tikz@lastysaved=\tikz@lasty%
\let\tikz@timer=\tikz@timer@arc%
\tikz@scan@next@command%
}%
\def\tikz@coordinate ordinate{%
\pgfutil@ifnextchar[{\tikz@@coordinate@opt}{\tikz@@coordinate@opt[]}}%
\def\tikz@@coordinate@opt[#1]{%
\pgfutil@ifnextchar({\tikz@@coordinate[#1]}
{\tikz@fig ode[shape=coordinate,#1]{}}}%
\def\tikz@@coordinate[#1](#2){%
\pgfutil@ifnextchar a{\tikz@@coordinate@at[#1](#2)}
{\tikz@fig ode[shape=coordinate,#1](#2){}}}%
\def\tikz@@coordinate@at[#1](#2)a{%
\pgfutil@ifnextchar t{\tikz@@coordinate@@at[#1](#2)a}%
{\tikz@fig ode[shape=coordinate,#1](#2){}a}%
}%
\def\tikz@@coordinate@@at[#1](#2)at#3({%
\def\tikz@coordinate@caller{\tikz@fig ode[shape=coordinate,#1](#2)at}%
\tikz@scan@one@point\tikz@@coordinate@at@math(%
}%
\def\tikz@@coordinate@at@math#1{%
\pgf@process{#1}%
\edef\tikz@temp{(\the\pgf@x,\the\pgf@y)}%
\expandafter\tikz@coordinate@caller\tikz@temp{}%
}%
\def\tikz@fig ode{%
\pgfutil@ifnextchar a\tikz@test@also{%
\pgfutil@ifnextchar f{\tikz@nodes@start}\tikz@normal@fig}}%
\def\tikz@test@also a{\pgfutil@ifnextchar l\tikz@node@also{\tikz@normal@fig a}}%
\def\tikz@normal@fig{%
\edef\tikz@save@line@width{\the\pgflinewidth}%
\begingroup%
\let\tikz@fig@name=\pgfutil@empty%
\begingroup%
\tikz@is@matrixfalse%
\let\nodepart=\tikz@nodepart%
\let\tikz@atbegin@scope=\pgfutil@empty%
\let\tikz@atend@scope=\pgfutil@empty%
\let\tikz@do@after@node=\tikz@scan@next@command%
\let\tikz@options=\pgfutil@empty%
\tikz@clear@rdf@options%
\let\tikz@id@name=\pgfutil@empty%
\let\tikz@after@path=\pgfutil@empty%
\let\tikz@transform=\pgfutil@empty%
\let\tikz@mode=\pgfutil@empty%
\tikz@decoratepathfalse%
\let\tikz@preactions=\pgfutil@empty%
\let\tikz@postactions=\pgfutil@empty%
\let\tikz@alias=\pgfutil@empty%
\def\tikz@node@at{\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\let\tikz@time@for@matrix\tikz@time%
\let\tikz@node@content\relax%
\pgfgetpath\tikzpathuptonow%
\iftikz@node@is@a@label%
\else%
\let\tikz@time\pgfutil@empty%
\fi%
\tikz@node@reset@hook%
\tikzset{every node/.try}%
\tikz@@scan@fig}%
\def\tikz@@scan@fig{%
\pgfutil@ifnextchar a{\tikz@fig@scan@at}
{\pgfutil@ifnextchar({\tikz@fig@scan@name}
{\pgfutil@ifnextchar[{\tikz@fig@scan@options}%
{\pgfutil@ifnextchar:{\tikz@fig@scan@animation}%
{\pgfutil@ifnextchar\bgroup{\tikz@fig@main}%
{\tikzerror{A node must have a (possibly empty) label text}%
\tikz@fig@main{}}}}}}}%
\def\tikz@fig@scan@at at{%
\tikz@scan@one@point\tikz@@fig@scan@at}%
\def\tikz@@fig@scan@at#1{%
\def\tikz@node@at{#1}\tikz@@scan@fig}%
\def\tikz@fig@scan@name(#1){%
\pgfkeysvalueof{/tikz/name/.@cmd}#1\pgfeov%
\tikz@@scan@fig}%
\long\def\tikz@fig@scan@options[#1]{\iftikz@node@is@pic\tikz@enable@pic@quotes\else\tikz@enable@node@quotes\fi\tikzset{#1}\ifx\tikz@node@content\relax\expandafter\tikz@@scan@fig\else\tikz@expand@node@contents\fi}%
\def\tikz@fig@scan@animation:#1=#2{\tikzset{animate={myself:{#1}={#2}}}\tikz@@scan@fig}%
\def\tikz@expand@node@contents{%
\expandafter\tikz@@scan@fig\expandafter{\tikz@node@content}%
}%
\let\tikz@node@reset@hook=\pgfutil@empty%
\let\tikz@node@begin@hook=\pgfutil@empty%
\def\tikz@fig@main{%
\iftikz@node@is@pic%
\tikz@node@is@picfalse%
\expandafter\tikz@subpicture@handle%
\else%
\afterassignment\tikz@@fig@main\expandafter\let\expandafter\next\expandafter=%
\fi}%
\def\tikz@@fig@main{%
\pgfutil@ifundefined{pgf@sh@s@\tikz@shape}%
{\tikzerror{Unknown shape ``\tikz@shape.'' Using ``rectangle'' instead}%
\def\tikz@shape{rectangle}}%
{}%
\expandafter\xdef\csname tikz@dcl@coord@\tikz@fig@name\endcsname{%
\csname tikz@scan@point@coordinate\endcsname}%
\tikzset{every \tikz@shape\space node/.try}%
\tikz@node@textfont%
\tikz@node@begin@hook%
\iftikz@is@matrix%
\let\tikz@next=\tikz@do@matrix%
\else%
\let\tikz@next=\tikz@do@fig%
\fi%
\tikz@next%
}%
\let\tikz@nodepart@list\pgfutil@empty
\def\tikz@do@fig{%
\pgfutil@for\tikz@temp:=\tikz@nodepart@list\do{%
\expandafter\setbox\csname pgfnodepart\tikz@temp box\endcsname=\box\pgfutil@voidb@x%
}%
\setbox\pgfnodeparttextbox=\hbox%
\bgroup%
\pgfinterruptpicture%
\pgfsys@begin@text%
\pgfsys@text@to@black@hook%
\tikzset{every text node part/.try}%
\ifx\tikz@textopacity\pgfutil@empty%
\else%
\pgfsetfillopacity{\tikz@textopacity}%
\pgfsetstrokeopacity{\tikz@textopacity}%
\fi%
\ifx\tikz@text@width\pgfutil@empty%
\tikz@textfont%
\else%
\begingroup%
\pgfmathsetlength{\pgf@x}{\tikz@text@width}%
\pgfutil@minipage[t]{\pgf@x}\leavevmode\hbox{}%
\tikz@textfont%
\tikz@text@action%
\fi%
\tikz@atbegin@node%
\bgroup%
\aftergroup\unskip%
\ifx\tikz@textcolor\pgfutil@empty%
\else%
\pgfutil@colorlet{.}{\tikz@textcolor}%
\pgfutil@color{\tikz@textcolor}%
\fi%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\tikz@uninstallcommands%
\iftikz@handle@active@code%
\tikz@orig@shorthands%
\let\tikz@orig@shorthands\pgfutil@empty%
\fi%
\ifnum\the\catcode`\;=\active\relax\expandafter\let\tikz@activesemicolon=\tikz@origsemi\fi%
\ifnum\the\catcode`\:=\active\relax\expandafter\let\tikz@activecolon=\tikz@origcolon\fi%
\ifnum\the\catcode`\|=\active\relax\expandafter\let\tikz@activebar=\tikz@origbar\fi%
\aftergroup\tikz@fig@collectresetcolor%
\tikz@signal@halign@check%
\tikz@text@reset%
\tikz@halign@check%
\ignorespaces%
}%
\def\tikz@fig@collectresetcolor{%
\pgfutil@ifnextchar\reset@color%
{\reset@color\afterassignment\tikz@fig@collectresetcolor\let\tikz@temp=}\tikz@fig@boxdone%
}%
\def\tikz@fig@boxdone{%
\tikz@atend@node%
\ifx\tikz@text@width\pgfutil@empty%
\else%
\pgfutil@endminipage%
\endgroup%
\fi%
\pgfsys@end@text%
\endpgfinterruptpicture%
\egroup%
\pgfutil@ifnextchar c{\tikz@fig@mustbenamed\tikz@fig@continue}%
{\pgfutil@ifnextchar[{\tikz@fig@mustbenamed\tikz@fig@continue}%
{\pgfutil@ifnextchar t{\tikz@fig@mustbenamed\tikz@fig@continue}
{\pgfutil@ifnextchar e{\tikz@fig@mustbenamed\tikz@fig@continue}
{\ifx\tikz@after@path\pgfutil@empty\expandafter\tikz@fig@continue\else\expandafter\tikz@fig@mustbenamed\expandafter\tikz@fig@continue\fi}}}}}%
\tikzset{
matrix/inner style/every cell/.code={%
\tikzset{every cell/.try={\the\pgfmatrixcurrentrow}{\the\pgfmatrixcurrentcolumn}}%
},
matrix/inner style/column/.code={%
\tikzset{column \the\pgfmatrixcurrentcolumn/.try}%
},
matrix/inner style/even odd column/.code={
\ifodd\pgfmatrixcurrentcolumn%
\tikzset{every odd column/.try}%
\else%
\tikzset{every even column/.try}%
\fi
},
matrix/inner style/row/.code={%
\tikzset{row \the\pgfmatrixcurrentrow/.try}%
},
matrix/inner style/even odd row/.code={%
\ifodd\pgfmatrixcurrentrow%
\tikzset{every odd row/.try}%
\else%
\tikzset{every even row/.try}%
\fi
},
matrix/inner style/cell/.code={%
\tikzset{row \the\pgfmatrixcurrentrow\space column \the\pgfmatrixcurrentcolumn/.try}%
},
matrix/inner style order/.store in=\tikz@common@matrix@code@styleorder,
matrix/inner style order={
every cell,
column,
even odd column,
row,
even odd row,
cell
},
}%
\def\tikz@do@matrix{%
\tikzset{every matrix/.try}%
\tikz@node@transformations%
\tikz@fig@mustbenamed%
\setbox\tikz@whichbox=\hbox\bgroup%
\unhbox\tikz@whichbox%
\hbox\bgroup\bgroup%
\pgfinterruptpath%
\pgfscope%
\ifx\tikz@time\pgfutil@empty\let\tikz@time\tikz@time@for@matrix\fi%
\tikz@options%
\tikz@do@rdf@pre@options%
\tikz@is@nodefalse%
\tikz@call@id@hook%
\pgfidscope%
\tikz@do@rdf@post@options%
\begingroup%
\let\tikz@id@name\pgfutil@empty%
\pgfclearid%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\let\tikzmatrixname=\tikz@fig@name%
\edef\tikz@m@anchor{\ifx\tikz@matrix@anchor\pgfutil@empty\tikz@anchor\else\tikz@matrix@anchor\fi}%
\expandafter\pgfutil@in@\expandafter{\expandafter.\expandafter}\expandafter{\tikz@m@anchor}%
\ifpgfutil@in@%
\expandafter\tikz@matrix@split\tikz@m@anchor\relax%
\else%
\def\tikz@matrix@shift{\pgfpointorigin}%
\fi%
\let\tikz@transform=\relax%
\pgfmatrixbeforeassemblenode{\tikzset{every outer matrix/.try}}%
\pgfmatrix%
{\tikz@shape}%
{\tikz@m@anchor}%
{\tikz@fig@name}%
{%
\pgfutil@tempdima=\pgflinewidth%
{\begingroup\tikz@finish}%
\global\pgflinewidth=\pgfutil@tempdima%
}%
{\tikz@matrix@shift}%
{%
\tikz@matrix@make@active@ampersand%
\def\pgfmatrixbegincode{%
\pgfsys@beginscope%
\tikz@common@matrix@code%
\tikz@atbegin@cell%
}%
\def\tikz@common@matrix@code{%
\let\tikz@options=\pgfutil@empty%
\let\tikz@mode=\pgfutil@empty%
\pgfutil@for\pgf@temp:=\tikz@common@matrix@code@styleorder\do{%
\toks0=\expandafter{\romannumeral-`0\expandafter\pgfutil@trimspaces\expandafter{\pgf@temp}}%
\def\pgf@marshal{}%
\pgfutil@ifxempty\pgf@temp{}{%
\edef\pgf@marshal{\noexpand\tikzset{matrix/inner style/.cd,\the\toks0}}%
}%
\pgf@marshal
}%
\tikz@options%
}%
\def\pgfmatrixendcode{%
\tikz@atend@cell%
\pgfsys@endscope%
}%
\def\pgfmatrixemptycode{%
\pgfsys@beginscope%
\tikz@common@matrix@code%
\tikz@at@emptycell%
\pgfsys@endscope%
}%
\tikz@atbegin@matrix%
\aftergroup\tikz@do@matrix@cont}%
\bgroup%
}%
\def\tikz@do@matrix@cont{%
\tikz@atend@matrix%
\endgroup%
\endpgfidscope%
\endpgfscope
\endpgfinterruptpath%
\egroup\egroup%
\egroup%
\tikz@node@finish%
}%
{%
\catcode`\&=13
\gdef\tikz@matrix@make@active@ampersand{%
\ifx\tikz@ampersand@replacement\pgfutil@empty%
\catcode`\&=13%
\let&=\pgfmatrixnextcell%
\else%
\expandafter\let\tikz@ampersand@replacement=\pgfmatrixnextcell%
\fi%
}%
}%
\def\tikz@matrix@split#1.#2\relax{%
\def\tikz@m@anchor{text}%
\def\tikz@matrix@shift{\pgfpointanchor{#1}{#2}}%
}%
\def\tikz@fig@continue{%
\ifx\tikz@text@width\pgfutil@empty%
\else%
\pgfmathsetlength{\pgf@x}{\tikz@text@width}%
\wd\pgfnodeparttextbox=\pgf@x%
\fi%
\ifx\tikz@text@height\pgfutil@empty%
\else%
\pgfmathsetlength{\pgf@x}{\tikz@text@height}%
\ht\pgfnodeparttextbox=\pgf@x%
\fi%
\ifx\tikz@text@depth\pgfutil@empty%
\else%
\pgfmathsetlength{\pgf@x}{\tikz@text@depth}%
\dp\pgfnodeparttextbox=\pgf@x%
\fi%
\tikz@node@transformations%
\tikz@nlt%
\setbox\tikz@whichbox=\hbox{%
\unhbox\tikz@whichbox%
\hbox{{%
\pgfinterruptpath%
\pgfscope%
\tikz@options%
\tikz@do@rdf@pre@options%
\tikz@is@nodetrue%
\tikz@call@id@hook%
\pgfidscope%
\tikz@do@rdf@post@options%
\let\tikz@id@name\pgfutil@empty%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\setbox\pgfnodeparttextbox=\hbox{{%
\pgfsys@begin@text%
\ifx\tikz@textcolor\pgfutil@empty%
\else%
\pgfutil@colorlet{.}{\tikz@textcolor}%
\fi%
\pgfsetcolor{.}%
\pgfusetype{.text}%
\pgfidscope%
\box\pgfnodeparttextbox%
\endpgfidscope%
\pgfsys@end@text%
}}%
\pgfmultipartnode{\tikz@shape}{\tikz@anchor}{\tikz@fig@name}{%
\pgfutil@tempdima=\pgflinewidth%
{\begingroup\tikz@finish}%
\global\pgflinewidth=\pgfutil@tempdima%
}%
\endpgfidscope%
\endpgfscope%
\endpgfinterruptpath%
}}%
}%
\tikz@alias%
\tikz@node@finish%
}%
\def\tikz@fig@mustbenamed{%
\ifx\tikz@fig@name\pgfutil@empty%
\global\advance\tikz@fig@count by1\relax
\edef\tikz@fig@name{tikz@f@\the\tikz@fig@count}%
\let\tikz@id@name\tikz@fig@name%
\fi%
}%
\def\tikz@node@transformations{%
\ifx\tikz@time\pgfutil@empty%
\pgftransformshift{\tikz@node@at}%
\iftikz@fullytransformed%
\else%
\pgftransformresetnontranslations%
\fi%
\else%
\tikz@do@auto@anchor%
\tikz@timer%
\fi%
\tikz@transform%
}%
\def\tikz@node@finish{%
\global\let\tikz@last@fig@name=\tikz@fig@name%
\global\let\tikz@after@path@smuggle=\tikz@after@path%
\global\setbox\tikz@tempbox=\box\tikz@figbox%
\global\setbox\tikz@tempbox@bg=\box\tikz@figbox@bg%
\endgroup\endgroup%
\setbox\tikz@figbox=\box\tikz@tempbox%
\setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
\global\pgflinewidth=\tikz@save@line@width%
\tikz@do@after@path@smuggle%
\tikz@node@is@picfalse
\tikz@do@after@node%
}%
\let\tikz@fig@continue@orig=\tikz@fig@continue
\def\tikz@do@after@node{\tikz@scan@next@command}%
\def\tikz@do@after@path@smuggle{%
\let\tikz@to@last@fig@name=\tikz@last@fig@name%
\let\tikz@to@use@whom=\tikz@to@use@last@fig@name%
\let\tikzlastnode=\tikz@last@fig@name%
\ifx\tikz@after@path@smuggle\pgfutil@empty%
\else%
\ifpgflatenodepositioning%
\expandafter\expandafter\expandafter\tikz@call@late%
\expandafter\expandafter\expandafter{\expandafter\tikz@last@fig@name\expandafter}\expandafter{\tikz@after@path@smuggle}%
\else%
\tikz@scan@next@command{\tikz@after@path@smuggle}\pgf@stop%
\fi%
\fi%
}%
\def\tikz@call@late#1#2{\pgfnodepostsetupcode{#1}{\path[late options={name={#1},append after command={#2}}];}}%
\newif\iftikz@do@align
\def\tikz@signal@halign@check{%
\tikz@do@alignfalse
\ifx\tikz@text@width\pgfutil@empty%
\pgfkeysgetvalue{/tikz/node halign header}\tikz@align@header%
\ifx\tikz@align@header\pgfutil@empty%
\else%
\tikz@do@aligntrue%
\fi%
\fi%
}
\def\tikz@halign@check{%
\iftikz@do@align%
\setbox\tikz@align@aligned@box=\box\pgfutil@voidb@x%
\let\\=\tikz@align@newline%
\expandafter\tikz@start@align%
\fi%
}%
\def\tikz@align@newline{\pgfutil@protect\tikz@align@newline@}%
\def\tikz@align@newline@{\unskip\pgfutil@ifnextchar[\tikz@@align@newline{\tikz@@align@newline[0pt]}}%
\def\tikz@@align@newline[#1]{\egroup\tikz@align@continue\pgfmathparse{#1}\let\tikz@align@temp=\pgfmathresult\tikz@start@align}%
\let\tikz@align@aligned@box=\pgfnodeparttextbox
\let\tikz@align@line@box=\tikz@figbox
\def\tikz@start@align{%
\setbox\tikz@align@line@box=\hbox\bgroup\bgroup%
\aftergroup\tikz@align@collectresetcolor\ignorespaces%
}%
\def\tikz@align@collectresetcolor{%
\pgfutil@ifnextchar\reset@color%
{\reset@color\afterassignment\tikz@align@collectresetcolor\let\tikz@temp=}%
{\tikz@align@end@check}%
}%
\def\tikz@align@end@check{%
\egroup%
\ifvoid\tikz@align@aligned@box%
\setbox\tikz@align@aligned@box=\box\tikz@align@line@box%
\else%
\setbox\tikz@align@aligned@box=\vbox{%
\expandafter\expandafter\expandafter\halign\expandafter\expandafter\expandafter{\tikz@align@header%
\box\tikz@align@aligned@box\cr%
\noalign{\vskip\tikz@align@temp pt}%
\unhbox\tikz@align@line@box\unskip\cr}}%
\fi%
\pgfutil@ifnextchar\tikz@align@continue{}
{%
\box\tikz@align@aligned@box%
\egroup%
}%
}%
\def\tikz@align@continue{\tikz@@align@continue}%
\let\tikz@@align@continue=\pgfutil@empty
\def\tikz@node@also lso{\pgfutil@ifnextchar[\tikz@node@also@opt{\tikz@node@also@opt[]}}%
\def\tikz@node@also@opt[#1]{
\pgfutil@ifnextchar(%
{\tikz@node@also@opt@cont[#1]}%
{\tikzerror{Syntax error in node also: ``('' expected.}%
\tikz@scan@next@command}%
}%
\def\tikz@node@also@opt@cont[#1](#2){\tikzset{late options={name=#2,#1}}\tikz@scan@next@command}%
\def\tikz@nodepart{\pgfutil@ifnextchar[\tikz@@nodepart{\tikz@@nodepart[]}}%
\def\tikz@@nodepart[#1]#2{%
\tikz@atend@node%
\unskip%
\gdef\tikz@nodepart@options{#1}%
\gdef\tikz@nodepart@name{#2}%
\global\let\tikz@fig@continue=\tikz@nodepart@continue%
\pgfutil@ifnextchar x{\egroup\relax}{\egroup\relax}%
}%
\def\tikz@nodepart@continue{%
\global\let\tikz@fig@continue=\tikz@fig@continue@orig%
\ifx\tikz@nodepart@list\pgfutil@empty%
\let\tikz@nodepart@list\tikz@nodepart@name%
\else%
\edef\tikz@nodepart@list{\tikz@nodepart@list,\tikz@nodepart@name}%
\fi%
\expandafter\setbox\csname pgfnodepart\tikz@nodepart@name box\endcsname=\hbox%
\bgroup%
\pgfinterruptpicture%
\pgfsys@begin@text%
\pgfsys@text@to@black@hook%
\tikzset{every \tikz@nodepart@name\space node part/.try}%
\expandafter\tikzset\expandafter{\tikz@nodepart@options}%
\ifx\tikz@textopacity\pgfutil@empty%
\else%
\pgfsetfillopacity{\tikz@textopacity}%
\pgfsetstrokeopacity{\tikz@textopacity}%
\fi%
\ifx\tikz@textcolor\pgfutil@empty%
\else%
\pgfutil@colorlet{.}{\tikz@textcolor}%
\fi%
\pgfsetcolor{.}%
\ifx\tikz@text@width\pgfutil@empty%
\tikz@textfont%
\else%
\begingroup%
\pgfmathsetlength{\pgf@x}{\tikz@text@width}%
\pgfutil@minipage[t]{\pgf@x}\leavevmode\hbox{}%
\tikz@textfont%
\tikz@text@action%
\fi%
\bgroup%
\aftergroup\unskip%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\tikz@uninstallcommands%
\iftikz@handle@active@code%
\tikz@orig@shorthands%
\let\tikz@orig@shorthands\pgfutil@empty%
\fi%
\ifnum\the\catcode`\;=\active\relax\expandafter\let\tikz@activesemicolon=\tikz@origsemi\fi%
\ifnum\the\catcode`\:=\active\relax\expandafter\let\tikz@activecolon=\tikz@origcolon\fi%
\ifnum\the\catcode`\|=\active\relax\expandafter\let\tikz@activebar=\tikz@origbar\fi%
\tikz@atbegin@node%
\aftergroup\tikz@fig@collectresetcolor%
\tikz@signal@halign@check%
\tikz@text@reset%
\tikz@halign@check%
\ignorespaces%
}%
\def\tikz@nodes@start{%
\let\tikz@nodes@list\pgfutil@empty%
\iftikz@node@is@pic%
\def\tikz@nodes@collect{pic }%
\else%
\def\tikz@nodes@collect{node }%
\fi%
\tikz@nodes%
}%
\def\tikz@nodes foreach{\pgfutil@ifnextchar x\tikz@nodes@\tikz@nodes@}%
\def\tikz@nodes@#1in{%
\expandafter\def\expandafter\tikz@nodes@list\expandafter{\tikz@nodes@list\foreach#1in}%
\pgfutil@ifnextchar\bgroup\tikz@nodes@group\tikz@nodes@one%
}%
\def\tikz@nodes@one#1{%
\expandafter\def\expandafter\tikz@nodes@list\expandafter{\tikz@nodes@list#1}%
\pgfutil@ifnextchar f\tikz@nodes\tikz@nodes@scan%
}%
\def\tikz@nodes@group#1{%
\expandafter\def\expandafter\tikz@nodes@list\expandafter{\tikz@nodes@list{#1}}%
\pgfutil@ifnextchar f\tikz@nodes\tikz@nodes@scan%
}%
\def\tikz@nodes@scan{%
\pgfutil@ifnextchar a{\tikz@nodes@at}%
{\pgfutil@ifnextchar({\tikz@nodes@name}%
{\pgfutil@ifnextchar[{\tikz@nodes@opt}%
{\pgfutil@ifnextchar\bgroup{\tikz@nodes@main}%
{\tikzerror{Nodes must have a (possibly empty) label text}%
\tikz@fig@main{}}}}}}%
\def\tikz@nodes@at at{\pgfutil@ifnextchar({\tikz@nodes@at@}{\tikz@nodes@at@@}}%
\def\tikz@nodes@at@#1){%
\expandafter\def\expandafter\tikz@nodes@collect\expandafter{\tikz@nodes@collect at#1)}%
\tikz@nodes@scan}%
\def\tikz@nodes@at@@#1{%
\expandafter\def\expandafter\tikz@nodes@collect\expandafter{\tikz@nodes@collect at#1}%
\tikz@nodes@scan}%
\def\tikz@nodes@name#1){%
\expandafter\def\expandafter\tikz@nodes@collect\expandafter{\tikz@nodes@collect#1)}%
\tikz@nodes@scan}%
\def\tikz@nodes@opt#1]{%
\expandafter\def\expandafter\tikz@nodes@collect\expandafter{\tikz@nodes@collect#1]}%
\tikz@nodes@scan}%
\def\tikz@nodes@main#1{%
\iftikz@handle@active@nodes%
\iftikz@node@is@pic%
\expandafter\def\expandafter\tikz@nodes@collect\expandafter{\tikz@nodes@collect{#1}}%
\else%
\expandafter\def\expandafter\tikz@nodes@collect\expandafter{\tikz@nodes@collect{\scantokens{#1}}}%
\fi%
\else%
\expandafter\def\expandafter\tikz@nodes@collect\expandafter{\tikz@nodes@collect{#1}}%
\fi%
\global\setbox\tikz@tempbox=\box\tikz@figbox%
\global\setbox\tikz@tempbox@bg=\box\tikz@figbox@bg%
\tikz@nodes@list{%
\setbox\tikz@figbox=\box\tikz@tempbox%
\setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
\expandafter\tikz@scan@next@command\tikz@nodes@collect\pgfextra\relax%
\global\setbox\tikz@tempbox=\box\tikz@figbox%
\global\setbox\tikz@tempbox@bg=\box\tikz@figbox@bg%
}%
\setbox\tikz@figbox=\box\tikz@tempbox%
\setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
\tikz@scan@next@command%
}%
\tikzset{late options/.code=\tikz@late@options{#1}}%
\def\tikz@late@options#1{%
\begingroup%
\iftikz@shapeborder%
\let\tikz@fig@name=\tikz@shapeborder@name%
\else%
\let\tikz@fig@name=\pgfutil@empty%
\fi%
\tikz@is@matrixfalse%
\let\tikz@options=\pgfutil@empty%
\tikz@clear@rdf@options%
\let\tikz@after@path=\pgfutil@empty%
\let\tikz@afternodepathoptions=\pgfutil@empty%
\let\tikz@alias=\pgfutil@empty%
\let\tikz@transform=\pgfutil@empty%
\tikz@decoratepathfalse%
\tikz@node@reset@hook%
\tikz@enable@node@quotes%
\tikzset{every node/.try,#1}%
\ifx\tikz@fig@name\pgfutil@empty%
\tikzerror{Late options must reference some existing node}%
\fi%
\tikz@node@begin@hook%
\tikz@alias%
\tikzgdlatenodeoptionacallback{\tikz@fig@name}%
\global\let\tikz@last@fig@name=\tikz@fig@name%
\global\let\tikz@after@path@smuggle=\tikz@after@path%
\endgroup%
\tikz@do@after@path@smuggle%
}%
\def\tikz@auto@pre{%
\begingroup
\pgfresetnontranslationattimefalse
\ifpgfslopedattime
\pgfslopedattimefalse%
\else
\pgfslopedattimetrue%
\fi
\pgfallowupsidedownattimetrue%
\tikz@timer%
\pgf@x=\pgf@pt@aa pt%
\pgf@y=\pgf@pt@ab pt%
\pgfpointnormalised{}%
}%
\def\tikz@auto@post{%
\global\let\tikz@anchor@smuggle=\tikz@anchor%
\endgroup%
\let\tikz@anchor=\tikz@anchor@smuggle%
}%
\def\tikz@auto@anchor{%
\ifdim\pgf@x>0.05pt%
\ifdim\pgf@y>0.05pt%
\def\tikz@anchor{south east}%
\else\ifdim\pgf@y<-0.05pt%
\def\tikz@anchor{south west}%
\else
\def\tikz@anchor{south}%
\fi\fi%
\else\ifdim\pgf@x<-0.05pt%
\ifdim\pgf@y>0.05pt%
\def\tikz@anchor{north east}%
\else\ifdim\pgf@y<-0.05pt%
\def\tikz@anchor{north west}%
\else
\def\tikz@anchor{north}%
\fi\fi%
\else%
\ifdim\pgf@y>0pt%
\def\tikz@anchor{east}%
\else%
\def\tikz@anchor{west}%
\fi%
\fi\fi%
}%
\def\tikz@auto@anchor@prime{%
\ifdim\pgf@x>0.05pt%
\ifdim\pgf@y>0.05pt%
\def\tikz@anchor{north west}%
\else\ifdim\pgf@y<-0.05pt%
\def\tikz@anchor{north east}%
\else
\def\tikz@anchor{north}%
\fi\fi%
\else\ifdim\pgf@x<-0.05pt%
\ifdim\pgf@y>0.05pt%
\def\tikz@anchor{south west}%
\else\ifdim\pgf@y<-0.05pt%
\def\tikz@anchor{south east}%
\else
\def\tikz@anchor{south}%
\fi\fi%
\else%
\ifdim\pgf@y>0pt%
\def\tikz@anchor{west}%
\else%
\def\tikz@anchor{east}%
\fi%
\fi\fi%
}%
\def\tikzgdeventcallback#1#2{}%
\def\tikzgdeventgroupcallback#1{}%
\def\tikzgdlatenodeoptionacallback#1{}%
\def\tikz@children{%
\let\tikz@children@list=\pgfutil@empty%
\tikznumberofchildren=0\relax%
\tikz@collect@children c}%
\def\tikz@collect@children{\pgfutil@ifnextchar c{\tikz@collect@children@cchar}{\tikz@children@collected}}%
\def\tikz@collect@children@cchar c{\pgfutil@ifnextchar h{\tikz@collect@child}{\tikz@children@collected c}}%
\def\tikz@collect@child hild{\pgfutil@ifnextchar[{\tikz@collect@childA}{\tikz@collect@childA[]}}%
\def\tikz@collect@childA[#1]{\pgfutil@ifnextchar f{\tikz@collect@children@foreach[#1]}{\tikz@collect@childB[#1]}}%
\def\tikz@collect@childB[#1]{%
\advance\tikznumberofchildren by1\relax
\expandafter\def\expandafter\tikz@children@list\expandafter{\tikz@children@list \tikz@childnode[#1]}%
\pgfutil@ifnextchar\bgroup{\tikz@collect@child@code}{\tikz@collect@child@code{}}}%
\def\tikz@collect@child@code#1{%
\expandafter\def\expandafter\tikz@children@list\expandafter{\tikz@children@list{#1}}%
\tikz@collect@children%
}%
\def\tikz@collect@children@foreach[#1]foreach#2in#3{%
\pgfutil@ifnextchar\bgroup{\tikz@collect@children@foreachA{#1}{#2}{#3}}{\tikz@collect@children@foreachA{#1}{#2}{#3}{}}}%
\def\tikz@collect@children@foreachA#1#2#3#4{%
\expandafter\def\expandafter\tikz@children@list\expandafter
{\tikz@children@list\tikz@childrennodes[#1]{#2}{#3}{#4}}%
\c@pgf@counta=\tikznumberofchildren%
\foreach#2in{#3}%
{%
\global\advance\c@pgf@counta by1\relax%
}%
\tikznumberofchildren=\c@pgf@counta%
\tikz@collect@children%
}%
\long\def\tikz@children@collected{%
\begingroup%
\advance\tikztreelevel by 1\relax%
\tikzgdeventgroupcallback{descendants}%
\let\tikz@options=\pgfutil@empty%
\tikz@clear@rdf@options%
\let\tikz@transform=\pgfutil@empty%
\tikzset{level/.try=\the\tikztreelevel,level \the\tikztreelevel/.try}%
\tikz@transform%
\let\tikz@transform=\relax%
\let\tikzparentnode=\tikz@last@fig@name%
\ifx\tikz@grow\relax\else%
\pgftransformshift{\pgfpointanchor{\tikzparentnode}{\tikz@growth@anchor}}%
\fi%
\tikznumberofcurrentchild=0\relax%
\tikz@children@list%
\global\setbox\tikz@tempbox=\box\tikz@figbox%
\global\setbox\tikz@tempbox@bg=\box\tikz@figbox@bg%
\endgroup%
\setbox\tikz@figbox=\box\tikz@tempbox%
\setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
\tikz@scan@next@command%
}%
\def\tikz@childrennodes[#1]#2#3#4{%
\c@pgf@counta=\tikznumberofcurrentchild\relax%
\setbox\tikz@tempbox=\box\tikz@figbox%
\setbox\tikz@tempbox@bg=\box\tikz@figbox@bg%
\foreach#2in{#3}{%
\tikznumberofcurrentchild=\c@pgf@counta\relax%
\setbox\tikz@figbox=\box\tikz@tempbox%
\setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
\tikz@childnode[#1]{#4}%
\global\c@pgf@counta=\tikznumberofcurrentchild\relax%
\global\setbox\tikz@tempbox=\box\tikz@figbox%
\global\setbox\tikz@tempbox@bg=\box\tikz@figbox@bg%
}%
\tikznumberofcurrentchild=\c@pgf@counta\relax%
\setbox\tikz@figbox=\box\tikz@tempbox%
\setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
}%
\def\tikz@childnode[#1]#2{%
\advance\tikznumberofcurrentchild by1\relax%
{\tikzset{every child/.try,#1}\expandafter}%
\iftikz@child@missing%
\tikzgdeventcallback{node}{}%
\else%
\setbox\tikz@whichbox=\hbox\bgroup%
\unhbox\tikz@whichbox%
\hbox\bgroup\bgroup%
\pgfinterruptpath%
\pgfscope%
\let\tikz@transform=\pgfutil@empty%
\tikzset{every child/.try,#1}%
\tikz@options%
\tikz@transform%
\let\tikz@transform=\relax%
\tikz@grow%
\edef\tikz@parent@node@name{[name=\tikzparentnode-\the\tikznumberofcurrentchild,style=every child node]}%
\def\tikz@child@node@text{[shape=coordinate]{}}
\tikz@parse@child@node#2\pgf@stop%
\expandafter\expandafter\expandafter\node
\expandafter\tikz@parent@node@name
\tikz@child@node@text
\pgfextra{\global\let\tikz@childnode@name=\tikz@last@fig@name};%
\let\tikzchildnode=\tikz@childnode@name%
{%
\def\tikz@edge@to@parent@needed{edge from parent}
\ifx\tikz@child@node@rest\pgfutil@empty%
\path edge from parent;%
\else%
\path \tikz@child@node@rest \tikz@edge@to@parent@needed;%
\fi%
}%
\endpgfscope%
\endpgfinterruptpath%
\egroup\egroup%
\egroup%
\fi%
}%
\def\tikz@parse@child@node{%
\pgfutil@ifnextchar n{\tikz@parse@child@node@n}%
{\pgfutil@ifnextchar c{\tikz@parse@child@node@c}%
{\pgfutil@ifnextchar\pgf@stop\tikz@parse@child@node@rest\tikz@parse@child@node@expand}}}%
\def\tikz@parse@child@node@expand{%
\advance\tikz@expandcount by-1\relax%
\ifnum\tikz@expandcount<0\relax%
\expandafter\tikz@parse@child@node@rest%
\else%
\expandafter\expandafter\expandafter\tikz@parse@child@node%
\fi%
}%
\def\tikz@parse@child@node@rest#1\pgf@stop{\tikz@resetexpandcount\def\tikz@child@node@rest{#1}}%
\def\tikz@parse@child@node@c c{\tikz@resetexpandcount\pgfutil@ifnextchar o{\tikz@parse@child@node@co}{\tikz@parse@child@node@rest c}}%
\def\tikz@parse@child@node@co o{\pgfutil@ifnextchar o{\tikz@parse@child@node@coordinate}{\tikz@parse@child@node@rest co}}%
\def\tikz@parse@child@node@coordinate ordinate{%
\pgfutil@ifnextchar ({\tikz@@parse@child@node@coordinate}{%
\def\tikz@child@node@text{[shape=coordinate]{}}%
\tikz@parse@child@node@rest}}%
\def\tikz@@parse@child@node@coordinate(#1){%
\pgfutil@ifnextchar a{\tikz@p@c@n@c@at(#1)}{%
\def\tikz@child@node@text{[shape=coordinate,name=#1]{}}%
\tikz@parse@child@node@rest}}%
\def\tikz@p@c@n@c@at(#1)at#2({%
\def\tikz@child@node@text@pre{[shape=coordinate,name=#1]at}%
\tikz@scan@one@point\tikz@p@c@n@c@at@math(%
}%
\def\tikz@p@c@n@c@at@math#1{%
\pgf@process{#1}%
\edef\tikz@marshal{(\the\pgf@x,\the\pgf@y){}}%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@child@node@text%
\expandafter\expandafter\expandafter{\expandafter\tikz@child@node@text@pre\tikz@marshal}%
\tikz@parse@child@node@rest%
}%
\def\tikz@parse@child@node@n node{\tikz@resetexpandcount%
\let\tikz@child@node@text=\pgfutil@empty%
\tikz@p@c@s}%
\def\tikz@p@c@s{%
\pgfutil@ifnextchar a{\tikz@p@c@s@at}
{\pgfutil@ifnextchar ({\tikz@p@c@s@paran}
{\pgfutil@ifnextchar [{\tikz@p@c@s@bra}
{\pgfutil@ifnextchar \bgroup{\tikz@p@c@s@group}
{\tikzerror{Cannot parse this node}}}}}}%
\def\tikz@p@c@s@at at#1({%
\tikz@scan@one@point\tikz@p@c@s@at@math(%
}%
\def\tikz@p@c@s@at@math#1{%
\pgf@process{#1}%
\edef\tikz@marshal{ at(\the\pgf@x,\the\pgf@y)}%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@child@node@text%
\expandafter\expandafter\expandafter{\expandafter\tikz@child@node@text\tikz@marshal}
\tikz@p@c@s}%
\def\tikz@p@c@s@paran(#1){%
\expandafter\def\expandafter\tikz@child@node@text\expandafter{\tikz@child@node@text(#1)}
\tikz@p@c@s}%
\def\tikz@p@c@s@bra[#1]{%
\expandafter\def\expandafter\tikz@child@node@text\expandafter{\tikz@child@node@text[#1]}
\tikz@p@c@s}%
\def\tikz@p@c@s@group#1{%
\iftikz@handle@active@nodes%
\expandafter\def\expandafter\tikz@child@node@text\expandafter{\tikz@child@node@text{\scantokens{#1}}}%
\else%
\expandafter\def\expandafter\tikz@child@node@text\expandafter{\tikz@child@node@text{#1}}
\fi%
\tikz@parse@child@node@rest%
}%
\def\tikz@decoration ecorate{%
\pgfutil@ifnextchar[{\tikz@lib@decoration}{\tikz@lib@decoration[]}%
}%
\def\tikz@lib@decoration[#1]#2{\tikzerror{You need to load a decoration library}}%
\def\tikz@lib@dec@decorate@path{\tikzerror{You need to load a decoration library}}%
\def\tikz@let@command et#1in{%
\tikzerror{You need to say \string\usetikzlibrary{calc} to use the let command}%
\tikz@scan@next@command%
}%
\newif\iftikz@node@is@pic
\def\tikz@subpicture ic{\tikz@node@is@pictrue\tikz@scan@next@command node}%
\def\tikz@subpicture@handle#1{%
\pgfkeys@spdef\tikz@temp{#1}%
\expandafter\tikz@subpicture@handle@\expandafter{\tikz@temp}%
}%
\def\tikz@subpicture@handle@#1{
\pgfkeys{/tikz/pics/.cd,#1}%
\tikz@node@transformations%
\let\tikz@transform=\relax%
\let\tikz@picmode\tikz@mode%
\tikzset{name prefix ../.style/.expanded={/tikz/name prefix=\pgfkeysvalueof{/tikz/name prefix}}}%
\ifx\tikz@fig@name\pgfutil@empty\else%
\tikzset{name prefix/.expanded=\tikz@fig@name}%
\fi%
\pgfkeysvalueof{/tikz/pics/setup code}%
\pgfkeysgetvalue{/tikz/pics/code}{\tikz@pic@code}
\ifx\tikz@pic@code\pgfutil@empty\else%
\setbox\tikz@whichbox=\hbox\bgroup%
\unhbox\tikz@whichbox%
\hbox\bgroup
\bgroup%
\pgfinterruptpath%
\pgfscope%
\tikz@options%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\tikz@atbegin@scope%
\scope[every pic/.try]%
\tikz@pic@code%
\endscope%
\tikz@atend@scope%
\endpgfscope%
\endpgfinterruptpath%
\egroup
\egroup%
\egroup%
\fi%
\pgfkeysgetvalue{/tikz/pics/foreground code}{\tikz@pic@code}
\ifx\tikz@pic@code\pgfutil@empty\else%
\setbox\tikz@figbox=\hbox\bgroup%
\unhbox\tikz@figbox%
\hbox\bgroup
\bgroup%
\pgfinterruptpath%
\pgfscope%
\tikz@options%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\tikz@atbegin@scope%
\scope[every front pic/.try]%
\tikz@pic@code%
\endscope%
\tikz@atend@scope%
\endpgfscope%
\endpgfinterruptpath%
\egroup
\egroup%
\egroup%
\fi%
\pgfkeysgetvalue{/tikz/pics/background code}{\tikz@pic@code}
\ifx\tikz@pic@code\pgfutil@empty\else%
\setbox\tikz@figbox@bg=\hbox\bgroup%
\unhbox\tikz@figbox@bg%
\hbox\bgroup
\bgroup%
\pgfinterruptpath%
\pgfscope%
\tikz@options%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\tikz@atbegin@scope%
\scope[every behind pic/.try]%
\tikz@pic@code%
\endscope%
\tikz@atend@scope%
\endpgfscope%
\endpgfinterruptpath%
\egroup
\egroup%
\egroup%
\fi%
\tikz@node@finish%
}%
\tikzset{
pic actions/.code=\tikz@addmode{\tikz@picmode}
}%
\tikzset{
pics/setup code/.initial=,
pics/code/.initial=,
pics/background code/.initial=,
pics/foreground code/.initial=
}%
\def\tikzdeclarepic#1#2{\pgfkeys{/tikz/#1/.cd,#2}}%
\pgfkeysdef{/handlers/.pic}{%
\edef\pgf@temp{\pgfkeyscurrentpath}%
\edef\pgf@temp{\expandafter\tikz@smuggle@pics@in\pgf@temp\pgf@stop}%
\expandafter\pgfkeys\expandafter{\pgf@temp/.style={code={#1}}}%
}%
\def\tikz@smuggle@pics@in/tikz/#1\pgf@stop{/tikz/pics/#1}%
\def\tikz@timer@line{%
\pgftransformlineattime{\tikz@time}{\tikz@timer@start}{\tikz@timer@end}%
}%
\def\tikz@timer@vhline{%
\ifdim\tikz@time pt<0.5pt%
\pgf@process{\tikz@timer@start}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\tikz@timer@end}%
\pgf@xb=\tikz@time pt%
\pgf@xb=2\pgf@xb%
\edef\tikz@marshal{\noexpand\pgftransformlineattime{\pgf@sys@tonumber{\pgf@xb}}{\noexpand\tikz@timer@start}{%
\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@y}}}%
\tikz@marshal%
\else%
\pgf@process{\tikz@timer@start}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\tikz@timer@end}%
\pgf@xb=\tikz@time pt%
\pgf@xb=2\pgf@xb%
\advance\pgf@xb by-1pt%
\edef\tikz@marshal{\noexpand\pgftransformlineattime{\pgf@sys@tonumber{\pgf@xb}}%
{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@y}}{\noexpand\tikz@timer@end}}%
\tikz@marshal%
\fi%
}%
\def\tikz@timer@hvline{%
\ifdim\tikz@time pt<0.5pt%
\pgf@process{\tikz@timer@start}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\tikz@timer@end}%
\pgf@xb=\tikz@time pt%
\pgf@xb=2\pgf@xb%
\edef\tikz@marshal{\noexpand\pgftransformlineattime{\pgf@sys@tonumber{\pgf@xb}}{\noexpand\tikz@timer@start}{%
\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@ya}}}%
\tikz@marshal%
\else%
\pgf@process{\tikz@timer@start}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\tikz@timer@end}%
\pgf@xb=\tikz@time pt%
\pgf@xb=2\pgf@xb%
\advance\pgf@xb by-1pt%
\edef\tikz@marshal{\noexpand\pgftransformlineattime{\pgf@sys@tonumber{\pgf@xb}}%
{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@ya}}{\noexpand\tikz@timer@end}}%
\tikz@marshal%
\fi%
}%
\def\tikz@timer@curve{%
\pgftransformcurveattime{\tikz@time}{\tikz@timer@start}{\tikz@timer@cont@one}{\tikz@timer@cont@two}{\tikz@timer@end}%
}%
\def\tikz@timer@arc{%
\pgfmathcos@{\tikz@timer@start@angle}%
\let\tikz@angle@cos\pgfmathresult%
\pgfmathsin@{\tikz@timer@start@angle}%
\let\tikz@angle@sin\pgfmathresult%
\pgftransformarcaxesattime{\tikz@time}{%
\pgfpointdiff{%
\pgfpointadd{%
\pgfpointscale{\tikz@angle@cos}{\tikz@timer@zero@axis}%
}{%
\pgfpointscale{\tikz@angle@sin}{\tikz@timer@ninety@axis}%
}%
}%
{\tikz@timer@start}%
}%
{\tikz@timer@zero@axis}%
{\tikz@timer@ninety@axis}%
{\tikz@timer@start@angle}{\tikz@timer@end@angle}%
}%
\def\tikzdeclarecoordinatesystem#1#2{%
\expandafter\def\csname tikz@parse@cs@#1\endcsname(##1){%
\pgf@process{%
#2%
\global\let\tikz@smubble@b=\tikz@shapeborder@name%
}%
\let\tikz@shapeborder@name=\tikz@smubble@b%
\edef\tikz@return@coordinate{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
}%
\def\tikzaliascoordinatesystem#1#2{%
\edef\pgf@marshal{\noexpand\let\expandafter\noexpand\csname
tikz@parse@cs@#1\endcsname=\expandafter\noexpand\csname
tikz@parse@cs@#2\endcsname}%
\pgf@marshal%
}%
\tikzdeclarecoordinatesystem{canvas}
{%
\tikzset{cs/.cd,x=0pt,y=0pt,#1}%
\pgfpoint{\tikz@cs@x}{\tikz@cs@y}%
}%
\tikzdeclarecoordinatesystem{canvas polar}
{%
\tikzset{cs/.cd,angle=0,radius=0cm,#1}%
\pgfpointpolar{\tikz@cs@angle}{\tikz@cs@xradius and \tikz@cs@yradius}%
}%
\tikzdeclarecoordinatesystem{xyz}
{%
\tikzset{cs/.cd,x=0,y=0,z=0,#1}%
\pgfpointxyz{\tikz@cs@x}{\tikz@cs@y}{\tikz@cs@z}%
}%
\tikzdeclarecoordinatesystem{xyz polar}
{%
\tikzset{cs/.cd,angle=0,radius=0,#1}%
\pgfpointpolarxy{\tikz@cs@angle}{\tikz@cs@xradius and \tikz@cs@yradius}%
}%
\tikzaliascoordinatesystem{xy polar}{xyz polar}%
\tikzdeclarecoordinatesystem{node}
{%
\tikzset{cs/.cd,name=,anchor=none,angle=none,#1}%
\ifx\tikz@cs@anchor\tikz@nonetext%
\ifx\tikz@cs@angle\tikz@nonetext%
\expandafter\ifx\csname pgf@sh@ns@\tikz@cs@node\endcsname\tikz@coordinate@text%
\else
\aftergroup\tikz@shapebordertrue%
\edef\tikz@shapeborder@name{\tikz@pp@name{\tikz@cs@node}}%
\fi%
\pgfpointanchor{\tikz@pp@name{\tikz@cs@node}}{center}%
\else%
\pgfpointanchor{\tikz@pp@name{\tikz@cs@node}}{\tikz@cs@angle}%
\fi%
\else%
\pgfpointanchor{\tikz@pp@name{\tikz@cs@node}}{\tikz@cs@anchor}%
\fi%
}%
\tikzset{cs/first line/.code=\def\tikz@cs@line@a{#1}\def\tikz@cs@type@a{line}}%
\tikzset{cs/second line/.code=\def\tikz@cs@line@b{#1}\def\tikz@cs@type@b{line}}%
\tikzset{cs/first node/.code=\tikz@cs@unpack{\tikz@cs@node@a}{\tikz@cs@type@a}{#1}}%
\tikzset{cs/second node/.code=\tikz@cs@unpack{\tikz@cs@node@b}{\tikz@cs@type@b}{#1}}%
\def\tikz@cs@unpack#1#2#3{%
\expandafter\ifx\csname pgf@sh@ns@#3\endcsname\relax%
\tikzerror{Undefined node ``#3''}%
\else%
\def#1{#3}%
\edef#2{\csname pgf@sh@ns@#3\endcsname}%
\fi%
}%
\tikzset{cs/solution/.initial=1}%
\tikzset{cs/horizontal line through/.store in=\tikz@cs@hori@line}%
\tikzset{cs/vertical line through/.store in=\tikz@cs@vert@line}%
\tikzdeclarecoordinatesystem{intersection}
{%
\tikzset{cs/.cd,#1}%
\expandafter\ifx\csname tikz@intersect@\tikz@cs@type@a @and@\tikz@cs@type@b\endcsname\relax%
\tikzerror{I do not know how to compute the intersection
of a \tikz@cs@type@a and a \tikz@cs@type@b. Try saying
\string\usetikzlibrary{calc}}%
\pgfpointorigin%
\else%
\csname tikz@intersect@\tikz@cs@type@a @and@\tikz@cs@type@b\endcsname%
\fi%
}%
\def\tikz@intersect@line@and@line{%
\expandafter\tikz@scan@one@point\expandafter\tikz@parse@line\tikz@cs@line@a%
\pgf@xa=\pgf@xc%
\pgf@ya=\pgf@yc%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\expandafter\tikz@scan@one@point\expandafter\tikz@parse@line\tikz@cs@line@b%
\edef\pgf@marshal{%
{\noexpand\pgfpointintersectionoflines%
{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}%
{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}%
{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}}%
\pgf@marshal%
}%
\def\tikz@parse@line#1--{%
\pgf@process{#1}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\tikz@scan@one@point\pgf@process%
}%
\tikzdeclarecoordinatesystem{perpendicular}
{%
\tikzset{cs/.cd,#1}%
\expandafter\tikz@scan@one@point\expandafter\tikz@parse@intersection@a\tikz@cs@hori@line%
\expandafter\tikz@scan@one@point\expandafter\tikz@parse@intersection@b\tikz@cs@vert@line%
\pgfqpoint{\the\pgf@xb}{\the\pgf@ya}
}%
\tikzdeclarecoordinatesystem{barycentric}
{%
{%
\pgf@xa=0pt%
\pgf@ya=0pt%
\pgf@xb=0pt%
\tikz@bary@dolist#1,=,%
\pgfmathparse{1/\the\pgf@xb}%
\global\pgf@x=\pgfmathresult\pgf@xa%
\global\pgf@y=\pgfmathresult\pgf@ya%
}%
}%
\def\tikz@bary@dolist#1=#2,{%
\def\tikz@temp{#1}%
\ifx\tikz@temp\pgfutil@empty%
\else
\pgf@process{\pgfpointanchor{#1}{center}}%
\pgfmathparse{#2}%
\advance\pgf@xa by\pgfmathresult\pgf@x%
\advance\pgf@ya by\pgfmathresult\pgf@y%
\advance\pgf@xb by\pgfmathresult pt%
\expandafter\tikz@bary@dolist%
\fi%
}%
\tikzset{cs/x/.store in=\tikz@cs@x}%
\tikzset{cs/y/.store in=\tikz@cs@y}%
\tikzset{cs/z/.store in=\tikz@cs@z}%
\tikzset{cs/angle/.store in=\tikz@cs@angle}%
\tikzset{cs/x radius/.store in=\tikz@cs@xradius}%
\tikzset{cs/y radius/.store in=\tikz@cs@yradius}%
\tikzset{cs/radius/.style={/tikz/cs/x radius={#1},/tikz/cs/y radius={#1}}}%
\tikzset{cs/name/.store in=\tikz@cs@node}%
\tikzset{cs/anchor/.store in=\tikz@cs@anchor}%
\def\tikz@last@position{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}%
\def\tikz@last@position@saved{\pgfqpoint{\tikz@lastxsaved}{\tikz@lastysaved}}%
\def\tikz@make@last@position#1{%
\pgf@process{#1}%
\tikz@lastx=\pgf@x\relax%
\tikz@lasty=\pgf@y\relax%
\iftikz@updatecurrent%
\tikz@lastxsaved=\pgf@x\relax%
\tikz@lastysaved=\pgf@y\relax%
\fi%
\iftikz@updatenext
\tikz@updatecurrenttrue%
\fi
}%
\newif\iftikz@updatecurrent
\tikz@updatecurrenttrue
\newif\iftikz@updatenext
\tikz@updatenexttrue
\def\tikz@scan@one@point#1{%
\let\tikz@to@use@whom=\tikz@to@use@last@coordinate%
\tikz@shapeborderfalse%
\pgfutil@ifnextchar+{\tikz@scan@relative#1}{\tikz@scan@absolute#1}}%
\def\tikz@scan@absolute#1{%
\pgfutil@ifnextchar({\tikz@scan@@absolute#1}%
{%
\advance\tikz@expandcount by -1
\ifnum\tikz@expandcount<0\relax%
\let\pgfutil@next=\tikz@@scangiveup%
\else%
\let\pgfutil@next=\tikz@@scanexpand%
\fi%
\pgfutil@next{#1}%
}%
}%
\def\tikz@@scanexpand#1{\expandafter\tikz@scan@one@point\expandafter#1}%
\def\tikz@@scangiveup#1{\tikzerror{Cannot parse this coordinate}#1{\pgfpointorigin}}%
\def\tikz@scan@@absolute#1({%
\pgfutil@ifnextchar[%
{\def\tikz@scan@point@recall{#1}\tikz@scan@options}%
{\tikz@@@scan@@absolute#1(}%
}%
\def\tikz@scan@options[#1]#2{%
\def\tikz@scan@point@options{#1}%
\tikz@@@scan@@absolute\tikz@scan@handle@options(#2%
}%
\def\tikz@scan@handle@options#1{%
{%
\pgftransformreset%
\let\tikz@transform=\pgfutil@empty%
\expandafter\tikzset\expandafter{\tikz@scan@point@options}%
\tikz@transform%
\pgf@process{\pgfpointtransformed{#1}}%
\xdef\tikz@marshal{\expandafter\noexpand\tikz@scan@point@recall{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
}%
\tikz@marshal%
}%
\def\tikz@@@scan@@absolute#1({%
\pgfutil@ifnextchar{$}%
{\tikz@parse@calculator#1(}
{\tikz@scan@no@calculator#1(}%
}%
\def\tikz@scan@no@calculator#1(#2){%
\edef\tikz@scan@point@coordinate{(#2)}%
\expandafter\tikz@@scan@@no@calculator\expandafter#1\tikz@scan@point@coordinate%
}%
\def\tikz@@scan@@no@calculator#1(#2){%
\pgfutil@in@{cs:}{#2}%
\ifpgfutil@in@%
\let\pgfutil@next\tikz@parse@coordinatesystem%
\else%
\pgfutil@in@{intersection }{#2}%
\ifpgfutil@in@%
\let\pgfutil@next\tikz@parse@intersection%
\else%
\pgfutil@in@|{#2}%
\ifpgfutil@in@
\pgfutil@in@{-|}{#2}%
\ifpgfutil@in@
\let\pgfutil@next\tikz@parse@hv%
\else%
\let\pgfutil@next\tikz@parse@vh%
\fi%
\else%
\pgfutil@in@:{#2}%
\ifpgfutil@in@
\let\pgfutil@next\tikz@parse@polar%
\else%
\pgfutil@in@,{#2}%
\ifpgfutil@in@%
\let\pgfutil@next\tikz@parse@regular%
\else%
\let\pgfutil@next\tikz@parse@node%
\fi%
\fi%
\fi%
\fi%
\fi%
\pgfutil@next#1(#2)%
}%
\def\tikz@parse@calculator#1($#2$){%
\tikzerror{You need to say \string\usetikzlibrary{calc} for coordinate calculation}%
#1{\pgfpointorigin}%
}%
\def\tikz@parse@coordinatesystem#1(#2 cs:#3){%
\let\tikz@return@coordinate=\pgfpointorigin%
\pgfutil@ifundefined{tikz@parse@cs@#2}
{\tikzerror{Unknown coordinate system '#2'}}
{\csname tikz@parse@cs@#2\endcsname(#3)}%
\expandafter#1\expandafter{\tikz@return@coordinate}%
}%
\newif\iftikz@isdimension
\def\tikz@checkunit#1{%
\pgfmathparse{#1}%
\let\iftikz@isdimension=\ifpgfmathunitsdeclared%
}%
\def\tikz@parse@polar#1(#2:#3){%
\pgfutil@ifundefined{tikz@polar@dir@#2}
{\tikz@@parse@polar#1({#2}:{#3})}
{\tikz@@parse@polar#1(\csname tikz@polar@dir@#2\endcsname:{#3})}%
}%
\def\tikz@@parse@polar#1(#2:#3){%
\pgfutil@in@{ and }{#3}%
\ifpgfutil@in@%
\edef\tikz@args{({#2}:#3)}%
\else%
\edef\tikz@args{({#2}:{#3} and {#3})}%
\fi%
\expandafter\tikz@@@parse@polar\expandafter#1\tikz@args%
}%
\def\tikz@@@parse@polar#1(#2:#3 and #4){%
\tikz@checkunit{#3}%
\iftikz@isdimension%
\tikz@checkunit{#4}%
\iftikz@isdimension%
\def\tikz@next{#1{\pgfpointpolar{#2}{#3 and #4}}}%
\else%
\tikzerror{You cannot mix dimension and dimensionless values for polar coordinates}
\def\tikz@next{#1{\pgfpointorigin}}%
\fi%
\else%
\tikz@checkunit{#4}%
\iftikz@isdimension%
\tikzerror{You cannot mix dimension and dimensionless values for polar coordinates}
\def\tikz@next{#1{\pgfpointorigin}}%
\else%
\def\tikz@next{#1{\pgfpointpolarxy{#2}{#3 and #4}}}%
\fi%
\fi%
\tikz@next%
}%
\def\tikz@polar@dir@up{90}%
\def\tikz@polar@dir@down{-90}%
\def\tikz@polar@dir@left{180}%
\def\tikz@polar@dir@right{0}%
\def\tikz@polar@dir@north{90}%
\def\tikz@polar@dir@south{-90}%
\def\tikz@polar@dir@east{0}%
\def\tikz@polar@dir@west{180}%
\expandafter\def\csname tikz@polar@dir@north east\endcsname{45}%
\expandafter\def\csname tikz@polar@dir@north west\endcsname{135}%
\expandafter\def\csname tikz@polar@dir@south east\endcsname{-45}%
\expandafter\def\csname tikz@polar@dir@south west\endcsname{-135}%
\def\tikz@parse@regular#1(#2,{%
\pgfutil@ifnextchar\bgroup{\tikz@@parse@regular#1{#2}}{\tikz@@@parse@regular#1{#2}}%
}%
\def\tikz@@parse@regular#1#2#3{%
\pgfutil@ifnextchar[{%
\tikz@@@parse@regular#1{#2}{#3}}%
{\tikz@@@parse@regular#1{#2}{{#3}}}}%
\def\tikz@@@parse@regular#1#2#3){%
\pgfutil@in@,{#3}%
\ifpgfutil@in@%
\tikz@parse@splitxyz{#1}{#2}#3,%
\else%
\tikz@checkunit{#2}%
\iftikz@isdimension%
\tikz@checkunit{#3}%
\iftikz@isdimension%
\def\pgfutil@next{#1{\pgfpoint{#2}{#3}}}%
\else%
\def\pgfutil@next{#1{\pgfpointadd{\pgfpoint{#2}{0pt}}{\pgfpointxy{0}{#3}}}}%
\fi%
\else%
\tikz@checkunit{#3}%
\iftikz@isdimension%
\def\pgfutil@next{#1{\pgfpointadd{\pgfpoint{0pt}{#3}}{\pgfpointxy{#2}{0}}}}%
\else%
\def\pgfutil@next{#1{\pgfpointxy{#2}{#3}}}%
\fi%
\fi%
\fi%
\pgfutil@next%
}%
\def\tikz@parse@splitxyz#1#2#3,#4,{%
\def\pgfutil@next{#1{\pgfpointxyz{#2}{#3}{#4}}}%
}%
\def\tikz@coordinate@text{coordinate}%
\def\tikz@parse@node#1(#2){%
\pgfutil@in@.{#2}%
\ifpgfutil@in@
\tikz@calc@anchor#2\tikz@stop%
\else%
\tikz@calc@anchor#2.center\tikz@stop%
\ifcsname pgf@sh@ns@\tikz@pp@name{#2}\endcsname
\expandafter\ifx\csname pgf@sh@ns@\tikz@pp@name{#2}\endcsname\tikz@coordinate@text%
\else
\tikz@shapebordertrue%
\def\tikz@shapeborder@name{\tikz@pp@name{#2}}%
\fi%
\else\ifcsname pgf@sh@ns@#2\endcsname
\expandafter\ifx\csname pgf@sh@ns@#2\endcsname\tikz@coordinate@text%
\else
\tikz@shapebordertrue%
\def\tikz@shapeborder@name{#2}%
\fi%
\fi\fi
\fi%
\edef\tikz@marshal{\noexpand#1{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
\tikz@marshal%
}%
\def\tikz@calc@anchor#1.#2\tikz@stop{%
\ifcsname pgf@sh@ns@\tikz@pp@name{#1}\endcsname%
\pgfpointanchor{\tikz@pp@name{#1}}{#2}%
\else
\pgfpointanchor{#1}{#2}%
\fi
}%
\def\tikz@parse@hv#1(#2){%
\pgfutil@in@{ -| }{#2}%
\ifpgfutil@in@%
\let\tikz@next=\tikz@parse@hvboth%
\else%
\pgfutil@in@{ -|}{#2}%
\ifpgfutil@in@%
\let\tikz@next=\tikz@parse@hvleft%
\else%
\pgfutil@in@{-| }{#2}%
\ifpgfutil@in@%
\let\tikz@next=\tikz@parse@hvright%
\else%
\let\tikz@next=\tikz@parse@hvdone%
\fi%
\fi%
\fi%
\tikz@next#1(#2)}%
\def\tikz@parse@hvboth#1(#2 -| #3){\tikz@parse@vhdone#1({#3}|-{#2})}%
\def\tikz@parse@hvleft#1(#2 -|#3){\tikz@parse@vhdone#1({#3}|-{#2})}%
\def\tikz@parse@hvright#1(#2-| #3){\tikz@parse@vhdone#1({#3}|-{#2})}%
\def\tikz@parse@hvdone#1(#2-|#3){\tikz@parse@vhdone#1({#3}|-{#2})}%
\def\tikz@parse@vh#1(#2){%
\pgfutil@in@{ |- }{#2}%
\ifpgfutil@in@%
\let\tikz@next=\tikz@parse@vhboth%
\else%
\pgfutil@in@{ |-}{#2}%
\ifpgfutil@in@%
\let\tikz@next=\tikz@parse@vhleft%
\else%
\pgfutil@in@{|- }{#2}%
\ifpgfutil@in@%
\let\tikz@next=\tikz@parse@vhright%
\else%
\let\tikz@next=\tikz@parse@vhdone%
\fi%
\fi%
\fi%
\tikz@next#1(#2)}%
\def\tikz@parse@vhboth#1(#2 |- #3){\tikz@parse@vhdone#1({#2}|-{#3})}%
\def\tikz@parse@vhleft#1(#2 |-#3){\tikz@parse@vhdone#1({#2}|-{#3})}%
\def\tikz@parse@vhright#1(#2|- #3){\tikz@parse@vhdone#1({#2}|-{#3})}%
\def\tikz@parse@vhdone#1(#2|-#3){%
{%
\tikz@@@scan@@absolute\tikz@parse@vh@mid(#2)%
\tikz@@@scan@@absolute\tikz@parse@vh@end(#3)%
\xdef\tikz@marshal{\noexpand#1{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}}%
}%
\tikz@marshal%
}%
\def\tikz@parse@vh@mid#1{\pgf@process{#1}\pgf@xa=\pgf@x}%
\def\tikz@parse@vh@end#1{\pgf@process{#1}\pgf@ya=\pgf@y}%
\def\tikz@parse@intersection#1(intersection{%
\pgfutil@ifnextchar o{%
\tikz@parse@main@intersection#1 1%
}{%
\tikz@parse@main@intersection#1%
}%
}%
\def\tikz@parse@main@intersection#1#2of #3 and #4){%
\tikzset{cs/solution={#2}}%
\pgfutil@in@{--}{#3}%
\ifpgfutil@in@%
\tikz@reparse@line{first}#3\pgf@stop%
\else%
\tikzset{cs/first node={#3}}%
\fi%
\pgfutil@in@{--}{#4}%
\ifpgfutil@in@%
\tikz@reparse@line{second}#4\pgf@stop%
\else%
\tikzset{cs/second node={#4}}%
\fi%
\tikz@parse@cs@intersection()%
\edef\pgf@marshal{\noexpand#1{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
\pgf@marshal%
}%
\def\tikz@reparse@line#1#2--#3\pgf@stop{%
\tikzset{cs/#1 line={(#2)--(#3)}}%
}%
\def\tikz@parse@intersection@a#1{\pgf@process{#1}\pgf@xa=\pgf@x\pgf@ya=\pgf@y}%
\def\tikz@parse@intersection@b#1{\pgf@process{#1}\pgf@xb=\pgf@x\pgf@yb=\pgf@y}%
\def\tikz@scan@relative#1+{%
\pgfutil@ifnextchar+{\tikz@scan@plusplus#1}{\tikz@scan@oneplus#1}}%
\def\tikz@scan@plusplus#1+{%
\def\tikz@doafter{#1}%
\tikz@scan@absolute\tikz@add%
}%
\def\tikz@add#1{%
\tikz@doafter{\pgfpointadd{#1}{\tikz@last@position@saved}}%
}%
\def\tikz@scan@oneplus#1{%
\def\tikz@doafter{#1}%
\tikz@updatecurrentfalse%
\tikz@scan@absolute\tikz@add%
}%
\let\tikz@enable@node@quotes\relax
\let\tikz@enable@edge@quotes\relax
\let\tikz@enable@pic@quotes\relax
\def\usetikzlibrary{\pgfutil@ifnextchar[{\use@tikzlibrary}{\use@@tikzlibrary}}%
\def\use@tikzlibrary[#1]{\use@@tikzlibrary{#1}}%
\def\use@@tikzlibrary#1{%
\edef\pgf@list{#1}%
\pgfutil@for\pgf@temp:=\pgf@list\do{%
\expandafter\pgfkeys@spdef\expandafter\pgf@temp\expandafter{\pgf@temp}%
\ifx\pgf@temp\pgfutil@empty
\else
\expandafter\ifx\csname tikz@library@\pgf@temp @loaded\endcsname\relax%
\expandafter\global\expandafter\let\csname tikz@library@\pgf@temp @loaded\endcsname=\pgfutil@empty%
\expandafter\edef\csname tikz@library@#1@atcode\endcsname{\the\catcode`\@}
\expandafter\edef\csname tikz@library@#1@barcode\endcsname{\the\catcode`\|}
\expandafter\edef\csname tikz@library@#1@dollarcode\endcsname{\the\catcode`\$}
\catcode`\@=11
\catcode`\|=12
\catcode`\$=3
\pgfutil@InputIfFileExists{tikzlibrary\pgf@temp.code.tex}{}{
\pgfutil@IfFileExists{pgflibrary\pgf@temp.code.tex}{%
\expandafter\usepgflibrary\expandafter{\pgf@temp}%
}{%
\tikzerror{I did not find the tikz library
'\pgf@temp'. I looked for files named
tikzlibrary\pgf@temp.code.tex and
pgflibrary\pgf@temp.code.tex, but neither
could be found in the current texmf trees.}
}}%
\catcode`\@=\csname tikz@library@#1@atcode\endcsname
\catcode`\|=\csname tikz@library@#1@barcode\endcsname
\catcode`\$=\csname tikz@library@#1@dollarcode\endcsname
\fi%
\fi
}%
}%
\usetikzlibrary{topaths}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/experimental/tikzlibrarygraphdrawing.evolving.code.tex ====
\usepgflibrary{graphdrawing}
\usegdlibrary{evolving}
\newcount\mycount
\tikzgraphsset{
nodes = {supernode/.expanded=\tikzgraphnodename},
when/.code = {\pgfparsetime{#1}\mycount=\pgftimeresult pt\tikzgraphsset{name/.expanded=\the\mycount,snapshot/.expanded=\the\mycount}}
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/experimental/tikzlibrarygraphdrawing.evolving.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.circular.code.tex ====
\ProvidesFileRCS{pgflibrarygraphdrawing.circular.code.tex}
\usegdlibrary{circular}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.circular.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.code.tex ====
\ProvidesFileRCS{pgflibrarygraphdrawing.code.tex}
\ifx\directlua\relax%
\pgferror{You need to run LuaTeX to use the graph drawing library}
\expandafter\endinput
\fi
\ifx\directlua\undefined%
\pgferror{You need to run LuaTeX to use the graph drawing library}
\expandafter\endinput
\fi
\def\pgfgdset{\pgfqkeys{/graph drawing}}%
\def\pgfgd@callbackkey#1{%
\pgf@gd@setup@forwards{#1}%
\pgfutil@g@addto@macro\pgf@gd@forwards@list{\pgf@gd@setup@forwards{#1}}%
}%
\def\pgf@gd@setup@forwards#1{%
\let\pgf@temp\pgfutil@empty
\foreach \pgf@gd@path in \pgf@gd@forwarding@list {%
\ifx\pgf@gd@path\pgfutil@empty\else%
\expandafter\pgfutil@g@addto@macro%
\expandafter\pgf@temp\expandafter{%
\expandafter\pgfkeys\expandafter{\pgf@gd@path#1/.forward to=/graph drawing/#1}}%
\fi%
}%
\pgf@temp
}%
\let\pgf@gd@forwards@list\pgfutil@empty
\def\pgfgdappendtoforwardinglist#1{%
\let\pgf@gd@forwarding@list@orig\pgf@gd@forwarding@list
\def\pgf@gd@forwarding@list{#1}%
\pgf@gd@forwards@list%
\expandafter\def\expandafter\pgf@gd@forwarding@list\expandafter{\pgf@gd@forwarding@list@orig,#1}%
}%
\let\pgf@gd@forwarding@list\pgfutil@empty
\def\pgfgdcallbackdeclareparameter#1#2{%
\pgfkeysdef{/graph drawing/#1}{\pgf@gd@handle@parameter{#1}{#2}{##1}}%
\pgfgd@callbackkey{#1}%
}%
\def\pgf@gd@handle@parameter#1#2#3{%
\def\pgf@temp{#3}%
\ifx\pgf@temp\pgfkeysnovalue@text%
\let\pgfgdresult\pgfgd@niltext%
\else%
\pgfkeys{/graph drawing/conversions/#2={#3}}%
\fi%
\advance\pgf@gd@parameter@stack@height by1\relax%
\pgf@gd@parameter@stack@height\directlua{%
local new, main = pgf.gd.interface.InterfaceToDisplay.pushOption('\pgfutil@luaescapestring{#1}',\pgfgdresult,\the\pgf@gd@parameter@stack@height)
tex.print(new..'\pgfutil@luaescapestring{\relax}')
if main then
tex.print('\pgfutil@luaescapestring{\noexpand\pgfgdtriggerrequest}')
end}%
}%
\newcount\pgf@gd@parameter@stack@height
\def\pgfgdtriggerrequest{\pgfgdset{@request scope and layout}}%
\pgfgdset{
conversions/string/.code=\def\pgfgdresult{'\pgfutil@luaescapestring{\detokenize{#1}}'},
conversions/raw/.code=\def\pgfgdresult{#1},
conversions/nil/.code=\let\pgfgdresult\pgfgd@niltext,
conversions/boolean/.code=\def\pgf@test{#1}\ifx\pgf@test\pgf@truetext\def\pgfgdresult{true}\else\ifx\pgf@test\pgfkeysnovalue@text\def\pgfgdresult{true}\else\def\pgfgdresult{false}\fi\fi,
conversions/number/.code=\pgfmathparse{#1}\let\pgfgdresult\pgfmathresult,
conversions/length/.code=\pgfmathparse{#1}\let\pgfgdresult\pgfmathresult,
conversions/time/.code=\pgfparsetime{#1}\let\pgfgdresult\pgftimeresult,
conversions/direction/.code=\pgf@lib@gd@grow@dir{#1}\let\pgfgdresult\pgfmathresult,
conversions/canvas coordinate/.code args={(#1pt,#2pt)}{\edef\pgfgdresult{pgf.gd.model.Coordinate.new(#1,#2)}},
conversions/coordinate/.code args={(#1pt,#2pt)}{\edef\pgfgdresult{{#1,#2}}}
}%
\def\pgf@truetext{true}%
\def\pgfgd@niltext{nil}%
\def\pgf@lib@gd@grow@dir#1{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgf@gd@lib@active@bar%
\def\pgfmathresult{-90}
\else%
\ifcsname pgf@orient@direction@#1\endcsname%
\expandafter\let\expandafter\pgfmathresult\csname pgf@orient@direction@#1\endcsname%
\else
\pgfmathparse{#1}%
\fi
\fi
}%
\def\pgf@orient@direction@down{-90}%
\def\pgf@orient@direction@up{90}%
\def\pgf@orient@direction@left{180}%
\def\pgf@orient@direction@right{0}%
\def\pgf@orient@direction@south{-90}%
\def\pgf@orient@direction@north{90}%
\def\pgf@orient@direction@west{180}%
\def\pgf@orient@direction@east{0}%
\expandafter\def\csname pgf@orient@direction@north east\endcsname{45}%
\expandafter\def\csname pgf@orient@direction@north west\endcsname{135}%
\expandafter\def\csname pgf@orient@direction@south east\endcsname{-45}%
\expandafter\def\csname pgf@orient@direction@south west\endcsname{-135}%
\expandafter\def\csname pgf@orient@direction@-\endcsname{0}%
\expandafter\def\csname pgf@orient@direction@|\endcsname{-90}%
{%
\catcode`\|=13
\gdef\pgf@gd@lib@active@bar{|}%
}%
\def\pgfgdcallbackrendercollectionkindstart#1#2{%
\ifnum#2<0\relax
\setbox\pgf@gd@prekind@box=\hbox\bgroup%
\unhbox\pgf@gd@prekind@box%
\else%
\setbox\pgf@gd@postkind@box=\hbox\bgroup%
\unhbox\pgf@gd@postkind@box%
\fi%
\pgfgdset{/graph drawing/#1/begin rendering/.try}%
}%
\def\pgfgdcallbackrendercollectionkindstop#1#2{%
\pgfgdset{/graph drawing/#1/end rendering/.try}%
\egroup %
}%
\def\pgfgdcallbackrendercollection#1#2{
\pgfgdset{/graph drawing/#1/render/.try={#2}}
}%
\def\pgfgdevent#1#2{%
\directlua{pgf.gd.interface.InterfaceToDisplay.createEvent('\pgfutil@luaescapestring{#1}', '\pgfutil@luaescapestring{#2}')}%
}%
\def\pgfgdbegineventgroup#1{%
\pgfgdevent{begin}{#1}%
}%
\def\pgfgdendeventgroup{%
\pgfgdevent{end}{}%
}%
\def\pgfgdeventgroup#1{%
\pgfgdbegineventgroup{#1}%
\aftergroup\pgfgdendeventgroup%
}%
\def\pgf@gd@positionnode@callback{%
{%
\pgfmathsetmacro{\pgf@gd@node@minx}{\pgfpositionnodelaterminx}%
\pgfmathsetmacro{\pgf@gd@node@miny}{\pgfpositionnodelaterminy}%
\pgfmathsetmacro{\pgf@gd@node@maxx}{\pgfpositionnodelatermaxx}%
\pgfmathsetmacro{\pgf@gd@node@maxy}{\pgfpositionnodelatermaxy}%
\directlua{pgf.temp = require 'pgf.gd.model.Path'.new ()}%
\let\pgfsyssoftpath@movetotoken\pgf@gd@movetotoken%
\let\pgfsyssoftpath@linetotoken\pgf@gd@linetotoken%
\let\pgfsyssoftpath@rectcornertoken\pgf@gd@rectcornertoken%
\let\pgfsyssoftpath@curvetosupportatoken\pgf@gd@curvetosupportatoken%
\let\pgfsyssoftpath@closepathtoken\pgf@gd@closepathtoken%
\pgfpositionnodelaterpath%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
{%
\pgf@process{\pgfpointanchor{\pgfpositionnodelatername}{center}}
\pgfsettransform{\csname pgf@sh@nt@\pgfpositionnodelatername\endcsname}%
\pgf@pos@transform{\pgf@x}{\pgf@y}%
\global\pgf@x=\pgf@x%
\global\pgf@y=\pgf@y%
}%
\directlua{
pgf.gd.interface.InterfaceToDisplay.createVertex(
string.sub('\pgfutil@luaescapestring{\pgfpositionnodelatername}',30), %
'\pgfutil@luaescapestring{\csname pgf@sh@ns@\pgfpositionnodelatername\endcsname}',
pgf.temp:pad((\pgf@sys@tonumber\pgf@xa+\pgf@sys@tonumber\pgf@ya)/2), %
\the\pgf@gd@parameter@stack@height, %
{%
x_min = \pgf@gd@node@minx,
y_min = \pgf@gd@node@miny,
x_max = \pgf@gd@node@maxx,
y_max = \pgf@gd@node@maxy,
tex_box_number = \pgfpositionnodelaterbox
},
{%
center = require 'pgf.gd.model.Coordinate'.new(\pgf@sys@tonumber\pgf@x,\pgf@sys@tonumber\pgf@y)
}
)
pgf.temp = nil
}
}%
}%
\def\pgf@gd@movetotoken#1#2{\directlua{pgf.temp:appendMoveto(\Pgf@geT#1,\Pgf@geT#2)}}%
\def\pgf@gd@linetotoken#1#2{\directlua{pgf.temp:appendLineto(\Pgf@geT#1,\Pgf@geT#2)}}%
\def\pgf@gd@rectcornertoken#1#2#3#4#5{%
\directlua{%
local x,y,dx,dy=\Pgf@geT#1,\Pgf@geT#2,\Pgf@geT#4,\Pgf@geT#5
pgf.temp:appendMoveto(x,y)
pgf.temp:appendLineto(x,y+dy)
pgf.temp:appendLineto(x+dx,y+dy)
pgf.temp:appendLineto(x+dx,y)
pgf.temp:appendClosepath()%
}%
}%
\def\pgf@gd@curvetosupportatoken#1#2#3#4#5#6#7#8{\directlua{pgf.temp:appendCurveto(\Pgf@geT#1,\Pgf@geT#2,\Pgf@geT#4,\Pgf@geT#5,\Pgf@geT#7,\Pgf@geT#8)}}%
\def\pgf@gd@closepathtoken#1#2{\directlua{pgf.temp:appendClosepath()}}%
\def\pgfgdsetlatenodeoption#1{%
\directlua{
pgf.gd.interface.InterfaceToDisplay.addToVertexOptions('\pgfutil@luaescapestring{#1}',\the\pgf@gd@parameter@stack@height)
}
}%
\def\pgfgdcallbackrendernode#1#2#3#4#5#6#7#8#9{%
{%
\def\pgfpositionnodelatername{#1}
\def\pgfpositionnodelaterminx{#2}
\def\pgfpositionnodelatermaxx{#3}
\def\pgfpositionnodelaterminy{#4}
\def\pgfpositionnodelatermaxy{#5}
\directlua{pgf.gd.interface.InterfaceCore.binding:retrieveBox(#8,\pgfpositionnodelaterbox)}
\def\pgf@temp{#9}%
\ifx\pgf@temp\pgfutil@empty%
\pgfpositionnodenow{\pgfqpoint{#6}{#7}}%
\else%
\pgfset{every graphdrawing animation/.try}%
\pgfset{every graphdrawing node animation/.try}%
#9%
\pgfuseid{pgf@gd}%
\pgfidscope%
\pgfpositionnodenow{\pgfqpoint{#6}{#7}}%
\endpgfidscope%
\fi%
}%
}%
\ifx\pgfanimateattribute\pgfutil@undefined
\def\pgfanimateattribute#1#2{\tikzerror{You need to say \string\usetikzlibrary{animations} for animated graphs}}%
\fi
\def\pgfgdedge#1#2#3#4#5{%
\begingroup%
\setbox0=\hbox{{%
\pgfinterruptpath%
\pgfgdprepareedge%
\pgfkeys{#4}%
\toks0={#4}%
\toks1={#5}%
\directlua{
pgf.gd.interface.InterfaceToDisplay.createEdge(
'\pgfutil@luaescapestring{#1}','\pgfutil@luaescapestring{#2}','\pgfutil@luaescapestring{#3}',
\the\pgf@gd@parameter@stack@height,
{ pgf_options = '\pgfutil@luaescapestring{\the\toks0}',
pgf_edge_nodes = '\pgfutil@luaescapestring{\the\toks1}',
})
}%
\endpgfinterruptpath%
}}%
\endgroup%
}%
\let\pgfgdprepareedge=\pgfutil@empty
\def\pgfgdaddprepareedgehook#1{\expandafter\def\expandafter\pgfgdprepareedge\expandafter{\pgfgdprepareedge#1}}%
\newif\ifpgf@gd@nodes@behind@edges
\def\pgfgdsetedgecallback#1{\let\pgfgdcallbackedge=#1}%
\def\pgfgddefaultedgecallback#1#2#3#4#5#6#7#8{%
{%
\def\pgf@temp{#8}%
\ifx\pgf@temp\pgfutil@empty%
\else%
\pgfset{every graphdrawing animation/.try}%
\pgfset{every graphdrawing edge animation/.try}%
#8%
\pgfuseid{pgf@gd}%
\pgfidscope%
\fi%
\pgfscope
\pgfpathmoveto{
\pgfutil@in@.{#1}%
\ifpgfutil@in@
\pgf@gd@unravel#1\relax%
\else
\pgfpointshapeborder{#1}{\pgfpointanchor{#2}{center}}
\fi
}
\pgfpathlineto{
\pgfutil@in@.{#2}%
\ifpgfutil@in@
\pgf@gd@unravel#2\relax%
\else
\pgfpointshapeborder{#2}{\pgfpointanchor{#1}{center}}
\fi
}
\pgfusepath{stroke}
\endpgfscope
\ifx\pgf@temp\pgfutil@empty%
\else%
\endpgfidscope%
\fi%
}
}%
\pgfgdsetedgecallback{\pgfgddefaultedgecallback}%
\def\pgf@gd@unravel#1.#2\relax{%
\pgfpointanchor{#1}{#2}%
}%
\def\pgfgdcallbackbeginshipout{%
\pgfscope%
\catcode`\@=11\relax%
\setbox\pgf@gd@prekind@box=\box\pgfutil@voidb@x%
\setbox\pgf@gd@postkind@box=\box\pgfutil@voidb@x%
}%
\def\pgfgdcallbackendshipout{%
\box\pgf@gd@prekind@box%
\ifpgf@gd@nodes@behind@edges%
\box\pgf@gd@node@box%
\box\pgf@gd@edge@box%
\else%
\box\pgf@gd@edge@box%
\box\pgf@gd@node@box%
\fi%
\box\pgf@gd@postkind@box%
\endpgfscope
}%
\newbox\pgf@gd@node@box
\newbox\pgf@gd@edge@box
\newbox\pgf@gd@prekind@box
\newbox\pgf@gd@postkind@box
\def\pgfgdcallbackbeginnodeshipout{%
\setbox\pgf@gd@node@box=\hbox\bgroup%
}%
\def\pgfgdcallbackendnodeshipout{%
\egroup%
}%
\def\pgfgdcallbackbeginedgeshipout{%
\setbox\pgf@gd@edge@box=\hbox\bgroup%
}%
\def\pgfgdcallbackendedgeshipout{%
\egroup
}%
\def\pgfgdcallbackcreatevertex#1#2#3#4{%
{
\pgfkeys{#3}
\pgfnode{#2}{\pgfkeysvalueof{/graph drawing/generated
node/anchor}}{#4}{#1}{\pgfkeysvalueof{/graph drawing/generated
node/use path}}
}
}%
\pgfkeys{
/graph drawing/generated node/anchor/.initial=center,
/graph drawing/generated node/use path/.initial=\pgfusepath{}
}%
\def\pgfgdbeginlayout{
\begingroup
\pgfgdlayoutscopeactivetrue
\advance\pgf@gd@parameter@stack@height by1\relax%
\directlua{pgf.gd.interface.InterfaceToDisplay.pushLayout(\the\pgf@gd@parameter@stack@height)}
}%
\def\pgfgdendlayout{
\endgroup%
}%
\def\pgfgdsubgraphnode#1#2#3{%
\advance\pgf@gd@parameter@stack@height by1\relax%
{%
\toks0={#2}%
\toks1={#3}%
\directlua{pgf.gd.interface.InterfaceToDisplay.pushSubgraphVertex%
('\pgfutil@luaescapestring{#1}',\the\pgf@gd@parameter@stack@height,
{
shape = 'rectangle', %
pgf_options = '\pgfutil@luaescapestring{\the\toks0}',
text = '\pgfutil@luaescapestring{\the\toks1}',
})
}%
}
}%
\def\pgfgdsubgraphnodecontents#1{%
\hbox to \pgfkeysvalueof{/graph drawing/subgraph bounding box width}{%
\vrule width0pt height\pgfkeysvalueof{/graph drawing/subgraph bounding box height}\hfil}%
}%
\pgfgdset{
subgraph point cloud/.initial=,
subgraph bounding box width/.initial=,
subgraph bounding box height/.initial=,
}%
\pgfgdset{@request scope and layout/.code=\pgfgd@requestcallback{\pgfgdbeginrequest}{\pgfgdendrequest}}%
\def\pgfgd@requestcallback#1#2{%
#1\def\pgf@gd@after@request{#2\egroup}\bgroup\aftergroup\pgf@gd@after@request%
}%
\def\pgfgdbeginrequest{%
\ifpgfgdlayoutscopeactive%
\else%
\expandafter\pgfgdbeginscope%
\fi%
\pgfgdbeginlayout%
}%
\def\pgfgdendrequest{%
\pgfgdendlayout%
\ifpgfgdlayoutscopeactive%
\else%
\expandafter\pgfgdendscope%
\fi%
}%
\newif\ifpgfgdlayoutscopeactive
\def\pgfgdsetrequestcallback#1{\let\pgfgd@requestcallback#1}%
\newif\ifpgfgdgraphdrawingscopeactive
\def\pgfgdbeginscope{%
\begingroup %
\directlua{
pgf.gd.interface.InterfaceToDisplay.beginGraphDrawingScope(\the\pgf@gd@parameter@stack@height)
}%
\begingroup %
\pgfgdgraphdrawingscopeactivetrue
\pgfpositionnodelater{\pgf@gd@positionnode@callback}
\pgfgd@latecallback%
\pgftransformreset
}%
\newif\ifpgfgdresumecoroutine
\def\pgfgdendscope{%
\pgfgdresumecoroutinefalse%
\directlua{
pgf.gd.interface.InterfaceToDisplay.runGraphDrawingAlgorithm()
}%
\pgfutil@loop%
\ifpgfgdresumecoroutine%
\pgfgdresumecoroutinefalse%
\directlua{
pgf.gd.interface.InterfaceToDisplay.resumeGraphDrawingCoroutine()
}%
\pgfutil@repeat%
\endgroup%
\directlua{pgf.gd.interface.InterfaceToDisplay.renderGraph()}%
\directlua{pgf.gd.interface.InterfaceToDisplay.endGraphDrawingScope()}%
\endgroup%
}%
\def\pgfgdaddspecificationhook#1{
\expandafter\def\expandafter\pgfgd@latecallback\expandafter{\pgfgd@latecallback#1}
}%
\let\pgfgd@latecallback\pgfutil@empty
\def\usegdlibrary{\pgfutil@ifnextchar[{\use@gdlibrary}{\use@@gdlibrary}}%
\def\use@gdlibrary[#1]{\use@@gdlibrary{#1}}%
\def\use@@gdlibrary#1{%
\edef\pgf@list{#1}%
\pgfutil@for\pgf@temp:=\pgf@list\do{%
\expandafter\pgfkeys@spdef\expandafter\pgf@temp\expandafter{\pgf@temp}%
\ifx\pgf@temp\pgfutil@empty
\else
\directlua{if not pgf_lookup_and_require('\pgf@temp') then
tex.print('\pgfutil@luaescapestring{\noexpand\pgferror{Graph drawing library '\pgf@temp' not found}}')
end}
\fi
}
}%
{%
\catcode`\%=11
\directlua{
function pgf_lookup_and_require(name)
local sep = package.config:sub(1,1)
local function lookup(name)
local sub = name:gsub('%.',sep)
local find_file = context and
resolvers.findfile or
kpse.find_file
if find_file(sub, 'lua') then
require(name)
elseif find_file(sub, 'clua') then
collectgarbage('stop')
require(name)
collectgarbage('restart')
else
return false
end
return true
end
return
lookup('pgf.gd.' .. name .. '.library') or
lookup('pgf.gd.' .. name) or
lookup(name .. '.library') or
lookup(name)
end
}
}%
\directlua{
require 'pgf.gd.interface.InterfaceToDisplay'
pgf.gd.interface.InterfaceToDisplay.bind(require 'pgf.gd.bindings.BindingToPGF')
}%
\pgfkeys{/graph drawing/nodes behind edges/.append code=\csname pgf@gd@nodes@behind@edges#1\endcsname}%
\pgfkeys{/graph drawing/nodes behind edges/.default=true}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.examples.code.tex ====
\ProvidesFileRCS{pgflibrarygraphdrawing.examples.code.tex}
\usepgflibrary{graphdrawing}%
\usegdlibrary{examples}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.examples.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.force.code.tex ====
\ProvidesFileRCS{pgflibrarygraphdrawing.force.code.tex}
\usepgflibrary{graphdrawing}%
\usegdlibrary{force}%
\endinput
\pgfgdset{
force based/.cd,
iterations/.graph parameter=number,
iterations/.parameter initial=500,
cooling factor/.graph parameter=number,
cooling factor/.parameter initial=0.95,
initial step dimension/.graph parameter=number,
initial step dimension/.parameter initial=0,
convergence tolerance/.graph parameter=number,
convergence tolerance/.parameter initial=0.01,
spring constant/.graph parameter=number,
spring constant/.parameter initial=0.01,
approximate electric forces/.graph parameter=boolean,
approximate electric forces/.parameter initial=false,
approximate electric forces/.default=true,
electric force order/.graph parameter=number,
electric force order/.parameter initial=1,
coarsen/.graph parameter=boolean,
coarsen/.parameter initial=true,
coarsen/.default=true,
coarsening/.code=\pgfkeys{
/graph drawing/force based/coarsening/.cd,
#1
},
coarsening/downsize ratio/.graph parameter=number,
coarsening/downsize ratio/.parameter initial=0.25,
coarsening/minimum graph size/.graph parameter=number,
coarsening/minimum graph size/.parameter initial=2,
coarsening/collapse independent edges/.graph parameter=boolean,
coarsening/collapse independent edges/.parameter initial=true,
coarsening/collapse independent edges/.default=true,
coarsening/connect independent nodes/.graph parameter=boolean,
coarsening/connect independent nodes/.parameter initial=false,
coarsening/connect independent nodes/.default=true,
}%
\pgfgddeclareforwardedkeys{/graph drawing}{
electric charge/.node parameter=number,
electric charge/.parameter initial=1,
}
\pgfgddeclarealgorithmkey
{spring layout}
{force based}
{
algorithm=pgf.gd.force.SpringHu2006
}
\pgfgddeclarealgorithmkey
{spring electrical layout}
{force based}
{
algorithm=pgf.gd.force.SpringElectricalHu2006,
force based/spring constant=0.2,
}
\pgfgddeclarealgorithmkey
{spring electrical layout'}
{force based}
{
algorithm=pgf.gd.force.SpringElectricalWalshaw2000,
force based/spring constant=0.01,
force based/convergence tolerance=0.001,
}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.force.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.layered.code.tex ====
\ProvidesFileRCS{pgflibrarygraphdrawing.layered.code.tex}
\usepgflibrary{graphdrawing}%
\usegdlibrary{layered}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.layered.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.trees.code.tex ====
\ProvidesFileRCS{pgflibrarygraphdrawing.trees.code.tex}
\usepgflibrary{graphdrawing}%
\usepgflibrary{graphdrawing.layered}%
\usegdlibrary{trees}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/pgflibrarygraphdrawing.trees.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/tikzlibrarygraphdrawing.code.tex ====
\ProvidesFileRCS{tikzlibrarygraphdrawing.code.tex}
\usepgflibrary{graphdrawing}%
\def\tikz@lib@ensure@gd@loaded{}%
\tikzset{level distance=1cm, sibling distance=1cm}%
\pgfkeysgetvalue{/graph drawing/node distance/.@cmd}\tikz@lib@gd@node@dist@path
\pgfkeyslet{/graph drawing/node distance/orig/.@cmd}\tikz@lib@gd@node@dist@path
\pgfkeysdef{/graph drawing/node distance}{
\pgfutil@in@{ and }{#1}%
\ifpgfutil@in@%
\tikz@gd@convert@and#1\pgf@stop%
\else%
\tikz@gd@convert@and#1 and #1\pgf@stop%
\fi%
}%
\def\tikz@gd@convert@and#1 and #2\pgf@stop{\pgfkeys{/graph drawing/node distance/orig={#1}}}%
\def\tikz@gd@request@callback#1#2{%
\tikzset{
execute at begin scope={
\tikzset{
--/.style={arrows=-},
-!-/.style={draw=none,fill=none},
}
\pgfgdsetedgecallback{\pgfgdtikzedgecallback}%
\pgfgdaddspecificationhook{\tikz@lib@gd@spec@hook}%
#1
\let\tikzgdeventcallback\pgfgdevent%
\let\tikzgdeventgroupcallback\pgfgdeventgroup%
\let\tikzgdlatenodeoptionacallback\pgfgdsetlatenodeoption%
},
execute at end scope={%
#2%
}
}%
}%
\pgfgdsetrequestcallback\tikz@gd@request@callback
\pgfgdappendtoforwardinglist{/tikz/,/tikz/graphs/}%
\def\tikz@lib@gd@spec@hook{%
\tikzset{
edge macro=\tikz@gd@plain@edge@macro,
/tikz/at/.style={/graph drawing/desired at={##1}},
/tikz/growth function=\relax,
/tikz/edge from parent macro=\tikz@gd@edge@from@parent@macro,
/tikz/graphs/new ->/.code n args={4}{\tikz@lib@gd@edge{##1}{##2}{->}{/tikz,##3}{##4}},
/tikz/graphs/new <-/.code n args={4}{\tikz@lib@gd@edge{##1}{##2}{<-}{/tikz,##3}{##4}},
/tikz/graphs/new --/.code n args={4}{\tikz@lib@gd@edge{##1}{##2}{--}{/tikz,##3}{##4}},
/tikz/graphs/new <->/.code n args={4}{\tikz@lib@gd@edge{##1}{##2}{<->}{/tikz,##3}{##4}},
/tikz/graphs/new -!-/.code n args={4}{\tikz@lib@gd@edge{##1}{##2}{-!-}{/tikz,##3}{##4}},
/tikz/graphs/placement/compute position/.code=,%
}
}%
\def\tikz@lib@gd@edge#1#2{%
\pgfgdedge{\tikz@pp@name{#1}}{\tikz@pp@name{#2}}%
}
\pgfgdaddprepareedgehook{
\tikz@enable@edge@quotes%
\let\tikz@transform=\pgfutil@empty%
\let\tikz@options=\pgfutil@empty%
\let\tikz@tonodes=\pgfutil@empty%
}%
\tikzset{
parent anchor/.forward to=/graph drawing/tail anchor,
child anchor/.forward to=/graph drawing/head anchor
}%
\def\pgfgdtikzedgecallback#1#2#3#4#5#6#7#8{%
\def\pgf@temp{#8}%
\ifx\pgf@temp\pgfutil@empty%
\else%
\pgfscope%
\pgfset{every graphdrawing animation/.try}%
\pgfset{every graphdrawing edge animation/.try}%
#8%
\pgfuseid{pgf@gd}%
\pgfidscope%
\fi%
\begingroup
\draw (#1)
edge [to path={#7 \tikztonodes},#3,#4,/graph drawing/.cd,#6,/tikz/.cd]
#5
(#2);
\endgroup
\ifx\pgf@temp\pgfutil@empty%
\else%
\endpgfidscope%
\endpgfscope%
\fi%
}%
\def\tikz@gd@edge@from@parent@macro#1#2{
[/utils/exec=\tikz@lib@gd@edge{\tikzparentnode}{\tikzchildnode}{--}{/tikz,#1}{#2}]
}%
\def\tikz@gd@plain@edge@macro#1#2{
\tikz@lib@gd@edge{\tikztostart}{\tikztotarget}{--}{/tikz,#1}{#2}
}%
\pgfgdset{
conversions/canvas coordinate/.code={%
\tikz@scan@one@point\pgf@process#1%
\pgfmathsetmacro{\tikz@gd@temp@x}{\pgf@x}
\pgfmathsetmacro{\tikz@gd@temp@y}{\pgf@y}
\edef\pgfgdresult{pgf.gd.model.Coordinate.new(\tikz@gd@temp@x,\tikz@gd@temp@y)}
},
conversions/coordinate/.code={%
\tikz@scan@one@point\pgf@process#1%
\pgfmathsetmacro{\tikz@gd@temp@x}{\pgf@x}
\pgfmathsetmacro{\tikz@gd@temp@y}{\pgf@y}
\edef\pgfgdresult{pgf.gd.model.Coordinate.new(\tikz@gd@temp@x,\tikz@gd@temp@y)}
}
}%
\def\pgfgdcallbackcreatevertex#1#2#3#4{%
\node[every generated node/.try,name={#1},shape={#2},/graph drawing/.cd,#3]{#4};%
}%
\tikzset{
subgraph text top/.code=\tikz@lg@simple@contents@top{#1},%
subgraph text top/.default=text ragged,
subgraph text bottom/.code=\tikz@lg@simple@contents@bottom{#1},%
subgraph text bottom/.default=text ragged,
subgraph text sep/.initial=.1em,
subgraph text none/.code={
\def\pgfgdsubgraphnodecontents##1{%
\pgf@y=\pgfkeysvalueof{/graph drawing/subgraph bounding box height}\relax%
\hbox to \pgfkeysvalueof{/graph drawing/subgraph bounding box width}{%
\vrule width0pt height.5\pgf@y depth.5\pgf@y\hfil}%
}%
},
}%
\def\tikz@lg@simple@contents@top#1{%
\def\pgfgdsubgraphnodecontents##1{%
\vbox{%
\def\pgf@temp{##1}%
\ifx\pgf@temp\pgfutil@empty%
\else%
\ifx\pgf@temp\pgfutil@sptoken%
\else%
\hbox to \pgfkeysvalueof{/graph drawing/subgraph bounding box width}{%
\hsize=\pgfkeysvalueof{/graph drawing/subgraph bounding box width}\relax%
\vbox{\noindent\strut\tikzset{#1}\tikz@text@action\pgf@temp}%
}%
\fi%
\fi%
\pgfmathparse{\pgfkeysvalueof{/tikz/subgraph text sep}}%
\kern\pgfmathresult pt\relax%
\pgf@y=\pgfkeysvalueof{/graph drawing/subgraph bounding box height}\relax%
\hbox to \pgfkeysvalueof{/graph drawing/subgraph bounding box width}{%
\vrule width0pt height.5\pgf@y depth.5\pgf@y\hfil}%
}%
}%
}%
\def\tikz@lg@simple@contents@bottom#1{%
\def\pgfgdsubgraphnodecontents##1{%
{%
\pgf@y=\pgfkeysvalueof{/graph drawing/subgraph bounding box height}\relax%
\setbox0=\vbox{%
\hbox to \pgfkeysvalueof{/graph drawing/subgraph bounding box width}{\vrule width0pt height\pgf@y\hfil}%
\pgfmathparse{\pgfkeysvalueof{/tikz/subgraph text sep}}%
\kern\pgfmathresult pt\relax%
\def\pgf@temp{##1}%
\ifx\pgf@temp\pgfutil@empty%
\else%
\ifx\pgf@temp\pgfutil@sptoken%
\else%
\hbox to \pgfkeysvalueof{/graph drawing/subgraph bounding box width}{%
\hsize=\pgfkeysvalueof{/graph drawing/subgraph bounding box width}\relax%
\vbox{\noindent\strut\tikzset{#1}\tikz@text@action\pgf@temp}%
}%
\fi%
\fi%
}%
\pgf@ya=\ht0\relax%
\advance\pgf@ya by-.5\pgf@y\relax%
\ht0=.5\pgf@y\relax%
\dp0=\pgf@ya\relax%
\box0\relax%
}%
}%
}%
\tikzset{subgraph text top}%
\tikzset{
subgraph nodes/.style={/tikz/every subgraph node/.style={#1}},
graphs/subgraph nodes/.style={/tikz/every subgraph node/.style={#1}},
graphs/@graph drawing setup/.style={/graph drawing/anchor at={(\tikz@lastx,\tikz@lasty)}}
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/graphdrawing/tex/tikzlibrarygraphdrawing.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/datavisualization/pgflibrarydatavisualization.barcharts.code.tex ====
\ProvidesFileRCS{pgflibrarydatavisualization.barcharts.code.tex}
\usepgfmodule{datavisualization}%
\pgfooclass{candle stick visualizer}
{%
\attribute attribute;%
\attribute offset;%
\attribute use path rise=\pgfsetfillcolor{white}\pgfusepath{fill,stroke};%
\attribute use path fall=\pgfsetfillcolor{black}\pgfusepath{fill,stroke};%
\attribute use path wick=\pgfusepath{stroke};%
\method candle stick visualizer(#1) {
\pgfooeset{attribute}{#1}
\pgfoothis.set stick width(4pt)
}%
\method default connects() {
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,visualize,visualize datapoint signal)
}%
\method set stick width(#1) {
\pgfmathparse{#1}
\pgfmathdivide{\pgfmathresult}{2}
\let\pgf@dv@lib@w=\pgfmathresult
\pgfkeyssetvalue{/data point/\pgfoovalueof{attribute}}{1}
\pgfcanvaspositionofdatapoint%
\pgfsettocanvasposition\pgf@dv@lib@lower%
\pgfkeyssetvalue{/data point/\pgfoovalueof{attribute}}{10}
\pgfcanvaspositionofdatapoint%
\pgfsettocanvasposition\pgf@dv@lib@upper%
\pgf@process{\pgfpointnormalised{\pgfpointdiff{\pgf@dv@lib@upper}{\pgf@dv@lib@lower}}}%
\pgf@xa=\pgf@x%
\pgf@x=-\pgf@dv@lib@w\pgf@y%
\pgf@y=\pgf@dv@lib@w\pgf@xa%
\edef\pgf@dv@lib@temp{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgfoolet{offset}\pgf@dv@lib@temp
}%
\method set use path rise(#1) {
\pgfooset{use path rise}{#1}
}%
\method set use path fall(#1) {
\pgfooset{use path fall}{#1}
}%
\method visualize() {
{
\pgfooget{attribute}\pgf@lib@attribute%
\pgfkeysgetvalue{/data point/\pgf@lib@attribute/low}\pgf@lib@low
\pgfkeysgetvalue{/data point/\pgf@lib@attribute/high}\pgf@lib@high
\pgfkeysgetvalue{/data point/\pgf@lib@attribute/entry}\pgf@lib@entry
\pgfkeysgetvalue{/data point/\pgf@lib@attribute/exit}\pgf@lib@exit
\ifx\pgf@lib@low\pgfutil@empty\pgf@dv@lib@cs@skiptrue\fi
\ifx\pgf@lib@low\relax\pgf@dv@lib@cs@skiptrue\fi
\ifx\pgf@lib@high\pgfutil@empty\pgf@dv@lib@cs@skiptrue\fi
\ifx\pgf@lib@high\relax\pgf@dv@lib@cs@skiptrue\fi
\ifx\pgf@lib@entry\pgfutil@empty\pgf@dv@lib@cs@skiptrue\fi
\ifx\pgf@lib@entry\relax\pgf@dv@lib@cs@skiptrue\fi
\ifx\pgf@lib@exit\pgfutil@empty\pgf@dv@lib@cs@skiptrue\fi
\ifx\pgf@lib@exit\relax\pgf@dv@lib@cs@skiptrue\fi
\ifpgf@dv@lib@cs@skip%
\else%
\begin{pgfscope}
\pgfkeyssetvalue{/data point/\pgf@lib@attribute}\pgf@lib@low
\pgfcanvaspositionofdatapoint%
\pgfsettocanvasposition\pgf@dv@lib@lowpoint%
\pgfkeyssetvalue{/data point/\pgf@lib@attribute}\pgf@lib@high
\pgfcanvaspositionofdatapoint%
\pgfsettocanvasposition\pgf@dv@lib@highpoint%
\pgfkeyssetvalue{/data point/\pgf@lib@attribute}\pgf@lib@entry
\pgfcanvaspositionofdatapoint%
\pgfsettocanvasposition\pgf@dv@lib@entrypoint%
\pgfkeyssetvalue{/data point/\pgf@lib@attribute}\pgf@lib@exit
\pgfcanvaspositionofdatapoint%
\pgfsettocanvasposition\pgf@dv@lib@exitpoint%
\ifdim\pgf@lib@entry pt<\pgf@lib@exit pt\relax%
\pgf@dv@lib@risetrue%
\fi%
\ifpgf@dv@lib@rise
\let\pgf@dv@lib@a=\pgf@dv@lib@entrypoint
\let\pgf@dv@lib@b=\pgf@dv@lib@exitpoint
\else
\let\pgf@dv@lib@a=\pgf@dv@lib@exitpoint
\let\pgf@dv@lib@b=\pgf@dv@lib@entrypoint
\fi
\pgfpathmoveto{\pgf@dv@lib@lowpoint}
\pgfpathlineto{\pgf@dv@lib@a}
\pgfpathmoveto{\pgf@dv@lib@highpoint}
\pgfpathlineto{\pgf@dv@lib@b}
\pgfoovalueof{use path wick}
\pgfpathmoveto{\pgfpointadd{\pgf@dv@lib@a}{\pgfoovalueof{offset}}}
\pgfpathlineto{\pgfpointadd{\pgf@dv@lib@b}{\pgfoovalueof{offset}}}
\pgfpathlineto{\pgfpointadd{\pgf@dv@lib@b}{\pgfpointscale{-1}{\pgfoovalueof{offset}}}}
\pgfpathlineto{\pgfpointadd{\pgf@dv@lib@a}{\pgfpointscale{-1}{\pgfoovalueof{offset}}}}
\pgfpathclose
\ifpgf@dv@lib@rise
\pgfoovalueof{use path rise}
\else
\pgfoovalueof{use path fall}
\fi
\end{pgfscope}%
\fi
}
}%
\newif\ifpgf@dv@lib@cs@skip
\newif\ifpgf@dv@lib@rise
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/datavisualization/pgflibrarydatavisualization.barcharts.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/datavisualization/pgflibrarydatavisualization.formats.functions.code.tex ====
\ProvidesFileRCS{pgflibrarydatavisualization.formats.functions.code.tex}
\usepgfmodule{datavisualization}%
\pgfdeclaredataformat{function}
{ %
}
{ %
\let\value=\relax%
\pgfkeysgetvalue{/pgf/data/vars}\pgf@lib@dv@collector
}
{%
#1%
}
{ %
\edef\pgf@lib@dv@collector{\pgf@lib@dv@collector\space #1}%
}
{%
}
{%
\edef\pgf@lib@dv@collector{\pgf@lib@dv@collector\space \pgfkeysvalueof{/pgf/data/funcs}}%
\let\pgf@lib@dv@parsed\pgfutil@empty%
\expandafter\pgf@lib@dv@func@parse \pgf@lib@dv@collector\pgf@stop%
\let\value\pgf@lib@dv@getval
\pgf@lib@dv@parsed\pgfdatapoint\pgfutil@gobble\pgf@stop%
}%
\pgfkeys{
/pgf/data/vars/.initial=,
/pgf/data/funcs/.initial=,
/pgf/data/evaluator/.initial=\pgfmathparse,
/pgf/data/samples/.initial=25}%
\def\pgf@lib@dv@getval#1{\pgfkeysvalueof{/data point/#1}}%
\def\pgf@lib@dv@func@parse{%
\pgfutil@ifnextchar\pgf@stop{%
\pgfutil@gobble%
}
{%
\pgfutil@ifnextchar v{%
\pgf@lib@dv@var%
}{%
\pgf@lib@dv@func%
}%
}%
}%
\def\pgf@lib@dv@func func #1 =#2;{%
\expandafter\def\expandafter\pgf@lib@dv@parsed\expandafter{\pgf@lib@dv@parsed\pgf@lib@dv@eval@func{#1}{#2}}
\pgf@lib@dv@func@parse%
}%
\def\pgf@lib@dv@var var #1 :{\pgfutil@ifnextchar\bgroup{\pgf@lib@dv@var@group{#1}}{\pgf@lib@dv@var@int{#1}}}%
\def\pgf@lib@dv@var@group#1#2;{%
\expandafter\def\expandafter\pgf@lib@dv@parsed\expandafter{\pgf@lib@dv@parsed\pgf@lib@dv@group@var{#1}{#2}}%
\pgf@lib@dv@func@parse%
}%
\def\pgf@lib@dv@var@int#1#2[#3:#4]{%
\pgfutil@ifnextchar s{%
\pgf@lib@dv@samplesorsteps{#1}{#3}{#4}%
}{%
\expandafter\def\expandafter\pgf@lib@dv@parsed\expandafter{%
\pgf@lib@dv@parsed\pgf@lib@dv@samples@var{#1}{#3}{#4}{\pgfkeysvalueof{/pgf/data/samples}}}%
\expandafter\pgf@lib@dv@func@parse\pgfutil@gobble%
}
}%
\def\pgf@lib@dv@samplesorsteps#1#2#3s{%
\pgfutil@ifnextchar t{%
\pgf@lib@dv@step{#1}{#2}{#3}%
}{%
\pgf@lib@dv@samples{#1}{#2}{#3}%
}%
}%
\def\pgf@lib@dv@step#1#2#3tep#4;{%
\expandafter\def\expandafter\pgf@lib@dv@parsed\expandafter{\pgf@lib@dv@parsed\pgf@lib@dv@step@var{#1}{#2}{#3}{#4}}%
\pgf@lib@dv@func@parse%
}%
\def\pgf@lib@dv@samples#1#2#3amples#4;{%
\expandafter\def\expandafter\pgf@lib@dv@parsed\expandafter{\pgf@lib@dv@parsed\pgf@lib@dv@samples@var{#1}{#2}{#3}{#4}}%
\pgf@lib@dv@func@parse%
}%
\def\pgf@lib@dv@samples@var#1#2#3#4{%
\pgfmathparse{#3}%
\let\pgf@lib@dv@temp=\pgfmathresult%
\pgfmathparse{#2}%
\pgfmathparse{\pgf@lib@dv@temp-\pgfmathresult}%
\pgfmathparse{\pgfmathresult/(#4-1)}%
\let\pgf@lib@dv@temp=\pgfmathresult%
\pgf@lib@dv@step@var{#1}{#2}{#3}{\pgf@lib@dv@temp}%
}%
\def\pgf@lib@dv@step@var#1#2#3#4#5\pgf@stop{%
{%
\def\pgf@loop@body{#5}%
\pgfmathparse{#2}%
\pgfkeyslet{/data point/#1}{\pgfmathresult}%
\pgfmathparse{#3}%
\let\pgf@loop@end\pgfmathresult%
\pgfmathparse{#4}%
\let\pgf@loop@step\pgfmathresult%
\pgfmathloop%
\pgfmathlessthan{\pgf@loop@end}{\pgfkeysvalueof{/data point/#1}}
\ifdim\pgfmathresult pt<1pt\relax%
\pgf@loop@body\pgf@stop%
\pgfmathparse{\pgfkeysvalueof{/data point/#1}+\pgf@loop@step}%
\pgfkeyslet{/data point/#1}{\pgfmathresult}%
\repeatpgfmathloop%
}%
}%
\def\pgf@lib@dv@group@var#1#2#3\pgf@stop{%
\foreach \pgf@lib@dv@iterator in {#2} {%
\pgfkeyslet{/data point/#1}{\pgf@lib@dv@iterator}%
#3\pgf@stop%
}%
}%
\def\pgf@lib@dv@eval@func#1#2{%
\pgfkeysvalueof{/pgf/data/evaluator}{#2}%
\pgfkeyslet{/data point/#1}{\pgfmathresult}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/datavisualization/pgflibrarydatavisualization.formats.functions.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/datavisualization/pgflibrarydatavisualization.polar.code.tex ====
\ProvidesFileRCS{pgflibrarydatavisualization.polar.code.tex}
\usepgfmodule{datavisualization}%
\pgfooclass{polar transformer}
{%
\attribute angle;%
\attribute radius;%
\attribute unit vector 0 degrees;%
\attribute unit vector 90 degrees;%
\method polar transformer(#1,#2,#3,#4) {
\pgfooset{angle}{#1}
\pgfooset{radius}{#2}
\pgfooset{unit vector 0 degrees}{#3}
\pgfooset{unit vector 90 degrees}{#4}
}%
\method default connects() {
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,transform,transform datapoint signal)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,path,path signal)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,direction,direction signal)
}%
\method get angle attribute(#1) {
\pgfooget{angle}{#1}
}%
\method get radius attribute(#1) {
\pgfooget{radius}{#1}
}%
\method transform() {
\pgfkeysgetvalue{/data point/\pgfoovalueof{angle}/const}\pgf@dv@angle%
\ifx\pgf@dv@angle\relax
\pgfkeysgetvalue{/data point/\pgfoovalueof{angle}}\pgf@dv@angle%
\fi
\ifx\pgf@dv@angle\relax\else%
\ifx\pgf@dv@angle\pgfutil@empty\else%
\pgfkeysgetvalue{/data point/\pgfoovalueof{radius}/const}\pgf@dv@radius%
\ifx\pgf@dv@radius\relax
\pgfkeysgetvalue{/data point/\pgfoovalueof{radius}}\pgf@dv@radius%
\fi
\ifx\pgf@dv@radius\pgfutil@empty\else%
\ifx\pgf@dv@radius\relax\else%
\pgfdvmathenter{\pgf@dv@val}{\pgf@dv@angle}%
\pgfdvmathexitbyscientificformat{\pgf@dv@angle}{\pgf@dv@val}%
\pgfdvmathenter{\pgf@dv@val}{\pgf@dv@radius}%
\pgfdvmathexitbyscientificformat{\pgf@dv@radius}{\pgf@dv@val}%
\pgfmathsincos{\pgf@dv@angle}%
\pgfmathmultiply{\pgfmathresultx}{\pgf@dv@radius}%
\let\pgf@dv@polar@temp=\pgfmathresult
\pgftransformshift{\pgfpointscale{\pgf@dv@polar@temp}{\pgfoovalueof{unit vector 0 degrees}}}%
\pgfmathmultiply{\pgfmathresulty}{\pgf@dv@radius}%
\let\pgf@dv@polar@temp=\pgfmathresult
\pgftransformshift{\pgfpointscale{\pgf@dv@polar@temp}{\pgfoovalueof{unit vector 90 degrees}}}%
\fi%
\fi%
\fi%
\fi%
}%
\attribute prev angle;%
\attribute prev radius;%
\method path(#1) {%
\ifpgfdvhandled%
\else%
\ifx#1\pgfdvpathlinetotoken
\pgfooget{prev radius}\pgf@dv@prev@rad
\pgfkeysgetvalue{/data point/\pgfoovalueof{radius}}\pgf@dv@current@rad
\ifx\pgf@dv@current@rad\relax
\else
\ifx\pgf@dv@current@rad\pgf@dv@prev@rad%
\pgfooget{prev angle}\pgf@dv@prev@angle
\pgfkeysgetvalue{/data point/\pgfoovalueof{angle}}\pgf@dv@current@angle
\ifx\pgf@dv@current@angle\relax
\else
\ifx\pgf@dv@current@angle\pgf@dv@prev@angle%
\else%
\pgfdvmathenter{\pgf@dv@val}{\pgf@dv@prev@angle}%
\pgfdvmathexitbyscientificformat{\pgf@dv@prev@angle}{\pgf@dv@val}%
\pgfdvmathenter{\pgf@dv@val}{\pgf@dv@prev@rad}%
\pgfdvmathexitbyscientificformat{\pgf@dv@prev@rad}{\pgf@dv@val}%
\pgfdvmathenter{\pgf@dv@val}{\pgf@dv@current@angle}%
\pgfdvmathexitbyscientificformat{\pgf@dv@current@angle}{\pgf@dv@val}%
\pgfdvmathenter{\pgf@dv@val}{\pgf@dv@current@rad}%
\pgfdvmathexitbyscientificformat{\pgf@dv@current@rad}{\pgf@dv@val}%
\pgfpatharcaxes{\pgf@dv@prev@angle}{\pgf@dv@current@angle}
{\pgfpointscale{\pgf@dv@current@rad}{\pgfoovalueof{unit vector 0 degrees}}}
{\pgfpointscale{\pgf@dv@current@rad}{\pgfoovalueof{unit vector 90 degrees}}}%
\pgfdvhandledtrue%
\fi%
\fi%
\fi%
\fi%
\fi%
\fi%
\pgfooeset{prev angle}{\pgfkeysvalueof{/data point/\pgfoovalueof{angle}}}
\pgfooeset{prev radius}{\pgfkeysvalueof{/data point/\pgfoovalueof{radius}}}
}%
\method direction(#1) {%
\ifx#1\pgfdvdirectionfromtoken
\xdef\pgf@dv@polar@from@angle{\pgfkeysvalueof{/data point/\pgfoovalueof{angle}}}
\xdef\pgf@dv@polar@from@radius{\pgfkeysvalueof{/data point/\pgfoovalueof{radius}}}
\else\ifx#1\pgfdvdirectiontotoken%
\xdef\pgf@dv@polar@to@angle{\pgfkeysvalueof{/data point/\pgfoovalueof{angle}}}
\xdef\pgf@dv@polar@to@radius{\pgfkeysvalueof{/data point/\pgfoovalueof{radius}}}
\else%
\ifx\pgf@dv@polar@from@radius\pgf@dv@polar@to@radius%
\pgfdvmathenter{\pgf@dv@a}{\pgf@dv@polar@from@angle}%
\pgfdvmathenter{\pgf@dv@b}{\pgf@dv@polar@to@angle}%
\pgfdvmathifless{\pgf@dv@a}{\pgf@dv@b}{\def\pgf@dv@temp@sign{+}}{\def\pgf@dv@temp@sign{-}}%
\pgfkeysgetvalue{/data point/\pgfoovalueof{angle}}\pgf@temp%
\ifx\pgf@temp\relax%
\else%
\pgfdvmathenter{\pgf@dv@val}{\pgf@temp}%
\pgfdvmathexitbyscientificformat{\pgf@dv@polar@angle}{\pgf@dv@val}%
\pgf@process{\pgfpointpolar{\pgf@dv@polar@angle\pgf@dv@temp@sign90}{1pt}}%
\pgfdvhandledtrue%
\fi%
\fi%
\fi\fi%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/datavisualization/pgflibrarydatavisualization.polar.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.footprints.code.tex ====
\usepgfmodule{decorations}%
\pgfset{
/pgf/decoration/foot length/.initial=10pt,
/pgf/decoration/stride length/.initial=30pt,
/pgf/decoration/foot sep/.initial=4pt,
/pgf/decoration/foot angle/.initial=10,
/pgf/decoration/foot of/.initial=human,
}%
\pgfdeclaredecoration{footprints}{left}
{%
\state{left}[width=\pgfkeysvalueof{/pgf/decoration/stride length}/2,next state=right]
{
\pgftransformyshift{\pgfkeysvalueof{/pgf/decoration/foot sep}/2}
\pgfmathparse{\pgfkeysvalueof{/pgf/decoration/foot length}}
\pgftransformscale{\pgfmathresult}
\pgftransformrotate{\pgfkeysvalueof{/pgf/decoration/foot angle}}
\csname pgf@lib@foot@of@\pgfkeysvalueof{/pgf/decoration/foot of}\endcsname
}%
\state{right}[width=\pgfkeysvalueof{/pgf/decoration/stride length}/2,next state=left]
{
\pgftransformyscale{-1}
\pgftransformyshift{\pgfkeysvalueof{/pgf/decoration/foot sep}/2}
\pgfmathparse{\pgfkeysvalueof{/pgf/decoration/foot length}}
\pgftransformscale{\pgfmathresult}
\pgftransformrotate{\pgfkeysvalueof{/pgf/decoration/foot angle}}
\csname pgf@lib@foot@of@\pgfkeysvalueof{/pgf/decoration/foot of}\endcsname
}%
}%
\def\pgf@lib@foot@of@gnome{
\pgftransformcm{0}{-1}{-1}{0}{\pgfqpoint{1pt}{0.8pt}}
\pgftransformscale{0.83333}
\pgfpathmoveto{\pgfqpoint{.86068pt}{0pt}}
\pgfpathcurveto{\pgfqpoint{.61466pt}{0pt}}{\pgfqpoint{.56851pt}{.35041pt}}{\pgfqpoint{.70691pt}{.35041pt}}
\pgfpathcurveto{\pgfqpoint{.84529pt}{.35041pt}}{\pgfqpoint{1.10671pt}{0pt}}{\pgfqpoint{.86068pt}{0pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{.45217pt}{.30699pt}}
\pgfpathcurveto{\pgfqpoint{.52586pt}{.31149pt}}{\pgfqpoint{.60671pt}{.02577pt}}{\pgfqpoint{.46821pt}{.04374pt}}
\pgfpathcurveto{\pgfqpoint{.32976pt}{.06171pt}}{\pgfqpoint{.37845pt}{.30249pt}}{\pgfqpoint{.45217pt}{.30699pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{.11445pt}{.48453pt}}
\pgfpathcurveto{\pgfqpoint{.16686pt}{.46146pt}}{\pgfqpoint{.1212pt}{.23581pt}}{\pgfqpoint{.03208pt}{.29735pt}}
\pgfpathcurveto{\pgfqpoint{-.057pt}{.3589pt}}{\pgfqpoint{.06204pt}{.50759pt}}{\pgfqpoint{.11445pt}{.48453pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{.26212pt}{.36642pt}}
\pgfpathcurveto{\pgfqpoint{.32451pt}{.3537pt}}{\pgfqpoint{.32793pt}{.09778pt}}{\pgfqpoint{.21667pt}{.14369pt}}
\pgfpathcurveto{\pgfqpoint{.10539pt}{.18961pt}}{\pgfqpoint{.19978pt}{.37916pt}}{\pgfqpoint{.26212pt}{.36642pt}}
\pgfpathlineto{\pgfqpoint{.26212pt}{.36642pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{.58791pt}{.93913pt}}
\pgfpathcurveto{\pgfqpoint{.59898pt}{1.02367pt}}{\pgfqpoint{.52589pt}{1.06542pt}}{\pgfqpoint{.45431pt}{1.01092pt}}
\pgfpathcurveto{\pgfqpoint{.22644pt}{.83743pt}}{\pgfqpoint{.8316pt}{.75088pt}}{\pgfqpoint{.79171pt}{.51386pt}}
\pgfpathcurveto{\pgfqpoint{.7586pt}{.31712pt}}{\pgfqpoint{.15495pt}{.37769pt}}{\pgfqpoint{.08621pt}{.68553pt}}
\pgfpathcurveto{\pgfqpoint{.03968pt}{.89374pt}}{\pgfqpoint{.27774pt}{1.1826pt}}{\pgfqpoint{.52614pt}{1.1826pt}}
\pgfpathcurveto{\pgfqpoint{.64834pt}{1.1826pt}}{\pgfqpoint{.78929pt}{1.07226pt}}{\pgfqpoint{.81566pt}{.93248pt}}
\pgfpathcurveto{\pgfqpoint{.8358pt}{.82589pt}}{\pgfqpoint{.57867pt}{.8686pt}}{\pgfqpoint{.58791pt}{.93913pt}}
\pgfpathlineto{\pgfqpoint{.58791pt}{.93913pt}}
\pgfpathclose
}%
\def\pgf@lib@foot@of@bird{
\pgftransformcm{0}{.11}{.11}{0}{\pgfqpoint{.37pt}{.52pt}}
\pgfpathmoveto{\pgfqpoint{-.886pt}{1.652pt}}
\pgfpathcurveto{\pgfqpoint{-.4632pt}{2.669pt}}{\pgfqpoint{-.5092pt}{4.3712pt}}{\pgfqpoint{-.4512pt}{5.6734pt}}
\pgfpathcurveto{\pgfqpoint{-.4374pt}{5.9842pt}}{\pgfqpoint{-.3182pt}{6.0686pt}}{\pgfqpoint{-.2484pt}{5.644pt}}
\pgfpathcurveto{\pgfqpoint{-.0534pt}{4.459pt}}{\pgfqpoint{.087pt}{3.0132pt}}{\pgfqpoint{.5206pt}{1.8464pt}}
\pgfpathcurveto{\pgfqpoint{.714pt}{1.326pt}}{\pgfqpoint{.692pt}{1.416pt}}{\pgfqpoint{1.0864pt}{1.759pt}}
\pgfpathcurveto{\pgfqpoint{1.7662pt}{2.3504pt}}{\pgfqpoint{2.665pt}{3.1756pt}}{\pgfqpoint{3.2028pt}{4.02pt}}
\pgfpathcurveto{\pgfqpoint{3.4708pt}{4.4408pt}}{\pgfqpoint{3.4258pt}{4.0814pt}}{\pgfqpoint{3.3366pt}{3.8708pt}}
\pgfpathcurveto{\pgfqpoint{2.9068pt}{2.8562pt}}{\pgfqpoint{.8502pt}{.645pt}}{\pgfqpoint{.4808pt}{-.0864pt}}
\pgfpathcurveto{\pgfqpoint{.0808pt}{-.8788pt}}{\pgfqpoint{.1664pt}{-2.1246pt}}{\pgfqpoint{.0024pt}{-2.7868pt}}
\pgfpathcurveto{\pgfqpoint{-.172pt}{-3.4908pt}}{\pgfqpoint{-.2726pt}{-3.704pt}}{\pgfqpoint{-.3812pt}{-2.9558pt}}
\pgfpathcurveto{\pgfqpoint{-.5316pt}{-1.9202pt}}{\pgfqpoint{-.88pt}{-.256pt}}{\pgfqpoint{-1.332pt}{.128pt}}
\pgfpathcurveto{\pgfqpoint{-1.716pt}{.4542pt}}{\pgfqpoint{-3.7928pt}{2.3136pt}}{\pgfqpoint{-4.5044pt}{3.3524pt}}
\pgfpathcurveto{\pgfqpoint{-4.7618pt}{3.728pt}}{\pgfqpoint{-4.709pt}{3.7864pt}}{\pgfqpoint{-4.4212pt}{3.5818pt}}
\pgfpathcurveto{\pgfqpoint{-3.4844pt}{2.9162pt}}{\pgfqpoint{-2.6164pt}{1.654pt}}{\pgfqpoint{-1.454pt}{1.3886pt}}
\pgfpathcurveto{\pgfqpoint{-1.0876pt}{1.305pt}}{\pgfqpoint{-1.0296pt}{1.3066pt}}{\pgfqpoint{-.886pt}{1.652pt}}
\pgfpathclose
}%
\expandafter\def\csname pgf@lib@foot@of@felis silvestris\endcsname{
\pgftransformcm{0}{.1}{.1}{0}{\pgfqpoint{.48pt}{.5pt}}
\pgfpathmoveto{\pgfqpoint{2.7312pt}{-1.992pt}}
\pgfpathcurveto{\pgfqpoint{1.8716pt}{-1.4226pt}}{\pgfqpoint{2.1404pt}{.0436pt}}{\pgfqpoint{.9202pt}{.0436pt}}
\pgfpathcurveto{\pgfqpoint{-.1146pt}{.0436pt}}{\pgfqpoint{-.7386pt}{.0178pt}}{\pgfqpoint{-1.319pt}{-1.0288pt}}
\pgfpathcurveto{\pgfqpoint{-1.7922pt}{-1.8822pt}}{\pgfqpoint{-2.072pt}{-1.5488pt}}{\pgfqpoint{-2.9638pt}{-1.968pt}}
\pgfpathcurveto{\pgfqpoint{-3.9244pt}{-2.4198pt}}{\pgfqpoint{-4.4394pt}{-3.348pt}}{\pgfqpoint{-4.1136pt}{-4.041pt}}
\pgfpathcurveto{\pgfqpoint{-3.3862pt}{-5.5882pt}}{\pgfqpoint{-1.6156pt}{-3.83pt}}{\pgfqpoint{-1.1684pt}{-4.312pt}}
\pgfpathcurveto{\pgfqpoint{-.5806pt}{-4.9454pt}}{\pgfqpoint{.5032pt}{-4.8822pt}}{\pgfqpoint{1.1748pt}{-4.2878pt}}
\pgfpathcurveto{\pgfqpoint{1.5822pt}{-3.9272pt}}{\pgfqpoint{2.6524pt}{-5.0652pt}}{\pgfqpoint{3.3506pt}{-4.1066pt}}
\pgfpathcurveto{\pgfqpoint{3.839pt}{-3.4356pt}}{\pgfqpoint{3.1192pt}{-2.249pt}}{\pgfqpoint{2.7312pt}{-1.992pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{5.0576pt}{.4996pt}}
\pgfpathcurveto{\pgfqpoint{4.6056pt}{.6536pt}}{\pgfqpoint{4.0596pt}{.2516pt}}{\pgfqpoint{3.8382pt}{-.398pt}}
\pgfpathcurveto{\pgfqpoint{3.6168pt}{-1.0478pt}}{\pgfqpoint{3.8038pt}{-1.6996pt}}{\pgfqpoint{4.2558pt}{-1.8536pt}}
\pgfpathcurveto{\pgfqpoint{4.7078pt}{-2.0076pt}}{\pgfqpoint{5.2538pt}{-1.6056pt}}{\pgfqpoint{5.4752pt}{-.9558pt}}
\pgfpathcurveto{\pgfqpoint{5.6966pt}{-.3062pt}}{\pgfqpoint{5.5096pt}{.3456pt}}{\pgfqpoint{5.0576pt}{.4996pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{3.1212pt}{3.5542pt}}
\pgfpathcurveto{\pgfqpoint{2.5874pt}{3.6726pt}}{\pgfqpoint{1.975pt}{3.1756pt}}{\pgfqpoint{1.7538pt}{2.4442pt}}
\pgfpathcurveto{\pgfqpoint{1.5324pt}{1.7128pt}}{\pgfqpoint{1.7858pt}{1.0238pt}}{\pgfqpoint{2.3196pt}{.9052pt}}
\pgfpathcurveto{\pgfqpoint{2.8534pt}{.7868pt}}{\pgfqpoint{3.4658pt}{1.2838pt}}{\pgfqpoint{3.6872pt}{2.0152pt}}
\pgfpathcurveto{\pgfqpoint{3.9084pt}{2.7466pt}}{\pgfqpoint{3.655pt}{3.4358pt}}{\pgfqpoint{3.1212pt}{3.5542pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{-.6182pt}{5.0456pt}}
\pgfpathcurveto{\pgfqpoint{-1.2132pt}{5.0456pt}}{\pgfqpoint{-1.6956pt}{4.3104pt}}{\pgfqpoint{-1.6956pt}{3.4038pt}}
\pgfpathcurveto{\pgfqpoint{-1.6956pt}{2.4972pt}}{\pgfqpoint{-1.2132pt}{1.7618pt}}{\pgfqpoint{-.6182pt}{1.7618pt}}
\pgfpathcurveto{\pgfqpoint{-.0232pt}{1.7618pt}}{\pgfqpoint{.4592pt}{2.4972pt}}{\pgfqpoint{.4592pt}{3.4038pt}}
\pgfpathcurveto{\pgfqpoint{.4592pt}{4.3104pt}}{\pgfqpoint{-.0232pt}{5.0456pt}}{\pgfqpoint{-.6182pt}{5.0456pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{-4.1176pt}{1.8248pt}}
\pgfpathcurveto{\pgfqpoint{-4.6334pt}{1.7534pt}}{\pgfqpoint{-4.9806pt}{1.0312pt}}{\pgfqpoint{-4.8928pt}{.212pt}}
\pgfpathcurveto{\pgfqpoint{-4.8052pt}{-.6072pt}}{\pgfqpoint{-4.3158pt}{-1.2136pt}}{\pgfqpoint{-3.8pt}{-1.1422pt}}
\pgfpathcurveto{\pgfqpoint{-3.2842pt}{-1.0708pt}}{\pgfqpoint{-2.9372pt}{-.3486pt}}{\pgfqpoint{-3.0248pt}{.4706pt}}
\pgfpathcurveto{\pgfqpoint{-3.1126pt}{1.2898pt}}{\pgfqpoint{-3.6018pt}{1.8962pt}}{\pgfqpoint{-4.1176pt}{1.8248pt}}
\pgfpathclose
}%
\def\pgf@lib@foot@of@human{%
\pgftransformcm{0}{.5}{.5}{0}{\pgfqpoint{.48pt}{.2pt}}
\pgfpathmoveto{\pgfqpoint{.20175pt}{-.72633pt}}
\pgfpathcurveto{\pgfqpoint{.16314pt}{-.88194pt}}{\pgfqpoint{.07386pt}{-1.0167pt}}{\pgfqpoint{-.08385pt}{-1.0167pt}}
\pgfpathcurveto{\pgfqpoint{-.24153pt}{-1.0167pt}}{\pgfqpoint{-.36942pt}{-.84897pt}}{\pgfqpoint{-.36942pt}{-.72633pt}}
\pgfpathcurveto{\pgfqpoint{-.36942pt}{-.60372pt}}{\pgfqpoint{-.32505pt}{-.54825pt}}{\pgfqpoint{-.27633pt}{-.51192pt}}
\pgfpathcurveto{\pgfqpoint{-.23937pt}{-.48435pt}}{\pgfqpoint{-.17031pt}{-.46539pt}}{\pgfqpoint{-.10611pt}{-.40323pt}}
\pgfpathcurveto{\pgfqpoint{-.04191pt}{-.3411pt}}{\pgfqpoint{.00495pt}{-.27783pt}}{\pgfqpoint{.00495pt}{-.14787pt}}
\pgfpathcurveto{\pgfqpoint{.00495pt}{-.01794pt}}{\pgfqpoint{-.08526pt}{.12648pt}}{\pgfqpoint{-.22194pt}{.22467pt}}
\pgfpathcurveto{\pgfqpoint{-.35862pt}{.32286pt}}{\pgfqpoint{-.40863pt}{.50226pt}}{\pgfqpoint{-.32703pt}{.5979pt}}
\pgfpathcurveto{\pgfqpoint{-.24543pt}{.69354pt}}{\pgfqpoint{-.00564pt}{.66543pt}}{\pgfqpoint{.17172pt}{.53484pt}}
\pgfpathcurveto{\pgfqpoint{.34908pt}{.40422pt}}{\pgfqpoint{.39363pt}{.27192pt}}{\pgfqpoint{.37416pt}{.10971pt}}
\pgfpathcurveto{\pgfqpoint{.35472pt}{-.0525pt}}{\pgfqpoint{.26736pt}{-.46203pt}}{\pgfqpoint{.20175pt}{-.72633pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{-.27138pt}{1.01451pt}}
\pgfpathcurveto{\pgfqpoint{-.21198pt}{1.01451pt}}{\pgfqpoint{-.1638pt}{.94509pt}}{\pgfqpoint{-.1638pt}{.8595pt}}
\pgfpathcurveto{\pgfqpoint{-.1638pt}{.77388pt}}{\pgfqpoint{-.21198pt}{.70446pt}}{\pgfqpoint{-.27138pt}{.70446pt}}
\pgfpathcurveto{\pgfqpoint{-.33078pt}{.70446pt}}{\pgfqpoint{-.37896pt}{.77388pt}}{\pgfqpoint{-.37896pt}{.8595pt}}
\pgfpathcurveto{\pgfqpoint{-.37896pt}{.94509pt}}{\pgfqpoint{-.33078pt}{1.01451pt}}{\pgfqpoint{-.27138pt}{1.01451pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{-.05769pt}{.90573pt}}
\pgfpathcurveto{\pgfqpoint{-.01659pt}{.90573pt}}{\pgfqpoint{.01674pt}{.86445pt}}{\pgfqpoint{.01674pt}{.81354pt}}
\pgfpathcurveto{\pgfqpoint{.01674pt}{.7626pt}}{\pgfqpoint{-.01659pt}{.72132pt}}{\pgfqpoint{-.05769pt}{.72132pt}}
\pgfpathcurveto{\pgfqpoint{-.09879pt}{.72132pt}}{\pgfqpoint{-.13209pt}{.7626pt}}{\pgfqpoint{-.13209pt}{.81354pt}}
\pgfpathcurveto{\pgfqpoint{-.13209pt}{.86445pt}}{\pgfqpoint{-.09879pt}{.90573pt}}{\pgfqpoint{-.05769pt}{.90573pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{.10497pt}{.81636pt}}
\pgfpathcurveto{\pgfqpoint{.14214pt}{.81096pt}}{\pgfqpoint{.16722pt}{.77193pt}}{\pgfqpoint{.16104pt}{.72918pt}}
\pgfpathcurveto{\pgfqpoint{.15483pt}{.68646pt}}{\pgfqpoint{.11964pt}{.65619pt}}{\pgfqpoint{.08247pt}{.66159pt}}
\pgfpathcurveto{\pgfqpoint{.0453pt}{.66699pt}}{\pgfqpoint{.02019pt}{.70602pt}}{\pgfqpoint{.0264pt}{.74874pt}}
\pgfpathcurveto{\pgfqpoint{.03261pt}{.79149pt}}{\pgfqpoint{.0678pt}{.82176pt}}{\pgfqpoint{.10497pt}{.81636pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{.24054pt}{.70842pt}}
\pgfpathcurveto{\pgfqpoint{.27513pt}{.70842pt}}{\pgfqpoint{.30318pt}{.67686pt}}{\pgfqpoint{.30318pt}{.63795pt}}
\pgfpathcurveto{\pgfqpoint{.30318pt}{.59904pt}}{\pgfqpoint{.27513pt}{.56751pt}}{\pgfqpoint{.24054pt}{.56751pt}}
\pgfpathcurveto{\pgfqpoint{.20598pt}{.56751pt}}{\pgfqpoint{.17793pt}{.59904pt}}{\pgfqpoint{.17793pt}{.63795pt}}
\pgfpathcurveto{\pgfqpoint{.17793pt}{.67686pt}}{\pgfqpoint{.20598pt}{.70842pt}}{\pgfqpoint{.24054pt}{.70842pt}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{.35973pt}{.57501pt}}
\pgfpathcurveto{\pgfqpoint{.3918pt}{.57501pt}}{\pgfqpoint{.41781pt}{.54852pt}}{\pgfqpoint{.41781pt}{.51585pt}}
\pgfpathcurveto{\pgfqpoint{.41781pt}{.48318pt}}{\pgfqpoint{.3918pt}{.45669pt}}{\pgfqpoint{.35973pt}{.45669pt}}
\pgfpathcurveto{\pgfqpoint{.32769pt}{.45669pt}}{\pgfqpoint{.30168pt}{.48318pt}}{\pgfqpoint{.30168pt}{.51585pt}}
\pgfpathcurveto{\pgfqpoint{.30168pt}{.54852pt}}{\pgfqpoint{.32769pt}{.57501pt}}{\pgfqpoint{.35973pt}{.57501pt}}
\pgfpathclose
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.footprints.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.fractals.code.tex ====
\usepgfmodule{decorations}%
\pgfdeclaredecoration{Koch curve type 1}{init}
{%
\state{init}[width=\pgfdecoratedinputsegmentremainingdistance]
{
\pgfpathlineto{\pgfpoint{.33333\pgfdecoratedinputsegmentremainingdistance}{0pt}}
\pgfpathlineto{\pgfpoint{.33333\pgfdecoratedinputsegmentremainingdistance}{.33333\pgfdecoratedinputsegmentremainingdistance}}
\pgfpathlineto{\pgfpoint{.66666\pgfdecoratedinputsegmentremainingdistance}{.33333\pgfdecoratedinputsegmentremainingdistance}}
\pgfpathlineto{\pgfpoint{.66666\pgfdecoratedinputsegmentremainingdistance}{0pt}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
}%
}%
\pgfdeclaredecoration{Koch curve type 2}{init}
{%
\state{init}[width=\pgfdecoratedinputsegmentremainingdistance]
{
\pgfpathlineto{\pgfpoint{.25\pgfdecoratedinputsegmentremainingdistance}{0pt}}
\pgfpathlineto{\pgfpoint{.25\pgfdecoratedinputsegmentremainingdistance}{.25\pgfdecoratedinputsegmentremainingdistance}}
\pgfpathlineto{\pgfpoint{.5\pgfdecoratedinputsegmentremainingdistance}{.25\pgfdecoratedinputsegmentremainingdistance}}
\pgfpathlineto{\pgfpoint{.5\pgfdecoratedinputsegmentremainingdistance}{0pt}}
\pgfpathlineto{\pgfpoint{.5\pgfdecoratedinputsegmentremainingdistance}{-.25\pgfdecoratedinputsegmentremainingdistance}}
\pgfpathlineto{\pgfpoint{.75\pgfdecoratedinputsegmentremainingdistance}{-.25\pgfdecoratedinputsegmentremainingdistance}}
\pgfpathlineto{\pgfpoint{.75\pgfdecoratedinputsegmentremainingdistance}{0pt}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
}%
}%
\pgfdeclaredecoration{Koch snowflake}{init}
{%
\state{init}[width=\pgfdecoratedinputsegmentremainingdistance]
{
\pgfpathlineto{\pgfpoint{.3333\pgfdecoratedinputsegmentremainingdistance}{0pt}}
\pgfpathlineto{\pgfpoint{.5\pgfdecoratedinputsegmentremainingdistance}{0.2886751347\pgfdecoratedinputsegmentremainingdistance}}
\pgfpathlineto{\pgfpoint{.6666\pgfdecoratedinputsegmentremainingdistance}{0pt}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
}%
}%
\pgfdeclaredecoration{Cantor set}{init}
{%
\state{init}[width=\pgfdecoratedinputsegmentremainingdistance]
{
\pgfpathlineto{\pgfpoint{.3333\pgfdecoratedinputsegmentremainingdistance}{0pt}}
\pgfpathmoveto{\pgfpoint{.6666\pgfdecoratedinputsegmentremainingdistance}{0pt}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.fractals.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.markings.code.tex ====
\usepgfmodule{decorations}%
\pgfkeys{
/pgf/decoration/reset marks/.code=\let\pgf@lib@dec@mark@marks\pgfutil@empty,
/pgf/decoration/mark/.code=\pgf@lib@dec@parsemark#1\pgf@lib@dec@stop,
}%
\let\pgf@lib@dec@mark@marks=\pgfutil@empty
\def\pgf@lib@dec@parsemark{\pgfutil@ifnextchar b{\pgf@lib@dec@parsebetween}{\pgf@lib@dec@parseat}}%
\def\pgf@lib@dec@parseat at position#1with#2\pgf@lib@dec@stop{%
\expandafter\def\expandafter\pgf@lib@dec@mark@marks\expandafter{\pgf@lib@dec@mark@marks%
\pgf@lib@dec@domark{#1}{#2}%
}%
}%
\def\pgf@lib@dec@parsebetween between positions#1and#2step#3with#4\pgf@lib@dec@stop{%
\expandafter\def\expandafter\pgf@lib@dec@mark@marks\expandafter{\pgf@lib@dec@mark@marks%
\pgf@lib@dec@dobetweenmark{#1}{#2}{#3}{#4}%
}%
}%
\def\pgf@lib@dec@arrowhead#1#2{%
\pgftransformxscale{#1}
\pgfarrowdraw{#2}%
}%
\def\pgf@lib@dec@doarrowhead#1{%
\pgf@lib@dec@arrowhead{1}{#1}%
}%
\def\pgf@lib@dec@doarrowheadrev#1{%
\pgf@lib@dec@arrowhead{-1}{#1}%
}%
\pgfdeclaredecoration{markings}{init}
{%
\state{init}
[
width=0pt,
persistent precomputation={%
\pgfkeys{/pgf/decoration/mark info/sequence number/.initial=0}%
\pgfkeys{/pgf/decoration/mark info/distance from start/.initial=}%
},
next state=pre
]
{}%
\state{pre}
[
width=0pt,
persistent precomputation={%
\def\pgf@lib@dec@computed@width{0pt}%
\pgf@lib@dec@mark@marks\pgf@lib@dec@mark@last%
\let\arrow=\pgf@lib@dec@doarrowhead%
\let\arrowreversed=\pgf@lib@dec@doarrowheadrev%
},
next state=skipper
]
{}%
\state{skipper}[width=\pgf@lib@dec@computed@width-\pgfdecoratedcompleteddistance-1sp,
next state=\pgf@lib@dec@next@state]{}%
\state{main}
[
width=1sp,
next state=pre,
persistent precomputation={%
\pgfutil@tempcnta=\pgfkeysvalueof{/pgf/decoration/mark info/sequence number}\relax%
\advance\pgfutil@tempcnta by1\relax%
\pgfkeys{/pgf/decoration/mark info/sequence number/.expanded=\the\pgfutil@tempcnta}%
\pgfkeys{/pgf/decoration/mark info/distance from start/.expanded=\pgf@lib@dec@computed@width}%
}%
]
{%
\pgfinterruptpath%
\pgfscope%
\let\pgf@lib@dec@mark@marks=\pgfutil@empty%
\pgfslopedattimefalse
\pgf@lib@dec@computed@action%
\endpgfscope%
\endpgfinterruptpath%
\ifx\pgf@lib@mark@node\pgfutil@empty%
\else%
\pgf@lib@mark@connect@node%
\fi%
}%
\state{final}[width=\pgfdecoratedremainingdistance]{
\ifx\pgf@lib@mark@node\pgfutil@empty%
\pgfpathmoveto{\pgfpointdecoratedpathlast}
\else%
\pgfpathlineto{\pgfpointdecoratedpathlast}
\fi%
}%
}%
\def\pgf@lib@dec@domark#1#2#3\pgf@lib@dec@mark@last{%
\def\pgf@lib@dec@mark@marks{#3}%
\pgf@lib@dec@parsenum{#1}%
\def\pgf@lib@dec@computed@action{#2}%
\def\pgf@lib@dec@next@state{main}%
}%
\def\pgf@lib@dec@dobetweenmark#1#2#3#4#5\pgf@lib@dec@mark@last{%
\pgf@lib@dec@parsenum{#1}%
\let\pgf@lib@dec@mark@start=\pgf@lib@dec@computed@width%
\pgf@lib@dec@parsenum{#2}%
\let\pgf@lib@dec@mark@end=\pgf@lib@dec@computed@width%
\ifdim\pgf@lib@dec@mark@end<\pgf@lib@dec@mark@start\relax%
#5\pgf@lib@dec@mark@last%
\else%
\pgf@lib@dec@parsenum{#3}%
\pgfmathparse{\pgf@lib@dec@mark@start+\pgf@lib@dec@computed@width}%
\edef\pgf@temp{\noexpand\pgf@lib@dec@dobetweenmark{\pgfmathresult pt}{\pgf@lib@dec@mark@end}{\pgf@lib@dec@computed@width}}%
\expandafter\def\expandafter\pgf@lib@dec@mark@marks\expandafter{\pgf@temp{#4}#5}%
\let\pgf@lib@dec@computed@width\pgf@lib@dec@mark@start%
\def\pgf@lib@dec@computed@action{#4}%
\def\pgf@lib@dec@next@state{main}%
\fi%
}%
\def\pgf@lib@dec@parsenum#1{%
\pgfmathparse{#1}%
\ifpgfmathunitsdeclared%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathparse{\pgfdecoratedpathlength\pgfmathresult pt}%
\else%
\pgfmathparse{\pgfmathresult pt}%
\fi%
\else%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathparse{\pgfdecoratedpathlength\pgfmathresult*\pgfdecoratedpathlength}%
\else%
\pgfmathparse{\pgfmathresult*\pgfdecoratedpathlength}%
\fi%
\fi%
\edef\pgf@lib@dec@computed@width{\pgfmathresult pt}%
}%
\def\pgf@lib@dec@mark@last{%
\def\pgf@lib@dec@next@state{final}%
}%
\pgfkeys{/pgf/decoration/mark connection node/.store in=\pgf@lib@mark@node,
/pgf/decoration/mark connection node=}%
\def\pgf@lib@mark@connect@node{%
\pgfpathlineto{\pgfpointshapeborder{\pgf@lib@mark@node}{\pgfqpoint{-1pt}{0pt}}}
\pgfpathmoveto{\pgfpointshapeborder{\pgf@lib@mark@node}{\pgfqpoint{1pt}{0pt}}}
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.markings.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.pathmorphing.code.tex ====
\usepgfmodule{decorations}%
\pgfdeclaredecoration{zigzag}{up from center}{%
\state{up from center}[width=+.5\pgfdecorationsegmentlength, next state=big down]
{
\pgfpathlineto{\pgfqpoint{.25\pgfdecorationsegmentlength}{\pgfdecorationsegmentamplitude}}
}%
\state{big down}[switch if less than=+.5\pgfdecorationsegmentlength to center finish,
width=+.5\pgfdecorationsegmentlength,
next state=big up]
{
\pgfpathlineto{\pgfqpoint{.25\pgfdecorationsegmentlength}{-\pgfdecorationsegmentamplitude}}
}%
\state{big up}[switch if less than=+.5\pgfdecorationsegmentlength to center finish,
width=+.5\pgfdecorationsegmentlength,
next state=big down]
{
\pgfpathlineto{\pgfqpoint{.25\pgfdecorationsegmentlength}{\pgfdecorationsegmentamplitude}}
}%
\state{center finish}[width=0pt, next state=final]{
\pgfpathlineto{\pgfpointorigin}
}%
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}%
}%
\pgfdeclaredecoration{saw}{initial}
{%
\state{initial}[auto end on length=+\pgfdecorationsegmentlength,
auto corner on length=+\pgfdecorationsegmentlength,
width=+\pgfdecorationsegmentlength]
{
\pgfpathlineto{\pgfqpoint{\pgfdecorationsegmentlength}{\pgfdecorationsegmentamplitude}}
\pgfpathlineto{\pgfqpoint{\pgfdecorationsegmentlength}{0pt}}
}%
\state{final}
{}%
}%
\pgfdeclaredecoration{random steps}{start}
{%
\state{start}[width=+0pt,next state=step,persistent precomputation=\pgfdecoratepathhascornerstrue]{}%
\state{step}[auto end on length=1.5\pgfdecorationsegmentlength,
auto corner on length=1.5\pgfdecorationsegmentlength,
width=+\pgfdecorationsegmentlength]
{
\pgfpathlineto{
\pgfpointadd
{\pgfpoint{\pgfdecorationsegmentlength}{0pt}}
{\pgfpoint{rand*\pgfdecorationsegmentamplitude}{rand*\pgfdecorationsegmentamplitude}}
}
}%
\state{final}
{}%
}%
\pgfdeclaremetadecoration{straight zigzag}{line to}{%
\state{line to}[width=\pgfmetadecorationsegmentlength, next state=zigzag]
{
\decoration{curveto}
}%
\state{zigzag}[width=\pgfmetadecorationsegmentlength, next state=line to]
{
\decoration{zigzag}
}%
\state{final}
{
\decoration{curveto}
}%
}%
\pgfdeclaredecoration{bent}{bent}
{%
\state{bent}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfpathcurveto
{\pgfqpoint{\pgfdecorationsegmentaspect\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentamplitude}}
{\pgfpointadd{\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
{\pgfqpoint{-\pgfdecorationsegmentaspect\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentamplitude}}}
{\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
}%
\state{final}
{}%
}%
\pgfdeclaredecoration{snake}{initial}
{%
\state{initial}[switch if less than=+.625\pgfdecorationsegmentlength to final,
width=+.3125\pgfdecorationsegmentlength,
next state=down]
{
\pgfpathcurveto
{\pgfqpoint{.125\pgfdecorationsegmentlength}{0pt}}
{\pgfqpoint{.1875\pgfdecorationsegmentlength}{\pgfdecorationsegmentamplitude}}
{\pgfqpoint{.3125\pgfdecorationsegmentlength}{\pgfdecorationsegmentamplitude}}
}%
\state{down}[switch if less than=+.8125\pgfdecorationsegmentlength to end down,
width=+.5\pgfdecorationsegmentlength,
next state=up]
{
\pgfpathcosine{\pgfqpoint{.25\pgfdecorationsegmentlength}{-1\pgfdecorationsegmentamplitude}}
\pgfpathsine{\pgfqpoint{.25\pgfdecorationsegmentlength}{-1\pgfdecorationsegmentamplitude}}
}%
\state{up}[switch if less than=+.8125\pgfdecorationsegmentlength to end up,
width=+.5\pgfdecorationsegmentlength,
next state=down]
{
\pgfpathcosine{\pgfqpoint{.25\pgfdecorationsegmentlength}{\pgfdecorationsegmentamplitude}}
\pgfpathsine{\pgfqpoint{.25\pgfdecorationsegmentlength}{\pgfdecorationsegmentamplitude}}
}%
\state{end down}[width=+.3125\pgfdecorationsegmentlength,
next state=final]
{
\pgfpathcurveto
{\pgfqpoint{.125\pgfdecorationsegmentlength}{\pgfdecorationsegmentamplitude}}
{\pgfqpoint{.1875\pgfdecorationsegmentlength}{0pt}}
{\pgfqpoint{.3125\pgfdecorationsegmentlength}{0pt}}
}%
\state{end up}[width=+.3125\pgfdecorationsegmentlength,
next state=final]
{
\pgfpathcurveto
{\pgfqpoint{.125\pgfdecorationsegmentlength}{-\pgfdecorationsegmentamplitude}}
{\pgfqpoint{.1875\pgfdecorationsegmentlength}{0pt}}
{\pgfqpoint{.3125\pgfdecorationsegmentlength}{0pt}}
}%
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}%
}%
\pgfdeclaredecoration{coil}{coil}
{%
\state{coil}[switch if less than=%
1.5\pgfdecorationsegmentlength+%
\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude+%
\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude to last,
width=+\pgfdecorationsegmentlength]
{
\pgfpathcurveto
{\pgfpoint@oncoil{0 }{ 0.555}{1}}
{\pgfpoint@oncoil{0.445}{ 1 }{2}}
{\pgfpoint@oncoil{1 }{ 1 }{3}}
\pgfpathcurveto
{\pgfpoint@oncoil{1.555}{ 1 }{4}}
{\pgfpoint@oncoil{2 }{ 0.555}{5}}
{\pgfpoint@oncoil{2 }{ 0 }{6}}
\pgfpathcurveto
{\pgfpoint@oncoil{2 }{-0.555}{7}}
{\pgfpoint@oncoil{1.555}{-1 }{8}}
{\pgfpoint@oncoil{1 }{-1 }{9}}
\pgfpathcurveto
{\pgfpoint@oncoil{0.445}{-1 }{10}}
{\pgfpoint@oncoil{0 }{-0.555}{11}}
{\pgfpoint@oncoil{0 }{ 0 }{12}}
}%
\state{last}[width=.5\pgfdecorationsegmentlength+%
\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude+%
\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude,next state=final]
{
\pgfpathcurveto
{\pgfpoint@oncoil{0 }{ 0.555}{1}}
{\pgfpoint@oncoil{0.445}{ 1 }{2}}
{\pgfpoint@oncoil{1 }{ 1 }{3}}
\pgfpathcurveto
{\pgfpoint@oncoil{1.555}{ 1 }{4}}
{\pgfpoint@oncoil{2 }{ 0.555}{5}}
{\pgfpoint@oncoil{2 }{ 0 }{6}}
}%
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}%
}%
\def\pgfpoint@oncoil#1#2#3{%
\pgf@x=#1\pgfdecorationsegmentamplitude%
\pgf@x=\pgfdecorationsegmentaspect\pgf@x%
\pgf@y=#2\pgfdecorationsegmentamplitude%
\pgf@xa=0.083333333333\pgfdecorationsegmentlength%
\advance\pgf@x by#3\pgf@xa%
}%
\pgfdeclaredecoration{bumps}{initial}
{%
\state{initial}[auto end on length=+.51\pgfdecorationsegmentlength,
auto corner on length=+.51\pgfdecorationsegmentlength,
width=+.5\pgfdecorationsegmentlength]
{
\pgfpathcurveto
{\pgfqpoint{0pt}{.555\pgfdecorationsegmentamplitude}}
{\pgfqpoint{0.11125\pgfdecorationsegmentlength}{\pgfdecorationsegmentamplitude}}
{\pgfqpoint{.25\pgfdecorationsegmentlength}{\pgfdecorationsegmentamplitude}}
\pgfpathcurveto
{\pgfqpoint{.38875\pgfdecorationsegmentlength}{\pgfdecorationsegmentamplitude}}
{\pgfqpoint{.5\pgfdecorationsegmentlength}{.5\pgfdecorationsegmentamplitude}}
{\pgfqpoint{.5\pgfdecorationsegmentlength}{0\pgfdecorationsegmentamplitude}}
}%
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.pathmorphing.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.pathreplacing.code.tex ====
\usepgfmodule{decorations}%
\pgfdeclaredecoration{ticks}{ticks}
{%
\state{ticks}[width=+\pgfdecorationsegmentlength]
{
\pgfpathmoveto{\pgfqpoint{0pt}{\pgfdecorationsegmentamplitude}}
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfdecorationsegmentamplitude}}
}%
\state{final}
{
\pgfpathmoveto{\pgfqpoint{0pt}{\pgfdecorationsegmentamplitude}}
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfdecorationsegmentamplitude}}
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}%
}%
\pgfdeclaredecoration{expanding waves}{initial}
{%
\state{initial}[width=+\pgfdecorationsegmentlength,next state=wave]
{}%
\state{wave}[switch if less than=+\pgfdecorationsegmentlength to last,
width=+\pgfdecorationsegmentlength]
{
\pgfpathmoveto{
\pgfpointadd
{\pgfqpoint{-\pgfdecoratedcompleteddistance}{0pt}}%
{\pgfpointpolar{\pgfdecorationsegmentangle}{+\pgfdecoratedcompleteddistance}}}%
\pgfpatharc{\pgfdecorationsegmentangle}{-\pgfdecorationsegmentangle}{+\pgfdecoratedcompleteddistance}%
}%
\state{last}[width=+0pt,next state=final]
{
\pgfpathmoveto{
\pgfpointadd
{\pgfqpoint{-\pgfdecoratedcompleteddistance}{0pt}}%
{\pgfpointpolar{\pgfdecorationsegmentangle}{+\pgfdecoratedcompleteddistance}}}%
\pgfpatharc{\pgfdecorationsegmentangle}{-\pgfdecorationsegmentangle}{+\pgfdecoratedcompleteddistance}%
}%
\state{final}
{
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}%
}%
\pgfdeclaredecoration{waves}{wave}
{%
\state{wave}[width=\pgfdecorationsegmentlength]
{
\pgftransformxshift{+\pgfdecorationsegmentlength}
\pgfpathmoveto{
\pgfpointadd
{\pgfqpoint{-\pgfkeysvalueof{/pgf/decoration/start radius}}{0pt}}%
{\pgfpointpolar{\pgfdecorationsegmentangle}{\pgfkeysvalueof{/pgf/decoration/start radius}}}}%
\pgfpatharc{\pgfdecorationsegmentangle}{-\pgfdecorationsegmentangle}{\pgfkeysvalueof{/pgf/decoration/start radius}}%
}%
\state{final}
{
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}%
}%
\pgfdeclaredecoration{border}{tick}
{%
\state{tick}[switch if less than=+\pgfdecorationsegmentlength to last,
width=+\pgfdecorationsegmentlength]
{
\pgfpathmoveto{\pgfpointorigin}
\pgfpathlineto{\pgfpointpolar{\pgfdecorationsegmentangle}{+\pgfdecorationsegmentamplitude}}
}%
\state{last}[width=+\pgfdecorationsegmentamplitude,next state=final]
{
\pgfpathmoveto{\pgfpointorigin}
\pgfpathlineto{\pgfpointpolar{\pgfdecorationsegmentangle}{+\pgfdecorationsegmentamplitude}}
}%
\state{final}
{
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}%
}%
\pgfdeclaredecoration{brace}{brace}
{%
\state{brace}[width=+\pgfdecoratedremainingdistance,next state=final]
{
\pgf@yc=\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance
\ifdim2\pgfdecorationsegmentamplitude>\pgf@yc
\pgf@yc=0.5\pgf@yc
\else
\pgf@yc=\pgfdecorationsegmentamplitude
\fi
\pgf@xc=\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance
\advance\pgf@xc-\pgfdecoratedremainingdistance
\ifdim-2\pgfdecorationsegmentamplitude<\pgf@xc
\pgf@xc=-0.5\pgf@xc
\else
\pgf@xc=\pgfdecorationsegmentamplitude
\fi
\pgfpathmoveto{\pgfpointorigin}
\pgfpathcurveto
{\pgfqpoint{.15\pgf@yc}{.3\pgfdecorationsegmentamplitude}}
{\pgfqpoint{.5\pgf@yc}{.5\pgfdecorationsegmentamplitude}}
{\pgfqpoint{\pgf@yc}{.5\pgfdecorationsegmentamplitude}}
{
\pgftransformxshift{+\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance}
\pgfpathlineto{\pgfqpoint{-\pgf@yc}{.5\pgfdecorationsegmentamplitude}}
\pgfpathcurveto
{\pgfqpoint{-.5\pgf@yc}{.5\pgfdecorationsegmentamplitude}}
{\pgfqpoint{-.15\pgf@yc}{.7\pgfdecorationsegmentamplitude}}
{\pgfqpoint{0\pgf@yc}{1\pgfdecorationsegmentamplitude}}
\pgfpathcurveto
{\pgfqpoint{.15\pgf@xc}{.7\pgfdecorationsegmentamplitude}}
{\pgfqpoint{.5\pgf@xc}{.5\pgfdecorationsegmentamplitude}}
{\pgfqpoint{\pgf@xc}{.5\pgfdecorationsegmentamplitude}}
}
{
\pgftransformxshift{+\pgfdecoratedremainingdistance}
\pgfpathlineto{\pgfqpoint{-\pgf@xc}{.5\pgfdecorationsegmentamplitude}}
\pgfpathcurveto
{\pgfqpoint{-.5\pgf@xc}{.5\pgfdecorationsegmentamplitude}}
{\pgfqpoint{-.15\pgf@xc}{.3\pgfdecorationsegmentamplitude}}
{\pgfqpoint{0pt}{0pt}}
}
}%
\state{final}
{}%
}%
\pgfdeclaredecoration{show path construction}{check for moveto}{%
\state{check for moveto}[width=0pt, next state=segment,
persistent precomputation={%
\begingroup%
\pgf@lib@decoraions@installinputsegmentpoints%
\ifx\pgfdecorationpreviousinputsegment\pgfdecorationinputsegmentmoveto%
\pgfdecoratedinputsegmentmovetocode%
\fi%
\endgroup%
}]{}%
\state{segment}[width=\pgfdecoratedinputsegmentremainingdistance, next state=check for moveto,
persistent precomputation={%
\begingroup%
\pgf@lib@decoraions@installinputsegmentpoints%
\csname pgfdecoratedinputsegment\pgfdecorationcurrentinputsegment code\endcsname%
\endgroup%
}]{}%
\state{final}{%
\egroup%
\begingroup%
\pgf@lib@decoraions@installinputsegmentpoints%
\csname pgfdecoratedinputsegment\pgfdecorationcurrentinputsegment code\endcsname%
\endgroup%
\bgroup%
}%
}%
\pgfkeys{
/pgf/decoration/.cd,
moveto code/.code=\def\pgfdecoratedinputsegmentmovetocode{#1},
lineto code/.code=\def\pgfdecoratedinputsegmentlinetocode{#1},
curveto code/.code=\def\pgfdecoratedinputsegmentcurvetocode{#1},
closepath code/.code=\def\pgfdecoratedinputsegmentclosepathcode{#1}
}%
\let\pgfdecoratedinputsegmentmovetocode\pgfutil@empty%
\let\pgfdecoratedinputsegmentlinetocode\pgfutil@empty%
\let\pgfdecoratedinputsegmentcurvetocode\pgfutil@empty%
\let\pgfdecoratedinputsegmentclosepathcode\pgfutil@empty%
\def\pgf@lib@decoraions@installinputsegmentpoints{%
\let\pgfpointdecoratedinputsegmentfirst\pgf@decorate@inputsegment@first%
\let\pgfpointdecoratedinputsegmentlast\pgf@decorate@inputsegment@last%
\let\pgfpointdecoratedinputsegmentsupporta\pgf@decorate@inputsegment@supporta%
\let\pgfpointdecoratedinputsegmentsupportb\pgf@decorate@inputsegment@supportb%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.pathreplacing.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.shapes.code.tex ====
\usepgfmodule{decorations}%
\pgfkeys{
/pgf/decoration/.cd,
shape/.initial=circle,
anchor/.initial=center,
shape start width/.initial=2.5pt,
shape start height/.initial=2.5pt,
shape end width/.initial=2.5pt,
shape end height/.initial=2.5pt,
shape sep/.store in=\pgf@lib@shapedecoration@sep,
shape sloped/.is if=pgfshapedecorationsloped,
shape scaled/.is if=pgfshapedecorationscaled,
shape evenly spread/.store in=\pgf@lib@shapedecoration@spread,
shape start size/.style={%
shape start width={#1},
shape start height={#1}%
},%
shape end size/.style={%
shape end width={#1},
shape end height={#1}%
},%
shape size/.style={%
shape start size={#1},
shape end size={#1}%
},%
shape width/.style={%
shape start width={#1},
shape end width={#1}
},
shape height/.style={%
shape start height={#1},
shape end height={#1}
}
}%
\def\pgf@lib@shapedecoration@sep{.25cm, between centers}%
\newif\ifpgfshapedecorationsloped
\pgfshapedecorationslopedtrue
\newif\ifpgfshapedecorationscaled
\let\pgf@lib@shapedecoration@spread\pgfutil@empty%
\pgfdeclaredecoration{triangles}{init}
{%
\state{init}[width=+0pt,next state=triangle,persistent precomputation={
\pgfmathparse{\pgfkeysvalueof{/pgf/decoration/shape start width}}
\edef\pgf@lib@dec@ssw{\pgfmathresult pt}
\pgfmathparse{\pgfkeysvalueof{/pgf/decoration/shape start height}/2}
\edef\pgf@lib@dec@ssh{\pgfmathresult pt}
}]{}%
\state{triangle}[switch if less than=+\pgfdecorationsegmentlength to last,
width=+\pgfdecorationsegmentlength]
{
\pgfpathmoveto{\pgfqpoint{0pt}{\pgf@lib@dec@ssh}}
\pgfpathlineto{\pgfqpoint{\pgf@lib@dec@ssw}{0pt}}
\pgfpathlineto{\pgfqpoint{0pt}{-\pgf@lib@dec@ssh}}
\pgfpathclose
}%
\state{last}[switch if less than=\pgf@lib@dec@ssw to skip,
width=\pgfdecoratedremainingdistance,next state=final]
{
\pgfpathmoveto{\pgfqpoint{0pt}{\pgf@lib@dec@ssh}}
\pgfpathlineto{\pgfqpoint{\pgf@lib@dec@ssw}{0pt}}
\pgfpathlineto{\pgfqpoint{0pt}{-\pgf@lib@dec@ssh}}
\pgfpathclose
}%
\state{skip}[width=\pgfdecoratedremainingdistance]
{}%
\state{final}
{
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}%
}%
\pgfdeclaredecoration{crosses}{init}
{%
\state{init}[width=+0pt,next state=crosses,persistent precomputation={
\pgfmathparse{\pgfkeysvalueof{/pgf/decoration/shape start width}/2}
\edef\pgf@lib@dec@ssw{\pgfmathresult pt}
\pgfmathparse{\pgfkeysvalueof{/pgf/decoration/shape start height}/2}
\edef\pgf@lib@dec@ssh{\pgfmathresult pt}
}]{}%
\state{crosses}[switch if less than=+\pgfdecorationsegmentlength to last,
width=+\pgfdecorationsegmentlength]
{
\pgfpathmoveto{\pgfqpoint{-\pgf@lib@dec@ssw}{\pgf@lib@dec@ssh}}
\pgfpathlineto{\pgfqpoint{\pgf@lib@dec@ssw}{-\pgf@lib@dec@ssh}}
\pgfpathmoveto{\pgfqpoint{-\pgf@lib@dec@ssw}{-\pgf@lib@dec@ssh}}
\pgfpathlineto{\pgfqpoint{\pgf@lib@dec@ssw}{\pgf@lib@dec@ssh}}
}%
\state{last}[width=+\pgfdecoratedremainingdistance]
{
\pgfpathmoveto{\pgfqpoint{-\pgf@lib@dec@ssw}{\pgf@lib@dec@ssh}}
\pgfpathlineto{\pgfqpoint{\pgf@lib@dec@ssw}{-\pgf@lib@dec@ssh}}
\pgfpathmoveto{\pgfqpoint{-\pgf@lib@dec@ssw}{-\pgf@lib@dec@ssh}}
\pgfpathlineto{\pgfqpoint{\pgf@lib@dec@ssw}{\pgf@lib@dec@ssh}}
}%
\state{final}{
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}%
}%
\newif\ifpgf@lib@shapedecoration@betweenborders
\edef\pgf@lib@shapedecoration@initialise{0pt}%
\pgfdeclaredecoration{shape backgrounds}{initialise}
{%
\state{initialise}
[
width=+\pgf@lib@shapedecoration@initialise,
next state=shape,
persistent precomputation=
{
\pgfutil@ifundefined{pgf@sh@bg@\pgfkeysvalueof{/pgf/decoration/shape}}{%
\pgferror{I do not know the shape `\pgfkeysvalueof{/pgf/decoration/shape}',
so I cannot use it in a decoration. Check if its library been loaded or if you
simply mistyped the name}}{}%
\pgfinterruptpath%
\pgfinterruptboundingbox%
\pgftransformreset%
\pgf@relevantforpicturesizetrue%
\pgfkeys{/pgf/inner sep=50pt, /pgf/minimum size=1pt}%
\setbox\pgfnodeparttextbox\hbox{}%
\let\pgf@sh@savedmacros\pgfutil@empty%
\let\pgf@sh@savedpoints\pgfutil@empty%
\csname pgf@sh@s@\pgfkeysvalueof{/pgf/decoration/shape}\endcsname%
\pgf@sh@savedpoints%
\pgf@sh@savedmacros%
\expandafter\gdef\expandafter\pgf@lib@shapedecoration@points\expandafter{\pgf@sh@savedpoints}%
\expandafter\gdef\expandafter\pgf@lib@shapedecoration@macros\expandafter{\pgf@sh@savedmacros}%
\csname pgf@sh@bg@\pgfkeysvalueof{/pgf/decoration/shape}\endcsname%
\pgf@x\pgf@picmaxx%
\pgf@y\pgf@picmaxy%
\advance\pgf@x-\pgf@picminx%
\advance\pgf@y-\pgf@picminy%
\xdef\pgf@lib@shapedecoration@shapepathsize{%
\noexpand\pgf@x\the\pgf@x%
\noexpand\pgf@y\the\pgf@y%
}%
\endpgfinterruptboundingbox%
\endpgfinterruptpath%
\edef\pgf@lib@shapedecoration@beforeshape{0pt}%
\edef\pgf@lib@shapedecoration@aftershape{0pt}%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/decoration/shape start width}}%
\edef\pgf@lib@shapedecoration@startwidth{\the\pgf@x}%
\edef\pgf@lib@shapedecoration@width{\the\pgf@x}%
\pgf@x-\pgf@x%
\pgfmathaddtolength\pgf@x{\pgfkeysvalueof{/pgf/decoration/shape end width}}%
\edef\pgf@lib@shapedecoration@widthchange{\the\pgf@x}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/decoration/shape start height}}%
\edef\pgf@lib@shapedecoration@initialheight{\the\pgf@y}%
\edef\pgf@lib@shapedecoration@height{\the\pgf@y}%
\pgf@y-\pgf@y%
\pgfmathaddtolength\pgf@y{\pgfkeysvalueof{/pgf/decoration/shape end height}}%
\edef\pgf@lib@shapedecoration@heightchange{\the\pgf@y}%
\ifx\pgf@lib@shapedecoration@spread\pgfutil@empty%
\def\pgf@lib@shapedecoration@borderstext{between borders}%
\afterassignment\pgf@lib@shapedecoration@setkeyword%
\expandafter\pgf@x\pgf@lib@shapedecoration@sep,\pgf@stop%
\edef\pgf@lib@shapedecoration@sep{\the\pgf@x}%
\else%
\def\pgf@lib@shapedecoration@borderstext{by borders}%
\afterassignment\pgf@lib@shapedecoration@setkeyword%
\expandafter\c@pgf@counta\pgf@lib@shapedecoration@spread,\pgf@stop%
\ifpgf@lib@shapedecoration@betweenborders%
\ifnum\c@pgf@counta>1\relax%
\advance\c@pgf@counta-1\relax%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/decoration/shape start width}}%
\ifpgfshapedecorationscaled%
\pgfmathaddtolength\pgf@x{\pgfkeysvalueof{/pgf/decoration/shape end width}}%
\else%
\advance\pgf@x\pgf@x%
\fi%
\pgf@x.5\pgf@x%
\multiply\pgf@x-\c@pgf@counta%
\advance\pgf@x\pgfdecoratedremainingdistance%
\divide\pgf@x\c@pgf@counta%
\pgf@x.9999\pgf@x%
\ifpgfshapedecorationscaled%
\pgf@xa\pgf@lib@shapedecoration@widthchange\relax%
\divide\pgf@xa\c@pgf@counta%
\edef\pgf@lib@shapedecoration@specialwidth{\the\pgf@xa}%
\fi%
\else%
\pgf@lib@shapedecoration@betweenbordersfalse%
\pgf@x\pgfdecoratedremainingdistance%
\ifnum\c@pgf@counta=1\relax%
\pgf@y.5\pgf@x%
\edef\pgf@lib@shapedecoration@initialise{\the\pgf@y}%
\else%
\advance\pgf@x5pt\relax%
\edef\pgf@lib@shapedecoration@initialise{\the\pgf@x}%
\fi%
\fi%
\else%
\pgf@x\pgfdecoratedremainingdistance%
\ifnum\c@pgf@counta>1\relax%
\advance\c@pgf@counta-1\relax%
\divide\pgf@x\c@pgf@counta\relax%
\else%
\ifnum\c@pgf@counta=1\relax%
\pgf@y.5\pgf@x%
\edef\pgf@lib@shapedecoration@initialise{\the\pgf@y}%
\else%
\advance\pgf@x5pt\relax%
\edef\pgf@lib@shapedecoration@initialise{\the\pgf@x}%
\fi%
\fi%
\fi%
\edef\pgf@lib@shapedecoration@sep{\the\pgf@x}%
\fi%
}]
{}%
\state{before shape}
[
width=\pgf@lib@shapedecoration@beforeshape-1sp,
next state=shape,
persistent precomputation=
{
\ifpgfshapedecorationscaled%
\ifpgf@lib@shapedecoration@betweenborders%
\ifx\pgf@lib@shapedecoration@spread\pgfutil@empty%
\pgf@x\pgfdecoratedcompleteddistance%
\advance\pgf@x\pgfdecoratedremainingdistance%
\pgf@xa\pgf@lib@shapedecoration@startwidth\relax%
\pgf@xa.5\pgf@xa%
\advance\pgf@xa\pgfdecoratedcompleteddistance%
\pgf@xb\pgf@lib@shapedecoration@widthchange\relax%
\pgf@xb-.5\pgf@xb%
\advance\pgf@xb\pgf@x%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@xa}}{\pgfmath@tonumber{\pgf@xb}}%
\fi%
\else%
\pgf@y\pgfdecoratedcompleteddistance%
\advance\pgf@y\pgfdecoratedremainingdistance%
\pgfmathdivide@{\pgfmath@tonumber{\pgfdecoratedcompleteddistance}}{\pgfmath@tonumber{\pgf@y}}%
\fi%
\ifx\pgf@lib@shapedecoration@spread\pgfutil@empty%
\pgf@x\pgf@lib@shapedecoration@widthchange\relax%
\pgf@x\pgfmathresult\pgf@x%
\advance\pgf@x\pgf@lib@shapedecoration@startwidth\relax%
\else%
\ifpgf@lib@shapedecoration@betweenborders%
\pgf@x\pgf@lib@shapedecoration@width\relax%
\advance\pgf@x\pgf@lib@shapedecoration@specialwidth\relax%
\pgf@xa\pgf@x%
\advance\pgf@xa-\pgf@lib@shapedecoration@startwidth\relax%
\pgf@xb\pgf@lib@shapedecoration@widthchange\relax%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@xa}}{\pgfmath@tonumber{\pgf@xb}}%
\else%
\pgf@x\pgf@lib@shapedecoration@widthchange\relax%
\pgf@x\pgfmathresult\pgf@x%
\advance\pgf@x\pgf@lib@shapedecoration@startwidth\relax%
\fi%
\fi%
\edef\pgf@lib@shapedecoration@width{\the\pgf@x}%
\pgf@y\pgf@lib@shapedecoration@heightchange\relax%
\pgf@y\pgfmathresult\pgf@y%
\advance\pgf@y\pgf@lib@shapedecoration@initialheight\relax%
\edef\pgf@lib@shapedecoration@height{\the\pgf@y}%
\fi%
\ifpgf@lib@shapedecoration@betweenborders%
\pgf@x\pgf@lib@shapedecoration@width\relax%
\pgf@x.5\pgf@x%
\edef\pgf@lib@shapedecoration@beforeshape{\the\pgf@x}%
\else%
\def\pgf@lib@shapedecoration@beforeshape{0pt}%
\fi%
}]
{}%
\state{shape}[width=+0sp,next state=after shape]
{
\ifpgfshapedecorationsloped%
\else%
\pgftransformrotate{-\pgfdecoratedangle}%
\fi%
\pgf@lib@shapedecoration@shapepathsize%
\pgfutil@tempdima\pgf@x%
\pgfutil@tempdimb\pgf@y%
\pgf@xa\pgf@lib@shapedecoration@width\relax%
\pgf@xb\pgfutil@tempdima%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@xa}}{\pgfmath@tonumber{\pgf@xb}}%
\expandafter\pgftransformxscale\expandafter{\pgfmathresult}%
\pgf@ya\pgf@lib@shapedecoration@height\relax%
\pgf@yb\pgfutil@tempdimb%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@ya}}{\pgfmath@tonumber{\pgf@yb}}%
\expandafter\pgftransformyscale\expandafter{\pgfmathresult}%
\pgf@lib@shapedecoration@points%
\pgf@lib@shapedecoration@macros%
\pgftransformshift{%
\pgf@sh@reanchor{\pgfkeysvalueof{/pgf/decoration/shape}}{\pgfkeysvalueof{/pgf/decoration/anchor}}%
\pgf@x-\pgf@x%
\pgf@y-\pgf@y%
}%
\csname pgf@sh@bg@\pgfkeysvalueof{/pgf/decoration/shape}\endcsname%
}%
\state{after shape}
[
width=\pgf@lib@shapedecoration@aftershape-1sp,
next state=sep,
persistent precomputation=
{
\ifpgf@lib@shapedecoration@betweenborders%
\pgf@x\pgf@lib@shapedecoration@width\relax%
\pgf@x.5\pgf@x%
\edef\pgf@lib@shapedecoration@aftershape{\the\pgf@x}%
\else%
\edef\pgf@lib@shapedecoration@aftershape{0pt}%
\fi%
}
]
{}%
\state{sep}[width=\pgf@lib@shapedecoration@sep,next state=before shape,
persistent precomputation=\def\pgf@lib@shapedecoration@beforeshape{0pt}]
{}%
\state{final}
{
\pgfpathmoveto{\pgfpointdecoratedpathlast}%
}%
}%
\def\pgf@lib@shapedecoration@setkeyword,{%
\pgfutil@ifnextchar\pgf@stop{\def\pgf@temp{}\pgf@lib@@@shapedecoration@setkeyword}{\pgf@lib@@shapedecoration@setkeyword}%
}%
\def\pgf@lib@@shapedecoration@setkeyword#1,{\def\pgf@temp{#1}\pgf@lib@@@shapedecoration@setkeyword}%
\def\pgf@lib@@@shapedecoration@setkeyword\pgf@stop{%
\ifx\pgf@temp\pgf@lib@shapedecoration@borderstext%
\pgf@lib@shapedecoration@betweenborderstrue%
\else%
\pgf@lib@shapedecoration@betweenbordersfalse%
\fi%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.shapes.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.text.code.tex ====
\usepgfmodule{decorations}%
\pgfkeys{
/pgf/decoration/.cd,
text/.store in=\pgfdecorationtext,%
text color/.store in=\pgf@lib@decorationtextcolor,%
text format delimiters/.code={\expandafter\pgfsetdecoratetextformatdelimiters#1},
text align/.code={\pgfkeys{/pgf/decoration/text align/.cd,#1}},
text align/.cd,
align/.initial=left,
left/.style={/pgf/decoration/text align/align=left},
right/.style={/pgf/decoration/text align/align=right},
center/.style={/pgf/decoration/text align/align=center},
left indent/.initial=0pt,
right indent/.initial=0pt,
fit to path/.is if=pgf@lib@dec@text@fit,
fit to path stretching spaces/.default=true,
fit to path stretching spaces/.code={%
\csname pgf@lib@dec@text@fit#1\endcsname%
\csname pgf@lib@dec@text@stretch@spaces#1\endcsname%
}%
}%
\newif\ifpgf@lib@dec@text@scan@space
\newif\ifpgf@lib@dec@text@stretch@spaces
\newif\ifpgf@lib@dec@text@fit
\def\pgf@lib@decorationtextcolor{black}%
\def\pgf@lib@dec@text@left@text{left}%
\def\pgf@lib@dec@text@right@text{right}%
\def\pgf@lib@dec@text@right@center{center}%
\pgfdeclaredecoration{text along path}{initial}{%
\state{initial}[
width=+0pt, next state=left indent,
persistent precomputation={%
\edef\pgf@lib@dec@text@indent@left{\pgfkeysvalueof{/pgf/decoration/text align/left indent}}%
\edef\pgf@lib@dec@text@indent@right{\pgfkeysvalueof{/pgf/decoration/text align/right indent}}%
\edef\pgf@lib@dec@text@align{\pgfkeysvalueof{/pgf/decoration/text align/align}}%
\pgfdecoratedremainingdistance=\pgfdecoratedpathlength%
\advance\pgfdecoratedremainingdistance by-\pgf@lib@dec@text@indent@right\relax%
\edef\pgfdecoratedpathlength{\the\pgfdecoratedremainingdistance}%
\pgf@lib@dec@text@getwidth%
\pgf@x=\pgf@lib@dec@text@width\relax%
\pgf@y=\pgfdecoratedremainingdistance%
\ifpgf@lib@dec@text@fit%
\advance\pgf@y by-\pgf@lib@dec@text@indent@left\relax%
\advance\pgf@y by-\pgf@x%
\ifpgf@lib@dec@text@stretch@spaces%
\def\pgf@lib@dec@text@character@shift{0pt}%
\divide\pgf@y by\pgf@lib@dec@space@count\relax%
\edef\pgf@lib@dec@text@space@shift{\the\pgf@y}%
\else%
\c@pgf@counta=\pgf@lib@dec@character@count\relax%
\advance\c@pgf@counta by-1\relax%
\divide\pgf@y by\c@pgf@counta\relax%
\edef\pgf@lib@dec@text@character@shift{\the\pgf@y}%
\def\pgf@lib@dec@text@space@shift{0pt}%
\fi%
\ifdim\pgf@y<0pt\relax%
\pgf@lib@dec@text@fitfalse%
\pgf@lib@dec@text@stretch@spacesfalse%
\def\pgf@lib@dec@text@character@shift{0pt}%
\def\pgf@lib@dec@text@space@shift{0pt}%
\fi%
\else%
\def\pgf@lib@dec@text@character@shift{0pt}%
\def\pgf@lib@dec@text@space@shift{0pt}%
\ifx\pgf@lib@dec@text@align\pgf@lib@dec@text@left@text%
\else%
\ifx\pgf@lib@dec@text@align\pgf@lib@dec@text@right@text%
\advance\pgf@y by-\pgf@x%
\edef\pgf@lib@dec@text@indent@left{\the\pgf@y}%
\else%
\advance\pgf@y by-\pgf@x%
\advance\pgf@y by-\pgf@lib@dec@text@indent@left\relax%
\pgf@y=0.5\pgf@y%
\advance\pgf@y by\pgf@lib@dec@text@indent@left\relax%
\edef\pgf@lib@dec@text@indent@left{\the\pgf@y}%
\fi%
\fi%
\fi%
\let\pgfdecorationrestoftext=\pgfdecorationtext%
}]{}%
\state{left indent}[width=+\pgf@lib@dec@text@indent@left, next state=scan]{}%
\state{scan}[
width=+0pt,
next state=before typeset,
persistent precomputation={
\pgf@lib@dec@text@scanchar%
\ifvoid\pgf@lib@dec@text@box%
\setbox\pgf@lib@dec@text@box\hbox{}%
\wd\pgf@lib@dec@text@box16383pt\relax%
\fi%
}]{}%
\state{before typeset}[width=+.5\wd\pgf@lib@dec@text@box, next state=typeset]{}%
\state{typeset}[width=+0pt, next state=after typeset]
{%
\pgftransformxshift{+-.5\wd\pgf@lib@dec@text@box}%
\setbox\pgf@hbox\hbox{\copy\pgf@lib@dec@text@box}%
\pgfqboxsynced\pgf@hbox%
}%
\state{after typeset}[width=+.5\wd\pgf@lib@dec@text@box, next state=shift,
persistent precomputation={%
\ifpgf@lib@dec@text@fit%
\ifpgf@lib@dec@text@stretch@spaces%
\ifpgf@lib@dec@text@scan@space%
\let\pgf@lib@dec@text@shift=\pgf@lib@dec@text@space@shift%
\else%
\def\pgf@lib@dec@text@shift{0pt}%
\fi%
\else%
\let\pgf@lib@dec@text@shift=\pgf@lib@dec@text@character@shift%
\fi%
\else%
\def\pgf@lib@dec@text@shift{0pt}%
\fi%
}]{}%
\state{shift}[width=+\pgf@lib@dec@text@shift, next state=scan]{}%
\state{final}{}%
}%
\def\pgfsetdecoratetextformatdelimiters#1#2{%
\def\pgf@lib@dec@text@formatchar{#1}%
\def\pgf@test{#2}%
\ifx\pgf@test\pgfutil@empty%
\def\pgf@lib@dec@text@collectformat##1#1{%
\pgf@lib@dec@text@@collectformat##1\pgf@stop}%
\else%
\def\pgf@lib@dec@text@collectformat##1#2{%
\pgf@lib@dec@text@@collectformat##1\pgf@stop}%
\fi%
}%
\pgfsetdecoratetextformatdelimiters{|}{}%
\newbox\pgf@lib@dec@text@box
\newif\ifpgf@lib@decorate@textmathmode
\let\pgfdecorationtext=\pgfutil@empty
\let\pgfdecorationrestoftext=\pgfutil@empty%
\let\pgf@lib@dec@text@format=\pgfutil@empty
\def\pgf@lib@dec@text@scanchar{%
\pgf@lib@dec@text@scan@spacefalse%
\ifx\pgfdecorationrestoftext\pgfutil@empty%
\let\pgf@lib@dec@text@char\pgfutil@empty%
\setbox\pgf@lib@dec@text@box\box\pgfutil@voidb@x%
\let\pgf@next\relax%
\else\ifx\pgfdecorationrestoftext\pgf@lib@dec@mathshift%
\ifpgf@lib@decorate@textmathmode%
\pgf@lib@decorate@textmathmodefalse%
\fi%
\let\pgf@lib@dec@text@char\pgfutil@empty%
\setbox\pgf@lib@dec@text@box\box\pgfutil@voidb@x%
\let\pgf@next\relax%
\else
\let\pgf@next\pgf@lib@dec@text@@scanchar%
\fi\fi%
\pgf@next}%
\def\pgf@lib@dec@text@@scanchar{%
\expandafter\pgf@lib@dec@text@@@scanchar\pgfdecorationrestoftext\pgf@stop}%
\def\pgf@lib@dec@text@@@scanchar{%
\futurelet\pgf@lib@dec@lettoken%
\pgf@lib@dec@text@@@@scanchar}%
\def\pgf@lib@dec@text@@@@scanchar{%
\ifx\pgf@lib@dec@lettoken\pgfutil@sptoken%
\let\pgf@next\pgf@lib@dec@text@insertspace%
\else%
\let\pgf@next\pgf@lib@dec@text@@@@@scanchar%
\fi%
\pgf@next}%
\def\pgf@lib@dec@text@@@@@scanchar{%
\pgfutil@ifnextchar\bgroup{\pgf@lib@dec@text@collectgroup}%
{\pgf@lib@dec@text@@@@@@scanchar}}%
\def\pgf@lib@dec@text@collectgroup#1{%
\def\pgf@lib@dec@text@char{#1}%
\pgf@lib@dec@text@collectrestoftext}%
\def\pgf@lib@dec@text@@@@@@scanchar#1{%
\ifx#1\pgf@stop%
\pgf@lib@dec@text@box\box\pgfutil@voidb@x%
\let\pgf@next\pgf@lib@dec@text@endoftext%
\else%
\def\pgf@lib@dec@text@char{#1}%
\ifx#1\space%
\let\pgf@next\pgf@lib@dec@text@collectrestoftext%
\else%
\ifx#1\ %
\let\pgf@next\pgf@lib@dec@text@collectrestoftext%
\else%
\ifx\pgf@lib@dec@text@char\pgf@lib@dec@text@formatchar%
\let\pgf@next\pgf@lib@dec@text@collectformat%
\else%
\expandafter\ifcat\noexpand#1\relax%
\let\pgf@next\pgf@lib@dec@text@expandcs%
\else%
\ifnum\catcode`#1=3\relax%
\ifpgf@lib@decorate@textmathmode%
\pgf@lib@decorate@textmathmodefalse%
\else%
\pgf@lib@decorate@textmathmodetrue%
\fi%
\let\pgf@next\pgf@lib@dec@text@@@scanchar%
\else%
\let\pgf@next\pgf@lib@dec@text@collectrestoftext%
\fi%
\fi%
\fi%
\fi%
\fi%
\fi%
\pgf@next%
}%
\def\pgf@lib@dec@text@@collectformat{%
\pgfutil@ifnextchar+{\pgf@lib@dec@text@addtoformat}{\pgf@lib@dec@text@setformat}}%
\def\pgf@lib@dec@text@setformat#1\pgf@stop{%
\def\pgf@lib@dec@text@format{#1}%
\pgf@lib@dec@text@@@scanchar%
}%
\def\pgf@lib@dec@text@addtoformat+#1\pgf@stop{%
\expandafter\def\expandafter\pgf@lib@dec@text@format\expandafter{\pgf@lib@dec@text@format#1}%
\pgf@lib@dec@text@@@scanchar%
}%
\def\pgf@lib@dec@text@insertspace{%
\pgf@lib@dec@text@scan@spacetrue%
\pgfutil@ifnextchar\bgroup{\pgf@lib@dec@text@@insertspacegrp}%
{\pgf@lib@dec@text@@insertspace}}%
\def\pgf@lib@dec@text@@insertspacegrp#1{%
\pgf@lib@dec@text@@@@@@scanchar\space{#1}}%
\def\pgf@lib@dec@text@@insertspace#1{%
\pgf@lib@dec@text@@@@@@scanchar\space#1}%
\def\pgf@lib@dec@text@expandcs{%
\expandafter\expandafter\expandafter\pgf@lib@dec@text@@@@@scanchar%
\pgf@lib@dec@text@char}%
\def\pgf@lib@dec@text@endoftext{%
\let\pgfdecorationrestoftext\pgfutil@empty%
\let\pgf@lib@dec@text@char\pgfutil@empty%
}%
\def\pgf@lib@dec@text@collectrestoftext{%
\pgf@lib@dec@text@dobox%
\futurelet\pgf@lib@dec@text@lettoken%
\pgf@lib@dec@text@@collectrestoftext}%
\def\pgf@lib@dec@text@@collectrestoftext{%
\ifx\bgroup\pgf@lib@dec@text@lettoken%
\let\pgf@next\pgf@lib@dec@text@@@collectrestoftextgrp%
\else%
\let\pgf@next\pgf@lib@dec@text@@@collectrestoftext%
\fi%
\pgf@next}%
\def\pgf@lib@dec@text@@@collectrestoftextgrp#1#2\pgf@stop{\def\pgfdecorationrestoftext{{#1}#2}%
}%
\def\pgf@lib@dec@text@@@collectrestoftext#1\pgf@stop{\def\pgfdecorationrestoftext{#1}}%
{%
\catcode`\$3 %
\gdef\pgf@lib@dec@mathshift{$}%
\catcode`\$9 $%
}%
\def\pgf@lib@dec@text@dobox{%
\setbox\pgf@lib@dec@text@box\hbox{%
\pgfinterruptpicture%
\begingroup%
\pgfsetcolor{\pgf@lib@decorationtextcolor}%
\ifpgf@lib@decorate@textmathmode\pgf@lib@dec@mathshift\fi%
\pgf@lib@dec@text@format\relax%
\pgf@lib@dec@text@char%
\ifpgf@lib@decorate@textmathmode\pgf@lib@dec@mathshift\fi%
\endgroup%
\endpgfinterruptpicture%
}%
}%
\def\pgf@lib@dec@text@getwidth{%
\begingroup%
\let\c@pgf@lib@dec@characters=\c@pgf@counta%
\let\c@pgf@lib@dec@spaces=\c@pgf@countb%
\let\pgfdecorationrestoftext=\pgfdecorationtext%
\c@pgf@lib@dec@spaces=0\relax%
\c@pgf@lib@dec@characters=0\relax%
\pgfmathloop%
\pgf@lib@dec@text@scanchar%
\ifvoid\pgf@lib@dec@text@box%
\else%
\setbox\pgf@hbox=\hbox{{%
\unhbox\pgf@hbox%
\unhbox\pgf@lib@dec@text@box%
}}%
\advance\c@pgf@lib@dec@characters by1\relax%
\ifpgf@lib@dec@text@scan@space%
\advance\c@pgf@lib@dec@spaces by1\relax%
\fi%
\repeatpgfmathloop%
\global\pgf@x=\the\wd\pgf@hbox%
\xdef\pgf@lib@dec@temp{\the\c@pgf@lib@dec@characters}%
\xdef\pgf@lib@dec@@temp{\the\c@pgf@lib@dec@spaces}%
\endgroup%
\edef\pgf@lib@dec@text@width{\the\pgf@x}%
\let\pgf@lib@dec@character@count=\pgf@lib@dec@temp%
\let\pgf@lib@dec@space@count=\pgf@lib@dec@@temp%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.text.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/luamath/pgflibraryluamath.code.tex ====
\edef\pgfliblua@oldcatcodedoublequote{\the\catcode`\"}%
\catcode`\"=12
\let\pgfutil@ifluatex\iffalse
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname directlua\endcsname\relax
\else
\expandafter\let\csname pgfutil@ifluatex\expandafter\endcsname
\csname iftrue\endcsname
\fi
\pgfutil@ifluatex
\let\pgfutil@directlua\directlua
\pgfutil@directlua{%
tex.enableprimitives('pgfutil@',{'luaescapestring'})}%
\else
\def\pgfutil@directlua#1{}%
\def\pgfutil@luaescapestring#1{}%
\fi
\pgfutil@directlua{%
pgfluamathfunctions = require("pgf.luamath.functions")
pgfluamathparser = require("pgf.luamath.parser")}%
\pgfkeys{
/pgf/trig format/deg/.add code={}{\directlua{pgfluamathfunctions.setTrigFormat("deg")}\aftergroup\pgfmath@settrigformat},
/pgf/trig format/rad/.add code={}{\directlua{pgfluamathfunctions.setTrigFormat("rad")}\aftergroup\pgfmath@settrigformat},
}%
\pgfmathiftrigonometricusesdeg{%
\pgfkeys{/pgf/trig format/deg}%
}{%
\pgfkeys{/pgf/trig format/rad}%
}%
\def\pgfmath@settrigformat{%
\pgfmathiftrigonometricusesdeg{%
\directlua{pgfluamathfunctions.setTrigFormat("deg")}%
}{%
\directlua{pgfluamathfunctions.setTrigFormat("rad")}%
}%
}%
\let\pgfmathsetseed@pgfbasic = \pgfmathsetseed
\def\pgfmathsetseed#1{%
\pgfmathsetseed@pgfbasic{#1}%
\directlua{pgfluamathfunctions.setRandomSeed(pgfluamathfunctions.tonumber("\pgfmathresult"))}%
}%
\let\pgfmathnotifynewdeclarefunction@orig=\pgfmathnotifynewdeclarefunction
\def\pgfmathnotifynewdeclarefunction#1#2#3{%
\pgfmathnotifynewdeclarefunction@orig{#1}{#2}{#3}%
\begingroup
\toks0={#3}%
\xdef\pgf@marshal@glob{\the\toks0 }%
\endgroup
\pgfutil@command@to@string\pgf@marshal@glob\pgf@marshal
\expandafter\pgfutilifcontainsmacro\expandafter{\pgf@marshal}{%
\def\pgf@temp{1}%
}{%
\def\pgf@temp{0}%
}%
\if1\pgf@temp
\directlua{pgfluamathparser.pushLocalExpressionFunction(%
"\pgfutil@luaescapestring{#1}",%
#2,%
"functionMustBeEvaluatedInTeX")}%
\else
\directlua{pgfluamathparser.pushLocalExpressionFunction(%
"\pgfutil@luaescapestring{#1}",%
#2,%
"\pgfutil@luaescapestring{#3}")}%
\fi
\aftergroup\pgfluamathparse@pop@local@function
}%
\def\pgfluamathparse@pop@local@function{%
\directlua{pgfluamathparser.popLocalExpressionFunction()}%
}%
\newif\ifpgfluamathshowerrormessage
\newif\ifpgfluamathenableTeXfallback
\newif\ifpgfluamathcomputationactive
\newif\ifpgfluamathparseractive
\def\pgfluamath@makecomputationactive{%
\ifpgfluamathcomputationactive
\else
\pgfluamath@checkuninstallcmd%
\pgfluamath@install%
\pgfluamathcomputationactivetrue
\fi}%
\def\pgfluamath@makecomputationinactive{%
\ifpgfluamathcomputationactive
\pgfluamath@uninstall%
\pgfluamathcomputationactivefalse
\fi}%
\let\pgfluamath@pgfmathparse\pgfmathparse
\def\pgfluamath@makeparseractive{%
\ifpgfluamathparseractive
\else
\let\pgfluamath@pgfmathparse\pgfmathparse
\let\pgfmathparse\pgfluamathparse
\let\pgfmath@iftrue=\pgfmathluamath@iftrue
\pgfluamathparseractivetrue
\fi}%
\let\pgfmath@iftrue@basic=\pgfmath@iftrue
\def\pgfluamath@makeparserinactive{%
\ifpgfluamathparseractive
\let\pgfmathparse\pgfluamath@pgfmathparse
\let\pgfmath@iftrue=\pgfmath@iftrue@basic
\pgfluamathparseractivefalse
\fi}%
\pgfqkeys{/pgf}{%
luamath/.is choice,
luamath/only computation/.code={%
\pgfutil@ifluatex
\pgfluamath@makecomputationactive
\pgfluamath@makeparserinactive
\else
\pgfmath@error{Sorry, you need the luaTeX engine to use the
luamath library}{}%
\fi},
luamath/parser and computation/.code={%
\pgfutil@ifluatex
\pgfluamath@makecomputationactive
\pgfluamath@makeparseractive
\else
\pgfmath@error{Sorry, you need the luaTeX engine to use the
luamath library}{}%
\fi},
luamath/off/.code={%
\pgfluamath@makecomputationinactive
\pgfluamath@makeparserinactive},
luamath/.default=only computation,
luamath/parser/.code={%
\pgfutil@ifluatex
\pgfluamath@makeparseractive
\else
\pgfmath@error{Sorry, you need the luaTeX engine to use the
luamath library}{}%
\fi
},
luamath/output format/.is choice,
luamath/output format/fixed/.code= {\def\pgfluamath@outputformat@choice{0}},
luamath/output format/float/.code= {\def\pgfluamath@outputformat@choice{1}},
luamath/output format/fixed,
luamath/show error message/.is if=pgfluamathshowerrormessage,
luamath/enable TeX fallback/.is choice,
luamath/enable TeX fallback/true/.code={\pgfluamathenableTeXfallbacktrue\pgfluamathshowerrormessagefalse},
luamath/enable TeX fallback/false/.code={\pgfluamathenableTeXfallbackfalse\pgfluamathshowerrormessagetrue},
luamath/enable TeX fallback/.default=true,
luamath/enable TeX fallback=true,
}%
\def\pgfluamath@uninstall@appendcmd#1{%
\expandafter\gdef\expandafter\pgfluamath@uninstall\expandafter{%
\pgfluamath@uninstall #1}}%
\def\pgfluamath@checkuninstallcmd{%
\pgfutil@ifundefined{pgfluamath@uninstall}{%
\global\let\pgfluamath@uninstall=\pgfutil@empty
}{%
\def\pgfluamath@uninstall@appendcmd##1{}%
\def\pgfluamath@prepareuninstallcmd##1{}%
}%
}%
\def\pgfluamath@prepareuninstallcmd#1{%
\expandafter\global\expandafter\let
\csname pgfluamath@backup@\string#1\endcsname=#1%
\expandafter\gdef\expandafter\pgfluamath@uninstall\expandafter{%
\pgfluamath@uninstall
\expandafter\let\expandafter#1\csname pgfluamath@backup@\string#1\endcsname}%
}%
\def\pgfluamath@install@function#1=#2{%
\pgfluamath@prepareuninstallcmd{#1}%
\let#1=#2%
}%
\def\pgfluamath@install{%
\pgfluamath@install@function\pgfmathadd@=\pgfluamathadd@%
\pgfluamath@install@function\pgfmathsubtract@=\pgfluamathsubtract@%
\pgfluamath@install@function\pgfmathneg@=\pgfluamathneg@%
\pgfluamath@install@function\pgfmathmultiply@=\pgfluamathmultiply@%
\pgfluamath@install@function\pgfmath@iftrue=\pgfmathluamath@iftrue%
\pgfluamath@install@function\pgfmathdivide@=\pgfluamathdivide@%
\pgfluamath@install@function\pgfmathfactorial@=\pgfluamathfactorial@%
\pgfluamath@install@function\pgfmathsqrt@=\pgfluamathsqrt@%
\pgfluamath@install@function\pgfmathe@=\pgfluamathe@%
\pgfluamath@install@function\pgfmathexp@=\pgfluamathexp@%
\pgfluamath@install@function\pgfmathln@=\pgfluamathln@%
\pgfluamath@install@function\pgfmathlogten@=\pgfluamathlogten@%
\pgfluamath@install@function\pgfmathabs@=\pgfluamathabs@%
\pgfluamath@install@function\pgfmathmod@=\pgfluamathmod@%
\pgfluamath@install@function\pgfmathMod@=\pgfluamathMod@%
\pgfluamath@install@function\pgfmathround@=\pgfluamathround@%
\pgfluamath@install@function\pgfmathfloor@=\pgfluamathfloor@%
\pgfluamath@install@function\pgfmathceil@=\pgfluamathceil@%
\pgfluamath@install@function\pgfmathgcd@=\pgfluamathgcd@%
\pgfluamath@install@function\pgfmathisprime@=\pgfluamathisprime@%
\pgfluamath@install@function\pgfmathpi@=\pgfluamathpi@%
\pgfluamath@install@function\pgfmathrad@=\pgfluamathrad@%
\pgfluamath@install@function\pgfmathdeg@=\pgfluamathdeg@%
\pgfluamath@install@function\pgfmathsin@=\pgfluamathsin@%
\pgfluamath@install@function\pgfmathcos@=\pgfluamathcos@%
\pgfluamath@install@function\pgfmathtan@=\pgfluamathtan@%
\pgfluamath@install@function\pgfmathsec@=\pgfluamathsec@%
\pgfluamath@install@function\pgfmathcosec@=\pgfluamathcosec@%
\pgfluamath@install@function\pgfmathcot@=\pgfluamathcot@%
\pgfluamath@install@function\pgfmathasin@=\pgfluamathasin@%
\pgfluamath@install@function\pgfmathacos@=\pgfluamathacos@%
\pgfluamath@install@function\pgfmathatan@=\pgfluamathatan@%
\pgfluamath@install@function\pgfmathatantwo@=\pgfluamathatantwo@%
\pgfluamath@install@function\pgfmathmax@=\pgfluamathmax@%
\pgfluamath@install@function\pgfmathmin@=\pgfluamathmin@%
\pgfluamath@install@function\pgfmathrand@=\pgfluamathrand@
\pgfluamath@install@function\pgfmathrand=\pgfluamathrand@
\pgfluamath@install@function\pgfmathrnd@=\pgfluamathrnd@
\pgfluamath@install@function\pgfmathrnd=\pgfluamathrnd@
\pgfluamath@install@function\pgfmathreciprocal=\pgfluamathreciprocal%
\pgfluamath@install@function\pgfpointnormalised=\pgfluamathpointnormalised
}%
\def\pgfluamathgetresult#1{%
\edef\pgfmathresult{\pgfutil@directlua{tex.print(-1,#1)}}}%
\def\pgfmathluamath@iftrue{%
\if 0\pgfluamath@outputformat@choice
\let\pgfmathluamath@@iftrue@v=\pgfluamathone
\else
\let\pgfmathluamath@@iftrue@v=\pgfluamathfloatone
\fi
\pgfmathluamath@iftrue@
}%
\def\pgfluamathone{1.0}%
\def\pgfluamathfloatone{1Y1.0e+00]}%
\def\pgfmathluamath@iftrue@#1#2{%
\ifx\pgfmathresult\pgfmathluamath@@iftrue@v
\def\pgfmath@next{#1}%
\else
\def\pgfmath@next{#2}%
\fi
\pgfmath@next
}%
\def\pgfluamathpi@{%
\pgfluamathgetresult{pgfluamathfunctions.pi()}}%
\def\pgfluamathe@{%
\pgfluamathgetresult{pgfluamathfunctions.e()}}%
\def\pgfluamathadd@#1#2{%
\pgfluamathgetresult{pgfluamathfunctions.add(#1,#2)}}%
\def\pgfluamathsubtract@#1#2{%
\pgfluamathgetresult{pgfluamathfunctions.subtract(#1,#2)}}%
\def\pgfluamathneg@#1{%
\pgfluamathgetresult{pgfluamathfunctions.neg(#1)}}%
\def\pgfluamathmultiply@#1#2{%
\pgfluamathgetresult{pgfluamathfunctions.multiply(#1,#2)}}%
\def\pgfluamathdivide@#1#2{%
\pgfluamathgetresult{pgfluamathfunctions.divide(#1,#2)}}%
\def\pgfluamathabs@#1{%
\pgfluamathgetresult{pgfluamathfunctions.abs(#1)}}%
\def\pgfluamathround@#1{%
\pgfluamathgetresult{pgfluamathfunctions.round(#1)}}%
\def\pgfluamathfloor@#1{%
\pgfluamathgetresult{pgfluamathfunctions.floor(#1)}}%
\def\pgfluamathceil@#1{%
\pgfluamathgetresult{pgfluamathfunctions.ceil(#1)}}%
\def\pgfluamathgcd@#1#2{%
\pgfluamathgetresult{pgfluamathfunctions.gcd(#1,#2)}}%
\def\pgfluamathisprime@#1{%
\pgfluamathgetresult{pgfluamathfunctions.isprime(#1)}}%
\def\pgfluamathmax@#1{%
\pgfluamathgetresult{%
math.max(pgfluamathfunctions.split_braces_to_explist("#1"))}}%
\def\pgfluamathmin@#1{%
\pgfluamathgetresult{%
math.min(pgfluamathfunctions.split_braces_to_explist("#1"))}}%
\def\pgfluamathsin@#1{%
\pgfluamathgetresult{pgfluamathfunctions.Sin(#1)}}%
\def\pgfluamathcos@#1{%
\pgfluamathgetresult{pgfluamathfunctions.Cos(#1)}}%
\def\pgfluamathtan@#1{%
\pgfluamathgetresult{pgfluamathfunctions.Tan(#1)}}%
\def\pgfluamathmod@#1#2{%
\pgfluamathgetresult{pgfluamathfunctions.mod(#1,#2)}}%
\def\pgfluamathMod@#1#2{%
\pgfluamathgetresult{pgfluamathfunctions.Mod(#1,#2)}}%
\def\pgfluamathrad@#1{%
\pgfluamathgetresult{pgfluamathfunctions.rad(#1)}}%
\def\pgfluamathdeg@#1{%
\pgfluamathgetresult{pgfluamathfunctions.deg(#1)}}%
\def\pgfluamathatan@#1{%
\pgfluamathgetresult{pgfluamathfunctions.aTan(#1)}}%
\def\pgfluamathatantwo@#1#2{%
\pgfluamathgetresult{pgfluamathfunctions.aTan2(#1,#2)}}%
\def\pgfluamathasin@#1{%
\pgfluamathgetresult{pgfluamathfunctions.aSin(#1)}}%
\def\pgfluamathacos@#1{%
\pgfluamathgetresult{pgfluamathfunctions.aCos(#1)}}%
\def\pgfluamathcot@#1{%
\pgfluamathgetresult{1/pgfluamathfunctions.Tan(#1)}}%
\def\pgfluamathsec@#1{%
\pgfluamathgetresult{1/pgfluamathfunctions.Cos(#1)}}%
\def\pgfluamathcosec@#1{%
\pgfluamathgetresult{1/pgfluamathfunctions.Sin(#1)}}%
\def\pgfluamathexp@#1{%
\pgfluamathgetresult{pgfluamathfunctions.exp(#1)}}%
\def\pgfluamathln@#1{%
\pgfluamathgetresult{pgfluamathfunctions.log(#1)}}%
\def\pgfluamathlogten@#1{%
\pgfluamathgetresult{pgfluamathfunctions.log10(#1)}}%
\def\pgfluamathsqrt@#1{%
\pgfluamathgetresult{pgfluamathfunctions.sqrt(#1)}}%
\def\pgfluamathrnd@{%
\pgfluamathgetresult{pgfluamathfunctions.rnd()}}%
\def\pgfluamathrand@{%
\pgfluamathgetresult{pgfluamathfunctions.rand(-1,1)}}%
\def\pgfluamathfactorial@#1{%
\pgfluamathgetresult{pgfluamathfunctions.factorial(#1)}}%
\def\pgfluamathreciprocal#1{%
\pgfluamathgetresult{1/#1}}%
\def\pgfluamathpointnormalised#1{%
\pgf@process{#1}%
\pgfutil@directlua{%
pgfluamathfunctions.pointnormalised(%
\pgf@sys@tonumber{\pgf@x},\pgf@sys@tonumber{\pgf@y})}%
\ignorespaces}%
\newif\ifpgfluamathunitsdeclared
\newif\ifpgfluamathusedTeXfallback
\def\pgfluamathparse#1{%
\pgfluamathusedTeXfallbackfalse
\pgfutil@directlua{pgfluamathparser.texCallParser(
"\pgfutil@luaescapestring{#1}",
\pgfluamath@outputformat@choice,
\ifpgfluamathshowerrormessage true\else false\fi)%
}%
\ifx\pgfmathresult\pgfutil@empty
\ifpgfluamathenableTeXfallback
\pgfluamathusedTeXfallbacktrue
\pgfluamath@pgfmathparse{#1}%
\fi
\fi
}%
\catcode`\"=\pgfliblua@oldcatcodedoublequote
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/luamath/pgflibraryluamath.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryarrows.code.tex ====
\ProvidesFileRCS{pgflibraryarrows.code.tex}
\pgfarrowsdeclare{square bracket}{square bracket}
{
\pgfutil@tempdima=1pt%
\advance\pgfutil@tempdima by1.25\pgflinewidth%
\pgfarrowsleftextend{+-\pgfutil@tempdima}
\pgfarrowsrightextend{+.5\pgflinewidth}
}
{
\pgfutil@tempdima=2pt%
\advance\pgfutil@tempdima by1.5\pgflinewidth%
\pgfutil@tempdimb=\pgfutil@tempdima%
\advance\pgfutil@tempdimb by\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetmiterjoin
\pgfsetbuttcap
\pgfpathmoveto{\pgfqpoint{-.5\pgfutil@tempdimb}{-1\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0pt}{-1\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0pt}{\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{-.5\pgfutil@tempdimb}{\pgfutil@tempdima}}
\pgfusepathqstroke
}%
\pgfdeclarearrow{name=[-], means=square bracket}%
\pgfarrowsdeclarereversed{]}{[}{[}{]}%
\pgfarrowsdeclare{(}{)}
{
\pgfutil@tempdima=2pt%
\advance\pgfutil@tempdima by1.5\pgflinewidth%
\pgfutil@tempdimb=0.0625\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
\pgfutil@tempdimb=0.5\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth%
\pgfarrowsleftextend{+-\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=2pt%
\advance\pgfutil@tempdima by1.5\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfpathmoveto{\pgfqpoint{-.5\pgfutil@tempdima}{-1\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{.25\pgfutil@tempdima}{-.5\pgfutil@tempdima}}
{\pgfqpoint{.25\pgfutil@tempdima}{.5\pgfutil@tempdima}}
{\pgfqpoint{-.5\pgfutil@tempdima}{\pgfutil@tempdima}}
\pgfusepathqstroke
}%
\pgfarrowsdeclarereversed{)}{(}{(}{)}%
\pgfarrowsdeclare{angle 90}{angle 90}
{
\pgfutil@tempdima=0.3pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfutil@tempdimb=5.5\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth%
\pgfarrowsleftextend{+-\pgfutil@tempdimb}
\pgfutil@tempdimb=.5\pgfutil@tempdima\advance\pgfutil@tempdimb by0.707\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.3pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfsetmiterjoin
\pgfpathmoveto{\pgfqpoint{-5.5\pgfutil@tempdima}{-6\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{-5.5\pgfutil@tempdima}{6\pgfutil@tempdima}}
\pgfusepathqstroke
}%
\pgfarrowsdeclarereversed{angle 90 reversed}{angle 90 reversed}{angle 90}{angle 90}%
\pgfarrowsdeclare{angle 60}{angle 60}
{
\pgfutil@tempdima=0.3pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfutil@tempdimb=7.29\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth%
\pgfarrowsleftextend{+-\pgfutil@tempdimb}
\pgfutil@tempdimb=.5\pgfutil@tempdima\advance\pgfutil@tempdimb by\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.3pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfsetmiterjoin
\pgfpathmoveto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{150}{9\pgfutil@tempdima}}}
\pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}
\pgfpathlineto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{-150}{9\pgfutil@tempdima}}}
\pgfusepathqstroke
}%
\pgfarrowsdeclarereversed{angle 60 reversed}{angle 60 reversed}{angle 60}{angle 60}%
\pgfarrowsdeclare{angle 45}{angle 45}
{
\pgfutil@tempdima=0.3pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfutil@tempdimb=8.705\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth%
\pgfarrowsleftextend{+-\pgfutil@tempdimb}
\pgfutil@tempdimb=.5\pgfutil@tempdima\advance\pgfutil@tempdimb by1.28\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.3pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfsetmiterjoin
\pgfpathmoveto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{157}{10\pgfutil@tempdima}}}
\pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{-157}{10\pgfutil@tempdima}}}
\pgfusepathqstroke
}%
\pgfarrowsdeclarereversed{angle 45 reversed}{angle 45 reversed}{angle 45}{angle 45}%
\pgfarrowsdeclare{*}{*}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.2\pgflinewidth%
\pgfutil@tempdimb=7.5\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth
\pgfarrowsleftextend{+-\pgfutil@tempdimb}
\pgfutil@tempdimb=1.5\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.2\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfpathcircle{\pgfqpoint{-3\pgfutil@tempdima}{0pt}}{+4.5\pgfutil@tempdima}
\pgfusepathqfillstroke
}%
\pgfarrowsdeclare{o}{o}
{
\pgfarrowsleftextend{+-.5\pgflinewidth}
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.2\pgflinewidth%
\pgfutil@tempdimb=9\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.2\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfpathcircle{\pgfqpoint{4.5\pgfutil@tempdima}{0bp}}{4.5\pgfutil@tempdima}
\pgfusepathqstroke
}%
\pgfarrowsdeclare{diamond}{diamond}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.275\pgflinewidth%
\pgfutil@tempdimb=13\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth
\pgfarrowsleftextend{+-\pgfutil@tempdimb}
\pgfutil@tempdimb=1\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.275\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundjoin
\pgfpathmoveto{\pgfqpoint{1\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{-6\pgfutil@tempdima}{4\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{-13\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{-6\pgfutil@tempdima}{-4\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqfillstroke
}%
\pgfarrowsdeclare{open diamond}{open diamond}%
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.275\pgflinewidth%
\pgfarrowsleftextend{+-.5\pgflinewidth}
\pgfutil@tempdimb=14\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.275\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundjoin
\pgfpathmoveto{\pgfqpoint{14\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{7\pgfutil@tempdima}{4\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{7\pgfutil@tempdima}{-4\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqstroke
}%
\newdimen\arrowsize
\pgfarrowsdeclare{square}{square}
{
\arrowsize=0.4pt
\advance\arrowsize by.275\pgflinewidth%
\pgfarrowsleftextend{-7\arrowsize-.5\pgflinewidth}
\advance\arrowsize by.5\pgflinewidth
\pgfarrowsrightextend{+\arrowsize}
}
{
\arrowsize=0.4pt
\advance\arrowsize by.275\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundjoin
\pgfpathmoveto{\pgfqpoint{1\arrowsize}{4\arrowsize}}
\pgfpathlineto{\pgfqpoint{-7\arrowsize}{4\arrowsize}}
\pgfpathlineto{\pgfqpoint{-7\arrowsize}{-4\arrowsize}}
\pgfpathlineto{\pgfqpoint{1\arrowsize}{-4\arrowsize}}
\pgfpathclose
\pgfusepathqfillstroke
}%
\pgfarrowsdeclare{open square}{open square}%
{
\arrowsize=0.4pt
\advance\arrowsize by.275\pgflinewidth%
\pgfarrowsleftextend{+-.5\pgflinewidth}
\advance\arrowsize by7\arrowsize
\advance\arrowsize by.5\pgflinewidth
\pgfarrowsrightextend{+\arrowsize}
}
{
\arrowsize=0.4pt
\advance\arrowsize by.275\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundjoin
\pgfpathmoveto{\pgfqpoint{8\arrowsize}{4\arrowsize}}
\pgfpathlineto{\pgfqpoint{0\arrowsize}{4\arrowsize}}
\pgfpathlineto{\pgfqpoint{0\arrowsize}{-4\arrowsize}}
\pgfpathlineto{\pgfqpoint{8\arrowsize}{-4\arrowsize}}
\pgfpathclose
\pgfusepathqstroke
}%
\pgfarrowsdeclare{triangle 90}{triangle 90}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfutil@tempdimb=5.5\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth%
\pgfarrowsleftextend{+-\pgfutil@tempdimb}
\pgfutil@tempdimb=.5\pgfutil@tempdima\advance\pgfutil@tempdimb by0.707\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetmiterjoin
\pgfpathmoveto{\pgfqpoint{-5.5\pgfutil@tempdima}{-6\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{-5.5\pgfutil@tempdima}{6\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqfillstroke
}%
\pgfarrowsdeclarereversed{triangle 90 reversed}{triangle 90 reversed}{triangle 90}{triangle 90}%
\pgfarrowsdeclare{triangle 60}{triangle 60}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfutil@tempdimb=7.29\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth%
\pgfarrowsleftextend{+-\pgfutil@tempdimb}
\pgfutil@tempdimb=.5\pgfutil@tempdima\advance\pgfutil@tempdimb by\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetmiterjoin
\pgfpathmoveto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{150}{9\pgfutil@tempdima}}}
\pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{-150}{9\pgfutil@tempdima}}}
\pgfpathclose
\pgfusepathqfillstroke
}%
\pgfarrowsdeclarereversed{triangle 60 reversed}{triangle 60 reversed}{triangle 60}{triangle 60}%
\pgfarrowsdeclare{triangle 45}{triangle 45}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfutil@tempdimb=8.705\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth%
\pgfarrowsleftextend{+-\pgfutil@tempdimb}
\pgfutil@tempdimb=.5\pgfutil@tempdima\advance\pgfutil@tempdimb by1.28\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetmiterjoin
\pgfpathmoveto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{157}{10\pgfutil@tempdima}}}
\pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{-157}{10\pgfutil@tempdima}}}
\pgfpathclose
\pgfusepathqfillstroke
}%
\pgfarrowsdeclarereversed{triangle 45 reversed}{triangle 45 reversed}{triangle 45}{triangle 45}%
\pgfarrowsdeclare{open triangle 90}{open triangle 90}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfarrowsleftextend{+-.5\pgflinewidth}
\pgfutil@tempdimb=6\pgfutil@tempdima\advance\pgfutil@tempdimb by0.707\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetmiterjoin
\pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{-6\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{6\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0\pgfutil@tempdima}{6\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqstroke
}%
\pgfarrowsdeclare{open triangle 90 reversed}{open triangle 90 reversed}%
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfarrowsleftextend{+-.707\pgflinewidth}
\pgfutil@tempdimb=6\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetmiterjoin
\pgfpathmoveto{\pgfqpoint{6\pgfutil@tempdima}{-6\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{6\pgfutil@tempdima}{6\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqstroke
}%
\pgfarrowsdeclare{open triangle 60}{open triangle 60}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfarrowsleftextend{+-.5\pgflinewidth}
\pgfutil@tempdimb=7.794\pgfutil@tempdima\advance\pgfutil@tempdimb by\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetmiterjoin
\pgfpathmoveto{\pgfpointadd{\pgfqpoint{7.794\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{150}{9\pgfutil@tempdima}}}
\pgfpathlineto{\pgfqpoint{7.794\pgfutil@tempdima}{0pt}}
\pgfpathlineto{\pgfpointadd{\pgfqpoint{7.794\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{-150}{9\pgfutil@tempdima}}}
\pgfpathclose
\pgfusepathqstroke
}%
\pgfarrowsdeclare{open triangle 60 reversed}{open triangle 60 reversed}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfarrowsleftextend{+-\pgflinewidth}
\pgfutil@tempdimb=7.794\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetmiterjoin
\pgfpathmoveto{\pgfqpointpolar{30}{9\pgfutil@tempdima}}
\pgfpathlineto{\pgfpointorigin}
\pgfpathlineto{\pgfqpointpolar{-30}{9\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqstroke
}%
\pgfarrowsdeclare{open triangle 45}{open triangle 45}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfarrowsleftextend{+-.5\pgflinewidth}
\pgfutil@tempdimb=9.205\pgfutil@tempdima\advance\pgfutil@tempdimb by1.28\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetmiterjoin
\pgfpathmoveto{\pgfpointadd{\pgfqpoint{9.205\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{157}{10\pgfutil@tempdima}}}
\pgfpathlineto{\pgfqpoint{9.205\pgfutil@tempdima}{0pt}}
\pgfpathlineto{\pgfpointadd{\pgfqpoint{9.205\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{-157}{10\pgfutil@tempdima}}}
\pgfpathclose
\pgfusepathqstroke
}%
\pgfarrowsdeclare{open triangle 45 reversed}{open triangle 45 reversed}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfarrowsleftextend{+-1.28\pgflinewidth}
\pgfutil@tempdimb=9.205\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.5pt%
\advance\pgfutil@tempdima by.25\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetmiterjoin
\pgfpathmoveto{\pgfqpointpolar{23}{10\pgfutil@tempdima}}
\pgfpathlineto{\pgfpointorigin}
\pgfpathlineto{\pgfqpointpolar{-23}{10\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqstroke
}%
\pgfarrowsdeclare{latex'}{latex'}
{
\pgfutil@tempdima=0.28pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfarrowsleftextend{+-4\pgfutil@tempdima}
\pgfarrowsrightextend{+6\pgfutil@tempdima}
}
{
\pgfutil@tempdima=0.28pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfpathmoveto{\pgfqpoint{6\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{3.5\pgfutil@tempdima}{.5\pgfutil@tempdima}}
{\pgfqpoint{-1\pgfutil@tempdima}{1.5\pgfutil@tempdima}}
{\pgfqpoint{-4\pgfutil@tempdima}{3.75\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{-1.5\pgfutil@tempdima}{1\pgfutil@tempdima}}
{\pgfqpoint{-1.5\pgfutil@tempdima}{-1\pgfutil@tempdima}}
{\pgfqpoint{-4\pgfutil@tempdima}{-3.75\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{-1\pgfutil@tempdima}{-1.5\pgfutil@tempdima}}
{\pgfqpoint{3.5\pgfutil@tempdima}{-.5\pgfutil@tempdima}}
{\pgfqpoint{6\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqfill
}%
\pgfarrowsdeclarereversed{latex' reversed}{latex' reversed}{latex'}{latex'}%
\pgfarrowsdeclare{stealth'}{stealth'}
{
\pgfutil@tempdima=0.28pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfutil@tempdimb=6\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth%
\pgfarrowsleftextend{+-\pgfutil@tempdimb}
\pgfutil@tempdimb=2\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.28pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundjoin
\pgfpathmoveto{\pgfqpoint{2\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{-.5\pgfutil@tempdima}{.5\pgfutil@tempdima}}
{\pgfqpoint{-3\pgfutil@tempdima}{1.5\pgfutil@tempdima}}
{\pgfqpoint{-6\pgfutil@tempdima}{3.25\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{-3\pgfutil@tempdima}{1\pgfutil@tempdima}}
{\pgfqpoint{-3\pgfutil@tempdima}{-1\pgfutil@tempdima}}
{\pgfqpoint{-6\pgfutil@tempdima}{-3.25\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{-3\pgfutil@tempdima}{-1.5\pgfutil@tempdima}}
{\pgfqpoint{-.5\pgfutil@tempdima}{-.5\pgfutil@tempdima}}
{\pgfqpoint{2\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqfillstroke
}%
\pgfarrowsdeclarereversed{stealth' reversed}{stealth' reversed}{stealth'}{stealth'}%
\pgfarrowsdeclare{left to}{left to}
{
\pgfutil@tempdima=-0.84pt%
\advance\pgfutil@tempdima by-1.3\pgflinewidth%
\pgfutil@tempdimb=0.21pt%
\advance\pgfutil@tempdimb by.625\pgflinewidth%
\pgfarrowsleftextend{+\pgfutil@tempdima}
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.28pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfsetlinewidth{0.8\pgflinewidth}
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfsetroundjoin
\pgfpathmoveto{\pgfqpoint{-3\pgfutil@tempdima}{4\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{-2.75\pgfutil@tempdima}{2.5\pgfutil@tempdima}}
{\pgfqpoint{0pt}{0.25\pgfutil@tempdima}}
{\pgfqpoint{0.75\pgfutil@tempdima}{0pt}}
\pgfpathcurveto
{\pgfqpoint{0.55\pgfutil@tempdima}{-0.125\pgflinewidth}}
{\pgfqpoint{0.5\pgfutil@tempdima}{-0.125\pgflinewidth}}
{\pgfqpoint{0.5\pgfutil@tempdima}{-0.125\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{0pt}{-0.125\pgflinewidth}}
\pgfusepathqstroke
}%
\pgfarrowsdeclare{right to}{right to}
{
\pgfutil@tempdima=-0.84pt%
\advance\pgfutil@tempdima by-1.3\pgflinewidth%
\pgfutil@tempdimb=0.21pt%
\advance\pgfutil@tempdimb by.625\pgflinewidth%
\pgfarrowsleftextend{+\pgfutil@tempdima}
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.28pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfsetlinewidth{0.8\pgflinewidth}
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfsetroundjoin
\pgfpathmoveto{\pgfqpoint{-3\pgfutil@tempdima}{-4\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{-2.75\pgfutil@tempdima}{-2.5\pgfutil@tempdima}}
{\pgfqpoint{0pt}{-0.25\pgfutil@tempdima}}
{\pgfqpoint{0.75\pgfutil@tempdima}{0pt}}
\pgfpathcurveto
{\pgfqpoint{0.55\pgfutil@tempdima}{0.125\pgflinewidth}}
{\pgfqpoint{0.5\pgfutil@tempdima}{0.125\pgflinewidth}}
{\pgfqpoint{0.5\pgfutil@tempdima}{0.125\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{0pt}{0.125\pgflinewidth}}
\pgfusepathqstroke
}%
\pgfarrowsdeclare{left to reversed}{left to reversed}
{
\pgfutil@tempdima=0.28pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfarrowsleftextend{+-.1\pgflinewidth}
\pgfutil@tempdimb=3.75\pgfutil@tempdima\advance\pgfutil@tempdimb by0.9\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.28pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundjoin
\pgfsetbuttcap
\pgfpathmoveto{\pgfqpoint{0.5\pgflinewidth}{0pt}}
\pgfpathlineto{\pgfqpoint{-0.1\pgflinewidth}{0pt}}
\pgfusepathqstroke
\pgfsetroundcap
\pgfsetlinewidth{.8\pgflinewidth}
{\pgftransformxshift{0.625\pgflinewidth}
\pgfpathmoveto{\pgfqpoint{3.75\pgfutil@tempdima}{4\pgfutil@tempdima}}
\pgfpathcurveto{\pgfqpoint{3.5\pgfutil@tempdima}{2.5\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{0.25\pgfutil@tempdima}}{\pgfqpoint{0pt}{0.125\pgflinewidth}}
\pgfpathmoveto{\pgfqpoint{3.75\pgfutil@tempdima}{4\pgfutil@tempdima}}
\pgfpathcurveto{\pgfqpoint{3.5\pgfutil@tempdima}{2.5\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{0.25\pgfutil@tempdima}}{\pgfqpoint{0pt}{-0.125\pgflinewidth}}
}
\pgfusepathqstroke%
}%
\pgfarrowsdeclare{right to reversed}{right to reversed}
{
\pgfutil@tempdima=0.28pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfarrowsleftextend{+-.1\pgflinewidth}
\pgfutil@tempdimb=3.75\pgfutil@tempdima\advance\pgfutil@tempdimb by0.9\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.28pt%
\advance\pgfutil@tempdima by.3\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundjoin
\pgfsetbuttcap
\pgfpathmoveto{\pgfqpoint{0.5\pgflinewidth}{0pt}}
\pgfpathlineto{\pgfqpoint{-0.1\pgflinewidth}{0pt}}
\pgfusepathqstroke
\pgfsetroundcap
\pgfsetlinewidth{.8\pgflinewidth}
{\pgftransformxshift{0.625\pgflinewidth}
\pgfpathmoveto{\pgfqpoint{3.75\pgfutil@tempdima}{-4\pgfutil@tempdima}}
\pgfpathcurveto{\pgfqpoint{3.5\pgfutil@tempdima}{-2.5\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{-0.25\pgfutil@tempdima}}{\pgfqpoint{0pt}{-0.125\pgflinewidth}}
\pgfpathmoveto{\pgfqpoint{3.75\pgfutil@tempdima}{-4\pgfutil@tempdima}}
\pgfpathcurveto{\pgfqpoint{3.5\pgfutil@tempdima}{-2.5\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{-0.25\pgfutil@tempdima}}{\pgfqpoint{0pt}{0.125\pgflinewidth}}
}
\pgfusepathqstroke%
}%
\pgfarrowsdeclare{left hook}{left hook}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.2\pgflinewidth%
\pgfarrowsleftextend{+-.5\pgflinewidth}
\pgfutil@tempdimb=3.75\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.2\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0.75\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathcurveto{\pgfqpoint{2.415\pgfutil@tempdima}{0\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{1.665\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{3\pgfutil@tempdima}}
\pgfpathcurveto{\pgfqpoint{3.75\pgfutil@tempdima}{4.665\pgfutil@tempdima}}{\pgfqpoint{2.415\pgfutil@tempdima}{6\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{6\pgfutil@tempdima}}
\pgfusepathqstroke%
}%
\pgfarrowsdeclarereversed{left hook reversed}{left hook reversed}{left hook}{left hook}%
\pgfarrowsdeclare{right hook}{right hook}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.2\pgflinewidth%
\pgfarrowsleftextend{+-.5\pgflinewidth}
\pgfutil@tempdimb=3.75\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.2\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0.75\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathcurveto{\pgfqpoint{2.415\pgfutil@tempdima}{0\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{-1.665\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{-3\pgfutil@tempdima}}
\pgfpathcurveto{\pgfqpoint{3.75\pgfutil@tempdima}{-4.665\pgfutil@tempdima}}{\pgfqpoint{2.415\pgfutil@tempdima}{-6\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{-6\pgfutil@tempdima}}
\pgfusepathqstroke%
}%
\pgfarrowsdeclarereversed{right hook reversed}{right hook reversed}{right hook}{right hook}%
\pgfarrowsdeclare{hooks}{hooks}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.2\pgflinewidth%
\pgfarrowsleftextend{+-.5\pgflinewidth}
\pgfutil@tempdimb=3.75\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth%
\pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.2\pgflinewidth%
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0.75\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathcurveto{\pgfqpoint{2.415\pgfutil@tempdima}{0\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{1.665\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{3\pgfutil@tempdima}}
\pgfpathcurveto{\pgfqpoint{3.75\pgfutil@tempdima}{4.665\pgfutil@tempdima}}{\pgfqpoint{2.415\pgfutil@tempdima}{6\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{6\pgfutil@tempdima}}
\pgfpathmoveto{\pgfqpoint{0.75\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathcurveto{\pgfqpoint{2.415\pgfutil@tempdima}{0\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{-1.665\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{-3\pgfutil@tempdima}}
\pgfpathcurveto{\pgfqpoint{3.75\pgfutil@tempdima}{-4.665\pgfutil@tempdima}}{\pgfqpoint{2.415\pgfutil@tempdima}{-6\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{-6\pgfutil@tempdima}}
\pgfusepathqstroke%
}%
\pgfarrowsdeclarereversed{hooks reversed}{hooks reversed}{hooks}{hooks}%
\pgfarrowsdeclare{serif cm}{serif cm}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.45\pgflinewidth%
\pgfarrowsleftextend{+-.75\pgfutil@tempdima}
\pgfarrowsrightextend{+.04\pgflinewidth}
}
{
\pgfutil@tempdima=0.4pt%
\advance\pgfutil@tempdima by.45\pgflinewidth%
\pgftransformxshift{.04\pgflinewidth}
\pgfpathmoveto{\pgfqpoint{-.75\pgfutil@tempdima}{.5\pgflinewidth}}
\pgfpathcurveto
{\pgfqpoint{-.375\pgfutil@tempdima}{.5\pgflinewidth}}
{\pgfqpoint{-.375\pgfutil@tempdima}{.7\pgflinewidth}}
{\pgfqpoint{-.375\pgfutil@tempdima}{1.95\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0pt}{1.95\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{-.04\pgflinewidth}{.5\pgfutil@tempdima}}
{\pgfqpoint{-.04\pgflinewidth}{-.5\pgfutil@tempdima}}
{\pgfqpoint{0pt}{-1.95\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{-.375\pgfutil@tempdima}{-1.95\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfqpoint{-.375\pgfutil@tempdima}{-.7\pgflinewidth}}
{\pgfqpoint{-.375\pgfutil@tempdima}{-.5\pgflinewidth}}
{\pgfqpoint{-.75\pgfutil@tempdima}{-.5\pgflinewidth}}
\pgfpathclose
\pgfusepathqfill
}%
\pgfarrowsdeclare{round cap}{round cap}
{\pgfarrowsleftextend{+0pt}\pgfarrowsrightextend{+\pgflinewidth}}
{
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfpathmoveto{\pgfpointorigin}
\pgfpathlineto{\pgfqpoint{0.5\pgflinewidth}{0pt}}
\pgfusepathqstroke
}%
\pgfarrowsdeclare{butt cap}{butt cap}
{\pgfarrowsleftextend{+-.1\pgflinewidth}\pgfarrowsrightextend{+.5\pgflinewidth}}
{
\pgfsetdash{}{+0pt}
\pgfsetbuttcap
\pgfpathmoveto{\pgfqpoint{-.1\pgflinewidth}{0pt}}
\pgfpathlineto{\pgfqpoint{0.5\pgflinewidth}{0pt}}
\pgfusepathqstroke
}%
\pgfarrowsdeclare{triangle 90 cap}{triangle 90 cap}
{\pgfarrowsleftextend{+-.1\pgflinewidth}\pgfarrowsrightextend{+\pgflinewidth}}
{
\pgfpathmoveto{\pgfqpoint{-.1\pgflinewidth}{0.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{.5\pgflinewidth}{.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{\pgflinewidth}{0pt}}
\pgfpathlineto{\pgfqpoint{.5\pgflinewidth}{-.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{-.1\pgflinewidth}{-0.5\pgflinewidth}}
\pgfpathclose
\pgfusepathqfill
}%
\pgfarrowsdeclare{triangle 90 cap reversed}{triangle 90 cap reversed}
{\pgfarrowsleftextend{+-.1\pgflinewidth}\pgfarrowsrightextend{+\pgflinewidth}}
{
\pgfpathmoveto{\pgfqpoint{1\pgflinewidth}{0.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{-.1\pgflinewidth}{.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{-.1\pgflinewidth}{-.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{1\pgflinewidth}{-.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{0.5\pgflinewidth}{0\pgflinewidth}}
\pgfpathclose
\pgfusepathqfill
}%
\pgfarrowsdeclare{fast cap}{fast cap}
{\pgfarrowsleftextend{+-.1\pgflinewidth}\pgfarrowsrightextend{+2\pgflinewidth}}
{
\pgfpathmoveto{\pgfqpoint{-.1\pgflinewidth}{0.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{.5\pgflinewidth}{.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{1\pgflinewidth}{0\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{.5\pgflinewidth}{-.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{-.1\pgflinewidth}{-0.5\pgflinewidth}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{1\pgflinewidth}{0.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{1.5\pgflinewidth}{0.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{2\pgflinewidth}{0\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{1.5\pgflinewidth}{-.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{1\pgflinewidth}{-0.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{1.5\pgflinewidth}{0\pgflinewidth}}
\pgfpathclose
\pgfusepathqfill
}%
\pgfarrowsdeclare{fast cap reversed}{fast cap reversed}
{\pgfarrowsleftextend{+-.1\pgflinewidth}\pgfarrowsrightextend{+2\pgflinewidth}}
{
\pgfpathmoveto{\pgfqpoint{-.1\pgflinewidth}{0.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{1\pgflinewidth}{.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{.5\pgflinewidth}{0\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{1\pgflinewidth}{-.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{-.1\pgflinewidth}{-0.5\pgflinewidth}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{1.5\pgflinewidth}{0.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{2\pgflinewidth}{0.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{1.5\pgflinewidth}{0\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{2\pgflinewidth}{-.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{1.5\pgflinewidth}{-0.5\pgflinewidth}}
\pgfpathlineto{\pgfqpoint{1\pgflinewidth}{0\pgflinewidth}}
\pgfpathclose
\pgfusepathqfill
}%
\pgfarrowsdeclare{implies}{implies}
{
\pgfmathsetlength{\pgfutil@tempdima}{.25\pgflinewidth+.25*\pgfinnerlinewidth}%
\pgfmathsetlength{\pgfutil@tempdimb}{.5\pgflinewidth-.5*\pgfinnerlinewidth}%
\pgfarrowsrightextend{2.06\pgfutil@tempdima+.5\pgfutil@tempdimb}
\pgfarrowsleftextend{-1.36\pgfutil@tempdima-.5\pgfutil@tempdimb}
}
{
\pgfmathsetlength{\pgfutil@tempdima}{.25\pgflinewidth+.25*\pgfinnerlinewidth}%
\pgfmathsetlength{\pgfutil@tempdimb}{.5\pgflinewidth-.5*\pgfinnerlinewidth}%
\pgftransformxshift{.06\pgfutil@tempdima}
\pgfsetlinewidth{\pgfutil@tempdimb}
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfsetroundjoin
\pgfpathmoveto{\pgfpoint{-1.4\pgfutil@tempdima}{2.65\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfpoint{-0.75\pgfutil@tempdima}{1.25\pgfutil@tempdima}}
{\pgfpoint{1\pgfutil@tempdima}{0.05\pgfutil@tempdima}}
{\pgfpoint{2\pgfutil@tempdima}{0pt}}
\pgfpathcurveto
{\pgfpoint{1\pgfutil@tempdima}{-0.05\pgfutil@tempdima}}
{\pgfpoint{-.75\pgfutil@tempdima}{-1.25\pgfutil@tempdima}}
{\pgfpoint{-1.4\pgfutil@tempdima}{-2.65\pgfutil@tempdima}}
\pgfusepathqstroke
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryarrows.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryarrows.meta.code.tex ====
\ProvidesFileRCS{pgflibraryarrows.meta.code.tex}
\newdimen\pgfarrowinset
\newdimen\pgfarrowlength
\newdimen\pgfarrowwidth
\newdimen\pgfarrowlinewidth
\newif\ifpgfarrowroundcap
\newif\ifpgfarrowroundjoin
\pgfarrowsaddtolengthscalelist\pgfarrowlength
\pgfarrowsaddtolengthscalelist\pgfarrowinset
\pgfarrowsaddtowidthscalelist\pgfarrowwidth
\pgfkeys{
/pgf/arrow keys/.cd,
length/.code={%
\pgfarrowsthreeparameters{#1}%
\expandafter\pgfarrowsaddtooptions\expandafter{\expandafter\pgfarrowslinewidthdependent\pgfarrowstheparameters\pgfarrowlength\pgf@x}%
},
inset/.code={%
\pgfarrowsthreeparameters{#1}%
\expandafter\pgfarrowsaddtolateoptions\expandafter{\expandafter\pgfarrowslinewidthdependent\pgfarrowstheparameters\pgfarrowinset\pgf@x}%
},
inset'/.code={
\pgfarrowsthreeparameters{#1}%
\expandafter\pgfarrowsaddtolateoptions\expandafter{\expandafter\pgfarrowslengthdependent\pgfarrowstheparameters\pgfarrowinset}%
},
line width/.code={%
\pgfarrowsthreeparameters{#1}%
\expandafter\pgfarrowsaddtolateoptions\expandafter{\expandafter\pgfarrowslinewidthdependent\pgfarrowstheparameters\pgfarrowlinewidth\pgf@x}%
},
line width'/.code={
\pgfarrowsthreeparameters{#1}%
\expandafter\pgfarrowsaddtolateoptions\expandafter{\expandafter\pgfarrowslengthdependent\pgfarrowstheparameters\pgfarrowlinewidth}%
},
width/.code={%
\pgfarrowsthreeparameters{#1}%
\expandafter\pgfarrowsaddtolateoptions\expandafter{\expandafter\pgfarrowslinewidthdependent\pgfarrowstheparameters\pgfarrowwidth\pgf@x}%
},
width'/.code={%
\pgfarrowsthreeparameters{#1}%
\expandafter\pgfarrowsaddtolateoptions\expandafter{\expandafter\pgfarrowslengthdependent\pgfarrowstheparameters\pgfarrowwidth}%
},
angle/.code={%
\pgfarrowsfourparameters{#1}%
\expandafter\pgfarrowsaddtooptions\expandafter{\expandafter\pgfarrows@angle@setup\pgfarrowstheparameters}%
},
angle'/.code={
\pgfarrowsaddtolateoptions{\pgfarrows@angle@setup@prime{#1}}%
},
line cap/.is choice,
line cap/butt/.code=\pgfarrowsaddtooptions{\pgfarrowroundcapfalse},
line cap/round/.code=\pgfarrowsaddtooptions{\pgfarrowroundcaptrue},
line join/.is choice,
line join/miter/.code=\pgfarrowsaddtooptions{\pgfarrowroundjoinfalse},
line join/round/.code=\pgfarrowsaddtooptions{\pgfarrowroundjointrue},
round/.style={line cap=round,line join=round},
sharp/.style={line cap=butt,line join=miter},
}%
\pgfdeclarearrow{
name = Straight Barb,
defaults = {
length = +1.5pt 2,
width' = +0pt 2,
line width = +0pt 1 1,
},
setup code = {
\pgfmathdivide@{\pgf@sys@tonumber\pgfarrowlength}{\pgf@sys@tonumber\pgfarrowwidth}%
\let\pgf@temp@quot\pgfmathresult%
\pgf@x\pgfmathresult pt%
\pgf@x\pgfmathresult\pgf@x%
\pgf@x4\pgf@x%
\advance\pgf@x by1pt%
\pgfmathsqrt@{\pgf@sys@tonumber\pgf@x}%
\pgf@xc\pgfmathresult\pgfarrowlinewidth%
\pgf@xc.5\pgf@xc
\pgf@xa\pgf@temp@quot\pgfarrowlinewidth%
\ifpgfarrowroundjoin
\pgfarrowssettipend{\pgfarrowlength\advance\pgf@x by.5\pgfarrowlinewidth}
\else
\pgfarrowssettipend{\pgfarrowlength\advance\pgf@x by\pgf@xc\ifpgfarrowharpoon\advance\pgf@x by\pgf@xa\fi}
\fi
\pgfarrowssetvisualbackend{\pgfarrowlength\advance\pgf@x by.5\pgfarrowlinewidth}
\pgfarrowssetbackend{-.5\pgfarrowlinewidth}
\ifpgfarrowreversed
\pgfarrowssetlineend{\pgfarrowlength\ifpgfarrowharpoon\advance\pgf@x by.5\pgfarrowlinewidth\fi}
\else
\pgfarrowssetlineend{\pgfarrowlength\advance\pgf@x by-.5\pgfarrowlinewidth}
\fi
\ifpgfarrowroundjoin
\pgfarrowshullpoint{\pgfarrowlength\advance\pgf@x by.5\pgfarrowlinewidth}{\ifpgfarrowharpoon-.5\pgfarrowlinewidth\else0pt\fi}%
\else%
\ifpgfarrowharpoon
\pgfarrowshullpoint{\pgfarrowlength\advance\pgf@x by\pgf@xc\advance\pgf@x by\pgf@xa}{-.5\pgfarrowlinewidth}%
\else
\pgfarrowshullpoint{\pgfarrowlength\advance\pgf@x by\pgf@xc\advance\pgf@x by\pgf@xa}{0pt}%
\fi%
\fi
\pgfarrowsupperhullpoint{.5\pgfarrowlinewidth}{.5\pgfarrowwidth\advance\pgf@y by.5\pgfarrowlinewidth}%
\pgfarrowsupperhullpoint{-.5\pgfarrowlinewidth}{.5\pgfarrowwidth\advance\pgf@y by.5\pgfarrowlinewidth}%
\ifpgfarrowharpoon
\pgfarrowshullpoint{-.5\pgfarrowlinewidth}{-.5\pgfarrowlinewidth}%
\fi
\pgfarrowssavethe\pgfarrowlinewidth
\pgfarrowssavethe\pgfarrowlength
\pgfarrowssavethe\pgfarrowwidth
},
drawing code = {
\pgfsetdash{}{+0pt}
\ifpgfarrowroundjoin\pgfsetroundjoin\else\pgfsetmiterjoin\fi
\ifpgfarrowroundcap\pgfsetroundcap\else\pgfsetbuttcap\fi
\ifdim\pgfarrowlinewidth=\pgflinewidth\else\pgfsetlinewidth{+\pgfarrowlinewidth}\fi
\pgfpathmoveto{\pgfqpoint{0pt}{.5\pgfarrowwidth}}
\pgfpathlineto{\pgfqpoint{\pgfarrowlength}{0pt}}
\ifpgfarrowharpoon
\pgfpathlineto{\pgfqpoint{\pgfarrowlength\advance\pgf@x by\ifpgfarrowreversed\else-\fi\pgfarrowlinewidth}{0pt}}
\else
\pgfpathlineto{\pgfqpoint{0pt}{-.5\pgfarrowwidth}}
\fi
\pgfusepathqstroke
},
parameters = {
\the\pgfarrowlinewidth,%
\the\pgfarrowlength,%
\the\pgfarrowwidth,%
\ifpgfarrowharpoon h\fi%
\ifpgfarrowroundjoin j\fi%
\ifpgfarrowroundcap c\fi%
},
}%
\pgfkeys{
/pgf/arrow keys/.cd,
arc/.code={%
\pgfmathparse{#1}%
\expandafter\pgfarrowsaddtooptions\expandafter{\expandafter\def\expandafter\pgfarrowarc\expandafter{\pgfmathresult}}
}
}%
\def\pgfarrowarc{180}%
\pgfdeclarearrow{
name = Hooks,
defaults = {
length = +0.75pt 1.25,
width' = +0pt 4 -1,
line width = +0pt 1 1,
},
setup code = {
\ifpgfarrowharpoon
\pgfarrowshullpoint{.5\pgfarrowlength}{-.5\pgfarrowlinewidth}
\pgfarrowshullpoint{\pgfarrowlength}{-.5\pgfarrowlinewidth\advance\pgf@y by.125\pgfarrowwidth}
\fi
\ifdim\pgfarrowarc pt<90.1pt
\pgfarrowsupperhullpoint{0pt}{.25\pgfarrowwidth\ifpgfarrowroundcap\else\advance\pgf@y by-.25\pgfarrowlinewidth\fi}
\pgfarrowsupperhullpoint{\pgfarrowlength}{.25\pgfarrowwidth\ifpgfarrowroundcap\else\advance\pgf@y by-.25\pgfarrowlinewidth\fi}
\else%
\pgfarrowsupperhullpoint{\pgfarrowlength}{.375\pgfarrowwidth}
\pgfarrowsupperhullpoint{.5\pgfarrowlength}{.5\pgfarrowwidth}
\ifdim\pgfarrowarc pt>180pt
\pgfarrowsupperhullpoint{-.5\pgfarrowlength}{.5\pgfarrowwidth}
\pgfarrowsupperhullpoint{-\pgfarrowlength}{.375\pgfarrowwidth}
\pgfarrowsupperhullpoint{-\pgfarrowlength}{.25\pgfarrowwidth}
\else
\pgfarrowsupperhullpoint{\ifpgfarrowroundcap-.5\pgfarrowlinewidth\else0pt\fi}{.25\pgfarrowwidth}
\pgfarrowsupperhullpoint{\ifpgfarrowroundcap-.5\pgfarrowlinewidth\else0pt\fi}{.5\pgfarrowwidth}
\fi
\fi
\advance\pgfarrowlength by-.5\pgfarrowlinewidth
\advance\pgfarrowwidth by-\pgfarrowlinewidth
\ifpgfarrowreversed
\ifpgfarrowroundjoin
\pgfarrowssetbackend{-.5\pgfarrowlinewidth}
\fi
\fi
\ifdim\pgfarrowarc pt<90pt%
\pgfmathsin@{\pgfarrowarc}
\pgfarrowssettipend{\pgfmathresult\pgfarrowlength\advance\pgf@x by.5\pgfarrowlinewidth}%
\else\ifdim\pgfarrowarc pt<180pt%
\pgfarrowssettipend{\pgfarrowlength\advance\pgf@x by.5\pgfarrowlinewidth}%
\ifpgfarrowroundcap\pgfarrowssetbackend{-.5\pgfarrowlinewidth}\fi%
\else\ifdim\pgfarrowarc pt<270pt%
\pgfarrowssettipend{\pgfarrowlength\advance\pgf@x by.5\pgfarrowlinewidth}%
\ifdim\pgfarrowarc pt>180pt
\pgfmathsin@{\pgfarrowarc}
\pgfarrowssetbackend{\pgfmathresult\pgfarrowlength\advance\pgf@x by-.5\pgfarrowlinewidth}%
\else
\ifpgfarrowroundcap\pgfarrowssetbackend{-.5\pgfarrowlinewidth}\fi%
\fi%
\else%
\pgfarrowssettipend{\pgfarrowlength\advance\pgf@x by.5\pgfarrowlinewidth}%
\pgfarrowssetbackend{-\pgfarrowlength\advance\pgf@x by-.5\pgfarrowlinewidth}%
\fi\fi\fi%
\ifpgfarrowreversed
\pgfarrowssetlineend{.5\pgfarrowlinewidth}
\else%
\ifpgfarrowharpoon
\pgfarrowssetlineend{0pt}
\else
\pgfarrowssetlineend{.25\pgfarrowlinewidth}
\fi
\fi
\pgf@x\pgfarrowarc pt%
\advance\pgf@x by-90pt%
\edef\pgfarrowarc{\pgf@sys@tonumber\pgf@x}%
\pgfarrowssavethe\pgfarrowlinewidth
\pgfarrowssavethe\pgfarrowlength
\pgfarrowssavethe\pgfarrowwidth
\pgfarrowssave\pgfarrowarc
},
drawing code = {
\pgfsetdash{}{+0pt}
\ifpgfarrowroundjoin\pgfsetroundjoin\else\pgfsetmiterjoin\fi
\ifpgfarrowroundcap\pgfsetroundcap\else\pgfsetbuttcap\fi
\ifdim\pgfarrowlinewidth=\pgflinewidth\else\pgfsetlinewidth{+\pgfarrowlinewidth}\fi
{%
\pgftransformxscale{+\pgfarrowlength}
\pgftransformyscale{+.25\pgfarrowwidth}
\pgfpathmoveto{\pgfpointpolar{+\pgfarrowarc}{+1pt}\advance\pgf@y by1pt}
\pgfpatharc{\pgfarrowarc}{+-90}{+1pt}
\ifpgfarrowharpoon
\else
\pgfpatharc{+90}{+-\pgfarrowarc}{+1pt}
\fi
}
\ifpgfarrowharpoon\ifpgfarrowreversed
\pgfpathlineto{\pgfqpoint{\pgflinewidth}{0pt}}
\fi\fi
\pgfusepathqstroke
},
parameters = {
\the\pgfarrowlinewidth,%
\the\pgfarrowlength,%
\the\pgfarrowwidth,%
\pgfarrowarc,%
\ifpgfarrowharpoon h\fi%
\ifpgfarrowroundjoin j\fi%
\ifpgfarrowroundcap c\fi%
},
}%
\pgfdeclarearrow{
name = Arc Barb,
defaults = {
length = +1.5pt 2,
width' = +0pt 2,
line width = +0pt 1 1,
},
setup code = {
\pgf@x\pgfarrowarc pt%
\pgf@x.5\pgf@x%
\edef\pgfarrowarc{\pgf@sys@tonumber\pgf@x}%
\pgfarrowssettipend{\pgfarrowlength}
\pgfarrowssetvisualbackend{\pgfarrowlength}
\pgfarrowssetlineend{\pgfarrowlength\advance\pgf@x by-.5\pgfarrowlinewidth}
\pgfarrowsupperhullpoint{\pgfarrowlength}{.25\pgfarrowwidth}
\ifpgfarrowharpoon\pgfarrowshullpoint{\pgfarrowlength}{-.5\pgflinewidth}\fi
\pgfmathsincos@{\pgfarrowarc}%
\pgf@xa.5\pgfarrowwidth%
\pgfarrowsupperhullpoint{\pgfmathresultx\pgfarrowlength}{\pgfmathresulty\pgf@xa}
\ifdim\pgfarrowarc pt>60pt
\pgfarrowsupperhullpoint{.5\pgfarrowlength}{\ifdim\pgfarrowarc pt<90pt\pgfmathresulty\pgf@xa\else.5\pgfarrowwidth\fi}
\fi
\ifdim\pgfarrowarc pt>90pt
\ifdim\pgfarrowarc pt<120pt
\pgfarrowsupperhullpoint{\pgfmathresultx\pgfarrowlength}{.5\pgfarrowwidth}
\else
\pgfarrowsupperhullpoint{-.5\pgfarrowlength}{.5\pgfarrowwidth}
\ifdim\pgfarrowarc pt>150pt
\pgfarrowsupperhullpoint{-\pgfarrowlength}{.25\pgfarrowwidth}
\fi
\fi
\fi
\pgfutil@tempswafalse
\ifdim\pgfarrowarc pt<90pt
\pgfutil@tempswatrue
\fi
\ifpgfarrowharpoon
\pgfutil@tempswatrue
\fi
\ifpgfutil@tempswa
\pgf@xa.5\pgfarrowwidth\advance\pgf@xa by-\pgfarrowlinewidth%
\pgf@ya\pgfarrowlength\advance\pgf@ya by-\pgfarrowlinewidth%
\pgfarrowsupperhullpoint{\pgfmathresultx\pgf@ya}{\pgfmathresulty\pgf@xa}
\fi
\ifpgfarrowroundcap
\pgf@y\pgfarrowlength
\advance\pgf@y by-.5\pgfarrowlinewidth
\pgf@x\pgfmathresultx\pgf@y%
\else
\ifdim\pgfarrowarc pt<90pt
\pgf@y\pgfarrowlength
\advance\pgf@y by-\pgfarrowlinewidth
\pgf@x\pgfmathresultx\pgf@y%
\else
\pgf@x\pgfmathresultx\pgfarrowlength%
\fi
\fi
\pgfarrowssetbackend{\pgf@x\ifpgfarrowroundcap\advance\pgf@x by-.5\pgfarrowlinewidth\fi}
\advance\pgfarrowlength by-.5\pgfarrowlinewidth
\advance\pgfarrowwidth by-\pgfarrowlinewidth
\pgfarrowssavethe\pgfarrowlinewidth
\pgfarrowssavethe\pgfarrowlength
\pgfarrowssavethe\pgfarrowwidth
\pgfarrowssave\pgfarrowarc
},
drawing code = {
\pgfsetdash{}{+0pt}
\ifpgfarrowroundcap\pgfsetroundcap\else\pgfsetbuttcap\fi
\ifpgfarrowroundjoin\pgfsetroundjoin\else\pgfsetmiterjoin\fi
\ifdim\pgfarrowlinewidth=\pgflinewidth\else\pgfsetlinewidth{+\pgfarrowlinewidth}\fi
{%
\pgftransformxscale{+\pgfarrowlength}
\pgftransformyscale{+.5\pgfarrowwidth}
\pgfpathmoveto{\pgfpointpolar{+\pgfarrowarc}{+1pt}}
\ifpgfarrowharpoon
\pgfpatharc{+\pgfarrowarc}{0pt}{+1pt}
\else
\pgfpatharc{+\pgfarrowarc}{+-\pgfarrowarc}{+1pt}
\fi
}
\ifpgfarrowharpoon
\pgfpathlineto{\pgfqpoint{\pgfarrowlength\advance\pgf@x by\ifpgfarrowreversed\else-\fi.5\pgflinewidth}{0pt}}
\fi
\pgfusepathqstroke
},
parameters = {
\the\pgfarrowlinewidth,%
\the\pgfarrowlength,%
\the\pgfarrowwidth,%
\pgfarrowarc,%
\ifpgfarrowharpoon h\fi%
\ifpgfarrowroundcap c\fi%
\ifpgfarrowroundjoin j\fi%
},
}%
\pgfdeclarearrow{
name = Tee Barb,
defaults = {
length = +1.5pt 2,
width = +3pt 4,
inset' = +0pt .5,
line width = +0pt 1 1,
},
bending mode=polar,
setup code = {
\pgfutil@tempswafalse%
\pgfutil@tempswbfalse%
\pgfutil@tempdima\pgfarrowlength\advance\pgfutil@tempdima by-\pgfarrowinset\ifdim\pgfutil@tempdima<.5\pgfarrowlinewidth\pgfutil@tempdima.5\pgfarrowlinewidth\pgfutil@tempswatrue\fi%
\pgfutil@tempdimb-\pgfarrowinset\ifdim\pgfutil@tempdimb>-.5\pgfarrowlinewidth\pgfutil@tempdimb-.5\pgfarrowlinewidth\pgfutil@tempswbtrue\fi
\pgfarrowssavethe\pgfarrowwidth
\pgfarrowssavethe\pgfutil@tempdima
\pgfarrowssavethe\pgfutil@tempdimb
\pgfarrowssettipend{\pgfutil@tempdima\ifpgfarrowroundcap\ifpgfutil@tempswa\else\advance\pgf@x by.5\pgfarrowlinewidth\fi\fi}
\pgfarrowssetvisualbackend{.5\pgfarrowlinewidth}
\pgfarrowssetbackend{\pgfutil@tempdimb\ifpgfarrowroundcap\ifpgfutil@tempswb\else\advance\pgf@x by-.5\pgfarrowlinewidth\fi\fi}
\pgfarrowssetlineend{\ifpgfarrowreversed\else-\fi.25\pgfarrowlinewidth}%
\pgfarrowsupperhullpoint{\pgfutil@tempdima\ifpgfarrowroundcap\ifpgfutil@tempswa\else\advance\pgf@x by.5\pgfarrowlinewidth\fi\fi}{.5\pgfarrowwidth}%
\pgfarrowsupperhullpoint{\pgfutil@tempdimb\ifpgfarrowroundcap\ifpgfutil@tempswb\else\advance\pgf@x by-.5\pgfarrowlinewidth\fi\fi}{.5\pgfarrowwidth}%
\ifpgfarrowharpoon
\pgfarrowshullpoint{.5\pgfarrowlinewidth}{-.5\pgfarrowlinewidth}%
\fi
},
drawing code = {
\pgfsetdash{}{+0pt}
\pgf@yc\pgflinewidth%
\ifdim\pgflinewidth=\pgfarrowlinewidth\else\pgfsetlinewidth{+\pgfarrowlinewidth}\fi
\ifpgfarrowroundcap\pgfsetroundcap\else\pgfsetbuttcap\fi
\ifpgfarrowroundjoin\pgfsetroundjoin\else\pgfsetmiterjoin\fi
\pgf@x\pgfutil@tempdima\advance\pgf@x by-.5\pgfarrowlinewidth%
\pgf@y\pgfutil@tempdimb\advance\pgf@y by.5\pgfarrowlinewidth%
\ifdim\pgf@x=\pgf@y%
\pgfpathmoveto{\pgfqpoint{0pt}{.5\pgfarrowwidth}}
\pgfpathlineto{\pgfqpoint{0pt}{\ifpgfarrowharpoon-.5\pgfarrowlinewidth\else-.5\pgfarrowwidth\fi}}
\else
\ifdim\pgfutil@tempdima=.5\pgfarrowlinewidth%
\pgfpathmoveto{\pgfqpoint{\pgfutil@tempdimb}{.5\pgfarrowwidth\advance\pgf@y by-.5\pgfarrowlinewidth}}
\pgfpathlineto{\pgfqpoint{0pt}{.5\pgfarrowwidth\advance\pgf@y by-.5\pgfarrowlinewidth}}
\ifpgfarrowharpoon%
\pgfpathlineto{\pgfqpoint{0pt}{-.5\pgf@yc}}%
\else%
\pgfpathlineto{\pgfqpoint{0pt}{-.5\pgfarrowwidth\advance\pgf@y by.5\pgfarrowlinewidth}}
\pgfpathlineto{\pgfqpoint{\pgfutil@tempdimb}{-.5\pgfarrowwidth\advance\pgf@y by.5\pgfarrowlinewidth}}
\fi
\else%
\pgfpathmoveto{\pgfqpoint{\pgfutil@tempdimb}{.5\pgfarrowwidth\advance\pgf@y by-.5\pgfarrowlinewidth}}
\pgfpathlineto{\pgfqpoint{\pgfutil@tempdima}{.5\pgfarrowwidth\advance\pgf@y by-.5\pgfarrowlinewidth}}
\pgfpathmoveto{\pgfqpoint{0pt}{.5\pgfarrowwidth\advance\pgf@y by-.5\pgfarrowlinewidth}}
\ifpgfarrowharpoon%
\pgfpathlineto{\pgfqpoint{0pt}{-.5\pgf@yc}}%
\else%
\pgfpathlineto{\pgfqpoint{0pt}{-.5\pgfarrowwidth\advance\pgf@y by.5\pgfarrowlinewidth}}
\pgfpathmoveto{\pgfqpoint{\pgfutil@tempdimb}{-.5\pgfarrowwidth\advance\pgf@y by.5\pgfarrowlinewidth}}
\pgfpathlineto{\pgfqpoint{\pgfutil@tempdima}{-.5\pgfarrowwidth\advance\pgf@y by.5\pgfarrowlinewidth}}
\fi
\fi
\fi
\pgfusepathqstroke
},
parameters = {
\the\pgfarrowwidth,%
\the\pgfarrowlength,%
\the\pgfarrowinset,%
\the\pgfarrowlinewidth,%
\ifpgfarrowharpoon h\fi%
\ifpgfarrowroundjoin j\fi%
\ifpgfarrowroundcap c\fi%
},
}%
\pgfdeclarearrow{
name = Classical TikZ Rightarrow,
defaults = {
length = +1.05pt 1.925,
width' = +0pt 1.9237,
line width = 0pt 0.8 1,
round
},
setup code =
{
\ifpgfarrowharpoon\pgfarrowroundjointrue\fi
\pgfutil@tempdima\pgfarrowlength
\advance\pgfutil@tempdima by-\pgfarrowlinewidth
\pgfutil@tempdimb\pgfarrowwidth
\advance\pgfutil@tempdimb by-\pgfarrowlinewidth
\ifpgfarrowroundjoin%
\else%
\pgfmathdivide@{\pgf@sys@tonumber\pgfutil@tempdima}{\pgf@sys@tonumber\pgfutil@tempdimb}%
\let\pgf@temp@quot\pgfmathresult%
\pgf@x\pgfmathresult pt%
\pgf@x\pgfmathresult\pgf@x%
\pgf@x40.96\pgf@x%
\advance\pgf@x by1pt%
\pgfmathsqrt@{\pgf@sys@tonumber\pgf@x}%
\pgf@xc\pgfmathresult\pgfarrowlinewidth%
\pgf@xc.5\pgf@xc
\fi%
\pgfarrowssavethe\pgfutil@tempdima
\pgfarrowssavethe\pgfutil@tempdimb
\pgfarrowssettipend{\pgfutil@tempdima\ifpgfarrowroundjoin\advance\pgf@x by.5\pgfarrowlinewidth\else\advance\pgf@x by\pgf@xc\fi}%
\pgfarrowssetvisualbackend{\pgfutil@tempdima\advance\pgf@x by.5\pgfarrowlinewidth}%
\ifpgfarrowreversed%
\ifpgfarrowharpoon%
\pgfarrowssetlineend{\pgfutil@tempdima\advance\pgf@x by.5\pgflinewidth}%
\else%
\pgfarrowssetlineend{\pgfutil@tempdima\advance\pgf@x by-.25\pgflinewidth}%
\fi%
\else%
\pgfarrowssetlineend{\pgfutil@tempdima\advance\pgf@x by-.6\pgflinewidth}%
\fi%
\pgfarrowssetbackend{-.5\pgfarrowlinewidth}%
\pgfarrowshullpoint{\pgfutil@tempdima\ifpgfarrowroundjoin\advance\pgf@x by.5\pgfarrowlinewidth\else\advance\pgf@x by\pgf@xc\fi}{.5\pgfarrowlinewidth}%
\pgfarrowshullpoint{\pgfutil@tempdima\ifpgfarrowroundjoin\advance\pgf@x by.5\pgfarrowlinewidth\else\advance\pgf@x by\pgf@xc\fi}{-.5\pgfarrowlinewidth}%
\pgfarrowsupperhullpoint{.5\pgfarrowlinewidth}{.5\pgfutil@tempdimb\advance\pgf@y by.5\pgfarrowlinewidth}%
\pgfarrowsupperhullpoint{-.5\pgfarrowlinewidth}{.5\pgfutil@tempdimb\advance\pgf@y by.5\pgfarrowlinewidth}%
\ifpgfarrowharpoon
\pgfarrowshullpoint{\pgfutil@tempdima\advance\pgf@x by-\pgflinewidth}{-.5\pgflinewidth}%
\pgfarrowshullpoint{-.5\pgfarrowlinewidth}{.5\pgfutil@tempdimb\advance\pgf@y by-.5\pgflinewidth}%
\fi
},
drawing code =
{
\pgfsetdash{}{+0pt}
\edef\pgf@orig@linewidth{\the\pgflinewidth}
\ifdim\pgfarrowlinewidth=\pgflinewidth\else\pgfsetlinewidth{+\pgfarrowlinewidth}\fi
\ifpgfarrowharpoon\pgfarrowroundjointrue\fi
\ifpgfarrowroundcap\pgfsetroundcap\else\pgfsetbuttcap\fi
\ifpgfarrowroundjoin\pgfsetroundjoin\else\pgfsetmiterjoin\fi
\pgfpathmoveto
{\pgfqpoint{0pt}{.5\pgfutil@tempdimb}}
\ifpgfarrowharpoon
\pgf@arrows@old@tikz@harpoon
\else
\pgfpathcurveto
{\pgfqpoint{0.066666\pgfutil@tempdima}{0.3125\pgfutil@tempdimb}}
{\pgfqpoint{.8\pgfutil@tempdima}{0.03125\pgfutil@tempdimb}}
{\pgfqpoint{\pgfutil@tempdima}{0pt}}
\pgfpathcurveto
{\pgfqpoint{.8\pgfutil@tempdima}{-.03125\pgfutil@tempdimb}}
{\pgfqpoint{0.066666\pgfutil@tempdima}{-.3125\pgfutil@tempdimb}}
{\pgfqpoint{0pt}{-.5\pgfutil@tempdimb}}
\pgfsetlinewidth{+\pgfarrowlinewidth}
\pgfusepathqstroke
\fi
},
parameters = {
\the\pgfarrowlinewidth,%
\the\pgfarrowlength,%
\the\pgfarrowwidth,%
\ifpgfarrowharpoon h\fi%
\ifpgfarrowroundjoin j\fi%
\ifpgfarrowroundcap c\fi%
},
}%
\def\pgf@arrows@old@tikz@harpoon{
\ifpgfarrowreversed
\pgf@arrows@old@tikz@harpoon@reversed
\else
\pgfpathcurveto
{\pgfqpoint{0.066666\pgfutil@tempdima}{0.3125\pgfutil@tempdimb}}
{\pgfqpoint{.8\pgfutil@tempdima}{0.03125\pgfutil@tempdimb}}
{\pgfqpoint{\pgfutil@tempdima}{0pt}}
\pgfpathcurveto
{\pgfqpoint{0.95\pgfutil@tempdima}{-0.125\pgflinewidth}}
{\pgfqpoint{0.933333\pgfutil@tempdima}{-0.125\pgflinewidth}}
{\pgfqpoint{0.933333\pgfutil@tempdima}{-0.125\pgflinewidth}}
\pgfpathlineto
{\pgfqpoint{0.8\pgfutil@tempdima\advance\pgf@x by-.5\pgflinewidth}{-0.125\pgflinewidth}}
\pgfusepathqstroke
\fi
}%
\def\pgf@arrows@old@tikz@harpoon@reversed{
\pgfpathcurveto
{\pgfqpoint{0.066666\pgfutil@tempdima}{0.3125\pgfutil@tempdimb}}
{\pgfqpoint{.8\pgfutil@tempdima}{0.03125\pgfutil@tempdimb}}
{\pgfqpoint{\pgfutil@tempdima}{0.125\pgflinewidth}}
\pgfpathmoveto
{\pgfqpoint{0pt}{.5\pgfutil@tempdimb}}
\pgfpathcurveto
{\pgfqpoint{0.066666\pgfutil@tempdima}{0.3125\pgfutil@tempdimb}}
{\pgfqpoint{.8\pgfutil@tempdima}{0.03125\pgfutil@tempdimb}}
{\pgfqpoint{\pgfutil@tempdima}{-0.125\pgflinewidth}}
\pgfusepathqstroke
\pgfsetlinewidth{+\pgf@orig@linewidth}
\pgfsetroundcap
\pgfpathmoveto{\pgfqpoint{\pgfutil@tempdima\advance\pgf@x by0.6\pgflinewidth}{0pt}}
\pgfpathlineto{\pgfqpoint{\pgfutil@tempdima}{0pt}}
\pgfusepathqstroke
}%
\pgfdeclarearrow{
name = Computer Modern Rightarrow,
defaults = {
length = +1.6pt 2.2, %
width' = +0pt 2.096774,
line width = 0pt 1 1,
round
},
setup code =
{
\pgfutil@tempdima\pgfarrowlength
\advance\pgfutil@tempdima by-\pgfarrowlinewidth
\pgfutil@tempdimb\pgfarrowwidth
\advance\pgfutil@tempdimb by-\pgfarrowlinewidth
\pgfarrowssavethe\pgfutil@tempdima
\pgfarrowssavethe\pgfutil@tempdimb
\ifpgfarrowroundjoin%
\else%
\pgfmathdivide@{\pgf@sys@tonumber\pgfutil@tempdima}{\pgf@sys@tonumber\pgfutil@tempdimb}%
\let\pgf@temp@quot\pgfmathresult%
\pgf@x\pgfmathresult pt%
\pgf@x\pgfmathresult\pgf@x%
\pgf@x49.44662\pgf@x%
\advance\pgf@x by1pt%
\pgfmathsqrt@{\pgf@sys@tonumber\pgf@x}%
\pgf@xc\pgfmathresult\pgfarrowlinewidth%
\pgf@xc.5\pgf@xc
\pgf@xa\pgf@temp@quot\pgfarrowlinewidth%
\pgf@xa3.51591\pgf@xa%
\fi%
\pgfarrowssettipend{\ifpgfarrowroundjoin.5\pgfarrowlinewidth\else\pgf@xc\ifpgfarrowharpoon\advance\pgf@x by\pgf@xa\fi\fi}%
\pgfarrowssetvisualbackend{.5\pgfarrowlinewidth}%
\ifpgfarrowreversed%
\ifpgfarrowharpoon%
\pgfarrowssetlineend{.5\pgfarrowlinewidth}%
\else%
\pgfarrowssetlineend{-.5\pgfarrowlinewidth}%
\fi%
\else%
\pgfarrowssetlineend{-.5\pgfarrowlinewidth}%
\fi%
\pgfarrowssetbackend{-\pgfutil@tempdima\advance\pgf@x by-.5\pgfarrowlinewidth}%
\pgfarrowshullpoint{\ifpgfarrowroundjoin.5\pgfarrowlinewidth\else\pgf@xc\ifpgfarrowharpoon\advance\pgf@x by\pgf@xa\fi\fi}{.5\pgfarrowlinewidth}%
\pgfarrowshullpoint{\ifpgfarrowroundjoin.5\pgfarrowlinewidth\else\pgf@xc\ifpgfarrowharpoon\advance\pgf@x by\pgf@xa\fi\fi}{-.5\pgfarrowlinewidth}%
\pgfarrowsupperhullpoint{-\pgfutil@tempdima\advance\pgf@x by.5\pgfarrowlinewidth}{.5\pgfutil@tempdimb\advance\pgf@y by.5\pgfarrowlinewidth}%
\pgfarrowsupperhullpoint{-\pgfutil@tempdima\advance\pgf@x by-.5\pgfarrowlinewidth}{.5\pgfutil@tempdimb\advance\pgf@y by.5\pgfarrowlinewidth}%
\ifpgfarrowharpoon
\pgfarrowshullpoint{-\pgfarrowlinewidth}{-.5\pgfarrowlinewidth}%
\pgfarrowshullpoint{-\pgfutil@tempdima\advance\pgf@x by-.5\pgfarrowlinewidth}{.5\pgfutil@tempdimb\advance\pgf@y by-.5\pgfarrowlinewidth}%
\fi
},
drawing code =
{
\pgfsetdash{}{+0pt}
\ifpgfarrowroundcap\pgfsetroundcap\else\pgfsetbuttcap\fi
\ifpgfarrowroundjoin\pgfsetroundjoin\else\pgfsetmiterjoin\fi
\ifdim\pgfarrowlinewidth=\pgflinewidth\else\pgfsetlinewidth{+\pgfarrowlinewidth}\fi
\pgfpathmoveto
{\pgfqpoint{-\pgfutil@tempdima}{.5\pgfutil@tempdimb}}
\pgfpathcurveto
{\pgfqpoint{-0.81731\pgfutil@tempdima}{.2\pgfutil@tempdimb}}
{\pgfqpoint{-0.41019\pgfutil@tempdima}{0.05833333\pgfutil@tempdimb}}
{\pgfpointorigin}
\ifpgfarrowharpoon
\pgfpathlineto
{\pgfqpoint{\ifpgfarrowreversed.5\else-\fi\pgfarrowlinewidth}{0pt}}
\else
\pgfpathcurveto
{\pgfqpoint{-0.41019\pgfutil@tempdima}{-0.05833333\pgfutil@tempdimb}}
{\pgfqpoint{-0.81731\pgfutil@tempdima}{-.2\pgfutil@tempdimb}}
{\pgfqpoint{-\pgfutil@tempdima}{-.5\pgfutil@tempdimb}}
\fi
\pgfusepathqstroke
},
parameters = {
\the\pgfarrowlinewidth,%
\the\pgfarrowlength,%
\the\pgfarrowwidth,%
\ifpgfarrowharpoon h\fi
\ifpgfarrowharpoon r\fi
\ifpgfarrowroundjoin j\fi%
\ifpgfarrowroundcap c\fi%
},
}%
\pgfdeclarearrow{
name = Implies,
setup code = {
\pgf@xa\pgfinnerlinewidth
\pgfutil@tempdima.25\pgflinewidth
\advance\pgfutil@tempdima by.25\pgf@xa%
\pgfutil@tempdimb.5\pgflinewidth
\advance\pgfutil@tempdimb by-.5\pgf@xa%
\pgfarrowssettipend{2.06\pgfutil@tempdima\advance\pgf@x by.5\pgfutil@tempdimb}
\pgfarrowssetbackend{-1.36\pgfutil@tempdima\advance\pgf@x by.5\pgfutil@tempdimb}
\pgfarrowsupperhullpoint{-1.4\pgfutil@tempdima}{2.8\pgfutil@tempdima}
\pgfarrowsupperhullpoint{2\pgfutil@tempdima}{.5\pgfutil@tempdimb}
\pgfarrowssavethe\pgfutil@tempdima
\pgfarrowssavethe\pgfutil@tempdimb
},
drawing code = {
\pgftransformxshift{.06\pgfutil@tempdima}
\pgfsetlinewidth{\pgfutil@tempdimb}
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfsetroundjoin
\pgfpathmoveto{\pgfpoint{-1.4\pgfutil@tempdima}{2.65\pgfutil@tempdima}}
\pgfpathcurveto
{\pgfpoint{-0.75\pgfutil@tempdima}{1.25\pgfutil@tempdima}}
{\pgfpoint{1\pgfutil@tempdima}{0.05\pgfutil@tempdima}}
{\pgfpoint{2\pgfutil@tempdima}{0pt}}
\pgfpathcurveto
{\pgfpoint{1\pgfutil@tempdima}{-0.05\pgfutil@tempdima}}
{\pgfpoint{-.75\pgfutil@tempdima}{-1.25\pgfutil@tempdima}}
{\pgfpoint{-1.4\pgfutil@tempdima}{-2.65\pgfutil@tempdima}}
\pgfusepathqstroke
},
parameters = {\the\pgfarrowlength}
}%
\pgfdeclarearrow{
name = Latex,
defaults = {
length = +3pt 4.5 .8,%
width' = +0pt .75,
line width = +0pt 1 1,
},
setup code = {
\pgf@x.2\pgfarrowlength
\ifdim\pgf@x<\pgfarrowlinewidth
\pgfarrowlinewidth\pgf@x
\fi
\pgfarrowssavethe\pgfarrowlinewidth%
\pgfmathdivide@{\pgf@sys@tonumber\pgfarrowlength}{\pgf@sys@tonumber\pgfarrowwidth}%
\let\pgf@temp@quot\pgfmathresult%
\pgf@x\pgfmathresult pt%
\pgf@x\pgfmathresult\pgf@x%
\pgf@x9\pgf@x%
\advance\pgf@x by1pt%
\pgfmathsqrt@{\pgf@sys@tonumber\pgf@x}%
\pgf@xc\pgfmathresult\pgfarrowlinewidth%
\pgf@xa\pgf@temp@quot\pgfarrowlinewidth
\pgfutil@tempdima\pgfarrowlength%
\advance\pgfutil@tempdima by-.5\pgf@xc%
\advance\pgfutil@tempdima by-.5\pgfarrowlinewidth%
\pgfarrowssetbackend{-.5\pgfarrowlinewidth}
\ifpgfarrowreversed
\ifdim\pgfinnerlinewidth>0pt
\pgfarrowssetlineend{0pt}
\else
\pgfarrowssetlineend{\pgfutil@tempdima\advance\pgf@x by-.5\pgflinewidth}
\fi
\else
\pgfarrowssetlineend{0pt}
\fi
\ifpgfarrowroundjoin
\pgfarrowssettipend{\pgfutil@tempdima\advance\pgf@x by.5\pgfarrowlinewidth}
\else
\pgfarrowssettipend{\pgfarrowlength\advance\pgf@x by-.5\pgfarrowlinewidth\ifpgfarrowharpoon\advance\pgf@x by1.5\pgf@xa\fi}
\fi
\pgfarrowssavethe\pgfutil@tempdima
\pgf@process{\pgfpointnormalised{\pgfqpoint{.3\pgfarrowlength}{.2333333\pgfarrowwidth}}}%
\advance\pgf@y by1pt%
\pgf@yc\pgf@y\pgf@xc\pgf@x%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@yc}{\pgf@sys@tonumber\pgf@xc}%
\pgfutil@tempdimb\pgfmathresult\pgfarrowlinewidth%
\pgfutil@tempdimb-.5\pgfutil@tempdimb%
\advance\pgfutil@tempdimb by.5\pgfarrowwidth%
\pgfarrowssavethe\pgfutil@tempdimb%
\pgfarrowshullpoint{\pgfarrowlength\advance\pgf@x by-.5\pgfarrowlinewidth\ifpgfarrowroundjoin\else\ifpgfarrowharpoon\advance\pgf@x by1.5\pgf@xa\fi\fi}{\ifpgfarrowharpoon-.5\pgfarrowlinewidth\else0pt\fi}%
\pgfarrowshullpoint{-.5\pgfarrowlinewidth}{.5\pgfarrowwidth\ifpgfarrowharpoon\advance\pgf@y by-.5\pgfarrowlinewidth\fi}%
\pgfarrowshullpoint{-.5\pgfarrowlinewidth}{\ifpgfarrowharpoon-.5\pgfarrowlinewidth\else-.5\pgfarrowwidth\fi}%
},
drawing code = {
\pgfsetdash{}{+0pt}
\ifpgfarrowroundjoin\pgfsetroundjoin\else\pgfsetmiterjoin\fi
\ifdim\pgfarrowlinewidth=\pgflinewidth\else\pgfsetlinewidth{+\pgfarrowlinewidth}\fi
\pgfpathmoveto {\pgfqpoint{\pgfutil@tempdima}{0pt}}
\pgfpathcurveto {\pgfqpoint{.877192\pgfutil@tempdima}{.077922\pgfutil@tempdimb}}
{\pgfqpoint{.337381\pgfutil@tempdima}{.519480\pgfutil@tempdimb}}
{\pgfqpoint{0pt}{\pgfutil@tempdimb}}
\ifpgfarrowharpoon
\pgfpathlineto {\pgfpointorigin}
\else
\pgfpathlineto {\pgfqpoint{0pt}{-\pgfutil@tempdimb}}
\pgfpathcurveto {\pgfqpoint{.337381\pgfutil@tempdima}{-.519480\pgfutil@tempdimb}}
{\pgfqpoint{.877192\pgfutil@tempdima}{-.077922\pgfutil@tempdimb}}
{\pgfqpoint{\pgfutil@tempdima}{0pt}}
\fi
\pgfpathclose
\ifpgfarrowopen\pgfusepathqstroke\else\ifdim\pgfarrowlinewidth>0pt\pgfusepathqfillstroke\else\pgfusepathqfill\fi\fi
},
parameters = {
\the\pgfarrowlinewidth,%
\the\pgfarrowlength,%
\the\pgfarrowwidth,%
\ifpgfarrowharpoon h\fi%
\ifpgfarrowopen o\fi%
\ifpgfarrowroundjoin j\fi%
},
}%
\pgfdeclarearrow{
name = Stealth,
defaults = {
length = +3pt 4.5 .8,
width' = +0pt .75,
inset' = +0pt 0.325,
line width = +0pt 1 1,
},
setup code = {
\pgf@x\pgfarrowlength
\advance\pgf@x by-\pgfarrowinset
\pgf@x.25\pgf@x
\ifdim\pgf@x<\pgfarrowlinewidth
\pgfarrowlinewidth\pgf@x
\fi
\pgfmathdivide@{\pgf@sys@tonumber\pgfarrowlength}{\pgf@sys@tonumber\pgfarrowwidth}%
\let\pgf@temp@quot\pgfmathresult%
\pgf@x\pgfmathresult pt%
\pgf@x\pgfmathresult\pgf@x%
\pgf@x4\pgf@x%
\advance\pgf@x by1pt%
\pgfmathsqrt@{\pgf@sys@tonumber\pgf@x}%
\pgf@xc\pgfmathresult\pgfarrowlinewidth%
\pgf@xc.5\pgf@xc
\pgf@xa\pgf@temp@quot\pgfarrowlinewidth%
\pgf@ya.5\pgfarrowwidth%
\csname pgfmathatan2@\endcsname{\pgfmath@tonumber\pgfarrowlength}{\pgfmath@tonumber\pgf@ya}%
\pgf@yb\pgfmathresult pt%
\csname pgfmathatan2@\endcsname{\pgfmath@tonumber\pgfarrowinset}{\pgfmath@tonumber\pgf@ya}%
\pgf@ya\pgfmathresult pt%
\advance\pgf@yb by-\pgf@ya%
\pgf@yb.5\pgf@yb%
\pgfmathtan@{\pgf@sys@tonumber\pgf@yb}%
\pgfmathreciprocal@{\pgfmathresult}%
\pgf@yc\pgfmathresult\pgfarrowlinewidth%
\pgf@yc.5\pgf@yc%
\advance\pgf@ya by\pgf@yb%
\pgfmathsincos@{\pgf@sys@tonumber\pgf@ya}%
\pgf@ya\pgfmathresulty\pgf@yc%
\pgf@yb\pgfmathresultx\pgf@yc%
\ifdim\pgfarrowinset=0pt%
\pgf@ya.5\pgfarrowlinewidth%
\fi
\pgfmathdivide@{\pgf@sys@tonumber\pgfarrowinset}{\pgf@sys@tonumber\pgfarrowwidth}%
\let\pgf@temp@quot\pgfmathresult%
\pgf@x\pgfmathresult pt%
\pgf@x\pgfmathresult\pgf@x%
\pgf@x4\pgf@x%
\advance\pgf@x by1pt%
\pgfmathsqrt@{\pgf@sys@tonumber\pgf@x}%
\pgf@yc\pgfmathresult\pgfarrowlinewidth%
\pgf@yc.5\pgf@yc%
\pgfutil@tempdima\pgfarrowlength%
\advance\pgfutil@tempdima by-\pgf@xc%
\advance\pgfutil@tempdima by-\pgf@ya%
\pgfutil@tempdimb.5\pgfarrowwidth%
\advance\pgfutil@tempdimb by-\pgf@yb%
\ifpgfarrowroundjoin
\pgfarrowssetbackend{\pgf@ya\advance\pgf@x by-.5\pgfarrowlinewidth}
\else
\pgfarrowssetbackend{0pt}
\fi
\ifpgfarrowharpoon
\pgfarrowssetlineend{\pgfarrowinset\advance\pgf@x
by\pgf@yc\advance\pgf@x by.5\pgfarrowlinewidth}
\else
\pgfarrowssetlineend{\pgfarrowinset\advance\pgf@x by\pgf@yc\advance\pgf@x by-.25\pgfarrowlinewidth}
\ifpgfarrowreversed
\ifdim\pgfinnerlinewidth>0pt
\pgfarrowssetlineend{\pgfarrowinset}
\else
\pgfarrowssetlineend{\pgfutil@tempdima\advance\pgf@x by\pgf@ya\advance\pgf@x by-.25\pgfarrowlinewidth}
\fi
\fi
\fi
\ifpgfarrowroundjoin
\pgfarrowssettipend{\pgfutil@tempdima\advance\pgf@x by\pgf@ya\advance\pgf@x by.5\pgfarrowlinewidth}
\else
\pgfarrowssettipend{\pgfarrowlength\ifpgfarrowharpoon\advance\pgf@x by\pgf@xa\fi}
\fi
\pgfarrowshullpoint{\pgfarrowlength\ifpgfarrowroundjoin\else\ifpgfarrowharpoon\advance\pgf@x by\pgf@xa\fi\fi}{\ifpgfarrowharpoon-.5\pgfarrowlinewidth\else0pt\fi}%
\pgfarrowsupperhullpoint{0pt}{.5\pgfarrowwidth}%
\pgfarrowshullpoint{\pgfarrowinset}{\ifpgfarrowharpoon-.5\pgfarrowlinewidth\else 0pt\fi}%
\pgfarrowssetvisualbackend{\pgfarrowinset}
\advance\pgfarrowinset by\pgf@yc%
\pgfarrowssavethe\pgfutil@tempdima
\pgfarrowssavethe\pgfutil@tempdimb
\pgfarrowssavethe\pgfarrowlinewidth
\pgfarrowssavethe\pgf@ya
\pgfarrowssavethe\pgfarrowinset
},
drawing code = {
\pgfsetdash{}{+0pt}
\ifpgfarrowroundjoin\pgfsetroundjoin\else\pgfsetmiterjoin\fi
\ifdim\pgfarrowlinewidth=\pgflinewidth\else\pgfsetlinewidth{+\pgfarrowlinewidth}\fi
\pgfpathmoveto{\pgfqpoint{\pgfutil@tempdima\advance\pgf@x by\pgf@ya}{0pt}}
\pgfpathlineto{\pgfqpoint{\pgf@ya}{\pgfutil@tempdimb}}
\pgfpathlineto{\pgfqpoint{\pgfarrowinset}{0pt}}
\ifpgfarrowharpoon \else
\pgfpathlineto{\pgfqpoint{\pgf@ya}{-\pgfutil@tempdimb}}
\fi
\pgfpathclose
\ifpgfarrowopen\pgfusepathqstroke\else\ifdim\pgfarrowlinewidth>0pt\pgfusepathqfillstroke\else\pgfusepathqfill\fi\fi
},
parameters = {
\the\pgfarrowlinewidth,%
\the\pgfarrowlength,%
\the\pgfarrowwidth,%
\the\pgfarrowinset,%
\ifpgfarrowharpoon h\fi%
\ifpgfarrowopen o\fi%
\ifpgfarrowroundjoin j\fi%
},
}%
\pgfdeclarearrow{
name = Kite,
defaults = {
length = +3.6pt +5.4,
width' = +0pt +0.5,
inset' = +0pt 0.25,
line width = +0pt 1 1,
},
setup code = {
\pgf@x.4\pgfarrowlength
\ifdim\pgf@x<\pgfarrowlinewidth
\pgfarrowlinewidth\pgf@x
\fi
\pgf@x.4\pgfarrowwidth
\ifdim\pgf@x<\pgfarrowlinewidth
\pgfarrowlinewidth\pgf@x
\fi
\pgf@xa\pgfarrowlength%
\advance\pgf@xa by-\pgfarrowinset%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@xa}{\pgf@sys@tonumber\pgfarrowwidth}%
\let\pgf@temp@quot\pgfmathresult%
\pgf@x\pgfmathresult pt%
\pgf@x\pgfmathresult\pgf@x%
\pgf@x4\pgf@x%
\advance\pgf@x by1pt%
\pgfmathsqrt@{\pgf@sys@tonumber\pgf@x}%
\pgf@xc\pgfmathresult\pgfarrowlinewidth%
\pgf@xc.5\pgf@xc
\pgf@xa\pgf@temp@quot\pgfarrowlinewidth%
\pgfmathdivide@{\pgf@sys@tonumber\pgfarrowinset}{\pgf@sys@tonumber\pgfarrowwidth}%
\let\pgf@temp@quot\pgfmathresult%
\pgf@x\pgfmathresult pt%
\pgf@x\pgfmathresult\pgf@x%
\pgf@x4\pgf@x%
\advance\pgf@x by1pt%
\pgfmathsqrt@{\pgf@sys@tonumber\pgf@x}%
\pgf@yc\pgfmathresult\pgfarrowlinewidth%
\pgf@yc.5\pgf@yc
\pgf@ya\pgf@temp@quot\pgfarrowlinewidth%
{%
\pgfutil@tempdimb.5\pgfarrowwidth%
\pgfutil@tempdima\pgfarrowlength\advance\pgfutil@tempdima by-\pgfarrowinset%
\csname pgfmathatan2@\endcsname{\pgfmath@tonumber\pgfutil@tempdima}{\pgfmath@tonumber\pgfutil@tempdimb}%
\pgf@yb\pgfmathresult pt%
\csname pgfmathatan2@\endcsname{\pgfmath@tonumber\pgfarrowinset}{\pgfmath@tonumber\pgfutil@tempdimb}%
\pgf@ya\pgfmathresult pt%
\advance\pgf@yb by\pgf@ya%
\pgf@yb.5\pgf@yb%
\ifdim\pgf@yb=45pt%
\def\pgfmathresult{1.414213}%
\else%
\pgfmathsin@{\pgf@sys@tonumber\pgf@yb}%
\pgfmathreciprocal@{\pgfmathresult}%
\fi%
\pgf@yc\pgfmathresult\pgfarrowlinewidth%
\pgf@yc.5\pgf@yc%
\pgf@ya-\pgf@ya%
\advance\pgf@ya by-90pt%
\advance\pgf@ya by\pgf@yb%
\pgfmathsincos@{\pgf@sys@tonumber\pgf@ya}%
\pgf@xb\pgfmathresultx\pgf@yc%
\pgf@yb\pgfmathresulty\pgf@yc%
\expandafter\expandafter\expandafter%
}\expandafter\expandafter\expandafter\pgf@xb\expandafter\the\expandafter\pgf@xb\expandafter\pgf@yb\the\pgf@yb%
\pgfutil@tempdima\pgfarrowlength%
\advance\pgfutil@tempdima by-\pgf@xc%
\pgfutil@tempdimb.5\pgfarrowwidth%
\advance\pgfutil@tempdimb by\pgf@yb%
\ifpgfarrowroundjoin
\pgfarrowssetbackend{\pgf@ya\advance\pgf@x by-.5\pgfarrowlinewidth}
\else
\pgfarrowssetbackend{0pt}
\fi
\ifpgfarrowreversed
\pgfarrowssetlineend{\pgfutil@tempdima\advance\pgf@x by-\pgflinewidth\advance\pgf@x by\pgfarrowlinewidth}
\else
\pgfarrowssetlineend{\pgf@yc\advance\pgf@x by\pgflinewidth\advance\pgf@x by-\pgfarrowlinewidth}
\fi
\ifpgfarrowroundjoin
\pgfarrowssettipend{\pgfutil@tempdima\advance\pgf@x by.5\pgfarrowlinewidth}
\else
\pgfarrowssettipend{\pgfarrowlength\ifpgfarrowharpoon\advance\pgf@x by\pgf@xa\fi}
\fi
\pgfarrowshullpoint{\pgfarrowlength\ifpgfarrowroundjoin\else\ifpgfarrowharpoon\advance\pgf@x by\pgf@xa\fi\fi}{\ifpgfarrowharpoon-.5\pgfarrowlinewidth\else0pt\fi}%
\pgfarrowsupperhullpoint{\pgfarrowinset}{.5\pgfarrowwidth}%
\pgfarrowshullpoint{0pt}{\ifpgfarrowharpoon-.5\pgfarrowlinewidth\else0pt\fi}%
\advance\pgfarrowinset by\pgf@xb%
\pgfarrowssavethe\pgfutil@tempdima
\pgfarrowssavethe\pgfutil@tempdimb
\pgfarrowssavethe\pgfarrowlinewidth
\pgfarrowssavethe\pgf@yc
\pgfarrowssavethe\pgfarrowinset
},
drawing code = {
\pgfsetdash{}{+0pt}
\ifpgfarrowroundjoin\pgfsetroundjoin\else\pgfsetmiterjoin\fi
\ifdim\pgfarrowlinewidth=\pgflinewidth\else\pgfsetlinewidth{\pgfarrowlinewidth}\fi
\pgfpathmoveto{\pgfqpoint{\pgfutil@tempdima}{0pt}}
\pgfpathlineto{\pgfqpoint{\pgfarrowinset}{\pgfutil@tempdimb}}
\pgfpathlineto{\pgfqpoint{\pgf@yc}{0pt}}
\ifpgfarrowharpoon \else
\pgfpathlineto{\pgfqpoint{\pgfarrowinset}{-\pgfutil@tempdimb}}
\fi
\pgfpathclose
\ifpgfarrowopen\pgfusepathqstroke\else\ifdim\pgfarrowlinewidth>0pt\pgfusepathqfillstroke\else\pgfusepathqfill\fi\fi
},
parameters = {
\the\pgfarrowlinewidth,%
\the\pgfarrowlength,%
\the\pgfarrowwidth,%
\the\pgfarrowinset,%
\ifpgfarrowharpoon h\fi%
\ifpgfarrowopen o\fi%
\ifpgfarrowroundjoin j\fi%
},
}%
\pgfdeclarearrow{
name = Square,
defaults = {
length = +2.12132pt +2.828427,
width' = +0pt +1,
line width = +0pt +1 +1,
},
setup code = {
\pgf@x.5\pgfarrowlength
\ifdim\pgf@x<\pgfarrowlinewidth
\pgfarrowlinewidth\pgf@x
\fi
\ifpgfarrowreversed
\pgfarrowssetlineend{\pgfarrowlength\advance\pgf@x by-.5\pgfarrowlinewidth}
\else
\pgfarrowssetlineend{.5\pgfarrowlinewidth}
\fi
\pgfarrowssettipend{\pgfarrowlength}
\pgfarrowshullpoint{\pgfarrowlength}{.5\pgfarrowwidth}
\pgfarrowshullpoint{0pt}{.5\pgfarrowwidth}
\pgfarrowshullpoint{\pgfarrowlength}{\ifpgfarrowharpoon-.5\pgfarrowlinewidth\else-.5\pgfarrowwidth\fi}
\pgfarrowshullpoint{0pt}{\ifpgfarrowharpoon-.5\pgfarrowlinewidth\else-.5\pgfarrowwidth\fi}
\pgfarrowssavethe\pgfarrowlinewidth
\pgfarrowssavethe\pgfarrowlength
\pgfarrowssavethe\pgfarrowwidth
},
drawing code = {
\pgfsetdash{}{+0pt}
\ifpgfarrowroundjoin\pgfsetroundjoin\else\pgfsetmiterjoin\fi
\ifdim\pgfarrowlinewidth=\pgflinewidth\else\pgfsetlinewidth{+\pgfarrowlinewidth}\fi
\pgfpathmoveto{\pgfqpoint{\pgfarrowlength\advance\pgf@x by-.5\pgfarrowlinewidth}{.5\pgfarrowwidth\advance\pgf@y by-.5\pgfarrowlinewidth}}
\pgfpathlineto{\pgfqpoint{.5\pgfarrowlinewidth}{.5\pgfarrowwidth\advance\pgf@y by-.5\pgfarrowlinewidth}}
\pgfpathlineto{\pgfqpoint{.5\pgfarrowlinewidth}{\ifpgfarrowharpoon0pt\else-.5\pgfarrowwidth\advance\pgf@y by.5\pgfarrowlinewidth\fi}}
\pgfpathlineto{\pgfqpoint{\pgfarrowlength\advance\pgf@x by-.5\pgfarrowlinewidth}{\ifpgfarrowharpoon0pt\else-.5\pgfarrowwidth\advance\pgf@y by.5\pgfarrowlinewidth\fi}}
\pgfpathclose
\ifpgfarrowopen\pgfusepathqstroke\else\ifdim\pgfarrowlinewidth>0pt\pgfusepathqfillstroke\else\pgfusepathqfill\fi\fi
},
parameters = {
\the\pgfarrowlinewidth,%
\the\pgfarrowlength,%
\the\pgfarrowwidth,%
\ifpgfarrowharpoon h\fi%
\ifpgfarrowopen o\fi%
\ifpgfarrowroundjoin j\fi%
},
}%
\pgfdeclarearrow{
name = Circle,
defaults = {
length = +2.39365pt +3.191538,
width' = +0pt 1,
line width = +0pt 1 1,
},
setup code = {
\pgf@x.5\pgfarrowlength
\ifdim\pgf@x<\pgfarrowlinewidth
\pgfarrowlinewidth\pgf@x
\fi
\ifpgfarrowreversed
\pgfarrowssetlineend{\pgfarrowlength\advance\pgf@x by-.5\pgfarrowlinewidth}
\else
\pgfarrowssetlineend{.5\pgfarrowlinewidth}
\fi
\pgfarrowssettipend{\pgfarrowlength}
\pgfarrowsupperhullpoint{\pgfarrowlength}{.25\pgfarrowwidth}
\pgfarrowsupperhullpoint{.75\pgfarrowlength}{.5\pgfarrowwidth}
\pgfarrowsupperhullpoint{.25\pgfarrowlength}{.5\pgfarrowwidth}
\pgfarrowsupperhullpoint{0pt}{.25\pgfarrowwidth}
\ifpgfarrowharpoon%
\pgfarrowshullpoint{0pt}{-.5\pgfarrowlinewidth}
\pgfarrowshullpoint{\pgfarrowlength}{-.5\pgfarrowlinewidth}
\fi%
\pgfarrowssavethe\pgfarrowlinewidth
\pgfarrowssavethe\pgfarrowlength
\pgfarrowssavethe\pgfarrowwidth
},
drawing code = {
\pgfsetdash{}{+0pt}
\ifpgfarrowroundjoin\pgfsetroundjoin\else\pgfsetmiterjoin\fi
\ifdim\pgfarrowlinewidth=\pgflinewidth\else\pgfsetlinewidth{+\pgfarrowlinewidth}\fi
\ifpgfarrowharpoon
\pgfpathmoveto{\pgfqpoint{\pgfarrowlength\advance\pgf@x
by-.5\pgfarrowlinewidth}{0pt}}
{%
\pgf@xa.5\pgfarrowlength
\advance\pgf@xa by-.5\pgfarrowlinewidth
\pgftransformxscale{+\the\pgf@xa}
\pgf@xa.5\pgfarrowwidth
\advance\pgf@xa by-.5\pgfarrowlinewidth
\pgftransformyscale{+\the\pgf@xa}
\pgfpatharc{0}{180}{1pt}
}
\pgfpathclose
\else%
\pgfpathellipse{\pgfqpoint{.5\pgfarrowlength}{0pt}}{\pgfqpoint{.5\pgfarrowlength\advance\pgf@x
by-.5\pgfarrowlinewidth}{0pt}}{\pgfqpoint{0pt}{.5\pgfarrowwidth\advance\pgf@y
by-.5\pgfarrowlinewidth}}
\fi
\ifpgfarrowopen\pgfusepathqstroke\else\ifdim\pgfarrowlinewidth>0pt\pgfusepathqfillstroke\else\pgfusepathqfill\fi\fi
},
parameters = {
\the\pgfarrowlinewidth,%
\the\pgfarrowlength,%
\the\pgfarrowwidth,%
\ifpgfarrowharpoon h\fi%
\ifpgfarrowopen o\fi%
\ifpgfarrowroundjoin j\fi%
},
}%
\pgfdeclarearrow{
name = Round Cap,
defaults = {
length = +0pt .5
},
setup code = {
\ifpgfarrowreversed
\pgfarrowssettipend{\pgfarrowlength}
\pgfarrowssetlineend{\pgfarrowlength\advance\pgf@x by.5\pgflinewidth}
\else
\pgfarrowssettipend{\pgfarrowlength}
\pgfarrowssetlineend{-.5\pgflinewidth}
\fi
\pgfarrowssavethe\pgfarrowlength
\pgfarrowsupperhullpoint{0pt}{.5\pgflinewidth}
\pgfarrowsupperhullpoint{\pgfarrowlength}{.5\pgflinewidth}
},
drawing code = {
\ifpgfarrowreversed
\pgftransformxscale{-1}
\pgftransformxshift{-\pgfarrowlength}
\fi
\pgfutil@tempdima.5\pgflinewidth
\pgfpathmoveto {\pgfqpoint{-0.75\pgflinewidth}{\pgfutil@tempdima}}
\pgfpathlineto {\pgfqpoint{0pt}{\pgfutil@tempdima}}
\ifpgfarrowreversed
\pgfpathlineto {\pgfqpoint{\pgfarrowlength}{\pgfutil@tempdima}}
\begingroup
\pgftransformxshift{\pgfarrowlength}
\pgftransformxscale{-1}
\fi
\pgfpathcurveto {\pgfqpoint{0.55228475\pgfarrowlength}{\pgfutil@tempdima}}
{\pgfqpoint{\pgfarrowlength}{0.55228475\pgfutil@tempdima}}
{\pgfqpoint{\pgfarrowlength}{0pt}}
\pgfpathcurveto {\pgfqpoint{\pgfarrowlength}{-0.55228475\pgfutil@tempdima}}
{\pgfqpoint{0.55228475\pgfarrowlength}{-\pgfutil@tempdima}}
{\pgfqpoint{0pt}{-\pgfutil@tempdima}}
\ifpgfarrowreversed
\endgroup
\fi
\pgfpathlineto {\pgfqpoint{-.75\pgflinewidth}{-\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqfill
},
parameters = {\the\pgfarrowlength}
}%
\pgfdeclarearrow{
name = Butt Cap,
defaults = {
length = +0pt .5
},
setup code = {
\pgfarrowssettipend{\pgfarrowlength}
\pgfarrowssetlineend{-.5\pgflinewidth}
\pgfarrowssavethe\pgfarrowlength
\pgfarrowsupperhullpoint{0pt}{.5\pgflinewidth}
\pgfarrowsupperhullpoint{\pgfarrowlength}{.5\pgflinewidth}
},
drawing code = {
\pgfutil@tempdima.5\pgflinewidth
\pgfpathmoveto {\pgfqpoint{-0.75\pgflinewidth}{\pgfutil@tempdima}}
\pgfpathlineto {\pgfqpoint{0pt}{\pgfutil@tempdima}}
\pgfpathlineto {\pgfqpoint{\pgfarrowlength}{\pgfutil@tempdima}}
\pgfpathlineto {\pgfqpoint{\pgfarrowlength}{-\pgfutil@tempdima}}
\pgfpathlineto {\pgfqpoint{-.75\pgflinewidth}{-\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqfill
},
parameters = {\the\pgfarrowlength}
}%
\pgfkeys{
/pgf/arrow keys/.cd,
cap angle/.code={%
\pgfmathsetlength\pgf@x{#1}%
\pgf@x.5\pgf@x
\pgfmathtan@{\pgf@sys@tonumber\pgf@x}%
\pgfmathreciprocal@{\pgfmathresult}%
\pgf@x\pgfmathresult pt%
\pgf@x.5\pgf@x%
\edef\pgf@marshal{\noexpand\pgfarrowsaddtooptions{\noexpand\pgfarrowslinewidthdependent{+0pt}{\pgf@sys@tonumber\pgf@x}{0}\pgfarrowlength\pgf@x}}
\pgf@marshal
}
}%
\pgfdeclarearrow{
name = Triangle Cap,
defaults = {
length = +0pt .5
},
setup code = {
\ifpgfarrowreversed
\pgfarrowssettipend{\pgfarrowlength}
\pgfarrowssetlineend{\pgfarrowlength\advance\pgf@x by.5\pgflinewidth}
\else
\pgfarrowssettipend{\pgfarrowlength}
\pgfarrowssetlineend{-.5\pgflinewidth}
\fi
\pgfarrowssavethe\pgfarrowlength
\pgfarrowsupperhullpoint{0pt}{.5\pgflinewidth}
\pgfarrowshullpoint{\pgfarrowlength}{0pt}
},
drawing code = {
\ifpgfarrowreversed
\pgftransformxscale{-1}
\pgftransformxshift{-\pgfarrowlength}
\fi
\pgfutil@tempdima.5\pgflinewidth
\pgfpathmoveto {\pgfqpoint{-0.75\pgflinewidth}{\pgfutil@tempdima}}
\pgfpathlineto {\pgfqpoint{0pt}{\pgfutil@tempdima}}
\ifpgfarrowreversed
\pgfpathlineto {\pgfqpoint{\pgfarrowlength}{\pgfutil@tempdima}}
\begingroup
\pgftransformxshift{\pgfarrowlength}
\pgftransformxscale{-1}
\fi
\pgfpathlineto {\pgfqpoint{\pgfarrowlength}{0pt}}
\ifpgfarrowreversed
\endgroup
\pgfpathlineto {\pgfqpoint{\pgfarrowlength}{-\pgfutil@tempdima}}
\fi
\pgfpathlineto {\pgfqpoint{0pt}{-\pgfutil@tempdima}}
\pgfpathlineto {\pgfqpoint{-.75\pgflinewidth}{-\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqfill
},
parameters = {\the\pgfarrowlength}
}%
\pgfdeclarearrow{
name = Fast Triangle,
defaults = {
length = +0pt .5,
inset = +0pt .5,
},
setup code = {
\pgfarrowssettipend{\pgfarrowlength\advance\pgf@x by\pgfarrowinset}
\ifpgfarrowreversed\pgfarrowssetlineend{\pgfarrowlength\advance\pgf@x by\pgfarrowinset}\fi
\pgfarrowssavethe\pgfarrowlength
\pgfarrowssavethe\pgfarrowinset
\pgfarrowsupperhullpoint{0pt}{.5\pgflinewidth}
\pgfarrowsupperhullpoint{\pgfarrowinset}{.5\pgflinewidth}
\pgfarrowshullpoint{\pgfarrowlength\advance\pgf@x by\pgfarrowinset}{0pt}
},
drawing code = {
\pgfutil@tempdima.5\pgflinewidth
\pgfpathmoveto {\pgfqpoint{0pt}{\pgfutil@tempdima}}
\pgfpathlineto {\pgfqpoint{\pgfarrowinset}{\pgfutil@tempdima}}
\pgfpathlineto {\pgfqpoint{\pgfarrowinset\advance\pgf@x by\pgfarrowlength}{0pt}}
\pgfpathlineto {\pgfqpoint{\pgfarrowinset}{-\pgfutil@tempdima}}
\pgfpathlineto {\pgfqpoint{0pt}{-\pgfutil@tempdima}}
\pgfpathlineto {\pgfqpoint{\pgfarrowlength}{0pt}}
\pgfpathclose
\pgfusepathqfill
},
parameters = {\the\pgfarrowlength,\the\pgfarrowinset}
}%
\pgfdeclarearrow{
name = Fast Round,
defaults = {
length = +0pt .5,
inset = +0pt .5,
},
setup code = {
\pgfarrowssettipend{\pgfarrowlength\advance\pgf@x by\pgfarrowinset}
\ifpgfarrowreversed\pgfarrowssetlineend{\pgfarrowlength\advance\pgf@x by\pgfarrowinset}\fi
\pgfarrowssavethe\pgfarrowlength
\pgfarrowssavethe\pgfarrowinset
\pgfarrowsupperhullpoint{0pt}{.5\pgflinewidth}
\pgfarrowsupperhullpoint{\pgfarrowlength\advance\pgf@x by\pgfarrowinset}{.5\pgflinewidth}
},
drawing code = {
\pgfutil@tempdima.5\pgflinewidth
\pgfpathmoveto {\pgfqpoint{0pt}{\pgfutil@tempdima}}
\pgfpathlineto {\pgfqpoint{\pgfarrowinset}{\pgfutil@tempdima}}
{
\pgftransformxshift{\pgfarrowinset}
\pgfpathcurveto{\pgfqpoint{0.55228475\pgfarrowlength}{\pgfutil@tempdima}}
{\pgfqpoint{\pgfarrowlength}{0.55228475\pgfutil@tempdima}}
{\pgfqpoint{\pgfarrowlength}{0pt}}
\pgfpathcurveto{\pgfqpoint{\pgfarrowlength}{-0.55228475\pgfutil@tempdima}}
{\pgfqpoint{0.55228475\pgfarrowlength}{-\pgfutil@tempdima}}
{\pgfqpoint{0pt}{-\pgfutil@tempdima}}
}
\pgfpathlineto {\pgfqpoint{0pt}{-\pgfutil@tempdima}}
\pgfpathcurveto {\pgfqpoint{0.55228475\pgfarrowlength}{-\pgfutil@tempdima}}
{\pgfqpoint{\pgfarrowlength}{-0.55228475\pgfutil@tempdima}}
{\pgfqpoint{\pgfarrowlength}{0pt}}
\pgfpathcurveto {\pgfqpoint{\pgfarrowlength}{0.55228475\pgfutil@tempdima}}
{\pgfqpoint{0.55228475\pgfarrowlength}{\pgfutil@tempdima}}
{\pgfqpoint{0pt}{\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqfill
},
parameters = {\the\pgfarrowlength,\the\pgfarrowinset}
}%
\pgfkeys{
/pgf/arrow keys/.cd,
n/.code={%
\pgfmathparse{#1}%
\expandafter\pgf@lib@meta@strip@dot\pgfmathresult.\relax%
}
}%
\def\pgf@lib@meta@strip@dot#1.#2\relax{%
\pgfarrowsaddtooptions{\def\pgfarrown{#1}}%
}%
\def\pgfarrown{4}%
\pgfdeclarearrow{
name = Rays,
defaults = {
length = +3pt 4,
width' = +0pt 1,
line width = +0pt 1 1,
},
setup code = {
\pgfmathdivide@{360}{\pgfarrown}%
\let\pgfarrow@inc\pgfmathresult%
\pgf@xa\pgfarrow@inc pt%
\ifodd\pgfarrown\pgf@ya.25\pgf@xa\else\pgf@ya.5\pgf@xa\fi%
\pgfmathsincos@{\pgf@sys@tonumber\pgf@ya}%
\pgf@x.5\pgfarrowlength%
\pgf@xa\pgfmathresultx\pgf@x%
\ifpgfarrowroundcap
\advance\pgf@xa by.5\pgfarrowlinewidth
\else
\pgf@process{\pgfpointnormalised{\pgfqpoint{\pgfmathresultx\pgfarrowlength}{\pgfmathresulty\pgfarrowwidth}}}%
\pgf@x.5\pgfarrowlinewidth%
\advance\pgf@xa by\pgf@sys@tonumber{\pgf@y}\pgf@x%
\fi%
\pgfarrowssettipend{\pgf@xa}
\pgfarrowssetbackend{-\pgf@xa}
\pgfarrowsupperhullpoint{\pgf@xa}{.25\pgfarrowwidth}
\pgfarrowsupperhullpoint{.25\pgfarrowlength}{.5\pgfarrowwidth\ifpgfarrowroundcap\advance\pgf@y by.5\pgfarrowlinewidth\fi}
\pgfarrowsupperhullpoint{-.25\pgfarrowlength}{.5\pgfarrowwidth\ifpgfarrowroundcap\advance\pgf@y by.5\pgfarrowlinewidth\fi}
\pgfarrowsupperhullpoint{-\pgf@xa}{.25\pgfarrowwidth}
\ifpgfarrowharpoon
\pgfarrowshullpoint{-.5\pgfarrowlength\ifpgfarrowroundcap\advance\pgf@x by-.5\pgfarrowlinewidth\fi}{-.5\pgfarrowlinewidth}
\pgfarrowshullpoint{.5\pgfarrowlength\ifpgfarrowroundcap\advance\pgf@x by.5\pgfarrowlinewidth\fi}{-.5\pgfarrowlinewidth}
\fi
\pgfarrowssavethe\pgfarrowlinewidth
\pgfarrowssavethe\pgfarrowlength
\pgfarrowssavethe\pgfarrowwidth
\pgfarrowssave\pgfarrow@inc
\pgfarrowssave\pgfarrown
},
drawing code = {
\pgfsetdash{}{+0pt}
\ifpgfarrowroundcap\pgfsetroundcap\else\pgfsetbuttcap\fi
\ifdim\pgfarrowlinewidth=\pgflinewidth\else\pgfsetlinewidth{+\pgfarrowlinewidth}\fi
{%
\pgfgettransform\pgf@temp@trans
\pgftransformxscale{+.5\pgfarrowlength}
\pgftransformyscale{+.5\pgfarrowwidth}
\pgf@xa\pgfarrow@inc pt%
\ifodd\pgfarrown\pgf@ya.25\pgf@xa\else\pgf@ya.5\pgf@xa\fi%
\ifpgfarrowharpoon\pgf@yb180pt\else\pgf@yb360pt\fi
\pgfutil@loop%
\ifdim\pgf@ya<\pgf@yb%
\pgfpathmoveto{\pgfpointpolar{+\pgf@ya}{+1pt}}
\pgfpathlineto{\pgfpointorigin}
\ifpgfarrowharpoon\ifdim\pgf@ya>\pgf@xa\else{\pgfsettransform\pgf@temp@trans\pgfpathlineto{\pgfqpoint{-.5\pgflinewidth}{0pt}}}\fi\fi
\advance\pgf@ya by\pgf@xa\relax%
\pgfutil@repeat%
}
\pgfusepathqstroke
},
parameters = {
\the\pgfarrowlinewidth,%
\the\pgfarrowlength,%
\the\pgfarrowwidth,%
\pgfarrown,%
\ifpgfarrowharpoon h\fi%
\ifpgfarrowroundcap c\fi%
}
}%
\pgfkeys{
LaTeX /.tip = {Latex},
Triangle /.tip = {Stealth[inset=+0pt, angle=+60:+2.7pt +3.6]},
Rectangle /.tip = {Square[length=+3pt +4.5,width'=+0pt +.5]},
Ellipse /.tip = {Circle[length=+3.3pt +4.95, width'=+0pt +0.5]},
Diamond /.tip = {Kite[inset'=+0pt .5]},
Turned Square /.tip = {Kite[length=+3pt 4,width'= +0pt 1,inset'= +0pt 0.5]},
To /.tip = {Computer Modern Rightarrow},
Bar /.tip = {Tee Barb[length=+0pt]},
Bracket /.tip = {Tee Barb[inset'=+0pt +1,length=+0.75pt +1]},
Parenthesis /.tip = {Arc Barb[arc=+120,length=+1.725pt +2.3]}
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryarrows.meta.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryarrows.spaced.code.tex ====
\ProvidesFileRCS{pgflibraryarrows.spaced.code.tex}
\usepgflibrary{arrows}%
\pgfarrowsdeclarecombine*{spaced to}{spaced to}{to}{to}{space}{space}%
\pgfarrowsdeclarecombine*{spaced to reversed}{spaced to reversed}{to reversed}{to reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced implies}{spaced implies}{implies}{implies}{space}{space}%
\pgfarrowsdeclarecombine*{spaced latex}{spaced latex}{latex}{latex}{space}{space}%
\pgfarrowsdeclarecombine*{spaced latex reversed}{spaced latex reversed}{latex reversed}{latex reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced latex'}{spaced latex'}{latex'}{latex'}{space}{space}%
\pgfarrowsdeclarecombine*{spaced latex' reversed}{spaced latex' reversed}{latex' reversed}{latex' reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced stealth}{spaced stealth}{stealth}{stealth}{space}{space}%
\pgfarrowsdeclarecombine*{spaced stealth reversed}{spaced stealth reversed}{stealth reversed}{stealth reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced stealth'}{spaced stealth'}{stealth'}{stealth'}{space}{space}%
\pgfarrowsdeclarecombine*{spaced stealth' reversed}{spaced stealth' reversed}{stealth' reversed}{stealth' reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced triangle 90}{spaced triangle 90}{triangle 90}{triangle 90}{space}{space}%
\pgfarrowsdeclarecombine*{spaced triangle 90 reversed}{spaced triangle 90 reversed}{triangle 90 reversed}{triangle 90 reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced triangle 60}{spaced triangle 60}{triangle 60}{triangle 60}{space}{space}%
\pgfarrowsdeclarecombine*{spaced triangle 60 reversed}{spaced triangle 60 reversed}{triangle 60 reversed}{triangle 60 reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced triangle 45}{spaced triangle 45}{triangle 45}{triangle 45}{space}{space}%
\pgfarrowsdeclarecombine*{spaced triangle 45 reversed}{spaced triangle 45 reversed}{triangle 45 reversed}{triangle 45 reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced open triangle 90}{spaced open triangle 90}{open triangle 90}{open triangle 90}{space}{space}%
\pgfarrowsdeclarecombine*{spaced open triangle 90 reversed}{spaced open triangle 90 reversed}{open triangle 90 reversed}{open triangle 90 reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced open triangle 60}{spaced open triangle 60}{open triangle 60}{open triangle 60}{space}{space}%
\pgfarrowsdeclarecombine*{spaced open triangle 60 reversed}{spaced open triangle 60 reversed}{open triangle 60 reversed}{open triangle 60 reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced open triangle 45}{spaced open triangle 45}{open triangle 45}{open triangle 45}{space}{space}%
\pgfarrowsdeclarecombine*{spaced open triangle 45 reversed}{spaced open triangle 45 reversed}{open triangle 45 reversed}{open triangle 45 reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced angle 90}{spaced angle 90}{angle 90}{angle 90}{space}{space}%
\pgfarrowsdeclarecombine*{spaced angle 90 reversed}{spaced angle 90 reversed}{angle 90 reversed}{angle 90 reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced angle 60}{spaced angle 60}{angle 60}{angle 60}{space}{space}%
\pgfarrowsdeclarecombine*{spaced angle 60 reversed}{spaced angle 60 reversed}{angle 60 reversed}{angle 60 reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced angle 45}{spaced angle 45}{angle 45}{angle 45}{space}{space}%
\pgfarrowsdeclarecombine*{spaced angle 45 reversed}{spaced angle 45 reversed}{angle 45 reversed}{angle 45 reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced hooks}{spaced hooks}{hooks}{hooks}{space}{space}%
\pgfarrowsdeclarecombine*{spaced hooks reversed}{spaced hooks reversed}{hooks reversed}{hooks reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced o}{spaced o}{o}{o}{space}{space}%
\pgfarrowsdeclarecombine*{spaced *}{spaced *}{*}{*}{space}{space}%
\pgfarrowsdeclarecombine*{spaced diamond}{spaced diamond}{diamond}{diamond}{space}{space}%
\pgfarrowsdeclarecombine*{spaced open diamond}{spaced open diamond}{open diamond}{open diamond}{space}{space}%
\pgfarrowsdeclarecombine*{spaced square}{spaced square}{square}{square}{space}{space}%
\pgfarrowsdeclarecombine*{spaced open square}{spaced open square}{open square}{open square}{space}{space}%
\pgfarrowsdeclarecombine*{spaced serif cm}{spaced serif cm}{serif cm}{serif cm}{space}{space}%
\pgfarrowsdeclarecombine*{spaced left to}{spaced left to}{left to}{left to}{space}{space}%
\pgfarrowsdeclarecombine*{spaced left to reversed}{spaced left to reversed}{left to reversed}{left to reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced right to}{spaced right to}{right to}{right to}{space}{space}%
\pgfarrowsdeclarecombine*{spaced right to reversed}{spaced right to reversed}{right to reversed}{right to reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced left hook}{spaced left hook}{left hook}{left hook}{space}{space}%
\pgfarrowsdeclarecombine*{spaced left hook reversed}{spaced left hook reversed}{left hook reversed}{left hook reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced right hook}{spaced right hook}{right hook}{right hook}{space}{space}%
\pgfarrowsdeclarecombine*{spaced right hook reversed}{spaced right hook reversed}{right hook reversed}{right hook reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced round cap}{spaced round cap}{round cap}{round cap}{space}{space}%
\pgfarrowsdeclarecombine*{spaced butt cap}{spaced butt cap}{butt cap}{butt cap}{space}{space}%
\pgfarrowsdeclarecombine*{spaced triangle 90 cap}{spaced triangle 90 cap}{triangle 90 cap}{triangle 90 cap}{space}{space}%
\pgfarrowsdeclarecombine*{spaced triangle 90 cap reversed}{spaced triangle 90 cap reversed}{triangle 90 cap reversed}{triangle 90 cap reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced fast cap}{spaced fast cap}{fast cap}{fast cap}{space}{space}%
\pgfarrowsdeclarecombine*{spaced fast cap reversed}{spaced fast cap reversed}{fast cap reversed}{fast cap reversed}{space}{space}%
\pgfarrowsdeclarecombine*{spaced (}{spaced )}{(}{)}{space}{space}%
\pgfarrowsdeclarecombine*{spaced )}{spaced (}{)}{(}{space}{space}%
\pgfarrowsdeclarecombine*{spaced |}{spaced |}{|}{|}{space}{space}%
\pgfdeclarearrow{
name = spaced [-spaced ],
means = square bracket[].space
}%
\pgfdeclarearrow{
name = spaced ]-spaced [,
means = square bracket[reversed].space
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryarrows.spaced.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarycurvilinear.code.tex ====
\ProvidesFileRCS{pgflibrarycurvilinear.code.tex}
\def\pgfsetcurvilinearbeziercurve#1#2#3#4{%
\pgf@process{#1}%
\edef\pgf@curvilinear@line@a{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgf@xa=-\pgf@x%
\pgf@ya=-\pgf@y%
\pgf@process{#2}%
\edef\pgf@curvilinear@line@b{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgf@xb=-\pgf@x%
\pgf@yb=-\pgf@y%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\let\pgf@curvilinear@lenab\pgfmathresult%
\pgf@process{#3}%
\edef\pgf@curvilinear@line@c{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgf@xc=-\pgf@x%
\pgf@yc=-\pgf@y%
\advance\pgf@x by\pgf@xb%
\advance\pgf@y by\pgf@yb%
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\let\pgf@curvilinear@lenbc\pgfmathresult%
\pgf@process{#4}%
\edef\pgf@curvilinear@line@d{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\advance\pgf@x by\pgf@xc%
\advance\pgf@y by\pgf@yc%
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\let\pgf@curvilinear@lencd\pgfmathresult
\pgf@x=\pgf@curvilinear@lenab pt%
\advance\pgf@x by\pgf@curvilinear@lenbc pt%
\advance\pgf@x by\pgf@curvilinear@lencd pt%
\pgfmathreciprocal@{\pgf@sys@tonumber\pgf@x}%
\pgf@curvilinear@time@a\pgfmathresult pt%
\pgf@process{\pgfpointcurveattime{\pgf@curvilinear@time@a}{\pgf@curvilinear@line@a}{\pgf@curvilinear@line@b}{\pgf@curvilinear@line@c}{\pgf@curvilinear@line@d}}%
\pgf@xb=-\pgf@x%
\pgf@yb=-\pgf@y%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\pgf@curvilinear@length@a\pgfmathresult pt%
\ifdim\pgf@curvilinear@length@a>1pt\relax%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@curvilinear@time@a}{\pgf@sys@tonumber\pgf@curvilinear@length@a}%
\pgf@curvilinear@time@a\pgfmathresult pt%
\pgf@process{\pgfpointcurveattime{\pgf@curvilinear@time@a}{\pgf@curvilinear@line@a}{\pgf@curvilinear@line@b}{\pgf@curvilinear@line@c}{\pgf@curvilinear@line@d}}
\pgf@xb=-\pgf@x%
\pgf@yb=-\pgf@y%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\pgf@curvilinear@length@a\pgfmathresult pt%
\fi%
\pgf@process{\pgfpointcurveattime{2\pgf@curvilinear@time@a}{\pgf@curvilinear@line@a}{\pgf@curvilinear@line@b}{\pgf@curvilinear@line@c}{\pgf@curvilinear@line@d}}
\pgf@xa=-\pgf@x%
\pgf@ya=-\pgf@y%
\advance\pgf@x by\pgf@xb%
\advance\pgf@y by\pgf@yb%
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\pgf@curvilinear@length@b\pgfmathresult pt%
\advance\pgf@curvilinear@length@b by\pgf@curvilinear@length@a%
\pgf@process{\pgfpointcurveattime{4\pgf@curvilinear@time@a}{\pgf@curvilinear@line@a}{\pgf@curvilinear@line@b}{\pgf@curvilinear@line@c}{\pgf@curvilinear@line@d}}
\pgf@xb=-\pgf@x%
\pgf@yb=-\pgf@y%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\pgf@curvilinear@length@c\pgfmathresult pt%
\advance\pgf@curvilinear@length@c by\pgf@curvilinear@length@b%
\pgf@process{\pgfpointcurveattime{8\pgf@curvilinear@time@a}{\pgf@curvilinear@line@a}{\pgf@curvilinear@line@b}{\pgf@curvilinear@line@c}{\pgf@curvilinear@line@d}}
\advance\pgf@x by\pgf@xb%
\advance\pgf@y by\pgf@yb%
\pgfmathveclen@{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
\pgf@curvilinear@length@d\pgfmathresult pt%
\advance\pgf@curvilinear@length@d by\pgf@curvilinear@length@c%
\let\pgf@curvilinear@comp@a\pgf@curvilinear@comp@a@initial%
\let\pgf@curvilinear@comp@b\pgf@curvilinear@comp@b@initial%
\let\pgf@curvilinear@comp@c\pgf@curvilinear@comp@c@initial%
\let\pgf@curvilinear@comp@d\pgf@curvilinear@comp@d@initial%
\let\pgf@curvilinear@comp@e\pgf@curvilinear@comp@e@initial%
\let\pgf@curvilinear@point\pgf@curvilinear@curve@point%
}%
\newdimen\pgf@curvilinear@time@a
\newdimen\pgf@curvilinear@length@a
\newdimen\pgf@curvilinear@length@b
\newdimen\pgf@curvilinear@length@c
\newdimen\pgf@curvilinear@length@d
\def\pgf@curvilinear@comp@a@initial{%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@curvilinear@time@a}{\pgf@sys@tonumber\pgf@curvilinear@length@a}%
\let\pgf@curvilinear@quot@a\pgfmathresult%
\let\pgf@curvilinear@comp@a\pgf@curvilinear@comp@a@cont%
\pgf@curvilinear@comp@a@cont%
}%
\def\pgf@curvilinear@comp@a@cont{%
\pgf@x\pgf@curvilinear@quot@a\pgf@x%
}%
\def\pgf@curvilinear@comp@b@initial{%
\pgf@y=\pgf@curvilinear@length@b%
\advance\pgf@y by-\pgf@curvilinear@length@a%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@curvilinear@time@a}{\pgf@sys@tonumber\pgf@y}%
\let\pgf@curvilinear@quot@b\pgfmathresult%
\pgf@y\pgfmathresult\pgf@curvilinear@length@a%
\pgf@y-\pgf@y%
\advance\pgf@y by\pgf@curvilinear@time@a%
\edef\pgf@curvilinear@correct@b{\pgf@sys@tonumber\pgf@y}%
\let\pgf@curvilinear@comp@b\pgf@curvilinear@comp@b@cont%
\pgf@curvilinear@comp@b@cont%
}%
\def\pgf@curvilinear@comp@b@cont{%
\pgf@x\pgf@curvilinear@quot@b\pgf@x%
\advance\pgf@x by\pgf@curvilinear@correct@b pt%
}%
\def\pgf@curvilinear@comp@c@initial{%
\pgf@y=\pgf@curvilinear@length@c%
\advance\pgf@y by-\pgf@curvilinear@length@b%
\pgf@y.5\pgf@y%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@curvilinear@time@a}{\pgf@sys@tonumber\pgf@y}%
\let\pgf@curvilinear@quot@c\pgfmathresult%
\pgf@y\pgf@curvilinear@quot@c\pgf@curvilinear@length@b%
\pgf@y-\pgf@y%
\advance\pgf@y by2\pgf@curvilinear@time@a%
\edef\pgf@curvilinear@correct@c{\pgf@sys@tonumber\pgf@y}%
\let\pgf@curvilinear@comp@c\pgf@curvilinear@comp@c@cont%
\pgf@curvilinear@comp@c@cont%
}%
\def\pgf@curvilinear@comp@c@cont{%
\pgf@x\pgf@curvilinear@quot@c\pgf@x%
\advance\pgf@x by\pgf@curvilinear@correct@c pt%
}%
\def\pgf@curvilinear@comp@d@initial{%
\pgf@y=\pgf@curvilinear@length@d%
\advance\pgf@y by-\pgf@curvilinear@length@c%
\pgf@y.25\pgf@y%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@curvilinear@time@a}{\pgf@sys@tonumber\pgf@y}%
\let\pgf@curvilinear@quot@d\pgfmathresult%
\pgf@y\pgf@curvilinear@quot@d\pgf@curvilinear@length@c%
\pgf@y-\pgf@y%
\advance\pgf@y by4\pgf@curvilinear@time@a%
\edef\pgf@curvilinear@correct@d{\pgf@sys@tonumber\pgf@y}%
\let\pgf@curvilinear@comp@d\pgf@curvilinear@comp@d@cont%
\pgf@curvilinear@comp@d@cont%
}%
\def\pgf@curvilinear@comp@d@cont{%
\pgf@x\pgf@curvilinear@quot@d\pgf@x%
\advance\pgf@x by\pgf@curvilinear@correct@d pt%
}%
\def\pgf@curvilinear@comp@e@initial{%
\pgfmathmultiply@{8}{\pgf@sys@tonumber\pgf@curvilinear@time@a}%
\expandafter\pgfmathdivide@\expandafter{\pgfmathresult}{\pgf@sys@tonumber\pgf@curvilinear@length@d}%
\let\pgf@curvilinear@quot@e\pgfmathresult%
\let\pgf@curvilinear@comp@e\pgf@curvilinear@comp@e@cont%
\pgf@curvilinear@comp@e@cont%
}%
\def\pgf@curvilinear@comp@e@cont{%
\pgf@x\pgf@curvilinear@quot@e\pgf@x%
}%
\def\pgfcurvilineardistancetotime#1{%
\pgfmathsetlength{\pgf@x}{#1}%
\ifdim\pgf@x<\pgf@curvilinear@length@c\relax%
\ifdim\pgf@x<\pgf@curvilinear@length@a\relax%
\pgf@curvilinear@comp@a%
\else\ifdim\pgf@x<\pgf@curvilinear@length@b\relax%
\pgf@curvilinear@comp@b%
\else%
\pgf@curvilinear@comp@c%
\fi\fi%
\else\ifdim\pgf@x<\pgf@curvilinear@length@d\relax%
\pgf@curvilinear@comp@d%
\else%
\pgf@curvilinear@comp@e%
\fi\fi%
}%
\def\pgfpointcurvilinearbezierorthogonal#1#2{%
\pgfmathsetmacro\pgf@curvilinear@yfactor{#2}%
\pgfcurvilineardistancetotime{#1}%
\pgfpointcurveattime{\pgf@x}{\pgf@curvilinear@line@a}{\pgf@curvilinear@line@b}{\pgf@curvilinear@line@c}{\pgf@curvilinear@line@d}
\pgf@xc\pgf@x%
\pgf@yc\pgf@y%
\advance\pgf@xb by-\pgf@xa%
\advance\pgf@yb by-\pgf@ya%
\ifdim\pgf@xb<0.0001pt\ifdim\pgf@xb>-0.0001pt\ifdim\pgf@yb<0.0001pt\ifdim\pgf@yb>-0.0001pt\pgf@diff@curvi@ac\fi\fi\fi\fi
\pgf@process{\pgfpointnormalised{\pgf@x=\pgf@yb\pgf@y=-\pgf@xb}}
\pgf@x\pgf@curvilinear@yfactor\pgf@x%
\pgf@y\pgf@curvilinear@yfactor\pgf@y%
\advance\pgf@x by\pgf@xc%
\advance\pgf@y by\pgf@yc%
}%
\def\pgf@diff@curvi@ac{%
\pgf@curvilinear@line@a%
\pgf@xa\pgf@x\pgf@ya\pgf@y%
\pgf@curvilinear@line@c%
\pgf@xb\pgf@x\pgf@yb\pgf@y%
\advance\pgf@xb by-\pgf@xa%
\advance\pgf@yb by-\pgf@ya%
\ifdim\pgf@xb<0.0001pt\ifdim\pgf@xb>-0.0001pt\ifdim\pgf@yb<0.0001pt\ifdim\pgf@yb>-0.0001pt%
\pgf@curvilinear@line@d%
\pgf@xb\pgf@x\pgf@yb\pgf@y%
\advance\pgf@xb by-\pgf@xa%
\advance\pgf@yb by-\pgf@ya%
\fi\fi\fi\fi%
\pgf@xb-\pgf@xb%
\pgf@yb-\pgf@yb%
}%
\def\pgfpointcurvilinearbezierpolar#1#2{%
\pgfmathsetlength\pgfutil@tempdima{#1}%
\pgfmathsetlength\pgfutil@tempdimb{#2}%
\pgfpointnormalised{\pgfqpoint{\pgfutil@tempdima}{\pgfutil@tempdimb}}%
\ifdim\pgfutil@tempdimb=0pt\relax\ifdim\pgfutil@tempdima=0pt\pgf@x1pt\pgf@y0pt\fi\fi%
\ifdim\pgfutil@tempdima<0pt%
\pgf@x-\pgf@x%
\pgf@y-\pgf@y%
\fi%
\pgf@ya=-\pgf@y%
\pgfsettransformentries%
{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
{\pgf@sys@tonumber\pgf@ya}{\pgf@sys@tonumber\pgf@x}{0pt}{0pt}%
\pgftransformshift{\pgfpointscale{-1}{\pgf@curvilinear@line@a}}%
\pgfmathveclen@{\pgf@sys@tonumber\pgfutil@tempdima}{\pgf@sys@tonumber\pgfutil@tempdimb}%
\ifdim\pgfutil@tempdima<0pt%
\edef\pgfmathresult{-\pgfmathresult}%
\fi%
\pgfcurvilineardistancetotime{\pgfmathresult}%
\pgf@process{%
\pgfpointadd{%
\pgfpointtransformed{%
\pgfpointcurveattime%
{\pgf@x}%
{\pgf@curvilinear@line@a}%
{\pgf@curvilinear@line@b}%
{\pgf@curvilinear@line@c}%
{\pgf@curvilinear@line@d}%
}%
}%
\pgf@curvilinear@line@a%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarycurvilinear.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryfadings.code.tex ====
\ProvidesFileRCS{pgflibraryfadings.code.tex}
\pgfdeclarehorizontalshading{pgf@lib@fade@east}{100bp}
{color(0bp)=(pgftransparent!0); color(25bp)=(pgftransparent!0);
color(75bp)=(pgftransparent!100); color(100bp)=(pgftransparent!100)}%
\pgfdeclarehorizontalshading{pgf@lib@fade@west}{100bp}
{color(0bp)=(pgftransparent!100); color(25bp)=(pgftransparent!100);
color(75bp)=(pgftransparent!0); color(100bp)=(pgftransparent!0)}%
\pgfdeclareverticalshading{pgf@lib@fade@north}{100bp}
{color(0bp)=(pgftransparent!0); color(25bp)=(pgftransparent!0);
color(75bp)=(pgftransparent!100); color(100bp)=(pgftransparent!100)}%
\pgfdeclareverticalshading{pgf@lib@fade@south}{100bp}
{color(0bp)=(pgftransparent!100); color(25bp)=(pgftransparent!100);
color(75bp)=(pgftransparent!0); color(100bp)=(pgftransparent!0)}%
\pgfdeclarefading{east}{\pgfuseshading{pgf@lib@fade@east}}%
\pgfdeclarefading{west}{\pgfuseshading{pgf@lib@fade@west}}%
\pgfdeclarefading{north}{\pgfuseshading{pgf@lib@fade@north}}%
\pgfdeclarefading{south}{\pgfuseshading{pgf@lib@fade@south}}%
\pgfdeclareradialshading{tikz@lib@fade@circle@10}{\pgfpointorigin}{
color(0pt)=(pgftransparent!0); color(22.5bp)=(pgftransparent!0);
color(25bp)=(pgftransparent!100); color(50bp)=(pgftransparent!100)}%
\pgfdeclarefading{circle with fuzzy edge 10 percent}{\pgfuseshading{tikz@lib@fade@circle@10}}%
\pgfdeclareradialshading{tikz@lib@fade@circle@15}{\pgfpointorigin}{
color(0pt)=(pgftransparent!0); color(21.25bp)=(pgftransparent!0);
color(25bp)=(pgftransparent!100); color(50bp)=(pgftransparent!100)}%
\pgfdeclarefading{circle with fuzzy edge 15 percent}{\pgfuseshading{tikz@lib@fade@circle@15}}%
\pgfdeclareradialshading{tikz@lib@fade@circle@20}{\pgfpointorigin}{
color(0pt)=(pgftransparent!0); color(20bp)=(pgftransparent!0);
color(25bp)=(pgftransparent!100); color(50bp)=(pgftransparent!100)}%
\pgfdeclarefading{circle with fuzzy edge 20 percent}{\pgfuseshading{tikz@lib@fade@circle@20}}%
\pgfdeclareradialshading{tikz@lib@fade@fuzzy@15}{\pgfpointorigin}{
color(0pt)=(pgftransparent!100); color(21.25bp)=(pgftransparent!100); color(23.125bp)=(pgftransparent!0);
color(25bp)=(pgftransparent!100); color(50bp)=(pgftransparent!100)}%
\pgfdeclarefading{fuzzy ring 15 percent}{\pgfuseshading{tikz@lib@fade@fuzzy@15}}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryfadings.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryfixedpointarithmetic.code.tex ====
\pgfkeys{/pgf/.cd,
fixed point arithmetic/.code={%
\pgfmathfp@plots@install%
\pgfmathfp@parser@install%
\let\pgfmathparse=\pgfmathfpparse%
\pgfkeys{/pgf/fixed point/.cd, #1}%
},%
fixed point/.cd,
scale results/.code={%
\pgfmathfpparse{#1}%
\let\pgfmathfpscale=\pgfmathresult%
}%
}%
\def\pgfmathfpscale{1}%
\def\pgfmathfpparse{%
\begingroup%
\let\pgfmathpostparse=\relax%
\pgfmath@catcodes%
\pgfmath@quickparsefalse%
\pgfmathfpparse@}%
\def\pgfmathfpparse@#1{%
\edef\pgfmathfp@expression{#1}%
\expandafter\pgfmathfpparse@@\pgfmathfp@expression\pgfmathfp@}%
\def\pgfmathfp@char@asterisk{*}%
\def\pgfmathfpparse@@#1#2\pgfmathfp@{%
\def\pgfmathfp@test{#1}%
\ifx\pgfmathfp@test\pgfmathfp@char@asterisk%
\edef\pgfmathfp@expression{\pgfmathfpscale#1#2}%
\else%
\edef\pgfmathfp@expression{#1#2}%
\fi%
\expandafter\pgfmathparse@\expandafter{\pgfmathfp@expression}%
}%
\pgfkeys{/pgf/fixed point/.cd,
scale file plot x/.code=\pgfmathfpparse{#1}\edef\pgfmathfpplotscalex{\pgfmathresult*},
scale file plot y/.code=\pgfmathfpparse{#1}\edef\pgfmathfpplotscaley{\pgfmathresult*},
scale file plot z/.code=\pgfmathfpparse{#1}\edef\pgfmathfpplotscalez{\pgfmathresult*},
}%
\def\pgfmathfp@plots@install{%
\let\pgfmathfpplotscalex=\pgfutil@empty
\let\pgfmathfpplotscaley=\pgfutil@empty
\let\pgfmathfpplotscalez=\pgfutil@empty
\let\pgf@parsexyline=\pgfmathfp@parsexyline%
\let\pgf@parsexyzline=\pgfmathfp@parsexyzline%
}%
\def\pgfmathfp@parsexyline#1 #2 #3\pgf@stop{%
\edef\pgfmathfp@marshal{%
\noexpand\pgfplotstreampoint{\noexpand\pgfpointxy{\pgfmathfpplotscalex#1}{\pgfmathfpplotscaley#2}}%
}%
\pgfmathfp@marshal%
}%
\def\pgfmathfp@parsexyzline#1 #2 #3 #4\pgf@stop{%
\edef\pgfmathfp@marshal{%
\noexpand\pgfplotstreampoint{%
\noexpand\pgfpointxyz{\pgfmathfpplotscalex#1}{\pgfmathfpplotscaley#2}{\pgfmathfpplotscalez#3}%
}%
}%
\pgfmathfp@marshal%
}%
\def\pgfmathfp@parser@install{%
\expandafter\ifx\csname FP@version\endcsname\relax%
\pgferror{You need to say `\string\usepackage{fp}' to use %
fixed point arithmetic}%
\else%
\FPmessagesfalse%
\FPdebugfalse%
\let\pgfmathadd@=\pgfmathfpadd@%
\let\pgfmathsubtract@=\pgfmathfpsubtract@%
\let\pgfmathmultiply@=\pgfmathfpmultiply@%
\let\pgfmathdivide@=\pgfmathfpdivide@%
\let\pgfmathabs@=\pgfmathfpabs@%
\let\pgfmathneg@=\pgfmathfpneg@%
\let\pgfmathround@=\pgfmathfpround@%
\let\pgfmathfloor@=\pgfmathfpfloor@%
\let\pgfmathceil@=\pgfmathfpceil@%
\let\pgfmathmod@=\pgfmathfpmod@%
\let\pgfmathmax@=\pgfmathfpmax@%
\let\pgfmathmin@=\pgfmathfpmin@%
\let\pgfmathsin@=\pgfmathfpsin@%
\let\pgfmathcos@=\pgfmathfpcos@%
\let\pgfmathtan@=\pgfmathfptan@%
\let\pgfmathdeg@=\pgfmathfpdeg@%
\let\pgfmathrad@=\pgfmathfprad@%
\let\pgfmathatan@=\pgfmathfpatan@%
\let\pgfmathasin@=\pgfmathfpasin@%
\let\pgfmathacos@=\pgfmathfpacos@%
\let\pgfmathcot@=\pgfmathfpcot@%
\let\pgfmathsec@=\pgfmathfpsec@%
\let\pgfmathcosec@=\pgfmathfpcosec@%
\let\pgfmathpow@=\pgfmathfppow@%
\let\pgfmathexp@=\pgfmathfpexp@%
\let\pgfmathln@=\pgfmathfpln@%
\let\pgfmathsqrt@=\pgfmathfpsqrt@%
\let\pgfmath@pi=\pgfmathfppi@%
\let\pgfmathveclen@=\pgfmathfpveclen@%
\let\pgfmathe@=\pgfmathfpe@%
\let\pgfmathlessthan@=\pgfmathfplessthan@%
\let\pgfmathgreaterthan@=\pgfmathfpgreaterthan@%
\let\pgfmathequalto@=\pgfmathfpequalto@%
\let\pgfmathrnd=\pgfmathfprnd%
\let\pgfmathrand=\pgfmathfprand%
\let\pgfmathsetseed=\pgfmathfpsetseed%
\let\pgfmathscientific=\pgfmathfpscientific%
\fi%
}%
\def\pgfmathfpe@{let\pgfmathresult=\FPe}%
\def\pgfmathfppi@{let\pgfmathresult=\FPpi}%
\def\pgfmathfpscientific#1#2{%
\begingroup%
\FPpow\pgfmathresult{10}{#2}\unskip%
\FPmul\pgfmathresult{#1}{\pgfmathresult}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfplessthan#1#2{%
\pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
\pgfmathfpparse{#1}%
\pgfmathfplessthan@{\pgfmathresult}{\pgfmath@result}%
}%
\def\pgfmathfplessthan@#1#2{%
\begingroup%
\FPiflt{#1}{#2}%
\def\pgfmathresult{1.0}%
\else%
\def\pgfmathresult{0.0}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpgreaterthan#1#2{%
\pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
\pgfmathfpparse{#1}%
\pgfmathfpgreaterthan@{\pgfmathresult}{\pgfmath@result}%
}%
\def\pgfmathfpgreaterthan@#1#2{%
\begingroup%
\FPifgt{#1}{#2}%
\def\pgfmathresult{1.0}%
\else%
\def\pgfmathresult{0.0}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpequalto#1#2{%
\pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
\pgfmathfpparse{#1}%
\pgfmathfpequalto@{\pgfmathresult}{\pgfmath@result}%
}%
\def\pgfmathfpequalto@#1#2{%
\begingroup%
\FPifeq{#1}{#2}%
\def\pgfmathresult{1.0}%
\else%
\def\pgfmathresult{0.0}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpadd#1#2{%
\pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
\pgfmathfpparse{#1}%
\pgfmathfpadd@{\pgfmathresult}{\pgfmath@result}%
}%
\def\pgfmathfpadd@#1#2{%
\begingroup%
\FPadd\pgfmathresult{#1}{#2}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpsubtract#1#2{%
\pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
\pgfmathfpparse{#1}%
\pgfmathfpsubtract@{\pgfmathresult}{\pgfmath@result}%
}%
\def\pgfmathfpsubtract@#1#2{%
\begingroup%
\FPsub\pgfmathresult{#1}{#2}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpmultiply#1#2{%
\pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
\pgfmathfpparse{#1}%
\pgfmathfpmultiply@{\pgfmathresult}{\pgfmath@result}%
}%
\def\pgfmathfpmultiply@#1#2{%
\begingroup%
\FPmul\pgfmathresult{#1}{#2}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpdivide#1#2{%
\pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
\pgfmathfpparse{#1}%
\pgfmathfpdivide@{\pgfmathresult}{\pgfmath@result}%
}%
\def\pgfmathfpdivide@#1#2{%
\begingroup%
\FPdiv\pgfmathresult{#1}{#2}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpabs#1{%
\pgfmathfpparse{#1}%
\pgfmathfpabs@{\pgfmathresult}%
}%
\def\pgfmathfpabs@#1{%
\begingroup%
\FPabs\pgfmathresult{#1}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpneg#1{%
\pgfmathfpparse{#1}%
\pgfmathfpneg@{\pgfmathresult}%
}%
\def\pgfmathfpneg@#1{%
\begingroup%
\FPneg\pgfmathresult{#1}%
\pgfmath@smuggleone\pgfmathresult
\endgroup%
}%
\def\pgfmathfpround#1{%
\pgfmathfpparse{#1}%
\pgfmathfpround@{\pgfmathresult}%
}%
\def\pgfmathfpround@#1{%
\begingroup%
\FPround\pgfmathresult{#1}{0}%
\edef\pgfmathresult{\pgfmathresult.0}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpfloor#1{%
\pgfmathfpparse{#1}%
\pgfmathfpfloor@{\pgfmathresult}%
}%
\def\pgfmathfpfloor@#1{%
\begingroup%
\FPtrunc\pgfmathresult{#1}{0}%
\FPifneg{#1}%
\FPsub\pgfmathresult{\pgfmathresult}{1}%
\fi%
\edef\pgfmathresult{\pgfmathresult.0}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpceil#1{%
\pgfmathfpparse{#1}%
\pgfmathfpceil@{\pgfmathresult}%
}%
\def\pgfmathfpceil@#1{%
\begingroup%
\FPtrunc\pgfmathresult{#1}{0}%
\FPifpos{#1}%
\FPadd\pgfmathresult{\pgfmathresult}{1}%
\fi%
\edef\pgfmathresult{\pgfmathresult.0}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpmod#1#2{%
\pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
\pgfmathfpparse{#1}%
\pgfmathfpmod@{\pgfmathresult}{\pgfmath@result}%
}%
\def\pgfmathfpmod@#1#2{%
\begingroup%
\FPdiv\pgfmathresult{#1}{#2}%
\FPtrunc\pgfmathresult{\pgfmathresult}{0}%
\FPmul\pgfmathresult{\pgfmathresult}{#2}%
\FPsub\pgfmathresult{#1}{\pgfmathresult}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpmax#1#2{%
\pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
\pgfmathfpparse{#1}%
\pgfmathfpmax@@{\pgfmathresult}{\pgfmath@result}%
}%
\def\pgfmathfpmax@#1{%
\pgfmathfpmax@@#1%
}%
\def\pgfmathfpmax@@#1#2{%
\begingroup%
\FPifgt{#1}{#2}%
\def\pgfmathresult{#1}%
\else%
\def\pgfmathresult{#2}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpmin#1#2{%
\pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
\pgfmathfpparse{#1}%
\pgfmathfpmin@@{\pgfmathresult}{\pgfmath@result}%
}%
\def\pgfmathfpmin@#1{%
\pgfmathfpmin@@#1%
}%
\def\pgfmathfpmin@@#1#2{%
\begingroup%
\FPiflt{#1}{#2}%
\def\pgfmathresult{#1}%
\else%
\def\pgfmathresult{#2}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfppow#1#2{%
\pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
\pgfmathfpparse{#1}%
\pgfmathfppow@{\pgfmathresult}{\pgfmath@result}%
}%
\def\pgfmathfppow@#1#2{%
\begingroup%
\FPpow\pgfmathresult{#1}{#2}\unskip%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpexp#1{%
\pgfmathfpparse{#1}%
\pgfmathfpexp@{\pgfmathresult}%
}%
\def\pgfmathfpexp@#1{%
\begingroup%
\FPexp\pgfmathresult{#1}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpln#1{%
\pgfmathfpparse{#1}%
\pgfmathfpln@{\pgfmathresult}%
}%
\def\pgfmathfpln@#1{%
\begingroup%
\FPln\pgfmathresult{#1}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpsqrt#1{%
\pgfmathfpparse{#1}%
\pgfmathfpsqrt@{\pgfmathresult}%
}%
\def\pgfmathfpsqrt@#1{%
\begingroup%
\FProot\pgfmathresult{#1}{2}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpveclen#1#2{%
\pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
\pgfmathfpparse{#1}%
\pgfmathfpveclen@{\pgfmathresult}{\pgfmath@result}%
}%
\def\pgfmathfpveclen@#1#2{%
\begingroup%
\FPmul\pgfmath@result{#1}{#1}%
\FPmul\pgfmath@@result{#2}{#2}%
\FPadd\pgfmathresult{\pgfmath@result}{\pgfmath@@result}%
\FProot\pgfmathresult{\pgfmathresult}{2}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpsin#1{%
\pgfmathfpparse{#1}%
\pgfmathfpsin@{\pgfmathresult}%
}%
\def\pgfmathfpsin@#1{%
\begingroup%
\FPmul\pgfmathresult{#1}{0.017453292519943295}%
\FPsin\pgfmathresult{\pgfmathresult}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpcos#1{%
\pgfmathfpparse{#1}%
\pgfmathfpcos@{\pgfmathresult}%
}%
\def\pgfmathfpcos@#1{%
\begingroup%
\FPmul\pgfmathresult{#1}{0.017453292519943295}%
\FPcos\pgfmathresult{\pgfmathresult}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfptan#1{%
\pgfmathfpparse{#1}%
\pgfmathfptan@{\pgfmathresult}%
}%
\def\pgfmathfptan@#1{%
\begingroup%
\FPmul\pgfmathresult{#1}{0.017453292519943295}%
\FPtan\pgfmathresult{\pgfmathresult}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpacos#1{%
\pgfmathfpparse{#1}%
\pgfmathfpacos@{\pgfmathresult}%
}%
\def\pgfmathfpacos@#1{%
\begingroup%
\FParccos\pgfmathresult{#1}%
\FPmul\pgfmathresult{\pgfmathresult}{57.295779513082320885}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpasin#1{%
\pgfmathfpparse{#1}%
\pgfmathfpasin@{\pgfmathresult}%
}%
\def\pgfmathfpasin@#1{%
\begingroup%
\FParcsin\pgfmathresult{#1}%
\FPmul\pgfmathresult{\pgfmathresult}{57.295779513082320885}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpatan#1{%
\pgfmathfpparse{#1}%
\pgfmathfpatan@{\pgfmathresult}%
}%
\def\pgfmathfpatan@#1{%
\begingroup%
\FParctan\pgfmathresult{#1}%
\FPmul\pgfmathresult{\pgfmathresult}{57.295779513082320885}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpcot#1{%
\pgfmathfpparse{#1}%
\pgfmathfpcot@{\pgfmathresult}%
}%
\def\pgfmathfpcot@#1{%
\begingroup%
\FPmul\pgfmathresult{#1}{0.017453292519943295}%
\FPcot\pgfmathresult{\pgfmathresult}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpsec#1{%
\pgfmathfpparse{#1}%
\pgfmathfpsec@{\pgfmathresult}%
}%
\def\pgfmathfpsec@#1{%
\begingroup%
\FPmul\pgfmathresult{#1}{0.017453292519943295}%
\FPcos\pgfmathresult{\pgfmathresult}%
\FPdiv\pgfmathresult{1}{\pgfmathresult}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpcosec#1{%
\pgfmathfpparse{#1}%
\pgfmathfpcosec@{\pgfmathresult}%
}%
\def\pgfmathfpcosec@#1{%
\begingroup%
\FPmul\pgfmathresult{#1}{0.017453292519943295}%
\FPsin\pgfmathresult{\pgfmathresult}%
\FPdiv\pgfmathresult{1}{\pgfmathresult}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpdeg#1{%
\pgfmathfpparse{#1}%
\pgfmathfpdeg@{\pgfmathresult}%
}%
\def\pgfmathfpdeg@#1{%
\begingroup%
\FPmul\pgfmathresult{#1}{57.295779513082320885}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfprad#1{%
\pgfmathfpparse{#1}%
\pgfmathfprad@{\pgfmathresult}%
}%
\def\pgfmathfprad@#1{%
\begingroup%
\FPmul\pgfmathresult{#1}{0.01745329251994325}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfpsetseed#1{%
\pgfmathfpparse{#1}%
\afterassignment\pgfmath@gobbletilpgfmath@%
\FPseed\pgfmathresult\relax\pgfmath@%
}%
\def\pgfmathfprnd{%
\begingroup%
\FPrandom\pgfmathresult%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\def\pgfmathfprand{%
\begingroup%
\FPrandom\pgfmathresult%
\FPmul\pgfmathresult{2}{\pgfmathresult}%
\FPsub\pgfmathresult{\pgfmathresult}{1}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryfixedpointarithmetic.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryfpu.code.tex ====
\newif\ifpgfmathfloatparseactive
\newif\ifpgfmathfloat@scaleactive
\def\pgflibraryfpuifactive#1#2{%
\ifpgfmathfloatparseactive
#1%
\else
#2%
\fi
}%
\pgfqkeys{/pgf}{
fpu/.is choice,
fpu/true/.code={%
\ifpgfmathfloatparseactive
\else
\pgfutil@ifundefined{pgfmathdeclarefunction}{%
\pgfmathfloat@parser@install@pgf@two@null@null%
}{%
\pgfmathfloat@parser@install%
}%
\pgfmathfloatparseactivetrue
\pgfkeysalso{/pgf/fixed point arithmetic/.prefix style={/pgf/fpu=false}}%
\fi
},%
fpu/false/.code={%
\ifpgfmathfloatparseactive
\pgfmathfloat@uninstall%
\pgfmathfloatparseactivefalse
\fi
},%
fpu/.default=true,
fpu/scale results/.code={%
\ifpgfmathfloatparseactive
\pgfmathparse{#1}%
\else
\pgfmathfloatparsenumber{#1}%
\fi
\let\pgfmathfloatscale=\pgfmathresult%
},%
fpu/output format/.is choice,
fpu/output format/float/.code= {%
\def\pgfmathfloatparse@output@choice{Y}%
\let\pgfmathfloatparse@output=\relax
},
fpu/output format/sci/.code= {%
\def\pgfmathfloatparse@output@choice{S}%
\def\pgfmathfloatparse@output{\pgfmathfloattosci@{\pgfmathresult}}%
},
fpu/output format/fixed/.code= {%
\def\pgfmathfloatparse@output@choice{F}%
\def\pgfmathfloatparse@output{\pgfmathfloattofixed@{\pgfmathresult}}%
},
fpu/output format/float,
fpu/rel thresh/.code={%
\pgfmathfloatparsenumber{#1}%
\let\pgfmathfloat@relthresh=\pgfmathresult
},
fpu/rel thresh=1e-4,
fpu/install only/.code={
\edef\pgf@list{#1}%
\pgfutil@for\pgf@temp:=\pgf@list\do{%
\expandafter\pgfmath@float@install@singlefunction\expandafter{%
\romannumeral-`0\expandafter\pgfutil@trimspaces\expandafter{\pgf@temp}}%
}%
},
}%
\pgfmathfloatcreate{1}{1.0}{0}\let\pgfmathfloatscale=\pgfmathresult
\let\pgfmathfloatone=\pgfmathresult
\def\pgfmathfloatparse{%
\begingroup%
\let\pgfmathpostparse=\relax%
\pgfmath@catcodes%
\pgfmath@quickparsefalse%
\ifpgfmathfloatparseactive\else
\pgfmathfloat@parser@install
\fi
\pgfmathfloatparse@}%
\def\pgfmathfloatparse@pgf@two@null@null{%
\pgfmath@quickparsefalse%
\pgfmathfloatparse@}%
\def\pgfmathfloatparse@#1{%
\edef\pgfmathfloat@expression{#1}%
\expandafter\pgfmathfloatparse@@\pgfmathfloat@expression\pgfmathfloat@
\ifpgfmathfloat@scaleactive
\expandafter\pgfmathfloatmultiply@\expandafter{\pgfmathresult}{\pgfmathfloatscale}%
\pgfmathfloattofixed{\pgfmathresult}%
\else
\pgfmathfloatparse@output
\fi
\ignorespaces
}%
\def\pgfmathfloat@char@asterisk{*}%
\def\pgfmathfloatparse@@#1#2\pgfmathfloat@{%
\def\pgfmathfloat@test{#1}%
\ifx\pgfmathfloat@test\pgfmathfloat@char@asterisk%
\def\pgfmathfloat@expression{#2}%
\pgfmathfloat@scaleactivetrue
\fi%
\expandafter\pgfmathparse@\expandafter{\pgfmathfloat@expression}%
}%
\pgfkeys{/pgf/fpu/.cd,
scale file plot x/.code=\pgfmathfloatparse{#1}\edef\pgfmathfloatplotscalex{\pgfmathresult*},
scale file plot y/.code=\pgfmathfloatparse{#1}\edef\pgfmathfloatplotscaley{\pgfmathresult*},
scale file plot z/.code=\pgfmathfloatparse{#1}\edef\pgfmathfloatplotscalez{\pgfmathresult*}
}%
\def\pgfmathfloat@uninstall@appendcmd#1{%
\expandafter\gdef\expandafter\pgfmathfloat@uninstall\expandafter{\pgfmathfloat@uninstall #1}%
}%
\def\pgfmathfloat@plots@checkuninstallcmd{%
\pgfutil@ifundefined{pgfmathfloat@uninstall}{%
\global\let\pgfmathfloat@uninstall=\pgfutil@empty
}{%
\def\pgfmathfloat@uninstall@appendcmd##1{}%
\def\pgfmathfloat@prepareuninstallcmd##1{}%
}%
}%
\def\pgfmathfloat@prepareuninstallcmd#1{%
\expandafter\global\expandafter\let\csname pgfmathfloat@backup@\string#1\endcsname=#1%
\expandafter\gdef\expandafter\pgfmathfloat@uninstall\expandafter{\pgfmathfloat@uninstall
\expandafter\let\expandafter#1\csname pgfmathfloat@backup@\string#1\endcsname%
}%
}%
\def\pgfmathfloat@install#1=#2{%
\pgfmathfloat@prepareuninstallcmd{#1}%
\let#1=#2%
}%
\def\pgfmathfloat@install@csname#1#2{%
\expandafter\pgfmathfloat@prepareuninstallcmd\csname #1\endcsname%
\pgfutil@namelet{#1}{#2}%
}%
\def\pgfmathfloat@install@unimplemented#1{%
\expandafter\pgfmathfloat@prepareuninstallcmd\csname pgfmath#1@\endcsname%
\expandafter\def\csname pgfmath#1@\endcsname##1{\pgfmathfloat@notimplemented{#1}}%
}%
\def\pgfmathfloat@plots@install{%
\let\pgfmathfloatplotscalex=\pgfutil@empty
\let\pgfmathfloatplotscaley=\pgfutil@empty
\let\pgfmathfloatplotscalez=\pgfutil@empty
\pgfmathfloat@install\pgf@parsexyline=\pgfmathfloat@parsexyline%
\pgfmathfloat@install\pgf@parsexyzline=\pgfmathfloat@parsexyzline%
}%
\def\pgfmathfloat@parsexyline#1 #2 #3\pgf@stop{%
\edef\pgfmathfloat@marshal{%
\noexpand\pgfplotstreampoint{\noexpand\pgfpointxy{\pgfmathfloatplotscalex#1}{\pgfmathfloatplotscaley#2}}%
}%
\pgfmathfloat@marshal%
}%
\def\pgfmathfloat@parsexyzline#1 #2 #3 #4\pgf@stop{%
\edef\pgfmathfloat@marshal{%
\noexpand\pgfplotstreampoint{%
\noexpand\pgfpointxyz{\pgfmathfloatplotscalex#1}{\pgfmathfloatplotscaley#2}{\pgfmathfloatplotscalez#3}%
}%
}%
\pgfmathfloat@marshal%
}%
\def\pgfmathfloat@parser@install@functions{%
\pgfmathfloat@install\pgfmathadd@=\pgfmathfloatadd@%
\pgfmathfloat@install\pgfmathsubtract@=\pgfmathfloatsubtract@%
\pgfmathfloat@install\pgfmathneg@=\pgfmathfloatneg@%
\pgfmathfloat@install\pgfmathmultiply@=\pgfmathfloatmultiply@%
\pgfmathfloat@install\pgfmathdivide@=\pgfmathfloatdivide@%
\pgfmathfloat@install\pgfmathabs@=\pgfmathfloatabs@%
\pgfmathfloat@install\pgfmathsign@=\pgfmathfloatsign@%
\pgfmathfloat@install\pgfmathround@=\pgfmathfloatround@%
\pgfmathfloat@install\pgfmathfloor@=\pgfmathfloatfloor@%
\pgfmathfloat@install\pgfmathceil@=\pgfmathfloatceil@
\pgfmathfloat@install\pgfmathint@=\pgfmathfloatint@
\pgfmathfloat@install\pgfmathmod@=\pgfmathfloatmod@%
\pgfmathfloat@install\pgfmathmax@=\pgfmathfloatmax@%
\pgfmathfloat@install\pgfmathmin@=\pgfmathfloatmin@%
\pgfmathfloat@install\pgfmathsin@=\pgfmathfloatsin@%
\pgfmathfloat@install\pgfmathcos@=\pgfmathfloatcos@%
\pgfmathfloat@install\pgfmathtan@=\pgfmathfloattan@%
\pgfmathfloat@install\pgfmathdeg@=\pgfmathfloatdeg@%
\pgfmathfloat@install\pgfmathrad@=\pgfmathfloatrad@%
\pgfmathfloat@install\pgfmathatan@=\pgfmathfloatatan@%
\pgfmathfloat@install\pgfmathasin@=\pgfmathfloatasin@%
\pgfmathfloat@install\pgfmathacos@=\pgfmathfloatacos@%
\pgfmathfloat@install\pgfmathcot@=\pgfmathfloatcot@%
\pgfmathfloat@install\pgfmathsec@=\pgfmathfloatsec@%
\pgfmathfloat@install\pgfmathcosec@=\pgfmathfloatcosec@%
\pgfmathfloat@install\pgfmathexp@=\pgfmathfloatexp@%
\pgfmathfloat@install\pgfmathln@=\pgfmathfloatln@%
\pgfmathfloat@install@csname{pgfmathlog10@}{pgfmathfloatlog10@}%
\pgfmathfloat@install@csname{pgfmathlog2@}{pgfmathfloatlog2@}%
\pgfmathfloat@install\pgfmathsqrt@=\pgfmathfloatsqrt@%
\pgfmathfloat@install\pgfmath@pi=\pgfmathfloatpi@%
\pgfmathfloat@install\pgfmathpi=\pgfmathfloatpi@%
\pgfmathfloat@install\pgfmathe@=\pgfmathfloate@%
\pgfmathfloat@install\pgfmathe=\pgfmathfloate@%
\pgfmathfloat@install\pgfmathlessthan@=\pgfmathfloatlessthan@%
\pgfmathfloat@install\pgfmathnotless@=\pgfmathfloatnotless@%
\pgfmathfloat@install\pgfmathnotgreater@=\pgfmathfloatnotgreater@%
\pgfmathfloat@install\pgfmathless@=\pgfmathfloatlessthan@%
\pgfmathfloat@install\pgfmathgreaterthan@=\pgfmathfloatgreaterthan@%
\pgfmathfloat@install\pgfmathgreater@=\pgfmathfloatgreaterthan@%
\pgfmathfloat@install\pgfmathifthenelse@=\pgfmathfloatifthenelse@%
\pgfmathfloat@install\pgfmathequal@=\pgfmathfloatequal@%
\pgfmathfloat@install\pgfmathequalto@=\pgfmathfloatequal@%
\pgfmathfloat@install\pgfmathnotequal@=\pgfmathfloatnotequal@%
\pgfmathfloat@install\pgfmathnotequalto@=\pgfmathfloatnotequal@%
\pgfmathfloat@install\pgfmathpow@=\pgfmathfloatpow@
\pgfmathfloat@install\pgfmathrand@=\pgfmathfloatrand@
\pgfmathfloat@install\pgfmathrand=\pgfmathfloatrand@
\pgfmathfloat@install\pgfmathrnd@=\pgfmathfloatrnd@
\pgfmathfloat@install\pgfmathrnd=\pgfmathfloatrnd@
\pgfmathfloat@install\pgfmathtrue@=\pgfmathfloattrue@
\pgfmathfloat@install\pgfmathfalse@=\pgfmathfloatfalse@
\pgfmathfloat@install\pgfmathnot@=\pgfmathfloatnot@
\pgfmathfloat@install\pgfmathhex@=\pgfmathfloathex@
\pgfmathfloat@install\pgfmathHex@=\pgfmathfloatHex@
\pgfmathfloat@install\pgfmathoct@=\pgfmathfloatoct@
\pgfmathfloat@install\pgfmathbin@=\pgfmathfloatbin@
\pgfmathfloat@install\pgfmathand@=\pgfmathfloatand@
\pgfmathfloat@install\pgfmathor@=\pgfmathfloator@
\pgfmathfloat@install\pgfmathfactorial@=\pgfmathfloatfactorial@
\pgfmathfloat@install\pgfmathveclen@=\pgfmathfloatveclen@
\pgfmathfloat@install\pgfmathcosh@=\pgfmathfloatcosh@
\pgfmathfloat@install\pgfmathsinh@=\pgfmathfloatsinh@
\pgfmathfloat@install\pgfmathtanh@=\pgfmathfloattanh@
\pgfmathfloat@install\pgfmath@iftrue=\pgfmathfloat@iftrue%
\expandafter\pgfmathfloat@install\csname pgfmathatan2@\endcsname=\pgfmathfloatatantwo@
\pgfmathfloat@install@unimplemented{isprime}%
\pgfmathfloat@install@unimplemented{iseven}%
\pgfmathfloat@install@unimplemented{isodd}%
\pgfmathfloat@install@unimplemented{gcd}%
\pgfmathfloat@install@unimplemented{frac}%
\pgfmathfloat@install@unimplemented{random}%
\pgfmathfloat@install@unimplemented{setseed}%
\pgfmathfloat@install@unimplemented{Mod}%
\pgfmathfloat@install@unimplemented{div}%
\pgfmathfloat@install@unimplemented{real}%
\pgfmathfloat@install\pgfmathscientific=\pgfmathfloatscientific%
}%
\def\pgfmath@float@install@singlefunction#1{%
\ifcsname pgfmath@function@#1\endcsname\else
\pgfmath@error{The function `#1' does not exist}{}%
\fi
\pgfmath@toks={}%
\pgfmathloop
\ifnum\pgfmathcounter>\csname pgfmath@operation@#1@arity\endcsname\relax%
\else
\expandafter\pgfmath@addto@toks\expandafter{\pgfmath@char@hash}%
\expandafter\pgfmath@addto@toks\expandafter{\pgfmathcounter}%
\repeatpgfmathloop
\edef\pgfmath@head{\noexpand\def\expandafter\noexpand\csname pgfmath#1@\endcsname\the\pgfmath@toks}%
\pgfmath@toks={}%
\def\pgfmath@arguments{}%
\pgfmathloop
\ifnum\pgfmathcounter>\csname pgfmath@operation@#1@arity\endcsname\relax%
\else
\pgfmath@addto@toks{\pgfmathfloatparsenumber}%
\expandafter\expandafter\expandafter\pgfmath@addto@toks
\expandafter\expandafter\expandafter{\expandafter\expandafter\expandafter
{\expandafter\pgfmath@char@hash\pgfmathcounter}}%
\pgfmath@addto@toks{\let}%
\expandafter\pgfmath@addto@toks\expandafter{%
\csname pgfmath@argument@\pgfmathcounter\endcsname=\pgfmathresult}%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter
\pgfmath@arguments\expandafter\expandafter\expandafter{\expandafter
\pgfmath@arguments\expandafter{\csname pgfmath@argument@\pgfmathcounter\endcsname}}%
\repeatpgfmathloop
\expandafter\pgfmath@addto@toks\expandafter{\csname pgfmathfloat#1@\expandafter\endcsname\pgfmath@arguments}%
\pgfmath@addto@toks{\pgfmathfloattofixed{\pgfmathresult}}%
\edef\pgfmath@body{{\the\pgfmath@toks}}%
\expandafter\pgfmath@head\pgfmath@body
}
\def\pgfmathfloat@iftrue{%
\if Y\pgfmathfloatparse@output@choice
\let\pgfmathfloat@@iftrue@v=\pgfmathfloatone
\let\pgfmathfloat@@iftrue@next=\pgfmathfloat@iftrue@
\else
\if S\pgfmathfloatparse@output@choice
\def\pgfmathfloat@@iftrue@v{1.0e0}%
\let\pgfmathfloat@@iftrue@next=\pgfmathfloat@iftrue@
\else
\def\pgfmath@next{\pgfutilifstartswith{1.0}}%
\expandafter\pgfmath@next\expandafter{\pgfmathresult}{%
\ifdim\pgfmathresult pt=1.0pt %
\let\pgfmathfloat@@iftrue@next=\pgfutil@firstoftwo
\else
\let\pgfmathfloat@@iftrue@next=\pgfutil@secondoftwo
\fi
}{%
\let\pgfmathfloat@@iftrue@next=\pgfutil@secondoftwo
}%
\fi
\fi
\pgfmathfloat@@iftrue@next%
}%
\def\pgfmathfloat@iftrue@{%
\ifx\pgfmathresult\pgfmathfloat@@iftrue@v
\let\pgfmath@next=\pgfutil@firstoftwo
\else
\let\pgfmath@next=\pgfutil@secondoftwo
\fi
\pgfmath@next%
}%
\def\pgfmathfloat@parser@install{%
\pgfmathfloat@plots@checkuninstallcmd
\pgfmathfloat@plots@install%
\pgfmathfloat@parser@install@functions
\pgfmath@tokens@make{exponent}{\pgfmathfloat@POSTFLAGSCHAR}%
\pgfmathfloat@uninstall@appendcmd{%
\expandafter\let\csname pgfmath@token@exponent@\pgfmathfloat@POSTFLAGSCHAR\endcsname=\relax
}%
\let\pgfmath@basic@parse@exponent=\pgfmath@parse@exponent%
\let\pgfmath@basic@stack@push@operand=\pgfmath@stack@push@operand
\pgfmathfloat@install\pgfmath@stack@push@operand=\pgfmathfloat@stack@push@operand
\pgfmathfloat@install\pgfmath@parse@operand@quote=\pgfmathfloat@parse@operand@quote
\pgfmathfloat@install\pgfmath@parse@exponent=\pgfmathfloat@parse@float@or@exponent
\pgfmathfloat@install\pgfmathparse=\pgfmathfloatparse%
\pgfmathfloat@install\pgfmathparse@expression@is@number=\pgfmathfloat@parse@expression@is@number
}%
\def\pgfmathfloat@parse@expression@is@number{%
\pgfmathfloatparsenumber{\pgfmath@expression}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup
\ignorespaces
}%
\def\pgfmathfloat@defineadapter@for@pgf@two@null@null@ONEARG#1{%
\edef\pgfmathfloat@loc@TMPa{%
\noexpand\def\expandafter\noexpand\csname pgfmath@parsefunction@#1\endcsname{%
\noexpand\let\noexpand\pgfmath@parsepostgroup\expandafter\noexpand\csname pgfmath@parsefunction@#1@\endcsname%
\noexpand\expandafter\noexpand\pgfmath@parse@}%
\noexpand\def\expandafter\noexpand\csname pgfmath@parsefunction@#1@\endcsname{%
\noexpand\expandafter\expandafter\noexpand\csname pgfmath#1@\endcsname\noexpand\expandafter{\noexpand\pgfmathresult}%
\noexpand\pgfmath@postfunction%
}%
}%
\pgfmathfloat@loc@TMPa
}%
\def\pgfmathfloat@parser@install@pgf@two@null@null{%
\pgfmathfloat@plots@checkuninstallcmd
\pgfmathfloat@plots@install%
\pgfmathfloat@parser@install@functions
\let\pgfmathrand@=\pgfmath@basic@rand@
\let\pgfmathrnd@=\pgfmath@basic@rnd@
\pgfmathfloat@install\pgfmathmax@=\pgfmathfloatmaxtwo%
\pgfmathfloat@install\pgfmathmin@=\pgfmathfloatmintwo%
\pgfmathfloat@defineadapter@for@pgf@two@null@null@ONEARG{factorial}%
\pgfmathfloat@defineadapter@for@pgf@two@null@null@ONEARG{hex}%
\pgfmathfloat@defineadapter@for@pgf@two@null@null@ONEARG{bin}%
\pgfmathfloat@defineadapter@for@pgf@two@null@null@ONEARG{oct}%
\pgfmathfloat@defineadapter@for@pgf@two@null@null@ONEARG{tanh}%
\pgfmathfloat@defineadapter@for@pgf@two@null@null@ONEARG{sinh}%
\pgfmathfloat@defineadapter@for@pgf@two@null@null@ONEARG{cosh}%
\let\pgfmath@basic@parsedecimalpoint=\pgfmath@parsedecimalpoint%
\let\pgfmath@basic@stack@push@operand=\pgfmath@stackpushoperand
\pgfmathfloat@install\pgfmath@stackpushoperand=\pgfmathfloat@stack@push@operand
\pgfmathfloat@install\pgfmath@parsedecimalpoint=\pgfmathfloat@parsedecimalpoint@pgf@two@null@null
\pgfmathfloat@install\pgfmath@endparse=\pgfmathfloat@endparse@pgf@two@null@null
\pgfmathfloat@install\pgfmath@endparsegroup=\pgfmathfloat@endparsegroup@pgf@two@null@null
\pgfmathfloat@install\pgfmath@postfunction=\pgfmathfloat@postfunction@pgf@two@null@null
\pgfmathfloat@install\pgfmath@@parseoperandgroup=\pgfmathfloat@@parseoperandgroup
\pgfmathfloat@install\pgfmathparse=\pgfmathfloatparse@pgf@two@null@null%
}%
\pgfutil@ifundefined{pgfmathdeclarefunction}{%
\def\pgfmathdeclarepseudoconstant#1#2{%
\begingroup
\toks0=\expandafter{\csname pgfmath#1@\endcsname}%
\toks1={\pgfmath@postfunction}%
\xdef\pgfmathfloat@glob@TMP{\the\toks0 \the\toks1 }%
\xdef\pgfmathfloat@glob@TMPb{\the\toks0 }%
\endgroup
\expandafter\let\csname pgfmath@parsefunction@#1\endcsname=\pgfmathfloat@glob@TMP
\expandafter\let\csname pgfmath#1\endcsname=\pgfmathfloat@glob@TMPb
\expandafter\def\csname pgfmath#1@\endcsname{#2}%
}%
\let\pgfmathredeclarepseudoconstant=\pgfmathdeclarepseudoconstant
}{%
\pgfutil@ifundefined{pgfmathdeclarepseudoconstant}{%
\def\pgfmathdeclarepseudoconstant#1#2{\pgfmathdeclarefunction*{#1}{0}{#2}}
}{}%
}%
\pgfmathdeclarepseudoconstant{inf}{\def\pgfmathresult{inf}}%
\pgfmathdeclarepseudoconstant{INF}{\def\pgfmathresult{inf}}%
\pgfmathdeclarepseudoconstant{Inf}{\def\pgfmathresult{inf}}%
\pgfmathdeclarepseudoconstant{infty}{\def\pgfmathresult{inf}}%
\pgfmathdeclarepseudoconstant{nan}{\def\pgfmathresult{nan}}%
\pgfmathdeclarepseudoconstant{NaN}{\def\pgfmathresult{nan}}%
\def\pgfmathfloat@parsedecimalpoint@pgf@two@null@null#1{%
\expandafter\ifx\pgfmathfloat@POSTFLAGSCHAR#1%
\let\pgfmath@next=\pgfmathfloat@return@float@pgf@two@null@null%
\else
\def\pgfmath@next{\pgfmath@basic@parsedecimalpoint#1}%
\fi
\pgfmath@next
}%
\def\pgfmathfloat@return@float@pgf@two@null@null#1]{%
\edef\pgfmathresult{\the\c@pgfmath@parsecounta\pgfmathfloat@POSTFLAGSCHAR#1]}%
\let\pgfmath@resulttemp=\pgfmathresult
\pgfmath@parseoperator%
}%
\def\pgfmathfloat@endparse@pgf@two@null@null#1\pgfmath@empty{%
\pgfmath@processalloperations%
\pgfmath@stackpop{\pgfmathresult}%
\pgfmath@smuggleone{\pgfmathresult}%
\endgroup%
\ignorespaces%
}%
\def\pgfmathfloat@endparsegroup@pgf@two@null@null{%
\pgfmath@processalloperations%
\pgfmath@stackpop{\pgfmathresult}%
\pgfmath@smuggleone{\pgfmathresult}%
\endgroup%
\pgfmath@parsepostgroup%
}%
\def\pgfmathfloat@postfunction@pgf@two@null@null{%
\let\pgfmath@parsepostgroup\pgfmath@parseoperator%
\ifnum\pgfmath@sign1<0
\pgfmathfloatneg@{\pgfmathresult}%
\let\pgfmath@sign\pgfutil@empty
\fi
\pgfmath@parseoperator}%
\def\pgfmathfloat@@parseoperandgroup{%
\let\pgfmath@postparsegroup\pgfmath@parseoperator%
\ifnum\pgfmath@sign1<0
\pgfmathfloatneg@{\pgfmathresult}%
\let\pgfmath@sign\pgfutil@empty
\fi
\pgfmath@parseoperator%
}%
\def\pgfmathfloat@parse@float@or@exponent{%
\if\pgfmath@token \pgfmathfloat@POSTFLAGSCHAR%
\expandafter\pgfmathfloat@return@float\expandafter\pgfmath@token@next
\else
\expandafter\pgfmath@basic@parse@exponent
\fi
}%
\def\pgfmathfloat@return@float#1]{%
\edef\pgfmathresult{\pgfmath@number \pgfmathfloat@POSTFLAGSCHAR#1]}%
\expandafter\pgfmath@basic@stack@push@operand\expandafter{\pgfmathresult}%
\pgfmath@parse@@operator%
}%
\def\pgfmathfloat@parse@operand@quote#1"{%
\edef\pgfmathresult{\pgfmath@fpu@stringmarker #1}%
\expandafter\pgfmath@basic@stack@push@operand\expandafter{\pgfmathresult}%
\pgfmath@parse@@operator%
}
\def\pgfmath@fpu@stringmarker{@@str@@:}%
\def\pgfmathfloat@stack@push@operand#1{%
\pgfutil@ifnextchar\bgroup{%
\let\pgfmathfloat@stack@push@operand@list@=\pgfutil@empty
\pgfmathfloat@stack@push@operand@list
}{%
\pgfmathfloat@stack@push@operand@single
}%
#1\relax
}%
\def\pgfmathfloat@stack@push@operand@single#1\relax{%
\expandafter\pgfutil@in@\pgfmathfloat@POSTFLAGSCHAR{#1}%
\ifpgfutil@in@
\pgfmath@basic@stack@push@operand{#1}%
\else
\expandafter\pgfutil@in@\expandafter{\pgfmath@fpu@stringmarker}{#1}%
\ifpgfutil@in@
\pgfmathfloat@stack@push@operand@single@str#1\relax
\else
\pgfmathfloatparsenumber{#1}%
\expandafter\pgfmath@basic@stack@push@operand\expandafter{\pgfmathresult}%
\fi
\fi
}%
\expandafter\def\expandafter\pgfmathfloat@stack@push@operand@single@str\pgfmath@fpu@stringmarker #1\relax{%
\pgfmath@basic@stack@push@operand{#1}%
}%
\def\pgfmathfloat@stack@push@operand@GOBBLE#1\relax{}%
\def\pgfmathfloat@stack@push@operand@list#1{%
\expandafter\pgfutil@in@ \pgfmathfloat@POSTFLAGSCHAR{#1}%
\ifpgfutil@in@
\expandafter\def\expandafter\pgfmathfloat@stack@push@operand@list@\expandafter{%
\pgfmathfloat@stack@push@operand@list@{#1}%
}%
\else
\pgfmathfloatparsenumber{#1}%
\begingroup
\toks0=\expandafter{\pgfmathfloat@stack@push@operand@list@}%
\toks1=\expandafter{\pgfmathresult}%
\xdef\pgfmathfloat@glob@TMP{\the\toks0 {\the\toks1}}%
\endgroup
\let\pgfmathfloat@stack@push@operand@list@=\pgfmathfloat@glob@TMP
\fi
\pgfutil@ifnextchar\relax{%
\expandafter\pgfmath@basic@stack@push@operand\expandafter{\pgfmathfloat@stack@push@operand@list@}%
\pgfmathfloat@stack@push@operand@GOBBLE
}{%
\pgfmathfloat@stack@push@operand@list
}%
}%
\let\pgfmath@basic@add@=\pgfmathadd@
\let\pgfmath@basic@subtract@=\pgfmathsubtract@
\let\pgfmath@basic@multiply@=\pgfmathmultiply@
\let\pgfmath@basic@divide@=\pgfmathdivide@
\let\pgfmath@basic@reciprocal@=\pgfmathreciprocal@
\let\pgfmath@basic@abs@=\pgfmathabs@
\let\pgfmath@basic@round@=\pgfmathround@
\let\pgfmath@basic@rand@=\pgfmathrand@
\let\pgfmath@basic@rnd@=\pgfmathrnd@
\let\pgfmath@basic@setseed@=\pgfmathsetseed@
\let\pgfmath@basic@random@=\pgfmathrandom@
\let\pgfmath@basic@floor@=\pgfmathfloor@
\let\pgfmath@basic@ceil@=\pgfmathceil@
\let\pgfmath@basic@mod@=\pgfmathmod@
\let\pgfmath@basic@max@=\pgfmathmax@
\let\pgfmath@basic@min@=\pgfmathmin@
\let\pgfmath@basic@sin@=\pgfmathsin@
\let\pgfmath@basic@cos@=\pgfmathcos@
\let\pgfmath@basic@tan@=\pgfmathtan@
\let\pgfmath@basic@deg@=\pgfmathdeg@
\let\pgfmath@basic@rad@=\pgfmathrad@
\let\pgfmath@basic@atan@=\pgfmathatan@
\let\pgfmath@basic@asin@=\pgfmathasin@
\let\pgfmath@basic@acos@=\pgfmathacos@
\let\pgfmath@basic@cot@=\pgfmathcot@
\let\pgfmath@basic@sec@=\pgfmathsec@
\let\pgfmath@basic@cosec@=\pgfmathcosec@
\let\pgfmath@basic@pow@=\pgfmathpow@
\let\pgfmath@basic@exp@=\pgfmathexp@
\let\pgfmath@basic@ln@=\pgfmathln@
\let\pgfmath@basic@sqrt@=\pgfmathsqrt@
\let\pgfmath@basic@@pi=\pgfmath@pi
\let\pgfmath@basic@veclen@=\pgfmathveclen@
\let\pgfmath@basic@e@=\pgfmathe@
\let\pgfmath@basic@lessthan@=\pgfmathlessthan@
\let\pgfmath@basic@greaterthan@=\pgfmathgreaterthan@
\let\pgfmath@basic@equalto@=\pgfmathequalto@
\let\pgfmath@basic@equal@=\pgfmathequal@
\let\pgfmath@basic@true@=\pgfmathtrue@
\let\pgfmath@basic@false@=\pgfmathfalse@
\def\pgfmathfloatscientific#1#2{%
\edef\pgfmathresult{#1e#2}%
\expandafter\pgfmathfloatparsenumber\expandafter{\pgfmathresult}%
}%
\def\pgfmathfloatlessthan@#1#2{%
\global\pgfmathfloatcomparisonfalse
\begingroup
\edef\pgfmathfloat@loc@TMPa{#1}%
\edef\pgfmathfloat@loc@TMPb{#2}%
\expandafter\pgfmathfloat@decompose\pgfmathfloat@loc@TMPa\relax\pgfmathfloat@a@S\pgfmathfloat@a@M\pgfmathfloat@a@E
\expandafter\pgfmathfloat@decompose\pgfmathfloat@loc@TMPb\relax\pgfmathfloat@b@S\pgfmathfloat@b@M\pgfmathfloat@b@E
\ifcase\pgfmathfloat@a@S
\ifcase\pgfmathfloat@b@S
\or%
\global\pgfmathfloatcomparisontrue
\or%
\or%
\or%
\global\pgfmathfloatcomparisontrue
\or%
\fi
\or
\ifcase\pgfmathfloat@b@S
\or%
\pgfmathfloatlessthan@positive
\or%
\or%
\or%
\global\pgfmathfloatcomparisontrue
\or%
\fi
\or
\ifcase\pgfmathfloat@b@S
\global\pgfmathfloatcomparisontrue
\or%
\global\pgfmathfloatcomparisontrue
\or%
\pgfmathfloatgreaterthan@positive
\or%
\or%
\global\pgfmathfloatcomparisontrue
\or%
\fi
\or
\or
\or
\ifnum\pgfmathfloat@b@S=3
\else
\global\pgfmathfloatcomparisontrue
\fi
\fi
\endgroup
\ifpgfmathfloatcomparison
\def\pgfmathresult{1.0}%
\else
\def\pgfmathresult{0.0}%
\fi
}%
\let\pgfmathfloatlessthan=\pgfmathfloatlessthan@
\let\pgfmathfloatless@=\pgfmathfloatlessthan@
\def\pgfmathfloatnotless@#1#2{%
\pgfmathfloatless@{#1}{#2}%
\ifpgfmathfloatcomparison
\def\pgfmathresult{0.0}%
\else
\def\pgfmathresult{1.0}%
\fi
}%
\def\pgfmathfloatnotgreater@#1#2{%
\pgfmathfloatless@{#2}{#1}%
\ifpgfmathfloatcomparison
\def\pgfmathresult{0.0}%
\else
\def\pgfmathresult{1.0}%
\fi
}%
\def\pgfmathfloatlessthan@positive{%
\ifnum\pgfmathfloat@a@E<\pgfmathfloat@b@E
\global\pgfmathfloatcomparisontrue
\else
\ifnum\pgfmathfloat@a@E=\pgfmathfloat@b@E
\ifdim\pgfmathfloat@a@M<\pgfmathfloat@b@M
\global\pgfmathfloatcomparisontrue
\fi
\fi
\fi
}%
\def\pgfmathfloatgreaterthan@positive{%
\ifnum\pgfmathfloat@a@E>\pgfmathfloat@b@E
\global\pgfmathfloatcomparisontrue
\else
\ifnum\pgfmathfloat@a@E=\pgfmathfloat@b@E
\ifdim\pgfmathfloat@a@M>\pgfmathfloat@b@M
\global\pgfmathfloatcomparisontrue
\fi
\fi
\fi
}%
\def\pgfmathfloatgreaterthan@#1#2{\pgfmathfloatlessthan@{#2}{#1}}%
\let\pgfmathfloatgreaterthan=\pgfmathfloatgreaterthan@
\let\pgfmathfloatgreater@=\pgfmathfloatgreaterthan@
\def\pgfmathfloatmax@#1{%
\begingroup
\pgfmathfloatcreate{2}{1.0}{2147483644}%
\let\pgfmathmaxsofar=\pgfmathresult
\pgfmathfloatmax@@#1{}%
}%
\def\pgfmathfloatmax@@#1{%
\def\pgfmath@temp{#1}%
\ifx\pgfmath@temp\pgfmath@empty%
\expandafter\pgfmathfloatmax@@@%
\else%
\pgfmathfloatlessthan{\pgfmathmaxsofar}{#1}%
\ifpgfmathfloatcomparison
\edef\pgfmathmaxsofar{#1}%
\fi
\expandafter\pgfmathfloatmax@@%
\fi%
}%
\def\pgfmathfloatmax@@@{%
\let\pgfmathresult=\pgfmathmaxsofar
\pgfmath@smuggleone{\pgfmathresult}%
\endgroup
}%
\def\pgfmathfloatmin@#1{%
\begingroup
\pgfmathfloatcreate{1}{1.0}{2147483644}%
\let\pgfmathminsofar=\pgfmathresult
\pgfmathfloatmin@@#1{}%
}%
\def\pgfmathfloatmin@@#1{%
\def\pgfmath@temp{#1}%
\ifx\pgfmath@temp\pgfmath@empty%
\expandafter\pgfmathfloatmin@@@%
\else%
\pgfmathfloatlessthan{#1}{\pgfmathminsofar}%
\ifpgfmathfloatcomparison
\edef\pgfmathminsofar{#1}%
\fi
\expandafter\pgfmathfloatmin@@%
\fi%
}%
\def\pgfmathfloatmin@@@{%
\let\pgfmathresult=\pgfmathminsofar
\pgfmath@smuggleone{\pgfmathresult}%
\endgroup
}%
\def\pgfmathfloatmaxtwo#1#2{%
\pgfmathfloatlessthan{#1}{#2}%
\ifpgfmathfloatcomparison
\edef\pgfmathresult{#2}%
\else
\edef\pgfmathresult{#1}%
\fi
}%
\let\pgfmathfloatmax=\pgfmathfloatmaxtwo
\def\pgfmathfloatmintwo#1#2{%
\pgfmathfloatlessthan{#1}{#2}%
\ifpgfmathfloatcomparison
\edef\pgfmathresult{#1}%
\else
\edef\pgfmathresult{#2}%
\fi
}%
\let\pgfmathfloatmin=\pgfmathfloatmintwo
\def\pgfmathfloattoextentedprecision#1{%
\begingroup
\pgfmathfloattoextentedprecision@a{#1}%
\pgfmathfloatcreate{\the\pgfmathfloat@a@S}{\pgfmathresult}{\the\pgfmathfloat@a@E}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloattoextentedprecision@@zero#1\pgfmathfloat@EOI{%
\edef\pgfmathresult{#1}%
}%
\def\pgfmathfloattoextentedprecision@@one#1.#2#3\pgfmathfloat@EOI{%
\edef\pgfmathresult{#1#2.#3}%
}%
\def\pgfmathfloattoextentedprecision@@two#1.#2#3#4\pgfmathfloat@EOI{%
\edef\pgfmathresult{#1#2#3.#4}%
}%
\def\pgfmathfloattoextentedprecision@@three#1.#2#3#4#5\pgfmathfloat@EOI{%
\edef\pgfmathresult{#1#2#3#4.#5}%
}%
\def\pgfmathfloatsetextprecision#1{%
\ifcase#1\relax
\let\pgfmathfloattoextentedprecision@@=\pgfmathfloattoextentedprecision@@zero
\def\pgfmathfloatextprec@shift{0}%
\or
\let\pgfmathfloattoextentedprecision@@=\pgfmathfloattoextentedprecision@@one
\def\pgfmathfloatextprec@shift{1}%
\or
\let\pgfmathfloattoextentedprecision@@=\pgfmathfloattoextentedprecision@@two
\def\pgfmathfloatextprec@shift{2}%
\else
\let\pgfmathfloattoextentedprecision@@=\pgfmathfloattoextentedprecision@@three
\def\pgfmathfloatextprec@shift{3}%
\fi
}%
\pgfmathfloatsetextprecision{2}%
\def\pgfmathfloattoextentedprecision@a#1{%
\edef\pgfmathresult{#1}%
\expandafter\pgfmathfloat@decompose@tok\pgfmathresult\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\ifnum\pgfmathfloat@a@S<3
\advance\pgfmathfloat@a@E by-\pgfmathfloatextprec@shift\relax%
\expandafter\pgfmathfloattoextentedprecision@@\the\pgfmathfloat@a@Mtok 000\pgfmathfloat@EOI
\fi
}%
\def\pgfmathfloattoextentedprecision@b#1{%
\edef\pgfmathresult{#1}%
\expandafter\pgfmathfloat@decompose@tok\pgfmathresult\relax\pgfmathfloat@b@S\pgfmathfloat@a@Mtok\pgfmathfloat@b@E
\ifnum\pgfmathfloat@b@S<3
\advance\pgfmathfloat@b@E by-\pgfmathfloatextprec@shift\relax
\expandafter\pgfmathfloattoextentedprecision@@\the\pgfmathfloat@a@Mtok 00\pgfmathfloat@EOI
\fi
}%
\def\pgfmathfloatadd@#1#2{%
\begingroup
\pgfmathfloattoextentedprecision@a{#1}%
\let\pgfmathfloat@arga=\pgfmathresult
\pgfmathfloattoextentedprecision@b{#2}%
\let\pgfmathfloat@argb=\pgfmathresult
\pgfmathfloatcomparisontrue%
\ifcase\pgfmathfloat@a@S
\edef\pgfmathresult{#2}%
\pgfmathfloatcomparisonfalse
\or
\or
\edef\pgfmathfloat@arga{-\pgfmathfloat@arga}%
\else
\pgfmathfloatcomparisonfalse
\pgfmathfloatcreate{\the\pgfmathfloat@a@S}{0.0}{0}%
\fi
\ifcase\pgfmathfloat@b@S
\edef\pgfmathresult{#1}%
\pgfmathfloatcomparisonfalse
\or
\or
\edef\pgfmathfloat@argb{-\pgfmathfloat@argb}%
\else
\pgfmathfloatcomparisonfalse
\pgfmathfloatcreate{\the\pgfmathfloat@b@S}{0.0}{0}%
\fi
\ifpgfmathfloatcomparison
\ifnum\pgfmathfloat@a@E<\pgfmathfloat@b@E
\pgfmathfloatadd@shift{\pgfmathfloat@arga}{\pgfmathfloat@a@E}{\pgfmathfloat@b@E}%
\else
\pgfmathfloatadd@shift{\pgfmathfloat@argb}{\pgfmathfloat@b@E}{\pgfmathfloat@a@E}%
\fi
\pgfmath@basic@add@{\pgfmathfloat@arga}{\pgfmathfloat@argb}%
\edef\pgfmathresult{\pgfmathresult e\the\pgfmathfloat@a@E}%
\expandafter\pgfmathfloatqparsenumber\expandafter{\pgfmathresult}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloatifzero#1#2#3{%
\pgfmathfloatgetflagstomacro{#1}\pgfmathfloat@loc@TMPa
\if\pgfmathfloat@loc@TMPa0 #2\else#3\fi
}%
\def\pgfmathfloatiffinite#1#2#3{%
\pgfmathfloatgetflagstomacro{#1}\pgfmathfloatiffinite@
\ifnum\pgfmathfloatiffinite@>2 #3\else #2\fi
}%
\def\pgfmathfloatifthenelse@#1#2#3{%
\pgfmathfloatifflags{#1}{0}{%
\edef\pgfmathresult{#3}%
}{%
\edef\pgfmathresult{#2}%
}%
}%
\def\pgfmathfloatequal@#1#2{%
\pgfmathfloatifapproxequalrel{#1}{#2}{%
\def\pgfmathresult{1}%
\pgfmathfloatcomparisontrue
}{%
\def\pgfmathresult{0}%
\pgfmathfloatcomparisonfalse
}%
}%
\let\pgfmathfloatequalto@=\pgfmathfloatequal@
\def\pgfmathfloatnotequal@#1#2{%
\pgfmathfloatifapproxequalrel{#1}{#2}{%
\def\pgfmathresult{0}%
\pgfmathfloatcomparisonfalse
}{%
\def\pgfmathresult{1}%
\pgfmathfloatcomparisontrue
}%
}%
\let\pgfmathfloatnotequalto@=\pgfmathfloatnotequal@
\long\def\pgfmathfloatifapproxequalrel#1#2#3#4{%
\begingroup
\pgfmathfloatparsenumber{#1}%
\let\pgfmathfloatarga=\pgfmathresult
\pgfmathfloatparsenumber{#2}%
\let\pgfmathfloatargb=\pgfmathresult
\pgfmathfloatrelerror@\pgfmathfloatarga\pgfmathfloatargb
\let\pgfmathfloatarga=\pgfmathresult
\pgfmathfloatlessthan@\pgfmathfloatarga\pgfmathfloat@relthresh
\ifpgfmathfloatcomparison
\def\pgfmathfloat@loc@TMPa{#3}%
\else
\def\pgfmathfloat@loc@TMPa{#4}%
\fi
\expandafter\endgroup
\pgfmathfloat@loc@TMPa
}%
\def\pgfmathfloatifflags#1#2#3#4{%
\if#2-%
\pgfmathfloatifflags{#1}{2}{#3}{#4}%
\else
\if#2+%
\pgfmathfloatifflags{#1}{1}{#3}{#4}%
\else
\pgfmathfloatgetflagstomacro{#1}\pgfmathfloat@loc@TMPa
\if#2u%
\ifnum\pgfmathfloat@loc@TMPa>2
#3\relax
\else
#4\relax
\fi
\else
\if\pgfmathfloat@loc@TMPa#2%
#3\relax
\else
#4\relax
\fi
\fi
\fi
\fi
}%
\def\pgfmathfloatadd@shift#1#2#3{%
\pgf@xa=#1 pt%
\pgfmathfloat@a@S=#3\relax
\advance\pgfmathfloat@a@S by-#2\relax
\ifcase\pgfmathfloat@a@S
\or
\divide\pgf@xa by10\relax
\or
\divide\pgf@xa by100\relax
\or
\divide\pgf@xa by1000\relax
\or
\divide\pgf@xa by10000\relax
\or
\divide\pgf@xa by10000\relax
\divide\pgf@xa by10\relax
\or
\divide\pgf@xa by10000\relax
\divide\pgf@xa by100\relax
\or
\divide\pgf@xa by10000\relax
\divide\pgf@xa by1000\relax
\or
\divide\pgf@xa by10000\relax
\divide\pgf@xa by10000\relax
\else
\pgf@xa=0pt%
\fi
#2=#3\relax
\edef#1{\pgf@sys@tonumber\pgf@xa}%
}%
\let\pgfmathfloatadd=\pgfmathfloatadd@
\def\pgfmathfloatsubtract@#1#2{%
\begingroup
\edef\pgfmathresult{#2}%
\expandafter\pgfmathfloat@decompose@tok\pgfmathresult\relax\pgfmathfloat@b@S\pgfmathfloat@a@Mtok\pgfmathfloat@b@E
\ifcase\pgfmathfloat@b@S
\edef\pgfmathresult{#1}%
\or
\pgfmathfloatcreate{2}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@b@E}%
\let\pgfmathfloatsub@arg=\pgfmathresult
\pgfmathfloatadd@{#1}{\pgfmathfloatsub@arg}%
\or
\pgfmathfloatcreate{1}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@b@E}%
\let\pgfmathfloatsub@arg=\pgfmathresult
\pgfmathfloatadd@{#1}{\pgfmathfloatsub@arg}%
\else
\pgfmathfloatcreate{\the\pgfmathfloat@b@S}{0.0}{0}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\let\pgfmathfloatsubtract=\pgfmathfloatsubtract@
\def\pgfmathfloatmultiplyfixed@#1#2{%
\begingroup
\pgfmathfloattoextentedprecision@a{#1}%
\let\pgfmathfloat@arga=\pgfmathresult
\pgfmathfloatcomparisontrue%
\ifcase\pgfmathfloat@a@S
\edef\pgfmathresult{#1}%
\pgfmathfloatcomparisonfalse
\or
\or
\edef\pgfmathfloat@arga{-\pgfmathfloat@arga}%
\else
\pgfmathfloatcomparisonfalse
\pgfmathfloatcreate{\the\pgfmathfloat@a@S}{0.0}{0}%
\fi
\ifpgfmathfloatcomparison
\pgfmath@basic@multiply@{\pgfmathfloat@arga}{#2}%
\edef\pgfmathresult{\pgfmathresult e\the\pgfmathfloat@a@E}%
\expandafter\pgfmathfloatqparsenumber\expandafter{\pgfmathresult}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\let\pgfmathfloatmultiplyfixed=\pgfmathfloatmultiplyfixed@
\def\pgfmathfloatmultiply@#1#2{%
\begingroup
\pgfmathfloatsetextprecision{1}%
\pgfmathfloattoextentedprecision@a{#1}%
\let\pgfmathfloat@arga=\pgfmathresult
\pgfmathfloattoextentedprecision@b{#2}%
\let\pgfmathfloat@argb=\pgfmathresult
\pgfmathfloatcomparisontrue%
\ifcase\pgfmathfloat@a@S
\pgfmathfloatcreate{0}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or%
\ifcase\pgfmathfloat@b@S
\pgfmathfloatcreate{0}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\def\pgfmathresult@S{1}%
\or
\def\pgfmathresult@S{2}%
\else
\expandafter\pgfmathfloatcreate\the\pgfmathfloat@b@S{0.0}{0}%
\pgfmathfloatcomparisonfalse
\fi
\or%
\ifcase\pgfmathfloat@b@S
\pgfmathfloatcreate{0}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\def\pgfmathresult@S{2}%
\or
\def\pgfmathresult@S{1}%
\or
\pgfmathfloatcreate{3}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{5}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{4}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\fi
\or%
\pgfmathfloatcreate{3}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or%
\ifcase\pgfmathfloat@b@S
\pgfmathfloatcreate{0}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{4}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{5}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{3}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{4}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{5}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\fi
\or%
\ifcase\pgfmathfloat@b@S
\pgfmathfloatcreate{0}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{5}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{4}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{3}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{5}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{4}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\fi
\fi
\ifpgfmathfloatcomparison
\pgfmath@basic@multiply@{\pgfmathfloat@arga}{\pgfmathfloat@argb}%
\advance\pgfmathfloat@a@E by\pgfmathfloat@b@E
\edef\pgfmathresult{\pgfmathresult e\the\pgfmathfloat@a@E}%
\expandafter\pgfmathfloatqparsenumber\expandafter{\pgfmathresult}%
\expandafter\pgfmathfloat@decompose@tok\pgfmathresult\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\pgfmathfloatcreate{\pgfmathresult@S}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\let\pgfmathfloatmultiply=\pgfmathfloatmultiply@
\def\pgfmathfloatdivide@#1#2{%
\begingroup
\pgfmathfloatsetextprecision{1}%
\edef\pgfmathfloat@arga{#1}%
\pgfmathfloattoextentedprecision@a{\pgfmathfloat@arga}%
\let\pgfmathfloat@arga=\pgfmathresult
\edef\pgfmathfloat@argb{#2}%
\pgfmathfloattoextentedprecision@b{\pgfmathfloat@argb}%
\let\pgfmathfloat@argb=\pgfmathresult
\pgfmathfloatcomparisontrue%
\ifcase\pgfmathfloat@a@S
\pgfmathfloatcreate{0}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or%
\ifcase\pgfmathfloat@b@S
\pgfmathfloatcreate{4}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\def\pgfmathresult@S{1}%
\or
\def\pgfmathresult@S{2}%
\or
\pgfmathfloatcreate{3}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\else
\pgfmathfloatcreate{0}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\fi
\or%
\ifcase\pgfmathfloat@b@S
\pgfmathfloatcreate{5}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\def\pgfmathresult@S{2}%
\or
\def\pgfmathresult@S{1}%
\or
\pgfmathfloatcreate{3}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\else
\pgfmathfloatcreate{0}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\fi
\or%
\pgfmathfloatcreate{3}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or%
\ifcase\pgfmathfloat@b@S
\pgfmathfloatcreate{4}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{4}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{5}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{3}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{4}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{5}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\fi
\or%
\ifcase\pgfmathfloat@b@S
\pgfmathfloatcreate{5}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{5}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{4}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{3}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{5}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\or
\pgfmathfloatcreate{4}{0.0}{0}%
\pgfmathfloatcomparisonfalse
\fi
\fi
\ifpgfmathfloatcomparison
\pgfmath@basic@divide@{\pgfmathfloat@arga}{\pgfmathfloat@argb}%
\advance\pgfmathfloat@a@E by-\pgfmathfloat@b@E
\edef\pgfmathresult{\pgfmathresult e\the\pgfmathfloat@a@E}%
\expandafter\pgfmathfloatqparsenumber\expandafter{\pgfmathresult}%
\expandafter\pgfmathfloat@decompose@tok\pgfmathresult\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\pgfmathfloatcreate{\pgfmathresult@S}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\let\pgfmathfloatdivide=\pgfmathfloatdivide@
\def\pgfmathfloatreciprocal@#1{%
\begingroup
\edef\pgfmathfloat@loc@TMPa{#1}%
\pgfmathfloatcreate{1}{1.0}{0}%
\pgfmathfloatdivide@{\pgfmathresult}{\pgfmathfloat@loc@TMPa}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloatsqrt@#1{%
\begingroup
\pgfmathfloatsetextprecision{3}%
\edef\pgfmathfloat@arga{#1}%
\pgfmathfloattoextentedprecision@a{\pgfmathfloat@arga}%
\let\pgfmathfloat@arga=\pgfmathresult
\ifcase\pgfmathfloat@a@S
\pgfmathfloatcreate{0}{0.0}{0}%
\or%
\pgfmath@basic@sqrt@{\pgfmathfloat@arga}%
\ifodd\pgfmathfloat@a@E
\ifnum\pgfmathfloat@a@E>0
\expandafter\pgfmath@basic@multiply@\expandafter{\pgfmathresult}{3.16227766}%
\else
\expandafter\pgfmath@basic@multiply@\expandafter{\pgfmathresult}{0.316227766}%
\fi
\fi
\divide\pgfmathfloat@a@E by2 %
\edef\pgfmathfloat@arga{\pgfmathresult e\the\pgfmathfloat@a@E}%
\pgfmathfloatqparsenumber{\pgfmathfloat@arga}%
\or%
\pgfmathfloatcreate{3}{0.0}{0}%
\or%
\pgfmathfloatcreate{3}{0.0}{0}%
\or%
\pgfmathfloatcreate{4}{0.0}{0}%
\or%
\pgfmathfloatcreate{3}{0.0}{0}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\let\pgfmathfloatsqrt=\pgfmathfloatsqrt@
\def\pgfmathfloatint@#1{%
\begingroup
\edef\pgfmathfloatint@input{#1}%
\expandafter\pgfmathfloat@decompose@tok\pgfmathfloatint@input\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\gdef\pgfmathfloatintwasnoop{1}%
\gdef\pgfmathfloatintremainder{}%
\ifcase\pgfmathfloat@a@S
\or%
\expandafter\pgfmathfloatint@@\the\pgfmathfloat@a@Mtok\pgfmathfloat@EOI
\pgfmathfloatcreate{\the\pgfmathfloat@a@S}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\or%
\expandafter\pgfmathfloatint@@\the\pgfmathfloat@a@Mtok\pgfmathfloat@EOI
\pgfmathfloatcreate{\the\pgfmathfloat@a@S}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\else
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloatint@@#1.{%
\ifnum\pgfmathfloat@a@E<0
\pgfmathfloat@a@S=0
\pgfmathfloat@a@Mtok={0.0}%
\pgfmathfloat@a@E=0
\gdef\pgfmathfloatintwasnoop{0}%
\expandafter\pgfmathfloatint@@loop@gobble
\else
\pgfmathfloat@a@Mtok={#1.}%
\pgfmathfloat@b@E=\pgfmathfloat@a@E
\expandafter\pgfmathfloatint@@loop
\fi
}%
\def\pgfmathfloatint@@loop#1{%
\def\pgfmathfloatint@@loop@{#1}%
\ifx\pgfmathfloatint@@loop@\pgfmathfloat@EOI
\gdef\pgfmathfloatintwasnoop{1}%
\let\pgfmathfloatint@@loop@next=\relax
\else
\ifnum\pgfmathfloat@b@E=0
\def\pgfmathfloatint@@loop@next{\pgfmathfloatint@@loop@gobble#1}%
\else
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok#1}%
\advance\pgfmathfloat@b@E by-1
\let\pgfmathfloatint@@loop@next=\pgfmathfloatint@@loop
\fi
\fi
\pgfmathfloatint@@loop@next
}%
\def\pgfmathfloatint@@loop@gobble#1\pgfmathfloat@EOI{%
\if0\pgfmathfloatintwasnoop
\else
\gdef\pgfmathfloatintwasnoop{2}%
\gdef\pgfmathfloatintremainder{#1}%
\fi
}%
\let\pgfmathfloatint=\pgfmathfloatint@
\def\pgfmathfloatfloor#1{%
\edef\pgfmath@orig{#1}%
\pgfmathfloatint@{#1}%
\pgfmathfloatifflags{\pgfmath@orig}{2}{%
\let\pgfmath@trunc=\pgfmathresult
\ifcase\pgfmathfloatintwasnoop\relax
\pgfmathfloatcreate{2}{1.0}{0}%
\expandafter\pgfmathfloatadd@\expandafter{\pgfmathresult}{\pgfmath@trunc}%
\or
\let\pgfmathresult=\pgfmath@trunc
\else
\pgfmathfloatparsenumber{0.\pgfmathfloatintremainder}%
\pgfmathfloatifflags{\pgfmathresult}{1}{%
\pgfmathfloatcreate{2}{1.0}{0}%
\expandafter\pgfmathfloatadd@\expandafter{\pgfmathresult}{\pgfmath@trunc}%
}{%
\let\pgfmathresult=\pgfmath@trunc
}%
\fi
}{}%
}%
\let\pgfmathfloatfloor@=\pgfmathfloatfloor
\def\pgfmathfloatceil#1{%
\edef\pgfmath@orig{#1}%
\pgfmathfloatint@{#1}%
\pgfmathfloatifflags{\pgfmath@orig}{1}{%
\let\pgfmath@trunc=\pgfmathresult
\ifcase\pgfmathfloatintwasnoop\relax
\pgfmathfloatcreate{1}{1.0}{0}%
\expandafter\pgfmathfloatadd@\expandafter{\pgfmathresult}{\pgfmath@trunc}%
\or
\let\pgfmathresult=\pgfmath@trunc
\else
\pgfmathfloatparsenumber{0.\pgfmathfloatintremainder}%
\pgfmathfloatifflags{\pgfmathresult}{1}{%
\pgfmathfloatcreate{1}{1.0}{0}%
\expandafter\pgfmathfloatadd@\expandafter{\pgfmathresult}{\pgfmath@trunc}%
}{%
\let\pgfmathresult=\pgfmath@trunc
}%
\fi
}{}%
}%
\let\pgfmathfloatceil@=\pgfmathfloatceil
\def\pgfmathfloat@notimplemented#1{%
\pgfmath@error{Sorry, the operation '#1' has not yet been implemented in the floating point unit}{}%
\pgfmathfloatcreate{0}{0.0}{0}%
}%
\def\pgfmathfloatshift@#1#2{%
\begingroup
\expandafter\pgfmathfloat@decompose@tok#1\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\advance\pgfmathfloat@a@E by#2\relax
\pgfmathfloatcreate{\the\pgfmathfloat@a@S}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\let\pgfmathfloatshift=\pgfmathfloatshift@
\def\pgfmathfloatabs@#1{%
\begingroup
\expandafter\pgfmathfloat@decompose@tok#1\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\ifcase\pgfmathfloat@a@S
\or
\or
\pgfmathfloat@a@S=1
\or
\or
\or
\pgfmathfloat@a@S=4
\fi
\pgfmathfloatcreate{\the\pgfmathfloat@a@S}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloatsign@#1{%
\begingroup
\expandafter\pgfmathfloat@decompose@tok#1\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\ifcase\pgfmathfloat@a@S
\pgfmathfloatcreate{0}{0.0}{0}%
\or
\pgfmathfloatcreate{1}{1.0}{0}%
\or
\pgfmathfloatcreate{2}{1.0}{0}%
\or
\pgfmathfloatcreate{\the\pgfmathfloat@a@S}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\or
\pgfmathfloatcreate{1}{1.0}{0}%
\or
\pgfmathfloatcreate{2}{1.0}{0}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\let\pgfmathfloatsign=\pgfmathfloatsign@
\def\pgfmathfloatabserror@#1#2{%
\pgfmathfloatsubtract@{#1}{#2}%
\pgfmathfloatabs@{\pgfmathresult}%
}%
\let\pgfmathfloatabserror=\pgfmathfloatabserror@
\def\pgfmathfloatrelerror@#1#2{%
\pgfmathfloatsubtract@{#1}{#2}%
\let\pgfmathfloat@subtract=\pgfmathresult
\pgfmathfloatifflags{#2}{0}{%
\let\pgfmathresult=\pgfmathfloat@subtract
}{%
\pgfmathfloatdivide@{\pgfmathfloat@subtract}{#2}%
}%
\pgfmathfloatabs@{\pgfmathresult}%
}%
\let\pgfmathfloatrelerror=\pgfmathfloatrelerror@
\def\pgfmathfloatmod@#1#2{%
\begingroup
\pgfmathfloattoint{#1}%
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\pgfmathfloattoint{#2}%
\let\pgfmathfloat@loc@TMPb=\pgfmathresult
\c@pgfmath@counta=\pgfmathfloat@loc@TMPa\relax
\divide\c@pgfmath@counta by\pgfmathfloat@loc@TMPb\relax
\expandafter\pgfmathfloatparsenumber\expandafter{\the\c@pgfmath@counta}%
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\pgfmathfloatmultiply@{\pgfmathfloat@loc@TMPa}{#2}%
\let\pgfmathfloat@loc@TMPb=\pgfmathresult
\pgfmathfloatsubtract@{#1}{\pgfmathfloat@loc@TMPb}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\let\pgfmathfloatmod=\pgfmathfloatmod@
\def\pgfmathfloatmodknowsinverse@#1#2#3{%
\pgfmathfloatmod@{#1}{#2}%
}%
\let\pgfmathfloatmodknowsinverse=\pgfmathfloatmodknowsinverse@
\def\pgfmathfloatpi@{%
\pgfmathfloatcreate{1}{3.14159265358979}{0}%
}%
\let\pgfmathfloatpi=\pgfmathfloatpi@
\def\pgfmathfloate@{%
\pgfmathfloatcreate{1}{2.71828182845905}{0}%
}%
\let\pgfmathfloate=\pgfmathfloate@
\def\pgfmathfloatdeg@#1{%
\expandafter\ifx\csname pgfmfltdeg@factor\endcsname\relax
\pgfmathfloatcreate{1}{5.72957795130823}{1}%
\global\let\pgfmfltdeg@factor=\pgfmathresult
\fi
\pgfmathfloatmultiply@{#1}\pgfmfltdeg@factor%
}%
\let\pgfmathfloatdeg=\pgfmathfloatdeg@
\def\pgfmathfloatrad@#1{%
\expandafter\ifx\csname pgfmfltrad@factor\endcsname\relax
\pgfmathfloatcreate{1}{1.74532925199433}{-2}%
\global\let\pgfmfltrad@factor=\pgfmathresult
\fi
\pgfmathfloatmultiply@{#1}\pgfmfltrad@factor%
}%
\let\pgfmathfloatrad=\pgfmathfloatrad@
\def\pgfmathfloatTRIG@#1#2{%
\if0\pgfmath@trig@format@choice
\expandafter\ifx\csname pgfmathfloatTRIG@NUM\endcsname\relax%
\pgfmathfloatcreate{1}{3.6}{2}%
\global\let\pgfmathfloatTRIG@NUM=\pgfmathresult
\pgfmathfloatcreate{1}{2.77777777777778}{-3}%
\global\let\pgfmathfloatTRIG@NUM@INV=\pgfmathresult
\fi
\pgfmathfloatmodknowsinverse@{#2}{\pgfmathfloatTRIG@NUM}{\pgfmathfloatTRIG@NUM@INV}%
\else
\expandafter\ifx\csname pgfmathfloatTRIG@rad@NUM\endcsname\relax%
\pgfmathfloatcreate{1}{6.28318530717959}{0}%
\global\let\pgfmathfloatTRIG@rad@NUM=\pgfmathresult
\pgfmathfloatcreate{1}{1.59154943091895}{-1}%
\global\let\pgfmathfloatTRIG@rad@NUM@INV=\pgfmathresult
\fi
\pgfmathfloatmodknowsinverse@{#2}{\pgfmathfloatTRIG@rad@NUM}{\pgfmathfloatTRIG@rad@NUM@INV}%
\fi
\pgfmathfloattofixed@{\pgfmathresult}%
\expandafter#1\expandafter{\pgfmathresult}%
\pgfmathfloatparsenumber{\pgfmathresult}%
}%
\def\pgfmathfloatsin@#1{\pgfmathfloatTRIG@\pgfmath@basic@sin@{#1}}%
\let\pgfmathfloatsin=\pgfmathfloatsin@
\def\pgfmathfloatcos@#1{\pgfmathfloatTRIG@\pgfmath@basic@cos@{#1}}%
\let\pgfmathfloatcos=\pgfmathfloatcos@
\def\pgfmathfloattan@#1{%
\begingroup
\pgfmathfloatcos@{#1}%
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\pgfmathfloatsin@{#1}%
\expandafter\pgfmathfloatdivide@\expandafter{\pgfmathresult}{\pgfmathfloat@loc@TMPa}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\let\pgfmathfloattan=\pgfmathfloattan@
\def\pgfmathfloatcot@#1{%
\begingroup
\pgfmathfloatsin@{#1}%
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\pgfmathfloatcos@{#1}%
\expandafter\pgfmathfloatdivide@\expandafter{\pgfmathresult}{\pgfmathfloat@loc@TMPa}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\let\pgfmathfloatcot=\pgfmathfloatcot@
\def\pgfmathfloatatan@#1{%
\begingroup
\expandafter\ifx\csname pgfmathfloatatan@TMP\endcsname\relax%
\pgfmathfloatcreate{1}{1.6}{4}%
\global\let\pgfmathfloatatan@TMP=\pgfmathresult
\pgfmathfloatcreate{2}{1.6}{4}%
\global\let\pgfmathfloatatan@TMPB=\pgfmathresult
\fi
\pgfmathfloatgreaterthan@{#1}{\pgfmathfloatatan@TMP}%
\ifpgfmathfloatcomparison
\pgfmathiftrigonometricusesdeg{%
\pgfmathfloatcreate{1}{9.0}{1}%
}{%
\pgfmathfloatcreate{1}{1.570796326794}{0}%
}%
\else
\pgfmathfloatlessthan{#1}{\pgfmathfloatatan@TMPB}%
\ifpgfmathfloatcomparison
\pgfmathiftrigonometricusesdeg{%
\pgfmathfloatcreate{2}{9.0}{1}%
}{%
\pgfmathfloatcreate{2}{1.570796326794}{0}%
}%
\else
\pgfmathfloattofixed@{#1}%
\expandafter\pgfmath@basic@atan@\expandafter{\pgfmathresult}%
\pgfmathfloatparsenumber{\pgfmathresult}%
\fi
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\let\pgfmathfloatatan=\pgfmathfloatatan@
\def\pgfmathfloatatantwo#1#2{%
\begingroup%
\let\pgfmath@trig@format@choice@@=\pgfmath@trig@format@choice
\def\pgfmath@trig@format@choice{0}%
\expandafter\pgfmathfloat@decompose@tok#1\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\expandafter\pgfmathfloat@decompose#2\relax\pgfmathfloat@b@S\pgfmathfloat@b@M\pgfmathfloat@b@E
\ifnum\pgfmathfloat@a@S=0
\pgfmathfloat@a@E=-16 %
\fi
\ifnum\pgfmathfloat@a@E<-3 %
\ifnum\pgfmathfloat@b@S=2 %
\pgfmathfloatcreate{1}{1.8}{2}%
\else
\ifnum\pgfmathfloat@b@S=1 %
\pgfmathfloatcreate{0}{0.0}{0}%
\else
\pgfmathfloatcreate{\the\pgfmathfloat@a@S}{9.0}{1}%
\fi
\fi
\else%
\pgfmathfloatabs@{#1}\let\pgfmath@tempa\pgfmathresult%
\pgfmathfloatabs@{#2}\let\pgfmath@tempb\pgfmathresult%
\pgfmathfloatgreaterthan@{\pgfmath@tempa}{\pgfmath@tempb}%
\ifpgfmathfloatcomparison
\pgfmathfloatdivide@{#2}{\pgfmath@tempa}%
\expandafter\pgfmathfloatatan@\expandafter{\pgfmathresult}%
\let\pgfmath@tempa=\pgfmathresult
\pgfmathfloatcreate{1}{9.0}{1}%
\let\pgfmath@tempb=\pgfmathresult
\pgfmathfloatsubtract@{\pgfmath@tempb}{\pgfmath@tempa}%
\else%
\pgfmathfloatdivide@{\pgfmath@tempa}{#2}%
\expandafter\pgfmathfloatatan@\expandafter{\pgfmathresult}%
\expandafter\pgfmathfloatifflags\expandafter{\pgfmathresult}{2}{%
\let\pgfmath@tempa=\pgfmathresult
\pgfmathfloatcreate{1}{1.8}{2}%
\let\pgfmath@tempb=\pgfmathresult
\pgfmathfloatadd@{\pgfmath@tempa}{\pgfmath@tempb}%
}{}%
\fi%
\pgfmathfloatifflags{#1}{-}{%
\pgfmathfloatmultiplyfixed@{\pgfmathresult}{-1}%
}{}%
\fi%
\if1\pgfmath@trig@format@choice@@
\pgfmathfloat@scale@deg@to@rad\pgfmathresult
\fi
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}%
\let\pgfmathfloatatantwo@=\pgfmathfloatatantwo
\expandafter\let\csname pgfmathfloatatan2\endcsname=\pgfmathfloatatantwo
\expandafter\let\csname pgfmathfloatatan2@\endcsname=\pgfmathfloatatantwo@
\def\pgfmathfloat@scale@deg@to@rad#1{%
\edef\pgfmathfloat@loc@TMPb{#1}%
\pgfmathfloatcreate{1}{1.74532925199433}{-2}%
\pgfmathfloatmultiply@{\pgfmathresult}{\pgfmathfloat@loc@TMPb}%
}%
\def\pgfmathfloatsec@#1{\pgfmathfloatTRIG@\pgfmath@basic@cos@{#1}\pgfmathfloatreciprocal@{\pgfmathresult}}%
\let\pgfmathfloatsec=\pgfmathfloatsec@
\def\pgfmathfloatcosec@#1{\pgfmathfloatTRIG@\pgfmath@basic@sin@{#1}\pgfmathfloatreciprocal@{\pgfmathresult}}%
\let\pgfmathfloatcosec=\pgfmathfloatcosec@
\def\pgfmathlog@invoke@expanded#1#2{%
\edef\pgfmath@resulttemp{#2}%
\expandafter#1\pgfmath@resulttemp
}%
\def\pgfmathfloatln@#1{%
\pgfmathlog@float{#1}%
\ifx\pgfmathresult\pgfutil@empty
\pgfmathfloatcreate{3}{0.0}{0}%
\else
\pgfmathfloatparsenumber{\pgfmathresult}%
\fi
}%
\let\pgfmathfloatln=\pgfmathfloatln@
\expandafter\def\csname pgfmathfloatlog10@\endcsname#1{%
\pgfmathfloatln@{#1}%
\let\pgfmathfloat@log@e=\pgfmathresult
\pgfmathfloatcreate{1}{4.34294481903252}{-1}%
\pgfmathfloatmultiply@{\pgfmathresult}{\pgfmathfloat@log@e}%
}%
\pgfutil@namelet{pgfmathfloatlog10}{pgfmathfloatlog10@}%
\expandafter\def\csname pgfmathfloatlog2@\endcsname#1{%
\pgfmathfloatln@{#1}%
\let\pgfmathfloat@log@e=\pgfmathresult
\pgfmathfloatcreate{1}{1.44269504088896}{0}%
\pgfmathfloatmultiply@{\pgfmathresult}{\pgfmathfloat@log@e}%
}%
\pgfutil@namelet{pgfmathfloatlog2}{pgfmathfloatlog2@}%
\expandafter\let\expandafter\pgfmathfloatlogtwo\csname pgfmathfloatlog2\endcsname
\expandafter\let\expandafter\pgfmathfloatlogtwo@\csname pgfmathfloatlog2@\endcsname
\expandafter\let\expandafter\pgfmathfloatlogten\csname pgfmathfloatlog10\endcsname
\expandafter\let\expandafter\pgfmathfloatlogten@\csname pgfmathfloatlog10@\endcsname
\def\pgfmathlog@#1{%
\pgfmathfloatparsenumber{#1}%
\pgfmathlog@float{\pgfmathresult}%
}%
\let\pgfmathlog=\pgfmathlog@
\def\pgfmathlog@float#1{%
\begingroup%
\expandafter\pgfmathfloat@decompose@tok#1\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\ifnum\pgfmathfloat@a@S=1
\expandafter\pgfmath@basic@ln@\expandafter{\the\pgfmathfloat@a@Mtok}%
\pgfmathfloat@b@M=\pgfmathresult pt%
\pgfmathfloat@a@M=2.302585pt%
\multiply\pgfmathfloat@a@M by\pgfmathfloat@a@E\relax
\advance\pgfmathfloat@b@M by\pgfmathfloat@a@M
\edef\pgfmathresult{\pgf@sys@tonumber{\pgfmathfloat@b@M}}%
\else
\let\pgfmathresult=\pgfutil@empty%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup%
}%
\def\pgfmathfloatexp@#1{%
\begingroup
\expandafter\pgfmathfloat@decompose@tok#1\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\ifcase\pgfmathfloat@a@S
\pgfmathfloatcreate{1}{1.0}{0}%
\or%
\pgfmathfloatexp@@{#1}%
\or%
\pgfmathfloatexp@@{#1}%
\else
\edef\pgfmathresult{#1}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloatexp@@#1{%
\pgfmathfloattofixed@{#1}%
\pgf@xa=\pgfmathresult pt
\pgf@xa=0.434294481\pgf@xa\relax
\edef\pgfmathfloat@loc@TMPa{\pgf@sys@tonumber{\pgf@xa}}%
\expandafter\pgfmathfloatexp@@toint\pgfmathfloat@loc@TMPa\relax
\pgf@xa=2.302585092pt
\multiply\pgf@xa by-\pgfmathfloat@k\relax
\advance\pgf@xa by\pgfmathresult pt
\edef\pgfmathfloat@loc@TMPa{\pgf@sys@tonumber{\pgf@xa}}%
\pgfmath@basic@exp@{\pgfmathfloat@loc@TMPa}%
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\pgfmathfloatparsenumber{\pgfmathfloat@loc@TMPa}%
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\pgfmathfloatshift@{\pgfmathfloat@loc@TMPa}{\pgfmathfloat@k}%
}%
\def\pgfmathfloatexp@@toint#1.#2\relax{%
\c@pgf@counta=#1\relax
\ifnum\c@pgf@counta<0
\advance\c@pgf@counta by-1 %
\c@pgf@countb=#2\relax
\ifnum\c@pgf@countb>0
\advance\c@pgf@counta by-1
\fi
\fi
\edef\pgfmathfloat@k{\the\c@pgf@counta}%
}%
\let\pgfmathfloatexp=\pgfmathfloatexp@
\def\pgfmathfloatround@#1{%
\begingroup
\pgfkeysvalueof{/pgf/number format/precision/.@cmd}0\pgfeov
\pgfmathfloattofixed{#1}%
\pgfmathroundto{\pgfmathresult}%
\pgfmathfloatparsenumber{\pgfmathresult}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloatneg@#1{%
\begingroup
\expandafter\pgfmathfloat@decompose@tok#1\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\ifcase\pgfmathfloat@a@S\relax
\edef\pgfmathresult{#1}%
\or
\pgfmathfloatcreate{2}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\or
\pgfmathfloatcreate{1}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\or
\edef\pgfmathresult{#1}%
\or
\pgfmathfloatcreate{5}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\or
\pgfmathfloatcreate{4}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloatpow@#1#2{%
\begingroup%
\expandafter\pgfmathfloat@decompose@tok#2\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\ifcase\pgfmathfloat@a@S\relax
\pgfmathfloatcreate{1}{1.0}{0}%
\or
\pgfmathfloatpow@@{#1}{#2}%
\or
\pgfmathfloatpow@@{#1}{#2}%
\or
\edef\pgfmathresult{#2}%
\or
\edef\pgfmathresult{#2}%
\or
\pgfmathfloatcreate{0}{0.0}{0}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloatpow@@#1#2{%
\pgfmathfloattofixed@{#2}%
\afterassignment\pgfmath@x%
\expandafter\c@pgfmath@counta\pgfmathresult pt\relax%
\ifdim\pgfmath@x=0pt %
\ifnum\c@pgfmath@counta<0
\pgfmathfloatreciprocal@{#1}%
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\c@pgfmath@counta=-\c@pgfmath@counta
\else
\edef\pgfmathfloat@loc@TMPa{#1}%
\fi
\pgfmathfloatcreate{1}{1.0}{0}%
\let\pgfmathfloat@loc@TMPb=\pgfmathresult
\pgfmathloop
\ifnum\c@pgfmath@counta>0\relax%
\ifodd\c@pgfmath@counta%
\pgfmathfloatmultiply@{\pgfmathfloat@loc@TMPb}{\pgfmathfloat@loc@TMPa}%
\let\pgfmathfloat@loc@TMPb=\pgfmathresult
\fi
\ifnum\c@pgfmath@counta>1\relax%
\pgfmathfloatmultiply@{\pgfmathfloat@loc@TMPa}{\pgfmathfloat@loc@TMPa}%
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\fi%
\divide\c@pgfmath@counta by2\relax%
\repeatpgfmathloop%
\else
\pgfmathfloatgetflags{#1}\c@pgfmath@counta
\ifnum0=\c@pgfmath@counta
\pgfmathfloatgetflags{#2}\c@pgfmath@counta
\ifnum0=\c@pgfmath@counta
\pgfmathfloatcreate{1}{1.0}{0}%
\else
\pgfmathfloatcreate{0}{0.0}{0}%
\fi
\else
\pgfmathfloatln@{#1}%
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\edef\pgfmathfloat@loc@TMPb{#2}%
\pgfmathfloatmultiply@{\pgfmathfloat@loc@TMPa}{\pgfmathfloat@loc@TMPb}%
\pgfmathfloatexp@{\pgfmathresult}%
\fi
\fi
}%
\def\pgfmathfloat@definemethodfrombasic@NOARG#1{%
\pgfutil@ifundefined{pgfmath@basic@#1@}{%
\pgfutil@namelet{pgfmath@basic@#1@}{pgfmath#1@}%
}{}%
\edef\pgfmathfloat@glob@TMP{%
\expandafter\noexpand\csname pgfmath@basic@#1@\endcsname
\noexpand\pgfmathfloatparsenumber{\noexpand\pgfmathresult}%
}%
\expandafter\let\csname pgfmathfloat#1@\endcsname=\pgfmathfloat@glob@TMP%
\expandafter\let\csname pgfmathfloat#1\endcsname=\pgfmathfloat@glob@TMP%
}%
\def\pgfmathfloat@definemethodfrombasic@ONEARG#1{%
\pgfutil@ifundefined{pgfmath@basic@#1@}{%
\pgfutil@namelet{pgfmath@basic@#1@}{pgfmath#1@}%
}{}%
\edef\pgfmathfloat@glob@TMP##1{%
\noexpand\pgfmathfloattofixed{##1}%
\noexpand\expandafter
\expandafter\noexpand\csname pgfmath@basic@#1@\endcsname\noexpand\expandafter%
{\noexpand\pgfmathresult}%
\noexpand\pgfmathfloatparsenumber{\noexpand\pgfmathresult}%
}%
\expandafter\let\csname pgfmathfloat#1@\endcsname=\pgfmathfloat@glob@TMP%
\expandafter\let\csname pgfmathfloat#1\endcsname=\pgfmathfloat@glob@TMP%
}%
\def\pgfmathfloat@definemethodfrombasic@TWOARGS#1{%
\pgfutil@ifundefined{pgfmath@basic@#1@}{%
\pgfutil@namelet{pgfmath@basic@#1@}{pgfmath#1@}%
}{}%
\edef\pgfmathfloat@glob@TMP##1##2{%
\noexpand\pgfmathfloattofixed{##2}%
\noexpand\let\noexpand\pgfmathfloat@loc@TMPa=\noexpand\pgfmathresult
\noexpand\pgfmathfloattofixed{##1}%
\noexpand\expandafter
\expandafter\noexpand\csname pgfmath@basic@#1@\endcsname\noexpand\expandafter%
{\noexpand\pgfmathresult}{\noexpand\pgfmathfloat@loc@TMPa}%
\noexpand\pgfmathfloatparsenumber{\noexpand\pgfmathresult}%
}%
\expandafter\let\csname pgfmathfloat#1@\endcsname=\pgfmathfloat@glob@TMP%
\expandafter\let\csname pgfmathfloat#1\endcsname=\pgfmathfloat@glob@TMP%
}%
\pgfmathfloat@definemethodfrombasic@NOARG{rand}%
\pgfmathfloat@definemethodfrombasic@NOARG{rnd}%
\pgfmathfloat@definemethodfrombasic@NOARG{false}%
\pgfmathfloat@definemethodfrombasic@NOARG{true}%
\pgfmathfloat@definemethodfrombasic@ONEARG{asin}%
\pgfmathfloat@definemethodfrombasic@ONEARG{acos}%
\pgfmathfloat@definemethodfrombasic@ONEARG{not}%
\pgfmathfloat@definemethodfrombasic@ONEARG{hex}%
\pgfmathfloat@definemethodfrombasic@ONEARG{Hex}%
\pgfmathfloat@definemethodfrombasic@ONEARG{oct}%
\pgfmathfloat@definemethodfrombasic@ONEARG{bin}%
\pgfmathfloat@definemethodfrombasic@TWOARGS{and}%
\pgfmathfloat@definemethodfrombasic@TWOARGS{or}%
\pgfutil@ifundefined{pgfmathdeclarefunction}{%
\let\pgfmath@basic@rand=\pgfmathrand
\let\pgfmath@basic@rand@=\pgfmathrand@
\def\pgfmathfloatrand@{%
\pgfmath@basic@rand
\pgfmathfloatparsenumber{\pgfmathresult}%
}%
\let\pgfmathfloatrand=\pgfmathfloatrand@%
\let\pgfmath@basic@rnd=\pgfmathrnd
\let\pgfmath@basic@rnd@=\pgfmathrnd@
\def\pgfmathfloatrnd@{%
\pgfmath@basic@rnd
\pgfmathfloatparsenumber{\pgfmathresult}%
}%
\let\pgfmathfloatrnd=\pgfmathfloatrnd@%
}{}%
\def\pgfmathfloatfactorial@#1{%
\begingroup
\pgfmathfloattofixed{#1}%
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter\c@pgfmath@counta\pgfmathresult\relax\pgfmath@%
\pgfmathfloatcreate{1}{1.0}{0}%
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\pgfmathloop
\ifnum\c@pgfmath@counta<2 %
\else
\expandafter\pgfmathfloatparsenumber\expandafter{\the\c@pgfmath@counta}%
\expandafter\pgfmathfloatmultiply@\expandafter{\pgfmathresult}{\pgfmathfloat@loc@TMPa}%
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\advance\c@pgfmath@counta by-1\relax%
\repeatpgfmathloop
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloatveclen@#1#2{%
\begingroup
\edef\pgfmathfloat@@a{#1}%
\pgfmathfloatmultiply@{\pgfmathfloat@@a}{\pgfmathfloat@@a}%
\let\pgfmathfloat@@a=\pgfmathresult
\edef\pgfmathfloat@@b{#2}%
\pgfmathfloatmultiply@{\pgfmathfloat@@b}{\pgfmathfloat@@b}%
\let\pgfmathfloat@@b=\pgfmathresult
\pgfmathfloatadd@{\pgfmathfloat@@a}{\pgfmathfloat@@b}%
\pgfmathfloatsqrt@{\pgfmathresult}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloatcosh@#1{%
\begingroup
\pgfmathfloatexp@{#1}%
\let\pgfmathfloat@@a=\pgfmathresult
\pgfmathfloatneg@{#1}%
\pgfmathfloatexp@{\pgfmathresult}%
\pgfmathfloatadd@{\pgfmathresult}{\pgfmathfloat@@a}%
\expandafter\pgfmathfloatmultiplyfixed@\expandafter{\pgfmathresult}{0.5}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloatsinh@#1{%
\begingroup
\pgfmathfloatexp@{#1}%
\let\pgfmathfloat@@a=\pgfmathresult
\pgfmathfloatneg@{#1}%
\pgfmathfloatexp@{\pgfmathresult}%
\pgfmathfloatsubtract@{\pgfmathfloat@@a}{\pgfmathresult}%
\expandafter\pgfmathfloatmultiplyfixed@\expandafter{\pgfmathresult}{0.5}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloattanh@#1{%
\begingroup
\pgfmathfloatsinh@{#1}%
\let\pgfmathfloat@@a=\pgfmathresult
\pgfmathfloatcosh@{#1}%
\let\pgfmathfloat@@b=\pgfmathresult
\pgfmathfloatdivide@{\pgfmathfloat@@a}{\pgfmathfloat@@b}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryfpu.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryintersections.code.tex ====
\usepgflibrary{fpu}%
\newcount\pgf@intersect@solutions
\newif\ifpgf@intersect@sort
\newif\ifpgf@intersect@sort@by@second@path
\def\pgfintersectionsortbyfirstpath{%
\pgf@intersect@sorttrue%
\pgf@intersect@sort@by@second@pathfalse%
}%
\def\pgfintersectionsortbysecondpath{%
\pgf@intersect@sorttrue%
\pgf@intersect@sort@by@second@pathtrue%
}%
\def\pgfpointintersectionsolution#1{%
\ifnum#1<1\relax%
\pgfpoint@intersect@solution@orgin%
\else%
\ifnum#1>\pgfintersectionsolutions\relax%
\pgfpoint@intersect@solution@orgin%
\else%
\csname pgfpoint@intersect@solution@#1\endcsname%
\fi%
\fi%
}%
\def\pgfintersectiongetsolutionsegmentindices#1#2#3{%
\ifnum#1<1\relax%
\let#2=\pgfutil@empty
\let#3=\pgfutil@empty
\else%
\ifnum#1>\pgfintersectionsolutions\relax%
\let#2=\pgfutil@empty
\let#3=\pgfutil@empty
\else%
\def\pgf@temp##1##2##3##4{%
\edef#2{##1}%
\edef#3{##2}%
}%
\expandafter\let\expandafter\pgf@tempb\csname pgf@intersect@solution@props@#1\endcsname
\expandafter\pgf@temp\pgf@tempb
\fi%
\fi%
}%
\def\pgfintersectiongetsolutiontimes#1#2#3{%
\ifnum#1<1\relax%
\let#2=\pgfutil@empty
\let#3=\pgfutil@empty
\else%
\ifnum#1>\pgfintersectionsolutions\relax%
\let#2=\pgfutil@empty
\let#3=\pgfutil@empty
\else%
\def\pgf@temp##1##2##3##4{%
\edef#2{##3}%
\edef#3{##4}%
\ifx#2\pgfutil@empty \edef#2{##1}\fi
\ifx#3\pgfutil@empty \edef#3{##2}\fi
}%
\expandafter\let\expandafter\pgf@tempb\csname pgf@intersect@solution@props@#1\endcsname
\expandafter\pgf@temp\pgf@tempb
\fi%
\fi%
}%
\def\pgfpoint@intersect@solution@orgin{%
\begingroup%
\pgftransforminvert%
\pgfpointorigin%
\pgf@pos@transform@glob
\global\pgf@x=\pgf@x%
\global\pgf@y=\pgf@y%
\endgroup%
}%
\long\def\pgfintersectionofpaths#1#2{%
\begingroup%
\pgfinterruptpath%
#1%
\pgfgetpath\pgf@intersect@path@a%
\global\let\pgf@intersect@path@temp=\pgf@intersect@path@a%
\endpgfinterruptpath%
\endgroup%
\let\pgf@intersect@path@a=\pgf@intersect@path@temp%
\begingroup%
\pgfinterruptpath%
#2%
\pgfgetpath\pgf@intersect@path@b%
\global\let\pgf@intersect@path@temp=\pgf@intersect@path@b%
\endpgfinterruptpath%
\endgroup%
\let\pgf@intersect@path@b=\pgf@intersect@path@temp%
\pgf@intersect@solutions=0\relax%
\pgf@intersect@path@reset@a
\ifpgf@intersect@sort@by@second@path%
\let\pgf@intersect@temp=\pgf@intersect@path@a%
\let\pgf@intersect@path@a=\pgf@intersect@path@b%
\let\pgf@intersect@path@b=\pgf@intersect@temp%
\fi%
\pgfprocessround\pgf@intersect@path@a\pgf@intersect@path@a%
\pgfprocessround\pgf@intersect@path@b\pgf@intersect@path@b%
\let\pgf@intersect@token@after=\pgf@intersect@path@process@a%
\expandafter\pgf@intersectionofpaths\pgf@intersect@path@a\pgf@stop%
\edef\pgfintersectionsolutions{\the\pgf@intersect@solutions}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgfintersectionsolutions\relax%
\else%
\pgfutil@namelet{pgfpoint@intersect@solution@\pgfmathcounter}%
{pgfpoint@g@intersect@solution@\pgfmathcounter}%
\edef\pgf@marshal{\noexpand\pgf@intersection@set@properties{\csname pgfpoint@g@intersect@solution@\pgfmathcounter @props\endcsname}}%
\pgf@marshal
\ifpgf@intersect@sort%
\pgfutil@namelet{pgf@intersect@solution@\pgfmathcounter @time@a}%
{pgf@g@intersect@solution@\pgfmathcounter @time@a}%
\fi%
\repeatpgfmathloop%
\ifpgf@intersect@sort%
\pgfintersectionsolutionsortbytime%
\fi%
}%
\def\pgf@intersection@set@properties#1{%
\pgfutil@namedef{pgf@intersect@solution@props@\pgfmathcounter}{#1}%
}%
\def\pgf@intersection@store@properties#1{%
\expandafter\xdef\csname #1@props\endcsname{{\pgf@intersect@time@offset}{\pgf@intersect@time@offset@b}{\pgf@intersect@time@a}{\pgf@intersect@time@b}}%
}%
\def\pgf@intersectionofpaths#1{%
\ifx#1\pgf@stop%
\let\pgf@intersect@next=\relax%
\else%
\ifx#1\pgfsyssoftpath@movetotoken%
\let\pgf@intersect@next=\pgf@intersect@token@moveto%
\else%
\ifx#1\pgfsyssoftpath@linetotoken%
\let\pgf@intersect@next=\pgf@intersect@token@lineto%
\else%
\ifx#1\pgfsyssoftpath@closepathtoken%
\let\pgf@intersect@next=\pgf@intersect@token@lineto%
\else%
\ifx#1\pgfsyssoftpath@curvetosupportatoken%
\let\pgf@intersect@next=\pgf@intersect@token@curveto%
\else%
\ifx#1\pgfsyssoftpath@rectcornertoken%
\let\pgf@intersect@next=\pgf@intersect@token@rect%
\fi%
\fi%
\fi%
\fi%
\fi%
\fi%
\pgf@intersect@next}%
\def\pgf@intersect@token@moveto#1#2{%
\def\pgfpoint@intersect@start{\pgfqpoint{#1}{#2}}%
\pgf@intersectionofpaths%
}%
\def\pgf@intersect@token@lineto#1#2{%
\def\pgfpoint@intersect@end{\pgfqpoint{#1}{#2}}%
\def\pgf@intersect@type{line}%
\pgf@intersect@token@after%
}%
\def\pgf@intersect@token@curveto#1#2\pgfsyssoftpath@curvetosupportbtoken#3#4\pgfsyssoftpath@curvetotoken#5#6{%
\def\pgfpoint@intersect@firstsupport{\pgfqpoint{#1}{#2}}%
\def\pgfpoint@intersect@secondsupport{\pgfqpoint{#3}{#4}}%
\def\pgfpoint@intersect@end{\pgfqpoint{#5}{#6}}%
\def\pgf@intersect@type{curve}%
\pgf@intersect@token@after%
}%
\def\pgf@intersect@token@rect#1#2\pgfsyssoftpath@rectsizetoken#3#4{%
\pgf@xa=#1\relax%
\advance\pgf@xa by#3\relax%
\pgf@ya=#2\relax%
\advance\pgf@ya by#4\relax%
\edef\pgf@marshal{%
\noexpand\pgfsyssoftpath@movetotoken{#1}{#2}%
\noexpand\pgfsyssoftpath@linetotoken{#1}{\the\pgf@ya}%
\noexpand\pgfsyssoftpath@linetotoken{\the\pgf@xa}{\the\pgf@ya}%
\noexpand\pgfsyssoftpath@linetotoken{\the\pgf@xa}{#2}%
\noexpand\pgfsyssoftpath@closepathtoken{#1}{#2}%
}%
\expandafter\pgf@intersectionofpaths\pgf@marshal%
}%
\def\pgf@intersect@path@process@a{%
\pgf@intersect@path@getpoints@a%
\let\pgf@intersect@token@after=\pgf@intersect@path@process@b%
\pgf@intersect@path@reset@b
\expandafter\pgf@intersectionofpaths\pgf@intersect@path@b\pgf@stop%
\let\pgfpoint@intersect@start=\pgfpoint@intersect@end@a%
\let\pgf@intersect@token@after=\pgf@intersect@path@process@a%
\c@pgf@counta=\pgf@intersect@time@offset\relax%
\advance\c@pgf@counta by1\relax%
\edef\pgf@intersect@time@offset{\the\c@pgf@counta}%
\pgf@intersectionofpaths%
}%
\def\pgf@intersect@path@reset@a{%
\def\pgf@intersect@time@offset{0}%
\def\pgf@intersect@time@a{}%
}%
\def\pgf@intersect@path@reset@b{%
\def\pgf@intersect@time@offset@b{0}%
\def\pgf@intersect@time@b{}%
}%
\def\pgf@intersect@path@getpoints@a{%
\let\pgfpoint@intersect@start@a=\pgfpoint@intersect@start%
\let\pgfpoint@intersect@end@a=\pgfpoint@intersect@end%
\let\pgfpoint@intersect@firstsupport@a=\pgfpoint@intersect@firstsupport%
\let\pgfpoint@intersect@secondsupport@a=\pgfpoint@intersect@secondsupport%
\let\pgf@intersect@type@a=\pgf@intersect@type%
}%
\def\pgf@intersect@path@process@b{%
\pgf@intersect@path@getpoints@b%
\csname pgf@intersect@\pgf@intersect@type@a @and@\pgf@intersect@type@b\endcsname%
\let\pgfpoint@intersect@start=\pgfpoint@intersect@end@b%
\c@pgf@counta=\pgf@intersect@time@offset@b\relax%
\advance\c@pgf@counta by1\relax%
\edef\pgf@intersect@time@offset@b{\the\c@pgf@counta}%
\pgf@intersectionofpaths}%
\def\pgf@intersect@path@getpoints@b{%
\let\pgfpoint@intersect@start@b=\pgfpoint@intersect@start%
\let\pgfpoint@intersect@end@b=\pgfpoint@intersect@end%
\let\pgfpoint@intersect@firstsupport@b=\pgfpoint@intersect@firstsupport%
\let\pgfpoint@intersect@secondsupport@b=\pgfpoint@intersect@secondsupport%
\let\pgf@intersect@type@b=\pgf@intersect@type%
}%
\def\pgf@intersect@line@and@line{%
\pgf@intersectionoflines{\pgfpoint@intersect@start@a}{\pgfpoint@intersect@end@a}%
{\pgfpoint@intersect@start@b}{\pgfpoint@intersect@end@b}%
}%
\def\pgf@intersect@line@and@curve{%
\pgf@intersectionoflineandcurve%
{\pgf@process{\pgfpoint@intersect@start@a}}{\pgf@process{\pgfpoint@intersect@end@a}}%
{\pgf@process{\pgfpoint@intersect@start@b}}{\pgf@process{\pgfpoint@intersect@firstsupport@b}}%
{\pgf@process{\pgfpoint@intersect@secondsupport@b}}{\pgf@process{\pgfpoint@intersect@end@b}}%
}%
\def\pgf@intersect@curve@and@line{%
\pgf@intersectionofcurveandline%
{\pgf@process{\pgfpoint@intersect@start@a}}{\pgf@process{\pgfpoint@intersect@firstsupport@a}}%
{\pgf@process{\pgfpoint@intersect@secondsupport@a}}{\pgf@process{\pgfpoint@intersect@end@a}}%
{\pgf@process{\pgfpoint@intersect@start@b}}{\pgf@process{\pgfpoint@intersect@end@b}}%
}%
\def\pgf@intersect@curve@and@curve{%
\pgf@intersectionofcurves%
{\pgf@process{\pgfpoint@intersect@start@a}}{\pgf@process{\pgfpoint@intersect@firstsupport@a}}%
{\pgf@process{\pgfpoint@intersect@secondsupport@a}}{\pgf@process{\pgfpoint@intersect@end@a}}%
{\pgf@process{\pgfpoint@intersect@start@b}}{\pgf@process{\pgfpoint@intersect@firstsupport@b}}%
{\pgf@process{\pgfpoint@intersect@secondsupport@b}}{\pgf@process{\pgfpoint@intersect@end@b}}%
}%
\def\pgfintersectionoflines#1#2#3#4{%
\pgf@intersect@solutions=0\relax%
\pgf@intersectionoflines{#1}{#2}{#3}{#4}%
}%
\def\pgf@intersectionoflines#1#2#3#4{%
\pgf@iflinesintersect{#1}{#2}{#3}{#4}%
{%
\pgfextract@process\pgf@intersect@solution@candidate{%
}%
\pgf@ifsolution@duplicate{\pgf@intersect@solution@candidate}{%
}{%
\global\advance\pgf@intersect@solutions by1\relax%
\expandafter\global\expandafter\let\csname pgfpoint@g@intersect@solution@\the\pgf@intersect@solutions\endcsname=\pgf@intersect@solution@candidate
\ifpgf@intersect@sort%
\pgf@process{\pgf@intersect@solution@candidate}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{\pgfpointdiff{\pgfpoint@intersect@start@a}{\pgfpoint@intersect@end@a}}%
\edef\pgf@marshal{%
\noexpand\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
}%
\pgf@marshal%
\let\pgf@intersect@length@a=\pgfmathresult%
\pgf@process{\pgfpointdiff{\pgfpoint@intersect@start@a}{\pgfqpoint{\pgf@xc}{\pgf@yc}}}%
\edef\pgf@marshal{%
\noexpand\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
}%
\pgf@marshal%
\pgfmathdivide@{\pgfmathresult}{\pgf@intersect@length@a}%
\pgf@x=\pgfmathresult pt\relax%
\advance\pgf@x by\pgf@intersect@time@offset pt\relax%
\edef\pgf@intersect@time@a{\pgfmath@tonumber{\pgf@x}}%
\expandafter\global\expandafter\let\csname pgf@g@intersect@solution@\the\pgf@intersect@solutions @time@a\endcsname=
\pgf@intersect@time@a
\else
\let\pgf@intersect@time@a=\pgfutil@empty
\fi%
\let\pgf@intersect@time@b=\pgfutil@empty
\pgf@intersection@store@properties{pgfpoint@g@intersect@solution@\the\pgf@intersect@solutions}%
}%
}{%
}%
}%
\newif\ifpgf@s
\newif\ifpgf@t
\def\pgfiflinesintersect#1#2#3#4{%
\begingroup%
\pgf@iflinesintersect{\pgf@process{#1}}{\pgf@process{#2}}{\pgf@process{#3}}{\pgf@process{#4}}%
{\aftergroup\pgfutil@firstoftwo}{\aftergroup\pgfutil@secondoftwo}%
\endgroup%
}%
\def\pgf@intersections@version{2}%
\def\pgf@iflinesintersect#1#2#3#4{%
\pgf@intersect@boundingbox@reset%
\pgf@intersect@boundingbox@update{#1}%
\pgf@intersect@boundingbox@update{#2}%
\pgf@intersect@boundingbox@assign@b%
\pgf@intersect@boundingbox@reset%
\pgf@intersect@boundingbox@update{#3}%
\pgf@intersect@boundingbox@update{#4}%
\pgf@intersect@boundingbox@assign@a%
\pgf@intersect@boundingbox@a%
\pgf@intersect@boundingbox@b%
\pgf@intersect@boundingbox@ifoverlap@upperbound{%
\pgf@iflinesintersect@{#1}{#2}{#3}{#4}%
}{%
\let\pgf@intersect@next=\pgfutil@secondoftwo%
}%
\pgf@intersect@next%
}%
\def\pgf@iflinesintersect@#1#2#3#4{%
#1\relax%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
#2\relax%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
#3\relax%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
#4\relax%
\edef\pgf@intersect@A{%
\pgf@xa=\the\pgf@xa\space
\pgf@ya=\the\pgf@ya\space
}%
\advance\pgf@xb by-\pgf@xa
\advance\pgf@yb by-\pgf@ya
\advance\pgf@xa by-\pgf@xc
\advance\pgf@ya by-\pgf@yc
\pgf@xa=-\pgf@xa
\pgf@ya=-\pgf@ya
\advance\pgf@xc by-\pgf@x
\advance\pgf@yc by-\pgf@y
\begingroup
\ifdim\pgf@xb<0sp \pgf@xb=-\pgf@xb\fi
\ifdim\pgf@yb<0sp \pgf@yb=-\pgf@yb\fi
\advance\pgf@xb by\pgf@yb
\xdef\pgf@intersect@len@a{\pgf@sys@tonumber\pgf@xb}%
\ifdim\pgf@xc<0sp \pgf@xc=-\pgf@xc\fi
\ifdim\pgf@yc<0sp \pgf@yc=-\pgf@yc\fi
\advance\pgf@xc by\pgf@yc
\xdef\pgf@intersect@len@b{\pgf@sys@tonumber\pgf@xc}%
\endgroup
\edef\pgf@marshal{%
\noexpand\pgfutilsolvetwotwoleqfloat{%
{\pgf@sys@tonumber\pgf@xb}{\pgf@sys@tonumber\pgf@xc}%
{\pgf@sys@tonumber\pgf@yb}{\pgf@sys@tonumber\pgf@yc}%
}{%
{\pgf@sys@tonumber\pgf@xa}%
{\pgf@sys@tonumber\pgf@ya}%
}%
}%
\pgf@marshal
\let\pgf@intersect@next=\pgfutil@secondoftwo%
\ifx\pgfmathresult\pgfutil@empty
\else
\def\pgf@marshal##1##2{%
\global\pgf@x=##1pt %
\global\pgf@y=##2pt %
}%
\expandafter\pgf@marshal\pgfmathresult
\def\pgf@marshal{XXXX}%
\ifdim\pgf@x<0sp
\pgf@xa=-\pgf@intersect@len@a\pgf@x
\ifdim\pgf@xa<\pgfintersectiontolerance\relax
\def\pgf@marshal{1}%
\else
\def\pgf@marshal{0}%
\fi
\else
\ifdim\pgf@x>1pt
\pgf@xa=\pgf@intersect@len@a\pgf@x
\advance\pgf@xa by-\pgf@intersect@len@a pt %
\ifdim\pgf@xa<\pgfintersectiontolerance\relax
\def\pgf@marshal{1}%
\else
\def\pgf@marshal{0}%
\fi
\else
\def\pgf@marshal{1}%
\fi
\fi
\if1\pgf@marshal
\ifdim\pgf@y<0sp
\pgf@xa=-\pgf@intersect@len@b\pgf@y
\ifdim\pgf@xa<\pgfintersectiontolerance\relax
\def\pgf@marshal{1}%
\else
\def\pgf@marshal{0}%
\fi
\else
\ifdim\pgf@y>1pt
\pgf@xa=\pgf@intersect@len@b\pgf@y
\advance\pgf@xa by-\pgf@intersect@len@b pt %
\ifdim\pgf@xa<\pgfintersectiontolerance\relax
\def\pgf@marshal{1}%
\else
\def\pgf@marshal{0}%
\fi
\else
\def\pgf@marshal{1}%
\fi
\fi
\fi
\if1\pgf@marshal
\pgf@intersect@A
\pgf@yc=\pgf@x
\global\pgf@x=\pgf@sys@tonumber\pgf@xb\pgf@yc
\global\pgf@y=\pgf@sys@tonumber\pgf@yb\pgf@yc
\global\advance\pgf@x by \pgf@xa
\global\advance\pgf@y by \pgf@ya
\let\pgf@intersect@next=\pgfutil@firstoftwo%
\fi
\fi
}%
\def\pgfintersectionoflineandcurve#1#2#3#4#5#6{%
\pgf@intersect@solutions=0\relax%
\pgf@intersectionoflineandcurve{#1}{#2}{#3}{#4}{#5}{#6}%
}%
\def\pgf@intersectionoflineandcurve#1#2#3#4#5#6{%
\pgf@intersectionofcurves%
{\pgf@process{#1}}%
{%
\pgf@process{%
\pgfpointadd{#1\relax\pgf@x=0.666666\pgf@x\pgf@y=0.666666\pgf@y}%
{#2\relax\pgf@x=0.333333\pgf@x\pgf@y=0.333333\pgf@y}%
}%
}%
{%
\pgf@process{%
\pgfpointadd{#1\relax\pgf@x=0.333333\pgf@x\pgf@y=0.333333\pgf@y}%
{#2\relax\pgf@x=0.666666\pgf@x\pgf@y=0.666666\pgf@y}%
}%
}%
{\pgf@process{#2}}%
{\pgf@process{#3}}%
{\pgf@process{#4}}%
{\pgf@process{#5}}%
{\pgf@process{#6}}%
}%
\def\pgf@intersectionofcurveandline#1#2#3#4#5#6{%
\pgf@intersectionofcurves%
{\pgf@process{#1}}%
{\pgf@process{#2}}%
{\pgf@process{#3}}%
{\pgf@process{#4}}%
{\pgf@process{#5}}%
{%
\pgf@process{%
\pgfpointadd{#5\relax\pgf@x=0.666666\pgf@x\pgf@y=0.666666\pgf@y}%
{#6\relax\pgf@x=0.333333\pgf@x\pgf@y=0.333333\pgf@y}%
}%
}%
{%
\pgf@process{%
\pgfpointadd{#5\relax\pgf@x=0.333333\pgf@x\pgf@y=0.333333\pgf@y}%
{#6\relax\pgf@x=0.666666\pgf@x\pgf@y=0.666666\pgf@y}%
}%
}%
{\pgf@process{#6}}%
}%
\def\pgfintersectiontolerance{0.1pt}%
\def\pgfintersectiontoleranceupperbound{1pt}%
\def\pgfintersectiontolerancefactor{0.1}%
\def\pgfpointintersectionofcurves#1#2#3#4#5#6#7#8#9{%
\pgf@intersect@solutions=0\relax%
\pgf@intersectionofcurves%
{\pgf@process{#1}}{\pgf@process{#2}}{\pgf@process{#3}}{\pgf@process{#4}}%
{\pgf@process{#5}}{\pgf@process{#6}}{\pgf@process{#7}}{\pgf@process{#8}}%
\pgfpointintersectionsolution{#9}%
}%
\def\pgfintersectionofcurves#1#2#3#4#5#6#7#8{%
\pgf@intersect@solutions=0\relax%
\pgf@intersectionofcurves%
{\pgf@process{#1}}{\pgf@process{#2}}{\pgf@process{#3}}{\pgf@process{#4}}%
{\pgf@process{#5}}{\pgf@process{#6}}{\pgf@process{#7}}{\pgf@process{#8}}%
}%
\def\pgf@intersectionofcurves#1#2#3#4#5#6#7#8{%
\begingroup%
\dimendef\pgf@time@a=2\relax%
\dimendef\pgf@time@aa=4\relax%
\dimendef\pgf@time@b=6\relax%
\dimendef\pgf@time@bb=8\relax%
\pgf@time@a=0pt\relax%
\pgf@time@aa=1pt\relax%
\pgf@time@b=0pt\relax%
\pgf@time@bb=1pt\relax%
\let\pgf@intersect@subdivide@curve=\pgf@intersect@subdivide@curve@b%
\let\pgf@curve@subdivde@after=\pgf@@intersectionofcurves%
\pgf@@intersectionofcurves{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
\endgroup%
}%
\def\pgf@intersect@boundingbox@assign@a{%
\edef\pgf@intersect@boundingbox@a{%
\noexpand\pgf@xb=\the\pgf@xa\space%
\noexpand\pgf@yb=\the\pgf@ya\space%
\noexpand\pgf@xc=\the\pgf@xb\space%
\noexpand\pgf@yc=\the\pgf@yb\space%
}%
}%
\def\pgf@intersect@boundingbox@assign@b{%
\edef\pgf@intersect@boundingbox@b{%
\noexpand\global\noexpand\pgf@x=\the\pgf@xa\space%
\noexpand\global\noexpand\pgf@y=\the\pgf@ya\space%
\noexpand\pgf@xa=\the\pgf@xb\space%
\noexpand\pgf@ya=\the\pgf@yb\space%
}%
}%
\def\pgf@intersect@boundingbox@ifoverlap{%
\def\pgf@intersect@next{\pgfutil@secondoftwo}%
\ifdim\pgf@xa<\pgf@xb%
\else%
\ifdim\pgf@x>\pgf@xc%
\else%
\ifdim\pgf@ya<\pgf@yb%
\else%
\ifdim\pgf@y>\pgf@yc%
\else%
\def\pgf@intersect@next{\pgfutil@firstoftwo}%
\fi
\fi
\fi
\fi
\pgf@intersect@next
}%
\def\pgf@intersect@boundingbox@ifoverlap@upperbound{%
\begingroup
\def\pgf@intersect@next{\pgfutil@secondoftwo}%
\advance\pgf@xa by+\pgfintersectiontolerance\relax
\ifdim\pgf@xa<\pgf@xb%
\else%
\global\advance\pgf@x by-\pgfintersectiontolerance\relax
\ifdim\pgf@x>\pgf@xc%
\else%
\advance\pgf@ya by\pgfintersectiontolerance\relax
\ifdim\pgf@ya<\pgf@yb%
\else%
\global\advance\pgf@y by-\pgfintersectiontolerance\relax
\ifdim\pgf@y>\pgf@yc%
\else%
\def\pgf@intersect@next{\pgfutil@firstoftwo}%
\fi
\fi
\fi
\fi
\expandafter
\endgroup
\pgf@intersect@next
}%
\def\pgf@intersect@boundingbox@ifoverlap@UNUSED{%
\let\pgf@intersect@next=\pgfutil@secondoftwo%
\ifdim\pgf@xa<\pgf@xb%
\else%
\ifdim\pgf@x>\pgf@xc%
\else%
\ifdim\pgf@ya<\pgf@yb%
\else%
\ifdim\pgf@y>\pgf@yc%
\else%
\let\pgf@intersect@next=\pgfutil@firstoftwo%
\fi
\fi
\fi
\fi
\pgf@intersect@next
}%
\def\pgf@@intersectionofcurves#1#2#3#4#5#6#7#8{%
\pgf@intersect@boundingbox@reset%
\pgf@intersect@boundingbox@update{#1}%
\pgf@intersect@boundingbox@update{#2}%
\pgf@intersect@boundingbox@update{#3}%
\pgf@intersect@boundingbox@update{#4}%
\pgf@intersect@boundingbox@assign@b%
\pgf@intersect@boundingbox@reset%
\pgf@intersect@boundingbox@update{#5}%
\pgf@intersect@boundingbox@update{#6}%
\pgf@intersect@boundingbox@update{#7}%
\pgf@intersect@boundingbox@update{#8}%
\pgf@intersect@boundingbox@assign@a%
\pgf@intersect@boundingbox@a%
\pgf@intersect@boundingbox@b%
\pgf@intersect@boundingbox@ifoverlap{%
\pgf@@@intersectionofcurves{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
}{%
}%
}%
\def\pgf@@@intersectionofcurves#1#2#3#4#5#6#7#8{%
\advance\pgf@xc by-\pgf@xb%
\advance\pgf@yc by-\pgf@yb%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\let\pgf@intersect@subdivde=\relax%
\ifdim\pgf@xc<\pgfintersectiontolerance\relax%
\ifdim\pgf@xa<\pgfintersectiontolerance\relax%
\ifdim\pgf@yc<\pgfintersectiontolerance\relax%
\ifdim\pgf@ya<\pgfintersectiontolerance\relax%
\pgfextract@process\pgf@intersect@solution@candidate{%
\pgf@intersect@boundingbox@a%
\pgf@intersect@boundingbox@b%
\pgf@x=0.25\pgf@x%
\advance\pgf@x by0.25\pgf@xa%
\advance\pgf@x by0.25\pgf@xb%
\advance\pgf@x by0.25\pgf@xc%
\pgf@y=0.25\pgf@y%
\advance\pgf@y by0.25\pgf@ya%
\advance\pgf@y by0.25\pgf@yb%
\advance\pgf@y by0.25\pgf@yc%
}%
\let\pgf@intersect@subdivde=\pgf@stop%
\pgf@ifsolution@duplicate\pgf@intersect@solution@candidate{}%
{%
\global\advance\pgf@intersect@solutions by1\relax%
\begingroup
\advance\pgf@time@a by\pgf@time@aa%
\divide\pgf@time@a by2\relax%
\advance\pgf@time@a by\pgf@intersect@time@offset pt\relax%
\edef\pgf@intersect@time@a{\pgfmath@tonumber{\pgf@time@a}}%
\advance\pgf@time@b by\pgf@time@bb%
\divide\pgf@time@b by2\relax%
\advance\pgf@time@b by\pgf@intersect@time@offset@b pt\relax%
\edef\pgf@intersect@time@b{\pgfmath@tonumber{\pgf@time@b}}%
\pgf@intersection@store@properties{pgfpoint@g@intersect@solution@\the\pgf@intersect@solutions}%
\expandafter\global\expandafter\let%
\csname pgfpoint@g@intersect@solution@\the\pgf@intersect@solutions\endcsname=%
\pgf@intersect@solution@candidate%
\ifpgf@intersect@sort%
\expandafter\xdef%
\csname pgf@g@intersect@solution@\the\pgf@intersect@solutions @time@a\endcsname%
{\pgf@intersect@time@a}%
\fi%
\endgroup
}%
\fi%
\fi%
\fi%
\fi%
\ifx\pgf@intersect@subdivde\pgf@stop%
\else%
\pgf@intersect@subdivide@curve{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
\fi%
}%
\def\pgf@intersect@subdivide@curve@b#1#2#3#4#5#6#7#8{%
\begingroup%
\advance\pgf@time@bb by\pgf@time@b\relax%
\divide\pgf@time@bb by2\relax%
\let\pgf@intersect@subdivide@curve=\pgf@intersect@subdivide@curve@a%
\pgf@curve@subdivide@left{#5}{#6}{#7}{#8}{#1}{#2}{#3}{#4}%
\endgroup%
\begingroup%
\advance\pgf@time@b by\pgf@time@bb\relax%
\divide\pgf@time@b by2\relax%
\let\pgf@intersect@subdivide@curve=\pgf@intersect@subdivide@curve@a%
\pgf@curve@subdivide@right{#5}{#6}{#7}{#8}{#1}{#2}{#3}{#4}%
\endgroup%
}%
\def\pgf@intersect@subdivide@curve@a#1#2#3#4#5#6#7#8{%
\begingroup%
\advance\pgf@time@aa by\pgf@time@a\relax%
\divide\pgf@time@aa by2\relax%
\let\pgf@intersect@subdivide@curve=\pgf@intersect@subdivide@curve@b%
\pgf@curve@subdivide@left{#5}{#6}{#7}{#8}{#1}{#2}{#3}{#4}%
\endgroup%
\begingroup%
\advance\pgf@time@a by\pgf@time@aa\relax%
\divide\pgf@time@a by2\relax%
\let\pgf@intersect@subdivide@curve=\pgf@intersect@subdivide@curve@b%
\pgf@curve@subdivide@right{#5}{#6}{#7}{#8}{#1}{#2}{#3}{#4}%
\endgroup%
}%
\def\pgf@intersect@boundingbox@reset{%
\pgf@xa=16000pt\relax%
\pgf@ya=16000pt\relax%
\pgf@xb=-16000pt\relax%
\pgf@yb=-16000pt\relax%
}%
\def\pgf@intersect@boundingbox@update#1{%
#1\relax%
\ifdim\pgf@x<\pgf@xa\pgf@xa=\pgf@x\fi%
\ifdim\pgf@y<\pgf@ya\pgf@ya=\pgf@y\fi%
\ifdim\pgf@x>\pgf@xb\pgf@xb=\pgf@x\fi%
\ifdim\pgf@y>\pgf@yb\pgf@yb=\pgf@y\fi%
}%
\def\pgf@float@adapter@setxy{%
\pgfmathfloatparsenumber{\pgf@sys@tonumber\pgf@x}\let\pgf@fpu@x=\pgfmathresult
\pgfmathfloatparsenumber{\pgf@sys@tonumber\pgf@y}\let\pgf@fpu@y=\pgfmathresult
}%
\def\pgf@float@adapter@mult#1=#2*#3{%
\pgfmathfloatmultiplyfixed@{#3}{#2}%
\let#1=\pgfmathresult
}%
\def\pgf@float@adapter@advance#1by#2*#3{%
\pgfmathfloatmultiplyfixed@{#3}{#2}%
\let\pgfutil@temp=\pgfmathresult
\pgfmathfloatadd@{#1}{\pgfutil@temp}%
\let#1=\pgfmathresult
}%
\def\pgf@float@adapter@tostring#1{%
\pgfmathfloattofixed{#1}\edef#1{\pgfmathresult pt }%
}%
\def\pgf@curve@subdivide@left#1#2#3#4{%
\begingroup
#1\relax%
\pgfutil@tempdima=\pgf@x%
\pgfutil@tempdimb=\pgf@y%
\pgf@float@adapter@setxy
\pgf@float@adapter@mult\pgf@fpu@xa=.5*\pgf@fpu@x \pgf@float@adapter@mult\pgf@fpu@ya=.5*\pgf@fpu@y%
\pgf@float@adapter@mult\pgf@fpu@xb=.25*\pgf@fpu@x \pgf@float@adapter@mult\pgf@fpu@yb=.25*\pgf@fpu@y%
\pgf@float@adapter@mult\pgf@fpu@xc=.125*\pgf@fpu@x\pgf@float@adapter@mult\pgf@fpu@yc=.125*\pgf@fpu@y%
#2\relax%
\pgf@float@adapter@setxy
\pgf@float@adapter@advance\pgf@fpu@xa by.5*\pgf@fpu@x\pgf@float@adapter@advance\pgf@fpu@ya by.5*\pgf@fpu@y%
\pgf@float@adapter@advance\pgf@fpu@xb by.5*\pgf@fpu@x\pgf@float@adapter@advance\pgf@fpu@yb by.5*\pgf@fpu@y%
\pgf@float@adapter@advance\pgf@fpu@xc by.375*\pgf@fpu@x\pgf@float@adapter@advance\pgf@fpu@yc by.375*\pgf@fpu@y%
#3\relax%
\pgf@float@adapter@setxy
\pgf@float@adapter@advance\pgf@fpu@xb by.25*\pgf@fpu@x\pgf@float@adapter@advance\pgf@fpu@yb by.25*\pgf@fpu@y%
\pgf@float@adapter@advance\pgf@fpu@xc by.375*\pgf@fpu@x\pgf@float@adapter@advance\pgf@fpu@yc by.375*\pgf@fpu@y%
#4\relax%
\pgf@float@adapter@setxy
\pgf@float@adapter@advance\pgf@fpu@xc by.125*\pgf@fpu@x\pgf@float@adapter@advance\pgf@fpu@yc by.125*\pgf@fpu@y%
\pgf@float@adapter@tostring\pgf@fpu@xa
\pgf@float@adapter@tostring\pgf@fpu@ya
\pgf@float@adapter@tostring\pgf@fpu@xb
\pgf@float@adapter@tostring\pgf@fpu@yb
\pgf@float@adapter@tostring\pgf@fpu@xc
\pgf@float@adapter@tostring\pgf@fpu@yc
\edef\pgf@marshal{%
\noexpand\pgf@curve@subdivde@after%
{\noexpand\pgf@x=\the\pgfutil@tempdima\noexpand\pgf@y=\the\pgfutil@tempdimb}%
{\noexpand\pgf@x=\pgf@fpu@xa\noexpand\pgf@y=\pgf@fpu@ya}%
{\noexpand\pgf@x=\pgf@fpu@xb\noexpand\pgf@y=\pgf@fpu@yb}%
{\noexpand\pgf@x=\pgf@fpu@xc\noexpand\pgf@y=\pgf@fpu@yc}%
}%
\expandafter
\endgroup
\pgf@marshal%
}%
\def\pgf@curve@subdivide@right#1#2#3#4{%
\begingroup
#1\relax%
\pgf@float@adapter@setxy
\pgf@float@adapter@mult\pgf@float@tmpa=.125*\pgf@fpu@x\pgf@float@adapter@mult\pgf@float@tmpb=.125*\pgf@fpu@y%
#2\relax%
\pgf@float@adapter@setxy
\pgf@float@adapter@advance\pgf@float@tmpa by.375*\pgf@fpu@x\pgf@float@adapter@advance\pgf@float@tmpb by.375*\pgf@fpu@y%
\pgf@float@adapter@mult\pgf@fpu@xa=.25*\pgf@fpu@x\pgf@float@adapter@mult\pgf@fpu@ya=.25*\pgf@fpu@y%
#3\relax%
\pgf@float@adapter@setxy
\pgf@float@adapter@advance\pgf@float@tmpa by.375*\pgf@fpu@x\pgf@float@adapter@advance\pgf@float@tmpb by.375*\pgf@fpu@y%
\pgf@float@adapter@advance\pgf@fpu@xa by.5*\pgf@fpu@x\pgf@float@adapter@advance\pgf@fpu@ya by.5*\pgf@fpu@y%
\pgf@float@adapter@mult\pgf@fpu@xb=.5*\pgf@fpu@x\pgf@float@adapter@mult\pgf@fpu@yb=.5*\pgf@fpu@y%
#4\relax%
\pgf@float@adapter@setxy
\pgf@float@adapter@advance\pgf@float@tmpa by.125*\pgf@fpu@x\pgf@float@adapter@advance\pgf@float@tmpb by.125*\pgf@fpu@y%
\pgf@float@adapter@advance\pgf@fpu@xa by.25*\pgf@fpu@x\pgf@float@adapter@advance\pgf@fpu@ya by.25*\pgf@fpu@y%
\pgf@float@adapter@advance\pgf@fpu@xb by.5*\pgf@fpu@x\pgf@float@adapter@advance\pgf@fpu@yb by.5*\pgf@fpu@y%
\let\pgf@fpu@xc=\pgf@fpu@x\let\pgf@fpu@yc=\pgf@fpu@y%
\pgf@float@adapter@tostring\pgf@float@tmpa
\pgf@float@adapter@tostring\pgf@float@tmpb
\pgf@float@adapter@tostring\pgf@fpu@xa
\pgf@float@adapter@tostring\pgf@fpu@ya
\pgf@float@adapter@tostring\pgf@fpu@xb
\pgf@float@adapter@tostring\pgf@fpu@yb
\pgf@float@adapter@tostring\pgf@fpu@xc
\pgf@float@adapter@tostring\pgf@fpu@yc
\edef\pgf@marshal{%
\noexpand\pgf@curve@subdivde@after%
{\noexpand\pgf@x=\pgf@float@tmpa\noexpand\pgf@y=\pgf@float@tmpb}%
{\noexpand\pgf@x=\pgf@fpu@xa\noexpand\pgf@y=\pgf@fpu@ya}%
{\noexpand\pgf@x=\pgf@fpu@xb\noexpand\pgf@y=\pgf@fpu@yb}%
{\noexpand\pgf@x=\pgf@fpu@xc\noexpand\pgf@y=\pgf@fpu@yc}%
}%
\expandafter
\endgroup
\pgf@marshal%
}%
\def\pgf@ifsolution@duplicate#1{%
#1%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\let\pgf@intersect@next=\pgfutil@secondoftwo%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@intersect@solutions\relax%
\else%
\pgf@ifsolution@duplicate@{\pgfmathcounter}%
\repeatpgfmathloop%
\pgf@intersect@next%
}%
\def\pgf@ifsolution@duplicate@#1{%
\pgf@process{\csname pgfpoint@g@intersect@solution@#1\endcsname}%
\advance\pgf@x by-\pgf@xa%
\advance\pgf@y by-\pgf@ya%
\ifdim\pgf@x<0pt\relax\pgf@x=-\pgf@x\fi%
\ifdim\pgf@y<0pt\relax\pgf@y=-\pgf@y\fi%
\pgf@x=\pgfintersectiontolerancefactor\pgf@x%
\pgf@y=\pgfintersectiontolerancefactor\pgf@y%
\ifdim\pgf@x<\pgfintersectiontolerance\relax%
\ifdim\pgf@y<\pgfintersectiontolerance\relax%
\let\pgf@intersect@next=\pgfutil@firstoftwo%
\fi%
\fi%
}%
\newif\ifpgf@intersect@solutions@sortfinish
\def\pgfintersectionsolutionsortbytime{%
\pgf@intersect@solutions@sortfinishtrue%
\pgfmathloop%
\ifnum\pgfmathcounter<\pgfintersectionsolutions\relax%
\pgfutil@tempcnta=\pgfmathcounter%
\advance\pgfutil@tempcnta by1\relax%
\ifdim\csname pgf@intersect@solution@\pgfmathcounter @time@a\endcsname pt>%
\csname pgf@intersect@solution@\the\pgfutil@tempcnta @time@a\endcsname pt\relax%
\pgf@intersect@solutions@sortfinishfalse%
\pgfintersectionsolutionsortbytime@swap{pgfpoint@intersect@solution@\pgfmathcounter}%
{pgfpoint@intersect@solution@\the\pgfutil@tempcnta}%
\pgfintersectionsolutionsortbytime@swap{pgf@intersect@solution@\pgfmathcounter @time@a}%
{pgf@intersect@solution@\the\pgfutil@tempcnta @time@a}%
\pgfintersectionsolutionsortbytime@swap{pgf@intersect@solution@props@\pgfmathcounter}%
{pgf@intersect@solution@props@\the\pgfutil@tempcnta}%
\fi%
\repeatpgfmathloop%
\ifpgf@intersect@solutions@sortfinish%
\else%
\expandafter\pgfintersectionsolutionsortbytime%
\fi%
}%
\def\pgfintersectionsolutionsortbytime@swap#1#2{%
\pgfutil@namelet{pgf@intersect@temp}{#1}%
\pgfutil@namelet{#1}{#2}%
\pgfutil@namelet{#2}{pgf@intersect@temp}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryintersections.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarylindenmayersystems.code.tex ====
\newdimen\pgflsystemstep
\newcount\c@pgf@lsystem@iteration
\newif\ifpgf@lsystem@randomize@step
\newif\ifpgf@lsystem@randomize@angle
\pgfkeys{/pgf/lindenmayer system/.cd,%
step/.code={\pgfmathsetlength\pgflsystemstep{#1}},%
randomize step percent/.code={%
\pgfmathparse{#1}%
\let\pgflsystemrandomizesteppercent=\pgfmathresult%
\ifdim\pgfmathresult pt=0pt\relax%
\pgf@lsystem@randomize@stepfalse%
\else%
\pgf@lsystem@randomize@steptrue%
\fi%
},%
left angle/.code={\pgfmathparse{#1}\let\pgflsystemleftangle=\pgfmathresult},%
right angle/.code={\pgfmathparse{#1}\let\pgflsystemrightangle=\pgfmathresult},%
angle/.style={/pgf/lindenmayer system/left angle={#1}, /pgf/lindenmayer system/right angle={#1}},%
randomize angle percent/.code={%
\pgfmathparse{#1}%
\let\pgflsystemrandomizeanglepercent=\pgfmathresult%
\ifdim\pgfmathresult pt=0pt\relax%
\pgf@lsystem@randomize@anglefalse%
\else%
\pgf@lsystem@randomize@angletrue%
\fi%
}%
}%
\pgfkeys{/pgf/lindenmayer system/.cd,
step=5pt,%
randomize step percent=0,%
angle=90,%
randomize angle percent=0%
}%
\long\def\pgfdeclarelindenmayersystem#1#2{%
\pgfutil@ifundefined{pgf@lsystem@#1}%
{%
\begingroup%
\edef\pgf@lsystem@name{#1}%
\expandafter\global\expandafter\let\csname pgf@lsystem@#1\endcsname=\pgf@lsystem@name%
\let\symbol=\pgf@lsystem@symbol%
\let\rule=\pgf@lsystem@rule%
#2%
\endgroup%
}%
{\pgferror{Lindenmayer system `#1' is already defined}}%
}%
\def\pgf@lsystem@symbol#1#2{%
\expandafter\gdef\csname pgf@lsystem@\pgf@lsystem@name @symbol@#1\endcsname{#2}%
}%
\def\pgf@lsystem@rule#1{\expandafter\pgf@lsystem@rule@#1\pgf@stop}%
\def\pgf@lsystem@rule@#1{\def\pgf@lsystem@rule@head{#1}\pgf@lsystem@rule@@}%
\def\pgf@lsystem@rule@@#1->{%
\let\pgf@lsystem@rule@body=\pgfutil@empty%
\pgfutil@ifnextchar x{\pgf@lsystem@rule@@@}{\pgf@lsystem@rule@@@}}%
\def\pgf@lsystem@rule@@@#1{%
\ifx#1\pgf@stop%
\expandafter\global\expandafter\let%
\csname pgf@lsystem@\pgf@lsystem@name @rule@\pgf@lsystem@rule@head\endcsname=\pgf@lsystem@rule@body%
\else%
\edef\pgf@lsystem@rule@body{\pgf@lsystem@rule@body#1}%
\expandafter\pgf@lsystem@rule@@@%
\fi%
}%
\def\pgflindenmayersystem#1#2#3{%
\begingroup%
\edef\pgf@lsystem@name{#1}%
\edef\pgf@lsystem@axiom{#2}%
\pgfmathtruncatemacro\pgf@lsystem@order{#3}%
\let\pgf@lsystem@current@symbol=\relax%
\c@pgf@lsystem@iteration=0\relax%
\ifnum\pgf@lsystem@order=0\relax%
\expandafter\pgf@lsystem@draw\pgf@lsystem@axiom\pgf@stop
\let\pgf@lsystem@next=\pgf@lsystem@end%
\else%
\let\pgf@lsystem@next=\pgf@lsystem@run%
\fi%
\expandafter\pgf@lsystem@next\pgf@lsystem@axiom\pgf@lsystem@stop%
}%
\def\pgf@lsystem@run#1{%
\ifx#1\pgf@lsystem@stop%
\def\pgf@lsystem@token{\pgf@lsystem@stop}%
\let\pgf@lsystem@next=\pgf@lsystem@end%
\else%
\ifx#1\pgf@stop%
\advance\c@pgf@lsystem@iteration by-1\relax%
\let\pgf@system@token=\pgfutil@empty%
\let\pgf@lsystem@next=\pgf@lsystem@run%
\else%
\expandafter\let\expandafter\pgf@lsystem@token\expandafter=%
\csname pgf@lsystem@\pgf@lsystem@name @rule@#1\endcsname%
\ifx\pgf@lsystem@token\relax%
\pgf@lsystem@draw#1\pgf@stop%
\let\pgf@lsystem@token=\pgfutil@empty%
\else%
\advance\c@pgf@lsystem@iteration by1\relax%
\ifnum\c@pgf@lsystem@iteration=\pgf@lsystem@order%
\expandafter\pgf@lsystem@draw\pgf@lsystem@token \pgf@stop%
\advance\c@pgf@lsystem@iteration by-1\relax%
\let\pgf@lsystem@token=\pgfutil@empty%
\else%
\expandafter\def\expandafter\pgf@lsystem@token\expandafter{\pgf@lsystem@token \pgf@stop}%
\fi%
\fi%
\let\pgf@lsystem@next=\pgf@lsystem@run%
\fi%
\fi%
\expandafter\pgf@lsystem@next\pgf@lsystem@token}%
\def\pgf@lsystem@end#1\pgf@lsystem@stop{\endgroup}%
\def\pgf@lsystem@draw#1{%
\ifx#1\pgf@stop%
\let\pgf@lsystem@next=\relax%
\else%
\expandafter\let\expandafter\pgf@lsystem@current@symbol\expandafter=%
\csname pgf@lsystem@\pgf@lsystem@name @symbol@#1\endcsname%
\ifx\pgf@lsystem@current@symbol\relax%
\expandafter\let\expandafter\pgf@lsystem@current@symbol\expandafter=%
\csname pgf@lsystem@symbol@default@#1\endcsname%
\fi%
\let\pgf@lsystem@next=\pgf@lsystem@@draw%
\fi%
\pgf@lsystem@next}%
\def\pgf@lsystem@@draw{%
\edef\pgflsystemcurrentstep{\the\pgflsystemstep}%
\let\pgflsystemcurrentrightangle=\pgflsystemrightangle%
\let\pgflsystemcurrentrightangle=\pgflsystemleftangle%
\pgf@lsystem@current@symbol%
\pgf@lsystem@draw}%
\expandafter\def\csname
pgf@lsystem@symbol@default@F\endcsname{\pgflsystemdrawforward}%
\expandafter\def\csname
pgf@lsystem@symbol@default@f\endcsname{\pgflsystemmoveforward}%
\expandafter\def\csname
pgf@lsystem@symbol@default@+\endcsname{\pgflsystemturnleft}%
\expandafter\def\csname
pgf@lsystem@symbol@default@-\endcsname{\pgflsystemturnright}%
\expandafter\def\csname
pgf@lsystem@symbol@default@[\endcsname{\pgflsystemsavestate}%
\expandafter\def\csname
pgf@lsystem@symbol@default@]\endcsname{\pgflsystemrestorestate}%
\def\pgflsystemradonmizestep{%
\ifpgf@lsystem@randomize@step%
\pgfmathrand%
\pgf@x=\pgflsystemrandomizesteppercent pt\relax%
\pgf@x=\pgfmathresult\pgf@x%
\divide\pgf@x by20\relax%
\advance\pgf@x by\pgflsystemstep\relax%
\edef\pgflsystemcurrentstep{\the\pgf@x}%
\else%
\edef\pgflsystemcurrentstep{\the\pgflsystemstep}%
\fi%
}%
\def\pgflsystemdrawforward{%
\pgflsystemradonmizestep
\pgftransformxshift{+\pgflsystemcurrentstep}%
\pgfpathlineto{\pgfpointorigin}}%
\def\pgflsystemmoveforward{%
\pgflsystemradonmizestep
\pgftransformxshift{+\pgflsystemcurrentstep}%
\pgfpathmoveto{\pgfpointorigin}}%
\def\pgflsystemranomizerightangle{%
\ifpgf@lsystem@randomize@angle%
\pgf@x=\pgflsystemrandomizeanglepercent pt\relax%
\divide\pgf@x by20\relax%
\pgfmathrand%
\pgf@x=\pgfmathresult\pgf@x%
\advance\pgf@x by\pgflsystemrightangle pt\relax%
\edef\pgflsystemcurrentrightangle{\pgfmath@tonumber{\pgf@x}}%
\else%
\let\pgflsystemcurrentrightangle=\pgflsystemrightangle%
\fi%
}%
\def\pgflsystemranomizeleftangle{%
\ifpgf@lsystem@randomize@angle%
\pgf@x=\pgflsystemrandomizeanglepercent pt\relax%
\divide\pgf@x by20\relax%
\pgfmathrand%
\pgf@x=\pgfmathresult\pgf@x%
\advance\pgf@x by\pgflsystemleftangle pt\relax%
\edef\pgflsystemcurrentleftangle{\pgfmath@tonumber{\pgf@x}}%
\else%
\let\pgflsystemcurrentleftangle=\pgflsystemleftangle%
\fi%
}%
\def\pgflsystemturnright{%
\pgflsystemranomizerightangle
\pgftransformrotate{-\pgflsystemcurrentrightangle}}%
\def\pgflsystemturnleft{%
\pgflsystemranomizeleftangle
\pgftransformrotate{\pgflsystemcurrentleftangle}}%
\def\pgflsystemsavestate{\begingroup}%
\def\pgflsystemrestorestate{\endgroup\pgfpathmoveto{\pgfpointorigin}}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarylindenmayersystems.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarypatterns.code.tex ====
\ProvidesFileRCS{pgflibrarypatterns.code.tex}
\pgfdeclarepatternformonly{horizontal lines}{\pgfpointorigin}{\pgfqpoint{100pt}{1pt}}{\pgfqpoint{100pt}{3pt}}%
{%
\pgfsetlinewidth{0.4pt}%
\pgfpathmoveto{\pgfqpoint{0pt}{0.5pt}}%
\pgfpathlineto{\pgfqpoint{100pt}{0.5pt}}%
\pgfusepath{stroke}%
}%
\pgfdeclarepatternformonly{vertical lines}{\pgfpointorigin}{\pgfqpoint{1pt}{100pt}}{\pgfqpoint{3pt}{100pt}}%
{%
\pgfsetlinewidth{0.4pt}%
\pgfpathmoveto{\pgfqpoint{0.5pt}{0pt}}%
\pgfpathlineto{\pgfqpoint{0.5pt}{100pt}}%
\pgfusepath{stroke}%
}%
\pgfdeclarepatternformonly{north east lines}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{4pt}{4pt}}{\pgfqpoint{3pt}{3pt}}%
{%
\pgfsetlinewidth{0.4pt}%
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}%
\pgfpathlineto{\pgfqpoint{3.1pt}{3.1pt}}%
\pgfusepath{stroke}%
}%
\pgfdeclarepatternformonly{north west lines}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{4pt}{4pt}}{\pgfqpoint{3pt}{3pt}}%
{%
\pgfsetlinewidth{0.4pt}%
\pgfpathmoveto{\pgfqpoint{0pt}{3pt}}%
\pgfpathlineto{\pgfqpoint{3.1pt}{-0.1pt}}%
\pgfusepath{stroke}%
}%
\pgfdeclarepatternformonly{grid}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{4pt}{4pt}}{\pgfqpoint{3pt}{3pt}}%
{%
\pgfsetlinewidth{0.4pt}%
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{3.1pt}}%
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}%
\pgfpathlineto{\pgfqpoint{3.1pt}{0pt}}%
\pgfusepath{stroke}%
}%
\pgfdeclarepatternformonly{crosshatch}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{4pt}{4pt}}{\pgfqpoint{3pt}{3pt}}%
{%
\pgfsetlinewidth{0.4pt}%
\pgfpathmoveto{\pgfqpoint{3.1pt}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{3.1pt}}%
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}%
\pgfpathlineto{\pgfqpoint{3.1pt}{3.1pt}}%
\pgfusepath{stroke}%
}%
\pgfdeclarepatternformonly{dots}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{1pt}{1pt}}{\pgfqpoint{3pt}{3pt}}%
{%
\pgfpathcircle{\pgfqpoint{0pt}{0pt}}{.5pt}%
\pgfusepath{fill}%
}%
\pgfdeclarepatternformonly{crosshatch dots}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{2.5pt}{2.5pt}}{\pgfqpoint{3pt}{3pt}}%
{%
\pgfpathcircle{\pgfqpoint{0pt}{0pt}}{.5pt}%
\pgfpathcircle{\pgfqpoint{1.5pt}{1.5pt}}{.5pt}%
\pgfusepath{fill}%
}%
\pgfdeclarepatternformonly{fivepointed stars}{\pgfpointorigin}{\pgfqpoint{3mm}{3mm}}{\pgfqpoint{3mm}{3mm}}%
{%
\pgftransformshift{\pgfqpoint{1mm}{1mm}}%
\pgfpathmoveto{\pgfqpointpolar{18}{1mm}}%
\pgfpathlineto{\pgfqpointpolar{162}{1mm}}%
\pgfpathlineto{\pgfqpointpolar{306}{1mm}}%
\pgfpathlineto{\pgfqpointpolar{90}{1mm}}%
\pgfpathlineto{\pgfqpointpolar{234}{1mm}}%
\pgfpathclose%
\pgfusepath{fill}%
}%
\pgfdeclarepatternformonly{sixpointed stars}{\pgfpointorigin}{\pgfqpoint{3mm}{3mm}}{\pgfqpoint{3mm}{3mm}}%
{%
\pgftransformshift{\pgfqpoint{1mm}{1mm}}%
\pgfpathmoveto{\pgfqpointpolar{30}{1mm}}%
\pgfpathlineto{\pgfqpointpolar{150}{1mm}}%
\pgfpathlineto{\pgfqpointpolar{270}{1mm}}%
\pgfpathclose%
\pgfpathmoveto{\pgfqpointpolar{-30}{1mm}}%
\pgfpathlineto{\pgfqpointpolar{-270}{1mm}}%
\pgfpathlineto{\pgfqpointpolar{-150}{1mm}}%
\pgfpathclose%
\pgfsetnonzerorule%
\pgfusepath{fill}%
}%
\pgfdeclarepatternformonly{bricks}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{5mm}{5mm}}{\pgfqpoint{4mm}{4mm}}%
{%
\pgfsetlinewidth{0.8pt}%
\pgfpathmoveto{\pgfqpoint{0mm}{1mm}}%
\pgfpathlineto{\pgfqpoint{4mm}{1mm}}%
\pgfpathmoveto{\pgfqpoint{0mm}{3mm}}%
\pgfpathlineto{\pgfqpoint{4mm}{3mm}}%
\pgfpathmoveto{\pgfqpoint{1mm}{0mm}}%
\pgfpathlineto{\pgfqpoint{1mm}{1mm}}%
\pgfpathmoveto{\pgfqpoint{3mm}{1mm}}%
\pgfpathlineto{\pgfqpoint{3mm}{3mm}}%
\pgfpathmoveto{\pgfqpoint{1mm}{3mm}}%
\pgfpathlineto{\pgfqpoint{1mm}{4mm}}%
\pgfusepath{stroke}%
}%
\pgfdeclarepatternformonly{checkerboard}{\pgfpointorigin}{\pgfqpoint{4mm}{4mm}}{\pgfqpoint{4mm}{4mm}}%
{%
\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{2mm}{2mm}}%
\pgfpathrectangle{\pgfqpoint{2mm}{2mm}}{\pgfqpoint{2mm}{2mm}}%
\pgfusepath{fill}%
}%
\pgfdeclarepatterninherentlycolored{checkerboard light gray}
{\pgfpointorigin}{\pgfqpoint{4mm}{4mm}}{\pgfqpoint{4mm}{4mm}}%
{%
\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{4.1mm}{4.1mm}}%
\pgfusepath{fill}%
\pgfsetfillcolor{black!20}%
\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{2mm}{2mm}}%
\pgfpathrectangle{\pgfqpoint{2mm}{2mm}}{\pgfqpoint{2mm}{2mm}}%
\pgfusepath{fill}%
}%
\pgfdeclarepatterninherentlycolored{horizontal lines light gray}
{\pgfpointorigin}{\pgfpoint{100pt}{4pt}}
{\pgfpoint{100pt}{4pt}}
{%
\pgfsetfillcolor{black!10}%
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{100pt}{2.5pt}}%
\pgfusepath{fill}%
\pgfsetfillcolor{black!15}%
\pgfpathrectangle{\pgfpoint{0pt}{2pt}}{\pgfpoint{100pt}{2.5pt}}%
\pgfusepath{fill}%
}%
\pgfdeclarepatterninherentlycolored{horizontal lines gray}
{\pgfpointorigin}{\pgfpoint{100pt}{4pt}}
{\pgfpoint{100pt}{4pt}}
{%
\pgfsetfillcolor{black!30}%
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{100pt}{2.5pt}}%
\pgfusepath{fill}%
\pgfsetfillcolor{black!35}%
\pgfpathrectangle{\pgfpoint{0pt}{2pt}}{\pgfpoint{100pt}{2.5pt}}%
\pgfusepath{fill}%
}%
\pgfdeclarepatterninherentlycolored{horizontal lines dark gray}
{\pgfpointorigin}{\pgfpoint{100pt}{4pt}}
{\pgfpoint{100pt}{4pt}}
{%
\pgfsetfillcolor{black!90}%
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{100pt}{2.5pt}}%
\pgfusepath{fill}%
\pgfsetfillcolor{black!85}%
\pgfpathrectangle{\pgfpoint{0pt}{2pt}}{\pgfpoint{100pt}{2.5pt}}%
\pgfusepath{fill}%
}%
\pgfdeclarepatterninherentlycolored{horizontal lines light blue}
{\pgfpointorigin}{\pgfpoint{100pt}{4pt}}
{\pgfpoint{100pt}{4pt}}
{%
\pgfsetfillcolor{blue!10}%
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{100pt}{2.5pt}}%
\pgfusepath{fill}%
\pgfsetfillcolor{blue!15}%
\pgfpathrectangle{\pgfpoint{0pt}{2pt}}{\pgfpoint{100pt}{2.5pt}}%
\pgfusepath{fill}%
}%
\pgfdeclarepatterninherentlycolored{horizontal lines dark blue}
{\pgfpointorigin}{\pgfpoint{100pt}{4pt}}
{\pgfpoint{100pt}{4pt}}
{%
\pgfsetfillcolor{blue!90}%
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{100pt}{2.5pt}}%
\pgfusepath{fill}%
\pgfsetfillcolor{blue!85}%
\pgfpathrectangle{\pgfpoint{0pt}{2pt}}{\pgfpoint{100pt}{2.5pt}}%
\pgfusepath{fill}%
}%
\pgfdeclarepatterninherentlycolored{crosshatch dots gray}
{\pgfpointorigin}{\pgfpoint{8pt}{8pt}}
{\pgfpoint{8pt}{8pt}}
{%
\pgfsetfillcolor{black!20}%
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{8pt}{8pt}}%
\pgfusepath{fill}%
\pgfsetfillcolor{black!10}%
\pgfpathcircle{\pgfpoint{2pt}{1.75pt}}{1pt}%
\pgfpathcircle{\pgfpoint{6pt}{5.75pt}}{1pt}%
\pgfusepath{fill}%
\pgfsetfillcolor{black!70}%
\pgfpathcircle{\pgfpoint{2pt}{2.25pt}}{1pt}%
\pgfpathcircle{\pgfpoint{6pt}{6.25pt}}{1pt}%
\pgfusepath{fill}%
}%
\pgfutil@definecolor{pgf@lightsteelblue}{rgb}{0.6875,0.765625,0.8671875}%
\pgfutil@colorlet{pgf@darklightsteelblue}{black!50!pgf@lightsteelblue}%
\pgfdeclarepatterninherentlycolored{crosshatch dots light steel blue}
{\pgfpointorigin}{\pgfpoint{8pt}{8pt}}
{\pgfpoint{8pt}{8pt}}
{%
\pgfsetfillcolor{pgf@lightsteelblue}%
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{8pt}{8pt}}%
\pgfusepath{fill}%
\pgfsetfillcolor{pgf@darklightsteelblue!10}%
\pgfpathcircle{\pgfpoint{2pt}{1.75pt}}{1pt}%
\pgfpathcircle{\pgfpoint{6pt}{5.75pt}}{1pt}%
\pgfusepath{fill}%
\pgfsetfillcolor{pgf@darklightsteelblue!70}%
\pgfpathcircle{\pgfpoint{2pt}{2.25pt}}{1pt}%
\pgfpathcircle{\pgfpoint{6pt}{6.25pt}}{1pt}%
\pgfusepath{fill}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarypatterns.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarypatterns.meta.code.tex ====
\def\pgf@pat@type@uncolored{0}%
\def\pgf@pat@type@colored{1}%
\newif\ifpgf@pat@makepatternimmutable
\pgfkeys{/pgf/patterns/.cd,
name/.store in=\pgf@pat@name,
number ../.store in=\pgf@pat@number,
type/.is choice,
type/uncolored/.code={\let\pgf@pat@type=\pgf@pat@type@uncolored},
type/colored/.code={\let\pgf@pat@type=\pgf@pat@type@colored},
type/form only/.style={/pgf/patterns/type=uncolored},
type/inherently colored/.style={/pgf/patterns/type=colored},
x/.store in=\pgf@pat@xvec,
y/.store in=\pgf@pat@yvec,
parameters/.store in=\pgf@pat@parameters,
defaults/.store in=\pgf@pat@defaults,
append to defaults/.code={%
\pgf@pat@addto@macro\pgf@pat@defaults{,#1}%
},
bottom left/.store in=\pgf@pat@bottomleft,
top right/.store in=\pgf@pat@topright,
tile size/.store in=\pgf@pat@tilesize,
tile transformation/.store in=\pgf@pat@transformation,
code/.store in=\pgf@pat@code,
set up code/.store in=\pgf@pat@declarebefore,
name=,
number ..=,
type=uncolored,
x=1cm, y=1cm,
parameters=,
defaults=,
bottom left=,
top right=,
tile size=,
tile transformation=,
code=,
set up code=,
}%
\def\pgf@pat@name@prefix{pgf@pattern@name@meta@}%
\def\pgfifpatternundefined#1{%
\pgfutil@ifundefined{\pgf@pat@name@prefix#1}%
}%
\def\pgf@pat@adddef@to@macro#1#2{%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter#1%
\expandafter\expandafter\expandafter{\expandafter#1\expandafter%
\def\expandafter#2\expandafter{#2}}%
}%
\def\pgf@pat@addto@macro#1#2{%
\expandafter\def\expandafter#1\expandafter{#1#2}}%
\def\pgf@pat@process#1{%
\pgf@process{#1}%
}%
\def\pgf@pat@doifnotempty#1{%
\ifx#1\pgfutil@empty%
\let\pgf@pat@next=\relax%
\else%
\let\pgf@pat@next=#1%
\fi%
\pgf@pat@next%
}%
\def\pgf@pat@processtransformations#1{#1}%
\def\pgf@pat@processpoint#1{%
\pgf@process{#1}%
}%
\def\pgfdeclarepattern#1{%
\begingroup%
\nullfont%
\def\pgf@pat@options{,#1}%
\pgfkeys{/pgf/patterns/.cd,#1}%
\ifx\pgf@pat@name\pgfutil@empty
\pgferror{Declaring unnamed pattern}%
\fi
\ifx\pgf@pat@bottomleft\pgfutil@empty
\pgferror{Bottom left corner of the bounding box unset}%
\fi
\ifx\pgf@pat@topright\pgfutil@empty
\pgferror{Top right corner of the bounding box unset}%
\fi
\ifx\pgf@pat@tilesize\pgfutil@empty
\pgferror{Tile size unset}%
\fi
\ifx\pgf@pat@code\pgfutil@empty
\pgferror{Pattern code is empty}%
\fi
\pgf@declarepattern@meta%
\endgroup%
}%
\def\pgf@declarepattern@meta{%
\pgfifpatternundefined{\pgf@pat@name}{%
\ifx\pgf@pat@parameters\pgfutil@empty%
\pgf@pat@declare%
\edef\pgf@marshal{%
\noexpand\pgf@pat@addto@macro\noexpand\pgf@pat@options{,number ..=\pgf@pattern@number}}%
\pgf@marshal%
\fi%
\expandafter\global\expandafter\let\csname\pgf@pat@name@prefix\pgf@pat@name\endcsname=\pgf@pat@options%
}{%
\pgferror{Pattern `\pgf@pat@name' already defined}%
}%
}%
\let\pgf@pat@declarebefore=\pgfutil@empty
\let\pgf@pat@declareafter=\pgfutil@empty
\let\pgf@pat@codebefore=\pgfutil@empty
\let\pgf@pat@codeafter=\pgfutil@empty
\def\pgf@pat@declare{%
\pgfsysprotocol@getcurrentprotocol\pgf@pattern@temp%
{%
\pgfsetxvec{\pgfpoint{\pgf@pat@xvec}{+0pt}}%
\pgfsetyvec{\pgfpoint{+0pt}{\pgf@pat@yvec}}%
\pgf@pat@doifnotempty\pgf@pat@declarebefore%
\pgfinterruptpath%
\pgfpicturetrue%
\pgf@relevantforpicturesizetrue%
\pgftransformreset%
\pgfsysprotocol@setcurrentprotocol\pgfutil@empty%
\pgfsysprotocol@bufferedtrue%
\pgfsys@beginscope%
\pgfinterruptboundingbox%
\pgfsetarrows{-}%
\pgf@pat@doifnotempty\pgf@pat@codebefore
\pgf@pat@code%
\pgf@pat@doifnotempty\pgf@pat@codeafter%
\endpgfinterruptboundingbox%
\pgfsys@endscope%
\pgfsysprotocol@getcurrentprotocol\pgf@pattern@code%
\global\let\pgf@pattern@code=\pgf@pattern@code%
\endpgfinterruptpath%
\pgf@pat@doifnotempty\pgf@pat@declareafter%
\pgf@pat@processpoint{\pgf@pat@bottomleft}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@pat@processpoint{\pgf@pat@topright}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@pat@processpoint{\pgf@pat@tilesize}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\begingroup%
\pgftransformreset%
\pgf@pat@processtransformations\pgf@pat@transformation%
\pgfgettransformentries\aa\ab\ba\bb\shiftx\shifty%
\global\edef\pgf@pattern@matrix{{\aa}{\ab}{\ba}{\bb}{\shiftx}{\shifty}}%
\endgroup%
\pgfutil@tempcnta=\pgf@pattern@number\relax%
\advance\pgfutil@tempcnta by1\relax%
\xdef\pgf@pattern@number{\the\pgfutil@tempcnta}%
\xdef\pgf@marshal{\noexpand\pgfsys@declarepattern%
{\pgf@pattern@number}%
{\the\pgf@xa}{\the\pgf@ya}{\the\pgf@xb}{\the\pgf@yb}{\the\pgf@xc}{\the\pgf@yc}\pgf@pattern@matrix{\pgf@pattern@code}{\pgf@pat@type}}%
}%
\pgf@marshal%
\pgfsysprotocol@setcurrentprotocol\pgf@pattern@temp%
}%
\def\pgf@pat@checkname#1{%
\pgf@pat@@checkname#1[]\pgf@patstop}%
\def\pgf@pat@@checkname#1[#2]#3\pgf@patstop{%
\expandafter\def\expandafter\pgf@pat@onlinename\expandafter{\romannumeral-`0\pgfutil@trimspaces{#1}}%
\def\pgf@pat@onlineoptions{#2}%
}%
\def\pgf@pat@unravel#1/{%
\pgfutil@ifnextchar\pgf@stop{\def\pgf@pat@unravelled{#1}}{\pgf@pat@unravel}}%
\pgfkeys{/handlers/.pattern/.code={%
\expandafter\expandafter\expandafter\pgf@pat@unravel\pgfkeyscurrentpath/\pgf@stop%
\pgfpatternalias{#1}{\pgf@pat@unravelled}%
}}%
\def\pgfpatternalias#1#2{%
\begingroup%
\pgf@pat@checkname{#1}%
\expandafter\let\expandafter\pgf@pat@options\expandafter=%
\csname\pgf@pat@name@prefix\pgf@pat@onlinename\endcsname%
\pgf@pat@macroaskeys{/pgf/patterns/.cd}{\pgf@pat@options}%
\pgfutil@toks@\expandafter{\pgf@pat@onlineoptions}%
\edef\pgf@pat@tmp{append to defaults={\the\pgfutil@toks@}}%
\expandafter\pgf@pat@addto@macro\expandafter\pgf@pat@options\expandafter{\expandafter,\pgf@pat@tmp}%
\pgf@pat@addto@macro\pgf@pat@options{,name=#2}%
\expandafter\global\expandafter\let\csname\pgf@pat@name@prefix#2\endcsname=\pgf@pat@options%
\endgroup%
}%
\let\pgfsetfillpattern@old=\pgfsetfillpattern
\def\pgf@pat@macroaskeys#1#2{%
\pgfutil@toks@\expandafter{#2}%
\edef\pgf@marshal{\noexpand\pgfkeys{,#1,\the\pgfutil@toks@}}%
\pgf@marshal%
}%
\def\pgfsetfillpattern#1#2{%
\pgf@pat@checkname{#1}%
\pgfutil@ifundefined{\pgf@pat@name@prefix\pgf@pat@onlinename}{%
\pgfsetfillpattern@old{\pgf@pat@onlinename}{#2}%
}{%
\let\pgf@pat@parameters=\pgfutil@empty%
\expandafter\let\expandafter\pgf@pat@options\expandafter=%
\csname\pgf@pat@name@prefix\pgf@pat@onlinename\endcsname%
\pgf@pat@macroaskeys{/pgf/patterns/.cd}{\pgf@pat@options}%
\ifx\pgf@pat@parameters\pgfutil@empty%
\else%
\begingroup%
\pgf@pat@macroaskeys{/pgf/pattern keys/.cd}{\pgf@pat@defaults}%
\pgf@pat@macroaskeys{/pgf/pattern keys/.cd}{\pgf@pat@onlineoptions}%
\edef\pgf@pat@current@parameters{\pgf@pat@parameters}%
\edef\pgf@pat@onlinename{\pgf@pat@onlinename\pgf@pat@current@parameters}%
\let\pgf@pat@name=\pgf@pat@onlinename%
\pgfutil@ifundefined{\pgf@pat@name@prefix\pgf@pat@onlinename}{%
\let\pgf@pat@parameters=\pgfutil@empty%
\pgf@declarepattern@meta%
}{}%
\expandafter%
\endgroup%
\expandafter\def\expandafter\pgf@pat@onlinename\expandafter{\pgf@pat@onlinename}%
\expandafter\let\expandafter\pgf@pat@options\expandafter=%
\csname\pgf@pat@name@prefix\pgf@pat@onlinename\endcsname%
\pgf@pat@macroaskeys{/pgf/patterns/.cd}{\pgf@pat@options}%
\fi%
\ifx\pgf@pat@type\pgf@pat@type@uncolored%
\pgf@pat@setpatternuncolored{\pgf@pat@number}{#2}%
\else%
\pgfsys@setpatterncolored{\pgf@pat@number}%
\fi%
}%
}%
\def\pgf@pat@setpatternuncolored#1#2{%
\pgfutil@colorlet{pgf@tempcolor}{#2}%
\pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{pgf@tempcolor}}%
\pgfutil@extractcolorspec{pgf@tempcolor}{\pgf@tempcolor}%
\expandafter\pgfutil@convertcolorspec\pgf@tempcolor{rgb}{\pgf@rgbcolor}%
\expandafter\pgf@pat@set@fill@patternuncolored\pgf@rgbcolor\relax{#1}%
}%
\def\pgf@pat@set@fill@patternuncolored#1,#2,#3\relax#4{%
\pgfsys@setpatternuncolored{#4}{#1}{#2}{#3}%
}%
\pgfdeclarepattern{
name=Lines,
parameters={
\pgfkeysvalueof{/pgf/pattern keys/distance},
\pgfkeysvalueof{/pgf/pattern keys/angle},
\pgfkeysvalueof{/pgf/pattern keys/xshift},
\pgfkeysvalueof{/pgf/pattern keys/yshift},
\pgfkeysvalueof{/pgf/pattern keys/line width},
},
bottom left={%
\pgfpoint
{-.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}%
{-.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}},
top right={%
\pgfpoint
{.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}%
{.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}},
tile size={%
\pgfpoint
{\pgfkeysvalueof{/pgf/pattern keys/distance}}%
{\pgfkeysvalueof{/pgf/pattern keys/distance}}},
tile transformation={%
\pgftransformshift{%
\pgfpoint
{\pgfkeysvalueof{/pgf/pattern keys/xshift}}%
{\pgfkeysvalueof{/pgf/pattern keys/yshift}}}%
\pgftransformrotate{\pgfkeysvalueof{/pgf/pattern keys/angle}}},
defaults={
distance/.initial=3pt,
angle/.initial=0,
xshift/.initial=0pt,
yshift/.initial=0pt,
line width/.initial=\the\pgflinewidth,
},
code={%
\pgfsetlinewidth{\pgfkeysvalueof{/pgf/pattern keys/line width}}%
\pgfpathmoveto{\pgfpoint{-.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}{0pt}}%
\pgfpathlineto{\pgfpoint{.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}{0pt}}%
\pgfusepath{stroke}%
},
}
\pgfdeclarepattern{
name=Hatch,
parameters={
\pgfkeysvalueof{/pgf/pattern keys/distance},
\pgfkeysvalueof{/pgf/pattern keys/angle},
\pgfkeysvalueof{/pgf/pattern keys/xshift},
\pgfkeysvalueof{/pgf/pattern keys/yshift},
\pgfkeysvalueof{/pgf/pattern keys/line width},
},
bottom left={%
\pgfpoint
{-.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}%
{-.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}},
top right={%
\pgfpoint
{.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}%
{.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}},
tile size={%
\pgfpoint
{\pgfkeysvalueof{/pgf/pattern keys/distance}}%
{\pgfkeysvalueof{/pgf/pattern keys/distance}}},
tile transformation={%
\pgftransformshift{%
\pgfpoint
{\pgfkeysvalueof{/pgf/pattern keys/xshift}}%
{\pgfkeysvalueof{/pgf/pattern keys/yshift}}}%
\pgftransformrotate{\pgfkeysvalueof{/pgf/pattern keys/angle}}},
defaults={
distance/.initial=3pt,
angle/.initial=0,
xshift/.initial=0pt,
yshift/.initial=0pt,
line width/.initial=\the\pgflinewidth,
},
code={%
\pgfsetlinewidth{\pgfkeysvalueof{/pgf/pattern keys/line width}}%
\pgfpathmoveto{\pgfpoint{-.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}{0pt}}%
\pgfpathlineto{\pgfpoint{.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}{0pt}}%
\pgfpathmoveto{\pgfpoint{0pt}{-.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}}%
\pgfpathlineto{\pgfpoint{0pt}{.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}}%
\pgfusepath{stroke}%
},
}
\pgfdeclarepattern{
name=Dots,
parameters={
\pgfkeysvalueof{/pgf/pattern keys/distance},
\pgfkeysvalueof{/pgf/pattern keys/angle},
\pgfkeysvalueof{/pgf/pattern keys/xshift},
\pgfkeysvalueof{/pgf/pattern keys/yshift},
\pgfkeysvalueof{/pgf/pattern keys/radius},
},
bottom left={%
\pgfpoint
{-.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}%
{-.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}},
top right={%
\pgfpoint
{.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}%
{.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}},
tile size={%
\pgfpoint
{\pgfkeysvalueof{/pgf/pattern keys/distance}}%
{\pgfkeysvalueof{/pgf/pattern keys/distance}}},
tile transformation={%
\pgftransformshift{%
\pgfpoint
{\pgfkeysvalueof{/pgf/pattern keys/xshift}}%
{\pgfkeysvalueof{/pgf/pattern keys/yshift}}}%
\pgftransformrotate{\pgfkeysvalueof{/pgf/pattern keys/angle}}},
defaults={
distance/.initial=3pt,
angle/.initial=0,
xshift/.initial=0pt,
yshift/.initial=0pt,
radius/.initial=.5pt,
},
code={%
\pgfpathcircle%
{\pgfpointorigin}%
{\pgfkeysvalueof{/pgf/pattern keys/radius}}
\pgfusepath{fill}%
},
}
\pgfdeclarepattern{
name=Stars,
parameters={
\pgfkeysvalueof{/pgf/pattern keys/distance},
\pgfkeysvalueof{/pgf/pattern keys/angle},
\pgfkeysvalueof{/pgf/pattern keys/xshift},
\pgfkeysvalueof{/pgf/pattern keys/yshift},
\pgfkeysvalueof{/pgf/pattern keys/radius},
\pgfkeysvalueof{/pgf/pattern keys/points},
},
bottom left={%
\pgfpoint
{-.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}%
{-.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}},
top right={%
\pgfpoint
{.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}%
{.5*(\pgfkeysvalueof{/pgf/pattern keys/distance})}},
tile size={%
\pgfpoint
{\pgfkeysvalueof{/pgf/pattern keys/distance}}%
{\pgfkeysvalueof{/pgf/pattern keys/distance}}},
tile transformation={%
\pgftransformshift{%
\pgfpoint
{\pgfkeysvalueof{/pgf/pattern keys/xshift}}%
{\pgfkeysvalueof{/pgf/pattern keys/yshift}}}%
\pgftransformrotate{\pgfkeysvalueof{/pgf/pattern keys/angle}}},
defaults={
distance/.initial=3mm,
angle/.initial=0,
xshift/.initial=0pt,
yshift/.initial=0pt,
radius/.initial=1mm,
points/.initial=5,
},
code={%
\pgfmathsetmacro\a{180/(\pgfkeysvalueof{/pgf/pattern keys/points})}%
\pgfpathmoveto{\pgfpointpolar{90}{\pgfkeysvalueof{/pgf/pattern keys/radius}}}%
\foreach \i in {1,...,\pgfkeysvalueof{/pgf/pattern keys/points}}{%
\pgfpathlineto{\pgfpointpolar{90+2*\i*\a-\a}{.5*(\pgfkeysvalueof{/pgf/pattern keys/radius})}}%
\pgfpathlineto{\pgfpointpolar{90+2*\i*\a}{\pgfkeysvalueof{/pgf/pattern keys/radius}}}%
}%
\pgfpathclose%
\pgfusepath{fill}%
},
}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarypatterns.meta.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex ====
\ProvidesFileRCS{pgflibraryplothandlers.code.tex}
\pgfdeclareplothandler{\pgfplothandlercurveto}{}{%
point macro=\pgf@plot@curveto@handler@initial,
jump macro=\pgf@plot@smooth@next@moveto,
end macro=\pgf@plot@curveto@handler@finish
}%
\def\pgf@plot@smooth@next@moveto{%
\pgf@plot@curveto@handler@finish%
\global\pgf@plot@startedfalse%
\global\let\pgf@plotstreampoint\pgf@plot@curveto@handler@initial%
}%
\def\pgf@plot@curveto@handler@initial#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@plot@first@action{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\xdef\pgf@plot@curveto@first{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
\global\let\pgf@plot@curveto@first@support=\pgf@plot@curveto@first%
\global\let\pgf@plotstreampoint=\pgf@plot@curveto@handler@second%
}%
\def\pgf@plot@curveto@handler@second#1{%
\pgf@process{#1}%
\xdef\pgf@plot@curveto@second{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\global\let\pgf@plotstreampoint=\pgf@plot@curveto@handler@third%
\global\pgf@plot@startedtrue%
}%
\def\pgf@plot@curveto@handler@third#1{%
\pgf@process{#1}%
\xdef\pgf@plot@curveto@current{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgf@plot@curveto@first}
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\pgf@xa=\pgf@plottension\pgf@xa%
\pgf@ya=\pgf@plottension\pgf@ya%
\pgf@process{\pgf@plot@curveto@second}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\advance\pgf@xb by-\pgf@xa%
\advance\pgf@yb by-\pgf@ya%
\advance\pgf@xc by\pgf@xa%
\advance\pgf@yc by\pgf@ya%
\edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgf@plot@curveto@first@support}%
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@curveto@second}}%
{\pgf@marshal}%
\global\let\pgf@plot@curveto@first=\pgf@plot@curveto@second%
\global\let\pgf@plot@curveto@second=\pgf@plot@curveto@current%
\xdef\pgf@plot@curveto@first@support{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}%
}%
\def\pgf@plot@curveto@handler@finish{%
\ifpgf@plot@started%
\pgfpathcurveto{\pgf@plot@curveto@first@support}{\pgf@plot@curveto@second}{\pgf@plot@curveto@second}%
\fi%
}%
\def\pgfsetplottension#1{%
\pgf@x=#1pt\relax%
\pgf@x=0.2775\pgf@x\relax%
\edef\pgf@plottension{\pgf@sys@tonumber\pgf@x}}%
\pgfsetplottension{0.5}%
\pgfdeclareplothandler{\pgfplothandlerclosedcurve}{}{%
point macro=\pgf@plot@closedcurve@handler@initial,
end macro=\pgf@plot@closedcurve@handler@finish,
jump macro=\pgf@plot@closedsmooth@next@moveto
}%
\def\pgf@plot@closedsmooth@next@moveto{%
\pgf@plot@closedcurve@handler@finish%
\global\pgf@plot@startedfalse%
\global\let\pgf@plotstreampoint\pgf@plot@closedcurve@handler@initial%
}%
\def\pgf@plot@closedcurve@handler@initial#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\xdef\pgf@plot@closedcurve@initial{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
\global\let\pgf@plotstreampoint=\pgf@plot@closedcurve@handler@second%
\global\pgf@plot@startedfalse%
}%
\def\pgf@plot@closedcurve@handler@second#1{%
\pgf@process{#1}%
\xdef\pgf@plot@closedcurve@after@initial{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
{\pgfpathmoveto{}}%
\global\let\pgf@plotstreampoint=\pgf@plot@closedcurve@handler@third%
}%
\def\pgf@plot@closedcurve@handler@third#1{%
\global\pgf@plot@startedtrue%
\pgf@process{#1}%
\xdef\pgf@plot@closedcurve@current{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgf@plot@closedcurve@initial}
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\pgf@xa=\pgf@plottension\pgf@xa%
\pgf@ya=\pgf@plottension\pgf@ya%
\pgf@process{\pgf@plot@closedcurve@after@initial}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\advance\pgf@xb by-\pgf@xa%
\advance\pgf@yb by-\pgf@ya%
\advance\pgf@xc by\pgf@xa%
\advance\pgf@yc by\pgf@ya%
\global\let\pgf@plot@closedcurve@first=\pgf@plot@closedcurve@after@initial%
\global\let\pgf@plot@closedcurve@second=\pgf@plot@closedcurve@current%
\xdef\pgf@plot@closedcurve@after@initial@presupport{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}%
\xdef\pgf@plot@closedcurve@first@support{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}%
\global\let\pgf@plotstreampoint=\pgf@plot@closedcurve@handler@fourth%
}%
\def\pgf@plot@closedcurve@handler@fourth#1{%
\pgf@process{#1}%
\xdef\pgf@plot@closedcurve@current{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgf@plot@closedcurve@first}
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\pgf@xa=\pgf@plottension\pgf@xa%
\pgf@ya=\pgf@plottension\pgf@ya%
\pgf@process{\pgf@plot@closedcurve@second}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\advance\pgf@xb by-\pgf@xa%
\advance\pgf@yb by-\pgf@ya%
\advance\pgf@xc by\pgf@xa%
\advance\pgf@yc by\pgf@ya%
\edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgf@plot@closedcurve@first@support}%
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@closedcurve@second}}%
{\pgf@marshal}%
\global\let\pgf@plot@closedcurve@first=\pgf@plot@closedcurve@second%
\global\let\pgf@plot@closedcurve@second=\pgf@plot@closedcurve@current%
\xdef\pgf@plot@closedcurve@first@support{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}%
}%
\def\pgf@plot@closedcurve@handler@finish{%
\ifpgf@plot@started
\pgf@process{\pgf@plot@closedcurve@initial}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgf@plot@closedcurve@first}%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\pgf@xa=\pgf@plottension\pgf@xa%
\pgf@ya=\pgf@plottension\pgf@ya%
\pgf@process{\pgf@plot@closedcurve@second}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\advance\pgf@xb by-\pgf@xa%
\advance\pgf@yb by-\pgf@ya%
\advance\pgf@xc by\pgf@xa%
\advance\pgf@yc by\pgf@ya%
\edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgf@plot@closedcurve@first@support}%
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@closedcurve@second}}%
{\pgf@marshal}%
\xdef\pgf@plot@closedcurve@first@support{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}%
\pgf@process{\pgf@plot@closedcurve@after@initial}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgf@plot@closedcurve@second}%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\pgf@xa=\pgf@plottension\pgf@xa%
\pgf@ya=\pgf@plottension\pgf@ya%
\pgf@process{\pgf@plot@closedcurve@initial}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\advance\pgf@xb by-\pgf@xa%
\advance\pgf@yb by-\pgf@ya%
\advance\pgf@xc by\pgf@xa%
\advance\pgf@yc by\pgf@ya%
\edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgf@plot@closedcurve@first@support}%
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@closedcurve@initial}}%
{\pgf@marshal}%
\edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}%
{\noexpand\pgf@plot@closedcurve@after@initial@presupport}{\noexpand\pgf@plot@closedcurve@after@initial}}%
{\pgf@marshal}%
\pgfpathclose%
\fi%
}%
\pgfdeclareplothandler{\pgfplothandlerxcomb}{}{%
start macro=\pgfplotxzerolevelstreamstart,
point macro=\pgf@plot@xcomb@handler,
end macro=\pgfplotxzerolevelstreamend,
}%
\def\pgf@plot@xcomb@handler#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\begingroup
\pgfplotxzerolevelstreamnext
\endgroup
\pgf@yb=\pgf@x
\pgfpathmoveto{\pgfqpoint{\pgf@yb}{\pgf@ya}}%
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
}%
\pgfdeclareplothandler{\pgfplothandlerycomb}{}{%
start macro=\pgfplotyzerolevelstreamstart,
point macro=\pgf@plot@ycomb@handler,
end macro=\pgfplotyzerolevelstreamend
}%
\def\pgf@plot@ycomb@handler#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\begingroup
\pgfplotyzerolevelstreamnext
\endgroup
\pgf@yb=\pgf@x
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@yb}}%
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
}%
\def\pgfplotxzerolevelstreamstart{\pgf@plotxzerolevelstreamstart}%
\def\pgfplotxzerolevelstreamend{\pgf@plotxzerolevelstreamend}%
\def\pgfplotxzerolevelstreamnext{\pgf@plotxzerolevelstreamnext}
\def\pgfplotyzerolevelstreamstart{\pgf@plotyzerolevelstreamstart}%
\def\pgfplotyzerolevelstreamend{\pgf@plotyzerolevelstreamend}%
\def\pgfplotyzerolevelstreamnext{\pgf@plotyzerolevelstreamnext}%
\def\pgfplotxzerolevelstreamconstant#1{%
\edef\pgfplotxzerolevelstreamconstant@val{#1}%
\def\pgf@plotxzerolevelstreamstart{%
\global\let\pgf@plotxzerolevelstreamend=\relax
\gdef\pgf@plotxzerolevelstreamnext{\global\pgf@x=\pgfplotxzerolevelstreamconstant@val\relax}%
}%
}%
\pgfplotxzerolevelstreamconstant{0pt}%
\def\pgfplotyzerolevelstreamconstant#1{%
\edef\pgfplotyzerolevelstreamconstant@val{#1}%
\def\pgf@plotyzerolevelstreamstart{%
\global\let\pgf@plotyzerolevelstreamend=\relax
\gdef\pgf@plotyzerolevelstreamnext{\global\pgf@x=\pgfplotyzerolevelstreamconstant@val\relax}%
}%
}%
\pgfplotyzerolevelstreamconstant{0pt}%
\def\pgfplotbarwidth{\pgfkeysvalueof{/pgf/bar width}}%
\def\pgfplotbarshift{\pgfkeysvalueof{/pgf/bar shift}}%
\pgfqkeys{/pgf}{%
bar width/.initial=10pt,
bar shift/.initial=0pt,
bar interval width/.initial=1,
bar interval shift/.initial=0.5,
at begin bar/.initial=,
at end bar/.initial=,
}%
\pgfdeclareplothandler{\pgfplothandlerybar}{}{%
start={
\pgfmathparse{\pgfplotbarwidth}%
\xdef\pgfplotbarwidth@{\pgfmathresult pt}%
\pgfmathparse{\pgfplotbarshift}%
\xdef\pgfplotbarshift@{\pgfmathresult pt}%
\pgfplotyzerolevelstreamstart
},
end macro=\pgfplotyzerolevelstreamend,
point macro=\pgf@plot@ybar@handler
}%
\def\pgf@plot@ybar@handler#1{%
\pgfkeysvalueof{/pgf/at begin bar}%
\pgf@process{#1}%
\pgf@ya=\pgf@y
\expandafter\pgf@xb\pgfplotbarwidth@\relax
\pgf@xc=\pgf@x
\advance\pgf@xc by-.5\pgf@xb
\advance\pgf@xc by\pgfplotbarshift@\relax
\begingroup
\pgfplotyzerolevelstreamnext
\endgroup
\pgf@yb=\pgf@x
\advance\pgf@ya by-\pgf@yb
\pgfpathrectangle
{\pgfqpoint{\pgf@xc}{\pgf@yb}}%
{\pgfqpoint{\pgf@xb}{\pgf@ya}}%
\pgfkeysvalueof{/pgf/at end bar}%
}%
\pgfdeclareplothandler{\pgfplothandlerxbar}{}{%
start={
\pgfmathparse{\pgfplotbarwidth}%
\xdef\pgfplotbarwidth@{\pgfmathresult pt}%
\pgfmathparse{\pgfplotbarshift}%
\xdef\pgfplotbarshift@{\pgfmathresult pt}%
\pgfplotxzerolevelstreamstart
},
end macro=\pgfplotxzerolevelstreamend,
point macro=\pgf@plot@xbar@handler
}%
\def\pgf@plot@xbar@handler#1{%
\pgfkeysvalueof{/pgf/at begin bar}%
\pgf@process{#1}%
\pgf@ya=\pgf@x
\expandafter\pgf@xb\pgfplotbarwidth@\relax
\pgf@xc=\pgf@y
\advance\pgf@xc by-.5\pgf@xb
\advance\pgf@xc by\pgfplotbarshift@\relax
\begingroup
\pgfplotxzerolevelstreamnext
\endgroup
\pgf@yb=\pgf@x
\advance\pgf@ya by-\pgf@yb
\pgfpathrectangle
{\pgfqpoint{\pgf@yb}{\pgf@xc}}%
{\pgfqpoint{\pgf@ya}{\pgf@xb}}%
\pgfkeysvalueof{/pgf/at end bar}%
}%
\pgfdeclareplothandler{\pgfplothandlerybarinterval}{}{%
start={
\pgfmathparse{\pgfkeysvalueof{/pgf/bar interval width}}%
\xdef\pgfplotbarintervalwidth@{\pgfmathresult}%
\pgfmathparse{\pgfkeysvalueof{/pgf/bar interval shift}}%
\xdef\pgfplotbarintervalshift@{\pgfmathresult}%
\pgfplotyzerolevelstreamstart
},
end macro=\pgfplotyzerolevelstreamend,
point macro=\pgf@plot@ybarinterval@handler@first
}%
\def\pgf@plot@ybarinterval@handler@first#1{%
\pgf@process{#1}%
\xdef\pgf@plot@barinterval@intervalstart{\the\pgf@x}%
\xdef\pgf@plot@barinterval@bar{\the\pgf@y}%
\global\let\pgf@plotstreampoint=\pgf@plot@ybarinterval@handler%
}%
\def\pgf@plot@ybarinterval@handler#1{%
\pgfkeysvalueof{/pgf/at begin bar}%
\pgf@process{#1}%
\pgf@ya=\pgf@plot@barinterval@bar
\xdef\pgf@plot@barinterval@bar{\the\pgf@y}%
\pgf@xc=\pgf@plot@barinterval@intervalstart\relax
\xdef\pgf@plot@barinterval@intervalstart{\the\pgf@x}%
\pgf@xb=\pgf@x
\advance\pgf@xb by-\pgf@xc
\advance\pgf@xc by\pgfplotbarintervalshift@\pgf@xb
\pgf@xb=\pgfplotbarintervalwidth@\pgf@xb
\advance\pgf@xc by-.5\pgf@xb%
\begingroup
\pgfplotyzerolevelstreamnext
\endgroup
\pgf@yb=\pgf@x
\advance\pgf@ya by-\pgf@yb
\pgfpathrectangle
{\pgfqpoint{\pgf@xc}{\pgf@yb}}%
{\pgfqpoint{\pgf@xb}{\pgf@ya}}%
\pgfkeysvalueof{/pgf/at end bar}%
}%
\pgfdeclareplothandler{\pgfplothandlerxbarinterval}{}{%
start={
\pgfmathparse{\pgfkeysvalueof{/pgf/bar interval width}}%
\xdef\pgfplotbarintervalwidth@{\pgfmathresult}%
\pgfmathparse{\pgfkeysvalueof{/pgf/bar interval shift}}%
\xdef\pgfplotbarintervalshift@{\pgfmathresult}%
\pgfplotxzerolevelstreamstart
},
end macro=\pgfplotxzerolevelstreamend,
point macro=\pgf@plot@xbarinterval@handler@first
}%
\def\pgf@plot@xbarinterval@handler@first#1{%
\pgf@process{#1}%
\xdef\pgf@plot@barinterval@intervalstart{\the\pgf@y}%
\xdef\pgf@plot@barinterval@bar{\the\pgf@x}%
\global\let\pgf@plotstreampoint=\pgf@plot@xbarinterval@handler%
}%
\def\pgf@plot@xbarinterval@handler#1{%
\pgfkeysvalueof{/pgf/at begin bar}%
\pgf@process{#1}%
\pgf@ya=\pgf@plot@barinterval@bar
\xdef\pgf@plot@barinterval@bar{\the\pgf@x}%
\pgf@xc=\pgf@plot@barinterval@intervalstart\relax
\xdef\pgf@plot@barinterval@intervalstart{\the\pgf@y}%
\pgf@xb=\pgf@y
\advance\pgf@xb by-\pgf@xc
\advance\pgf@xc by\pgfplotbarintervalshift@\pgf@xb
\pgf@xb=\pgfplotbarintervalwidth@\pgf@xb
\advance\pgf@xc by-.5\pgf@xb%
\begingroup
\pgfplotxzerolevelstreamnext
\endgroup
\pgf@yb=\pgf@x
\advance\pgf@ya by-\pgf@yb
\pgfpathrectangle
{\pgfqpoint{\pgf@yb}{\pgf@xc}}%
{\pgfqpoint{\pgf@ya}{\pgf@xb}}%
\pgfkeysvalueof{/pgf/at end bar}%
}%
\pgfdeclareplothandler{\pgfplothandlerconstantlineto}{}{%
point macro=\pgf@plot@const@line@handler
}%
\def\pgf@plot@const@line@handler#1{%
\pgf@process{#1}%
\xdef\pgf@plot@const@line@handler@last{\the\pgf@y}%
\pgf@plot@first@action{}%
\global\let\pgf@plotstreampoint=\pgf@plot@const@line@handler@@%
}%
\def\pgf@plot@const@line@handler@@#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x
\pgf@ya=\pgf@y
\pgf@yb\pgf@plot@const@line@handler@last\relax
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yb}}%
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\xdef\pgf@plot@const@line@handler@last{\the\pgf@ya}%
}%
\pgfdeclareplothandler{\pgfplothandlerconstantlinetomarkright}{}{%
point macro=\pgf@plot@const@line@mark@right@handler
}%
\def\pgf@plot@const@line@mark@right@handler#1{%
\pgf@process{#1}%
\xdef\pgf@plot@const@line@handler@last{\the\pgf@x}%
\pgf@plot@first@action{}%
\global\let\pgf@plotstreampoint=\pgf@plot@const@line@mark@right@handler@@%
}%
\def\pgf@plot@const@line@mark@right@handler@@#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x
\pgf@ya=\pgf@y
\pgf@yb\pgf@plot@const@line@handler@last\relax
\pgfpathlineto{\pgfqpoint{\pgf@yb}{\pgf@ya}}%
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\xdef\pgf@plot@const@line@handler@last{\the\pgf@xa}%
}%
\pgfdeclareplothandler{\pgfplothandlerconstantlinetomarkmid}{}{%
point macro=\pgf@plot@const@line@mark@mid@handler
}%
\def\pgf@plot@const@line@mark@mid@handler#1{%
\pgf@process{#1}%
\xdef\pgf@plot@const@line@handler@last{\global\pgf@x=\the\pgf@x\space\global\pgf@y=\the\pgf@y\space}%
\pgf@plot@first@action{}%
\global\let\pgf@plotstreampoint=\pgf@plot@const@line@mark@mid@handler@@%
}%
\def\pgf@plot@const@line@mark@mid@handler@@#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x
\pgf@ya=\pgf@y
\pgf@plot@const@line@handler@last
\pgf@xc=.5\pgf@xa
\advance\pgf@xc by.5\pgf@x
\pgfpathlineto{\pgfqpoint{\pgf@xc}{\pgf@y}}%
\pgfpathlineto{\pgfqpoint{\pgf@xc}{\pgf@ya}}%
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\xdef\pgf@plot@const@line@handler@last{\global\pgf@x=\the\pgf@x\space\global\pgf@y=\the\pgf@y\space}%
}%
\pgfdeclareplothandler{\pgfplothandlerjumpmarkright}{}{%
point macro=\pgf@plot@jumpmarkright@handler
}%
\def\pgf@plot@jumpmarkright@handler#1{%
\pgf@process{#1}%
\xdef\pgf@plot@const@line@handler@last{\the\pgf@x}%
\pgf@plot@first@action{}%
\global\let\pgf@plotstreampoint=\pgf@plot@jumpmarkright@handler@@%
}%
\def\pgf@plot@jumpmarkright@handler@@#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x
\pgf@ya=\pgf@y
\pgf@yb\pgf@plot@const@line@handler@last\relax
\pgfpathmoveto{\pgfqpoint{\pgf@yb}{\pgf@ya}}%
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\xdef\pgf@plot@const@line@handler@last{\the\pgf@xa}%
}%
\pgfdeclareplothandler{\pgfplothandlerjumpmarkleft}{}{%
point macro=\pgf@plot@jumpmarkleft@handler
}%
\def\pgf@plot@jumpmarkleft@handler#1{%
\pgf@process{#1}%
\xdef\pgf@plot@const@line@handler@last{\the\pgf@y}%
\pgf@plot@first@action{}%
\global\let\pgf@plotstreampoint=\pgf@plot@jumpmarkleft@handler@@%
}%
\def\pgf@plot@jumpmarkleft@handler@@#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x
\pgf@ya=\pgf@y
\pgf@yb\pgf@plot@const@line@handler@last\relax
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yb}}%
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\xdef\pgf@plot@const@line@handler@last{\the\pgf@ya}%
}%
\pgfdeclareplothandler{\pgfplothandlerjumpmarkmid}{}{%
point macro=\pgf@plot@jump@mark@mid@handler
}%
\def\pgf@plot@jump@mark@mid@handler#1{%
\pgf@process{#1}%
\xdef\pgf@plot@const@line@handler@last{\global\pgf@x=\the\pgf@x\space\global\pgf@y=\the\pgf@y\space}%
\pgf@plot@first@action{}%
\global\let\pgf@plotstreampoint=\pgf@plot@jump@mark@mid@handler@@%
}%
\def\pgf@plot@jump@mark@mid@handler@@#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x
\pgf@ya=\pgf@y
\pgf@plot@const@line@handler@last
\pgf@xc=.5\pgf@xa
\advance\pgf@xc by.5\pgf@x
\pgfpathlineto{\pgfqpoint{\pgf@xc}{\pgf@y}}%
\pgfpathmoveto{\pgfqpoint{\pgf@xc}{\pgf@ya}}%
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\xdef\pgf@plot@const@line@handler@last{\global\pgf@x=\the\pgf@x\space\global\pgf@y=\the\pgf@y\space}%
}%
\pgfdeclareplothandler{\pgfplothandlerpolarcomb}{}{%
point macro=\pgf@plot@polarcomb@handler
}%
\def\pgf@plot@polarcomb@handler#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgfpathmoveto{\pgfpointorigin}%
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
}%
\pgfdeclareplothandler{\pgfplothandlermark}{#1}{%
start={
\def\pgf@plot@mark{%
\ifnum\pgf@plot@mark@count<\pgf@plot@mark@repeat\relax%
\else%
\global\pgf@plot@mark@count=0\relax%
#1%
\fi%
}%
\global\pgf@plot@mark@count=\pgf@plot@mark@repeat\relax%
\global\advance\pgf@plot@mark@count by-\pgf@plot@mark@phase\relax%
},
point macro=\pgf@plot@mark@handler
}%
\newcount\pgf@plot@mark@count
\def\pgf@plot@mark@phase{0}%
\def\pgf@plot@mark@handler#1{%
\global\advance\pgf@plot@mark@count by1\relax%
{\pgftransformshift{#1}\pgf@plot@mark}%
}%
\def\pgfsetplotmarkrepeat#1{\def\pgf@plot@mark@repeat{#1}}%
\pgfsetplotmarkrepeat{1}%
\def\pgfsetplotmarkphase#1{\def\pgf@plot@mark@phase{#1}}%
\pgfsetplotmarkphase{1}%
\pgfdeclareplothandler{\pgfplothandlermarklisted}{#1#2}{%
start={
\let\pgf@plot@mark@list=\pgfutil@empty%
\edef\pgf@marshal{\noexpand\foreach\noexpand\pgf@temp in{#2}}
\pgf@marshal{\xdef\pgf@plot@mark@list{\pgf@plot@mark@list(\pgf@temp)}}%
\def\pgf@plot@mark{%
\edef\pgf@marshal{\noexpand\pgfutil@in@{(\the\pgf@plot@mark@count)}{\pgf@plot@mark@list}}%
\pgf@marshal%
\ifpgfutil@in@#1\fi%
}%
\global\pgf@plot@mark@count=\pgf@plot@mark@repeat\relax%
\global\advance\pgf@plot@mark@count by-\pgf@plot@mark@phase\relax%
},
point macro=\pgf@plot@mark@handler
}%
\def\pgfdeclareplotmark#1#2{\expandafter\def\csname pgf@plot@mark@#1\endcsname{#2}}%
\def\pgfsetplotmarksize#1{\pgfmathsetlength\pgfplotmarksize{#1}}%
\newdimen\pgfplotmarksize
\pgfplotmarksize=2pt
\def\pgfuseplotmark#1{\csname pgf@plot@mark@#1\endcsname}%
\pgfdeclareplotmark{*}
{%
\pgfpathellipse{\pgfpointorigin}{\pgfqpoint{\pgfplotmarksize}{0sp}}{\pgfqpoint{0sp}{\pgfplotmarksize}}%
\pgfusepathqfillstroke
}%
\pgfdeclareplotmark{+}
{%
\pgfpathmoveto{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{x}
{%
\pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}}%
\pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}}%
\pgfusepathqstroke
}%
\pgfkeys{/pgf/gap around stream point/.initial=1.5pt}%
\pgfdeclareplothandler{\pgfplothandlergaplineto}{}{%
point macro=\pgf@plot@gap@lineto@handler@initial,
jump macro=\pgf@plot@gap@next@moveto
}%
\def\pgf@plot@gap@next@moveto{%
\global\let\pgf@plotstreampoint=\pgf@plot@gap@lineto@handler@initial%
}%
\def\pgf@plot@gap@lineto@handler@initial#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\xdef\pgf@plot@gap@lineto@last{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
\global\let\pgf@plotstreampoint=\pgf@plot@gap@lineto@handler%
}%
\def\pgf@plot@gap@lineto@handler#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\xdef\pgf@plot@gap@lineto@next{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
\pgf@process{\pgfpointnormalised{\pgfpointdiff{\pgf@plot@gap@lineto@last}{\pgf@plot@gap@lineto@next}}}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfpathmoveto{\pgfpointadd{\pgfpointscale{\pgfkeysvalueof{/pgf/gap
around stream point}}{\pgfqpoint{\pgf@xc}{\pgf@yc}}}{\pgf@plot@gap@lineto@last}}%
\pgfpathlineto{\pgfpointadd{\pgfpointscale{\pgfkeysvalueof{/pgf/gap
around stream point}}{\pgfqpoint{-\pgf@xc}{-\pgf@yc}}}{\pgf@plot@gap@lineto@next}}%
\global\let\pgf@plot@gap@lineto@last=\pgf@plot@gap@lineto@next%
}%
\pgfdeclareplothandler{\pgfplothandlergapcycle}{}{%
point macro=\pgf@plot@gap@cycle@handler@initial,
jump macro=\pgf@plot@gapcycle@next@moveto,
end macro=\pgf@plot@gap@cycle@handler@finish,
start={\global\let\pgf@plot@gap@cycle@first\relax}
}%
\def\pgf@plot@gapcycle@next@moveto{%
\pgf@plot@gap@cycle@handler@finish%
\global\let\pgf@plot@gap@cycle@first=\relax%
\global\let\pgf@plotstreampoint=\pgf@plot@gap@cycle@handler@initial%
}%
\def\pgf@plot@gap@cycle@handler@initial#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\xdef\pgf@plot@gap@cycle@last{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
\global\let\pgf@plot@gap@cycle@first=\pgf@plot@gap@cycle@last%
\global\let\pgf@plotstreampoint=\pgf@plot@gap@cycle@handler%
}%
\def\pgf@plot@gap@cycle@handler#1{%
\pgf@process{#1}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\xdef\pgf@plot@gap@cycle@next{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
\pgf@process{\pgfpointnormalised{\pgfpointdiff{\pgf@plot@gap@cycle@last}{\pgf@plot@gap@cycle@next}}}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfpathmoveto{\pgfpointadd{\pgfpointscale{\pgfkeysvalueof{/pgf/gap
around stream point}}{\pgfqpoint{\pgf@xc}{\pgf@yc}}}{\pgf@plot@gap@cycle@last}}%
\pgfpathlineto{\pgfpointadd{\pgfpointscale{\pgfkeysvalueof{/pgf/gap
around stream point}}{\pgfqpoint{-\pgf@xc}{-\pgf@yc}}}{\pgf@plot@gap@cycle@next}}%
\global\let\pgf@plot@gap@cycle@last=\pgf@plot@gap@cycle@next%
}%
\def\pgf@plot@gap@cycle@handler@finish{%
\ifx\pgf@plot@gap@cycle@first\relax%
\else
\pgf@plot@gap@cycle@handler{\pgf@plot@gap@cycle@first}%
\fi
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex ====
\ProvidesFileRCS{pgflibraryplotmarks.code.tex}
\pgfdeclareplotmark{o}
{%
\pgfpathellipse{\pgfpointorigin}{\pgfqpoint{\pgfplotmarksize}{0sp}}{\pgfqpoint{0sp}{\pgfplotmarksize}}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{Mercedes star}
{%
\pgfpathmoveto{\pgfqpointpolar{90}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfpointorigin}%
\pgfpathmoveto{\pgfqpointpolar{-30}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfpointorigin}%
\pgfpathmoveto{\pgfqpointpolar{-150}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfpointorigin}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{Mercedes star flipped}
{%
\pgfpathmoveto{\pgfqpointpolar{-90}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfpointorigin}%
\pgfpathmoveto{\pgfqpointpolar{30}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfpointorigin}%
\pgfpathmoveto{\pgfqpointpolar{150}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfpointorigin}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{asterisk}
{%
\pgfpathmoveto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathmoveto{\pgfqpointpolar{30}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{210}{\pgfplotmarksize}}%
\pgfpathmoveto{\pgfqpointpolar{-30}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{-210}{\pgfplotmarksize}}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{star}
{%
\pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfqpointpolar{18}{\pgfplotmarksize}}%
\pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfqpointpolar{-54}{\pgfplotmarksize}}%
\pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfqpointpolar{234}{\pgfplotmarksize}}%
\pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfqpointpolar{162}{\pgfplotmarksize}}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{10-pointed star}
{%
\pgfpathmoveto{\pgfqpoint{0pt}{-\pgfplotmarksize}}\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathmoveto{\pgfqpointpolar{18}{-\pgfplotmarksize}}\pgfpathlineto{\pgfqpointpolar{18}{\pgfplotmarksize}}%
\pgfpathmoveto{\pgfqpointpolar{-54}{-\pgfplotmarksize}}\pgfpathlineto{\pgfqpointpolar{-54}{\pgfplotmarksize}}%
\pgfpathmoveto{\pgfqpointpolar{234}{-\pgfplotmarksize}}\pgfpathlineto{\pgfqpointpolar{234}{\pgfplotmarksize}}%
\pgfpathmoveto{\pgfqpointpolar{162}{-\pgfplotmarksize}}\pgfpathlineto{\pgfqpointpolar{162}{\pgfplotmarksize}}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{oplus}
{%
\pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize}%
\pgfpathmoveto{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{oplus*}
{%
\pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize}%
\pgfpathmoveto{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfusepathqfillstroke
}%
\pgfdeclareplotmark{otimes}
{%
\pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize}%
\pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}}%
\pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{otimes*}
{%
\pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize}%
\pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}}%
\pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}}%
\pgfusepathqfillstroke
}%
\pgfdeclareplotmark{|}
{%
\pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{-}
{%
\pgfpathmoveto{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{square}
{%
\pgfpathrectangle{\pgfqpoint{-\pgfplotmarksize}{-\pgfplotmarksize}}{\pgfqpoint{2\pgfplotmarksize}{2\pgfplotmarksize}}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{square*}
{%
\pgfpathrectangle{\pgfqpoint{-\pgfplotmarksize}{-\pgfplotmarksize}}{\pgfqpoint{2\pgfplotmarksize}{2\pgfplotmarksize}}%
\pgfusepathqfillstroke
}%
\pgfdeclareplotmark{triangle}
{%
\pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{-30}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{-150}{\pgfplotmarksize}}%
\pgfpathclose
\pgfusepathqstroke
}%
\pgfdeclareplotmark{triangle*}
{%
\pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{-30}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{-150}{\pgfplotmarksize}}%
\pgfpathclose
\pgfusepathqfillstroke
}%
\pgfdeclareplotmark{diamond}
{%
\pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{.75\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{-.75\pgfplotmarksize}{0pt}}%
\pgfpathclose
\pgfusepathqstroke
}%
\pgfdeclareplotmark{diamond*}
{%
\pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{.75\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{-.75\pgfplotmarksize}{0pt}}%
\pgfpathclose
\pgfusepathqfillstroke
}%
\pgfdeclareplotmark{pentagon}
{%
\pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{18}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{-54}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{234}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{162}{\pgfplotmarksize}}%
\pgfpathclose
\pgfusepathqstroke
}%
\pgfdeclareplotmark{pentagon*}
{%
\pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{18}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{-54}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{234}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpointpolar{162}{\pgfplotmarksize}}%
\pgfpathclose
\pgfusepathqfillstroke
}%
\newif\ifpgfmarktext@usetikznode
\pgfkeys{
/pgf/text mark/.initial=p,
/pgf/text mark style/.initial=,
/pgf/text mark as node/.is if=pgfmarktext@usetikznode,
/pgf/text mark as node/.default=true,
/pgf/text mark/style/.style={/pgf/text mark style={#1}},%
/pgf/text mark/as node/.style={/pgf/text mark as node={#1}},%
}%
\pgfdeclareplotmark{text}
{
\pgfkeysgetvalue{/pgf/text mark style}\pgfmarktext@style
\pgfkeysgetvalue{/pgf/text mark}\pgfmarktext@
\ifpgfmarktext@usetikznode
\expandafter\node\expandafter[\pgfmarktext@style]{\pgfmarktext@};
\else
\expandafter\pgftext\expandafter[\pgfmarktext@style]{\pgfmarktext@}%
\fi
}%
\pgfkeysdef{/pgf/mark color}{\def\pgf@mark@color{#1}}%
\let\pgf@mark@color\pgfutil@empty
\def\pgf@set@mark@color{%
\ifx\pgf@mark@color\pgfutil@empty
\pgfsys@color@rgb@fill{1}{1}{1}%
\else
\pgfsetfillcolor{\pgf@mark@color}%
\fi
}%
\def\pgf@mark@color@none{none}%
\pgfdeclareplotmark{halfcircle}{%
\ifx\pgf@mark@color@none\pgf@mark@color
\else
\pgfscope
\pgf@set@mark@color
\pgfpathmoveto
{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpatharc{180}{360}{\pgfplotmarksize}%
\pgfusepathqfill
\endpgfscope%
\fi
\pgfpathmoveto
{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpathlineto
{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpathcircle{\pgfpointorigin}%
{\pgfplotmarksize}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{halfcircle*}{%
\pgfpathmoveto
{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpatharc{0}{180}{\pgfplotmarksize}%
\pgfpathclose
\pgfusepathqfill
\ifx\pgf@mark@color@none\pgf@mark@color
\else
\pgfscope
\pgf@set@mark@color
\pgfpathmoveto
{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpatharc{180}{360}{\pgfplotmarksize}%
\pgfusepathqfill
\endpgfscope%
\fi
\pgfpathcircle{\pgfpointorigin}%
{\pgfplotmarksize}%
\pgfusepathqstroke
}%
\pgfdeclareplotmark{halfdiamond*}{%
\pgfpathmoveto{\pgfqpoint{-.75\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{.75\pgfplotmarksize}{0pt}}%
\pgfusepathqfill
\ifx\pgf@mark@color@none\pgf@mark@color
\else
\pgfscope
\pgf@set@mark@color
\pgfpathmoveto{\pgfqpoint{.75\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{-.75\pgfplotmarksize}{0pt}}%
\pgfusepathqfill
\endpgfscope
\fi
\pgfpathmoveto{\pgfqpoint{.75\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{-.75\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathclose
\pgfusepathqstroke
}%
\pgfdeclareplotmark{halfsquare*}{%
\pgfpathmoveto{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfusepathqfill
\ifx\pgf@mark@color@none\pgf@mark@color
\else
\pgfscope
\pgf@set@mark@color
\pgfpathmoveto{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfusepathqfill
\endpgfscope
\fi
\pgfpathmoveto{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathclose
\pgfusepathqstroke
}%
\pgfdeclareplotmark{halfsquare right*}{%
\pgfpathmoveto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfusepathqfill
\ifx\pgf@mark@color@none\pgf@mark@color
\else
\pgfscope
\pgf@set@mark@color
\pgfpathmoveto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfusepathqfill
\endpgfscope
\fi
\pgfpathmoveto{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathclose
\pgfusepathqstroke
}%
\pgfdeclareplotmark{halfsquare left*}{%
\pgfpathmoveto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfusepathqfill
\ifx\pgf@mark@color@none\pgf@mark@color
\else
\pgfscope
\pgf@set@mark@color
\pgfpathmoveto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfusepathqfill
\endpgfscope
\fi
\pgfpathmoveto{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}}%
\pgfpathlineto{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}}%
\pgfpathclose
\pgfusepathqstroke
}%
\pgfdeclareplotmark{heart}{%
\pgfpathmoveto{\pgfqpoint{0pt}{-1.75\pgfplotmarksize}}%
\pgfpathcurveto{\pgfqpoint{0pt}{-1.75\pgfplotmarksize}}{\pgfqpoint{0pt}{-1.66\pgfplotmarksize}}{\pgfqpoint{-.5\pgfplotmarksize}{-1.165\pgfplotmarksize}}%
\pgfpathcurveto{\pgfqpoint{-.5\pgfplotmarksize}{-1.165\pgfplotmarksize}}{\pgfqpoint{-\pgfplotmarksize}{-.75\pgfplotmarksize}}{\pgfqpoint{-\pgfplotmarksize}{0pt}}%
\pgfpathcurveto{\pgfqpoint{-\pgfplotmarksize}{0pt}}{\pgfqpoint{-\pgfplotmarksize}{.5825\pgfplotmarksize}}{\pgfqpoint{-.5825\pgfplotmarksize}{.5825\pgfplotmarksize}}%
\pgfpathcurveto{\pgfqpoint{-.5825\pgfplotmarksize}{.5825\pgfplotmarksize}}{\pgfqpoint{0pt}{.5825\pgfplotmarksize}}{\pgfqpoint{0pt}{0pt}}%
\pgfpathcurveto{\pgfqpoint{0pt}{0pt}}{\pgfqpoint{0pt}{.5825\pgfplotmarksize}}{\pgfqpoint{.5825\pgfplotmarksize}{.5825\pgfplotmarksize}}%
\pgfpathcurveto{\pgfqpoint{.5825\pgfplotmarksize}{.5825\pgfplotmarksize}}{\pgfqpoint{\pgfplotmarksize}{.5825\pgfplotmarksize}}{\pgfqpoint{\pgfplotmarksize}{0pt}}%
\pgfpathcurveto{\pgfqpoint{\pgfplotmarksize}{0pt}}{\pgfqpoint{\pgfplotmarksize}{-.75\pgfplotmarksize}}{\pgfqpoint{.5\pgfplotmarksize}{-1.165\pgfplotmarksize}}%
\pgfpathcurveto{\pgfqpoint{.5\pgfplotmarksize}{-1.165\pgfplotmarksize}}{\pgfqpoint{0pt}{-1.66\pgfplotmarksize}}{\pgfqpoint{0pt}{-1.75\pgfplotmarksize}}%
\pgfpathclose
\pgfusepathqfillstroke
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryprofiler.code.tex ====
\pgfutil@ifundefined{pdfelapsedtime}{%
\pgfutil@ifluatex
\def\pgfutil@pdfelapsedtime{%
\numexpr\pgfutil@directlua{%
tex.print(math.floor((os.clock())*65536+0.5))}\relax}
\else
\pgferror{%
Library 'profiler' can only be used with pdftex Rev. >= 1.671
because it needs the \string\pdfelapsedtime\space command or
with luatex}%
\global\let\pgfutil@pdfelapsedtime=\c@pgf@counta
\fi}{%
\let\pgfutil@pdfelapsedtime\pdfelapsedtime}%
\def\pgfprofilenew#1{%
\pgfutil@ifundefined{c@pgfprofile@elapsedtotal@#1}{%
\expandafter\gdef\csname c@pgfprofile@elapsedtotal@#1\endcsname{0}%
\expandafter\gdef\csname c@pgfprofile@elapsedself@#1\endcsname{0}%
\expandafter\gdef\csname c@pgfprofile@numinvocations@#1\endcsname{0}%
\expandafter\gdef\csname c@pgfprofile@subtractforself@#1\endcsname{0}%
\expandafter\gdef\csname c@pgfprofile@semaphor@#1\endcsname{0}%
\expandafter\gdef\csname c@pgfprofile@elapsed@at@start@#1\endcsname{0}%
\pgfprofile@all@registered@list@add{#1}%
}{%
}%
}%
\def\pgfprofile@TeX@DIALECT@toenvironment@begin#1{\csname #1\endcsname}%
\def\pgfprofile@TeX@DIALECT@toenvironment@end#1{\csname end#1\endcsname}%
\def\pgfprofile@@to@pgfretval#1{%
\expandafter\let\expandafter\pgfretval#1%
}%
\def\pgfprofilenewforenvironment{\pgfutil@ifnextchar[{\pgfprofilenewforenvironment@}{\pgfprofilenewforenvironment@[]}}%
\def\pgfprofilenewforenvironment@[#1]#2{%
\expandafter\pgfprofile@@to@pgfretval\pgfprofile@TeX@DIALECT@toenvironment@begin{#2}%
\ifx\pgfretval\relax
\pgferror{\string\pgfprofilenewforenvironment{#2} doesn't work: the environment `#2' is (not yet?) known or not known in this context}{}%
\else
\expandafter\global\expandafter\let\csname pgfprofile@orig@begin@#2\endcsname=\pgfretval
\expandafter\pgfprofile@@to@pgfretval\pgfprofile@TeX@DIALECT@toenvironment@end{#2}%
\expandafter\global\expandafter\let\csname pgfprofile@orig@end@#2\endcsname=\pgfretval
\def\pgfprofile@temp{#1}%
\ifx\pgfprofile@temp\pgfutil@empty
\pgfprofilenewforenvironment@@{\pgfprofileenv #2}{#2}%
\else
\pgfprofilenewforenvironment@@{#1}{#2}%
\fi
\fi
}%
\def\pgfprofilenewforenvironment@@#1#2{%
\pgfprofilenew{#1}%
\expandafter\expandafter\expandafter\gdef\pgfprofile@TeX@DIALECT@toenvironment@begin{#2}{%
\pgfprofilestart{#1}%
\csname pgfprofile@orig@begin@#2\endcsname
}%
\expandafter\expandafter\expandafter\gdef\pgfprofile@TeX@DIALECT@toenvironment@end{#2}{%
\csname pgfprofile@orig@end@#2\endcsname
\pgfprofileend{#1}%
}%
}%
\def\pgfprofilecs{}%
\def\pgfprofileenv{}%
\def\pgfprofilenewforcommand{\pgfutil@ifnextchar[{\pgfprofilenewforcommand@}{\pgfprofilenewforcommand@[]}}%
\def\pgfprofilenewforcommand@[#1]#2#3{%
\def\pgfprofile@temp{#3}%
\ifx\pgfprofile@temp\pgfutil@empty
\pgfprofilenewforcommandpattern[#1]{#2}{}{}%
\else
\ifcase#3\relax
\pgfprofilenewforcommandpattern[#1]{#2}{}{}%
\or
\pgfprofilenewforcommandpattern[#1]{#2}{##1}{{##1}}%
\or
\pgfprofilenewforcommandpattern[#1]{#2}{##1##2}{{##1}{##2}}%
\or
\pgfprofilenewforcommandpattern[#1]{#2}{##1##2##3}{{##1}{##2}{##3}}%
\or
\pgfprofilenewforcommandpattern[#1]{#2}{##1##2##3##4}{{##1}{##2}{##3}{##4}}%
\or
\pgfprofilenewforcommandpattern[#1]{#2}{##1##2##3##4##5}{{##1}{##2}{##3}{##4}{##5}}%
\or
\pgfprofilenewforcommandpattern[#1]{#2}{##1##2##3##4##5##6}{{##1}{##2}{##3}{##4}{##5}{##6}}%
\or
\pgfprofilenewforcommandpattern[#1]{#2}{##1##2##3##4##5##6##7}{{##1}{##2}{##3}{##4}{##5}{##6}{##7}}%
\else
\pgferror{library 'profiler' can't replace control sequences with '#3' arguments automatically, sorry.}{}%
\fi
\fi
}%
\def\pgfprofilenewforcommandpattern{\pgfutil@ifnextchar[{\pgfprofilenewforcommandpattern@}{\pgfprofilenewforcommandpattern@[]}}%
\def\pgfprofilenewforcommandpattern@[#1]#2#3#4{%
\def\pgfprofile@known{1}%
\ifx#2\undefined
\def\pgfprofile@known{0}%
\else
\ifx#2\relax
\def\pgfprofile@known{0}%
\fi
\fi
\if\pgfprofile@known0%
\pgferror{\string\pgfprofilenewforcommandpattern{\string#2} doesn't work: the command `\string#2' is (not yet?) known or not known in this context}%
\else
\begingroup
\pgfprofile@cs@to@name{#2}%
\let\pgfprofilenew@cmdname=\pgfretval
\def\pgfprofile@temp{#1}%
\ifx\pgfprofile@temp\pgfutil@empty
\edef\pgfprofilenew@profilerentryname{\pgfprofilecs\pgfprofilenew@cmdname}%
\else
\edef\pgfprofilenew@profilerentryname{#1}%
\fi
\expandafter\global\expandafter\let\csname pgfprofile@name@for@\pgfprofilenew@cmdname\endcsname=\pgfprofilenew@profilerentryname
\pgfprofilenew{\pgfprofilenew@profilerentryname}%
\expandafter\gdef\csname b@pgfprofile@show@\pgfprofilenew@profilerentryname\endcsname{0}%
\expandafter\global\expandafter\let\csname pgfprofile@orig@\pgfprofilenew@cmdname\endcsname=#2%
\toks0={#3}%
\edef\pgfprofile@temp{\the\toks0}%
\def\pgfprofile@tempb{}%
\ifx\pgfprofile@temp\pgfprofile@tempb
\expandafter\global\expandafter\let\csname pgfprofile@repl@\pgfprofilenew@cmdname\endcsname=\pgfprofileinvokecommand@uptoonearg
\else
\expandafter\gdef\csname pgfprofile@repl@\pgfprofilenew@cmdname\endcsname#3{%
\pgfprofile@invokeorig{#4}%
}%
\fi
\xdef#2{\noexpand\pgfprofileinvokecommand{\pgfprofilenew@cmdname}}%
\endgroup
\fi
}%
\def\pgfprofileshowinvocationsfor#1{%
\pgfutil@ifundefined{b@pgfprofile@show@#1}{%
\pgferror{\string\pgfprofileshowinvocationsfor{#1} doesn't work: the argument is no profiler entry}%
}{%
\expandafter\gdef\csname b@pgfprofile@show@#1\endcsname{1}%
\expandafter\gdef\csname b@pgfprofile@show@edef@#1\endcsname{0}%
}%
}%
\def\pgfprofileshowinvocationsexpandedfor#1{%
\pgfutil@ifundefined{b@pgfprofile@show@#1}{%
\pgferror{\string\pgfprofileshowinvocationsfor{#1} doesn't work: the argument is no profiler entry}%
}{%
\expandafter\gdef\csname b@pgfprofile@show@#1\endcsname{1}%
\expandafter\gdef\csname b@pgfprofile@show@edef@#1\endcsname{1}%
}%
}%
\def\pgfprofile@no@optional@arg@text{}%
\def\pgfprofileinvokecommand#1{%
\pgfutil@ifnextchar[{\pgfprofileinvokecommand@{#1}}{\pgfprofileinvokecommand@{#1}[]}%
}%
\def\pgfprofileinvokecommand@#1[#2]{%
\def\pgfprofileinvokecommand@cs{#1}%
\def\pgfprofileinvokecommand@optarg{#2}%
\edef\pgfprofileinvokecommand@profilerentryname{\csname pgfprofile@name@for@#1\endcsname}%
\csname pgfprofile@repl@#1\endcsname%
}%
\def\pgfprofile@invokeorig#1{%
\begingroup
\toks1=\expandafter{\pgfprofileinvokecommand@optarg}%
\toks2={#1}%
\toks3=\expandafter{\csname pgfprofile@orig@\pgfprofileinvokecommand@cs\endcsname}%
\ifx\pgfprofileinvokecommand@optarg\pgfprofile@no@optional@arg@text
\xdef\pgfprofile@invokeorig@doitfinally{\the\toks3 \the\toks2 }%
\else
\xdef\pgfprofile@invokeorig@doitfinally{\the\toks3[\the\toks1]\the\toks2 }%
\fi
\if1\csname b@pgfprofile@show@\pgfprofileinvokecommand@profilerentryname\endcsname
\pgfprofile@orig@show
\fi
\endgroup
\edef\pgfprofile@temp{{\pgfprofileinvokecommand@cs}{\pgfprofileinvokecommand@profilerentryname}}%
\expandafter\pgfprofile@invokeorig@\pgfprofile@temp%
}%
\def\pgfprofile@orig@show{%
\toks4=\expandafter{\csname\pgfprofileinvokecommand@cs\endcsname}%
\ifx\pgfprofileinvokecommand@optarg\pgfprofile@no@optional@arg@text
\def\pgfprofile@orig@show@args{\the\toks2 }%
\else
\def\pgfprofile@orig@show@args{[\the\toks1] \the\toks2 }%
\fi
\if1\csname b@pgfprofile@show@edef@\pgfprofileinvokecommand@profilerentryname\endcsname
\edef\pgfprofile@orig@show@args{\pgfprofile@orig@show@args}%
\edef\pgfprofile@orig@show@args{\pgfprofile@orig@show@args}%
\fi
\pgf@typeout{pgflibraryprofiler: calling
\#\csname c@pgfprofile@numinvocations@\pgfprofileinvokecommand@profilerentryname\endcsname\space
(\the\toks4 \pgfprofile@orig@show@args)}%
}%
\def\pgfprofile@invokeorig@#1#2{%
\pgfprofileifisrunning{#2}{%
\pgfprofile@invokeorig@doitfinally%
}{%
\pgfprofilestart{#2}%
\pgfprofile@invokeorig@doitfinally%
\pgfprofileend{#2}%
}%
}%
\def\pgfprofileinvokecommand@uptoonearg{%
\pgfutil@ifnextchar\bgroup{\pgfprofileinvokecommand@onearg}{\pgfprofileinvokecommand@noarg}%
}%
\def\pgfprofileinvokecommand@onearg#1{%
\pgfprofile@invokeorig{{#1}}%
}%
\def\pgfprofileinvokecommand@noarg{%
\pgfprofile@invokeorig{}%
}%
\def\pgfprofilestart#1{%
\pgfprofileifisrunning{#1}{%
\relax
}{%
\expandafter\xdef\csname c@pgfprofile@elapsed@at@start@#1\endcsname{\the\pgfutil@pdfelapsedtime}%
\expandafter\gdef\csname c@pgfprofile@subtractforself@#1\endcsname{0}%
\pgfprofile@advance{c@pgfprofile@numinvocations@#1}{1}%
\pgfprofilestackpush{#1}%
}%
\pgfprofile@advance{c@pgfprofile@semaphor@#1}{1}%
}%
\def\pgfprofileend#1{%
\pgfprofile@advance{c@pgfprofile@semaphor@#1}{-1}%
\pgfprofileifisrunning{#1}{%
\relax
}{%
\begingroup
\c@pgf@countb=\pgfutil@pdfelapsedtime\relax
\advance\c@pgf@countb by-\csname c@pgfprofile@elapsed@at@start@#1\endcsname\relax
\pgfprofilestackpop\pgfretval
\edef\pgfprofile@temp{#1}%
\ifx\pgfprofile@temp\pgfretval
\else
\pgf@typeout{pgflibraryprofiler WARNING: possible error in self time computation...}%
\fi
\pgfprofilestackifempty{%
\relax
}{%
\pgfprofilestacktop\pgfretval
\pgfprofile@advance{c@pgfprofile@subtractforself@\pgfretval}{\c@pgf@countb}%
}%
\pgfprofile@advance{c@pgfprofile@elapsedtotal@#1}{\c@pgf@countb}%
\advance\c@pgf@countb by-\csname c@pgfprofile@subtractforself@#1\endcsname\relax
\pgfprofile@advance{c@pgfprofile@elapsedself@#1}{\c@pgf@countb}%
\endgroup
}%
}%
\def\pgfprofileifisrunning#1#2#3{%
\ifnum\csname c@pgfprofile@semaphor@#1\endcsname=0 \def\pgfprofileifisrunning@next{#3}\else \def\pgfprofileifisrunning@next{#2}\fi
\pgfprofileifisrunning@next
}%
\def\pgfprofilesetrel#1{\edef\pgfprofile@rel{#1}}%
\def\pgfprofilepostprocess{%
\begingroup
\c@pgf@countb=\time
\divide\c@pgf@countb by60
\c@pgf@countd=\c@pgf@countb
\multiply\c@pgf@countd by60
\c@pgf@countc=\time
\advance\c@pgf@countc by-\c@pgf@countd
\immediate\openout\w@pgf@writea=\jobname.profiler.\the\year-\pgfprofiletotwodigitstr\month-\pgfprofiletotwodigitstr\day_\pgfprofiletotwodigitstr\c@pgf@countb h_\pgfprofiletotwodigitstr\c@pgf@countc m.dat
\immediate\write\w@pgf@writea{%
\pgfprofile@percent relative values are measured against the totaltime of `\pgfprofile@rel'.%
}%
\pgf@typeout{pgflibraryprofiler: relative values are measured against the totaltime of `\pgfprofile@rel'.}%
\immediate\write\w@pgf@writea{%
profilerentry\pgfprofile@TAB
totaltime[s]\pgfprofile@TAB
totaltime[percent]\pgfprofile@TAB
selftime[s]\pgfprofile@TAB
selftime[percent]\pgfprofile@TAB
numinvocations\pgfprofile@TAB}%
\pgfprofileifisrunning{\pgfprofile@rel}{%
\pgfprofileend{\pgfprofile@rel}%
}{}%
\pgf@xa=\csname c@pgfprofile@elapsedtotal@\pgfprofile@rel\endcsname sp
\edef\pgfprofiletotaltime{\pgf@sys@tonumber\pgf@xa}%
\pgfmathreciprocal@{\pgfprofiletotaltime}%
\let\pgfprofiletotaltime@inv=\pgfmathresult
\pgfprofile@all@registered@list@foreach{%
\pgfprofileifisrunning{##1}{%
\pgfprofileend{##1}%
}{}%
\pgfprofilepostprocess@single{##1}%
}%
\immediate\write\w@pgf@writea{%
\pgfprofile@percent\space vim: ts=40 nowrap nostartofline
}%
\immediate\closeout\w@pgf@writea
\endgroup
}%
{%
\catcode`\[=1 %
\catcode`\]=2 %
\catcode`\{=12 %
\catcode`\}=12 %
\catcode`\^^I=12
\gdef\pgfprofile@lbrace[{]%
\gdef\pgfprofile@rbrace[}]%
\gdef\pgfprofile@TAB[^^I]%
]
{
\catcode`\%=12 \gdef\pgfprofile@percent{%}}
\def\pgfprofilepostprocess@single#1{%
\begingroup
\pgf@xa=\csname c@pgfprofile@elapsedtotal@#1\endcsname sp
\pgf@xb=\csname c@pgfprofile@elapsedself@#1\endcsname sp
\pgf@ya=\pgfprofiletotaltime@inv\pgf@xa
\pgf@yb=\pgfprofiletotaltime@inv\pgf@xb
\multiply\pgf@ya by100
\multiply\pgf@yb by100
\edef\pgfprofilecur@total{\pgf@sys@tonumber\pgf@xa}%
\edef\pgfprofilecur@self{\pgf@sys@tonumber\pgf@xb}%
\edef\pgfprofilecur@total@rel{\pgf@sys@tonumber\pgf@ya}%
\edef\pgfprofilecur@self@rel{\pgf@sys@tonumber\pgf@yb}%
\pgf@typeout{
pgflibraryprofiler(#1)
\pgfprofile@lbrace
total time=\pgfprofilecur@total sec; (\pgfprofilecur@total@rel\pgfprofile@percent)
self time=\pgfprofilecur@self sec; (\pgfprofilecur@self@rel\pgfprofile@percent)
invocations=\csname c@pgfprofile@numinvocations@#1\endcsname;
\pgfprofile@rbrace
}%
\immediate\write\w@pgf@writea{%
#1\pgfprofile@TAB
\pgfprofilecur@total\pgfprofile@TAB
\pgfprofilecur@total@rel\pgfprofile@TAB
\pgfprofilecur@self\pgfprofile@TAB
\pgfprofilecur@self@rel\pgfprofile@TAB
\csname c@pgfprofile@numinvocations@#1\endcsname\pgfprofile@TAB
}%
\endgroup
}%
\long\def\pgfprofileforeachentryinCSV#1#2{%
\long\def\pgfprofileinvokeforeach@@##1{#2}%
\pgfprofileforeachentryinCSVisterminated@loop#1,\pgfeov
}%
\long\def\pgfprofileforeachentryinCSVisterminated@loop{%
\pgfutil@ifnextchar\pgfeov{\pgfutil@gobble}{\pgfprofileforeachentryinCSV@next}%
}%
\long\def\pgfprofileforeachentryinCSV@next#1,{%
\pgfprofileinvokeforeach@@{#1}%
\pgfprofileforeachentryinCSVisterminated@loop%
}%
\xdef\pgfprofile@all@registered@list{}%
\xdef\pgfprofile@currently@running@list{}%
\def\pgfprofile@all@registered@list@add#1{%
\ifx\pgfprofile@all@registered@list\pgfutil@empty
\xdef\pgfprofile@all@registered@list{#1}%
\else
\xdef\pgfprofile@all@registered@list{\pgfprofile@all@registered@list,#1}%
\fi
}%
\def\pgfprofile@all@registered@list@foreach#1{%
\expandafter\pgfprofileforeachentryinCSV\expandafter{\pgfprofile@all@registered@list}{#1}%
}%
\def\pgfprofile@advance#1#2{%
\begingroup
\c@pgf@counta=\csname #1\endcsname\relax
\advance\c@pgf@counta by#2\relax
\expandafter\xdef\csname #1\endcsname{\the\c@pgf@counta}%
\endgroup
}%
\def\pgfprofile@cs@to@name@#1#2\relax{\def\pgfretval{#2}}
\def\pgfprofile@cs@to@name#1{%
\expandafter\pgfprofile@cs@to@name@\string#1\relax
}%
\newcount\c@pgfprofile@stacktop
\c@pgfprofile@stacktop=-1
\def\pgfprofilestackpush#1{%
\global\advance\c@pgfprofile@stacktop by1
\expandafter\xdef\csname pgfprofile@stack@\the\c@pgfprofile@stacktop\endcsname{#1}%
}%
\def\pgfprofilestackpop#1{%
\pgfprofilestacktop#1%
\global\advance\c@pgfprofile@stacktop by-1
}%
\def\pgfprofilestacktop#1{%
\expandafter\let\expandafter#1\csname pgfprofile@stack@\the\c@pgfprofile@stacktop\endcsname
}%
\def\pgfprofilestackifempty#1#2{%
\ifnum\c@pgfprofile@stacktop<0 #1\else #2\fi
}%
\def\pgfprofiletotwodigitstr#1{\ifnum#1<10 0\the#1\else\the#1\fi}%
\pgfprofilenew{main job}%
\pgfprofilestart{main job}%
\expandafter\xdef\csname c@pgfprofile@elapsed@at@start@main job\endcsname{0}%
\pgfprofilesetrel{main job}%
\pgfutil@ifundefined{AtEndDocument}{%
}{%
\pgfprofilenew{preamble}
\pgfprofilestart{preamble}
\expandafter\xdef\csname c@pgfprofile@elapsed@at@start@preamble\endcsname{0}%
\AtBeginDocument{\pgfprofileend{preamble}}%
\AtEndDocument{\pgfprofilepostprocess}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryprofiler.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryshadings.code.tex ====
\ProvidesFileRCS{pgflibraryshadings.code.tex}
\pgfdeclarefunctionalshading[black]{color wheel white center}
{\pgfpoint{-50bp}{-50bp}}
{\pgfpoint{50bp}{50bp}}
{}
{ %
2 copy %
2 copy abs exch abs add 0.0001 ge
{atan 360.0 div} %
{ pop } %
ifelse %
3 1 roll %
dup mul %
exch dup mul %
add sqrt %
25.0 div %
dup 1.0 ge %
{ pop 1.0 }{} ifelse %
1.0 %
3 2 roll 6.0 mul dup 4 1 roll %
floor cvr %
dup 5 1 roll %
3 index sub neg %
1.0 3 index sub %
2 index mul %
6 1 roll %
dup 3 index mul neg 1.0 add %
2 index mul %
7 1 roll %
neg 1.0 add %
2 index mul neg 1.0 add %
1 index mul %
7 2 roll %
pop pop %
dup 0.5 le %
{ %
pop exch pop
}
{ dup 1.5 le %
{ %
pop exch 4 1 roll exch pop
}
{ dup 2.5 le %
{ %
pop 4 1 roll pop
}
{ dup 3.5 le %
{ %
pop exch 4 2 roll pop
}
{ dup 4.5 le %
{ %
pop exch pop 3 -1 roll
}
{ %
pop 3 1 roll exch pop
}
ifelse
}
ifelse %
}
ifelse %
}
ifelse %
}
ifelse %
\ifpgfshadingmodelcmyk
\pgffuncshadingrgbtocmyk
\fi
\ifpgfshadingmodelgray
\pgffuncshadingrgbtogray
\fi
}%
\pgfdeclarefunctionalshading[black]{color wheel black center}
{\pgfpoint{-50bp}{-50bp}}
{\pgfpoint{50bp}{50bp}}
{}
{ %
2 copy %
2 copy abs exch abs add 0.0001 ge
{atan 360.0 div} %
{ pop } %
ifelse %
3 1 roll %
dup mul %
exch dup mul %
add sqrt %
25.0 div %
dup 1.0 ge %
{ pop 1.0 }{} ifelse %
1.0 exch %
3 2 roll 6.0 mul dup 4 1 roll %
floor cvr %
dup 5 1 roll %
3 index sub neg %
1.0 3 index sub %
2 index mul %
6 1 roll %
dup 3 index mul neg 1.0 add %
2 index mul %
7 1 roll %
neg 1.0 add %
2 index mul neg 1.0 add %
1 index mul %
7 2 roll %
pop pop %
dup 0.5 le %
{ %
pop exch pop
}
{ dup 1.5 le %
{ %
pop exch 4 1 roll exch pop
}
{ dup 2.5 le %
{ %
pop 4 1 roll pop
}
{ dup 3.5 le %
{ %
pop exch 4 2 roll pop
}
{ dup 4.5 le %
{ %
pop exch pop 3 -1 roll
}
{ %
pop 3 1 roll exch pop
}
ifelse
}
ifelse %
}
ifelse %
}
ifelse %
}
ifelse %
\ifpgfshadingmodelcmyk
\pgffuncshadingrgbtocmyk
\fi
\ifpgfshadingmodelgray
\pgffuncshadingrgbtogray
\fi
}%
\pgfdeclarefunctionalshading[black]{color wheel}
{\pgfpoint{-50bp}{-50bp}}
{\pgfpoint{50bp}{50bp}}
{}
{ %
2 copy abs exch abs add 0.0001 ge
{atan 360.0 div} %
{ pop } %
ifelse %
1.0 1.0 %
3 2 roll 6.0 mul dup 4 1 roll %
floor cvr %
dup 5 1 roll %
3 index sub neg %
1.0 3 index sub %
2 index mul %
6 1 roll %
dup 3 index mul neg 1.0 add %
2 index mul %
7 1 roll %
neg 1.0 add %
2 index mul neg 1.0 add %
1 index mul %
7 2 roll %
pop pop %
dup 0.5 le %
{ %
pop exch pop
}
{ dup 1.5 le %
{ %
pop exch 4 1 roll exch pop
}
{ dup 2.5 le %
{ %
pop 4 1 roll pop
}
{ dup 3.5 le %
{ %
pop exch 4 2 roll pop
}
{ dup 4.5 le %
{ %
pop exch pop 3 -1 roll
}
{ %
pop 3 1 roll exch pop
}
ifelse
}
ifelse %
}
ifelse %
}
ifelse %
}
ifelse %
\ifpgfshadingmodelcmyk
\pgffuncshadingrgbtocmyk
\fi
\ifpgfshadingmodelgray
\pgffuncshadingrgbtogray
\fi
}%
\colorlet{lower left}{white}%
\colorlet{lower right}{white}%
\colorlet{upper left}{white}%
\colorlet{upper right}{white}%
\pgfdeclarefunctionalshading[lower left,lower right,upper left,upper right]{bilinear interpolation}
{\pgfpointorigin}
{\pgfpoint{100bp}{100bp}}
{
\pgfshadecolortorgb{lower left}{\pgf@lib@shadings@ll}\pgfshadecolortorgb{lower right}{\pgf@lib@shadings@lr}
\pgfshadecolortorgb{upper right}{\pgf@lib@shadings@ur}\pgfshadecolortorgb{upper left}{\pgf@lib@shadings@ul}
}{
25 sub 50 div exch 25 sub 50 div 2 copy %
neg 1 add exch neg 1 add %
3 1 roll 2 copy exch 5 2 roll 6 copy 6 copy %
\pgf@lib@shadings@llred mul exch \pgf@lib@shadings@lrred mul add mul %
4 1 roll
\pgf@lib@shadings@urred mul exch \pgf@lib@shadings@ulred mul add mul
add
13 1 roll
\pgf@lib@shadings@llgreen mul exch \pgf@lib@shadings@lrgreen mul add mul %
4 1 roll
\pgf@lib@shadings@urgreen mul exch \pgf@lib@shadings@ulgreen mul add mul
add
7 1 roll
\pgf@lib@shadings@llblue mul exch \pgf@lib@shadings@lrblue mul add mul %
4 1 roll
\pgf@lib@shadings@urblue mul exch \pgf@lib@shadings@ulblue mul add mul
add
\ifpgfshadingmodelcmyk
\pgffuncshadingrgbtocmyk
\fi
\ifpgfshadingmodelgray
\pgffuncshadingrgbtogray
\fi
}%
\pgfdeclarefunctionalshading[black]{Mandelbrot set}
{\pgfpoint{-50bp}{-50bp}}
{\pgfpoint{50bp}{50bp}}{}
{
12.5 div exch 12.5 div exch
1 index 1 index
1 index dup mul %
1 index dup mul %
sub %
4 index add %
3 1 roll
mul 2 mul %
2 index add %
1 index dup mul %
1 index dup mul %
sub %
4 index add %
3 1 roll
mul 2 mul %
2 index add %
1 index dup mul %
1 index dup mul %
sub %
4 index add %
3 1 roll
mul 2 mul %
2 index add %
1 index dup mul %
1 index dup mul %
sub %
4 index add %
3 1 roll
mul 2 mul %
2 index add %
1 index dup mul 1 index dup mul add
4 lt {
1 index dup mul %
1 index dup mul %
sub %
4 index add %
3 1 roll
mul 2 mul %
2 index add %
1 index dup mul %
1 index dup mul %
sub %
4 index add %
3 1 roll
mul 2 mul %
2 index add %
1 index dup mul %
1 index dup mul %
sub %
4 index add %
3 1 roll
mul 2 mul %
2 index add %
1 index dup mul 1 index dup mul add
4 lt {
1 index dup mul %
1 index dup mul %
sub %
4 index add %
3 1 roll
mul 2 mul %
2 index add %
1 index dup mul %
1 index dup mul %
sub %
4 index add %
3 1 roll
mul 2 mul %
2 index add %
1 index dup mul %
1 index dup mul %
sub %
4 index add %
3 1 roll
mul 2 mul %
2 index add %
} { pop pop 1000.0 1000.0 } ifelse
} { pop pop 1000.0 1000.0 } ifelse
dup mul exch
dup mul
add sqrt
dup 4 1 roll
2 gt { pop pop 2.0 exch div 1.0 exch sub dup dup} {pop pop pop 0.0 0.0 0.0} ifelse
\ifpgfshadingmodelcmyk
\pgffuncshadingrgbtocmyk
\fi
\ifpgfshadingmodelgray
\pgffuncshadingrgbtogray
\fi
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibraryshadings.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex ====
\ProvidesFileRCS{pgflibrarysnakes.code.tex}
\pgfwarning{Snakes have been superseded by decorations. Use the decoration libraries instead of the snakes library}%
\usepgflibrary{decorations.pathmorphing,decorations.pathreplacing,decorations.shapes}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarysvg.path.code.tex ====
\ProvidesFileRCS{pgflibrarysvg.path.code.tex}
\usepgfmodule{parser}%
\def\pgfpathsvg#1{%
\let\pgf@lib@svg@finish@prev\relax%
{%
\pgftransforminvert%
\pgf@process{\pgfpointtransformed{\pgfqpoint{\pgf@path@lastx}{\pgf@path@lasty}}}%
}%
\pgf@lib@svg@last@x\pgf@x%
\pgf@lib@svg@last@y\pgf@y%
\let\pgf@lib@svg@num=\pgfutil@empty%
\let\pgf@lib@svg@exp=\pgfutil@empty%
\pgfparserparse{svgpath}#1"%
}%
\newdimen\pgf@lib@svg@last@x
\newdimen\pgf@lib@svg@last@y
\newdimen\pgf@lib@svg@last@c@x
\newdimen\pgf@lib@svg@last@c@y
\newcount\pgf@lib@svg@count
\newcount\pgf@lib@svg@max@num
\newif\pgf@lib@svg@relative
\def\pgf@lib@svg@clear@bezier@quad{%
\let\pgf@lib@svg@bezier@last=\pgfutil@empty
\let\pgf@lib@svg@quad@last=\pgfutil@empty
}%
\pgf@lib@svg@clear@bezier@quad
\pgfparserdef{svgpath}{all}{the letter M}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{2}{\pgf@lib@svg@moveto}%
}%
\def\pgf@lib@svg@moveto{%
\pgf@lib@svg@clear@bezier@quad%
\pgf@lib@svg@last@x=\pgf@lib@svg@get@num{0}pt%
\pgf@lib@svg@last@y=\pgf@lib@svg@get@num{1}pt%
\pgfpathmoveto{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\pgf@lib@svg@read@nums{2}{\pgf@lib@svg@lineto}%
}%
\pgfparserdef{svgpath}{all}{the letter m}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{2}{\pgf@lib@svg@moveto@rel}%
}%
\def\pgf@lib@svg@moveto@rel{%
\pgf@lib@svg@clear@bezier@quad%
\advance\pgf@lib@svg@last@x by\pgf@lib@svg@get@num{0}pt%
\advance\pgf@lib@svg@last@y by\pgf@lib@svg@get@num{1}pt%
\pgfpathmoveto{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\pgf@lib@svg@read@nums{2}{\pgf@lib@svg@lineto@rel}%
}%
\pgfparserdef{svgpath}{all}{the letter L}
{%
\pgf@lib@svg@finish@prev%
\pgf@lib@svg@read@nums{2}{\pgf@lib@svg@lineto}%
}%
\def\pgf@lib@svg@lineto{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\pgf@lib@svg@clear@bezier@quad%
\pgf@lib@svg@last@x=\pgf@lib@svg@get@num{0}pt%
\pgf@lib@svg@last@y=\pgf@lib@svg@get@num{1}pt%
\pgfpathlineto{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\pgf@lib@svg@read@nums{2}{\pgf@lib@svg@lineto}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter l}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{2}{\pgf@lib@svg@lineto@rel}%
}%
\def\pgf@lib@svg@lineto@rel{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\pgf@lib@svg@clear@bezier@quad%
\advance\pgf@lib@svg@last@x by\pgf@lib@svg@get@num{0}pt%
\advance\pgf@lib@svg@last@y by\pgf@lib@svg@get@num{1}pt%
\pgfpathlineto{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\pgf@lib@svg@read@nums{2}{\pgf@lib@svg@lineto@rel}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter Z}
{%
\pgf@lib@svg@closepath
}%
\pgfparserdef{svgpath}{all}{the letter z}
{%
\pgf@lib@svg@closepath
}%
\def\pgf@lib@svg@closepath{%
\pgf@lib@svg@finish@prev
\pgfpathclose
\let\pgf@lib@svg@finish@prev=\relax
\pgf@lib@svg@clear@bezier@quad%
\pgfparserswitch{initial}%
}%
\pgfparserdef{svgpath}{all}{blank space \space}{}%
\pgfparserdef{svgpath}{all}{the letter H}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{1}{\pgf@lib@svg@hlineto}%
}%
\def\pgf@lib@svg@hlineto{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\pgf@lib@svg@clear@bezier@quad%
\pgf@lib@svg@last@x=\pgf@lib@svg@get@num{0}pt%
\pgfpathlineto{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\pgf@lib@svg@read@nums{1}{\pgf@lib@svg@hlineto}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter h}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{1}{\pgf@lib@svg@hlineto@rel}%
}%
\def\pgf@lib@svg@hlineto@rel{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\pgf@lib@svg@clear@bezier@quad%
\advance\pgf@lib@svg@last@x by\pgf@lib@svg@get@num{0}pt%
\pgfpathlineto{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\pgf@lib@svg@read@nums{1}{\pgf@lib@svg@hlineto@rel}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter V}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{1}{\pgf@lib@svg@vlineto}%
}%
\def\pgf@lib@svg@vlineto{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\pgf@lib@svg@clear@bezier@quad%
\pgf@lib@svg@last@y=\pgf@lib@svg@get@num{0}pt%
\pgfpathlineto{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\pgf@lib@svg@read@nums{1}{\pgf@lib@svg@vlineto}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter v}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{1}{\pgf@lib@svg@vlineto@rel}%
}%
\def\pgf@lib@svg@vlineto@rel{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\pgf@lib@svg@clear@bezier@quad%
\advance\pgf@lib@svg@last@y by\pgf@lib@svg@get@num{0}pt%
\pgfpathlineto{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\pgf@lib@svg@read@nums{1}{\pgf@lib@svg@vlineto@rel}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter C}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{6}{\pgf@lib@svg@curveto}%
}%
\def\pgf@lib@svg@curveto{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\let\pgf@lib@svg@quad@last=\pgfutil@empty%
\edef\pgf@lib@svg@bezier@last{%
\noexpand\pgfqpoint{\pgf@lib@svg@get@num{2}pt}{\pgf@lib@svg@get@num{3}pt}}%
\pgf@lib@svg@last@x=\pgf@lib@svg@get@num{4}pt%
\pgf@lib@svg@last@y=\pgf@lib@svg@get@num{5}pt%
\pgfpathcurveto
{\pgfqpoint{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}}%
{\pgfqpoint{\pgf@lib@svg@get@num{2}pt}{\pgf@lib@svg@get@num{3}pt}}%
{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\pgf@lib@svg@read@nums{6}{\pgf@lib@svg@curveto}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter c}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{6}{\pgf@lib@svg@curveto@rel}%
}%
\def\pgf@lib@svg@curveto@rel{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\let\pgf@lib@svg@quad@last=\pgfutil@empty%
\pgf@process{\pgfpointadd{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}{\pgfqpoint{\pgf@lib@svg@get@num{2}pt}{\pgf@lib@svg@get@num{3}pt}}}%
\edef\pgf@lib@svg@bezier@last{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgfpathcurveto
{\pgfpointadd{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}{\pgfqpoint{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}}}%
{\pgfpointadd{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}{\pgfqpoint{\pgf@lib@svg@get@num{2}pt}{\pgf@lib@svg@get@num{3}pt}}}%
{\pgfpointadd{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}{\pgfqpoint{\pgf@lib@svg@get@num{4}pt}{\pgf@lib@svg@get@num{5}pt}}}%
\advance\pgf@lib@svg@last@x by\pgf@lib@svg@get@num{4}pt%
\advance\pgf@lib@svg@last@y by\pgf@lib@svg@get@num{5}pt%
\pgf@lib@svg@read@nums{6}{\pgf@lib@svg@curveto@rel}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter S}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{4}{\pgf@lib@svg@curveto@smooth}%
}%
\def\pgf@lib@svg@curveto@smooth{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\ifx\pgf@lib@svg@bezier@last\pgfutil@empty%
\def\pgf@lib@svg@first@cp{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\else
\def\pgf@lib@svg@first@cp{%
\pgfpointadd
{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
{\pgfpointdiff
{\pgf@lib@svg@bezier@last}%
{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
}%
}%
\fi
\pgfpathcurveto
{\pgf@lib@svg@first@cp}%
{\pgfqpoint{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}}%
{\pgfqpoint{\pgf@lib@svg@get@num{2}pt}{\pgf@lib@svg@get@num{3}pt}}%
\let\pgf@lib@svg@quad@last=\pgfutil@empty%
\edef\pgf@lib@svg@bezier@last{%
\noexpand\pgfqpoint{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}}%
\pgf@lib@svg@last@x=\pgf@lib@svg@get@num{2}pt%
\pgf@lib@svg@last@y=\pgf@lib@svg@get@num{3}pt%
\pgf@lib@svg@read@nums{4}{\pgf@lib@svg@curveto@smooth}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter s}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{4}{\pgf@lib@svg@curveto@rel@smooth}%
}%
\def\pgf@lib@svg@curveto@rel@smooth{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\ifx\pgf@lib@svg@bezier@last\pgfutil@empty%
\def\pgf@lib@svg@first@cp{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\else
\def\pgf@lib@svg@first@cp{%
\pgfpointadd
{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
{\pgfpointdiff
{\pgf@lib@svg@bezier@last}%
{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
}%
}%
\fi
\pgfpathcurveto
{\pgf@lib@svg@first@cp}%
{\pgfpointadd{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}{\pgfqpoint{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}}}%
{\pgfpointadd{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}{\pgfqpoint{\pgf@lib@svg@get@num{2}pt}{\pgf@lib@svg@get@num{3}pt}}}%
\let\pgf@lib@svg@quad@last=\pgfutil@empty%
\pgf@process{\pgfpointadd{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}{\pgfqpoint{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}}}%
\edef\pgf@lib@svg@bezier@last{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\advance\pgf@lib@svg@last@x by\pgf@lib@svg@get@num{2}pt%
\advance\pgf@lib@svg@last@y by\pgf@lib@svg@get@num{3}pt%
\pgf@lib@svg@read@nums{4}{\pgf@lib@svg@curveto@rel@smooth}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter Q}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{4}{\pgf@lib@svg@quad@curveto}%
}%
\def\pgf@lib@svg@quad@curveto{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\let\pgf@lib@svg@bezier@last=\pgfutil@empty%
\edef\pgf@lib@svg@quad@last{%
\noexpand\pgfqpoint{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}}%
\pgf@lib@svg@last@x=\pgf@lib@svg@get@num{2}pt%
\pgf@lib@svg@last@y=\pgf@lib@svg@get@num{3}pt%
\pgfpathquadraticcurveto
{\pgfqpoint{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}}%
{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\pgf@lib@svg@read@nums{4}{\pgf@lib@svg@quad@curveto}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter q}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{4}{\pgf@lib@svg@quad@curveto@rel}%
}%
\def\pgf@lib@svg@quad@curveto@rel{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\let\pgf@lib@svg@bezier@last=\pgfutil@empty%
\pgf@process{\pgfpointadd{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}{\pgfqpoint{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}}}%
\edef\pgf@lib@svg@quad@last{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgfpathquadraticcurveto
{\pgfpointadd{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}{\pgfqpoint{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}}}%
{\pgfpointadd{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}{\pgfqpoint{\pgf@lib@svg@get@num{2}pt}{\pgf@lib@svg@get@num{3}pt}}}%
\advance\pgf@lib@svg@last@x by\pgf@lib@svg@get@num{2}pt%
\advance\pgf@lib@svg@last@y by\pgf@lib@svg@get@num{3}pt%
\pgf@lib@svg@read@nums{4}{\pgf@lib@svg@quad@curveto@rel}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter T}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{2}{\pgf@lib@svg@quad@curveto@smooth}%
}%
\def\pgf@lib@svg@quad@curveto@smooth{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\pgf@process{%
\ifx\pgf@lib@svg@quad@last\pgfutil@empty%
\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}%
\else
\pgfpointadd
{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
{\pgfpointdiff
{\pgf@lib@svg@quad@last}%
{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
}%
\fi
}%
\edef\pgf@lib@svg@first@cp{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgfpathquadraticcurveto
{\pgf@lib@svg@first@cp}%
{\pgfqpoint{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}}%
\let\pgf@lib@svg@bezier@last=\pgfutil@empty%
\let\pgf@lib@svg@quad@last=\pgf@lib@svg@first@cp%
\pgf@lib@svg@last@x=\pgf@lib@svg@get@num{0}pt%
\pgf@lib@svg@last@y=\pgf@lib@svg@get@num{1}pt%
\pgf@lib@svg@read@nums{2}{\pgf@lib@svg@quad@curveto@smooth}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter t}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{2}{\pgf@lib@svg@quad@curveto@rel@smooth}%
}%
\def\pgf@lib@svg@quad@curveto@rel@smooth{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\pgf@process{%
\ifx\pgf@lib@svg@quad@last\pgfutil@empty%
\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}%
\else
\pgfpointadd
{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
{\pgfpointdiff
{\pgf@lib@svg@quad@last}%
{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
}%
\fi
}%
\edef\pgf@lib@svg@first@cp{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgfpathquadraticcurveto
{\pgf@lib@svg@first@cp}%
{\pgfpointadd{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}{\pgfqpoint{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}}}%
\let\pgf@lib@svg@bezier@last=\pgfutil@empty%
\let\pgf@lib@svg@quad@last=\pgf@lib@svg@first@cp%
\advance\pgf@lib@svg@last@x by\pgf@lib@svg@get@num{0}pt%
\advance\pgf@lib@svg@last@y by\pgf@lib@svg@get@num{1}pt%
\pgf@lib@svg@read@nums{2}{\pgf@lib@svg@quad@curveto@rel@smooth}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter A}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{7}{\pgf@lib@svg@arcto}%
}%
\def\pgf@lib@svg@arcto{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\pgf@lib@svg@clear@bezier@quad%
\pgf@lib@svg@last@x=\pgf@lib@svg@get@num{5}pt%
\pgf@lib@svg@last@y=\pgf@lib@svg@get@num{6}pt%
\pgfpatharcto
{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}%
{\pgf@lib@svg@get@num{2}}%
{\pgf@lib@svg@get@num{3}}%
{\pgf@lib@svg@get@num{4}}%
{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\pgf@lib@svg@read@nums{7}{\pgf@lib@svg@arcto}%
\fi
}%
\pgfparserdef{svgpath}{all}{the letter a}
{%
\pgf@lib@svg@finish@prev
\pgf@lib@svg@read@nums{7}{\pgf@lib@svg@arcto@rel}%
}%
\def\pgf@lib@svg@arcto@rel{%
\ifnum\pgf@lib@svg@count=0\relax%
\else%
\pgf@lib@svg@clear@bezier@quad%
\advance\pgf@lib@svg@last@x by\pgf@lib@svg@get@num{5}pt%
\advance\pgf@lib@svg@last@y by\pgf@lib@svg@get@num{6}pt%
\pgfpatharcto
{\pgf@lib@svg@get@num{0}pt}{\pgf@lib@svg@get@num{1}pt}%
{\pgf@lib@svg@get@num{2}}%
{\pgf@lib@svg@get@num{3}}%
{\pgf@lib@svg@get@num{4}}%
{\pgfqpoint{\pgf@lib@svg@last@x}{\pgf@lib@svg@last@y}}%
\pgf@lib@svg@read@nums{7}{\pgf@lib@svg@arcto@rel}%
\fi
}%
\pgfparserdef{svgpath}{all}{the character "}
{%
\pgf@lib@svg@finish@prev
\pgfparserswitch{final}%
}%
\def\pgf@lib@svg@read@nums#1#2{%
\pgf@lib@svg@count=0\relax
\pgf@lib@svg@max@num=#1\relax
\pgfparserswitch{num}%
\def\pgf@lib@svg@finish@prev{%
\ifx\pgf@lib@svg@num\pgfutil@empty%
\else%
\ifx\pgf@lib@svg@exp\pgfutil@empty
\else
\pgfmathfloatparsenumber{\pgf@lib@svg@num e\pgf@lib@svg@exp}%
\pgfmathfloattofixed{\pgfmathresult}%
\let\pgf@lib@svg@num=\pgfmathresult
\fi
\expandafter\let\csname pgf@lib@svg@num@\the\pgf@lib@svg@count\endcsname=\pgf@lib@svg@num
\advance\pgf@lib@svg@count by1\relax%
\let\pgf@lib@svg@num=\pgfutil@empty%
\let\pgf@lib@svg@exp=\pgfutil@empty%
\fi
#2%
}%
}%
\def\pgf@lib@svg@get@num#1{\csname pgf@lib@svg@num@#1\endcsname}%
\pgfparserdef{svgpath}{num}{the character ,}
{%
\pgf@lib@svg@handle@spacer
}%
\pgfparserlet{svgpath}{after.}{the character ,}[num]{the character ,}
\pgfparserlet{svgpath}{exp},[num],
\pgfparserlet{svgpath}{exp sign},[num],
\pgfparserdef{svgpath}{num}{\meaning\pgfutil@sptoken}
{%
\pgf@lib@svg@handle@spacer
}%
\pgfparserlet{svgpath}{after.}{blank space}[num]{blank space}
\pgfparserlet{svgpath}{exp}{blank space},
\pgfparserlet{svgpath}{exp sign}{blank space},
\pgfparserdef{svgpath}{num}{the character -}
{%
\pgf@lib@svg@handle@spacer
\def\pgf@lib@svg@num{-}%
}%
\pgfparserlet{svgpath}{after.}{the character -}[num]{the character -}
\pgfparserlet{svgpath}{exp}-[num]-
\pgfparserdef{svgpath}{num}{the character +}
{%
\pgf@lib@svg@handle@spacer
\def\pgf@lib@svg@num{+}%
}
\pgfparserlet{svgpath}{after.}{the character +}[num]{the character +}
\pgfparserlet{svgpath}{exp}+[num]+
\def\pgf@lib@svg@handle@spacer{%
\ifx\pgf@lib@svg@num\pgfutil@empty%
\else
\ifx\pgf@lib@svg@exp\pgfutil@empty
\else
\pgfmathfloatparsenumber{\pgf@lib@svg@num e\pgf@lib@svg@exp}%
\pgfmathfloattofixed{\pgfmathresult}%
\let\pgf@lib@svg@num=\pgfmathresult
\fi
\expandafter\let\csname pgf@lib@svg@num@\the\pgf@lib@svg@count\endcsname=\pgf@lib@svg@num
\advance\pgf@lib@svg@count by1\relax%
\ifnum\pgf@lib@svg@count=\pgf@lib@svg@max@num\relax%
\pgf@lib@svg@finish@prev%
\fi
\let\pgf@lib@svg@num=\pgfutil@empty%
\let\pgf@lib@svg@exp=\pgfutil@empty%
\pgfparserswitch{num}%
\fi
}%
\pgfparserdef{svgpath}{num}e
{%
\pgfparserswitch{exp sign}%
\let\pgf@lib@svg@exp=\pgfutil@empty
}
\pgfparserlet{svgpath}{after.}e[num]e
\pgfparserdef{svgpath}{exp sign}-
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp-}%
\pgfparserswitch{exp}%
}
\pgfparserdef{svgpath}{exp sign}+
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp+}%
\pgfparserswitch{exp}%
}
\pgfparserdef{svgpath}{exp sign}0
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp0}%
\pgfparserswitch{exp}%
}
\pgfparserdef{svgpath}{exp sign}1
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp1}%
\pgfparserswitch{exp}%
}
\pgfparserdef{svgpath}{exp sign}2
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp2}%
\pgfparserswitch{exp}%
}
\pgfparserdef{svgpath}{exp sign}3
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp3}%
\pgfparserswitch{exp}%
}
\pgfparserdef{svgpath}{exp sign}4
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp4}%
\pgfparserswitch{exp}%
}
\pgfparserdef{svgpath}{exp sign}5
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp5}%
\pgfparserswitch{exp}%
}
\pgfparserdef{svgpath}{exp sign}6
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp6}%
\pgfparserswitch{exp}%
}
\pgfparserdef{svgpath}{exp sign}7
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp7}%
\pgfparserswitch{exp}%
}
\pgfparserdef{svgpath}{exp sign}8
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp8}%
\pgfparserswitch{exp}%
}
\pgfparserdef{svgpath}{exp sign}9
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp9}%
\pgfparserswitch{exp}%
}
\pgfparserdef{svgpath}{exp}0
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp0}%
}
\pgfparserdef{svgpath}{exp}1
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp1}%
}
\pgfparserdef{svgpath}{exp}2
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp2}%
}
\pgfparserdef{svgpath}{exp}3
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp3}%
}
\pgfparserdef{svgpath}{exp}4
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp4}%
}
\pgfparserdef{svgpath}{exp}5
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp5}%
}
\pgfparserdef{svgpath}{exp}6
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp6}%
}
\pgfparserdef{svgpath}{exp}7
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp7}%
}
\pgfparserdef{svgpath}{exp}8
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp8}%
}
\pgfparserdef{svgpath}{exp}9
{%
\expandafter\def\expandafter\pgf@lib@svg@exp\expandafter{\pgf@lib@svg@exp9}%
}
\pgfparserdef{svgpath}{num}{the character .}
{%
\expandafter\def\expandafter\pgf@lib@svg@num\expandafter{\pgf@lib@svg@num.}%
\pgfparserswitch{after.}%
}%
\pgfparserdef{svgpath}{after.}{the character .}
{%
\pgf@lib@svg@handle@spacer
\def\pgf@lib@svg@num{.}%
\pgfparserswitch{after.}%
}%
\pgfparserlet{svgpath}{exp}{the character .}[after.]{the character .}
\pgfparserdef{svgpath}{all}{the character 0}
{\expandafter\def\expandafter\pgf@lib@svg@num\expandafter{\pgf@lib@svg@num0}}%
\pgfparserdef{svgpath}{all}{the character 1}
{\expandafter\def\expandafter\pgf@lib@svg@num\expandafter{\pgf@lib@svg@num1}}%
\pgfparserdef{svgpath}{all}{the character 2}
{\expandafter\def\expandafter\pgf@lib@svg@num\expandafter{\pgf@lib@svg@num2}}%
\pgfparserdef{svgpath}{all}{the character 3}
{\expandafter\def\expandafter\pgf@lib@svg@num\expandafter{\pgf@lib@svg@num3}}%
\pgfparserdef{svgpath}{all}{the character 4}
{\expandafter\def\expandafter\pgf@lib@svg@num\expandafter{\pgf@lib@svg@num4}}%
\pgfparserdef{svgpath}{all}{the character 5}
{\expandafter\def\expandafter\pgf@lib@svg@num\expandafter{\pgf@lib@svg@num5}}%
\pgfparserdef{svgpath}{all}{the character 6}
{\expandafter\def\expandafter\pgf@lib@svg@num\expandafter{\pgf@lib@svg@num6}}%
\pgfparserdef{svgpath}{all}{the character 7}
{\expandafter\def\expandafter\pgf@lib@svg@num\expandafter{\pgf@lib@svg@num7}}%
\pgfparserdef{svgpath}{all}{the character 8}
{\expandafter\def\expandafter\pgf@lib@svg@num\expandafter{\pgf@lib@svg@num8}}%
\pgfparserdef{svgpath}{all}{the character 9}
{\expandafter\def\expandafter\pgf@lib@svg@num\expandafter{\pgf@lib@svg@num9}}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarysvg.path.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarytimelines.code.tex ====
\ProvidesFileRCS{pgflibrarytimelines.code.tex}
\usepgfmodule{animations}%
\def\pgftimelinebegin{%
\pgf@timeline@todo@saved=\pgf@timeline@todo%
\begingroup%
\advance\pgf@timeline@depth by1\relax%
\pgf@timeline@todo{}%
}%
\newcount\pgf@timeline@depth
\newtoks\pgf@timeline@todo
\newtoks\pgf@timeline@todo@saved
\def\pgftimelineend{%
\the\pgf@timeline@todo%
\endgroup%
\global\pgf@timeline@todo=\pgf@timeline@todo@saved%
}%
\def\pgftimelineentry#1#2#3#4{%
\begingroup%
\pgfparsetime{#1}%
\edef\pgf@timeline@whom{#2}%
\edef\pgf@timeline@attr{#3}%
\expandafter\let\expandafter\pgf@timeline@entry\csname pgf@tl@\pgf@timeline@whom @\pgf@timeline@attr @\the\pgf@timeline@depth\endcsname%
\ifx\pgf@timeline@entry\relax%
\edef\pgf@timeline@entry{\noexpand\pgf@timeline@setup{\pgf@timeline@whom}{\pgf@timeline@attr}}%
\fi%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgf@timeline@entry\expandafter\expandafter\expandafter%
{\expandafter\pgf@timeline@entry\expandafter\pgf@timeline@doentry\expandafter{\pgftimeresult}{#4}}%
\expandafter\global\expandafter\let\csname pgf@tl@\pgf@timeline@whom @\pgf@timeline@attr @\the\pgf@timeline@depth\endcsname\pgf@timeline@entry%
\global\pgf@timeline@todo\expandafter\expandafter\expandafter{\expandafter\the\expandafter\pgf@timeline@todo\expandafter\pgf@timeline@handle\csname pgf@tl@\pgf@timeline@whom @\pgf@timeline@attr @\the\pgf@timeline@depth\endcsname}%
\endgroup%
}%
\newtoks\pgf@timeline@sort@toks
\countdef\pgf@timeline@sort@count=0\relax%
\countdef\pgf@timeline@count@down=1\relax%
\countdef\pgf@timeline@count@down@next=2\relax%
\def\pgf@timeline@handle#1{%
\ifx#1\relax%
\else%
{%
\pgf@timeline@sort@count=1\relax%
#1%
\pgf@timeline@count@down=1\relax%
\pgf@timeline@sort@toks{}%
\pgfutil@loop%
\ifnum\pgf@timeline@count@down<\pgf@timeline@sort@count\relax%
\edef\pgf@temp{\the\pgf@timeline@sort@toks\noexpand\pgf@timeline@donow{\the\dimen\pgf@timeline@count@down}{\the\toks\pgf@timeline@count@down}}%
\pgf@timeline@sort@toks\expandafter{\pgf@temp}%
\advance\pgf@timeline@count@down by1\relax%
\pgfutil@repeat%
\pgf@timeline@compute@duration%
\edef\pgf@temp{\noexpand\pgf@timeline@call@attribute{\pgf@timeline@whom}{\pgf@timeline@attr}{\the\pgf@timeline@sort@toks}}
\expandafter%
\endgroup%
\pgf@temp%
}%
\global\let#1\relax%
\fi%
}%
\def\pgf@timeline@compute@duration{%
\advance\pgf@timeline@sort@count by-1\relax%
\pgfmathparse{\the\dimen\pgf@timeline@sort@count}%
\global\let\pgf@timeline@duration\pgfmathresult%
}%
\def\pgf@timeline@setup#1#2{%
\def\pgf@timeline@whom{#1}%
\def\pgf@timeline@attr{#2}%
\begingroup%
}%
\def\pgf@timeline@doentry#1#2{%
\dimen\pgf@timeline@sort@count=#1pt\relax%
\toks\pgf@timeline@sort@count{#2}%
\pgf@timeline@count@down\pgf@timeline@sort@count\relax%
\pgfutil@loop%
\ifnum\pgf@timeline@count@down>1\relax%
\pgf@timeline@count@down@next\pgf@timeline@count@down%
\advance\pgf@timeline@count@down@next by-1\relax%
\ifdim\dimen\pgf@timeline@count@down<\dimen\pgf@timeline@count@down@next\relax%
\toks0=\toks\pgf@timeline@count@down%
\dimen0=\dimen\pgf@timeline@count@down%
\toks\pgf@timeline@count@down=\toks\pgf@timeline@count@down@next%
\dimen\pgf@timeline@count@down=\dimen\pgf@timeline@count@down@next%
\toks\pgf@timeline@count@down@next=\toks0\relax%
\dimen\pgf@timeline@count@down@next=\dimen0\relax%
\pgf@timeline@count@down\pgf@timeline@count@down@next\relax%
\else%
\pgf@timeline@count@down1\relax%
\fi%
\pgfutil@repeat%
\advance\pgf@timeline@sort@count by1\relax%
}%
\def\pgf@timeline@call@attribute#1#2#3{%
\pgfanimateattributecode{#2}{\pgfkeys{/pgf/animation/whom={#1},/pgf/animation/duration=\pgf@timeline@duration}#3}%
}%
\def\pgf@timeline@donow#1#2{%
\pgfkeys{/pgf/animation/key time={#1/\pgf@timeline@duration}}%
\pgfkeys{/pgf/animation/value={#2}}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/pgflibrarytimelines.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.ee.IEC.code.tex ====
\pgfdeclareshape{var resistor IEC}
{%
\inheritsavedanchors[from=rectangle ee]%
\inheritanchor[from=rectangle ee]{center}%
\inheritanchor[from=rectangle ee]{north}%
\inheritanchor[from=rectangle ee]{south}%
\inheritanchor[from=rectangle ee]{east}%
\inheritanchor[from=rectangle ee]{west}%
\inheritanchor[from=rectangle ee]{north east}%
\inheritanchor[from=rectangle ee]{north west}%
\inheritanchor[from=rectangle ee]{south east}%
\inheritanchor[from=rectangle ee]{south west}%
\inheritanchor[from=rectangle ee]{input}%
\inheritanchor[from=rectangle ee]{output}%
\inheritanchorborder[from=rectangle ee]%
\backgroundpath{
\pgf@process{\pgfpointadd{\southwest}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}
\pgf@xa=\pgf@x \pgf@ya=\pgf@y
\pgf@process{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgf@yc=.5\pgf@ya
\advance\pgf@yc by.5\pgf@yb
\pgf@xc=-.5\pgf@ya
\advance\pgf@xc by.5\pgf@yb
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@yc}}
\advance\pgf@xb by.1pt%
\pgfutil@loop%
\advance\pgf@xa by4\pgf@xc\relax%
\ifdim\pgf@xa<\pgf@xb%
\advance\pgf@xa by-3\pgf@xc%
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yb}}%
\advance\pgf@xa by2\pgf@xc%
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\advance\pgf@xa by\pgf@xc%
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yc}}%
\pgfutil@repeat%
\advance\pgf@xb by-.1pt%
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yc}}%
}%
}%
\pgfdeclareshape{inductor IEC}
{%
\savedanchor\northeast{%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@x=\pgf@xa%
\advance\pgf@x by .5\pgf@xb%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/minimum height}}%
\pgf@y=\pgf@ya%
\advance\pgf@y by\pgf@yb%
}%
\savedanchor\southwest{%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@x=-\pgf@xa%
\advance\pgf@x by -.5\pgf@xb%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\pgf@y=-\pgf@ya%
}%
\anchor{center}{\pgfpointorigin}%
\inheritanchor[from=rectangle ee]{north}%
\inheritanchor[from=rectangle ee]{south}%
\inheritanchor[from=rectangle ee]{east}%
\inheritanchor[from=rectangle ee]{west}%
\inheritanchor[from=rectangle ee]{north east}%
\inheritanchor[from=rectangle ee]{north west}%
\inheritanchor[from=rectangle ee]{south east}%
\inheritanchor[from=rectangle ee]{south west}%
\inheritanchor[from=rectangle ee]{input}%
\inheritanchor[from=rectangle ee]{output}%
\anchorborder{%
\ifdim\pgf@y<0pt%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{\southwest}%
\advance\pgf@y by-0.5pt%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgfpointborderrectangle{\pgfqpoint{\pgf@xc}{\the\pgf@yc}}{\pgfqpoint{-\pgf@xa}{-\pgf@ya}}}%
\else%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{\pgfpointborderrectangle{\pgfqpoint{\pgf@xc}{\the\pgf@yc}}{\northeast}}%
\fi%
}%
\backgroundpath{
\pgf@process{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
\pgf@xa=-\pgf@x \pgf@ya=0pt
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgf@xc=\pgf@yb%
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{0pt}}
\advance\pgf@xb by.1pt%
\pgfutil@loop%
\advance\pgf@xa by2\pgf@xc\relax%
\ifdim\pgf@xa<\pgf@xb%
\pgfpatharc{180}{0}{\pgf@xc}%
\pgfutil@repeat%
\advance\pgf@xb by-.1pt%
\pgfpathlineto{\pgfqpoint{\pgf@xb}{0pt}}%
}%
}%
\pgfdeclareshape{capacitor IEC}
{%
\inheritsavedanchors[from=rectangle ee]%
\inheritanchor[from=rectangle ee]{center}%
\inheritanchor[from=rectangle ee]{north}%
\inheritanchor[from=rectangle ee]{south}%
\inheritanchor[from=rectangle ee]{east}%
\inheritanchor[from=rectangle ee]{west}%
\inheritanchor[from=rectangle ee]{north east}%
\inheritanchor[from=rectangle ee]{north west}%
\inheritanchor[from=rectangle ee]{south east}%
\inheritanchor[from=rectangle ee]{south west}%
\inheritanchor[from=rectangle ee]{input}%
\inheritanchor[from=rectangle ee]{output}%
\inheritanchorborder[from=rectangle ee]%
\backgroundpath{
\pgf@process{\pgfpointadd{\southwest}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}
\pgf@xa=\pgf@x \pgf@ya=\pgf@y
\pgf@process{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yb}}
\pgfpathmoveto{\pgfqpoint{\pgf@xb}{\pgf@ya}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}}
}%
}%
\pgfdeclareshape{ground IEC}
{%
\inheritsavedanchors[from=rectangle ee]%
\inheritanchor[from=rectangle ee]{center}%
\inheritanchor[from=rectangle ee]{north}%
\inheritanchor[from=rectangle ee]{south}%
\inheritanchor[from=rectangle ee]{east}%
\inheritanchor[from=rectangle ee]{west}%
\inheritanchor[from=rectangle ee]{north east}%
\inheritanchor[from=rectangle ee]{north west}%
\inheritanchor[from=rectangle ee]{south east}%
\inheritanchor[from=rectangle ee]{south west}%
\inheritanchor[from=rectangle ee]{input}%
\inheritanchor[from=rectangle ee]{output}%
\inheritanchorborder[from=rectangle ee]%
\backgroundpath{
\pgf@process{\pgfpointadd{\southwest}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}
\pgf@xa=\pgf@x \pgf@ya=\pgf@y
\pgf@process{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yb}}
\pgfmathsetlength\pgf@xa{.5\pgf@xa+.5\pgf@xb}
\pgfmathsetlength\pgf@yc{.16666\pgf@yb-.16666\pgf@ya}
\advance\pgf@ya by\pgf@yc
\advance\pgf@yb by-\pgf@yc
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yb}}
\advance\pgf@ya by\pgf@yc
\advance\pgf@yb by-\pgf@yc
\pgfpathmoveto{\pgfqpoint{\pgf@xb}{\pgf@ya}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}}
}%
}%
\pgfdeclareshape{battery IEC}
{%
\inheritsavedanchors[from=rectangle ee]%
\inheritanchor[from=rectangle ee]{center}%
\inheritanchor[from=rectangle ee]{north}%
\inheritanchor[from=rectangle ee]{south}%
\inheritanchor[from=rectangle ee]{east}%
\inheritanchor[from=rectangle ee]{west}%
\inheritanchor[from=rectangle ee]{north east}%
\inheritanchor[from=rectangle ee]{north west}%
\inheritanchor[from=rectangle ee]{south east}%
\inheritanchor[from=rectangle ee]{south west}%
\inheritanchor[from=rectangle ee]{input}%
\inheritanchor[from=rectangle ee]{output}%
\inheritanchorborder[from=rectangle ee]%
\backgroundpath{
\pgf@process{\pgfpointadd{\southwest}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}
\pgf@xa=\pgf@x \pgf@ya=\pgf@y
\pgf@process{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yb}}
\pgfmathsetlength\pgf@yc{.25\pgf@yb-.25\pgf@ya}
\advance\pgf@ya by\pgf@yc
\advance\pgf@yb by-\pgf@yc
\pgfpathmoveto{\pgfqpoint{\pgf@xb}{\pgf@ya}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}}
}%
}%
\pgfdeclareshape{breakdown diode IEC}
{%
\inheritsavedanchors[from=rectangle ee]%
\inheritanchor[from=rectangle ee]{center}%
\inheritanchor[from=rectangle ee]{north}%
\inheritanchor[from=rectangle ee]{south}%
\inheritanchor[from=rectangle ee]{east}%
\inheritanchor[from=rectangle ee]{west}%
\inheritanchor[from=rectangle ee]{north east}%
\inheritanchor[from=rectangle ee]{north west}%
\inheritanchor[from=rectangle ee]{south east}%
\inheritanchor[from=rectangle ee]{south west}%
\inheritanchor[from=rectangle ee]{input}%
\inheritanchor[from=rectangle ee]{output}%
\inheritanchorborder[from=rectangle ee]%
\backgroundpath{
\pgf@process{\pgfpointadd{\southwest}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}
\pgf@xa=\pgf@x \pgf@ya=\pgf@y
\pgf@process{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgf@xc=.5\pgf@xa \advance\pgf@xc by.5\pgf@xb
\pgf@yc=.5\pgf@ya
\advance\pgf@yc by .5\pgf@yb
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfqpoint{\pgf@xc}{\pgf@yc}}
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yb}}
\pgfpathclose
\pgfpathmoveto{\pgfqpoint{\pgf@xb}{\pgf@ya}}
\pgfpathlineto{\pgfqpoint{\pgf@xc}{\pgf@yc}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}}
\pgfpathclose
}%
\beforebackgroundpath{
{
\pgf@process{\pgfpointadd{\southwest}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}
\pgf@xa=\pgf@x \pgf@ya=\pgf@y
\pgf@process{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgf@yc=.5\pgf@ya
\advance\pgf@yc by.5\pgf@yb
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@yc}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yc}}
\pgfusepathqstroke
\pgf@xc=.5\pgf@xa
\advance\pgf@xc by.5\pgf@xb
\pgftransformshift{\pgfqpoint{\pgf@xc}{\pgf@yc}}
\pgf@yc=.5\pgf@yb
\advance\pgf@yc by-.5\pgf@ya
\pgftransformscale{\pgf@sys@tonumber{\pgf@yc}}
\pgfpathmoveto{\pgfqpoint{-.5pt}{-1pt}}
\pgfpathlineto{\pgfqpoint{0pt}{-1pt}}
\pgfpathlineto{\pgfqpoint{0pt}{1pt}}
\pgfpathlineto{\pgfqpoint{.5pt}{1pt}}
\pgfusepathqstroke
}
}%
}%
\pgfdeclareshape{generic circle IEC}
{%
\inheritsavedanchors[from=circle ee]%
\inheritanchorborder[from=circle ee]%
\inheritanchor[from=circle ee]{north}%
\inheritanchor[from=circle ee]{north west}%
\inheritanchor[from=circle ee]{north east}%
\inheritanchor[from=circle ee]{center}%
\inheritanchor[from=circle ee]{west}%
\inheritanchor[from=circle ee]{east}%
\inheritanchor[from=circle ee]{south}%
\inheritanchor[from=circle ee]{south west}%
\inheritanchor[from=circle ee]{south east}%
\inheritanchor[from=circle ee]{input}%
\inheritanchor[from=circle ee]{output}%
\inheritbackgroundpath[from=circle ee]%
\beforebackgroundpath{
{
\centerpoint%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgftransformshift{}
\pgfutil@tempdima=\radius%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xb<\pgf@yb%
\advance\pgfutil@tempdima by-\pgf@yb%
\else%
\advance\pgfutil@tempdima by-\pgf@xb%
\fi%
\pgftransformscale{\pgf@sys@tonumber{\pgfutil@tempdima}}
\pgfkeysvalueof{/pgf/generic circle IEC/before background}
}
}%
}%
\pgfdeclareshape{generic diode IEC}
{%
\inheritsavedanchors[from=rectangle ee]%
\inheritanchor[from=rectangle ee]{center}%
\inheritanchor[from=rectangle ee]{north}%
\inheritanchor[from=rectangle ee]{south}%
\inheritanchor[from=rectangle ee]{east}%
\inheritanchor[from=rectangle ee]{west}%
\inheritanchor[from=rectangle ee]{north east}%
\inheritanchor[from=rectangle ee]{north west}%
\inheritanchor[from=rectangle ee]{south east}%
\inheritanchor[from=rectangle ee]{south west}%
\inheritanchor[from=rectangle ee]{input}%
\inheritanchor[from=rectangle ee]{output}%
\inheritanchorborder[from=rectangle ee]%
\backgroundpath{
\pgf@process{\pgfpointadd{\southwest}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}
\pgf@xa=\pgf@x \pgf@ya=\pgf@y
\pgf@process{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\advance\pgf@xb by-.5\pgflinewidth
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yb}}
\pgf@yc=.5\pgf@ya
\advance\pgf@yc by .5\pgf@yb
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yc}}
\pgfpathclose
}%
\beforebackgroundpath{
{
\pgf@process{\pgfpointadd{\southwest}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}
\pgf@xa=\pgf@x \pgf@ya=\pgf@y
\pgf@process{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgf@yc=.5\pgf@ya
\advance\pgf@yc by.5\pgf@yb
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@yc}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yc}}
\pgfusepathqstroke
\pgftransformshift{\pgfqpoint{\pgf@xb}{\pgf@yc}}
\pgf@yc=.5\pgf@yb
\advance\pgf@yc by-.5\pgf@ya
\pgftransformscale{\pgf@sys@tonumber{\pgf@yc}}
\pgfkeysvalueof{/pgf/generic diode IEC/before background}
}
}%
}%
\pgfkeys{
/pgf/generic circle IEC/before background/.initial=,
/pgf/generic diode IEC/before background/.initial=,
}%
\pgfdeclareshape{make contact IEC}
{%
\savedanchor\northeast{%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@x=\pgf@xa%
\advance\pgf@x by .5\pgf@xb%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/minimum height}}%
\pgf@y=\pgf@ya%
\advance\pgf@y by\pgf@yb%
}%
\savedanchor\southwest{%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@x=-.5\pgf@xa%
\advance\pgf@x by -.5\pgf@xb%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\pgf@y=-\pgf@ya%
}%
\anchor{center}{\pgfpointorigin}%
\inheritanchor[from=rectangle ee]{north}%
\inheritanchor[from=rectangle ee]{south}%
\inheritanchor[from=rectangle ee]{east}%
\inheritanchor[from=rectangle ee]{west}%
\inheritanchor[from=rectangle ee]{north east}%
\inheritanchor[from=rectangle ee]{north west}%
\inheritanchor[from=rectangle ee]{south east}%
\inheritanchor[from=rectangle ee]{south west}%
\inheritanchor[from=rectangle ee]{input}%
\inheritanchor[from=rectangle ee]{output}%
\anchorborder{%
\ifdim\pgf@y<0pt%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{\southwest}%
\advance\pgf@y by-0.5pt%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgfpointborderrectangle{\pgfqpoint{\pgf@xc}{\the\pgf@yc}}{\pgfqpoint{-\pgf@xa}{-\pgf@ya}}}%
\else%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{\pgfpointborderrectangle{\pgfqpoint{\pgf@xc}{\the\pgf@yc}}{\northeast}}%
\fi%
}%
\backgroundpath{
\pgf@process{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
\pgf@xa=-\pgf@x \pgf@ya=0pt
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{0pt}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}}
}%
}%
\pgfdeclareshape{var make contact IEC}
{%
\savedanchor\northeast{%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@x=\pgf@xa%
\advance\pgf@x by .5\pgf@xb%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/minimum height}}%
\pgf@y=\pgf@ya%
\advance\pgf@y by\pgf@yb%
}%
\savedanchor\southwest{%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@x=-.5\pgf@xa%
\advance\pgf@x by -.5\pgf@xb%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\pgf@y=-\pgf@ya%
\pgf@xc=0.083333\pgf@x%
\advance\pgf@y by\pgf@xc%
}%
\anchor{center}{\pgfpointorigin}%
\inheritanchor[from=rectangle ee]{north}%
\inheritanchor[from=rectangle ee]{south}%
\inheritanchor[from=rectangle ee]{east}%
\inheritanchor[from=rectangle ee]{west}%
\inheritanchor[from=rectangle ee]{north east}%
\inheritanchor[from=rectangle ee]{north west}%
\inheritanchor[from=rectangle ee]{south east}%
\inheritanchor[from=rectangle ee]{south west}%
\inheritanchor[from=rectangle ee]{input}%
\inheritanchor[from=rectangle ee]{output}%
\anchorborder{%
\ifdim\pgf@y<0pt%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{\southwest}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgfpointborderrectangle{\pgfqpoint{\pgf@xc}{\the\pgf@yc}}{\pgfqpoint{-\pgf@xa}{-\pgf@ya}}}%
\else%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{\pgfpointborderrectangle{\pgfqpoint{\pgf@xc}{\the\pgf@yc}}{\northeast}}%
\fi%
}%
\backgroundpath{
\pgf@process{\pgfpointadd{\northeast}{
\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
\pgf@xa=-\pgf@x \pgf@ya=0pt
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgf@xc=\pgf@xa
\pgfutil@tempdima=2\pgf@xb%
\pgfutil@tempdima=0.083333\pgfutil@tempdima%
\advance\pgf@xa by \pgfutil@tempdima
{\pgfpathcircle{\pgfqpoint{\pgf@xa}{0pt}}{\pgfutil@tempdima}}
\pgf@process{\pgfpointnormalised{\pgfpointdiff{\pgfqpoint{\pgf@xa}{0pt}}{\pgfqpoint{\pgf@xb}{\pgf@yb}}}}
\pgf@xc=\pgf@x
\pgf@yc=\pgf@y
\pgfpathmoveto{\pgfpointadd{\pgfqpoint{\pgf@xa}{0pt}}{%
\pgfpointscale{\pgfutil@tempdima}{\pgfqpoint{\pgf@xc}{\pgf@yc}}}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}}
}%
}%
\pgfdeclareshape{break contact IEC}
{%
\savedanchor\northeast{%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@x=\pgf@xa%
\advance\pgf@x by .5\pgf@xb%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/minimum height}}%
\pgf@y=\pgf@ya%
\advance\pgf@y by\pgf@yb%
}%
\savedanchor\southwest{%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@x=-.5\pgf@xa%
\advance\pgf@x by -.5\pgf@xb%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\pgf@y=-\pgf@ya%
}%
\anchor{center}{\pgfpointorigin}%
\inheritanchor[from=rectangle ee]{north}%
\inheritanchor[from=rectangle ee]{south}%
\inheritanchor[from=rectangle ee]{east}%
\inheritanchor[from=rectangle ee]{west}%
\inheritanchor[from=rectangle ee]{north east}%
\inheritanchor[from=rectangle ee]{north west}%
\inheritanchor[from=rectangle ee]{south east}%
\inheritanchor[from=rectangle ee]{south west}%
\inheritanchor[from=rectangle ee]{input}%
\inheritanchor[from=rectangle ee]{output}%
\anchorborder{%
\ifdim\pgf@y<0pt%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{\southwest}%
\advance\pgf@y by-0.5pt%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgfpointborderrectangle{\pgfqpoint{\pgf@xc}{\the\pgf@yc}}{\pgfqpoint{-\pgf@xa}{-\pgf@ya}}}%
\else%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{\pgfpointborderrectangle{\pgfqpoint{\pgf@xc}{\the\pgf@yc}}{\northeast}}%
\fi%
}%
\backgroundpath{
\pgf@process{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
\pgf@xa=-\pgf@x \pgf@ya=0pt
\pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{0pt}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}}
\pgf@xc=.2\pgf@xb
\advance\pgf@xc by-.2\pgf@xa
\pgfpathmoveto{\pgfqpoint{\pgf@xb}{0pt}}
\advance\pgf@xb by-\pgf@xc
\pgfpathlineto{\pgfqpoint{\pgf@xb}{0pt}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}}
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.ee.IEC.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.ee.code.tex ====
\pgfdeclareshape{rectangle ee}
{%
\inheritsavedanchors[from=rectangle]%
\inheritanchorborder[from=rectangle]%
\inheritanchor[from=rectangle]{north}%
\inheritanchor[from=rectangle]{north west}%
\inheritanchor[from=rectangle]{north east}%
\inheritanchor[from=rectangle]{center}%
\inheritanchor[from=rectangle]{west}%
\inheritanchor[from=rectangle]{east}%
\inheritanchor[from=rectangle]{mid}%
\inheritanchor[from=rectangle]{mid west}%
\inheritanchor[from=rectangle]{mid east}%
\inheritanchor[from=rectangle]{base}%
\inheritanchor[from=rectangle]{base west}%
\inheritanchor[from=rectangle]{base east}%
\inheritanchor[from=rectangle]{south}%
\inheritanchor[from=rectangle]{south west}%
\inheritanchor[from=rectangle]{south east}%
\inheritbackgroundpath[from=rectangle]%
\anchor{input}{
\pgf@process{\northeast}%
\pgf@ya=.5\pgf@y%
\pgf@process{\southwest}%
\pgf@y=.5\pgf@y%
\advance\pgf@y by \pgf@ya%
}%
\anchor{output}{%
\pgf@process{\southwest}%
\pgf@ya=.5\pgf@y%
\pgf@process{\northeast}%
\pgf@y=.5\pgf@y%
\advance\pgf@y by \pgf@ya%
}%
}%
\pgfdeclareshape{circle ee}
{%
\inheritsavedanchors[from=circle]%
\inheritanchorborder[from=circle]%
\inheritanchor[from=circle]{north}%
\inheritanchor[from=circle]{north west}%
\inheritanchor[from=circle]{north east}%
\inheritanchor[from=circle]{center}%
\inheritanchor[from=circle]{west}%
\inheritanchor[from=circle]{east}%
\inheritanchor[from=circle]{mid}%
\inheritanchor[from=circle]{mid west}%
\inheritanchor[from=circle]{mid east}%
\inheritanchor[from=circle]{base}%
\inheritanchor[from=circle]{base west}%
\inheritanchor[from=circle]{base east}%
\inheritanchor[from=circle]{south}%
\inheritanchor[from=circle]{south west}%
\inheritanchor[from=circle]{south east}%
\inheritbackgroundpath[from=circle]%
\anchor{input}{\centerpoint\advance\pgf@x by-\radius}%
\anchor{output}{\centerpoint\advance\pgf@x by\radius}%
}%
\pgfdeclareshape{direction ee}
{%
\savedanchor\northeast{
\pgf@x=0pt%
\pgfmathsetlength{\pgf@y}{\pgfkeysvalueof{/pgf/minimum height}}%
\pgf@y=.5\pgf@y
}%
\savedanchor\southwest{
\pgfarrowtotallength{\pgfkeysvalueof{/pgf/direction ee arrow}}%
\pgf@x=-\pgf@x%
\pgfmathsetlength{\pgf@y}{\pgfkeysvalueof{/pgf/minimum height}}%
\pgf@y=-.5\pgf@y
}%
\inheritanchor[from=rectangle ee]{center}%
\inheritanchor[from=rectangle ee]{north}%
\inheritanchor[from=rectangle ee]{south}%
\inheritanchor[from=rectangle ee]{east}%
\inheritanchor[from=rectangle ee]{west}%
\inheritanchor[from=rectangle ee]{north east}%
\inheritanchor[from=rectangle ee]{north west}%
\inheritanchor[from=rectangle ee]{south east}%
\inheritanchor[from=rectangle ee]{south west}%
\inheritanchor[from=rectangle ee]{input}%
\inheritanchor[from=rectangle ee]{output}%
\inheritanchorborder[from=rectangle ee]%
\nodeparts{}%
\behindbackgroundpath{
\pgf@process{\southwest}
\pgf@xa=\pgf@x
\pgf@process{\northeast}
\pgf@xb=\pgf@x
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{0pt}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{0pt}}
\pgfusepathqstroke
}%
\beforebackgroundpath{
{
\pgfsys@beginscope
\pgfarrowdraw{\pgfkeysvalueof{/pgf/direction ee arrow}}%
\pgfsys@endscope
}
}%
}%
\pgfkeys{
/pgf/direction ee arrow/.initial=direction ee,
}%
\pgfarrowsdeclare{direction ee}{direction ee}
{%
\pgfmathsetlength\pgfutil@tempdima{\pgfgetarrowoptions{direction ee}}%
\pgfutil@tempdima=.5\pgfutil@tempdima
\pgfarrowsleftextend{+-\pgfutil@tempdima}
\pgfarrowsrightextend{+\pgfutil@tempdima}
}
{
\pgfmathsetlength\pgfutil@tempdima{\pgfgetarrowoptions{direction ee}}%
\pgfsetdash{}{+0pt}
\pgfsetroundjoin
\pgfpathmoveto{\pgfqpoint{-0.5\pgfutil@tempdima}{0.38268343237\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0\pgfutil@tempdima}}
\pgfpathlineto{\pgfqpoint{-0.5\pgfutil@tempdima}{-0.38268343237\pgfutil@tempdima}}
\pgfpathclose
\pgfusepathqfillstroke
}%
\pgfsetarrowoptions{direction ee}{4pt}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.ee.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.logic.IEC.code.tex ====
\usepgflibrary{shapes.gates.logic}%
\pgfkeys{/pgf/.cd,
and gate IEC symbol/.initial=$\char`\&$,
nand gate IEC symbol/.initial=$\char`\&$,
or gate IEC symbol/.initial=$\geq1$,
nor gate IEC symbol/.initial=$\geq1$,
xor gate IEC symbol/.initial={$=1$},
xnor gate IEC symbol/.initial={$=1$},
not gate IEC symbol/.initial=1,
buffer gate IEC symbol/.initial=1,
logic gate IEC symbol align/.initial=top,
logic gate IEC symbol color/.initial=%
}%
\pgfkeys{/pgf/logic gate IEC symbol align/.cd,
top/.code=\pgftransformyshift{\innerhalfheight},
bottom/.code=\pgftransformyshift{-\innerhalfheight},
left/.code=\pgftransformxshift{-\innerhalfwidth},
right/.code=\pgftransformxshift{\innerhalfwidth},
}%
\def\pgf@lib@sh@logicgates@IEC@foregroundpath#1{%
\dimensions%
{%
\pgftransformshift{\centerpoint}%
\edef\pgf@lib@sh@temp{\pgfkeysvalueof{/pgf/logic gate IEC symbol align}}%
\edef\pgf@lib@sh@@temp{/pgf/logic gate IEC symbol align/.cd, \pgf@lib@sh@temp}%
\expandafter\pgfkeys\expandafter{\pgf@lib@sh@@temp}%
\expandafter\pgftext\expandafter[\pgf@lib@sh@temp]{%
\pgfkeysgetvalue{/pgf/logic gate IEC symbol color}{\pgf@lib@sh@temp}%
\ifx\pgf@lib@sh@temp\pgfutil@empty%
\else%
\expandafter\color\expandafter{\pgf@lib@sh@temp}%
\fi%
\pgfkeysvalueof{/pgf/#1 gate IEC symbol}%
}%
}%
}%
\def\pgf@lib@sh@logicgates@dimensions@IEC#1{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\setbox\pgf@hbox\hbox{%
\pgfinterruptpicture
{\pgfkeysvalueof{/pgf/#1 gate IEC symbol}}%
\endpgfinterruptpicture
}%
\pgf@xa.5\wd\pgf@hbox%
\pgf@ya.5\ht\pgf@hbox%
\advance\pgf@ya.5\dp\pgf@hbox%
\ifdim\pgf@x<\pgf@xa%
\pgf@x\pgf@xa%
\fi%
\ifdim\pgf@y<\pgf@ya%
\pgf@y\pgf@ya%
\fi%
\pgfmathaddtolength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\pgfmathaddtolength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum width}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@x<.5\pgf@xa%
\pgf@x.5\pgf@xa%
\fi%
\ifdim\pgf@y<.5\pgf@ya%
\pgf@y.5\pgf@ya%
\fi%
\c@pgf@counta\pgf@lib@sh@logicgate@numinputs%
\advance\c@pgf@counta1\relax%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\pgf@yb2.0\pgf@yb%
\advance\pgf@yb\pgflinewidth%
\pgfmathsetlength\pgf@yc{\pgfkeysvalueof{/pgf/logic gate input sep}}%
\edef\inputsep{\the\pgf@yc}%
\addtosavedmacro\inputsep%
\ifdim\pgf@yb<\pgf@yc%
\pgf@yb\pgf@yc%
\fi%
\multiply\pgf@yb\c@pgf@counta%
\ifdim\pgf@y<.5\pgf@yb%
\pgf@y.5\pgf@yb%
\fi%
\pgf@xa\pgf@x%
\pgfmathaddtolength\pgf@xa{-\pgfkeysvalueof{/pgf/inner xsep}}%
\edef\innerhalfwidth{\the\pgf@xa}%
\addtosavedmacro\innerhalfwidth%
\pgf@ya\pgf@y%
\pgfmathaddtolength\pgf@ya{-\pgfkeysvalueof{/pgf/inner ysep}}%
\edef\innerhalfheight{\the\pgf@ya}%
\addtosavedmacro\innerhalfheight%
\pgfmathaddtolength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathaddtolength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\edef\halfwidth{\the\pgf@x}%
\edef\halfheight{\the\pgf@y}%
\addtosavedmacro\halfwidth%
\addtosavedmacro\halfheight%
}%
\def\pgf@lib@sh@logicgate@IEC@inputanchor#1{%
\dimensions%
\centerpoint%
\advance\pgf@x-\halfwidth%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-#1\endcsname%
\advance\pgf@x-\invertedradius%
\advance\pgf@x-\outerinvertedradius%
\fi%
\pgfutil@tempdima\halfheight%
\multiply\pgfutil@tempdima2\relax%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\multiply\pgfutil@tempdima#1\relax%
\advance\pgf@y\halfheight%
\advance\pgf@y-\pgfutil@tempdima%
}%
\pgfdeclareshape{and gate IEC}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@and gate IEC\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1024}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@and gate IEC@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@and gate IEC@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@IEC@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{An and gate must have at least two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{%
\pgf@lib@sh@logicgates@dimensions@IEC{and}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid west}{%
\dimensions%
\midpoint%
\advance\pgf@x-\halfwidth}%
\anchor{mid east}{%
\dimensions%
\midpoint%
\advance\pgf@x\halfwidth}%
\anchor{base}{\basepoint}%
\anchor{base west}{%
\dimensions%
\basepoint%
\advance\pgf@x-\halfwidth}%
\anchor{base east}{%
\dimensions%
\basepoint%
\advance\pgf@x\halfwidth}%
\anchor{north}{\dimensions\centerpoint\advance\pgf@y\halfheight}%
\anchor{south}{\dimensions\centerpoint\advance\pgf@y-\halfheight}%
\anchor{east}{\dimensions\centerpoint\advance\pgf@x\halfwidth}%
\anchor{west}{\dimensions\centerpoint\advance\pgf@x-\halfwidth}%
\anchor{north east}{\dimensions\centerpoint\advance\pgf@x\halfwidth\advance\pgf@y\halfheight}%
\anchor{north west}{\dimensions\centerpoint\advance\pgf@x-\halfwidth\advance\pgf@y\halfheight}%
\anchor{south east}{\dimensions\centerpoint\advance\pgf@x\halfwidth\advance\pgf@y-\halfheight}%
\anchor{south west}{\dimensions\centerpoint\advance\pgf@x-\halfwidth\advance\pgf@y-\halfheight}%
\anchor{output}{\dimensions\centerpoint\advance\pgf@x\halfwidth}%
\backgroundpath{%
\dimensions%
\pgf@xc\halfwidth%
\pgf@yc\halfheight%
\pgfmathaddtolength\pgf@xc{-\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathaddtolength\pgf@yc{-\pgfkeysvalueof{/pgf/outer xsep}}%
{%
\pgftransformshift{\centerpoint}%
\pgfpathrectangle{\pgfqpoint{-\pgf@xc}{-\pgf@yc}}%
{%
\pgf@xc2.0\pgf@xc%
\pgf@yc2.0\pgf@yc%
\pgfqpoint{\pgf@xc}{\pgf@yc}%
}%
\pgfpathclose%
\pgf@xc-\halfwidth%
\advance\pgf@xc-\invertedradius%
\pgf@yc\halfheight%
\pgfutil@tempdima2.0\pgf@yc%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\pgfmathloop%
\ifnum\pgfmathcounter>\numinputs%
\else%
\advance\pgf@yc-\pgfutil@tempdima%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-\pgfmathcounter\endcsname%
{%
\pgfpathcircle{\pgfqpoint{\pgf@xc}{\pgf@yc}}{\invertedradius}%
}%
\fi%
\repeatpgfmathloop%
}%
}%
\foregroundpath{\pgf@lib@sh@logicgates@IEC@foregroundpath{and}}%
\anchorborder{%
\pgfextract@process\externalpoint{}%
\dimensions%
\pgfpointadd{\centerpoint}{\pgfpointborderrectangle{\externalpoint}{\pgfqpoint{\halfwidth}{\halfheight}}}%
}%
}%
\pgfdeclareshape{nand gate IEC}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@nand gate IEC\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1024}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@nand gate IEC@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@nand gate IEC@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@IEC@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{A nand gate must have at least two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{%
\pgf@lib@sh@logicgates@dimensions@IEC{nand}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\inheritanchor[from=and gate IEC]{center}%
\inheritanchor[from=and gate IEC]{mid}%
\inheritanchor[from=and gate IEC]{mid west}%
\inheritanchor[from=and gate IEC]{mid east}%
\inheritanchor[from=and gate IEC]{base}%
\inheritanchor[from=and gate IEC]{base west}%
\inheritanchor[from=and gate IEC]{base east}%
\inheritanchor[from=and gate IEC]{north}%
\inheritanchor[from=and gate IEC]{south}%
\inheritanchor[from=and gate IEC]{east}%
\inheritanchor[from=and gate IEC]{west}%
\inheritanchor[from=and gate IEC]{north east}%
\inheritanchor[from=and gate IEC]{north west}%
\inheritanchor[from=and gate IEC]{south east}%
\inheritanchor[from=and gate IEC]{south west}%
\anchor{output}{%
\csname pgf@anchor@and gate IEC@east\endcsname%
\advance\pgf@x\invertedradius%
\advance\pgf@x\outerinvertedradius%
}%
\backgroundpath{%
\csname pgf@sh@bg@and gate IEC\endcsname%
\pgfpathcircle{%
\centerpoint%
\advance\pgf@x\halfwidth%
\advance\pgf@x\invertedradius%
}{+\invertedradius}%
}%
\foregroundpath{\pgf@lib@sh@logicgates@IEC@foregroundpath{nand}}%
\inheritanchorborder[from=and gate IEC]%
}%
\pgfdeclareshape{or gate IEC}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@or gate IEC\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1024}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@or gate IEC@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@or gate IEC@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@IEC@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{An or gate must have at least two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{%
\pgf@lib@sh@logicgates@dimensions@IEC{or}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\inheritanchor[from=and gate IEC]{center}%
\inheritanchor[from=and gate IEC]{mid}%
\inheritanchor[from=and gate IEC]{mid west}%
\inheritanchor[from=and gate IEC]{mid east}%
\inheritanchor[from=and gate IEC]{base}%
\inheritanchor[from=and gate IEC]{base west}%
\inheritanchor[from=and gate IEC]{base east}%
\inheritanchor[from=and gate IEC]{north}%
\inheritanchor[from=and gate IEC]{south}%
\inheritanchor[from=and gate IEC]{east}%
\inheritanchor[from=and gate IEC]{west}%
\inheritanchor[from=and gate IEC]{north east}%
\inheritanchor[from=and gate IEC]{north west}%
\inheritanchor[from=and gate IEC]{south east}%
\inheritanchor[from=and gate IEC]{south west}%
\inheritanchor[from=and gate IEC]{output}%
\inheritbackgroundpath[from=and gate IEC]%
\foregroundpath{\pgf@lib@sh@logicgates@IEC@foregroundpath{or}}%
\inheritanchorborder[from=and gate IEC]%
}%
\pgfdeclareshape{nor gate IEC}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@nor gate IEC\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1024}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@nor gate IEC@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@nor gate IEC@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@IEC@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{A nor gate must have at least two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{%
\pgf@lib@sh@logicgates@dimensions@IEC{nor}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\inheritanchor[from=and gate IEC]{center}%
\inheritanchor[from=and gate IEC]{mid}%
\inheritanchor[from=and gate IEC]{mid west}%
\inheritanchor[from=and gate IEC]{mid east}%
\inheritanchor[from=and gate IEC]{base}%
\inheritanchor[from=and gate IEC]{base west}%
\inheritanchor[from=and gate IEC]{base east}%
\inheritanchor[from=and gate IEC]{north}%
\inheritanchor[from=and gate IEC]{south}%
\inheritanchor[from=and gate IEC]{east}%
\inheritanchor[from=and gate IEC]{west}%
\inheritanchor[from=and gate IEC]{north east}%
\inheritanchor[from=and gate IEC]{north west}%
\inheritanchor[from=and gate IEC]{south east}%
\inheritanchor[from=and gate IEC]{south west}%
\inheritanchor[from=nand gate IEC]{output}%
\inheritbackgroundpath[from=nand gate IEC]%
\foregroundpath{\pgf@lib@sh@logicgates@IEC@foregroundpath{nor}}%
\inheritanchorborder[from=and gate IEC]%
}%
\pgfdeclareshape{xor gate IEC}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@xor gate IEC\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{2}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@xor gate IEC@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@xor gate IEC@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@IEC@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{An xor gate must have two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{%
\pgf@lib@sh@logicgates@dimensions@IEC{xor}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\inheritanchor[from=and gate IEC]{center}%
\inheritanchor[from=and gate IEC]{mid}%
\inheritanchor[from=and gate IEC]{mid west}%
\inheritanchor[from=and gate IEC]{mid east}%
\inheritanchor[from=and gate IEC]{base}%
\inheritanchor[from=and gate IEC]{base west}%
\inheritanchor[from=and gate IEC]{base east}%
\inheritanchor[from=and gate IEC]{north}%
\inheritanchor[from=and gate IEC]{south}%
\inheritanchor[from=and gate IEC]{east}%
\inheritanchor[from=and gate IEC]{west}%
\inheritanchor[from=and gate IEC]{north east}%
\inheritanchor[from=and gate IEC]{north west}%
\inheritanchor[from=and gate IEC]{south east}%
\inheritanchor[from=and gate IEC]{south west}%
\inheritanchor[from=and gate IEC]{output}%
\inheritbackgroundpath[from=and gate IEC]%
\foregroundpath{\pgf@lib@sh@logicgates@IEC@foregroundpath{xor}}%
\inheritanchorborder[from=and gate IEC]%
}%
\pgfdeclareshape{xnor gate IEC}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@xnor gate IEC\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1024}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@xnor gate IEC@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@xnor gate IEC@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@IEC@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{A xnor gate must have two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{%
\pgf@lib@sh@logicgates@dimensions@IEC{xnor}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\inheritanchor[from=and gate IEC]{center}%
\inheritanchor[from=and gate IEC]{mid}%
\inheritanchor[from=and gate IEC]{mid west}%
\inheritanchor[from=and gate IEC]{mid east}%
\inheritanchor[from=and gate IEC]{base}%
\inheritanchor[from=and gate IEC]{base west}%
\inheritanchor[from=and gate IEC]{base east}%
\inheritanchor[from=and gate IEC]{north}%
\inheritanchor[from=and gate IEC]{south}%
\inheritanchor[from=and gate IEC]{east}%
\inheritanchor[from=and gate IEC]{west}%
\inheritanchor[from=and gate IEC]{north east}%
\inheritanchor[from=and gate IEC]{north west}%
\inheritanchor[from=and gate IEC]{south east}%
\inheritanchor[from=and gate IEC]{south west}%
\inheritanchor[from=nand gate IEC]{output}%
\inheritbackgroundpath[from=nand gate IEC]%
\foregroundpath{\pgf@lib@sh@logicgates@IEC@foregroundpath{xnor}}%
\inheritanchorborder[from=and gate IEC]%
}%
\pgfdeclareshape{buffer gate IEC}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@buffer gate IEC\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1}%
\expandafter\gdef\csname pgf@anchor@buffer gate IEC@input\endcsname{%
\pgf@lib@sh@logicgate@IEC@inputanchor{1}%
}%
\ifnum\pgf@lib@sh@logicgate@numinputs=0\relax%
\pgferror{A buffer gate must have one inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{%
\pgf@lib@sh@logicgates@dimensions@IEC{xor}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\inheritanchor[from=and gate IEC]{center}%
\inheritanchor[from=and gate IEC]{mid}%
\inheritanchor[from=and gate IEC]{mid west}%
\inheritanchor[from=and gate IEC]{mid east}%
\inheritanchor[from=and gate IEC]{base}%
\inheritanchor[from=and gate IEC]{base west}%
\inheritanchor[from=and gate IEC]{base east}%
\inheritanchor[from=and gate IEC]{north}%
\inheritanchor[from=and gate IEC]{south}%
\inheritanchor[from=and gate IEC]{east}%
\inheritanchor[from=and gate IEC]{west}%
\inheritanchor[from=and gate IEC]{north east}%
\inheritanchor[from=and gate IEC]{north west}%
\inheritanchor[from=and gate IEC]{south east}%
\inheritanchor[from=and gate IEC]{south west}%
\inheritanchor[from=and gate IEC]{output}%
\inheritbackgroundpath[from=and gate IEC]%
\foregroundpath{\pgf@lib@sh@logicgates@IEC@foregroundpath{buffer}}%
\inheritanchorborder[from=and gate IEC]%
}%
\pgfdeclareshape{not gate IEC}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@not gate IEC\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1}%
\pgfutil@ifundefined{pgf@anchor@not gate IEC@input}{%
\expandafter\gdef\csname pgf@anchor@not gate IEC@input\endcsname{%
\pgf@lib@sh@logicgate@IEC@inputanchor{1}%
}}{}%
\ifnum\pgf@lib@sh@logicgate@numinputs=0\relax%
\pgferror{A not gate must have one input}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{%
\pgf@lib@sh@logicgates@dimensions@IEC{not}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\inheritanchor[from=and gate IEC]{center}%
\inheritanchor[from=and gate IEC]{mid}%
\inheritanchor[from=and gate IEC]{mid west}%
\inheritanchor[from=and gate IEC]{mid east}%
\inheritanchor[from=and gate IEC]{base}%
\inheritanchor[from=and gate IEC]{base west}%
\inheritanchor[from=and gate IEC]{base east}%
\inheritanchor[from=and gate IEC]{north}%
\inheritanchor[from=and gate IEC]{south}%
\inheritanchor[from=and gate IEC]{east}%
\inheritanchor[from=and gate IEC]{west}%
\inheritanchor[from=and gate IEC]{north east}%
\inheritanchor[from=and gate IEC]{north west}%
\inheritanchor[from=and gate IEC]{south east}%
\inheritanchor[from=and gate IEC]{south west}%
\inheritanchor[from=nand gate IEC]{output}%
\inheritbackgroundpath[from=nand gate IEC]%
\foregroundpath{\pgf@lib@sh@logicgates@IEC@foregroundpath{not}}%
\inheritanchorborder[from=and gate IEC]%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.logic.IEC.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.logic.US.code.tex ====
\usepgflibrary{shapes.gates.logic}%
\newif\ifpgfgateanchorsuseboundingrectangle%
\pgfkeys{
/pgf/logic gate anchors use bounding box/.is if=pgfgateanchorsuseboundingrectangle,%
}%
\def\pgf@lib@sh@logicgates@dimensions@orUS{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\c@pgf@counta\pgf@lib@sh@logicgate@numinputs%
\advance\c@pgf@counta1\relax%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@ya\pgflinewidth%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/logic gate input sep}}%
\pgf@yb.5\pgf@yb%
\ifdim\pgf@ya<\pgf@yb%
\pgf@ya\pgf@yb%
\fi%
\multiply\pgf@ya\c@pgf@counta%
\ifdim\pgf@y<\pgf@ya%
\pgf@y\pgf@ya%
\fi%
\ifdim\pgf@x>\pgf@y%
\pgf@y\pgf@x%
\else%
\pgf@x\pgf@y%
\fi%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum width}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@y<.5\pgf@ya%
\pgf@y.5\pgf@ya%
\fi%
\pgf@xb\pgf@x%
\advance\pgf@xb1.732051\pgf@y%
\ifdim\pgf@xb<\pgf@xa%
\pgf@xb\pgf@xa%
\pgf@x0.366025\pgf@xb%
\fi%
\ifdim\pgf@x>\pgf@y%
\pgf@y\pgf@x%
\else%
\pgf@x\pgf@y%
\fi%
\edef\halfside{\the\pgf@x}%
\addtosavedmacro\halfside%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\edef\outerxsep{\the\pgf@xa}%
\edef\outerysep{\the\pgf@ya}%
\addtosavedmacro\outerxsep%
\addtosavedmacro\outerysep%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
\edef\halfwidth{\the\pgf@x}%
\edef\halfheight{\the\pgf@y}%
\addtosavedmacro\halfwidth%
\addtosavedmacro\halfheight%
\pgfextract@process\tipanchor{%
\advance\pgf@x-\pgf@xa%
\advance\pgf@y-\pgf@ya%
\pgf@x-.16666\pgf@x%
\pgf@yb2.0\pgf@y%
\advance\pgf@x.866025\pgf@yb%
\advance\pgf@x1.154701\pgf@xa%
\pgf@y0pt%
}%
\addtosavedmacro\tipanchor%
}%
\def\pgf@lib@sh@logicgates@dimensions@andUS{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\c@pgf@counta\pgf@lib@sh@logicgate@numinputs%
\advance\c@pgf@counta1\relax%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@ya\pgflinewidth%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/logic gate input sep}}%
\pgf@yb.5\pgf@yb%
\ifdim\pgf@ya<\pgf@yb%
\pgf@ya\pgf@yb%
\fi%
\multiply\pgf@ya\c@pgf@counta%
\ifdim\pgf@y<\pgf@ya%
\pgf@y\pgf@ya%
\fi%
\ifdim\pgf@x>\pgf@y%
\pgf@y\pgf@x%
\else%
\pgf@x\pgf@y%
\fi%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum width}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@y<.5\pgf@ya%
\pgf@y.5\pgf@ya%
\fi%
\pgf@xb2.5\pgf@x%
\ifdim\pgf@xb<\pgf@xa%
\pgf@xb\pgf@xa%
\pgf@x0.4\pgf@xb%
\fi%
\ifdim\pgf@x>\pgf@y%
\pgf@y\pgf@x%
\else%
\pgf@x\pgf@y%
\fi%
\edef\halfside{\the\pgf@x}%
\addtosavedmacro\halfside%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\edef\outerxsep{\the\pgf@xa}%
\edef\outerysep{\the\pgf@ya}%
\addtosavedmacro\outerxsep%
\addtosavedmacro\outerysep%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
\edef\halfwidth{\the\pgf@x}%
\edef\halfheight{\the\pgf@y}%
\addtosavedmacro\halfwidth%
\addtosavedmacro\halfheight%
}%
\def\pgf@lib@sh@logicgate@AND@inputanchor#1{%
\dimensions%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-.166666\pgf@xa%
\advance\pgf@x-\halfwidth%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-#1\endcsname%
\advance\pgf@x-\invertedradius%
\advance\pgf@x-\outerinvertedradius%
\fi%
\pgfutil@tempdima\halfside%
\multiply\pgfutil@tempdima2\relax%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\multiply\pgfutil@tempdima#1\relax%
\advance\pgf@y\halfside%
\advance\pgf@y-\pgfutil@tempdima%
}%
\pgfdeclareshape{and gate US}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@and gate US\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1024}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@and gate US@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@and gate US@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@AND@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{An and gate must have at least two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{\pgf@lib@sh@logicgates@dimensions@andUS}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\csname pgf@anchor@and gate US@east\endcsname%
\pgf@xa\pgf@x%
\midpoint%
\pgf@x\pgf@xa}%
\anchor{mid west}{%
\csname pgf@anchor@and gate US@west\endcsname%
\pgf@xa\pgf@x%
\midpoint%
\pgf@x\pgf@xa}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\csname pgf@anchor@and gate US@east\endcsname%
\pgf@xa\pgf@x%
\basepoint%
\pgf@x\pgf@xa}%
\anchor{base west}{%
\csname pgf@anchor@and gate US@west\endcsname%
\pgf@xa\pgf@x%
\basepoint%
\pgf@x\pgf@xa}%
\anchor{east}{%
\dimensions%
\pgf@xa\halfwidth%
\pgf@xb\pgf@xa%
\advance\pgf@xb-\outerxsep%
\centerpoint%
\advance\pgf@x.333333\pgf@xb%
\advance\pgf@x\pgf@xa%
}%
\anchor{output}{\csname pgf@anchor@and gate US@east\endcsname}%
\anchor{north east}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\csname pgf@anchor@nand gate US@east\endcsname%
\advance\pgf@y\halfheight%
\else
\pgf@xa\halfwidth%
\pgf@ya\halfheight%
\pgf@xb\pgf@xa%
\advance\pgf@xb-\outerxsep%
\centerpoint%
\advance\pgf@x.333333\pgf@xb%
\advance\pgf@x.707106\pgf@xa%
\advance\pgf@y.707106\pgf@ya%
\fi%
}%
\anchor{south east}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\csname pgf@anchor@nand gate US@east\endcsname%
\advance\pgf@y-\halfheight%
\else
\pgf@xa\halfwidth%
\pgf@ya\halfheight%
\pgf@xb\pgf@xa%
\advance\pgf@xb-\outerxsep%
\centerpoint%
\advance\pgf@x.333333\pgf@xb%
\advance\pgf@x.707106\pgf@xa%
\advance\pgf@y-.707106\pgf@ya%
\fi%
}%
\anchor{north}{%
\dimensions%
\centerpoint%
\advance\pgf@y\halfheight%
}%
\anchor{south}{%
\dimensions%
\centerpoint%
\advance\pgf@y-\halfheight%
}%
\anchor{south west}{%
\dimensions%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-1.16666\pgf@xa%
\advance\pgf@x-\outerxsep%
\advance\pgf@y-\halfheight%
}%
\anchor{north west}{%
\dimensions%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-1.16666\pgf@xa%
\advance\pgf@x-\outerxsep%
\advance\pgf@y\halfheight%
}%
\anchor{west}{%
\dimensions%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-1.16666\pgf@xa%
\advance\pgf@x-\outerxsep%
}%
\backgroundpath{%
\dimensions%
\pgf@xc\halfwidth%
\pgf@yc\halfheight%
\advance\pgf@xc-\outerxsep%
\advance\pgf@yc-\outerysep%
\pgf@xb.333333\pgf@xc%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\pgfqpoint{\pgf@xb}{\pgf@yc}}%
{%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{90}{-90}{\the\pgf@yc}%
}%
\pgf@marshal%
}
\pgfpathlineto{\pgfqpoint{-1.16666\pgf@xc}{-\pgf@yc}}%
\pgfpathlineto{\pgfqpoint{-1.16666\pgf@xc}{\pgf@yc}}%
\pgfpathclose%
\pgfutil@tempdima2.0\pgf@yc%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\pgfmathloop%
\ifnum\pgfmathcounter>\numinputs%
\else%
\advance\pgf@yc-\pgfutil@tempdima%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-\pgfmathcounter\endcsname%
{%
\pgfpathcircle{%
\pgf@xa\halfside%
\pgf@x-1.16666\pgf@xa%
\advance\pgf@x-.5\pgflinewidth%
\advance\pgf@x-\invertedradius%
\pgf@y\pgf@yc%
}{+\invertedradius}%
}%
\fi%
\repeatpgfmathloop%
}%
}%
\anchorborder{%
\pgfextract@process\externalpoint{}%
\pgfextract@process\externalpoint{\pgfpointadd{\centerpoint}{\externalpoint}}%
\pgfmathanglebetweenpoints{\centerpoint}{\externalpoint}%
\let\externalangle\pgfmathresult%
\dimensions%
\pgf@xb\halfside%
\pgf@xc1.66666\pgf@xb%
\advance\pgf@xc\outerxsep%
\pgf@yc\halfheight%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@and gate US@north west\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\centerpoint}{\centerpoint\advance\pgf@x.333333\pgf@xb\advance\pgf@y\pgf@yc}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{%
\centerpoint%
\advance\pgf@x.333333\pgf@xb%
}%
{0}{90}{+\halfwidth and +\halfheight}%
\else%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{\centerpoint\advance\pgf@x.333333\pgf@xb\advance\pgf@y\pgf@yc}%
{\centerpoint\advance\pgf@x-\pgf@xc\advance\pgf@y\pgf@yc}%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\centerpoint\advance\pgf@x.333333\pgf@xb\advance\pgf@y-\pgf@yc}%
\ifdim\externalangle pt>\pgfmathresult pt\relax%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{%
\centerpoint%
\advance\pgf@x.333333\pgf@xb%
}%
{270}{360}{+\halfwidth and +\halfheight}%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@and gate US@south west\endcsname}%
\ifdim\externalangle pt>\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{\centerpoint\advance\pgf@x.333333\pgf@xb\advance\pgf@y-\pgf@yc}%
{\csname pgf@anchor@and gate US@south west\endcsname}%
\else%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{\csname pgf@anchor@and gate US@north west\endcsname}%
{\csname pgf@anchor@and gate US@south west\endcsname}%
\fi%
\fi%
\fi%
}%
}%
\pgfdeclareshape{nand gate US}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@nand gate US\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1024}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@nand gate US@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@nand gate US@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@AND@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{A nand gate must have at least two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{\pgf@lib@sh@logicgates@dimensions@andUS}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\inheritanchor[from=and gate US]{mid}%
\inheritanchor[from=and gate US]{mid east}%
\inheritanchor[from=and gate US]{mid west}%
\inheritanchor[from=and gate US]{base}%
\inheritanchor[from=and gate US]{base east}%
\inheritanchor[from=and gate US]{base west}%
\anchor{output}{%
\dimensions
\pgfpointadd{\centerpoint}{%
\pgf@xa\halfside%
\pgf@x1.33333\pgf@xa%
\advance\pgf@x\invertedradius%
\advance\pgf@x\outerinvertedradius%
\advance\pgf@x\outerxsep%
\pgf@y0pt%
}%
}%
\inheritanchor[from=and gate US]{east}%
\inheritanchor[from=and gate US]{north east}%
\inheritanchor[from=and gate US]{south east}%
\inheritanchor[from=and gate US]{north}%
\inheritanchor[from=and gate US]{south}%
\inheritanchor[from=and gate US]{south west}%
\inheritanchor[from=and gate US]{north west}%
\inheritanchor[from=and gate US]{west}%
\backgroundpath{%
\dimensions%
\pgf@xc\halfwidth%
\pgf@yc\halfheight%
\advance\pgf@xc-\outerxsep%
\advance\pgf@yc-\outerysep%
\pgf@xb.333333\pgf@xc%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\pgfqpoint{\pgf@xb}{\pgf@yc}}%
{%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{90}{-90}{\the\pgf@yc}%
}%
\pgf@marshal%
}
\pgfpathlineto{\pgfqpoint{-1.16666\pgf@xc}{-\pgf@yc}}%
\pgfpathlineto{\pgfqpoint{-1.16666\pgf@xc}{\pgf@yc}}%
\pgfpathclose%
\pgfutil@tempdima2.0\pgf@yc%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\pgfmathloop%
\ifnum\pgfmathcounter>\numinputs%
\else%
\advance\pgf@yc-\pgfutil@tempdima%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-\pgfmathcounter\endcsname%
{%
\pgfpathcircle{%
\pgf@xa\halfside%
\pgf@x-1.166666\pgf@xa%
\advance\pgf@x-.5\pgflinewidth%
\advance\pgf@x-\invertedradius%
\pgf@y\pgf@yc%
}{+\invertedradius}%
}%
\fi%
\repeatpgfmathloop%
{%
\pgfpathcircle{%
\pgf@x1.33333\pgf@xc%
\advance\pgf@x\outerinvertedradius%
\pgf@y0pt%
}{+\invertedradius}%
}%
}%
}%
\inheritanchorborder[from=and gate US]%
}%
\def\pgf@lib@sh@logicgate@OR@inputanchor#1{%
\dimensions%
\pgf@ya\halfside%
\pgf@yb2.0\pgf@ya%
\pgfutil@tempdima\halfside%
\multiply\pgfutil@tempdima2\relax%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\multiply\pgfutil@tempdima#1\relax%
\pgf@yc\pgf@ya%
\advance\pgf@yc-\pgfutil@tempdima%
\pgf@xb\pgf@yb%
\advance\pgf@yb-\halflinewidth%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@yc}}{\pgfmath@tonumber{\pgf@yb}}%
\pgfmathasin@{\pgfmathresult}%
\pgfmathcos@{\pgfmathresult}%
\pgf@xc-1.166666\pgf@ya%
\advance\pgf@xc-.866025\pgf@xb%
\advance\pgf@xc\pgfmathresult\pgf@yb%
\advance\pgf@xc\halflinewidth%
\advance\pgf@xc-\outerxsep%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-#1\endcsname%
\advance\pgf@xc-\invertedradius%
\advance\pgf@xc-\outerinvertedradius%
\fi%
\centerpoint%
\advance\pgf@x\pgf@xc%
\advance\pgf@y\pgf@yc%
}%
\pgfdeclareshape{or gate US}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@or gate US\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1024}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@or gate US@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@or gate US@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@OR@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{An or gate must have at least two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\halflinewidth{%
\pgf@x.5\pgflinewidth%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{\pgf@lib@sh@logicgates@dimensions@orUS}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\csname pgf@anchor@or gate US@east\endcsname%
\pgf@xa\pgf@x%
\midpoint%
\pgf@x\pgf@xa}%
\anchor{mid west}{%
\csname pgf@anchor@or gate US@north west\endcsname%
\pgf@xa\pgf@x%
\midpoint%
\pgf@x\pgf@xa}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\csname pgf@anchor@or gate US@east\endcsname%
\pgf@xa\pgf@x%
\basepoint%
\pgf@x\pgf@xa}%
\anchor{base west}{%
\csname pgf@anchor@or gate US@north west\endcsname%
\pgf@xa\pgf@x%
\basepoint%
\pgf@x\pgf@xa}%
\anchor{east}{%
\dimensions%
\pgfpointadd{\centerpoint}{\tipanchor}%
}%
\anchor{output}{\csname pgf@anchor@or gate US@east\endcsname}%
\anchor{north east}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\tipanchor%
\pgf@xa\pgf@x%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\halfheight%
\else%
\centerpoint%
\pgf@xa\halfwidth%
\pgf@ya\halfheight%
\pgf@xb\halfside%
\advance\pgf@x-.166666\pgf@xb%
\advance\pgf@xa\pgf@xb%
\advance\pgf@x.5\pgf@xa%
\advance\pgf@y-\pgf@xb%
\advance\pgf@ya\pgf@xb%
\advance\pgf@y.866025\pgf@ya%
\fi%
}%
\anchor{south east}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\tipanchor%
\pgf@xa\pgf@x%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y-\halfheight%
\else
\centerpoint%
\pgf@xa\halfwidth%
\pgf@ya\halfheight%
\pgf@xb\halfside%
\advance\pgf@x-.166666\pgf@xb%
\advance\pgf@xa\pgf@xb%
\advance\pgf@x.5\pgf@xa%
\advance\pgf@y\pgf@xb%
\advance\pgf@ya\pgf@xb%
\advance\pgf@y-.866025\pgf@ya%
\fi%
}%
\anchor{north}{%
\dimensions%
\centerpoint%
\ifpgfgateanchorsuseboundingrectangle%
\advance\pgf@y\halfheight%
\else%
\pgf@ya\halfheight%
\advance\pgf@y.993043\pgf@ya%
\fi%
}%
\anchor{south}{%
\dimensions%
\centerpoint%
\ifpgfgateanchorsuseboundingrectangle%
\advance\pgf@y-\halfheight%
\else%
\pgf@ya\halfheight%
\advance\pgf@y-.993043\pgf@ya%
\fi%
}%
\anchor{south west}{%
\dimensions%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-1.16666\pgf@xa%
\pgf@xa\outerxsep%
\advance\pgf@x-1.732050\pgf@xa%
\advance\pgf@y-\halfheight%
}%
\anchor{north west}{%
\dimensions%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-1.16666\pgf@xa%
\pgf@xa\outerxsep%
\advance\pgf@x-1.732050\pgf@xa%
\advance\pgf@y\halfheight%
}%
\anchor{west}{%
\dimensions%
\centerpoint%
\pgf@xa\halfside%
\ifpgfgateanchorsuseboundingrectangle%
\advance\pgf@x-1.16666\pgf@xa%
\advance\pgf@x-\outerxsep%
\else%
\advance\pgf@x-1.16666\pgf@xa%
\advance\pgf@x-\outerxsep%
\advance\pgf@x0.267949\pgf@xa%
\fi%
}%
\backgroundpath{%
\dimensions%
\pgf@xc\halfwidth%
\pgf@yc\halfheight%
\advance\pgf@xc-\outerxsep%
\advance\pgf@yc-\outerysep%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\pgfqpoint{-.16666\pgf@xc}{\pgf@yc}}%
{%
\pgf@yc2.0\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{90}{30}{\the\pgf@yc}%
}%
\pgf@marshal%
}
{%
\pgf@yc2.0\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{-30}{-90}{\the\pgf@yc}%
}%
\pgf@marshal%
}
\pgfpathlineto{\pgfqpoint{-1.16666\pgf@xc}{-\pgf@yc}}%
{%
\pgf@yc2.0\pgf@yc%
\pgfpatharc{-30}{0}{+\pgf@yc}%
}
{%
\pgf@yc2.0\pgf@yc%
\pgfpatharc{0}{30}{+\pgf@yc}%
}%
\pgfpathclose%
\pgfutil@tempdima2.0\pgf@yc%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\pgfmathloop%
\ifnum\pgfmathcounter>\numinputs%
\else%
\advance\pgf@yc-\pgfutil@tempdima%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-\pgfmathcounter\endcsname%
{%
\pgfpathcircle{%
\pgf@ya\halfside%
\pgf@yb2.0\pgf@ya%
\pgf@xa\pgf@yb%
\advance\pgf@yb-\halflinewidth%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@yc}}{\pgfmath@tonumber{\pgf@yb}}%
\let\sineangle\pgfmathresult%
\pgfmathasin@{\pgfmathresult}%
\pgfmathcos@{\pgfmathresult}%
\pgf@x-1.166666\pgf@ya%
\advance\pgf@x-.866025\pgf@xa%
\advance\pgf@x\pgfmathresult\pgf@yb%
\advance\pgf@x-\invertedradius%
\pgf@y\pgf@yc%
}{+\invertedradius}%
}%
\fi%
\repeatpgfmathloop%
}%
}%
\anchorborder{%
\pgfextract@process\externalpoint{}%
\pgfextract@process\externalpoint{\pgfpointadd{\centerpoint}{\externalpoint}}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\centerpoint%
\pgf@xb\pgf@x%
\pgf@yb\pgf@y%
\pgfmathanglebetweenpoints{\centerpoint}{\externalpoint}%
\let\externalangle\pgfmathresult%
\dimensions%
\pgf@xc\halfside%
\pgf@xc-.166666\pgf@xc%
\ifdim\pgf@xa<\pgf@xc%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@or gate US@north west\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{%
\pgfgateanchorsuseboundingrectangletrue%
\csname pgf@anchor@or gate US@north\endcsname%
}%
{\csname pgf@anchor@or gate US@north west\endcsname}%
\else%
\pgfmathsubtract@{360}{\pgfmathresult}%
\ifdim\externalangle pt>\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{%
\pgfgateanchorsuseboundingrectangletrue%
\csname pgf@anchor@or gate US@south\endcsname%
}%
{\csname pgf@anchor@or gate US@south west\endcsname}%
\else%
\ifdim\pgf@ya>\pgf@yb%
\pgf@yc\halfheight%
\advance\pgf@yc\halfside%
\advance\pgf@yc-\outerxsep%
\pgfextract@process\point{%
\pgfmathpointintersectionoflineandarc{\centerpoint}{\externalpoint}%
{%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-1.166666\pgf@xa%
\pgf@xa2.0\pgf@xa%
\advance\pgf@x-.866025\pgf@xa%
\advance\pgf@x-\outerxsep%
}%
{0}{90}{+\pgf@yc}%
}%
\else%
\pgf@yc\halfheight%
\advance\pgf@yc\halfside%
\advance\pgf@yc-\outerxsep%
\pgfextract@process\point{%
\pgfmathpointintersectionoflineandarc{\centerpoint}{\externalpoint}%
{%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-1.166666\pgf@xa%
\pgf@xa2.0\pgf@xa%
\advance\pgf@x-.866025\pgf@xa%
\advance\pgf@x-\outerxsep%
}%
{270}{360}{+\pgf@yc}%
}%
\fi%
\fi%
\fi%
\else%
\ifdim\pgf@y=0pt\relax%
\csname pgf@anchor@and gate US@east\endcsname%
\else%
\pgf@xc\halfwidth%
\advance\pgf@xc\halfside%
\pgf@yc\halfheight%
\advance\pgf@yc\halfside%
\pgf@xb\halfside%
\pgf@xb-.166666\pgf@xb%
\ifdim\pgf@ya<0pt%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{%
\centerpoint%
\advance\pgf@y\halfside%
\advance\pgf@x\pgf@xb%
}%
{270}{330}{+\pgf@yc}%
\else%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{%
\centerpoint%
\advance\pgf@y-\halfside%
\advance\pgf@x\pgf@xb%
}%
{30}{90}{+\pgf@xc and +\pgf@yc}%
\fi%
\fi%
\fi%
}%
}%
\pgfdeclareshape{nor gate US}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@nor gate US\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1024}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@nor gate US@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@nor gate US@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@OR@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{A nor gate must have at least two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\halflinewidth{%
\pgf@x.5\pgflinewidth%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{\pgf@lib@sh@logicgates@dimensions@orUS}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\inheritanchor[from=or gate US]{center}%
\inheritanchor[from=or gate US]{mid}%
\inheritanchor[from=or gate US]{mid east}%
\inheritanchor[from=or gate US]{mid west}%
\inheritanchor[from=or gate US]{base}%
\inheritanchor[from=or gate US]{base east}%
\inheritanchor[from=or gate US]{base west}%
\inheritanchor[from=or gate US]{east}%
\inheritanchor[from=or gate US]{north east}%
\inheritanchor[from=or gate US]{south east}%
\inheritanchor[from=or gate US]{north}%
\inheritanchor[from=or gate US]{south}%
\inheritanchor[from=or gate US]{south west}%
\inheritanchor[from=or gate US]{north west}%
\inheritanchor[from=or gate US]{west}%
\anchor{output}{%
\dimensions%
\centerpoint%
\pgf@xc\halfside%
\pgf@yc\pgf@xc%
\advance\pgf@x-.166666\pgf@xc%
\pgf@yc2.0\pgf@yc%
\advance\pgf@x.866025\pgf@yc%
\advance\pgf@x\outerinvertedradius%
\advance\pgf@x\invertedradius%
\advance\pgf@x\outerxsep%
}%
\backgroundpath{%
\dimensions%
\pgf@xc\halfwidth%
\pgf@yc\halfheight%
\advance\pgf@xc-\outerxsep%
\advance\pgf@yc-\outerysep%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\pgfqpoint{-.16666\pgf@xc}{\pgf@yc}}%
{%
\pgf@yc2.0\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{90}{30}{\the\pgf@yc}%
}%
\pgf@marshal%
}
{%
\pgf@yc2.0\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{-30}{-90}{\the\pgf@yc}%
}%
\pgf@marshal%
}
\pgfpathlineto{\pgfqpoint{-1.16666\pgf@xc}{-\pgf@yc}}%
{%
\pgf@yc2.0\pgf@yc%
\pgfpatharc{-30}{0}{+\pgf@yc}%
}
{%
\pgf@yc2.0\pgf@yc%
\pgfpatharc{0}{30}{+\pgf@yc}%
}%
\pgfpathclose%
{%
\pgfpathcircle{%
\pgf@x-.166666\pgf@xc%
\pgf@yc2.0\pgf@yc%
\advance\pgf@x.866025\pgf@yc%
\advance\pgf@x\outerinvertedradius%
\pgf@y0pt%
}{+\invertedradius}%
}%
\pgfutil@tempdima2.0\pgf@yc%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\pgfmathloop%
\ifnum\pgfmathcounter>\numinputs%
\else%
\advance\pgf@yc-\pgfutil@tempdima%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-\pgfmathcounter\endcsname%
{%
\pgfpathcircle{%
\pgf@ya\halfside%
\pgf@yb2.0\pgf@ya%
\pgf@xa\pgf@yb%
\advance\pgf@yb-\halflinewidth%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@yc}}{\pgfmath@tonumber{\pgf@yb}}%
\let\sineangle\pgfmathresult%
\pgfmathasin@{\pgfmathresult}%
\pgfmathcos@{\pgfmathresult}%
\pgf@x-1.166666\pgf@ya%
\advance\pgf@x-.866025\pgf@xa%
\advance\pgf@x\pgfmathresult\pgf@yb%
\advance\pgf@x-\invertedradius%
\pgf@y\pgf@yc%
}{+\invertedradius}%
}%
\fi%
\repeatpgfmathloop%
}%
}%
\inheritanchorborder[from=or gate US]%
}%
\def\pgf@lib@sh@logicgate@XOR@inputanchor#1{%
\dimensions%
\pgf@ya\halfside%
\pgf@yb2.0\pgf@ya%
\pgfutil@tempdima\halfside%
\multiply\pgfutil@tempdima2\relax%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\multiply\pgfutil@tempdima#1\relax%
\pgf@yc\pgf@ya%
\advance\pgf@yc-\pgfutil@tempdima%
\pgf@xb\pgf@yb%
\advance\pgf@yb-\halflinewidth%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@yc}}{\pgfmath@tonumber{\pgf@yb}}%
\pgfmathasin@{\pgfmathresult}%
\pgfmathcos@{\pgfmathresult}%
\pgf@xc-1.166666\pgf@ya%
\advance\pgf@xc-.866025\pgf@xb%
\advance\pgf@xc\pgfmathresult\pgf@yb%
\advance\pgf@xc\halflinewidth%
\advance\pgf@xc-\outerxsep%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-#1\endcsname%
\advance\pgf@xc-\invertedradius%
\advance\pgf@xc-\outerinvertedradius%
\fi%
\centerpoint%
\advance\pgf@x\pgf@xc%
\advance\pgf@y\pgf@yc%
\pgf@xa\halfside%
\advance\pgf@x-.333333\pgf@xa%
}%
\pgfdeclareshape{xor gate US}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@xor gate US\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{2}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@xor gate US@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@xor gate US@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@XOR@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{An xor gate must have at two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\halflinewidth{%
\pgf@x.5\pgflinewidth%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{\pgf@lib@sh@logicgates@dimensions@orUS}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\inheritanchor[from=or gate US]{mid east}%
\anchor{mid west}{%
\csname pgf@anchor@xor gate US@north west\endcsname%
\pgf@xa\pgf@x%
\midpoint%
\pgf@x\pgf@xa}%
\anchor{base}{\basepoint}%
\inheritanchor[from=or gate US]{base east}%
\anchor{base west}{%
\csname pgf@anchor@xor gate US@north west\endcsname%
\pgf@xa\pgf@x%
\basepoint%
\pgf@x\pgf@xa}%
\inheritanchor[from=or gate US]{base}%
\inheritanchor[from=or gate US]{output}%
\inheritanchor[from=or gate US]{east}%
\inheritanchor[from=or gate US]{north east}%
\inheritanchor[from=or gate US]{south east}%
\inheritanchor[from=or gate US]{north}%
\inheritanchor[from=or gate US]{south}%
\anchor{south west}{%
\dimensions%
\pgf@xa\halfside%
\pgf@xa-3.232051\pgf@xa%
\pgf@xb\halfside%
\pgf@xb2.0\pgf@xb%
\advance\pgf@xb-\halflinewidth%
\advance\pgf@xa.866025\pgf@xb%
\pgf@ya.5\pgf@xb%
\centerpoint%
\advance\pgf@x\pgf@xa%
\ifpgfgateanchorsuseboundingrectangle%
\advance\pgf@y-\halfheight%
\else%
\advance\pgf@y-\pgf@ya%
\fi%
}%
\anchor{north west}{%
\dimensions%
\pgf@xa\halfside%
\pgf@xa-3.232051\pgf@xa%
\pgf@xb\halfside%
\pgf@xb2.0\pgf@xb%
\advance\pgf@xb-\halflinewidth%
\advance\pgf@xa.866025\pgf@xb%
\pgf@ya.5\pgf@xb%
\centerpoint%
\advance\pgf@x\pgf@xa%
\ifpgfgateanchorsuseboundingrectangle%
\advance\pgf@y\halfheight%
\else%
\advance\pgf@y\pgf@ya%
\fi%
}%
\anchor{west}{%
\dimensions%
\pgf@ya\halfside%
\pgf@yb2.0\pgf@ya%
\pgf@xb\pgf@yb%
\advance\pgf@yb-\halflinewidth%
\pgfmathdivide@{0}{\pgfmath@tonumber{\pgf@yb}}%
\pgfmathasin@{\pgfmathresult}%
\pgfmathcos@{\pgfmathresult}%
\pgf@xc-1.166666\pgf@ya%
\advance\pgf@xc-.866025\pgf@xb%
\advance\pgf@xc\pgfmathresult\pgf@yb%
\advance\pgf@xc\halflinewidth%
\advance\pgf@xc-\outerxsep%
\centerpoint%
\advance\pgf@x\pgf@xc%
\pgf@xa\halfside%
\advance\pgf@x-.333333\pgf@xa%
\ifpgfgateanchorsuseboundingrectangle%
\pgf@xa2.0\pgf@xa%
\advance\pgf@x-0.133974\pgf@xa%
\fi%
}%
\backgroundpath{%
\dimensions%
\pgf@xc\halfwidth%
\pgf@yc\halfheight%
\advance\pgf@xc-\outerxsep%
\advance\pgf@yc-\outerysep%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\pgfqpoint{-.16666\pgf@xc}{\pgf@yc}}%
{%
\pgf@yc2.0\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{90}{30}{\the\pgf@yc}%
}%
\pgf@marshal%
}
{%
\pgf@yc2.0\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{-30}{-90}{\the\pgf@yc}%
}%
\pgf@marshal%
}
\pgfpathlineto{\pgfqpoint{-1.16666\pgf@xc}{-\pgf@yc}}%
{%
\pgf@yc2.66666\pgf@yc%
\pgfpatharc{-22}{0}{+1.166666\pgf@yc and +\pgf@yc}%
}
{%
\pgf@yc2.66666\pgf@yc%
\pgfpatharc{0}{22}{+1.166666\pgf@yc and +\pgf@yc}%
}%
\pgfpathclose%
\pgfutil@tempdima2.0\pgf@yc%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\pgfmathloop%
\ifnum\pgfmathcounter>\numinputs%
\else%
\advance\pgf@yc-\pgfutil@tempdima%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-\pgfmathcounter\endcsname%
{%
\pgfpathcircle{%
\pgf@ya\halfside%
\pgf@yb2.0\pgf@ya%
\pgf@xa\pgf@yb%
\advance\pgf@yb-\halflinewidth%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@yc}}{\pgfmath@tonumber{\pgf@yb}}%
\pgfmathasin@{\pgfmathresult}%
\pgfmathcos@{\pgfmathresult}%
\pgf@x-1.5\pgf@ya%
\advance\pgf@x-.866025\pgf@xa%
\advance\pgf@x\pgfmathresult\pgf@yb%
\advance\pgf@x-\invertedradius%
\pgf@y\pgf@yc%
}{+\invertedradius}%
}%
\fi%
\repeatpgfmathloop%
\pgf@xc\halfside%
\pgf@yc\halfside%
\pgfpathmoveto{\pgfqpoint{-1.5\pgf@xc}{-\pgf@yc}}%
\pgf@yc2.0\pgf@yc%
\pgfmathloop%
\ifnum\pgfmathcounter<61\relax%
{%
\pgfextract@process\point{%
\pgfpointadd{%
\pgf@x\halfside%
\pgf@x-3.232051\pgf@x%
\pgf@y0pt%
}{%
\pgfpointpolar{\pgfmathcounter-30}{+\pgf@yc}%
}%
}%
\pgfpathlineto{\point}%
\pgfpathmoveto{\point}%
}
\repeatpgfmathloop%
}%
}%
\anchorborder{%
\pgfextract@process\externalpoint{}%
\pgfextract@process\externalpoint{\pgfpointadd{\centerpoint}{\externalpoint}}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\centerpoint%
\pgf@xb\pgf@x%
\pgf@yb\pgf@y%
\pgfmathanglebetweenpoints{\centerpoint}{\externalpoint}%
\let\externalangle\pgfmathresult%
\dimensions%
\pgf@xc\halfside%
\pgf@xc-.166666\pgf@xc%
\ifdim\pgf@xa<\pgf@xc%
\pgfmathanglebetweenpoints{\centerpoint}%
{%
\pgfgateanchorsuseboundingrectangletrue%
\csname pgf@anchor@xor gate US@north west\endcsname%
}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{%
\pgfgateanchorsuseboundingrectangletrue%
\csname pgf@anchor@xor gate US@north\endcsname%
}%
{%
\pgfgateanchorsuseboundingrectangletrue%
\csname pgf@anchor@xor gate US@north west\endcsname%
}%
\else%
\pgfmathsubtract@{360}{\pgfmathresult}%
\ifdim\externalangle pt>\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{%
\pgfgateanchorsuseboundingrectangletrue%
\csname pgf@anchor@xor gate US@south\endcsname%
}%
{%
\pgfgateanchorsuseboundingrectangletrue%
\csname pgf@anchor@xor gate US@south west\endcsname%
}%
\else%
\ifdim\pgf@ya>\pgf@yb%
\pgf@yc\halfheight%
\advance\pgf@yc\halfside%
\advance\pgf@yc-\outerxsep%
\pgf@process{%
\pgfmathpointintersectionoflineandarc{\centerpoint}{\externalpoint}%
{%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-1.166666\pgf@xa%
\pgf@xa2.0\pgf@xa%
\advance\pgf@x-.866025\pgf@xa%
\advance\pgf@x-\outerxsep%
\advance\pgf@x-.166666\pgf@xa%
}%
{0}{90}{+\pgf@yc}%
}%
\else%
\pgf@yc\halfheight%
\advance\pgf@yc\halfside%
\advance\pgf@yc-\outerxsep%
\pgf@process{%
\pgfmathpointintersectionoflineandarc{\centerpoint}{\externalpoint}%
{%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-1.166666\pgf@xa%
\pgf@xa2.0\pgf@xa%
\advance\pgf@x-.866025\pgf@xa%
\advance\pgf@x-\outerxsep%
\advance\pgf@x-.166666\pgf@xa%
}%
{270}{360}{+\pgf@yc}%
}%
\fi%
\fi%
\fi%
\else%
\ifdim\pgf@y=0pt\relax%
\csname pgf@anchor@and gate US@east\endcsname%
\else%
\pgf@xc\halfwidth%
\advance\pgf@xc\halfside%
\pgf@yc\halfheight%
\advance\pgf@yc\halfside%
\pgf@xb\halfside%
\pgf@xb-.166666\pgf@xb%
\ifdim\pgf@ya<0pt%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{%
\centerpoint%
\advance\pgf@y\halfside%
\advance\pgf@x\pgf@xb%
}%
{270}{330}{+\pgf@yc}%
\else%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{%
\centerpoint%
\advance\pgf@y-\halfside%
\advance\pgf@x\pgf@xb%
}%
{30}{90}{+\pgf@xc and +\pgf@yc}%
\fi%
\fi%
\fi%
}%
}%
\pgfdeclareshape{xnor gate US}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@xnor gate US\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{2}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@xnor gate US@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@xnor gate US@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@XOR@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{An xnor gate must have two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\halflinewidth{%
\pgf@x.5\pgflinewidth%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{\pgf@lib@sh@logicgates@dimensions@orUS}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\inheritanchor[from=xor gate US]{mid east}%
\inheritanchor[from=xor gate US]{mid west}%
\anchor{base}{\basepoint}%
\inheritanchor[from=xor gate US]{base east}%
\inheritanchor[from=xor gate US]{base west}%
\inheritanchor[from=xor gate US]{base}%
\inheritanchor[from=nor gate US]{output}%
\inheritanchor[from=xor gate US]{east}%
\inheritanchor[from=xor gate US]{north east}%
\inheritanchor[from=xor gate US]{south east}%
\inheritanchor[from=xor gate US]{north}%
\inheritanchor[from=xor gate US]{south}%
\inheritanchor[from=xor gate US]{south west}%
\inheritanchor[from=xor gate US]{north west}%
\inheritanchor[from=xor gate US]{west}%
\backgroundpath{%
\dimensions%
\pgf@xc\halfwidth%
\pgf@yc\halfheight%
\advance\pgf@xc-\outerxsep%
\advance\pgf@yc-\outerysep%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\pgfqpoint{-.16666\pgf@xc}{\pgf@yc}}%
{%
\pgf@yc2.0\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{90}{30}{\the\pgf@yc}%
}%
\pgf@marshal%
}
{%
\pgf@yc2.0\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{-30}{-90}{\the\pgf@yc}%
}%
\pgf@marshal%
}
\pgfpathlineto{\pgfqpoint{-1.16666\pgf@xc}{-\pgf@yc}}%
{%
\pgf@yc2.66666\pgf@yc%
\pgfpatharc{-22}{0}{+1.166666\pgf@yc and +\pgf@yc}%
}
{%
\pgf@yc2.66666\pgf@yc%
\pgfpatharc{0}{22}{+1.166666\pgf@yc and +\pgf@yc}%
}%
\pgfpathclose%
{%
\pgfpathcircle{%
\pgf@x-.166666\pgf@xc%
\pgf@yc2.0\pgf@yc%
\advance\pgf@x.866025\pgf@yc%
\advance\pgf@x\outerinvertedradius%
\pgf@y0pt%
}{+\invertedradius}%
}%
\pgfutil@tempdima2.0\pgf@yc%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\pgfmathloop%
\ifnum\pgfmathcounter>\numinputs%
\else%
\advance\pgf@yc-\pgfutil@tempdima%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-\pgfmathcounter\endcsname%
{%
\pgfpathcircle{%
\pgf@ya\halfside%
\pgf@yb2.0\pgf@ya%
\pgf@xa\pgf@yb%
\advance\pgf@yb-\halflinewidth%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@yc}}{\pgfmath@tonumber{\pgf@yb}}%
\pgfmathasin@{\pgfmathresult}%
\pgfmathcos@{\pgfmathresult}%
\pgf@x-1.5\pgf@ya%
\advance\pgf@x-.866025\pgf@xa%
\advance\pgf@x\pgfmathresult\pgf@yb%
\advance\pgf@x-\invertedradius%
\pgf@y\pgf@yc%
}{+\invertedradius}%
}%
\fi%
\repeatpgfmathloop%
\pgf@xc\halfside%
\pgf@yc\halfside%
\pgfpathmoveto{\pgfqpoint{-1.5\pgf@xc}{-\pgf@yc}}%
\pgf@yc2.0\pgf@yc%
\pgfmathloop%
\ifnum\pgfmathcounter<61\relax%
{%
\pgfextract@process\point{%
\pgfpointadd{%
\pgf@x\halfside%
\pgf@x-3.232051\pgf@x%
\pgf@y0pt%
}{%
\pgfpointpolar{\pgfmathcounter-30}{+\pgf@yc}%
}%
}%
\pgfpathlineto{\point}%
\pgfpathmoveto{\point}%
}
\repeatpgfmathloop%
}%
}%
\inheritanchorborder[from=xor gate US]%
}%
\pgfdeclareshape{not gate US}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@not gate US\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1}%
\ifnum\pgf@lib@sh@logicgate@numinputs=0\relax%
\pgferror{A not gate must have one input}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\halflinewidth{%
\pgf@x.5\pgflinewidth%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{\pgf@lib@sh@logicgates@dimensions@orUS}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\midpoint%
\pgfutil@tempdima\pgf@y%
\csname pgf@anchor@not gate US@east\endcsname%
\pgf@y\pgfutil@tempdima%
}%
\anchor{mid west}{%
\dimensions%
\pgf@xc\halfside%
\pgf@xc-.833333\pgf@xc%
\advance\pgf@xc-\outerxsep%
\midpoint%
\advance\pgf@x\pgf@xc%
}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\basepoint%
\pgfutil@tempdima\pgf@y%
\csname pgf@anchor@not gate US@east\endcsname%
\pgf@y\pgfutil@tempdima%
}%
\anchor{base west}{%
\dimensions%
\pgf@xc\halfside%
\pgf@xc-.833333\pgf@xc%
\advance\pgf@xc-\outerxsep%
\basepoint%
\advance\pgf@x\pgf@xc%
}%
\inheritanchor[from=and gate US]{base}%
\anchor{output}{%
\dimensions%
\pgf@xc\halfside%
\centerpoint%
\advance\pgf@x-.166666\pgf@xc%
\pgf@xc2.0\pgf@xc%
\advance\pgf@x.866025\pgf@xc%
\advance\pgf@x\invertedradius%
\advance\pgf@x\outerinvertedradius%
\advance\pgf@x\outerxsep%
}%
\anchor{east}{%
\dimensions%
\tipanchor%
\pgf@xa\pgf@x%
\centerpoint%
\advance\pgf@x\pgf@xa%
}%
\anchor{north}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\csname pgf@anchor@not gate US@north west\endcsname%
\pgf@ya\pgf@y%
\centerpoint%
\pgf@y\pgf@ya%
\else%
\pgfpointintersectionoflines{\centerpoint}{\centerpoint\advance\pgf@y1pt}%
{\csname pgf@anchor@not gate US@north west\endcsname}%
{%
\pgfpointadd{\centerpoint}{%
\tipanchor%
\pgf@xa\outerxsep%
\advance\pgf@x2.350943\pgf@xa%
}%
}%
\fi%
}%
\anchor{south}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\csname pgf@anchor@not gate US@south west\endcsname%
\pgf@ya\pgf@y%
\centerpoint%
\pgf@y\pgf@ya%
\else%
\pgfpointintersectionoflines{\centerpoint}{\centerpoint\advance\pgf@y-1pt}%
{\csname pgf@anchor@not gate US@south west\endcsname}%
{%
\pgfpointadd{\centerpoint}{%
\tipanchor%
\pgf@xa\outerxsep%
\advance\pgf@x2.350943\pgf@xa%
}%
}%
\fi%
}%
\anchor{south east}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\csname pgf@anchor@not gate US@south west\endcsname%
\pgf@ya\pgf@y%
\pgf@process{%
\dimensions%
\tipanchor%
\pgf@xa\pgf@x%
\centerpoint%
\advance\pgf@x\pgf@xa%
}%
\pgf@y\pgf@ya%
\else%
\pgfpointintersectionoflines{\centerpoint}{\centerpoint\advance\pgf@x1pt\advance\pgf@y-1pt}%
{\csname pgf@anchor@not gate US@south west\endcsname}%
{%
\pgfpointadd{\centerpoint}{%
\tipanchor%
\pgf@xa\outerxsep%
\advance\pgf@x2.350943\pgf@xa%
}%
}%
\fi%
}%
\anchor{north east}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\csname pgf@anchor@not gate US@north west\endcsname%
\pgf@ya\pgf@y%
\pgf@process{%
\dimensions%
\tipanchor%
\pgf@xa\pgf@x%
\centerpoint%
\advance\pgf@x\pgf@xa%
}%
\pgf@y\pgf@ya%
\else%
\pgfpointintersectionoflines{\centerpoint}{\centerpoint\advance\pgf@x1pt\advance\pgf@y1pt}%
{\csname pgf@anchor@not gate US@north west\endcsname}%
{%
\pgfpointadd{\centerpoint}{%
\tipanchor%
\pgf@xa\outerxsep%
\advance\pgf@x2.350943\pgf@xa%
}%
}%
\fi%
}%
\anchor{south west}{%
\dimensions%
\pgf@xa\halfside%
\centerpoint%
\advance\pgf@x-.833333\pgf@xa
\advance\pgf@x-\outerxsep%
\advance\pgf@y-1.166666\pgf@xa%
\pgf@ya\outerysep%
\advance\pgf@y-1.565\pgf@ya%
}%
\anchor{north west}{%
\dimensions%
\pgf@xa\halfside%
\centerpoint%
\advance\pgf@x-.833333\pgf@xa
\advance\pgf@x-\outerxsep%
\advance\pgf@y1.166666\pgf@xa%
\pgf@ya\outerysep%
\advance\pgf@y1.565\pgf@ya%
}%
\anchor{input}{%
\dimensions%
\pgf@lib@sh@logicgate@AND@inputanchor{1}%
\pgf@xc\halfside%
\advance\pgf@x.333333\pgf@xc%
}%
\anchor{west}{%
\dimensions%
\pgf@xc\halfside%
\pgf@xc-.833333\pgf@xc%
\advance\pgf@xc-\outerxsep%
\centerpoint%
\advance\pgf@x\pgf@xc%
}%
\backgroundpath{%
\dimensions%
\pgf@xc\halfwidth%
\pgf@yc\halfheight%
\advance\pgf@xc-\outerxsep%
\advance\pgf@yc-\outerysep%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\tipanchor}%
\pgfpathlineto{\pgfqpoint{-.833333\pgf@xc}{1.166666\pgf@yc}}%
\pgfpathlineto{\pgfqpoint{-.833333\pgf@xc}{-1.166666\pgf@yc}}%
\pgfpathlineto{\tipanchor}%
{%
\pgfpathcircle{%
\pgf@x-.166666\pgf@xc%
\pgf@yc2.0\pgf@yc%
\advance\pgf@x.866025\pgf@yc%
\advance\pgf@x\outerinvertedradius%
\pgf@y0pt%
}{+\invertedradius}%
}%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-1\endcsname%
{%
\pgfpathcircle{%
\pgf@xa\halfside%
\pgf@x-.833333\pgf@xa%
\advance\pgf@x-.5\pgflinewidth%
\advance\pgf@x-\invertedradius%
\pgf@y0pt%
}{+\invertedradius}%
}%
\fi%
}%
}%
\anchorborder{%
\pgf@lib@gates@not@buffer@border{not gate US}
}%
}%
\def\pgf@lib@gates@not@buffer@border#1{
\pgfextract@process\externalpoint{}%
\pgfextract@process\externalpoint{\pgfpointadd{\centerpoint}{\externalpoint}}%
\pgfmathanglebetweenpoints{\centerpoint}{\externalpoint}%
\ifx\pgfmathresult\pgf@lib@zero@text%
\csname pgf@anchor@#1@output\endcsname%
\else%
\ifx\pgfmathresult\pgf@lib@onehundredeighty@text%
\csname pgf@anchor@#1@input\endcsname%
\else%
\let\externalangle\pgfmathresult%
\dimensions%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@not gate US@north west\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\csname pgf@anchor@not gate US@north west\endcsname}%
{%
\pgfpointadd{\centerpoint}{%
\tipanchor%
\pgf@xa\outerxsep%
\advance\pgf@x2.350943\pgf@xa%
}%
}%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@not gate US@south west\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{\csname pgf@anchor@not gate US@north west\endcsname}%
{\csname pgf@anchor@not gate US@south west\endcsname}%
\else%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\csname pgf@anchor@not gate US@south west\endcsname}%
{%
\pgfpointadd{\centerpoint}{%
\tipanchor%
\pgf@xa\outerxsep%
\advance\pgf@x2.350943\pgf@xa%
}%
}%
\fi%
\fi%
\fi%
\fi%
}%
\def\pgf@lib@zero@text{0.0}%
\def\pgf@lib@onehundredeighty@text{180.0}%
\pgfdeclareshape{buffer gate US}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@buffer gate US\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1}%
\ifnum\pgf@lib@sh@logicgate@numinputs=0\relax%
\pgferror{A buffer gate must have one input}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\halflinewidth{%
\pgf@x.5\pgflinewidth%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{\pgf@lib@sh@logicgates@dimensions@orUS}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\midpoint%
\pgfutil@tempdima\pgf@y%
\csname pgf@anchor@buffer gate US@east\endcsname%
\pgf@y\pgfutil@tempdima%
}%
\anchor{mid west}{%
\dimensions%
\pgf@xc\halfside%
\pgf@xc-.833333\pgf@xc%
\advance\pgf@xc-\outerxsep%
\midpoint%
\advance\pgf@x\pgf@xc%
}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\basepoint%
\pgfutil@tempdima\pgf@y%
\csname pgf@anchor@buffer gate US@east\endcsname%
\pgf@y\pgfutil@tempdima%
}%
\inheritanchor[from=not gate US]{base west}%
\inheritanchor[from=and gate US]{base}%
\anchor{output}{\csname pgf@anchor@buffer gate US@east\endcsname}%
\anchor{east}{%
\dimensions%
\pgfpointadd{\centerpoint}{%
\tipanchor%
\pgf@xa\outerxsep%
\advance\pgf@x2.350943\pgf@xa%
}%
}%
\anchor{north}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\csname pgf@anchor@not gate US@north west\endcsname%
\pgf@ya\pgf@y%
\centerpoint%
\pgf@y\pgf@ya%
\else%
\pgfpointintersectionoflines{\centerpoint}{\centerpoint\advance\pgf@y1pt}%
{\csname pgf@anchor@buffer gate US@north west\endcsname}%
{%
\pgfpointadd{\centerpoint}{%
\tipanchor%
\pgf@xa\outerxsep%
\advance\pgf@x2.350943\pgf@xa%
}%
}%
\fi%
}%
\anchor{south}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\csname pgf@anchor@not gate US@south west\endcsname%
\pgf@ya\pgf@y%
\centerpoint%
\pgf@y\pgf@ya%
\else%
\pgfpointintersectionoflines{\centerpoint}{\centerpoint\advance\pgf@y-1pt}%
{\csname pgf@anchor@not gate US@south west\endcsname}%
{%
\pgfpointadd{\centerpoint}{%
\tipanchor%
\pgf@xa\outerxsep%
\advance\pgf@x2.350943\pgf@xa%
}%
}%
\fi%
}%
\anchor{south east}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\csname pgf@anchor@not gate US@south west\endcsname%
\pgfutil@tempdima\pgf@y%
\csname pgf@anchor@buffer gate US@east\endcsname%
\pgf@y\pgfutil@tempdima%
\else%
\pgfpointintersectionoflines{\centerpoint}{\centerpoint\advance\pgf@x1pt\advance\pgf@y-1pt}%
{\csname pgf@anchor@buffer gate US@south west\endcsname}%
{%
\pgfpointadd{\centerpoint}{%
\tipanchor%
\pgf@xc\outerxsep%
\advance\pgf@x2.350943\pgf@xc%
}%
}%
\fi%
}%
\anchor{north east}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\csname pgf@anchor@not gate US@north west\endcsname%
\pgfutil@tempdima\pgf@y%
\csname pgf@anchor@buffer gate US@east\endcsname%
\pgf@y\pgfutil@tempdima%
\else%
\pgfpointintersectionoflines{\centerpoint}{\centerpoint\advance\pgf@x1pt\advance\pgf@y1pt}%
{\csname pgf@anchor@buffer gate US@north west\endcsname}%
{%
\pgfpointadd{\centerpoint}{%
\tipanchor%
\pgf@xa\outerxsep%
\advance\pgf@x2.350943\pgf@xa%
}%
}%
\fi%
}%
\inheritanchor[from=not gate US]{south west}%
\inheritanchor[from=not gate US]{north west}%
\inheritanchor[from=not gate US]{input}%
\inheritanchor[from=not gate US]{west}%
\backgroundpath{%
\dimensions%
\pgf@xc\halfwidth%
\pgf@yc\halfheight%
\advance\pgf@xc-\outerxsep%
\advance\pgf@yc-\outerysep%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\tipanchor}%
\pgfpathlineto{\pgfqpoint{-.833333\pgf@xc}{1.166666\pgf@yc}}%
\pgfpathlineto{\pgfqpoint{-.833333\pgf@xc}{-1.166666\pgf@yc}}%
\pgfpathclose%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-1\endcsname%
{%
\pgfpathcircle{%
\pgf@xa\halfside%
\pgf@x-.833333\pgf@xa%
\advance\pgf@x-.5\pgflinewidth%
\advance\pgf@x-\invertedradius%
\pgf@y0pt%
}{+\invertedradius}%
}%
\fi%
}%
}%
\anchorborder{%
\pgf@lib@gates@not@buffer@border{buffer gate US}
}%
}%
\pgfdeclareshape{and gate CDH}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@and gate CDH\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1024}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@and gate CDH@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@and gate CDH@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@AND@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{An and gate must have at least two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{\pgf@lib@sh@logicgates@dimensions@orUS}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\csname pgf@anchor@and gate CDH@east\endcsname%
\pgf@xa\pgf@x%
\midpoint%
\pgf@x\pgf@xa}%
\anchor{mid west}{%
\csname pgf@anchor@and gate CDH@west\endcsname%
\pgf@xa\pgf@x%
\midpoint%
\pgf@x\pgf@xa}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\csname pgf@anchor@and gate CDH@east\endcsname%
\pgf@xa\pgf@x%
\basepoint%
\pgf@x\pgf@xa}%
\anchor{base west}{%
\csname pgf@anchor@and gate CDH@west\endcsname%
\pgf@xa\pgf@x%
\basepoint%
\pgf@x\pgf@xa}%
\anchor{east}{%
\dimensions%
\pgfpointadd{\centerpoint}{\tipanchor}%
}%
\anchor{output}{\csname pgf@anchor@and gate CDH@east\endcsname}%
\anchor{north east}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\tipanchor%
\pgf@xa\pgf@x%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\halfheight%
\else%
\centerpoint%
\pgf@xa\halfwidth%
\pgf@ya\halfheight%
\pgf@xb\halfside%
\advance\pgf@x-.166666\pgf@xb%
\advance\pgf@xa\pgf@xb%
\advance\pgf@x.5\pgf@xa%
\advance\pgf@y-\pgf@xb%
\advance\pgf@ya\pgf@xb%
\advance\pgf@y.866025\pgf@ya%
\fi%
}%
\anchor{south east}{%
\dimensions%
\ifpgfgateanchorsuseboundingrectangle%
\tipanchor%
\pgf@xa\pgf@x%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y-\halfheight%
\else
\centerpoint%
\pgf@xa\halfwidth%
\pgf@ya\halfheight%
\pgf@xb\halfside%
\advance\pgf@x-.166666\pgf@xb%
\advance\pgf@xa\pgf@xb%
\advance\pgf@x.5\pgf@xa%
\advance\pgf@y\pgf@xb%
\advance\pgf@ya\pgf@xb%
\advance\pgf@y-.866025\pgf@ya%
\fi%
}%
\anchor{north}{%
\dimensions%
\centerpoint%
\ifpgfgateanchorsuseboundingrectangle%
\advance\pgf@y\halfheight%
\else%
\pgf@ya\halfheight%
\advance\pgf@y.993043\pgf@ya%
\fi%
}%
\anchor{south}{%
\dimensions%
\centerpoint%
\ifpgfgateanchorsuseboundingrectangle%
\advance\pgf@y-\halfheight%
\else%
\pgf@ya\halfheight%
\advance\pgf@y-.993043\pgf@ya%
\fi%
}%
\anchor{south west}{%
\dimensions%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-1.16666\pgf@xa%
\advance\pgf@x-\outerxsep%
\advance\pgf@y-\halfheight%
}%
\anchor{north west}{%
\dimensions%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-1.16666\pgf@xa%
\advance\pgf@x-\outerxsep%
\advance\pgf@y\halfheight%
}%
\anchor{west}{%
\dimensions%
\centerpoint%
\pgf@xa\halfside%
\advance\pgf@x-1.16666\pgf@xa%
\advance\pgf@x-\outerxsep%
}%
\backgroundpath{%
\dimensions%
\pgf@xc\halfwidth%
\pgf@yc\halfheight%
\advance\pgf@xc-\outerxsep%
\advance\pgf@yc-\outerysep%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\pgfqpoint{-.16666\pgf@xc}{\pgf@yc}}%
{%
\pgf@yc2.0\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{90}{30}{\the\pgf@yc}%
}%
\pgf@marshal%
}
{%
\pgf@yc2.0\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{-30}{-90}{\the\pgf@yc}%
}%
\pgf@marshal%
}
\pgfpathlineto{\pgfqpoint{-1.16666\pgf@xc}{-\pgf@yc}}%
\pgfpathlineto{\pgfqpoint{-1.16666\pgf@xc}{\pgf@yc}}%
\pgfpathclose%
\pgfutil@tempdima2.0\pgf@yc%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\pgfmathloop%
\ifnum\pgfmathcounter>\numinputs%
\else%
\advance\pgf@yc-\pgfutil@tempdima%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-\pgfmathcounter\endcsname%
{%
\pgfpathcircle{%
\pgf@xa\halfside%
\pgf@x-1.16666\pgf@xa%
\advance\pgf@x-.5\pgflinewidth%
\advance\pgf@x-\invertedradius%
\pgf@y\pgf@yc%
}{+\invertedradius}%
}%
\fi%
\repeatpgfmathloop%
}%
}%
\anchorborder{%
\pgfextract@process\externalpoint{}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\dimensions%
\pgf@xb\halfside%
\pgf@xb-.166666\pgf@xb%
\ifdim\pgf@xa<\pgf@xb%
\pgfpointadd{\centerpoint}{%
\pgfpointborderrectangle{\externalpoint}{%
\pgf@xc\halfside%
\pgf@xc.166666\pgf@xc%
\advance\pgf@xc\halfwidth%
\pgfqpoint{\pgf@xc}{\halfheight}%
}%
}%
\else%
\ifdim\pgf@y=0pt\relax%
\csname pgf@anchor@and gate CDH@east\endcsname%
\else%
\pgfextract@process\externalpoint{\pgfpointadd{\centerpoint}{\externalpoint}}%
\pgf@xc\halfwidth%
\advance\pgf@xc\halfside%
\pgf@yc\halfheight%
\advance\pgf@yc\halfside%
\ifdim\pgf@ya<0pt%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{%
\centerpoint%
\advance\pgf@y\halfside%
\advance\pgf@x\pgf@xb%
}%
{270}{330}{+\pgf@yc}%
\else%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{%
\centerpoint%
\advance\pgf@y-\halfside%
\advance\pgf@x\pgf@xb%
}%
{30}{90}{+\pgf@xc and +\pgf@yc}%
\fi%
\fi%
\fi%
}%
}%
\pgfdeclareshape{nand gate CDH}{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@nand gate CDH\endcsname{%
\pgf@lib@sh@logicgate@parseinputs{1024}%
\pgfmathloop%
\ifnum\pgfmathcounter>\pgf@lib@sh@logicgate@numinputs%
\else%
\pgfutil@ifundefined{pgf@anchor@nand gate CDH@input \pgfmathcounter}{%
\expandafter\xdef\csname pgf@anchor@nand gate CDH@input \pgfmathcounter\endcsname{%
\noexpand\pgf@lib@sh@logicgate@AND@inputanchor{\pgfmathcounter}%
}%
}{}%
\repeatpgfmathloop%
\ifnum\pgf@lib@sh@logicgate@numinputs<2\relax%
\pgferror{A nand gate must have at least two inputs}%
\fi%
}%
\savedmacro\numinputs{\let\numinputs\pgf@lib@sh@logicgate@numinputs}%
\saveddimen\invertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
}%
\saveddimen\outerinvertedradius{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/logic gate inverted radius}}%
\advance\pgf@x.5\pgflinewidth%
}%
\savedmacro\dimensions{\pgf@lib@sh@logicgates@dimensions@orUS}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\inheritanchor[from=and gate CDH]{mid east}%
\inheritanchor[from=and gate CDH]{mid west}%
\anchor{base}{\basepoint}%
\inheritanchor[from=and gate CDH]{base east}%
\inheritanchor[from=and gate CDH]{base west}%
\anchor{output}{%
\dimensions
\pgfpointadd{\centerpoint}{%
\pgf@xa\halfside%
\pgf@x-.166666\pgf@xa%
\pgf@xb2.0\pgf@xa%
\advance\pgf@x.866025\pgf@xb%
\advance\pgf@x\invertedradius%
\advance\pgf@x\outerinvertedradius%
\advance\pgf@x\outerxsep%
\pgf@y0pt%
}%
}%
\inheritanchor[from=and gate CDH]{east}%
\inheritanchor[from=and gate CDH]{north east}%
\inheritanchor[from=and gate CDH]{south east}%
\inheritanchor[from=and gate CDH]{north}%
\inheritanchor[from=and gate CDH]{south}%
\inheritanchor[from=and gate CDH]{south west}%
\inheritanchor[from=and gate CDH]{north west}%
\inheritanchor[from=and gate CDH]{west}%
\backgroundpath{%
\dimensions%
\pgf@xc\halfwidth%
\pgf@yc\halfheight%
\advance\pgf@xc-\outerxsep%
\advance\pgf@yc-\outerysep%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\pgfqpoint{-.16666\pgf@xc}{\pgf@yc}}%
{%
\pgf@yc2.0\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{90}{30}{\the\pgf@yc}%
}%
\pgf@marshal%
}
{%
\pgf@yc2.0\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpatharc{-30}{-90}{\the\pgf@yc}%
}%
\pgf@marshal%
}
\pgfpathlineto{\pgfqpoint{-1.16666\pgf@xc}{-\pgf@yc}}%
\pgfpathlineto{\pgfqpoint{-1.16666\pgf@xc}{\pgf@yc}}%
\pgfpathclose%
{%
\pgfpathcircle{%
\pgf@x-.166666\pgf@xc%
\pgf@yc2.0\pgf@yc%
\advance\pgf@x.866025\pgf@yc%
\advance\pgf@x\outerinvertedradius%
\pgf@y0pt%
}{+\invertedradius}%
}%
\pgfutil@tempdima2.0\pgf@yc%
\c@pgf@counta\numinputs%
\advance\c@pgf@counta1\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\pgfmathloop%
\ifnum\pgfmathcounter>\numinputs%
\else%
\advance\pgf@yc-\pgfutil@tempdima%
\expandafter\ifx\expandafter\pgf@lib@sh@itext\csname input-\pgfmathcounter\endcsname%
{%
\pgfpathcircle{%
\pgf@xa\halfside%
\pgf@x-1.16666\pgf@xa%
\advance\pgf@x-.5\pgflinewidth%
\advance\pgf@x-\invertedradius%
\pgf@y\pgf@yc%
}{+\invertedradius}%
}%
\fi%
\repeatpgfmathloop%
}%
}%
\inheritanchorborder[from=and gate CDH]%
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.logic.US.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.logic.code.tex ====
\pgfkeys{/pgf/.cd,%
logic gate input sep/.initial=0.125cm,
logic gate inputs/.initial={normal,normal},%
logic gate inverted radius/.initial=2pt,
}%
\expandafter\ifx\csname pgf@lib@sh@logicgate@parseinputs\endcsname\relax%
\def\pgf@lib@sh@logicgate@parseinputs#1{%
\edef\pgf@lib@sh@temp{\pgfkeysvalueof{/pgf/logic gate inputs}}%
\c@pgf@counta#1\relax%
\c@pgf@countb0\relax%
\expandafter\pgfutil@in@\expandafter,\expandafter{\pgf@lib@sh@temp}%
\ifpgfutil@in@%
\let\pgf@lib@sh@next\pgf@lib@sh@logicgate@parseinputs@long%
\else%
\let\pgf@lib@sh@next\pgf@lib@sh@logicgate@parseinputs@short%
\fi%
\pgf@lib@sh@next%
}%
\def\pgf@lib@sh@itext{i}%
\def\pgf@lib@sh@invertedtext{inverted}%
\def\pgf@lib@sh@atchar{@}%
\def\pgf@lib@sh@gobbletilat#1@{}%
\def\pgf@lib@sh@gobbletilatcomma#1@,{}%
\def\pgf@lib@sh@logicgate@parseinputs@short{%
\expandafter\pgf@lib@sh@logicgate@parseinputs@@short\pgf@lib@sh@temp @%
}%
\def\pgf@lib@sh@logicgate@parseinputs@@short#1{%
\def\pgf@lib@sh@tmp{#1}%
\ifx\pgf@lib@sh@tmp\pgf@lib@sh@atchar%
\edef\pgf@lib@sh@logicgate@numinputs{\the\c@pgf@countb}%
\let\pgf@lib@sh@next=\relax%
\else%
\ifnum\c@pgf@countb=\c@pgf@counta%
\edef\pgf@lib@sh@logicgate@numinputs{\the\c@pgf@countb}%
\let\pgf@lib@sh@next=\pgf@lib@sh@gobbletilat%
\else%
\advance\c@pgf@countb by1\relax%
\expandafter\ifx\pgf@lib@sh@itext#1%
\expandafter\pgf@sh@resavedmacro\expandafter{\csname input-\the\c@pgf@countb\endcsname}{%
\expandafter\def\csname input-\the\c@pgf@countb\endcsname{i}}%
\else%
\expandafter\pgf@sh@resavedmacro\expandafter{\csname input-\the\c@pgf@countb\endcsname}{%
\expandafter\def\csname input-\the\c@pgf@countb\endcsname{n}}%
\fi%
\let\pgf@lib@sh@next=\pgf@lib@sh@logicgate@parseinputs@@short%
\fi%
\fi%
\pgf@lib@sh@next%
}%
\def\pgf@lib@sh@logicgate@parseinputs@long{%
\expandafter\pgf@lib@sh@logicgate@parseinputs@@long\pgf@lib@sh@temp,@,%
}%
\def\pgf@lib@sh@logicgate@parseinputs@@long#1,{%
\def\pgf@lib@sh@tmp{#1}%
\ifx\pgf@lib@sh@tmp\pgf@lib@sh@atchar%
\edef\pgf@lib@sh@logicgate@numinputs{\the\c@pgf@countb}%
\let\pgf@lib@sh@next=\relax%
\else%
\ifnum\c@pgf@countb=\c@pgf@counta%
\edef\pgf@lib@sh@logicgate@numinputs{\the\c@pgf@countb}%
\let\pgf@lib@sh@next=\pgf@lib@sh@gobbletilatcomma%
\else%
\advance\c@pgf@countb by1\relax%
\def\pgf@lib@sh@temp{#1}%
\ifx\pgf@lib@sh@invertedtext\pgf@lib@sh@temp%
\expandafter\pgf@sh@resavedmacro\expandafter{\csname input-\the\c@pgf@countb\endcsname}{%
\expandafter\def\csname input-\the\c@pgf@countb\endcsname{i}}%
\else%
\expandafter\pgf@sh@resavedmacro\expandafter{\csname input-\the\c@pgf@countb\endcsname}{%
\expandafter\def\csname input-\the\c@pgf@countb\endcsname{n}}%
\fi%
\let\pgf@lib@sh@next=\pgf@lib@sh@logicgate@parseinputs@@@long%
\fi%
\fi%
\pgf@lib@sh@next%
}%
\def\pgf@lib@sh@logicgate@parseinputs@@@long{%
\pgfutil@ifnextchar x{\pgf@lib@sh@logicgate@parseinputs@@long}%
{\pgf@lib@sh@logicgate@parseinputs@@long}%
}%
\fi%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/circuits/pgflibraryshapes.gates.logic.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.arrows.code.tex ====
\ProvidesFileRCS{pgflibraryshapes.arrows.code.tex}
\pgfkeys{/pgf/.cd,
single arrow tip angle/.initial=90,
single arrow head extend/.initial=.25cm,
single arrow head indent/.initial=0cm,
}%
\pgfdeclareshape{single arrow}{%
\savedmacro\getsinglearrowpoints{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\edef\xoutersep{\the\pgf@x}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\edef\youtersep{\the\pgf@y}%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@xa.5\wd\pgfnodeparttextbox%
\advance\pgf@xa.5\pgflinewidth%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@ya.5\ht\pgfnodeparttextbox%
\advance\pgf@ya.5\dp\pgfnodeparttextbox%
\advance\pgf@ya.5\pgflinewidth%
\ifpgfshapeborderusesincircle%
\ifdim\pgf@xa<\pgf@ya%
\pgf@xa\pgf@ya%
\fi%
\pgf@xa1.41421\pgf@xa%
\pgf@ya\pgf@xa%
\pgfmathsetmacro\rotate{\pgfkeysvalueof{/pgf/shape border rotate}}%
\ifdim\xoutersep>\youtersep\relax%
\let\youtersep\xoutersep%
\else%
\let\xoutersep\youtersep%
\fi%
\else%
\pgfmathsetmacro\rotate{\pgfkeysvalueof{/pgf/shape border rotate}}%
\pgfmathmod@{\rotate}{360}%
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter\c@pgf@counta\pgfmathresult\relax\pgfmath@%
\advance\c@pgf@counta45\relax%
\divide\c@pgf@counta90\relax%
\multiply\c@pgf@counta90\relax%
\ifnum\c@pgf@counta<0\relax%
\advance\c@pgf@counta360\relax%
\fi%
\edef\rotate{\the\c@pgf@counta}%
\ifnum\c@pgf@counta=90\relax%
\pgf@x\pgf@xa%
\pgf@xa\pgf@ya%
\pgf@ya\pgf@x%
\let\pgfmathresult\xoutersep%
\let\xoutersep\youtersep%
\let\youtersep\pgfmathresult%
\else%
\ifnum\c@pgf@counta=270\relax%
\pgf@x\pgf@xa%
\pgf@xa\pgf@ya%
\pgf@ya\pgf@x%
\let\pgfmathresult\xoutersep%
\let\xoutersep\youtersep%
\let\youtersep\pgfmathresult%
\fi%
\fi%
\fi%
\addtosavedmacro\rotate%
\pgfmathdivide{\pgfkeysvalueof{/pgf/single arrow tip angle}}{2}%
\let\halftipangle\pgfmathresult%
\pgfmathcosec@{\halftipangle}%
\let\cosechalftipangle\pgfmathresult%
\pgfmathcos@{\halftipangle}%
\pgfutil@tempdima\pgfmathresult pt\relax%
\pgfutil@tempdima\cosechalftipangle\pgfutil@tempdima%
\edef\cothalftipangle{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgfmathreciprocal@{\pgfmathresult}%
\let\sechalftipangle\pgfmathresult%
\pgfmathsin@{\halftipangle}%
\pgfutil@tempdima\pgfmathresult pt\relax%
\pgfutil@tempdima\sechalftipangle\pgfutil@tempdima%
\edef\tanhalftipangle{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgf@xb\pgf@ya%
\pgf@xb\cothalftipangle\pgf@xb%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/single arrow head extend}}%
\pgf@yc\pgf@xc%
\advance\pgf@xc\pgf@ya%
\pgfmathsetlength\pgfutil@tempdimb{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@xc<.5\pgfutil@tempdimb%
\pgfutil@tempdimb.5\pgfutil@tempdimb%
\pgfmathdivide@{\pgfmath@tonumber{\pgfutil@tempdimb}}{\pgfmath@tonumber{\pgf@xc}}%
\pgf@ya\pgfmathresult\pgf@ya%
\pgf@xc\pgfmathresult\pgf@xc%
\pgf@yc\pgfmathresult\pgf@yc%
\pgf@xb\pgfmathresult\pgf@xb%
\fi%
\advance\pgf@xc-\pgf@ya%
\pgf@xc\cothalftipangle\pgf@xc%
\pgf@xa2.0\pgf@xa%
\advance\pgf@xa\pgf@xb%
\pgfmathsetlength\pgfutil@tempdimb{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@xa<\pgfutil@tempdimb%
\pgf@xa\pgfutil@tempdimb%
\fi%
\advance\pgf@xa-\pgf@xb%
\pgf@xa.5\pgf@xa%
\pgfmathsetlength\pgfutil@tempdima{\pgfkeysvalueof{/pgf/single arrow head indent}}%
\pgfsavepgf@process\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\pgfsavepgf@process\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\pgfsavepgf@process\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\pgfsavepgf@process\arrowtip{%
\pgf@x\pgf@xa%
\advance\pgf@x\pgf@xb%
\pgf@y0pt\relax%
}%
\pgfsavepgf@process\beforearrowtip{%
\pgf@x\pgf@xa%
\advance\pgf@x-\pgf@xc%
\pgf@y\pgf@ya%
\advance\pgf@y\pgf@yc%
}%
\pgfsavepgf@process\beforearrowhead{%
\pgf@x\pgf@xa%
\advance\pgf@x-\pgf@xc%
\advance\pgf@x\pgfutil@tempdima%
\pgf@y\pgf@ya%
}%
\pgfsavepgf@process\afterarrowtail{%
\pgf@x-\pgf@xa%
\pgf@y\pgf@ya%
}%
\pgfsavepgf@process\arrowtipanchor{%
\pgfpointadd{\centerpoint}{\arrowtip}%
\pgf@xa\xoutersep\relax%
\advance\pgf@x\cosechalftipangle\pgf@xa%
}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\edef\externalradius{\the\pgf@x}%
\addtosavedmacro\externalradius%
\pgfmathanglebetweenlines{\beforearrowtip}{\beforearrowhead}{\beforearrowtip}{\arrowtip}%
\pgf@xa\xoutersep\relax%
\pgfutil@tempdima\pgfmathresult pt\relax%
\pgfutil@tempdima.5\pgfutil@tempdima%
\pgfmathcosec@{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgf@xa\pgfmathresult\pgf@xa%
\pgfutil@tempdima-\pgfutil@tempdima%
\advance\pgfutil@tempdima180pt\relax%
\advance\pgfutil@tempdima-\halftipangle pt\relax%
\pgfsavepgf@process\beforearrowtipanchor{%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgf@xa}%
\pgf@xb\pgf@x%
\pgf@yb\pgf@y%
\pgf@process{\pgfpointadd{\centerpoint}{\beforearrowtip}}%
\advance\pgf@x\pgf@xb%
\advance\pgf@y\pgf@yb%
}%
\pgfmathanglebetweenpoints{\beforearrowhead}{\beforearrowtip}%
\pgfutil@tempdima-\pgfmathresult pt\relax%
\advance\pgfutil@tempdima180pt\relax%
\pgfutil@tempdima.5\pgfutil@tempdima%
\pgfmathcosec@{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgf@xa\xoutersep\relax%
\pgf@xa\pgfmathresult\pgf@xa%
\pgfutil@tempdima-\pgfutil@tempdima%
\advance\pgfutil@tempdima180pt\relax%
\pgfsavepgf@process\beforearrowheadanchor{%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgf@xa}%
\pgf@xb\pgf@x%
\pgf@yb\pgf@y%
\pgf@process{\pgfpointadd{\centerpoint}{\beforearrowhead}}%
\advance\pgf@x\pgf@xb%
\advance\pgf@y\pgf@yb%
}%
\pgfsavepgf@process\afterarrowtailanchor{%
\pgfpointadd{\centerpoint}{\afterarrowtail}%
\advance\pgf@x-\xoutersep\relax%
\advance\pgf@y\youtersep\relax%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\beforearrowtipanchor}%
\let\center@angle@beforearrowtip\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\beforearrowheadanchor}%
\let\center@angle@beforearrowhead\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\afterarrowtailanchor}%
\let\center@angle@afterarrowtail\pgfmathresult%
\addtosavedmacro\center@angle@beforearrowtip%
\addtosavedmacro\center@angle@beforearrowhead%
\addtosavedmacro\center@angle@afterarrowtail%
\pgfmathanglebetweenpoints{\midpoint}{\beforearrowtipanchor}%
\let\mid@angle@beforearrowtip\pgfmathresult%
\pgfmathanglebetweenpoints{\midpoint}{\beforearrowheadanchor}%
\let\mid@angle@beforearrowhead\pgfmathresult%
\pgfmathanglebetweenpoints{\midpoint}{\afterarrowtailanchor}%
\let\mid@angle@afterarrowtail\pgfmathresult%
\addtosavedmacro\mid@angle@beforearrowtip%
\addtosavedmacro\mid@angle@beforearrowhead%
\addtosavedmacro\mid@angle@afterarrowtail%
\pgfmathanglebetweenpoints{\basepoint}{\beforearrowtipanchor}%
\let\base@angle@beforearrowtip\pgfmathresult%
\pgfmathanglebetweenpoints{\basepoint}{\beforearrowheadanchor}%
\let\base@angle@beforearrowhead\pgfmathresult%
\pgfmathanglebetweenpoints{\basepoint}{\afterarrowtailanchor}%
\let\base@angle@afterarrowtail\pgfmathresult%
\addtosavedmacro\base@angle@beforearrowtip%
\addtosavedmacro\base@angle@beforearrowhead%
\addtosavedmacro\base@angle@afterarrowtail%
\addtosavedmacro\arrowtipanchor%
\addtosavedmacro\beforearrowtipanchor%
\addtosavedmacro\beforearrowheadanchor%
\addtosavedmacro\afterarrowtailanchor%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\getsinglearrowpoints%
\let\pgf@singlearrow@referencepoint\midpoint%
\csname pgf@anchor@single arrow@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{mid west}{%
\getsinglearrowpoints%
\let\pgf@singlearrow@referencepoint\midpoint%
\csname pgf@anchor@single arrow@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\getsinglearrowpoints%
\let\pgf@singlearrow@referencepoint\basepoint%
\csname pgf@anchor@single arrow@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{base west}{%
\getsinglearrowpoints%
\let\pgf@singlearrow@referencepoint\basepoint%
\csname pgf@anchor@single arrow@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{north}{%
\getsinglearrowpoints%
\csname pgf@anchor@single arrow@border\endcsname{\pgfqpoint{0pt}{\externalradius}}%
}%
\anchor{south}{%
\getsinglearrowpoints%
\csname pgf@anchor@single arrow@border\endcsname{\pgfqpoint{0pt}{-\externalradius}}%
}%
\anchor{east}{%
\getsinglearrowpoints%
\csname pgf@anchor@single arrow@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{west}{%
\getsinglearrowpoints%
\csname pgf@anchor@single arrow@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{north east}{%
\getsinglearrowpoints%
\csname pgf@anchor@single arrow@border\endcsname{\pgfqpoint{\externalradius}{\externalradius}}%
}%
\anchor{south east}{%
\getsinglearrowpoints%
\csname pgf@anchor@single arrow@border\endcsname{\pgfqpoint{\externalradius}{-\externalradius}}%
}%
\anchor{south west}{%
\getsinglearrowpoints%
\csname pgf@anchor@single arrow@border\endcsname{\pgfqpoint{-\externalradius}{-\externalradius}}%
}%
\anchor{north west}{%
\getsinglearrowpoints%
\csname pgf@anchor@single arrow@border\endcsname{\pgfqpoint{-\externalradius}{\externalradius}}%
}%
\anchor{before head}{%
\getsinglearrowpoints%
\pgfmathrotatepointaround{\beforearrowheadanchor}{\centerpoint}{\rotate}%
}%
\anchor{before tip}{%
\getsinglearrowpoints%
\pgfmathrotatepointaround{\beforearrowtipanchor}{\centerpoint}{\rotate}%
}%
\anchor{tip}{%
\getsinglearrowpoints%
\pgfmathrotatepointaround{\arrowtipanchor}{\centerpoint}{\rotate}%
}%
\anchor{after tip}{%
\getsinglearrowpoints%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowtipanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\anchor{after head}{%
\getsinglearrowpoints%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowheadanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\anchor{before tail}{%
\getsinglearrowpoints%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\afterarrowtailanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\anchor{after tail}{%
\getsinglearrowpoints%
\pgfmathrotatepointaround{\afterarrowtailanchor}{\centerpoint}{\rotate}%
}%
\anchor{tail}{%
\getsinglearrowpoints%
\pgfpointlineattime{0.5}{%
\pgfmathrotatepointaround{\afterarrowtailanchor}{\centerpoint}{\rotate}%
}%
{%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\afterarrowtailanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
}%
\backgroundpath{%
{%
\pgftransformshift{\centerpoint}%
\pgftransformrotate{\rotate}%
\pgfpathmoveto{\arrowtip}%
\pgfpathlineto{\beforearrowtip}%
\pgfpathlineto{\beforearrowhead}%
\pgfpathlineto{\afterarrowtail}%
\pgfpathlineto{\afterarrowtail\pgf@y-\pgf@y}%
\pgfpathlineto{\beforearrowhead\pgf@y-\pgf@y}%
\pgfpathlineto{\beforearrowtip\pgf@y-\pgf@y}%
}%
\pgfpathclose%
}%
\anchorborder{%
\pgfsavepgf@process\externalpoint{}%
\getsinglearrowpoints%
\pgfutil@ifundefined{pgf@singlearrow@referencepoint}{\let\referencepoint\centerpoint}%
{\let\referencepoint\pgf@singlearrow@referencepoint}%
\pgfsavepgf@process\externalpoint{%
\externalpoint%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\referencepoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya}%
\pgfmathanglebetweenpoints{\centerpoint}{\externalpoint}%
\pgfmathsubtract@{\pgfmathresult}{\rotate}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\externalangle\pgfmathresult%
\pgf@x\externalangle pt\relax%
\ifx\referencepoint\midpoint%
\pgf@xa\mid@angle@beforearrowtip pt\relax%
\pgf@xb\mid@angle@beforearrowhead pt\relax%
\pgf@xc\mid@angle@afterarrowtail pt\relax%
\else%
\ifx\referencepoint\basepoint%
\pgf@xa\base@angle@beforearrowtip pt\relax%
\pgf@xb\base@angle@beforearrowhead pt\relax%
\pgf@xc\base@angle@afterarrowtail pt\relax%
\else%
\pgf@xa\center@angle@beforearrowtip pt\relax%
\pgf@xb\center@angle@beforearrowhead pt\relax%
\pgf@xc\center@angle@afterarrowtail pt\relax%
\fi%
\fi%
\ifdim\pgf@x<\pgf@xa%
\let\firstpoint\arrowtipanchor%
\let\secondpoint\beforearrowtipanchor%
\else%
\ifdim\pgf@x<\pgf@xb%
\ifdim\pgf@xb<\pgf@xa%
\let\firstpoint\arrowtipanchor%
\let\secondpoint\beforearrowtipanchor%
\else%
\let\firstpoint\beforearrowheadanchor%
\let\secondpoint\beforearrowtipanchor%
\fi%
\else%
\ifdim\pgf@x<\pgf@xc%
\let\firstpoint\beforearrowheadanchor%
\let\secondpoint\afterarrowtailanchor%
\else%
\pgf@xc-\pgf@xc%
\advance\pgf@xc360pt\relax%
\ifdim\pgf@x<\pgf@xc%
\let\firstpoint\afterarrowtailanchor%
\pgfsavepgf@process\secondpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\afterarrowtailanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}%
}%
\else%
\pgf@xa-\pgf@xa%
\advance\pgf@xa360pt\relax%
\pgf@xb-\pgf@xb%
\advance\pgf@xb360pt\relax%
\ifdim\pgf@x<\pgf@xa%
\ifdim\pgf@x<\pgf@xb%
\pgfsavepgf@process\firstpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\afterarrowtailanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}%
}%
\pgfsavepgf@process\secondpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowheadanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}%
}%
\else%
\ifdim\pgf@xb<\pgf@xa%
\pgfsavepgf@process\firstpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowheadanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}%
}%
\else%
\pgfsavepgf@process\firstpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\arrowtipanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}%
}%
\fi%
\pgfsavepgf@process\secondpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowtipanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}%
}%
\fi%
\else%
\pgfsavepgf@process\firstpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowtipanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}%
}%
\let\secondpoint\arrowtipanchor%
\fi%
\fi%
\fi%
\fi%
\fi%
\pgfsavepgf@process\firstpoint{%
\pgfmathrotatepointaround{\firstpoint}{\centerpoint}{\rotate}%
}%
\pgfsavepgf@process\secondpoint{%
\pgfmathrotatepointaround{\secondpoint}{\centerpoint}{\rotate}%
}%
\pgfpointintersectionoflines{\referencepoint}{\externalpoint}%
{\firstpoint}{\secondpoint}%
}%
}%
\pgfkeys{/pgf/.cd,
double arrow tip angle/.initial=90,
double arrow head extend/.initial=.25cm,
double arrow head indent/.initial=0cm,
}%
\pgfdeclareshape{double arrow}{%
\savedmacro\getdoublearrowpoints{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\edef\xoutersep{\the\pgf@x}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\edef\youtersep{\the\pgf@y}%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@xa.5\wd\pgfnodeparttextbox%
\advance\pgf@xa.5\pgflinewidth%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@ya.5\ht\pgfnodeparttextbox%
\advance\pgf@ya.5\dp\pgfnodeparttextbox%
\advance\pgf@ya.5\pgflinewidth%
\ifpgfshapeborderusesincircle%
\ifdim\pgf@xa<\pgf@ya%
\pgf@xa\pgf@ya%
\fi%
\pgf@xa1.41421\pgf@xa%
\pgf@ya\pgf@xa%
\pgfmathsetmacro\rotate{\pgfkeysvalueof{/pgf/shape border rotate}}%
\ifdim\xoutersep>\youtersep\relax%
\let\youtersep\xoutersep%
\else%
\let\xoutersep\youtersep%
\fi%
\else%
\pgfmathsetmacro\rotate{\pgfkeysvalueof{/pgf/shape border rotate}}
\pgfmathmod@{\rotate}{360}%
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter\c@pgf@counta\pgfmathresult\relax\pgfmath@%
\advance\c@pgf@counta45\relax%
\divide\c@pgf@counta90\relax%
\multiply\c@pgf@counta90\relax%
\ifnum\c@pgf@counta<0\relax%
\advance\c@pgf@counta360\relax%
\fi%
\edef\rotate{\the\c@pgf@counta}%
\ifnum\c@pgf@counta=90\relax%
\pgf@x\pgf@xa%
\pgf@xa\pgf@ya%
\pgf@ya\pgf@x%
\let\pgfmathresult\xoutersep%
\let\xoutersep\youtersep%
\let\youtersep\pgfmathresult%
\else%
\ifnum\c@pgf@counta=270\relax%
\pgf@x\pgf@xa%
\pgf@xa\pgf@ya%
\pgf@ya\pgf@x%
\let\pgfmathresult\xoutersep%
\let\xoutersep\youtersep%
\let\youtersep\pgfmathresult%
\fi%
\fi%
\fi%
\addtosavedmacro\rotate%
\pgfmathdivide{\pgfkeysvalueof{/pgf/double arrow tip angle}}{2}%
\let\halftipangle\pgfmathresult%
\pgfmathcosec@{\halftipangle}%
\let\cosechalftipangle\pgfmathresult%
\pgfmathcos@{\halftipangle}%
\pgfutil@tempdima\pgfmathresult pt\relax%
\pgfutil@tempdima\cosechalftipangle\pgfutil@tempdima%
\edef\cothalftipangle{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgfmathreciprocal@{\pgfmathresult}%
\let\sechalftipangle\pgfmathresult%
\pgfmathsin@{\halftipangle}%
\pgfutil@tempdima\pgfmathresult pt\relax%
\pgfutil@tempdima\sechalftipangle\pgfutil@tempdima%
\edef\tanhalftipangle{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgf@xb\pgf@ya%
\pgf@xb\cothalftipangle\pgf@xb%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/double arrow head extend}}%
\pgf@yc\pgf@xc%
\advance\pgf@xc\pgf@ya%
\pgfmathsetlength\pgfutil@tempdimb{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@xc<.5\pgfutil@tempdimb%
\pgfutil@tempdimb.5\pgfutil@tempdimb%
\pgfmathdivide@{\pgfmath@tonumber{\pgfutil@tempdimb}}{\pgfmath@tonumber{\pgf@xc}}%
\pgf@ya\pgfmathresult\pgf@ya%
\pgf@xc\pgfmathresult\pgf@xc%
\pgf@yc\pgfmathresult\pgf@yc%
\pgf@xb\pgfmathresult\pgf@xb%
\fi%
\advance\pgf@xc-\pgf@ya%
\pgf@xc\cothalftipangle\pgf@xc%
\advance\pgf@xa\pgf@xb%
\pgf@xa2.0\pgf@xa%
\pgfmathsetlength\pgfutil@tempdimb{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@xa<\pgfutil@tempdimb%
\pgf@xa\pgfutil@tempdimb%
\fi%
\pgf@xa.5\pgf@xa%
\advance\pgf@xa-\pgf@xb%
\pgfmathsetlength\pgfutil@tempdima{\pgfkeysvalueof{/pgf/double arrow head indent}}%
\pgfsavepgf@process\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\pgfsavepgf@process\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\pgfsavepgf@process\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\pgfsavepgf@process\arrowtip{%
\pgf@x\pgf@xa%
\advance\pgf@x\pgf@xb%
\pgf@y0pt\relax%
}%
\pgfsavepgf@process\beforearrowtip{%
\pgf@x\pgf@xa%
\advance\pgf@x-\pgf@xc%
\pgf@y\pgf@ya%
\advance\pgf@y\pgf@yc%
}%
\pgfsavepgf@process\beforearrowhead{%
\pgf@x\pgf@xa%
\advance\pgf@x-\pgf@xc%
\advance\pgf@x\pgfutil@tempdima%
\pgf@y\pgf@ya%
}%
\pgfsavepgf@process\arrowtipanchor{%
\pgfpointadd{\centerpoint}{\arrowtip}%
\pgf@xa\xoutersep\relax%
\advance\pgf@x\cosechalftipangle\pgf@xa%
}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\edef\externalradius{\the\pgf@x}%
\addtosavedmacro\externalradius%
\pgfmathanglebetweenlines{\beforearrowtip}{\beforearrowhead}{\beforearrowtip}{\arrowtip}%
\pgf@xa\xoutersep\relax%
\pgfutil@tempdima\pgfmathresult pt\relax%
\pgfutil@tempdima.5\pgfutil@tempdima%
\pgfmathcosec@{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgf@xa\pgfmathresult\pgf@xa%
\pgfutil@tempdima-\pgfutil@tempdima%
\advance\pgfutil@tempdima180pt\relax%
\advance\pgfutil@tempdima-\halftipangle pt\relax%
\pgfsavepgf@process\beforearrowtipanchor{%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgf@xa}%
\pgf@xb\pgf@x%
\pgf@yb\pgf@y%
\pgf@process{\pgfpointadd{\centerpoint}{\beforearrowtip}}%
\advance\pgf@x\pgf@xb%
\advance\pgf@y\pgf@yb%
}%
\pgfmathanglebetweenpoints{\beforearrowhead}{\beforearrowtip}%
\pgfutil@tempdima-\pgfmathresult pt\relax%
\advance\pgfutil@tempdima180pt\relax%
\pgfutil@tempdima.5\pgfutil@tempdima%
\pgfmathcosec@{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgf@xa\xoutersep\relax%
\pgf@xa\pgfmathresult\pgf@xa%
\pgfutil@tempdima-\pgfutil@tempdima%
\advance\pgfutil@tempdima180pt\relax%
\pgfsavepgf@process\beforearrowheadanchor{%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgf@xa}%
\pgf@xb\pgf@x%
\pgf@yb\pgf@y%
\pgf@process{\pgfpointadd{\centerpoint}{\beforearrowhead}}%
\advance\pgf@x\pgf@xb%
\advance\pgf@y\pgf@yb%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\beforearrowtipanchor}%
\let\center@angle@beforearrowtip\pgfmathresult%
\addtosavedmacro\center@angle@beforearrowtip%
\pgfmathanglebetweenpoints{\midpoint}{\beforearrowtipanchor}%
\let\mid@angle@beforearrowtip\pgfmathresult%
\addtosavedmacro\mid@angle@beforearrowtip%
\pgfmathanglebetweenpoints{\basepoint}{\beforearrowtipanchor}%
\let\base@angle@beforearrowtip\pgfmathresult%
\addtosavedmacro\base@angle@beforearrowtip%
\addtosavedmacro\arrowtipanchor%
\addtosavedmacro\beforearrowtipanchor%
\addtosavedmacro\beforearrowheadanchor%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\getdoublearrowpoints%
\let\pgf@singlearrow@referencepoint\midpoint%
\csname pgf@anchor@double arrow@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{mid west}{%
\getdoublearrowpoints%
\let\pgf@singlearrow@referencepoint\midpoint%
\csname pgf@anchor@double arrow@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\getdoublearrowpoints%
\let\pgf@singlearrow@referencepoint\basepoint%
\csname pgf@anchor@double arrow@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{base west}{%
\getdoublearrowpoints%
\let\pgf@singlearrow@referencepoint\basepoint%
\csname pgf@anchor@double arrow@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{north}{%
\getdoublearrowpoints%
\csname pgf@anchor@double arrow@border\endcsname{\pgfqpoint{0pt}{\externalradius}}%
}%
\anchor{south}{%
\getdoublearrowpoints%
\csname pgf@anchor@double arrow@border\endcsname{\pgfqpoint{0pt}{-\externalradius}}%
}%
\anchor{east}{%
\getdoublearrowpoints%
\csname pgf@anchor@double arrow@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{west}{%
\getdoublearrowpoints%
\csname pgf@anchor@double arrow@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{north east}{%
\getdoublearrowpoints%
\csname pgf@anchor@double arrow@border\endcsname{\pgfqpoint{\externalradius}{\externalradius}}%
}%
\anchor{south east}{%
\getdoublearrowpoints%
\csname pgf@anchor@double arrow@border\endcsname{\pgfqpoint{\externalradius}{-\externalradius}}%
}%
\anchor{south west}{%
\getdoublearrowpoints%
\csname pgf@anchor@double arrow@border\endcsname{\pgfqpoint{-\externalradius}{-\externalradius}}%
}%
\anchor{north west}{%
\getdoublearrowpoints%
\csname pgf@anchor@double arrow@border\endcsname{\pgfqpoint{-\externalradius}{\externalradius}}%
}%
\anchor{before head 1}{%
\getdoublearrowpoints%
\pgfmathrotatepointaround{\beforearrowheadanchor}{\centerpoint}{\rotate}%
}%
\anchor{before tip 1}{%
\getdoublearrowpoints%
\pgfmathrotatepointaround{\beforearrowtipanchor}{\centerpoint}{\rotate}%
}%
\anchor{tip 1}{%
\getdoublearrowpoints%
\pgfmathrotatepointaround{\arrowtipanchor}{\centerpoint}{\rotate}%
}%
\anchor{after tip 1}{%
\getdoublearrowpoints%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowtipanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\anchor{after head 1}{%
\getdoublearrowpoints%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowheadanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\anchor{before head 2}{%
\getdoublearrowpoints%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowheadanchor}%
\pgf@x-\pgf@x%
\pgf@y-\pgf@y%
}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\anchor{before tip 2}{%
\getdoublearrowpoints%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowtipanchor}%
\pgf@x-\pgf@x%
\pgf@y-\pgf@y%
}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\anchor{tip 2}{%
\getdoublearrowpoints%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\arrowtipanchor}%
\pgf@x-\pgf@x%
}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\anchor{after tip 2}{%
\getdoublearrowpoints%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowtipanchor}%
\pgf@x-\pgf@x%
}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\anchor{after head 2}{%
\getdoublearrowpoints%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowheadanchor}%
\pgf@x-\pgf@x%
}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\backgroundpath{%
{%
\pgftransformshift{\centerpoint}%
\pgftransformrotate{\rotate}%
\pgfpathmoveto{\arrowtip}%
\pgfpathlineto{\beforearrowtip}%
\pgfpathlineto{\beforearrowhead}%
\pgfpathlineto{\beforearrowhead\pgf@x-\pgf@x}%
\pgfpathlineto{\beforearrowtip\pgf@x-\pgf@x}%
\pgfpathlineto{\arrowtip\pgf@x-\pgf@x}%
\pgfpathlineto{\beforearrowtip\pgf@x-\pgf@x\pgf@y-\pgf@y}%
\pgfpathlineto{\beforearrowhead\pgf@x-\pgf@x\pgf@y-\pgf@y}%
\pgfpathlineto{\beforearrowhead\pgf@y-\pgf@y}%
\pgfpathlineto{\beforearrowtip\pgf@y-\pgf@y}%
}%
\pgfpathclose%
}%
\anchorborder{%
\pgfsavepgf@process\externalpoint{}%
\getdoublearrowpoints%
\pgfutil@ifundefined{pgf@singlearrow@referencepoint}{\let\referencepoint\centerpoint}%
{\let\referencepoint\pgf@singlearrow@referencepoint}%
\pgfsavepgf@process\externalpoint{%
\externalpoint%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\referencepoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya}%
\pgfmathanglebetweenpoints{\centerpoint}{\externalpoint}%
\pgfmathsubtract@{\pgfmathresult}{\rotate}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\externalangle\pgfmathresult%
\pgf@x\externalangle pt\relax%
\ifx\referencepoint\midpoint%
\pgf@xa\mid@angle@beforearrowtip pt\relax%
\else%
\ifx\referencepoint\basepoint%
\pgf@xa\base@angle@beforearrowtip pt\relax%
\else%
\pgf@xa\center@angle@beforearrowtip pt\relax%
\fi%
\fi%
\ifdim\pgf@x<180pt\relax%
\ifdim\pgf@x<\pgf@xa%
\let\firstpoint\arrowtipanchor%
\let\secondpoint\beforearrowtipanchor%
\else%
\pgf@xa-\pgf@xa%
\advance\pgf@xa180pt\relax%
\ifdim\pgf@x<\pgf@xa%
\let\firstpoint\beforearrowheadanchor%
\pgfsavepgf@process\secondpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowheadanchor}%
\pgf@x-\pgf@x
}{\centerpoint}}%
\else%
\pgfsavepgf@process\firstpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowtipanchor}%
\pgf@x-\pgf@x
}{\centerpoint}}%
\pgfsavepgf@process\secondpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\arrowtipanchor}%
\pgf@x-\pgf@x%
\pgf@y-\pgf@y%
}{\centerpoint}}%
\fi%
\fi%
\else%
\pgf@xa-\pgf@xa%
\advance\pgf@xa360pt\relax%
\ifdim\pgf@x<\pgf@xa%
\pgf@xa-\pgf@xa%
\advance\pgf@xa540pt\relax%
\ifdim\pgf@x<\pgf@xa%
\pgfsavepgf@process\firstpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\arrowtipanchor}%
\pgf@x-\pgf@x%
}{\centerpoint}}%
\pgfsavepgf@process\secondpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowtipanchor}%
\pgf@x-\pgf@x%
\pgf@y-\pgf@y%
}{\centerpoint}}%
\else%
\pgfsavepgf@process\firstpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowheadanchor}%
\pgf@x-\pgf@x%
\pgf@y-\pgf@y%
}{\centerpoint}}%
\pgfsavepgf@process\secondpoint{%
\pgfpointadd{%
\pgfpointdiff{\centerpoint}{\beforearrowheadanchor}%
\pgf@y-\pgf@y%
}{\centerpoint}}%
\fi%
\else%
\pgfsavepgf@process\firstpoint{%
\pgfpointadd{%
\pgfpointdiff{\beforearrowtipanchor}{\centerpoint}%
\pgf@x-\pgf@x%
}{\centerpoint}}%
\let\secondpoint\arrowtipanchor%
\fi%
\fi%
\pgfsavepgf@process\firstpoint{%
\pgfmathrotatepointaround{\firstpoint}{\centerpoint}{\rotate}%
}%
\pgfsavepgf@process\secondpoint{%
\pgfmathrotatepointaround{\secondpoint}{\centerpoint}{\rotate}%
}%
\pgfpointintersectionoflines{\referencepoint}{\externalpoint}%
{\firstpoint}{\secondpoint}%
}%
}%
\def\pgf@lib@arrowbox@parsearrowlength#1#2#3{%
\edef\pgf@lib@temp{#3}%
\edef\pgf@lib@marshal{%
\noexpand\pgfutil@in@{none}{\pgf@lib@temp}%
}%
\pgf@lib@marshal%
\ifpgfutil@in@%
#10pt\relax%
\else%
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter#1\pgf@lib@temp\relax\pgfmath@%
\edef\pgf@lib@marshal{%
\noexpand\pgfutil@in@{from center}{\pgf@lib@temp}%
}%
\pgf@lib@marshal%
\ifpgfutil@in@%
\else%
\ifdim#1>0pt\relax%
\advance#1#2\relax%
\fi%
\fi%
\fi}%
\def\pgf@lib@arrowbox@parsearrows#1{%
\pgfkeys{/pgf/.cd,%
arrow box west arrow=0pt,
arrow box east arrow=0pt,
arrow box south arrow=0pt,
arrow box north arrow=0pt
}%
\def\pgf@lib@arrowbox@extend{0pt}%
\edef\pgf@lib@temp{#1}%
\expandafter\pgf@lib@arrowbox@@parsearrows\pgf@lib@temp,\pgf@lib@arrowbox@parsearrows,
}%
\def\pgf@lib@arrowbox@@parsearrows#1,{%
\ifx\pgf@lib@arrowbox@parsearrows#1%
\let\pgflib@next\relax%
\else%
\pgfutil@in@:{#1}%
\ifpgfutil@in@%
\pgf@lib@arrowbox@getextend#1\pgf@lib%
\else%
\def\pgf@lib@arrowbox@direction{#1}%
\fi%
\edef\pgf@marshal{%
\noexpand\pgfkeys{/pgf/arrow box \pgf@lib@arrowbox@direction\space arrow=\pgf@lib@arrowbox@extend}%
}%
\pgf@marshal%
\let\pgflib@next\pgf@lib@arrowbox@@@parsearrows%
\fi%
\pgflib@next%
}%
\def\pgf@lib@arrowbox@@@parsearrows{%
\pgfutil@ifnextchar x{\relax\pgf@lib@arrowbox@@parsearrows}{\relax\pgf@lib@arrowbox@@parsearrows}%
}%
\def\pgf@lib@arrowbox@getextend#1:#2\pgf@lib{%
\def\pgf@lib@arrowbox@direction{#1}%
\def\pgf@lib@arrowbox@extend{#2}%
}%
\pgfkeys{/pgf/.cd,
arrow box west arrow/.initial=.5cm,
arrow box east arrow/.initial=.5cm,
arrow box south arrow/.initial=.5cm,
arrow box north arrow/.initial=.5cm,
arrow box shaft width/.initial=.125cm,
arrow box head extend/.initial=.125cm,
arrow box head indent/.initial=0cm,
arrow box tip angle/.initial=90,
}%
\pgfdeclareshape{arrow box}{%
\saveddimen\shaftwidth{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/arrow box shaft width}}%
}%
\savedmacro\arrowboxpoints{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@x<.5\pgf@xa%
\pgf@x.5\pgf@xa%
\fi%
\pgfmathaddtolength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@y<.5\pgf@ya%
\pgf@y.5\pgf@ya%
\fi%
\pgfmathaddtolength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\edef\halfboxwidth{\the\pgf@x}%
\edef\halfboxheight{\the\pgf@y}%
\pgfextract@process\arrowboxcorner{}%
\addtosavedmacro\arrowboxcorner%
\pgf@lib@arrowbox@parsearrowlength\pgf@x{\halfboxwidth}%
{\pgfkeysvalueof{/pgf/arrow box west arrow}}%
\edef\westextend{\the\pgf@x}%
\addtosavedmacro\westextend%
\pgf@lib@arrowbox@parsearrowlength\pgf@x{\halfboxwidth}%
{\pgfkeysvalueof{/pgf/arrow box east arrow}}%
\edef\eastextend{\the\pgf@x}%
\addtosavedmacro\eastextend%
\pgf@lib@arrowbox@parsearrowlength\pgf@x{\halfboxheight}%
{\pgfkeysvalueof{/pgf/arrow box north arrow}}%
\edef\northextend{\the\pgf@x}%
\addtosavedmacro\northextend%
\pgf@lib@arrowbox@parsearrowlength\pgf@x{\halfboxheight}%
{\pgfkeysvalueof{/pgf/arrow box south arrow}}%
\edef\southextend{\the\pgf@x}%
\addtosavedmacro\southextend%
}%
\saveddimen\arrowheadextend{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/arrow box head extend}}%
}%
\saveddimen\arrowheadindent{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/arrow box head indent}}%
}%
\savedmacro\arrowtipmiterangle{%
\pgfmathparse{\pgfkeysvalueof{/pgf/arrow box tip angle}}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\arrowtipmiterangle\pgfmathresult%
}%
\savedmacro\arrowheadangles{%
\pgfmathparse{\pgfkeysvalueof{/pgf/arrow box tip angle}}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\arrowtipmiterangle\pgfmathresult%
\addtosavedmacro\arrowtipmiterangle%
\pgfmathcosec@{\arrowtipmiterangle}%
\let\cosecarrowtipmiterangle\pgfmathresult%
\addtosavedmacro\cosecarrowtipmiterangle%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/arrow box head extend}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/arrow box head indent}}%
\ifdim\pgf@y=0pt\relax%
\def\pgfmathresult{90}%
\else%
\ifdim\pgf@y<0pt\relax%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
\pgfmathatan@{\pgfmathresult}%
\pgfmathadd@{\pgfmathresult}{180}%
\else%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
\pgfmathatan@{\pgfmathresult}%
\fi%
\fi%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\beforearrowheadmiterangle\pgfmathresult%
\addtosavedmacro\beforearrowheadmiterangle%
\pgfmathcosec@{\beforearrowheadmiterangle}%
\let\cosecbeforearrowheadmiterangle\pgfmathresult%
\addtosavedmacro\cosecbeforearrowheadmiterangle%
\pgfutil@tempdima-\arrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima90pt\relax%
\pgfutil@tempdimb\beforearrowheadmiterangle pt\relax%
\pgfutil@tempdimb2.0\pgfutil@tempdimb%
\advance\pgfutil@tempdimb-90pt\relax%
\advance\pgfutil@tempdima\pgfutil@tempdimb%
\divide\pgfutil@tempdima2\relax%
\edef\beforearrowtipmiterangle{\pgfmath@tonumber{\pgfutil@tempdima}}%
\addtosavedmacro\beforearrowtipmiterangle%
\pgfmathcosec@{\beforearrowtipmiterangle}%
\let\cosecbeforearrowtipmiterangle\pgfmathresult%
\addtosavedmacro\cosecbeforearrowtipmiterangle%
}%
\saveddimen\outerxsep{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
}%
\saveddimen\outerysep{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer ysep}}%
}%
\savedanchor\beforearrowtip{%
\pgfmathparse{\pgfkeysvalueof{/pgf/arrow box tip angle}}%
\pgfmathdivide@{\pgfmathresult}{2}%
\pgfmathcot@{\pgfmathresult}%
\let\cothalfangle\pgfmathresult%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/arrow box shaft width}}%
\pgf@y.5\pgf@y%
\pgfmathaddtolength\pgf@y{\pgfkeysvalueof{/pgf/arrow box head extend}}%
\pgf@y\pgf@y%
\pgf@x\cothalfangle\pgf@y%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt\relax%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\arrowboxpoints%
\ifdim\eastextend>0pt\relax%
\let\pgf@lib@shapes@arrowbox@referencepoint\midpoint%
\csname pgf@anchor@arrow box@border\endcsname{\pgfqpoint{\eastextend}{0pt}}%
\else%
\arrowboxcorner%
\pgf@xa\pgf@x%
\midpoint%
\advance\pgf@x\pgf@xa%
\fi%
}%
\anchor{mid west}{%
\arrowboxpoints%
\ifdim\westextend>0pt\relax%
\let\pgf@lib@shapes@arrowbox@referencepoint\midpoint%
\csname pgf@anchor@arrow box@border\endcsname{\pgfqpoint{-\westextend}{0pt}}%
\else%
\arrowboxcorner%
\pgf@xa\pgf@x%
\midpoint%
\advance\pgf@x-\pgf@xa%
\fi%
}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\arrowboxpoints%
\ifdim\eastextend>0pt\relax%
\let\pgf@lib@shapes@arrowbox@referencepoint\basepoint%
\csname pgf@anchor@arrow box@border\endcsname{\pgfqpoint{\eastextend}{0pt}}%
\else%
\arrowboxcorner%
\pgf@xa\pgf@x%
\basepoint%
\advance\pgf@x\pgf@xa%
\fi%
}%
\anchor{base west}{%
\arrowboxpoints%
\ifdim\westextend>0pt\relax%
\let\pgf@lib@shapes@arrowbox@referencepoint\basepoint%
\csname pgf@anchor@arrow box@border\endcsname{\pgfqpoint{-\westextend}{0pt}}%
\else%
\arrowboxcorner%
\pgf@xa\pgf@x%
\basepoint%
\advance\pgf@x-\pgf@xa%
\fi%
}%
\anchor{north}{%
\arrowboxpoints%
\ifdim\northextend>0pt\relax%
\csname pgf@anchor@arrow box@north arrow tip\endcsname%
\else%
\pgfpointadd{\centerpoint}{\arrowboxcorner}%
\pgf@ya\pgf@y%
\centerpoint%
\pgf@y\pgf@ya%
\fi%
}%
\anchor{south}{%
\arrowboxpoints%
\ifdim\southextend>0pt\relax%
\csname pgf@anchor@arrow box@south arrow tip\endcsname%
\else%
\pgfpointadd{\centerpoint}{\arrowboxcorner\pgf@y-\pgf@y}%
\pgf@ya\pgf@y%
\centerpoint%
\pgf@y\pgf@ya%
\fi%
}%
\anchor{east}{%
\arrowboxpoints%
\ifdim\eastextend>0pt\relax%
\csname pgf@anchor@arrow box@east arrow tip\endcsname%
\else%
\pgfpointadd{\centerpoint}{\arrowboxcorner}%
\pgf@xa\pgf@x%
\centerpoint%
\pgf@x\pgf@xa%
\fi%
}%
\anchor{west}{%
\arrowboxpoints%
\ifdim\westextend>0pt\relax%
\csname pgf@anchor@arrow box@west arrow tip\endcsname%
\else%
\pgfpointadd{\centerpoint}{\arrowboxcorner\pgf@x-\pgf@x}%
\pgf@xa\pgf@x%
\centerpoint%
\pgf@x\pgf@xa%
\fi%
}%
\anchor{north east}{%
\arrowboxpoints%
\pgfpointadd{\centerpoint}{\arrowboxcorner}%
}%
\anchor{north west}{%
\arrowboxpoints%
\pgfpointadd{\centerpoint}{\arrowboxcorner\pgf@x-\pgf@x}%
}%
\anchor{south west}{%
\arrowboxpoints%
\pgfpointadd{\centerpoint}{\arrowboxcorner\pgf@x-\pgf@x\pgf@y-\pgf@y}%
}%
\anchor{south east}{%
\arrowboxpoints%
\pgfpointadd{\centerpoint}{\arrowboxcorner\pgf@y-\pgf@y}%
}%
\anchor{before east arrow}{%
\arrowboxpoints%
\ifdim\eastextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\arrowboxcorner%
\pgf@y\shaftwidth\relax%
\pgf@y.5\pgf@y%
\advance\pgf@y\outerysep\relax%
}%
\else%
\csname pgf@anchor@arrow box@east\endcsname%
\fi%
}%
\anchor{before east arrow head}{%
\arrowboxpoints%
\ifdim\eastextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima-\beforearrowheadmiterangle pt\relax%
\advance\pgfutil@tempdima180pt\relax%
\pgfutil@tempdimb\outerxsep\relax%
\pgfutil@tempdimb\cosecbeforearrowheadmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@x-\pgf@x%
\advance\pgf@x\eastextend\relax%
\advance\pgf@x\arrowheadindent\relax%
\pgf@y\shaftwidth\relax%
\pgf@y.5\pgf@y%
}%
}%
\else%
\csname pgf@anchor@arrow box@east\endcsname%
\fi%
}%
\anchor{before east arrow tip}{%
\arrowboxpoints%
\ifdim\eastextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima-\arrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima-\beforearrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima180pt\relax%
\pgfutil@tempdimb\outerysep\relax%
\pgfutil@tempdimb\cosecbeforearrowtipmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@x-\pgf@x%
\advance\pgf@x\eastextend\relax%
}%
}%
\else%
\csname pgf@anchor@arrow box@east\endcsname%
\fi%
}%
\anchor{east arrow tip}{%
\arrowboxpoints%
\ifdim\eastextend>0pt\relax%
\centerpoint%
\advance\pgf@x\eastextend\relax%
\pgf@xa\outerxsep\relax%
\pgfmathcosec@{\arrowtipmiterangle}%
\advance\pgf@x\pgfmathresult\pgf@xa%
\else%
\csname pgf@anchor@arrow box@east\endcsname%
\fi%
}%
\anchor{after east arrow tip}{%
\arrowboxpoints%
\ifdim\eastextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima-\arrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima-\beforearrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima180pt\relax%
\pgfutil@tempdimb\outerysep\relax%
\pgfutil@tempdimb\cosecbeforearrowtipmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@x-\pgf@x%
\advance\pgf@x\eastextend\relax%
}%
\pgf@y-\pgf@y%
}%
\else%
\csname pgf@anchor@arrow box@east\endcsname%
\fi%
}%
\anchor{after east arrow head}{%
\arrowboxpoints%
\ifdim\eastextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima-\beforearrowheadmiterangle pt\relax%
\advance\pgfutil@tempdima180pt\relax%
\pgfutil@tempdimb\outerxsep\relax%
\pgfutil@tempdimb\cosecbeforearrowheadmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@x-\pgf@x%
\advance\pgf@x\eastextend\relax%
\advance\pgf@x\arrowheadindent\relax%
\pgf@y\shaftwidth\relax%
\pgf@y.5\pgf@y%
}%
\pgf@y-\pgf@y%
}%
\else%
\csname pgf@anchor@arrow box@east\endcsname%
\fi%
}%
\anchor{after east arrow}{%
\arrowboxpoints%
\ifdim\eastextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\arrowboxcorner%
\pgf@y\shaftwidth\relax%
\pgf@y.5\pgf@y%
\advance\pgf@y\outerysep\relax%
\pgf@y-\pgf@y%
}%
\else%
\csname pgf@anchor@arrow box@east\endcsname%
\fi%
}%
\anchor{before west arrow}{%
\arrowboxpoints%
\ifdim\westextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\arrowboxcorner%
\pgf@x-\pgf@x%
\pgf@y\shaftwidth\relax%
\pgf@y.5\pgf@y%
\advance\pgf@y\outerysep\relax%
\pgf@y-\pgf@y%
}%
\else%
\csname pgf@anchor@arrow box@west\endcsname%
\fi%
}%
\anchor{before west arrow head}{%
\arrowboxpoints%
\ifdim\westextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima-\beforearrowheadmiterangle pt\relax%
\advance\pgfutil@tempdima180pt\relax%
\pgfutil@tempdimb\outerxsep\relax%
\pgfutil@tempdimb\cosecbeforearrowheadmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@x-\pgf@x%
\advance\pgf@x\westextend\relax%
\advance\pgf@x\arrowheadindent\relax%
\pgf@y\shaftwidth\relax%
\pgf@y.5\pgf@y%
}%
\pgf@x-\pgf@x%
\pgf@y-\pgf@y%
}%
\else%
\csname pgf@anchor@arrow box@west\endcsname%
\fi%
}%
\anchor{before west arrow tip}{%
\arrowboxpoints%
\ifdim\westextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima-\arrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima-\beforearrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima180pt\relax%
\pgfutil@tempdimb\outerysep\relax%
\pgfutil@tempdimb\cosecbeforearrowtipmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@x-\pgf@x%
\advance\pgf@x\westextend\relax%
}%
\pgf@x-\pgf@x%
\pgf@y-\pgf@y%
}%
\else%
\csname pgf@anchor@arrow box@west\endcsname%
\fi%
}%
\anchor{west arrow tip}{%
\arrowboxpoints%
\ifdim\westextend>0pt\relax%
\centerpoint%
\advance\pgf@x-\westextend\relax%
\pgf@xa\outerxsep\relax%
\pgfmathcosec@{\arrowtipmiterangle}%
\advance\pgf@x-\pgfmathresult\pgf@xa%
\else%
\csname pgf@anchor@arrow box@west\endcsname%
\fi%
}%
\anchor{after west arrow tip}{%
\arrowboxpoints%
\ifdim\westextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima-\arrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima-\beforearrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima180pt\relax%
\pgfutil@tempdimb\outerysep\relax%
\pgfutil@tempdimb\cosecbeforearrowtipmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@x-\pgf@x%
\advance\pgf@x\westextend\relax%
}%
\pgf@x-\pgf@x%
}%
\else%
\csname pgf@anchor@arrow box@west\endcsname%
\fi%
}%
\anchor{after west arrow head}{%
\arrowboxpoints%
\ifdim\westextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima-\beforearrowheadmiterangle pt\relax%
\advance\pgfutil@tempdima180pt\relax%
\pgfutil@tempdimb\outerxsep\relax%
\pgfutil@tempdimb\cosecbeforearrowheadmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@x-\pgf@x%
\advance\pgf@x\westextend\relax%
\advance\pgf@x\arrowheadindent\relax%
\pgf@y\shaftwidth\relax%
\pgf@y.5\pgf@y%
}%
\pgf@x-\pgf@x%
}%
\else%
\csname pgf@anchor@arrow box@west\endcsname%
\fi%
}%
\anchor{after west arrow}{%
\arrowboxpoints%
\ifdim\westextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\arrowboxcorner%
\pgf@y\shaftwidth\relax%
\pgf@y.5\pgf@y%
\advance\pgf@y\outerysep\relax%
\pgf@x-\pgf@x%
}%
\else%
\csname pgf@anchor@arrow box@west\endcsname%
\fi%
}%
\anchor{before north arrow}{%
\arrowboxpoints%
\ifdim\northextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\arrowboxcorner%
\pgf@x-\shaftwidth\relax%
\pgf@x.5\pgf@x%
\advance\pgf@x-\outerxsep\relax%
}%
\else%
\csname pgf@anchor@arrow box@north\endcsname%
\fi%
}%
\anchor{before north arrow head}{%
\arrowboxpoints%
\ifdim\northextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima-\beforearrowheadmiterangle pt\relax%
\advance\pgfutil@tempdima270pt\relax%
\pgfutil@tempdimb\outerysep\relax%
\pgfutil@tempdimb\cosecbeforearrowheadmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@y-\pgf@x%
\advance\pgf@y\northextend\relax%
\advance\pgf@y\arrowheadindent\relax%
\pgf@x-\shaftwidth\relax%
\pgf@x.5\pgf@x%
}%
}%
\else%
\csname pgf@anchor@arrow box@north\endcsname%
\fi%
}%
\anchor{before north arrow tip}{%
\arrowboxpoints%
\ifdim\northextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima\arrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima\beforearrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima-90pt\relax%
\pgfutil@tempdimb\outerxsep\relax%
\pgfutil@tempdimb\cosecbeforearrowtipmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@xa\pgf@x%
\pgf@x\pgf@y%
\pgf@y-\pgf@xa%
\advance\pgf@y\northextend\relax%
}%
\pgf@x-\pgf@x%
}%
\else%
\csname pgf@anchor@arrow box@north\endcsname%
\fi%
}%
\anchor{north arrow tip}{%
\arrowboxpoints%
\ifdim\northextend>0pt\relax%
\centerpoint%
\advance\pgf@y\northextend\relax%
\pgf@ya\outerysep\relax%
\pgfmathcosec@{\arrowtipmiterangle}%
\advance\pgf@y\pgfmathresult\pgf@ya%
\else%
\csname pgf@anchor@arrow box@north\endcsname%
\fi%
}%
\anchor{after north arrow tip}{%
\arrowboxpoints%
\ifdim\northextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima\arrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima\beforearrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima-90pt\relax%
\pgfutil@tempdimb\outerxsep\relax%
\pgfutil@tempdimb\cosecbeforearrowtipmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@xa\pgf@x%
\pgf@x\pgf@y%
\pgf@y-\pgf@xa%
\advance\pgf@y\northextend\relax%
}%
}%
\else%
\csname pgf@anchor@arrow box@north\endcsname%
\fi%
}%
\anchor{after north arrow head}{%
\arrowboxpoints%
\ifdim\northextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima-\beforearrowheadmiterangle pt\relax%
\advance\pgfutil@tempdima270pt\relax%
\pgfutil@tempdimb\outerysep\relax%
\pgfutil@tempdimb\cosecbeforearrowheadmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@y-\pgf@x%
\advance\pgf@y\northextend\relax%
\advance\pgf@y\arrowheadindent\relax%
\pgf@x-\shaftwidth\relax%
\pgf@x.5\pgf@x%
}%
\pgf@x-\pgf@x%
}%
\else%
\csname pgf@anchor@arrow box@north\endcsname%
\fi%
}%
\anchor{after north arrow}{%
\arrowboxpoints%
\ifdim\northextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\arrowboxcorner%
\pgf@x\shaftwidth\relax%
\pgf@x.5\pgf@x%
\advance\pgf@x\outerxsep\relax%
}%
\else%
\csname pgf@anchor@arrow box@north\endcsname%
\fi%
}%
\anchor{before south arrow}{%
\arrowboxpoints%
\ifdim\southextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\arrowboxcorner%
\pgf@x\shaftwidth\relax%
\pgf@x.5\pgf@x%
\advance\pgf@x\outerxsep\relax%
\pgf@y-\pgf@y%
}%
\else%
\csname pgf@anchor@arrow box@south\endcsname%
\fi%
}%
\anchor{before south arrow head}{%
\arrowboxpoints%
\ifdim\northextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima-\beforearrowheadmiterangle pt\relax%
\advance\pgfutil@tempdima270pt\relax%
\pgfutil@tempdimb\outerysep\relax%
\pgfutil@tempdimb\cosecbeforearrowheadmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@y-\pgf@x%
\advance\pgf@y\northextend\relax%
\advance\pgf@y\arrowheadindent\relax%
\pgf@x-\shaftwidth\relax%
\pgf@x.5\pgf@x%
}%
\pgf@x-\pgf@x%
\pgf@y-\pgf@y%
}%
\else%
\csname pgf@anchor@arrow box@south\endcsname%
\fi%
}%
\anchor{before south arrow tip}{%
\arrowboxpoints%
\ifdim\northextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima\arrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima\beforearrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima-90pt\relax%
\pgfutil@tempdimb\outerxsep\relax%
\pgfutil@tempdimb\cosecbeforearrowtipmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@xa\pgf@x%
\pgf@x\pgf@y%
\pgf@y-\pgf@xa%
\advance\pgf@y\northextend\relax%
}%
\pgf@y-\pgf@y%
}%
\else%
\csname pgf@anchor@arrow box@south\endcsname%
\fi%
}%
\anchor{south arrow tip}{%
\arrowboxpoints%
\ifdim\southextend>0pt\relax%
\centerpoint%
\advance\pgf@y-\southextend\relax%
\pgf@ya\outerysep\relax%
\pgfmathcosec@{\arrowtipmiterangle}%
\advance\pgf@y-\pgfmathresult\pgf@ya%
\else%
\csname pgf@anchor@arrow box@east\endcsname%
\fi%
}%
\anchor{after south arrow tip}{%
\arrowboxpoints%
\ifdim\northextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima\arrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima\beforearrowtipmiterangle pt\relax%
\advance\pgfutil@tempdima-90pt\relax%
\pgfutil@tempdimb\outerxsep\relax%
\pgfutil@tempdimb\cosecbeforearrowtipmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@xa\pgf@x%
\pgf@x\pgf@y%
\pgf@y-\pgf@xa%
\advance\pgf@y\northextend\relax%
}%
\pgf@x-\pgf@x%
\pgf@y-\pgf@y%
}%
\else%
\csname pgf@anchor@arrow box@south\endcsname%
\fi%
}%
\anchor{after south arrow head}{%
\arrowboxpoints%
\ifdim\northextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointadd{%
\arrowheadangles%
\pgfutil@tempdima-\beforearrowheadmiterangle pt\relax%
\advance\pgfutil@tempdima270pt\relax%
\pgfutil@tempdimb\outerysep\relax%
\pgfutil@tempdimb\cosecbeforearrowheadmiterangle\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}%
{%
\beforearrowtip%
\pgf@y-\pgf@x%
\advance\pgf@y\northextend\relax%
\advance\pgf@y\arrowheadindent\relax%
\pgf@x-\shaftwidth\relax%
\pgf@x.5\pgf@x%
}%
\pgf@y-\pgf@y%
}%
\else%
\csname pgf@anchor@arrow box@south\endcsname%
\fi%
}%
\anchor{after south arrow}{%
\arrowboxpoints%
\ifdim\southextend>0pt\relax%
\pgfpointadd{\centerpoint}{%
\arrowboxcorner%
\pgf@x-\shaftwidth\relax%
\pgf@x.5\pgf@x%
\advance\pgf@x-\outerxsep\relax%
\pgf@y-\pgf@y%
}%
\else%
\csname pgf@anchor@arrow box@south\endcsname%
\fi%
}%
\backgroundpath{%
\arrowboxpoints%
\pgfextract@process\arrowboxcorner{%
\arrowboxcorner%
\pgfmathaddtolength\pgf@x{-\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathaddtolength\pgf@y{-\pgfkeysvalueof{/pgf/outer ysep}}%
}%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\arrowboxcorner}%
\ifdim\eastextend>0pt\relax%
\pgfpathlineto{%
\arrowboxcorner%
\pgf@y\shaftwidth\relax%
\pgf@y.5\pgf@y%
}%
\pgfpathlineto{%
\beforearrowtip%
\pgf@x-\pgf@x%
\advance\pgf@x\eastextend\relax%
\advance\pgf@x\arrowheadindent\relax%
\pgf@y\shaftwidth\relax%
\pgf@y.5\pgf@y%
}%
\pgfpathlineto{%
\beforearrowtip%
\pgf@x-\pgf@x%
\advance\pgf@x\eastextend\relax%
}%
\pgfpathlineto{%
\pgf@x\eastextend\relax%
\pgf@y0pt\relax%
}%
\pgfpathlineto{%
\beforearrowtip%
\pgf@x-\pgf@x%
\advance\pgf@x\eastextend\relax%
\pgf@y-\pgf@y%
}%
\pgfpathlineto{%
\beforearrowtip%
\pgf@x-\pgf@x%
\advance\pgf@x\eastextend\relax%
\advance\pgf@x\arrowheadindent\relax%
\pgf@y\shaftwidth\relax%
\pgf@y-.5\pgf@y%
}%
\pgfpathlineto{%
\arrowboxcorner%
\pgf@y\shaftwidth\relax%
\pgf@y-.5\pgf@y%
}%
\fi%
\pgfpathlineto{\arrowboxcorner\pgf@y-\pgf@y}%
\ifdim\southextend>0pt\relax%
\pgfpathlineto{%
\arrowboxcorner%
\pgf@x\shaftwidth\relax%
\pgf@x.5\pgf@x%
\pgf@y-\pgf@y%
}%
\pgfpathlineto{%
\beforearrowtip%
\pgf@y\pgf@x%
\advance\pgf@y-\southextend\relax%
\advance\pgf@y-\arrowheadindent\relax%
\pgf@x\shaftwidth\relax%
\pgf@x.5\pgf@x%
}%
\pgfpathlineto{%
\beforearrowtip%
\pgf@xa\pgf@y%
\pgf@y\pgf@x%
\advance\pgf@y-\southextend\relax%
\pgf@x\pgf@xa%
}%
\pgfpathlineto{%
\pgf@x0pt\relax%
\pgf@y-\southextend\relax%
}%
\pgfpathlineto{%
\beforearrowtip%
\pgf@xa\pgf@y%
\pgf@y\pgf@x%
\advance\pgf@y-\southextend\relax%
\pgf@x-\pgf@xa%
}%
\pgfpathlineto{%
\beforearrowtip%
\pgf@y\pgf@x%
\advance\pgf@y-\southextend\relax%
\advance\pgf@y-\arrowheadindent\relax%
\pgf@x\shaftwidth\relax%
\pgf@x-.5\pgf@x%
}%
\pgfpathlineto{%
\arrowboxcorner%
\pgf@x\shaftwidth\relax%
\pgf@x-.5\pgf@x%
\pgf@y-\pgf@y%
}%
\fi%
\pgfpathlineto{\arrowboxcorner\pgf@x-\pgf@x\pgf@y-\pgf@y}%
\ifdim\westextend>0pt\relax%
\pgfpathlineto{%
\arrowboxcorner%
\pgf@x-\pgf@x
\pgf@y\shaftwidth\relax%
\pgf@y-.5\pgf@y%
}%
\pgfpathlineto{%
\beforearrowtip%
\advance\pgf@x-\westextend\relax%
\advance\pgf@x-\arrowheadindent\relax%
\pgf@y\shaftwidth\relax%
\pgf@y-.5\pgf@y%
}%
\pgfpathlineto{%
\beforearrowtip%
\advance\pgf@x-\westextend\relax%
\pgf@y-\pgf@y%
}%
\pgfpathlineto{%
\pgf@x-\westextend\relax%
\pgf@y0pt\relax%
}%
\pgfpathlineto{%
\beforearrowtip%
\advance\pgf@x-\westextend\relax%
}%
\pgfpathlineto{%
\beforearrowtip%
\advance\pgf@x-\westextend\relax%
\advance\pgf@x-\arrowheadindent\relax%
\pgf@y\shaftwidth\relax%
\pgf@y.5\pgf@y%
}%
\pgfpathlineto{%
\arrowboxcorner%
\pgf@x-\pgf@x%
\pgf@y\shaftwidth\relax%
\pgf@y.5\pgf@y%
}%
\fi%
\pgfpathlineto{\arrowboxcorner\pgf@x-\pgf@x}%
\ifdim\northextend>0pt\relax%
\pgfpathlineto{%
\arrowboxcorner%
\pgf@x\shaftwidth\relax%
\pgf@x-.5\pgf@x%
}%
\pgfpathlineto{%
\beforearrowtip%
\pgf@y-\pgf@x%
\advance\pgf@y\northextend\relax%
\advance\pgf@y\arrowheadindent\relax%
\pgf@x\shaftwidth\relax%
\pgf@x-.5\pgf@x%
}%
\pgfpathlineto{%
\beforearrowtip%
\pgf@xa\pgf@y%
\pgf@y-\pgf@x%
\advance\pgf@y\northextend\relax%
\pgf@x-\pgf@xa%
}%
\pgfpathlineto{%
\pgf@x0pt\relax%
\pgf@y\northextend\relax%
}%
\pgfpathlineto{%
\beforearrowtip%
\pgf@xa\pgf@y%
\pgf@y-\pgf@x%
\advance\pgf@y\northextend\relax%
\pgf@x\pgf@xa%
}%
\pgfpathlineto{%
\beforearrowtip%
\pgf@y-\pgf@x%
\advance\pgf@y\northextend\relax%
\advance\pgf@y\arrowheadindent\relax%
\pgf@x\shaftwidth\relax%
\pgf@x.5\pgf@x%
}%
\pgfpathlineto{%
\arrowboxcorner%
\pgf@x\shaftwidth\relax%
\pgf@x.5\pgf@x%
}%
\fi%
\pgfpathclose%
}%
}%
\anchorborder{%
\pgfextract@process\externalpoint{}%
\pgfutil@ifundefined{pgf@lib@shapes@arrowbox@referencepoint}%
{\let\referencepoint\centerpoint}{\let\referencepoint\pgf@lib@shapes@arrowbox@referencepoint}%
\pgfextract@process\externalpoint{%
\pgfpointadd{\referencepoint}{\externalpoint}%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\externalpoint}%
\let\externalangle\pgfmathresult%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@west\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@north\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@north east\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@before east arrow tip\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\def\firstpoint{east arrow tip}%
\def\secondpoint{before east arrow tip}%
\else%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@before east arrow\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\def\firstpoint{before east arrow head}%
\def\secondpoint{before east arrow}%
\else%
\def\firstpoint{before east arrow}%
\def\secondpoint{north east}%
\fi%
\fi%
\else%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@after north arrow tip\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@after north arrow\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\def\firstpoint{north east}%
\def\secondpoint{after north arrow}%
\else%
\def\firstpoint{after north arrow}%
\def\secondpoint{after north arrow head}%
\fi%
\else%
\def\firstpoint{after north arrow tip}%
\def\secondpoint{north arrow tip}%
\fi%
\fi%
\else%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@north west\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@before north arrow tip\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\def\firstpoint{north arrow tip}%
\def\secondpoint{before north arrow tip}%
\else%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@before north arrow\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\def\firstpoint{before north head}%
\def\secondpoint{before north arrow}%
\else%
\def\firstpoint{before north arrow}%
\def\secondpoint{north west}%
\fi%
\fi%
\else%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@after west arrow tip\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@after west arrow\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\def\firstpoint{north west}%
\def\secondpoint{after west arrow}%
\else%
\def\firstpoint{after west arrow}%
\def\secondpoint{after west arrow head}%
\fi%
\else%
\def\firstpoint{after west arrow tip}%
\def\secondpoint{west arrow tip}%
\fi%
\fi%
\fi%
\else%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@south arrow tip\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@south west\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@before west arrow tip\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\def\firstpoint{west arrow tip}%
\def\secondpoint{before west arrow tip}%
\else%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@before west arrow\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\def\firstpoint{before west arrow head}%
\def\secondpoint{before west arrow}%
\else%
\def\firstpoint{before west arrow}%
\def\secondpoint{south west}%
\fi%
\fi%
\else%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@after south arrow tip\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@after south arrow\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\def\firstpoint{south west}%
\def\secondpoint{after south arrow}%
\else%
\def\firstpoint{after south arrow}%
\def\secondpoint{after south arrow head}%
\fi%
\else%
\def\firstpoint{after south arrow tip}%
\def\secondpoint{south arrow tip}%
\fi%
\fi%
\else%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@south east\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@before south arrow tip\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\def\firstpoint{south arrow tip}%
\def\secondpoint{before south arrow tip}%
\else%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@before south arrow\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\def\firstpoint{before south arrow head}%
\def\secondpoint{before south arrow}%
\else%
\def\firstpoint{before south arrow}%
\def\secondpoint{south east}%
\fi%
\fi%
\else%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@after east arrow tip\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}%
{\csname pgf@anchor@arrow box@after east arrow\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\def\firstpoint{south east}%
\def\secondpoint{after east arrow}%
\else%
\def\firstpoint{after east arrow}%
\def\secondpoint{after east arrow head}%
\fi%
\else%
\def\firstpoint{after east arrow tip}%
\def\secondpoint{east arrow tip}%
\fi%
\fi%
\fi%
\fi%
\pgfpointintersectionoflines{\referencepoint}{\externalpoint}%
{\csname pgf@anchor@arrow box@\firstpoint\endcsname}%
{\csname pgf@anchor@arrow box@\secondpoint\endcsname}%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.arrows.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.callouts.code.tex ====
\usepgflibrary{shapes.symbols}%
\newif\ifpgf@lib@callout@absolutepointer
\pgfkeys{/pgf/.cd,
callout pointer arc/.initial=15,
callout pointer width/.initial=.25cm,
callout pointer start size/.initial=.2 of callout,
callout pointer end size/.initial=.1 of callout,
callout pointer segments/.initial=2,
callout absolute pointer/.code={\pgf@lib@callout@makeabsolutepointer{#1}},
callout relative pointer/.code={\pgf@lib@callout@makerelativepointer{#1}},
callout pointer shorten/.initial=0cm,
}%
\def\pgf@lib@callout@makeabsolutepointer#1{%
\pgf@lib@callout@absolutepointertrue%
{%
\pgftransformshift{#1}%
\pgfmultipartnode{coordinate}{center}{pgf@lib@callout@pointer}{}%
}%
}%
\def\pgf@lib@callout@makerelativepointer#1{%
\pgf@lib@callout@absolutepointerfalse%
\def\pgf@lib@callout@relativepointer{#1}%
}%
\pgfkeys{/pgf/callout relative pointer=\pgfpointpolar{300}{.5cm}}%
\pgfdeclareshape{ellipse callout}{%
\savedmacro\ellipsecalloutpoints{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@x>\pgf@y%
\edef\outersep{\the\pgf@x}%
\else%
\edef\outersep{\the\pgf@y}%
\fi%
\addtosavedmacro\outersep%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@x1.4142136\pgf@x%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@x<.5\pgf@xa%
\pgf@x.5\pgf@xa%
\fi%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\pgf@y1.4142136\pgf@y%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@y<.5\pgf@ya%
\pgf@y.5\pgf@ya%
\fi%
\edef\xpathradius{\the\pgf@x}%
\edef\ypathradius{\the\pgf@y}%
\pgfmathaddtolength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\edef\xradius{\the\pgf@x}%
\pgfmathaddtolength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\edef\yradius{\the\pgf@y}%
\addtosavedmacro\xradius%
\addtosavedmacro\xpathradius%
\addtosavedmacro\yradius%
\addtosavedmacro\ypathradius%
\pgfmathsetmacro\pointerarc{\pgfkeysvalueof{/pgf/callout pointer arc}}%
\addtosavedmacro\pointerarc%
\pgfextract@process\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\ifpgf@lib@callout@absolutepointer%
\else%
\pgfextract@process\calloutpointer{%
\pgfextract@process\borderpoint{%
\expandafter\pgfpointborderellipse\expandafter{\pgf@lib@callout@relativepointer}{\pgfqpoint{\xpathradius}{\ypathradius}}%
}%
\pgfmathanglebetweenpoints{\pgfpointorigin}{\borderpoint}%
\let\pointerangle\pgfmathresult%
\expandafter\pgf@process\expandafter{\pgf@lib@callout@relativepointer}%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
\edef\pointerradius{\pgfmathresult pt}%
\pgfpointadd{\borderpoint}{\pgfqpointpolar{\pointerangle}{\pointerradius}}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\addtosavedmacro\calloutpointer%
\pgf@lib@callouts@shortenpointer%
\pgf@lib@ellipsecallout@getpoints%
\addtosavedmacro\calloutpointeranchor%
\addtosavedmacro\beforecalloutangle%
\addtosavedmacro\aftercalloutangle%
\fi%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt\relax%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\ellipsecalloutpoints%
\pgfmathpointintersectionoflineandarc{\midpoint\advance\pgf@x\xradius}{\midpoint}%
{\centerpoint}{270}{450}{\xradius and \yradius}%
}%
\anchor{mid west}{%
\ellipsecalloutpoints%
\pgfmathpointintersectionoflineandarc{\midpoint\advance\pgf@x-\xradius}{\midpoint}%
{\centerpoint}{90}{270}{\xradius and \yradius}%
}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\ellipsecalloutpoints%
\pgfmathpointintersectionoflineandarc{\basepoint\advance\pgf@x\xradius}{\basepoint}%
{\centerpoint}{270}{450}{\xradius and \yradius}%
}%
\anchor{base west}{%
\ellipsecalloutpoints%
\pgfmathpointintersectionoflineandarc{\basepoint\advance\pgf@x-\xradius}{\basepoint}%
{\centerpoint}{90}{270}{\xradius and \yradius}%
}%
\anchor{north}{%
\ellipsecalloutpoints%
\centerpoint%
\advance\pgf@y\yradius\relax%
}%
\anchor{south}{%
\ellipsecalloutpoints%
\centerpoint%
\advance\pgf@y-\yradius\relax%
}%
\anchor{east}{%
\ellipsecalloutpoints%
\centerpoint%
\advance\pgf@x\xradius\relax%
}%
\anchor{west}{%
\ellipsecalloutpoints%
\centerpoint%
\advance\pgf@x-\xradius\relax%
}%
\anchor{north west}{%
\ellipsecalloutpoints%
\pgf@xa\xradius\relax%
\pgf@ya\yradius\relax%
\centerpoint%
\advance\pgf@y0.7071067\pgf@ya%
\advance\pgf@x-0.7071067\pgf@xa%
}%
\anchor{north east}{%
\ellipsecalloutpoints%
\pgf@xa\xradius\relax%
\pgf@ya\yradius\relax%
\centerpoint%
\advance\pgf@y0.7071067\pgf@ya%
\advance\pgf@x0.7071067\pgf@xa%
}%
\anchor{south west}{%
\ellipsecalloutpoints%
\pgf@xa\xradius\relax%
\pgf@ya\yradius\relax%
\centerpoint%
\advance\pgf@y-0.7071067\pgf@ya%
\advance\pgf@x-0.7071067\pgf@xa%
}%
\anchor{south east}{%
\ellipsecalloutpoints%
\pgf@xa\xradius\relax%
\pgf@ya\yradius\relax%
\centerpoint%
\advance\pgf@y-0.7071067\pgf@ya%
\advance\pgf@x0.7071067\pgf@xa%
}%
\anchor{pointer}{%
\ellipsecalloutpoints%
\calloutpointeranchor%
}%
\backgroundpath{%
\ellipsecalloutpoints%
\ifpgf@lib@callout@absolutepointer%
\pgfextract@process\calloutpointer{%
\pgfpointanchor{pgf@lib@callout@pointer}{center}%
}%
\pgf@lib@callouts@shortenpointer%
\pgf@lib@ellipsecallout@getpoints%
\calloutpointeranchor%
\ifx\pgf@node@name\pgfutil@empty%
\else%
\edef\pgf@sh@@temp{\noexpand\expandafter\noexpand\pgfutil@g@addto@macro\noexpand\csname pgf@sh@np@\pgf@node@name\noexpand\endcsname}%
\edef\pgf@sh@@@temp{%
\noexpand\def\noexpand\calloutpointeranchor{%
\noexpand\pgf@x\the\pgf@x%
\noexpand\pgf@y\the\pgf@y%
}%
}%
\expandafter\pgf@sh@@temp\expandafter{\pgf@sh@@@temp}
\fi%
\fi%
\pgfpathmoveto{\calloutpointer}%
\pgfpathlineto{\aftercalloutpointer}%
\ifdim\aftercalloutangle pt<\beforecalloutangle pt\relax%
\pgfpatharc{\aftercalloutangle}{\beforecalloutangle}{\xpathradius and \ypathradius}%
\else%
\pgfpatharc{\aftercalloutangle}{360}{\xpathradius and \ypathradius}%
\pgfpatharc{0}{\beforecalloutangle}{\xpathradius and \ypathradius}%
\fi%
\pgfpathclose%
}%
\anchorborder{%
\pgfextract@process\externalpoint{}%
\ellipsecalloutpoints%
\pgfpointadd{\pgfpointborderellipse{\externalpoint}{\pgfpoint{\xradius}{\yradius}}%
}{\centerpoint}%
}%
}%
\def\pgf@lib@ellipsecallout@getpoints{%
\pgfextract@process\borderpoint{%
\pgfpointborderellipse{%
\centerpoint%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\calloutpointer%
\advance\pgf@x-\pgf@xa%
\advance\pgf@y-\pgf@ya%
}{\pgfqpoint{\xpathradius}{\ypathradius}}%
}%
\pgfmathangleonellipse{\borderpoint}{\xpathradius and \ypathradius}%
\pgfutil@tempdima\pointerarc pt\relax%
\pgfutil@tempdimb\pgfmathresult pt\relax%
\advance\pgfutil@tempdimb-.5\pgfutil@tempdima%
\ifdim\pgfutil@tempdimb<0pt\relax%
\advance\pgfutil@tempdimb360pt\relax%
\fi%
\edef\beforecalloutangle{\pgfmath@tonumber{\pgfutil@tempdimb}}%
\advance\pgfutil@tempdimb\pgfutil@tempdima%
\ifdim\pgfutil@tempdimb<360pt\relax%
\else%
\advance\pgfutil@tempdimb-360pt\relax%
\fi%
\edef\aftercalloutangle{\pgfmath@tonumber{\pgfutil@tempdimb}}%
\pgfextract@process\beforecalloutpointer{%
\pgfpointadd{\centerpoint}{%
\pgfpointpolar{\beforecalloutangle}{\xpathradius and \ypathradius}%
}%
}%
\pgfextract@process\aftercalloutpointer{%
\pgfpointadd{\centerpoint}{%
\pgfpointpolar{\aftercalloutangle}{\xpathradius and \ypathradius}%
}%
}%
\pgf@lib@callouts@pointeranchor%
}%
\pgfkeys{/pgf/callout pointer anchor aspect/.initial=1}%
\def\pgf@lib@callouts@pointeranchor{%
\pgfutil@tempdimb\outersep\relax%
\pgfmathanglebetweenlines{\calloutpointer}{\aftercalloutpointer}{\calloutpointer}{\beforecalloutpointer}%
\pgfmathdivide@{\pgfmathresult}{2}%
\pgfutil@tempdima\pgfmathresult pt\relax%
\pgfmathcosec@{\pgfmathresult}%
\pgfutil@tempdimb\pgfmathresult\pgfutil@tempdimb%
\pgfmathanglebetweenpoints{\calloutpointer}{\aftercalloutpointer}%
\advance\pgfutil@tempdima\pgfmathresult pt\relax%
\advance\pgfutil@tempdima180pt\relax%
\pgfextract@process\calloutpointeranchor{%
\pgfpointadd{%
\pgfmathparse{\pgfkeysvalueof{/pgf/callout pointer anchor aspect}}%
\pgfutil@tempdimb\pgfmathresult\pgfutil@tempdimb%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
}{%
\calloutpointer%
}%
}%
}%
\def\pgf@lib@callouts@shortenpointer{%
\pgfextract@process\calloutpointer{%
\pgfmathanglebetweenpoints{\calloutpointer}{\centerpoint}%
\let\angle\pgfmathresult%
\pgfmathsin@{\angle}%
\let\sinpointerangle\pgfmathresult%
\pgfmathcos@{\angle}%
\let\cospointerangle\pgfmathresult%
\pgfpointadd{\calloutpointer}{%
\pgfmathsetlength\pgfutil@tempdima{\pgfkeysvalueof{/pgf/callout pointer shorten}}%
\pgf@x\cospointerangle\pgfutil@tempdima%
\pgf@y\sinpointerangle\pgfutil@tempdima%
}%
}%
}%
\pgfdeclareshape{rectangle callout}{%
\savedmacro\rectanglecalloutpoints{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@x<.5\pgf@xa%
\pgf@x.5\pgf@xa%
\fi%
\edef\xtemp{\the\pgf@x}%
\pgfmathaddtolength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@y<.5\pgf@ya%
\pgf@y.5\pgf@ya%
\fi%
\edef\ytemp{\the\pgf@y}%
\pgfmathaddtolength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\edef\xlength{\the\pgf@x}%
\edef\ylength{\the\pgf@y}%
\addtosavedmacro\xlength%
\addtosavedmacro\ylength%
\pgfmathsetlengthmacro\pointerwidth{\pgfkeysvalueof{/pgf/callout pointer width}}%
\addtosavedmacro\pointerwidth%
\pgfextract@process\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\ifpgf@lib@callout@absolutepointer%
\else%
\pgfextract@process\calloutpointer{%
\pgfextract@process\borderpoint{%
\expandafter\pgfpointborderrectangle\expandafter{\pgf@lib@callout@relativepointer}%
{\pgfqpoint{\xtemp}{\ytemp}}%
}%
\pgfmathanglebetweenpoints{\pgfpointorigin}{\borderpoint}%
\let\pointerangle\pgfmathresult%
\expandafter\pgf@process\expandafter{\pgf@lib@callout@relativepointer}%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
\edef\pointerradius{\pgfmathresult pt}%
\pgfpointadd{\borderpoint}{\pgfqpointpolar{\pointerangle}{\pointerradius}}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgf@lib@callouts@shortenpointer%
\addtosavedmacro\calloutpointer%
\pgf@lib@rectanglecallout@pointer%
\addtosavedmacro\calloutpointeranchor%
\addtosavedmacro\beforecalloutpointer%
\addtosavedmacro\aftercalloutpointer%
\addtosavedmacro\firstpoint%
\addtosavedmacro\secondpoint%
\addtosavedmacro\thirdpoint%
\addtosavedmacro\fourthpoint%
\fi%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt\relax%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5em}%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\rectanglecalloutpoints%
\midpoint%
\advance\pgf@x\xlength\relax%
}%
\anchor{mid west}{%
\rectanglecalloutpoints%
\midpoint%
\advance\pgf@x-\xlength\relax%
}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\rectanglecalloutpoints%
\basepoint%
\advance\pgf@x\xlength\relax%
}%
\anchor{base west}{%
\rectanglecalloutpoints%
\basepoint%
\advance\pgf@x-\xlength\relax%
}%
\anchor{north}{%
\rectanglecalloutpoints%
\centerpoint%
\advance\pgf@y\ylength\relax%
}%
\anchor{south}{%
\rectanglecalloutpoints%
\centerpoint%
\advance\pgf@y-\ylength\relax%
}%
\anchor{east}{%
\rectanglecalloutpoints%
\centerpoint%
\advance\pgf@x\xlength\relax%
}%
\anchor{west}{%
\rectanglecalloutpoints%
\centerpoint%
\advance\pgf@x-\xlength\relax%
}%
\anchor{north east}{%
\rectanglecalloutpoints%
\centerpoint%
\advance\pgf@x\xlength\relax%
\advance\pgf@y\ylength\relax%
}%
\anchor{south west}{%
\rectanglecalloutpoints%
\centerpoint%
\advance\pgf@x-\xlength\relax%
\advance\pgf@y-\ylength\relax%
}%
\anchor{south east}{%
\rectanglecalloutpoints%
\centerpoint%
\advance\pgf@x\xlength\relax%
\advance\pgf@y-\ylength\relax%
}%
\anchor{north west}{%
\rectanglecalloutpoints%
\centerpoint%
\advance\pgf@x-\xlength\relax%
\advance\pgf@y\ylength\relax%
}%
\anchor{pointer}{%
\rectanglecalloutpoints%
\calloutpointeranchor%
}%
\backgroundpath{%
\rectanglecalloutpoints%
\pgf@x\xlength\relax%
\pgf@y\ylength\relax%
\pgfmathaddtolength\pgf@x{-\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathaddtolength\pgf@y{-\pgfkeysvalueof{/pgf/outer ysep}}%
\edef\xtemp{\the\pgf@x}%
\edef\ytemp{\the\pgf@y}%
\ifpgf@lib@callout@absolutepointer%
\pgfextract@process\calloutpointer{%
\pgfpointanchor{pgf@lib@callout@pointer}{center}%
}%
\pgf@lib@callouts@shortenpointer%
\pgfmathsetlengthmacro\pointerwidth{\pgfkeysvalueof{/pgf/callout pointer width}}%
\pgf@lib@rectanglecallout@pointer%
\ifx\pgf@node@name\pgfutil@empty%
\else%
\edef\pgf@sh@@temp{\noexpand\expandafter\noexpand\pgfutil@g@addto@macro\noexpand\csname pgf@sh@np@\pgf@node@name\noexpand\endcsname}%
\edef\pgf@sh@@@temp{%
\noexpand\def\noexpand\calloutpointeranchor{%
\noexpand\pgf@x\the\pgf@x%
\noexpand\pgf@y\the\pgf@y%
}%
}%
\expandafter\pgf@sh@@temp\expandafter{\pgf@sh@@@temp}%
\fi%
\fi%
{%
\pgfsetcornersarced{\pgfqpoint{0pt}{0pt}}%
\pgfpathmoveto{\beforecalloutpointer}%
}%
\pgfpathlineto{\calloutpointer}%
{%
\pgfsetcornersarced{\pgfqpoint{0pt}{0pt}}%
\pgfpathlineto{\aftercalloutpointer}%
}%
{%
\pgftransformshift{\centerpoint}%
\pgfpathlineto{\firstpoint}%
\pgfpathlineto{\secondpoint}%
\pgfpathlineto{\thirdpoint}%
\pgfpathlineto{\fourthpoint}%
{%
\pgfsetcornersarced{\pgfqpoint{0pt}{0pt}}%
\pgfpathclose%
}%
}
}%
\anchorborder{%
\pgfextract@process\externalpoint{}%
\rectanglecalloutpoints%
\pgfpointadd{\centerpoint}%
{%
\pgfpointborderrectangle{\pgfpointadd{\centerpoint}{\externalpoint}}%
{\pgfqpoint{\xlength}{\ylength}}%
}%
}%
}%
\def\pgf@lib@rectanglecallout@pointer{%
\pgfextract@process\borderpoint{%
\pgfpointborderrectangle{%
\centerpoint%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\calloutpointer%
\advance\pgf@x-\pgf@xa%
\advance\pgf@y-\pgf@ya%
}{\pgfqpoint{\xtemp}{\ytemp}}%
}%
\pgfmathanglebetweenpoints{\pgfpointorigin}{\borderpoint}%
\let\borderangle\pgfmathresult%
\pgfutil@tempdima\pointerwidth\relax%
\pgf@xa\xtemp\relax%
\advance\pgf@xa-\pgfutil@tempdima%
\pgf@ya\ytemp\relax%
\advance\pgf@ya-\pgfutil@tempdima%
\pgf@process{%
\pgfutil@ifundefined{pgf@corner@arc}{\pgfpointorigin}{%
\expandafter\pgfqpoint\pgf@corner@arc}%
}%
\advance\pgf@xa-\pgf@x%
\advance\pgf@ya-\pgf@y%
\borderpoint%
\pgf@xb\pgf@x%
\pgf@yb\pgf@y%
\pgf@xc0pt\relax%
\pgf@yc0pt\relax%
\pgfmathanglebetweenpoints{\pgfpointorigin}{\pgfqpoint{\xtemp}{\ytemp}}%
\ifdim\borderangle pt<\pgfmathresult pt\relax%
\pgf@yc.5\pgfutil@tempdima%
\ifdim\pgf@yb>\pgf@ya%
\pgf@yb\pgf@ya%
\fi%
\edef\firstpoint{\noexpand\pgfqpoint{\xtemp}{\ytemp}}%
\edef\secondpoint{\noexpand\pgfqpoint{-\xtemp}{\ytemp}}%
\edef\thirdpoint{\noexpand\pgfqpoint{-\xtemp}{-\ytemp}}%
\edef\fourthpoint{\noexpand\pgfqpoint{\xtemp}{-\ytemp}}%
\else%
\pgfmathanglebetweenpoints{\pgfpointorigin}{\pgfqpoint{-\xtemp}{\ytemp}}%
\ifdim\borderangle pt<\pgfmathresult pt\relax%
\pgf@xc-.5\pgfutil@tempdima%
\ifdim\pgf@xb>\pgf@xa%
\pgf@xb\pgf@xa%
\else%
\ifdim\pgf@xb<-\pgf@xa%
\pgf@xb-\pgf@xa%
\fi%
\fi%
\edef\firstpoint{\noexpand\pgfqpoint{-\xtemp}{\ytemp}}%
\edef\secondpoint{\noexpand\pgfqpoint{-\xtemp}{-\ytemp}}%
\edef\thirdpoint{\noexpand\pgfqpoint{\xtemp}{-\ytemp}}%
\edef\fourthpoint{\noexpand\pgfqpoint{\xtemp}{\ytemp}}%
\else%
\pgfmathanglebetweenpoints{\pgfpointorigin}{\pgfqpoint{-\xtemp}{-\ytemp}}%
\ifdim\borderangle pt<\pgfmathresult pt\relax%
\pgf@yc-.5\pgfutil@tempdima%
\ifdim\pgf@yb>\pgf@ya%
\pgf@yb\pgf@ya%
\else%
\ifdim\pgf@yb<-\pgf@ya%
\pgf@yb-\pgf@ya%
\fi%
\fi%
\edef\firstpoint{\noexpand\pgfqpoint{-\xtemp}{-\ytemp}}%
\edef\secondpoint{\noexpand\pgfqpoint{\xtemp}{-\ytemp}}%
\edef\thirdpoint{\noexpand\pgfqpoint{\xtemp}{\ytemp}}%
\edef\fourthpoint{\noexpand\pgfqpoint{-\xtemp}{\ytemp}}%
\else%
\pgfmathanglebetweenpoints{\pgfpointorigin}{\pgfqpoint{\xtemp}{-\ytemp}}%
\ifdim\borderangle pt<\pgfmathresult pt\relax%
\pgf@xc.5\pgfutil@tempdima%
\ifdim\pgf@xb>\pgf@xa%
\pgf@xb\pgf@xa%
\else%
\ifdim\pgf@xb<-\pgf@xa%
\pgf@xb-\pgf@xa%
\fi%
\fi%
\edef\firstpoint{\noexpand\pgfqpoint{\xtemp}{-\ytemp}}%
\edef\secondpoint{\noexpand\pgfqpoint{\xtemp}{\ytemp}}%
\edef\thirdpoint{\noexpand\pgfqpoint{-\xtemp}{\ytemp}}%
\edef\fourthpoint{\noexpand\pgfqpoint{-\xtemp}{-\ytemp}}%
\else%
\pgf@yc.5\pgfutil@tempdima%
\ifdim\pgf@yb<-\pgf@ya%
\pgf@yb-\pgf@ya%
\fi%
\edef\firstpoint{\noexpand\pgfqpoint{\xtemp}{\ytemp}}%
\edef\secondpoint{\noexpand\pgfqpoint{-\xtemp}{\ytemp}}%
\edef\thirdpoint{\noexpand\pgfqpoint{-\xtemp}{-\ytemp}}%
\edef\fourthpoint{\noexpand\pgfqpoint{\xtemp}{-\ytemp}}%
\fi%
\fi%
\fi%
\fi%
\pgfextract@process\beforecalloutpointer{%
\centerpoint%
\advance\pgf@x\pgf@xb%
\advance\pgf@y\pgf@yb%
\advance\pgf@x-\pgf@xc%
\advance\pgf@y-\pgf@yc%
}%
\pgfextract@process\aftercalloutpointer{%
\centerpoint%
\advance\pgf@x\pgf@xb%
\advance\pgf@y\pgf@yb%
\advance\pgf@x\pgf@xc%
\advance\pgf@y\pgf@yc%
}%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@x>\pgf@y%
\edef\outersep{\the\pgf@x}%
\else%
\edef\outersep{\the\pgf@y}%
\fi%
\pgf@lib@callouts@pointeranchor%
}%
\def\pgf@lib@callout@setpointersize#1{%
\edef\pgf@lib@callout@temp{#1}%
\edef\pgf@marshall{\noexpand\pgfutil@in@{of callout}{\pgf@lib@callout@temp}}%
\pgf@marshall%
\ifpgfutil@in@%
\expandafter\pgf@xa\expandafter\pgf@lib@callout@setpointerrelativesize%
\pgf@lib@callout@temp\pgf@lib@stop\pgf@x%
\expandafter\pgf@ya\expandafter\pgf@lib@callout@setpointerrelativesize%
\pgf@lib@callout@temp\pgf@lib@stop\pgf@y%
\else%
\edef\pgf@marshall{\noexpand\pgfutil@in@{and}{\pgf@lib@callout@temp}}%
\pgf@marshall%
\ifpgfutil@in@%
\expandafter\pgf@lib@callout@setpointerbothsizes\pgf@lib@callout@temp\pgf@lib@stop%
\else%
\pgfmathsetlength\pgf@xa{#1}%
\pgfmathsetlength\pgf@ya{#1}%
\fi%
\fi%
}%
\def\pgf@lib@callout@setpointerrelativesize#1of callout#2\pgf@lib@stop{#1}%
\def\pgf@lib@callout@setpointerbothsizes#1and#2\pgf@lib@stop{%
\pgfmathsetlength\pgf@xa{#2}%
\pgfmathsetlength\pgf@ya{#2}%
}%
\pgfdeclareshape{cloud callout}{%
\savedanchor\calloutpointer{%
\pgfutil@ifundefined{pgf@sh@s@cloud}{%
\pgferror{I cannot find the cloud shape. Please load the `symbol shapes' library}}{}%
\pgf@sh@s@cloud%
\pgf@sh@savedmacros%
\pgfextract@process\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\ifpgf@lib@callout@absolutepointer%
\else%
\pgfextract@process\calloutpointer{%
\pgfextract@process\borderpoint{%
\expandafter\pgfpointborderellipse\expandafter{\pgf@lib@callout@relativepointer}%
{\pgfqpoint{\xouterradius}{\youterradius}}%
}%
\pgfmathanglebetweenpoints{\pgfpointorigin}{\borderpoint}%
\let\pointerangle\pgfmathresult%
\expandafter\pgf@process\expandafter{\pgf@lib@callout@relativepointer}%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
\edef\pointerradius{\pgfmathresult pt}%
\pgfpointadd{\borderpoint}{\pgfqpointpolar{\pointerangle}{\pointerradius}}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgf@lib@callouts@shortenpointer%
\fi%
}%
\anchor{pointer}{%
\calloutpointer%
}%
\inheritsavedanchors[from=cloud]%
\inheritanchor[from=cloud]{center}%
\inheritanchor[from=cloud]{base}%
\inheritanchor[from=cloud]{mid}%
\inheritanchor[from=cloud]{north}%
\inheritanchor[from=cloud]{south}%
\inheritanchor[from=cloud]{east}%
\inheritanchor[from=cloud]{west}%
\inheritanchor[from=cloud]{north east}%
\inheritanchor[from=cloud]{south west}%
\inheritanchor[from=cloud]{south east}%
\inheritanchor[from=cloud]{north west}%
\inheritanchorborder[from=cloud]%
\backgroundpath{%
\pgf@sh@bg@cloud%
\ifpgf@lib@callout@absolutepointer%
\pgfextract@process\calloutpointer{%
\pgfpointanchor{pgf@lib@callout@pointer}{center}%
}%
\ifx\pgf@node@name\pgfutil@empty%
\else%
\edef\pgf@sh@@temp{\noexpand\expandafter\noexpand\pgfutil@g@addto@macro\noexpand\csname pgf@sh@np@\pgf@node@name\noexpand\endcsname}%
\edef\pgf@sh@@@temp{%
\noexpand\def\noexpand\calloutpointeranchor{%
\noexpand\pgf@x\the\pgf@x%
\noexpand\pgf@y\the\pgf@y%
}%
}%
\expandafter\pgf@sh@@temp\expandafter{\pgf@sh@@@temp}
\fi%
\fi%
\pgfextract@process\borderpoint{%
\pgfpointadd{%
\pgfpointborderellipse{\pgfpointdiff{\centerpoint}{\calloutpointer}}%
{\pgfqpoint{\xouterradius}{\youterradius}}%
}{\centerpoint}%
}%
\pgf@lib@callouts@shortenpointer%
\pgfmathanglebetweenpoints{\calloutpointer}{\centerpoint}%
\let\angle\pgfmathresult%
\pgfmathsin@{\angle}%
\let\sinpointerangle\pgfmathresult%
\pgfmathcos@{\angle}%
\let\cospointerangle\pgfmathresult%
\pgf@x\xouterradius\relax%
\pgf@x2.0\pgf@x%
\pgf@y\yinnerradius\relax%
\pgf@y2.0\pgf@y%
\pgf@lib@callout@setpointersize{\pgfkeysvalueof{/pgf/callout pointer start size}}%
\pgf@xb\pgf@xa%
\pgf@yb\pgf@ya%
\pgf@lib@callout@setpointersize{\pgfkeysvalueof{/pgf/callout pointer end size}}%
\advance\pgf@xb-\pgf@xa%
\advance\pgf@yb-\pgf@ya%
\pgfmathsetcount\c@pgf@counta{\pgfkeysvalueof{/pgf/callout pointer segments}}%
\divide\pgf@xb\c@pgf@counta%
\divide\pgf@yb\c@pgf@counta%
\pgf@process{\pgfpointdiff{\borderpoint}{\calloutpointer}}%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
\pgfutil@tempdima\pgfmathresult pt\relax%
\divide\pgfutil@tempdima\c@pgf@counta%
\pgfutil@tempdimb0pt\relax%
\pgfmathloop%
\ifnum\pgfmathcounter>\c@pgf@counta%
\else%
{%
\pgf@xa.5\pgf@xa%
\pgf@ya.5\pgf@ya%
\edef\tempxradius{\the\pgf@xa}%
\edef\tempyradius{\the\pgf@ya}%
\pgfpathellipse%
{%
\calloutpointer%
\advance\pgf@x\cospointerangle\pgfutil@tempdimb%
\advance\pgf@y\sinpointerangle\pgfutil@tempdimb%
}%
{\pgfqpoint{\tempxradius}{0pt}}{\pgfqpoint{0pt}{\tempyradius}}%
}%
\advance\pgf@xa\pgf@xb%
\advance\pgf@ya\pgf@yb%
\advance\pgfutil@tempdimb\pgfutil@tempdima%
\repeatpgfmathloop%
}%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@cloud callout\endcsname{%
\c@pgf@counta\puffs\relax%
\pgfmathloop%
\ifnum\c@pgf@counta>0\relax%
\pgfutil@ifundefined{pgf@anchor@cloud callout@puff\space\the\c@pgf@counta}{%
\expandafter\xdef\csname pgf@anchor@cloud callout@puff\space\the\c@pgf@counta\endcsname{%
\noexpand\pgf@sh@@cloudpuffanchor{\the\c@pgf@counta}%
}%
}{\c@pgf@counta0\relax}%
\advance\c@pgf@counta-1\relax%
\repeatpgfmathloop%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.callouts.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.code.tex ====
\ProvidesFileRCS{pgflibraryshapes.code.tex}
\usepgflibrary{shapes.geometric}%
\usepgflibrary{shapes.misc}%
\usepgflibrary{shapes.symbols}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.geometric.code.tex ====
\ProvidesFileRCS{pgflibraryshapes.geometric.code.tex}
\pgfdeclareshape{ellipse}
{%
\savedanchor\centerpoint{%
\pgf@x=.5\wd\pgfnodeparttextbox%
\pgf@y=.5\ht\pgfnodeparttextbox%
\advance\pgf@y by-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\radius{%
\pgf@y=.5\ht\pgfnodeparttextbox%
\advance\pgf@y by.5\dp\pgfnodeparttextbox%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y by\pgf@yb%
\pgf@x=.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x by\pgf@xb%
\pgf@x=1.4142136\pgf@x%
\pgf@y=1.4142136\pgf@y%
\pgfmathsetlength\pgf@yc{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@y<.5\pgf@yc%
\pgf@y=.5\pgf@yc%
\fi%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@x<.5\pgf@xc%
\pgf@x=.5\pgf@xc%
\fi%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\advance\pgf@x by\pgf@xb%
\advance\pgf@y by\pgf@yb%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\centerpoint\pgfmathsetlength\pgf@y{.5ex}}%
\anchor{base}{\centerpoint\pgf@y=0pt}%
\anchor{north}
{
\pgf@process{\radius}
\pgf@ya=\pgf@y%
\pgf@process{\centerpoint}
\advance\pgf@y by\pgf@ya
}%
\anchor{south}
{
\pgf@process{\radius}
\pgf@ya=\pgf@y%
\pgf@process{\centerpoint}
\advance\pgf@y by-\pgf@ya
}%
\anchor{west}
{
\pgf@process{\radius}
\pgf@xa=\pgf@x%
\pgf@process{\centerpoint}
\advance\pgf@x by-\pgf@xa
}%
\anchor{mid west}
{%
\pgf@process{\radius}
\pgf@xa=\pgf@x%
\pgf@process{\centerpoint}
\advance\pgf@x by-\pgf@xa%
\pgfmathsetlength\pgf@y{.5ex}
}%
\anchor{base west}
{%
\pgf@process{\radius}
\pgf@xa=\pgf@x%
\pgf@process{\centerpoint}
\advance\pgf@x by-\pgf@xa%
\pgf@y=0pt
}%
\anchor{north west}
{
\pgf@process{\radius}
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\centerpoint}
\advance\pgf@x by-0.707107\pgf@xa
\advance\pgf@y by0.707107\pgf@ya
}%
\anchor{south west}
{
\pgf@process{\radius}
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\centerpoint}
\advance\pgf@x by-0.707107\pgf@xa
\advance\pgf@y by-0.707107\pgf@ya
}%
\anchor{east}
{%
\pgf@process{\radius}
\pgf@xa=\pgf@x%
\pgf@process{\centerpoint}
\advance\pgf@x by\pgf@xa
}%
\anchor{mid east}
{%
\pgf@process{\radius}
\pgf@xa=\pgf@x%
\pgf@process{\centerpoint}
\advance\pgf@x by\pgf@xa%
\pgfmathsetlength\pgf@y{.5ex}
}%
\anchor{base east}
{%
\pgf@process{\radius}
\pgf@xa=\pgf@x%
\pgf@process{\centerpoint}
\advance\pgf@x by\pgf@xa%
\pgf@y=0pt
}%
\anchor{north east}
{
\pgf@process{\radius}
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\centerpoint}
\advance\pgf@x by0.707107\pgf@xa
\advance\pgf@y by0.707107\pgf@ya
}%
\anchor{south east}
{
\pgf@process{\radius}
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\centerpoint}
\advance\pgf@x by0.707107\pgf@xa
\advance\pgf@y by-0.707107\pgf@ya
}%
\anchorborder{%
\edef\pgf@marshal{%
\noexpand\pgfpointborderellipse
{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
{\noexpand\radius}%
}%
\pgf@marshal%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\centerpoint%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
}%
\backgroundpath
{
\pgf@process{\radius}%
\pgfutil@tempdima=\pgf@x%
\pgfutil@tempdimb=\pgf@y%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\advance\pgfutil@tempdima by-\pgf@xb%
\advance\pgfutil@tempdimb by-\pgf@yb%
\pgfpathellipse{\centerpoint}{\pgfqpoint{\pgfutil@tempdima}{0pt}}{\pgfqpoint{0pt}{\pgfutil@tempdimb}}%
}%
}%
\pgfkeys{/pgf/.cd,
aspect/.code={\pgfsetshapeaspect{#1}},%
shape aspect/.initial=1,%
shape aspect/.code={%
\pgfkeys{/pgf/aspect={#1}}%
\pgfkeyssetvalue{/pgf/shape aspect}{#1}
}%
}%
\def\pgfsetshapeaspect#1{%
\def\pgfshapeaspect{#1}%
\pgfutil@tempdima=#1pt%
\pgfutil@tempdima=.125\pgfutil@tempdima%
\c@pgf@counta=\pgfutil@tempdima\relax%
\pgfutil@tempdima=8192pt%
\divide\pgfutil@tempdima by\c@pgf@counta%
\edef\pgfshapeaspectinverse{\pgf@sys@tonumber{\pgfutil@tempdima}}%
}%
\pgfsetshapeaspect{1}%
\pgfdeclareshape{diamond}
{%
\savedanchor\outernortheast{%
\pgf@xa=.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@xa by\pgf@xc%
\pgf@ya=.5\ht\pgfnodeparttextbox%
\advance\pgf@ya by.5\dp\pgfnodeparttextbox%
\pgfmathsetlength\pgf@yc{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@ya by\pgf@yc%
\pgf@x=\pgf@xa%
\advance\pgf@x by\pgfshapeaspect\pgf@ya%
\pgf@y=\pgfshapeaspectinverse\pgf@xa%
\advance\pgf@y by\pgf@ya%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@xb=.5\pgf@xb%
\ifdim\pgf@x<\pgf@xb%
\pgf@x=\pgf@xb%
\fi%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/minimum height}}%
\pgf@yb=.5\pgf@yb%
\ifdim\pgf@y<\pgf@yb%
\pgf@y=\pgf@yb%
\fi%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\advance\pgf@x by\pgf@xa%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\advance\pgf@y by\pgf@ya%
}%
\savedanchor\text{%
\pgf@x=-.5\wd\pgfnodeparttextbox%
\pgf@y=-.5\ht\pgfnodeparttextbox%
\advance\pgf@y by.5\dp\pgfnodeparttextbox%
}%
\anchor{text}{\text}%
\anchor{center}{\pgfpointorigin}%
\anchor{mid}{%
\pgf@process{\text}%
\pgf@x=0pt%
\pgfmathsetlength\pgf@ya{.5ex}%
\advance\pgf@y by\pgf@ya%
}%
\anchor{base}{\pgf@process{\text}\pgf@x=0pt}%
\anchor{north}{\pgf@process{\outernortheast}\pgf@x=0pt}%
\anchor{south}{\pgf@process{\outernortheast}\pgf@x=0pt\pgf@y=-\pgf@y}%
\anchor{west}{\pgf@process{\outernortheast}\pgf@x=-\pgf@x\pgf@y=0pt}%
\anchor{north west}{\pgf@process{\outernortheast}\pgf@x=-.5\pgf@x\pgf@y=.5\pgf@y}%
\anchor{south west}{\pgf@process{\outernortheast}\pgf@x=-.5\pgf@x\pgf@y=-.5\pgf@y}%
\anchor{east}{\pgf@process{\outernortheast}\pgf@y=0pt}%
\anchor{north east}{\pgf@process{\outernortheast}\pgf@x=.5\pgf@x\pgf@y=.5\pgf@y}%
\anchor{south east}{\pgf@process{\outernortheast}\pgf@x=.5\pgf@x\pgf@y=-.5\pgf@y}%
\anchorborder{%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\outernortheast}%
\ifdim\pgf@xa>0pt%
\else%
\pgf@x=-\pgf@x%
\fi%
\ifdim\pgf@ya>0pt%
\else%
\pgf@y=-\pgf@y%
\fi%
\edef\pgf@marshal{%
\noexpand\pgfpointintersectionoflines
{\noexpand\pgfpointorigin}
{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}
{\noexpand\pgfqpoint{\the\pgf@x}{0pt}}
{\noexpand\pgfqpoint{0pt}{\the\pgf@y}}%
}%
\pgf@process{\pgf@marshal}%
}%
\backgroundpath{
\pgf@process{\outernortheast}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfmathsetlength{\pgf@xa}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@ya}{\pgfkeysvalueof{/pgf/outer ysep}}%
\advance\pgf@xc by-1.414213\pgf@xa%
\advance\pgf@yc by-1.414213\pgf@ya%
\pgfpathmoveto{\pgfqpoint{\pgf@xc}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{\pgf@yc}}%
\pgfpathlineto{\pgfqpoint{-\pgf@xc}{0pt}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgf@yc}}%
\pgfpathclose%
}%
}%
\newif\ifpgf@lib@shapes@starouterradiususesratio
\pgf@lib@shapes@starouterradiususesratiotrue
\pgfkeys{/pgf/.cd,
star points/.initial=5,
star point height/.initial=.5cm,
star point height/.code={%
\def\pgf@lib@temp{#1}%
\pgfkeyslet{/pgf/star point height}{\pgf@lib@temp}%
\pgf@lib@shapes@starouterradiususesratiofalse%
},
star point ratio/.initial=1.5,
star point ratio/.code={%
\def\pgf@lib@temp{#1}%
\pgfkeyslet{/pgf/star point ratio}{\pgf@lib@temp}%
\pgf@lib@shapes@starouterradiususesratiotrue%
},%
star rotate/.style={/pgf/shape border rotate={#1}},%
}%
\pgfdeclareshape{star}{%
\savedmacro\totalstarpoints{%
\pgfmathsetcounter{pgf@counta}{\pgfkeysvalueof{/pgf/star points}}%
\multiply\c@pgf@counta2\relax%
\edef\totalstarpoints{\the\c@pgf@counta}%
}%
\savedmacro\anglestep{%
\pgfmathdivide{180}{\pgfkeysvalueof{/pgf/star points}}%
\let\anglestep\pgfmathresult%
}%
\savedmacro\calculateradii{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\ifdim\pgf@y>\pgf@x%
\pgf@x\pgf@y%
\fi%
\pgf@x1.41421\pgf@x%
\edef\innerradius{\the\pgf@x}%
\ifpgf@lib@shapes@starouterradiususesratio%
\pgfmathparse{\pgfkeysvalueof{/pgf/star point ratio}}%
\expandafter\pgf@x\pgfmathresult\pgf@x%
\else%
\pgfmathaddtolength\pgf@x{\pgfkeysvalueof{/pgf/star point height}}%
\fi%
\pgf@xc\pgf@x%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum width}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@ya>\pgf@xa%
\pgf@xa\pgf@ya%
\fi%
\ifdim\pgf@x<.5\pgf@xa%
\pgf@x.5\pgf@xa%
\fi%
\edef\outerradius{\the\pgf@x}%
\ifdim\pgf@x>\pgf@xc%
\ifpgf@lib@shapes@starouterradiususesratio%
\pgfmathreciprocal{\pgfkeysvalueof{/pgf/star point ratio}}%
\pgf@xa\pgfmathresult\pgf@x\relax%
\edef\innerradius{\the\pgf@xa}%
\else%
\pgf@xa\pgf@x\relax%
\pgfmathaddtolength\pgf@xa{-\pgfkeysvalueof{/pgf/star point height}}%
\edef\innerradius{\the\pgf@xa}%
\fi%
\fi%
\edef\outerradius{\the\pgf@x}%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@ya>\pgf@xa%
\pgf@xa\pgf@ya%
\fi
\pgfmathdivide{180}{\pgfkeysvalueof{/pgf/star points}}%
\let\angletofirstpoint\pgfmathresult%
\pgfmathmultiply@{\angletofirstpoint}{2}%
\let\angletosecondpoint\pgfmathresult%
\pgfmathanglebetweenlines%
{\pgfqpointpolar{\angletofirstpoint}{\outerradius}}%
{\pgfqpointpolar{\angletosecondpoint}{\innerradius}}%
{\pgfqpointpolar{\angletofirstpoint}{\outerradius}}%
{\pgfqpointpolar{0}{\innerradius}}%
\pgfmathdivide@{\pgfmathresult}{2}%
\pgfmathcosec@{\pgfmathresult}%
\pgf@x\outerradius\relax%
\advance\pgf@x\pgfmathresult\pgf@xa%
\edef\anchorouterradius{\the\pgf@x}%
\pgfmathanglebetweenlines%
{\pgfqpointpolar{\angletofirstpoint}{\innerradius}}%
{\pgfqpointpolar{0}{\outerradius}}%
{\pgfqpointpolar{\angletofirstpoint}{\innerradius}}%
{\pgfqpointpolar{\angletosecondpoint}{\outerradius}}%
\pgfmathdivide@{\pgfmathresult}{2}%
\pgfmathcosec@{\pgfmathresult}%
\pgf@x\innerradius\relax%
\advance\pgf@x\pgfmathresult\pgf@xa%
\edef\anchorinnerradius{\the\pgf@x}%
\addtosavedmacro{\innerradius}%
\addtosavedmacro{\outerradius}%
\addtosavedmacro{\anchorinnerradius}%
\addtosavedmacro{\anchorouterradius}%
}%
\savedmacro\startangle{%
\pgfmathadd{90}{\pgfkeysvalueof{/pgf/shape border rotate}}%
\let\startangle\pgfmathresult%
}%
\savedanchor{\centerpoint}{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor{\midpoint}{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\centerpoint\pgfmathsetlength\pgf@y{.5ex}}%
\anchor{base}{\centerpoint\pgf@y=0pt}%
\anchor{north}{%
\calculateradii%
\csname pgf@anchor@star@border\endcsname{\pgfqpoint{0pt}{\anchorouterradius}}}%
\anchor{south}{%
\calculateradii%
\csname pgf@anchor@star@border\endcsname{\pgfqpoint{0pt}{-\anchorouterradius}}}%
\anchor{east}{%
\calculateradii%
\csname pgf@anchor@star@border\endcsname{\pgfqpoint{\anchorouterradius}{0pt}}}%
\anchor{west}{%
\calculateradii%
\csname pgf@anchor@star@border\endcsname{\pgfqpoint{-\anchorouterradius}{0pt}}}%
\anchor{north east}{%
\calculateradii%
\csname pgf@anchor@star@border\endcsname{\pgfqpoint{\anchorouterradius}{\anchorouterradius}}}%
\anchor{north west}{%
\calculateradii%
\csname pgf@anchor@star@border\endcsname{\pgfqpoint{-\anchorouterradius}{\anchorouterradius}}}%
\anchor{south east}{%
\calculateradii%
\csname pgf@anchor@star@border\endcsname{\pgfqpoint{\anchorouterradius}{-\anchorouterradius}}}%
\anchor{south west}{%
\calculateradii%
\csname pgf@anchor@star@border\endcsname{\pgfqpoint{-\anchorouterradius}{-\anchorouterradius}}}%
\backgroundpath{%
\calculateradii%
\let\angle\startangle%
\pgfpathmoveto{\pgfpointadd{\centerpoint}{\pgfqpointpolar{\startangle}{\outerradius}}}%
\pgfmathloop%
\pgfmathadd@{\angle}{\anglestep}%
\let\angle\pgfmathresult%
\ifnum\pgfmathcounter=\totalstarpoints%
\pgfpathclose%
\else%
\ifodd\pgfmathcounter
\pgfpathlineto{\pgfpointadd{\centerpoint}{\pgfqpointpolar{\angle}{\innerradius}}}%
\else%
\pgfpathlineto{\pgfpointadd{\centerpoint}{\pgfqpointpolar{\angle}{\outerradius}}}%
\fi%
\repeatpgfmathloop%
}%
\anchorborder{%
\edef\externalx{\the\pgf@x}%
\edef\externaly{\the\pgf@y}%
\centerpoint%
\pgf@xa\externalx\relax%
\pgf@ya\externaly\relax%
\advance\pgf@xa\pgf@x%
\advance\pgf@ya\pgf@y%
\edef\externalx{\the\pgf@xa}%
\edef\externaly{\the\pgf@ya}%
\pgfmathanglebetweenpoints{\centerpoint}{\pgfqpoint{\externalx}{\externaly}}%
\pgfmathsubtract@{\pgfmathresult}{\startangle}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\pgfmathdivide@{\pgfmathresult}{\anglestep}%
\pgfmathfloor@{\pgfmathresult}%
\afterassignment\pgfmath@gobbletilpgfmath@
\c@pgf@counta\pgfmathresult\relax\pgfmath@
\pgfmathmultiply@{\pgfmathresult}{\anglestep}%
\pgfmathadd@{\pgfmathresult}{\startangle}%
\let\firstangle\pgfmathresult%
\pgfmathadd@{\pgfmathresult}{\anglestep}%
\let\secondangle\pgfmathresult%
\calculateradii%
\ifodd\c@pgf@counta
\pgfpointintersectionoflines{\centerpoint}{\pgfpoint{+\externalx}{+\externaly}}%
{%
\pgfpointadd{\centerpoint}%
{\pgfqpointpolar{+\firstangle}{+\anchorinnerradius}}%
}%
{%
\pgfpointadd{\centerpoint}%
{\pgfqpointpolar{+\secondangle}{+\anchorouterradius}}%
}%
\else%
\pgfpointintersectionoflines{\centerpoint}{\pgfpoint{+\externalx}{+\externaly}}%
{%
\pgfpointadd{\centerpoint}%
{\pgfqpointpolar{+\firstangle}{+\anchorouterradius}}%
}%
{%
\pgfpointadd{\centerpoint}%
{\pgfqpointpolar{+\secondangle}{+\anchorinnerradius}}%
}%
\fi%
}%
\pgfutil@g@addto@macro\pgf@sh@s@star{%
\c@pgf@counta\totalstarpoints\relax%
\divide\c@pgf@counta2\relax%
\pgfmathloop%
\ifnum\c@pgf@counta>0\relax%
\c@pgf@countb\c@pgf@counta\relax%
\advance\c@pgf@countb-1\relax%
\pgfutil@ifundefined{pgf@anchor@star@inner point\space\the\c@pgf@counta}{%
\expandafter\xdef\csname pgf@anchor@star@inner point\space\the\c@pgf@counta\endcsname{%
\noexpand\calculateradii%
\noexpand\pgfmathmultiply@{\the\c@pgf@countb}{\noexpand\anglestep}%
\noexpand\pgfmathmultiply@{\noexpand\pgfmathresult}{2}%
\noexpand\pgfmathadd@{\noexpand\pgfmathresult}{\noexpand\anglestep}%
\noexpand\pgfmathadd@{\noexpand\pgfmathresult}{\noexpand\startangle}%
\noexpand\let\noexpand\angle\noexpand\pgfmathresult%
\noexpand\pgfpointadd{\noexpand\centerpoint}%
{\noexpand\pgfqpointpolar{\noexpand\angle}{\noexpand\anchorinnerradius}}%
}%
\expandafter\xdef\csname pgf@anchor@star@outer point\space\the\c@pgf@counta\endcsname{%
\noexpand\calculateradii%
\noexpand\pgfmathmultiply@{\the\c@pgf@countb}{\noexpand\anglestep}%
\noexpand\pgfmathmultiply@{\noexpand\pgfmathresult}{2}%
\noexpand\pgfmathadd@{\noexpand\pgfmathresult}{\noexpand\startangle}%
\noexpand\let\noexpand\angle\noexpand\pgfmathresult%
\noexpand\pgfpointadd{\noexpand\centerpoint}%
{\noexpand\pgfqpointpolar{\noexpand\angle}{\noexpand\anchorouterradius}}%
}%
}{\c@pgf@counta0\relax}%
\advance\c@pgf@counta-1\relax%
\repeatpgfmathloop%
}%
}%
\pgfkeys{/pgf/.cd,
regular polygon sides/.initial=5,
regular polygon rotate/.style={/pgf/shape border rotate={#1}}%
}%
\pgfdeclareshape{regular polygon}{%
\savedmacro\sides{%
\pgfmathtruncatemacro\sides{\pgfkeysvalueof{/pgf/regular polygon sides}}%
}%
\savedmacro\anglestep{%
\pgfmathdivide{360}{\pgfkeysvalueof{/pgf/regular polygon sides}}%
\let\anglestep\pgfmathresult%
}%
\savedmacro\calculateradii{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\ifdim\pgf@y>\pgf@x%
\pgf@x\pgf@y%
\fi%
\pgf@x1.41421\pgf@x%
\pgfmathdivide{180}{\pgfkeysvalueof{/pgf/regular polygon sides}}%
\pgfmathsec@{\pgfmathresult}%
\pgf@x\pgfmathresult\pgf@x%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum width}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@ya>\pgf@xa%
\pgf@xa\pgf@ya%
\fi%
\ifdim\pgf@x<.5\pgf@xa%
\pgf@x.5\pgf@xa%
\fi%
\edef\radius{\the\pgf@x}%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@ya>\pgf@xa%
\pgf@xa\pgf@ya%
\fi
\pgfmathdivide{180}{\pgfkeysvalueof{/pgf/regular polygon sides}}%
\pgfmathsubtract@{90}{\pgfmathresult}%
\pgfmathcosec@{\pgfmathresult}%
\advance\pgf@x\pgfmathresult\pgf@xa%
\edef\anchorradius{\the\pgf@x}%
\addtosavedmacro{\radius}%
\addtosavedmacro{\anchorradius}%
}%
\savedmacro\startangle{%
\pgfmathdivide{360}{\pgfkeysvalueof{/pgf/regular polygon sides}}%
\let\anglestep\pgfmathresult%
\pgfmathtruncatemacro\sides{\pgfkeysvalueof{/pgf/regular polygon sides}}%
\expandafter\ifodd\sides\relax%
\edef\pgfmathresult{90}%
\else%
\pgfmathdivide@{\anglestep}{2}%
\pgfmathsubtract@{90}{\pgfmathresult}%
\fi%
\pgfmathadd{\pgfmathresult}{\pgfkeysvalueof{/pgf/shape border rotate}}%
\let\startangle\pgfmathresult%
}%
\savedanchor{\centerpoint}{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor{\midpoint}{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{base}{\centerpoint\pgf@y=0pt}%
\anchor{north}{%
\calculateradii%
\csname pgf@anchor@regular polygon@border\endcsname{\pgfqpoint{0pt}{\anchorradius}}}%
\anchor{south}{%
\calculateradii%
\csname pgf@anchor@regular polygon@border\endcsname{\pgfqpoint{0pt}{-\anchorradius}}}%
\anchor{east}{%
\calculateradii%
\csname pgf@anchor@regular polygon@border\endcsname{\pgfqpoint{\anchorradius}{0pt}}}%
\anchor{west}{%
\calculateradii%
\csname pgf@anchor@regular polygon@border\endcsname{\pgfqpoint{-\anchorradius}{0pt}}}%
\anchor{north east}{%
\calculateradii%
\csname pgf@anchor@regular polygon@border\endcsname{\pgfqpoint{\anchorradius}{\anchorradius}}}%
\anchor{north west}{%
\calculateradii%
\csname pgf@anchor@regular polygon@border\endcsname{\pgfqpoint{-\anchorradius}{\anchorradius}}}%
\anchor{south east}{%
\calculateradii%
\csname pgf@anchor@regular polygon@border\endcsname{\pgfqpoint{\anchorradius}{-\anchorradius}}}%
\anchor{south west}{%
\calculateradii%
\csname pgf@anchor@regular polygon@border\endcsname{\pgfqpoint{-\anchorradius}{-\anchorradius}}}%
\backgroundpath{%
\calculateradii%
\pgfpathmoveto{%
\pgfpointadd{\centerpoint}{\pgfqpointpolar{\startangle}{\radius}}%
}%
\let\angle\startangle%
\pgfmathloop%
\ifnum\pgfmathcounter=\sides\relax%
\pgfpathclose%
\else%
\pgfmathadd@{\angle}{\anglestep}%
\let\angle\pgfmathresult%
\pgfpathlineto{%
\pgfpointadd{\centerpoint}{\pgfqpointpolar{\angle}{\radius}}%
}%
\repeatpgfmathloop%
}%
\anchorborder{%
\edef\externalx{\the\pgf@x}%
\edef\externaly{\the\pgf@y}%
\centerpoint%
\pgf@xa\externalx\relax%
\pgf@ya\externaly\relax%
\advance\pgf@xa\pgf@x%
\advance\pgf@ya\pgf@y%
\edef\externalx{\the\pgf@xa}%
\edef\externaly{\the\pgf@ya}%
\pgfmathanglebetweenpoints{\centerpoint}{\pgfqpoint{\externalx}{\externaly}}%
\pgfmathsubtract@{\pgfmathresult}{\startangle}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\pgfmathdivide@{\pgfmathresult}{\anglestep}%
\pgfmathfloor@{\pgfmathresult}%
\pgfmathmultiply@{\pgfmathresult}{\anglestep}%
\pgfmathadd@{\pgfmathresult}{\startangle}%
\let\firstangle\pgfmathresult%
\pgfmathadd@{\pgfmathresult}{\anglestep}%
\let\secondangle\pgfmathresult%
\calculateradii%
\pgfpointintersectionoflines{\centerpoint}{\pgfpoint{+\externalx}{+\externaly}}%
{%
\pgfpointadd{\centerpoint}%
{\pgfqpointpolar{+\firstangle}{+\anchorradius}}%
}%
{%
\pgfpointadd{\centerpoint}%
{\pgfqpointpolar{+\secondangle}{+\anchorradius}}%
}%
}%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@regular polygon\endcsname{%
\c@pgf@counta\sides\relax%
\pgfmathloop%
\ifnum\c@pgf@counta>0\relax%
\pgfutil@ifundefined{pgf@anchor@regular polygon@corner\space\the\c@pgf@counta}{%
\expandafter\xdef\csname pgf@anchor@regular polygon@corner\space\the\c@pgf@counta\endcsname{%
\noexpand\calculateradii%
\noexpand\pgfmathsubtract@{\the\c@pgf@counta}{1}%
\noexpand\pgfmathmultiply@{\noexpand\pgfmathresult}{\noexpand\anglestep}%
\noexpand\pgfmathadd@{\noexpand\pgfmathresult}{\noexpand\startangle}%
\noexpand\let\noexpand\angle\noexpand\pgfmathresult%
\noexpand\pgfpointadd{\noexpand\centerpoint}%
{\noexpand\pgfqpointpolar{\noexpand\angle}{\noexpand\anchorradius}}%
}%
\expandafter\xdef\csname pgf@anchor@regular polygon@side\space\the\c@pgf@counta\endcsname{%
\noexpand\calculateradii%
\noexpand\pgfmathsubtract@{\the\c@pgf@counta}{1}%
\noexpand\pgfmathmultiply@{\noexpand\pgfmathresult}{\noexpand\anglestep}%
\noexpand\pgfmathadd@{\noexpand\pgfmathresult}{\noexpand\startangle}%
\noexpand\let\noexpand\firstangle\noexpand\pgfmathresult%
\noexpand\pgfmathadd@{\noexpand\pgfmathresult}{\noexpand\anglestep}%
\noexpand\let\noexpand\secondangle\noexpand\pgfmathresult%
\noexpand\pgfpointlineattime{0.5}%
{\noexpand\pgfpointadd{\noexpand\centerpoint}%
{\noexpand\pgfqpointpolar{\noexpand\firstangle}{\noexpand\anchorradius}}}%
{\noexpand\pgfpointadd{\noexpand\centerpoint}%
{\noexpand\pgfqpointpolar{\noexpand\secondangle}{\noexpand\anchorradius}}}%
}%
}{\c@pgf@counta0\relax}%
\advance\c@pgf@counta-1\relax%
\repeatpgfmathloop%
}%
}%
\pgfkeys{/pgf/.cd,
trapezium left angle/.initial=60,
trapezium right angle/.initial=60,
trapezium angle/.style={
/pgf/trapezium left angle={#1},
/pgf/trapezium right angle={#1}
},%
trapezium stretches/.is if=pgf@lib@sh@trapeziumstretches,%
trapezium stretches body/.is if=pgf@lib@sh@trapeziumstretchesbody,%
}%
\newif\ifpgf@lib@sh@trapeziumstretchesbody
\newif\ifpgf@lib@sh@trapeziumstretches
\pgfdeclareshape{trapezium}{%
\savedmacro\installtrapeziumparameters{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\ifpgfshapeborderusesincircle%
\pgfmathsetmacro\rotate{\pgfkeysvalueof{/pgf/shape border rotate}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\fi%
\pgf@x1.41421\pgf@x%
\pgf@y\pgf@x%
\else%
\pgfmathmod{\pgfkeysvalueof{/pgf/shape border rotate}}{360}%
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter\c@pgf@counta\pgfmathresult\relax\pgfmath@%
\advance\c@pgf@counta45\relax%
\divide\c@pgf@counta90\relax%
\multiply\c@pgf@counta90\relax%
\ifnum\c@pgf@counta<0\relax%
\advance\c@pgf@counta360\relax%
\fi%
\edef\rotate{\the\c@pgf@counta}%
\ifnum\c@pgf@counta=90\relax%
\pgf@xc\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xc%
\else%
\ifnum\c@pgf@counta=270\relax%
\pgf@xc\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xc%
\fi%
\fi%
\fi%
\pgfmathmod{\pgfkeysvalueof{/pgf/trapezium left angle}}{360}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\leftangle\pgfmathresult%
\ifdim\leftangle pt=0pt\relax%
\def\pgfmathresult{0}%
\else%
\pgfmathcot@{\leftangle}%
\fi%
\pgf@xa2\pgf@y%
\pgf@xa\pgfmathresult\pgf@xa%
\pgfmathmod{\pgfkeysvalueof{/pgf/trapezium right angle}}{360}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\rightangle\pgfmathresult%
\ifdim\rightangle pt=0pt\relax%
\def\pgfmathresult{0}%
\else%
\pgfmathcot@{\rightangle}%
\fi%
\pgf@xb2\pgf@y%
\pgf@xb\pgfmathresult\pgf@xb%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@y<.5\pgf@ya%
\ifpgf@lib@sh@trapeziumstretches%
\pgf@y.5\pgf@ya%
\else%
\ifpgf@lib@sh@trapeziumstretchesbody%
\pgf@y.5\pgf@ya%
\else%
\pgfmathreciprocal@{\pgfmath@tonumber{\pgf@y}}%
\pgf@yb.5\pgf@ya%
\pgf@yb\pgfmathresult\pgf@yb%
\pgf@y.5\pgf@ya%
\pgf@x\pgfmath@tonumber{\pgf@yb}\pgf@x%
\pgf@xa\pgfmath@tonumber{\pgf@yb}\pgf@xa%
\pgf@xb\pgfmath@tonumber{\pgf@yb}\pgf@xb%
\fi%
\fi%
\fi%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@xc2\pgf@x%
\ifdim\pgf@xa<0pt\relax%
\advance\pgf@xc-\pgf@xa%
\else%
\advance\pgf@xc\pgf@xa%
\fi%
\ifdim\pgf@xb<0pt\relax%
\advance\pgf@xc-\pgf@xb%
\else%
\advance\pgf@xc\pgf@xb%
\fi%
\ifdim\pgf@xc<\pgf@ya%
\ifpgf@lib@sh@trapeziumstretchesbody%
\pgf@xc-\pgf@xc%
\advance\pgf@xc\pgf@ya%
\advance\pgf@x.5\pgf@xc%
\else%
\pgfmathreciprocal@{\pgfmath@tonumber{\pgf@xc}}%
\pgf@ya\pgfmathresult\pgf@ya%
\pgf@x\pgfmath@tonumber{\pgf@ya}\pgf@x%
\pgf@xa\pgfmath@tonumber{\pgf@ya}\pgf@xa%
\pgf@xb\pgfmath@tonumber{\pgf@ya}\pgf@xb%
\ifpgf@lib@sh@trapeziumstretches%
\else%
\pgf@y\pgfmath@tonumber{\pgf@ya}\pgf@y%
\fi%
\fi%
\fi%
\edef\halfheight{\the\pgf@y}%
\edef\halfwidth{\the\pgf@x}%
\edef\leftextension{\the\pgf@xa}%
\edef\rightextension{\the\pgf@xb}%
\pgf@xc2\pgf@x%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@y>\pgf@x%
\pgf@x\pgf@y%
\fi%
\edef\outersep{\the\pgf@x}%
\advance\pgf@xc2.0\pgf@x%
\pgf@yc\halfheight\relax%
\multiply\pgf@yc2\relax%
\advance\pgf@yc2.0\pgf@x%
\ifdim\pgf@xc<\pgf@yc%
\edef\externalradius{\the\pgf@yc}%
\else%
\edef\externalradius{\the\pgf@xc}%
\fi%
\pgfextract@process\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\pgfextract@process\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt\relax%
}%
\pgfextract@process\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\pgfextract@process\lowerleftpoint{%
\centerpoint%
\advance\pgf@x-\halfwidth\relax%
\ifdim\leftextension>0pt\relax%
\advance\pgf@x-\leftextension\relax%
\fi%
\advance\pgf@y-\halfheight\relax%
}%
\pgfextract@process\upperleftpoint{%
\centerpoint%
\advance\pgf@x-\halfwidth\relax%
\ifdim\leftextension<0pt\relax%
\advance\pgf@x\leftextension\relax%
\fi%
\advance\pgf@y\halfheight\relax%
}%
\pgfextract@process\upperrightpoint{%
\centerpoint%
\advance\pgf@x\halfwidth\relax%
\ifdim\rightextension<0pt\relax%
\advance\pgf@x-\rightextension\relax%
\fi%
\advance\pgf@y\halfheight\relax%
}%
\pgfextract@process\lowerrightpoint{%
\centerpoint%
\advance\pgf@x\halfwidth\relax%
\ifdim\rightextension>0pt\relax%
\advance\pgf@x\rightextension\relax%
\fi%
\advance\pgf@y-\halfheight\relax%
}%
\pgfextract@process\lowerleftmiter{%
\pgfmathanglebetweenlines{\lowerleftpoint}{\lowerrightpoint}{\lowerleftpoint}{\upperleftpoint}%
\pgfmathmultiply@{\pgfmathresult}{.5}%
\pgfmathtan@{\pgfmathresult}%
\pgfmathreciprocal@{\pgfmathresult}%
\pgf@x-\outersep\relax%
\pgf@x\pgfmathresult\pgf@x%
\pgf@y-\outersep\relax%
}%
\pgfextract@process\upperleftmiter{%
\pgfmathanglebetweenlines{\upperleftpoint}{\lowerleftpoint}{\upperleftpoint}{\upperrightpoint}%
\pgfmathmultiply@{\pgfmathresult}{.5}%
\pgfmathtan@{\pgfmathresult}%
\pgfmathreciprocal@{\pgfmathresult}%
\pgf@x-\outersep\relax%
\pgf@x\pgfmathresult\pgf@x%
\pgf@y\outersep\relax%
}%
\pgfextract@process\upperrightmiter{%
\pgfmathanglebetweenlines{\upperrightpoint}{\upperleftpoint}{\upperrightpoint}{\lowerrightpoint}%
\pgfmathmultiply@{\pgfmathresult}{.5}%
\pgfmathtan@{\pgfmathresult}%
\pgfmathreciprocal@{\pgfmathresult}%
\pgf@x\outersep\relax%
\pgf@x\pgfmathresult\pgf@x%
\pgf@y\outersep\relax%
}%
\pgfextract@process\lowerrightmiter{%
\pgfmathanglebetweenlines{\lowerrightpoint}{\upperrightpoint}{\lowerrightpoint}{\lowerleftpoint}%
\pgfmathmultiply@{\pgfmathresult}{.5}%
\pgfmathtan@{\pgfmathresult}%
\pgfmathreciprocal@{\pgfmathresult}%
\pgf@x\outersep\relax%
\pgf@x\pgfmathresult\pgf@x%
\pgf@y-\outersep\relax%
}%
\pgfextract@process\lowerleftborderpoint{%
\pgfpointadd{\lowerleftpoint}{\lowerleftmiter}%
}%
\pgfextract@process\upperleftborderpoint{%
\pgfpointadd{\upperleftpoint}{\upperleftmiter}%
}%
\pgfextract@process\upperrightborderpoint{%
\pgfpointadd{\upperrightpoint}{\upperrightmiter}%
}%
\pgfextract@process\lowerrightborderpoint{%
\pgfpointadd{\lowerrightpoint}{\lowerrightmiter}%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\lowerleftborderpoint}%
\let\angletolowerleft\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\upperleftborderpoint}%
\let\angletoupperleft\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\upperrightborderpoint}%
\let\angletoupperright\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\lowerrightborderpoint}%
\let\angletolowerright\pgfmathresult%
\pgfextract@process\rotatedbasepoint{%
\pgfmathrotatepointaround{\basepoint}{\centerpoint}{-\rotate}%
}%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\lowerleftborderpoint}%
\let\baseangletolowerleft\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\upperleftborderpoint}%
\let\baseangletoupperleft\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\upperrightborderpoint}%
\let\baseangletoupperright\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\lowerrightborderpoint}%
\let\baseangletolowerright\pgfmathresult%
\pgfextract@process\rotatedmidpoint{%
\pgfmathrotatepointaround{\midpoint}{\centerpoint}{-\rotate}%
}%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\lowerleftborderpoint}%
\let\midangletolowerleft\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\upperleftborderpoint}%
\let\midangletoupperleft\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\upperrightborderpoint}%
\let\midangletoupperright\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\lowerrightborderpoint}%
\let\midangletolowerright\pgfmathresult%
\pgfextract@process\lowerleftborderpoint{%
\pgfmathrotatepointaround%
{\lowerleftborderpoint}%
{\centerpoint}%
{\rotate}%
}%
\pgfextract@process\upperleftborderpoint{%
\pgfmathrotatepointaround%
{\upperleftborderpoint}%
{\centerpoint}%
{\rotate}%
}%
\pgfextract@process\upperrightborderpoint{%
\pgfmathrotatepointaround%
{\upperrightborderpoint}%
{\centerpoint}%
{\rotate}%
}%
\pgfextract@process\lowerrightborderpoint{%
\pgfmathrotatepointaround%
{\lowerrightborderpoint}%
{\centerpoint}%
{\rotate}%
}%
\pgfextract@process\lowerleftpoint{%
\pgfmathrotatepointaround{\lowerleftpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\upperleftpoint{%
\pgfmathrotatepointaround{\upperleftpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\upperrightpoint{%
\pgfmathrotatepointaround{\upperrightpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\lowerrightpoint{%
\pgfmathrotatepointaround{\lowerrightpoint}{\centerpoint}{\rotate}%
}%
\addtosavedmacro{\lowerleftpoint}%
\addtosavedmacro{\upperleftpoint}%
\addtosavedmacro{\upperrightpoint}%
\addtosavedmacro{\lowerrightpoint}%
\addtosavedmacro{\lowerleftborderpoint}%
\addtosavedmacro{\upperleftborderpoint}%
\addtosavedmacro{\upperrightborderpoint}%
\addtosavedmacro{\lowerrightborderpoint}%
\addtosavedmacro{\angletolowerleft}%
\addtosavedmacro{\angletoupperleft}%
\addtosavedmacro{\angletoupperright}%
\addtosavedmacro{\angletolowerright}%
\addtosavedmacro{\baseangletolowerleft}%
\addtosavedmacro{\baseangletoupperleft}%
\addtosavedmacro{\baseangletoupperright}%
\addtosavedmacro{\baseangletolowerright}%
\addtosavedmacro{\midangletolowerleft}%
\addtosavedmacro{\midangletoupperleft}%
\addtosavedmacro{\midangletoupperright}%
\addtosavedmacro{\midangletolowerright}%
\addtosavedmacro{\rotate}%
\addtosavedmacro{\externalradius}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt\relax%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\anchor{center}{\centerpoint}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\installtrapeziumparameters%
\let\pgf@trapeziumanchorborderreferencepoint\basepoint%
\csname pgf@anchor@trapezium@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{base west}{%
\installtrapeziumparameters%
\let\pgf@trapeziumanchorborderreferencepoint\basepoint%
\csname pgf@anchor@trapezium@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\installtrapeziumparameters%
\let\pgf@trapeziumanchorborderreferencepoint\midpoint%
\csname pgf@anchor@trapezium@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{mid west}{%
\installtrapeziumparameters%
\let\pgf@trapeziumanchorborderreferencepoint\midpoint%
\csname pgf@anchor@trapezium@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{north}{%
\installtrapeziumparameters%
\csname pgf@anchor@trapezium@border\endcsname{\pgfqpoint{0pt}{\externalradius}}%
}%
\anchor{south}{%
\installtrapeziumparameters%
\csname pgf@anchor@trapezium@border\endcsname{\pgfqpoint{0pt}{-\externalradius}}%
}%
\anchor{east}{%
\installtrapeziumparameters%
\csname pgf@anchor@trapezium@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{west}{%
\installtrapeziumparameters%
\csname pgf@anchor@trapezium@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{north east}{%
\installtrapeziumparameters%
\csname pgf@anchor@trapezium@border\endcsname{\pgfqpoint{\externalradius}{\externalradius}}%
}%
\anchor{south west}{%
\installtrapeziumparameters%
\csname pgf@anchor@trapezium@border\endcsname{\pgfqpoint{-\externalradius}{-\externalradius}}%
}%
\anchor{south east}{%
\installtrapeziumparameters%
\csname pgf@anchor@trapezium@border\endcsname{\pgfqpoint{\externalradius}{-\externalradius}}%
}%
\anchor{north west}{%
\installtrapeziumparameters%
\csname pgf@anchor@trapezium@border\endcsname{\pgfqpoint{-\externalradius}{\externalradius}}%
}%
\anchor{bottom left corner}{%
\installtrapeziumparameters%
\lowerleftborderpoint%
}%
\anchor{top left corner}{%
\installtrapeziumparameters%
\upperleftborderpoint%
}%
\anchor{top right corner}{%
\installtrapeziumparameters%
\upperrightborderpoint%
}%
\anchor{bottom right corner}{%
\installtrapeziumparameters%
\lowerrightborderpoint%
}%
\anchor{left side}{%
\installtrapeziumparameters%
\pgfpointlineattime{0.5}{\lowerleftborderpoint}{\upperleftborderpoint}%
}%
\anchor{right side}{%
\installtrapeziumparameters%
\pgfpointlineattime{0.5}{\lowerrightborderpoint}{\upperrightborderpoint}%
}%
\anchor{top side}{%
\installtrapeziumparameters%
\pgfpointlineattime{0.5}{\upperleftborderpoint}{\upperrightborderpoint}%
}%
\anchor{bottom side}{%
\installtrapeziumparameters%
\pgfpointlineattime{0.5}{\lowerleftborderpoint}{\lowerrightborderpoint}%
}%
\backgroundpath{%
\installtrapeziumparameters%
\pgfpathmoveto{\lowerleftpoint}%
\pgfpathlineto{\upperleftpoint}%
\pgfpathlineto{\upperrightpoint}%
\pgfpathlineto{\lowerrightpoint}%
\pgfpathclose%
}%
\anchorborder{%
\edef\externalx{\the\pgf@x}%
\edef\externaly{\the\pgf@y}%
\pgfutil@ifundefined{pgf@trapeziumanchorborderreferencepoint}%
{\let\referencepoint\centerpoint}%
{\let\referencepoint\pgf@trapeziumanchorborderreferencepoint}%
\referencepoint%
\pgf@xa\externalx\relax%
\pgf@ya\externaly\relax%
\advance\pgf@xa\pgf@x%
\advance\pgf@ya\pgf@y%
\edef\externalx{\the\pgf@xa}%
\edef\externaly{\the\pgf@ya}%
\installtrapeziumparameters%
\pgfmathanglebetweenpoints{\referencepoint}{\pgfqpoint{\externalx}{\externaly}}%
\pgfmathsubtract@{\pgfmathresult}{\rotate}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\externalangle\pgfmathresult%
\ifx\referencepoint\basepoint%
\let\angletoupperright\baseangletoupperright%
\let\angletoupperleft\baseangletoupperleft%
\let\angletolowerright\baseangletolowerright%
\let\angletolowerleft\baseangletolowerleft%
\else%
\ifx\referencepoint\midpoint%
\let\angletoupperright\midangletoupperright%
\let\angletoupperleft\midangletoupperleft%
\let\angletolowerright\midangletolowerright%
\let\angletolowerleft\midangletolowerleft%
\fi\fi%
\ifdim\externalangle pt<\angletoupperright pt\relax%
\let\firstpoint\upperrightborderpoint%
\let\secondpoint\lowerrightborderpoint%
\else%
\ifdim\externalangle pt<\angletoupperleft pt\relax%
\let\firstpoint\upperleftborderpoint%
\let\secondpoint\upperrightborderpoint%
\else%
\ifdim\externalangle pt<\angletolowerleft pt\relax%
\let\firstpoint\upperleftborderpoint%
\let\secondpoint\lowerleftborderpoint%
\else%
\ifdim\externalangle pt<\angletolowerright pt\relax%
\let\firstpoint\lowerleftborderpoint%
\let\secondpoint\lowerrightborderpoint%
\else%
\let\firstpoint\upperrightborderpoint%
\let\secondpoint\lowerrightborderpoint%
\fi%
\fi%
\fi%
\fi%
\pgfpointintersectionoflines{\referencepoint}{\pgfqpoint{\externalx}{\externaly}}%
{\firstpoint}{\secondpoint}%
}%
}%
\pgfdeclareshape{semicircle}{%
\savedmacro\installsemicircleparameters{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\fi%
\edef\outersep{\the\pgf@x}%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x+.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y+.5\ht\pgfnodeparttextbox%
\advance\pgf@y+.5\dp\pgfnodeparttextbox%
\ifpgfshapeborderusesincircle%
\pgfmathsetmacro\rotate{\pgfkeysvalueof{/pgf/shape border rotate}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\fi%
\pgf@x1.41421\pgf@x%
\edef\halfheight{\the\pgf@x}%
\advance\pgf@x\pgf@x%
\else%
\pgfmathmod{\pgfkeysvalueof{/pgf/shape border rotate}}{360}%
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter\c@pgf@counta\pgfmathresult\relax\pgfmath@%
\advance\c@pgf@counta45\relax%
\divide\c@pgf@counta90\relax%
\multiply\c@pgf@counta90\relax%
\ifnum\c@pgf@counta<0\relax%
\advance\c@pgf@counta360\relax%
\fi%
\edef\rotate{\the\c@pgf@counta}%
\ifnum\c@pgf@counta=90\relax%
\pgf@xc\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xc%
\else%
\ifnum\c@pgf@counta=270\relax%
\pgf@xc\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xc%
\fi%
\fi%
\advance\pgf@y\pgf@y%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
\pgf@x\pgfmathresult pt\relax%
\pgf@y.5\pgf@y%
\edef\halfheight{\the\pgf@y}%
\fi%
\edef\defaultradius{\the\pgf@x}%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@x<.5\pgf@xa%
\pgf@x.5\pgf@xa%
\fi%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@x<\pgf@ya%
\pgf@x\pgf@ya%
\fi%
\edef\semicircleradius{\the\pgf@x}%
\pgfextract@process\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y+-.5\dp\pgfnodeparttextbox%
}%
\pgfextract@process\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt\relax%
}%
\pgfextract@process\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\pgfextract@process\semicirclecenterpoint{%
\centerpoint%
\pgf@ya\semicircleradius\relax%
\advance\pgf@ya-\defaultradius\relax%
\pgf@ya.4\pgf@ya%
\advance\pgf@y-\pgf@ya%
\pgf@ya\halfheight\relax%
\advance\pgf@y-\pgf@ya%
}%
\pgf@x\semicircleradius\relax%
\advance\pgf@x\outersep\relax%
\edef\semicircleradius{\the\pgf@x}%
\pgfpointdiff{\centerpoint}{\semicirclecenterpoint}%
\ifdim\pgf@y<0pt\pgf@y-\pgf@y\fi%
\edef\centerpointdiff{\the\pgf@y}%
\pgfextract@process\arcstartborder{%
\semicirclecenterpoint%
\advance\pgf@x\semicircleradius\relax%
}%
\pgfextract@process\arcendborder{%
\semicirclecenterpoint%
\advance\pgf@x-\semicircleradius\relax%
}%
\pgfextract@process\arcstartcorner{%
\arcstartborder%
\advance\pgf@y-\outersep\relax%
}%
\pgfextract@process\arcendcorner{%
\arcendborder%
\advance\pgf@y-\outersep\relax%
}
\pgfmathanglebetweenpoints{\centerpoint}{\arcstartborder}%
\let\angletoarcstartborder\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\arcendborder}%
\let\angletoarcendborder\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\arcstartcorner}%
\let\angletoarcstartcorner\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\arcendcorner}%
\let\angletoarcendcorner\pgfmathresult%
\pgfextract@process\rotatedbasepoint{%
\pgfmathrotatepointaround{\basepoint}{\centerpoint}{-\rotate}%
}%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\arcstartborder}%
\let\baseangletoarcstartborder\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\arcendborder}%
\let\baseangletoarcendborder\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\arcstartcorner}%
\let\baseangletoarcstartcorner\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\arcendcorner}%
\let\baseangletoarcendcorner\pgfmathresult%
\pgfextract@process\rotatedmidpoint{%
\pgfmathrotatepointaround{\midpoint}{\centerpoint}{-\rotate}%
}%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\arcstartborder}%
\let\midangletoarcstartborder\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\arcendborder}%
\let\midangletoarcendborder\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\arcstartcorner}%
\let\midangletoarcstartcorner\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\arcendcorner}%
\let\midangletoarcendcorner\pgfmathresult%
\pgfextract@process\semicirclecenterpoint{%
\pgfmathrotatepointaround{\semicirclecenterpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\arcstartborder{%
\pgfmathrotatepointaround{\arcstartborder}{\centerpoint}{\rotate}%
}%
\pgfextract@process\arcendborder{%
\pgfmathrotatepointaround{\arcendborder}{\centerpoint}{\rotate}%
}%
\pgfextract@process\arcstartcorner{%
\pgfmathrotatepointaround{\arcstartcorner}{\centerpoint}{\rotate}%
}%
\pgfextract@process\arcendcorner{%
\pgfmathrotatepointaround{\arcendcorner}{\centerpoint}{\rotate}%
}%
\pgfpointdiff{\basepoint}{\semicirclecenterpoint}%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
\edef\basesemicirclecenterdiff{\pgfmathresult pt}%
\pgfpointdiff{\midpoint}{\semicirclecenterpoint}%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
\edef\midsemicirclecenterdiff{\pgfmathresult pt}%
\addtosavedmacro{\rotate}%
\addtosavedmacro{\outersep}%
\addtosavedmacro{\semicircleradius}%
\addtosavedmacro{\arcstartborder}%
\addtosavedmacro{\arcendborder}%
\addtosavedmacro{\arcstartcorner}%
\addtosavedmacro{\arcendcorner}%
\addtosavedmacro{\semicirclecenterpoint}%
\addtosavedmacro{\angletoarcstartborder}%
\addtosavedmacro{\angletoarcendborder}%
\addtosavedmacro{\angletoarcstartcorner}%
\addtosavedmacro{\angletoarcendcorner}%
\addtosavedmacro{\centerpointdiff}%
\addtosavedmacro{\basesemicirclecenterdiff}%
\addtosavedmacro{\midsemicirclecenterdiff}%
\addtosavedmacro{\baseangletoarcstartborder}%
\addtosavedmacro{\baseangletoarcendborder}%
\addtosavedmacro{\baseangletoarcstartcorner}%
\addtosavedmacro{\baseangletoarcendcorner}%
\addtosavedmacro{\midangletoarcstartborder}%
\addtosavedmacro{\midangletoarcendborder}%
\addtosavedmacro{\midangletoarcstartcorner}%
\addtosavedmacro{\midangletoarcendcorner}%
}%
\savedanchor{\centerpoint}{%
\pgfmathsetlength\pgf@x{+.5\wd\pgfnodeparttextbox}%
\pgfmathsetlength\pgf@y{+.5\ht\pgfnodeparttextbox}%
\pgfmathaddtolength\pgf@y{-.5\dp\pgfnodeparttextbox}%
}%
\savedanchor{\basepoint}{%
\pgfmathsetlength\pgf@x{+.5\wd\pgfnodeparttextbox}%
\pgf@y0pt\relax%
}%
\savedanchor{\midpoint}{%
\pgfmathsetlength\pgf@x{+.5\wd\pgfnodeparttextbox}%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\anchor{center}{\centerpoint}%
\anchor{base}{\basepoint}%
\anchor{base west}{%
\installsemicircleparameters%
\let\pgf@semicirclereferencepoint\basepoint%
\csname pgf@anchor@semicircle@border\endcsname{\pgfqpoint{-\semicircleradius}{0pt}}%
}%
\anchor{base east}{%
\installsemicircleparameters%
\let\pgf@semicirclereferencepoint\basepoint%
\csname pgf@anchor@semicircle@border\endcsname{\pgfqpoint{\semicircleradius}{0pt}}%
}%
\anchor{mid}{\midpoint}%
\anchor{mid west}{%
\installsemicircleparameters%
\let\pgf@semicirclereferencepoint\midpoint%
\csname pgf@anchor@semicircle@border\endcsname{\pgfqpoint{-\semicircleradius}{0pt}}%
}%
\anchor{mid east}{%
\installsemicircleparameters%
\let\pgf@semicirclereferencepoint\midpoint%
\csname pgf@anchor@semicircle@border\endcsname{\pgfqpoint{\semicircleradius}{0pt}}%
}%
\anchor{apex}{%
\installsemicircleparameters%
\pgfmathadd@{\rotate}{90}%
\let\angle\pgfmathresult%
\pgfpointadd{\semicirclecenterpoint}{\pgfqpointpolar{\angle}{\semicircleradius}}%
}%
\anchor{arc start}{%
\installsemicircleparameters%
\arcstartcorner%
}%
\anchor{arc end}{%
\installsemicircleparameters%
\arcendcorner%
}%
\anchor{chord center}{%
\installsemicircleparameters%
\pgfpointlineattime{0.5}{\arcstartcorner}{\arcendcorner}%
}%
\anchor{north}{%
\installsemicircleparameters%
\csname pgf@anchor@semicircle@border\endcsname{\pgfqpointpolar{90}{\semicircleradius}}%
}%
\anchor{south}{%
\installsemicircleparameters%
\csname pgf@anchor@semicircle@border\endcsname{\pgfqpointpolar{270}{\semicircleradius}}%
}%
\anchor{east}{%
\installsemicircleparameters%
\csname pgf@anchor@semicircle@border\endcsname{\pgfqpointpolar{0}{\semicircleradius}}%
}%
\anchor{west}{%
\installsemicircleparameters%
\csname pgf@anchor@semicircle@border\endcsname{\pgfqpointpolar{180}{\semicircleradius}}%
}%
\anchor{north west}{%
\installsemicircleparameters%
\csname pgf@anchor@semicircle@border\endcsname{\pgfqpointpolar{135}{\semicircleradius}}%
}%
\anchor{south west}{%
\installsemicircleparameters%
\csname pgf@anchor@semicircle@border\endcsname{\pgfqpointpolar{225}{\semicircleradius}}%
}%
\anchor{north east}{%
\installsemicircleparameters%
\csname pgf@anchor@semicircle@border\endcsname{\pgfqpointpolar{45}{\semicircleradius}}%
}%
\anchor{south east}{%
\installsemicircleparameters%
\csname pgf@anchor@semicircle@border\endcsname{\pgfqpointpolar{315}{\semicircleradius}}%
}%
\backgroundpath{%
\installsemicircleparameters%
\pgf@x\semicircleradius\relax%
\advance\pgf@x-\outersep\relax%
\edef\semicircleradius{\the\pgf@x}%
\pgfpathmoveto{\pgfpointadd{\semicirclecenterpoint}{\pgfqpointpolar{\rotate}{\semicircleradius}}}%
{%
\pgftransformrotate{\rotate}%
\pgfpatharc{0}{180}{\semicircleradius}%
\pgfpathclose%
}%
}%
\anchorborder{%
\edef\externalx{\the\pgf@x}%
\edef\externaly{\the\pgf@y}%
\pgfutil@ifundefined{pgf@semicirclereferencepoint}%
{\let\referencepoint\centerpoint}%
{\let\referencepoint\pgf@semicirclereferencepoint}%
\referencepoint%
\pgf@xa\externalx\relax%
\pgf@ya\externaly\relax%
\advance\pgf@xa\pgf@x%
\advance\pgf@ya\pgf@y%
\edef\externalx{\the\pgf@xa}%
\edef\externaly{\the\pgf@ya}%
\installsemicircleparameters%
\pgfmathanglebetweenpoints{\referencepoint}{\pgfqpoint{\externalx}{\externaly}}%
\let\externalangle\pgfmathresult%
\pgfmathsubtract@{\pgfmathresult}{\rotate}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\angle\pgfmathresult%
\ifx\referencepoint\basepoint%
\let\angletoarcstartborder\baseangletoarcstartborder%
\let\angletoarcendborder\baseangletoarcendborder%
\let\angletoarcstartcorner\baseangletoarcstartcorner%
\let\angletoarcendcorner\baseangletoarcendcorner%
\let\centerpointdiff\basesemicirclecenterdiff%
\else%
\ifx\referencepoint\midpoint%
\let\angletoarcstartborder\midangletoarcstartborder%
\let\angletoarcendborder\midangletoarcendborder%
\let\angletoarcstartcorner\midangletoarcstartcorner%
\let\angletoarcendcorner\midangletoarcendcorner%
\let\centerpointdiff\midsemicirclecenterdiff%
\fi\fi%
\ifdim\angle pt>\angletoarcstartborder pt\relax%
\let\firstpoint\pgfutil@empty%
\let\secondpoint\pgfutil@empty%
\else%
\ifdim\angle pt>\angletoarcstartcorner pt\relax%
\let\firstpoint\arcstartcorner%
\let\secondpoint\arcstartborder%
\else%
\ifdim\angle pt>\angletoarcendcorner pt\relax%
\let\firstpoint\arcendcorner%
\let\secondpoint\arcstartcorner%
\else%
\ifdim\angle pt>\angletoarcendborder pt\relax%
\let\firstpoint\arcendborder%
\let\secondpoint\arcendcorner%
\else%
\let\firstpoint\pgfutil@empty%
\let\secondpoint\pgfutil@empty%
\fi%
\fi%
\fi%
\fi%
\ifx\firstpoint\pgfutil@empty
\pgfmathanglebetweenlines{\referencepoint}{\pgfqpoint{\externalx}{\externaly}}%
{\semicirclecenterpoint}{\referencepoint}%
\pgfmathsin@{\pgfmathresult}%
\let\sineangle\pgfmathresult%
\pgf@x\semicircleradius\relax%
\pgfmathreciprocal@{\pgfmath@tonumber{\pgf@x}}%
\let\reciprocalradius\pgfmathresult%
\pgf@x\centerpointdiff\relax%
\pgf@x\sineangle\pgf@x%
\pgf@x\reciprocalradius\pgf@x%
\pgfmathasin@{\pgfmath@tonumber{\pgf@x}}%
\pgf@x\pgfmathresult pt\relax%
\advance\pgf@x\externalangle pt\relax%
\edef\angle{\pgfmath@tonumber{\pgf@x}}%
\pgfpointadd{\semicirclecenterpoint}{\pgfqpointpolar{\angle}{\semicircleradius}}%
\else%
\pgfpointintersectionoflines{\referencepoint}{\pgfqpoint{\externalx}{\externaly}}%
{\firstpoint}{\secondpoint}%
\fi%
}%
}%
\pgfkeys{/pgf/.cd,
isosceles triangle apex angle/.initial=45,
isosceles triangle stretches/.is if=pgf@lib@sh@isosceslestrianglestretches
}%
\newif\ifpgf@lib@sh@isosceslestrianglestretches
\pgfdeclareshape{isosceles triangle}{%
\savedmacro\trianglepoints{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/isosceles triangle apex angle}}%
\divide\pgf@x2\relax%
\edef\halfapexangle{\pgfmath@tonumber{\pgf@x}}%
\addtosavedmacro\halfapexangle%
\pgfmathtan@{\halfapexangle}%
\let\tanhalfapexangle\pgfmathresult%
\pgfmathcot@{\halfapexangle}%
\let\cothalfapexangle\pgfmathresult%
\pgfmathsin@{\halfapexangle}%
\let\sinhalfapexangle\pgfmathresult%
\pgfmathreciprocal@{\pgfmathresult}%
\let\cosechalfapexangle\pgfmathresult%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\ifpgfshapeborderusesincircle%
\pgfmathsetmacro\rotate{\pgfkeysvalueof{/pgf/shape border rotate}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\else%
\pgf@y\pgf@x%
\fi%
\pgf@x1.414213\pgf@x%
\pgf@y1.414213\pgf@y%
\pgf@xa\pgf@x%
\advance\pgf@xa\cosechalfapexangle\pgf@x%
\pgf@ya\tanhalfapexangle\pgf@xa%
\else%
\pgfmathmod{\pgfkeysvalueof{/pgf/shape border rotate}}{360}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\pgfmathsetcount\c@pgf@counta{+\pgfmathresult}%
\advance\c@pgf@counta45\relax%
\divide\c@pgf@counta90\relax%
\multiply\c@pgf@counta90\relax%
\edef\rotate{\the\c@pgf@counta}%
\ifnum\c@pgf@counta=90\relax%
\pgf@xa\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xa%
\else%
\ifnum\c@pgf@counta=270\relax%
\pgf@xa\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xa%
\fi%
\fi%
\pgf@xa2.0\pgf@x%
\pgf@ya\tanhalfapexangle\pgf@xa%
\advance\pgf@xa\cothalfapexangle\pgf@y%
\advance\pgf@ya\pgf@y%
\fi%
\addtosavedmacro\rotate%
\ifdim\pgf@xa=0pt\relax%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum height}}%
\fi%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@ya<.5\pgf@yb%
\ifpgf@lib@sh@isosceslestrianglestretches%
\pgf@ya.5\pgf@yb%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@ya}}{\pgfmath@tonumber{\pgf@xa}}%
\pgfmathatan@{\pgfmathresult}%
\let\halfapexangle\pgfmathresult%
\else%
\pgf@ya.5\pgf@yb%
\pgf@xa\cothalfapexangle\pgf@ya%
\fi%
\fi%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@xa<\pgf@xb%
\ifpgf@lib@sh@isosceslestrianglestretches%
\pgf@xa\pgf@xb%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@ya}}{\pgfmath@tonumber{\pgf@xa}}%
\pgfmathatan@{\pgfmathresult}%
\let\halfapexangle\pgfmathresult%
\else%
\pgf@xa\pgf@xb%
\pgf@ya\tanhalfapexangle\pgf@xa%
\fi%
\fi%
\ifpgfshapeborderusesincircle%
\pgf@xc\pgf@xa%
\pgfmathsin@{\halfapexangle}%
\pgf@xc\pgfmathresult\pgf@xc%
\pgf@yc1pt\relax%
\advance\pgf@yc\pgfmathresult pt\relax%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@xc}}{\pgfmath@tonumber{\pgf@yc}}
\pgfutil@tempdima\pgfmathresult pt\relax%
\else%
\pgf@xc\pgf@ya%
\advance\pgf@xc-\pgf@y%
\pgfmathcos@{\halfapexangle}%
\pgf@xc\pgfmathresult\pgf@xc%
\pgfmathsin@{\halfapexangle}%
\advance\pgf@xc-\pgfmathresult\pgf@x%
\advance\pgf@xc-\pgfmathresult\pgf@x%
\pgf@yc\pgfmathresult pt\relax%
\advance\pgf@yc1pt\relax%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@xc}}{\pgfmath@tonumber{\pgf@yc}}%
\pgfutil@tempdima\pgfmathresult pt\relax%
\advance\pgfutil@tempdima\pgf@x%
\fi%
\pgfextract@process\apex{%
\pgf@y0pt%
\pgf@x\pgf@xa%
\advance\pgf@x-\pgfutil@tempdima%
}%
\addtosavedmacro\apex%
\pgfextract@process\lowerleft{%
\pgf@y\pgf@ya%
\pgf@x-\pgfutil@tempdima%
}%
\addtosavedmacro\lowerleft%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xb<\pgf@yb%
\pgf@xb\pgf@yb%
\fi%
\pgfextract@process\apexanchor{%
\apex%
\advance\pgf@x\cosechalfapexangle\pgf@xb%
}%
\addtosavedmacro\apexanchor%
\pgf@yc-\halfapexangle pt\relax%
\advance\pgf@yc90pt\relax%
\divide\pgf@yc2\relax%
\pgfmathcot@{\pgfmath@tonumber{\pgf@yc}}%
\pgfextract@process\lowerleftanchor{%
\lowerleft%
\advance\pgf@y\pgfmathresult\pgf@xb%
\advance\pgf@x-\pgf@xb%
}%
\addtosavedmacro\lowerleftanchor%
\pgfextract@process\lowerrightanchor{%
\lowerleftanchor%
\pgf@y-\pgf@y%
}%
\addtosavedmacro\lowerrightanchor%
}%
\anchor{apex}{%
\trianglepoints%
\pgfpointadd{\centerpoint}{%
\pgfmathrotatepointaround{\apexanchor}{\pgfpointorigin}{\rotate}%
}%
}%
\anchor{left corner}{%
\trianglepoints%
\pgfpointadd{\centerpoint}{%
\pgfmathrotatepointaround{\lowerleftanchor}{\pgfpointorigin}{\rotate}%
}%
}%
\anchor{right corner}{%
\trianglepoints%
\pgfpointadd{\centerpoint}{%
\pgfmathrotatepointaround{\lowerrightanchor}{\pgfpointorigin}{\rotate}%
}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid west}{%
\trianglepoints%
\let\pgf@isoscelestriangle@referencepoint\midpoint%
\csname pgf@anchor@isosceles triangle@border\endcsname{\pgfqpoint{-1pt}{0pt}}%
}%
\anchor{mid east}{%
\trianglepoints%
\let\pgf@isoscelestriangle@referencepoint\midpoint%
\csname pgf@anchor@isosceles triangle@border\endcsname{\pgfqpoint{1pt}{0pt}}%
}%
\anchor{base}{\basepoint}%
\anchor{base west}{%
\trianglepoints%
\let\pgf@isoscelestriangle@referencepoint\basepoint%
\csname pgf@anchor@isosceles triangle@border\endcsname{\pgfqpoint{-1pt}{0pt}}%
}%
\anchor{base east}{%
\trianglepoints%
\let\pgf@isoscelestriangle@referencepoint\basepoint%
\csname pgf@anchor@isosceles triangle@border\endcsname{\pgfqpoint{1pt}{0pt}}%
}%
\anchor{north}{%
\trianglepoints%
\csname pgf@anchor@isosceles triangle@border\endcsname{\pgfqpoint{0pt}{1pt}}%
}%
\anchor{south}{%
\trianglepoints%
\csname pgf@anchor@isosceles triangle@border\endcsname{\pgfqpoint{0pt}{-1pt}}%
}%
\anchor{east}{%
\trianglepoints%
\csname pgf@anchor@isosceles triangle@border\endcsname{\pgfqpoint{1pt}{0pt}}%
}%
\anchor{west}{%
\trianglepoints%
\csname pgf@anchor@isosceles triangle@border\endcsname{\pgfqpoint{-1pt}{0pt}}%
}%
\anchor{north east}{%
\trianglepoints%
\csname pgf@anchor@isosceles triangle@border\endcsname{\pgfqpoint{1pt}{1pt}}%
}%
\anchor{south west}{%
\trianglepoints%
\csname pgf@anchor@isosceles triangle@border\endcsname{\pgfqpoint{-1pt}{-1pt}}%
}%
\anchor{south east}{%
\trianglepoints%
\csname pgf@anchor@isosceles triangle@border\endcsname{\pgfqpoint{1pt}{-1pt}}%
}%
\anchor{north west}{%
\trianglepoints%
\csname pgf@anchor@isosceles triangle@border\endcsname{\pgfqpoint{-1pt}{1pt}}%
}%
\anchor{left side}{%
\trianglepoints%
\pgfmathrotatepointaround{%
\pgfpointadd{\pgfpointlineattime{0.5}{\lowerleftanchor}{\apexanchor}}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\anchor{right side}{%
\trianglepoints%
\pgfmathrotatepointaround{%
\pgfpointadd{\pgfpointlineattime{0.5}{\lowerrightanchor}{\apexanchor}}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\anchor{lower side}{%
\trianglepoints%
\pgfmathrotatepointaround{%
\pgfpointadd{\pgfpointlineattime{0.5}{\lowerleftanchor}{\lowerrightanchor}}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\backgroundpath{%
\trianglepoints%
{%
\pgftransformshift{\centerpoint}%
\pgftransformrotate{\rotate}%
\pgfpathmoveto{\apex}%
\pgfpathlineto{\lowerleft}%
\pgfpathlineto{\lowerleft\pgf@y-\pgf@y}%
\pgfpathclose%
}%
}%
\anchorborder{%
\pgfutil@ifundefined{pgf@isoscelestriangle@referencepoint}{\let\referencepoint\centerpoint}%
{\let\referencepoint\pgf@isoscelestriangle@referencepoint}%
\pgfextract@process\externalpoint{%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\referencepoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\trianglepoints%
\pgfmathanglebetweenpoints{\referencepoint}{\externalpoint}%
\pgfmathsubtract@{\pgfmathresult}{\rotate}%
\pgfmathmod@{\pgfmathresult}{360}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\externalangle\pgfmathresult%
\pgfmathanglebetweenpoints{\referencepoint}{\pgfpointadd{\centerpoint}{\lowerrightanchor}}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}{\pgfpointadd{\centerpoint}{\lowerleftanchor}}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}{\pgfpointadd{\centerpoint}{\apexanchor}}%
\ifdim\externalangle pt>\pgfmathresult pt\relax%
\let\firstpoint\apexanchor%
\let\secondpoint\lowerleftanchor%
\else%
\let\firstpoint\apexanchor%
\let\secondpoint\lowerrightanchor%
\fi%
\else%
\let\firstpoint\lowerleftanchor%
\let\secondpoint\lowerrightanchor%
\fi%
\else%
\let\firstpoint\lowerrightanchor%
\let\secondpoint\apexanchor%
\fi%
\pgfpointintersectionoflines{\referencepoint}{\externalpoint}%
{\pgfmathrotatepointaround{\pgfpointadd{\centerpoint}{\firstpoint}}{\centerpoint}{\rotate}}%
{\pgfmathrotatepointaround{\pgfpointadd{\centerpoint}{\secondpoint}}{\centerpoint}{\rotate}}%
}%
}%
\pgfkeys{/pgf/.cd,
kite upper vertex angle/.initial=120,
kite lower vertex angle/.initial=60,
kite vertex angles/.code={%
\pgfutil@in@{and}{#1}%
\ifpgfutil@in@%
\def\pgf@marshal##1and##2\@@{%
\pgfkeys{/pgf/kite upper vertex angle={##1}}%
\pgfkeys{/pgf/kite lower vertex angle={##2}}%
}%
\expandafter\pgf@marshal#1\@@%
\else%
\pgfkeys{/pgf/kite upper vertex angle={#1}}%
\pgfkeys{/pgf/kite lower vertex angle={#1}}%
\fi%
}%
}%
\pgfdeclareshape{kite}{%
\savedmacro\installkiteparameters{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\fi%
\edef\outersep{\the\pgf@x}%
\pgfextract@process\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\pgfextract@process\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt\relax%
}%
\pgfextract@process\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\pgfmathdivide{\pgfkeysvalueof{/pgf/kite upper vertex angle}}{2}%
\let\halfuppervertexangle\pgfmathresult%
\pgfmathdivide{\pgfkeysvalueof{/pgf/kite lower vertex angle}}{2}%
\let\halflowervertexangle\pgfmathresult%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\ifpgfshapeborderusesincircle%
\pgfmathsetmacro\rotate{\pgfkeysvalueof{/pgf/shape border rotate}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\fi%
\pgf@x1.41421\pgf@x%
\pgfmathsin@{\halfuppervertexangle}%
\let\sinehalfuppervertexangle\pgfmathresult%
\pgfmathreciprocal@{\pgfmathresult}%
\let\cosechalfuppervertexangle\pgfmathresult%
\pgf@ya\pgfmathresult\pgf@x%
\pgfmathsin@{\halflowervertexangle}%
\let\sinehalflowervertexangle\pgfmathresult%
\pgfmathreciprocal@{\pgfmathresult}%
\pgf@yb\pgfmathresult\pgf@x%
\pgf@yc\pgf@x%
\pgfmathadd@{\halfuppervertexangle}{\halflowervertexangle}%
\pgfmathcosec@{\pgfmathresult}%
\pgf@yc\pgfmathresult\pgf@yc%
\pgfmathadd@{\sinehalfuppervertexangle}{\sinehalflowervertexangle}%
\pgf@yc\pgfmathresult\pgf@yc%
\pgfmathcos@{\halfuppervertexangle}%
\pgf@yc\pgfmathresult\pgf@yc%
\pgf@yc-\cosechalfuppervertexangle\pgf@yc%
\advance\pgf@yc\cosechalfuppervertexangle\pgf@x%
\edef\deltay{\the\pgf@yc}%
\advance\pgf@ya-\pgf@yc%
\advance\pgf@yb\pgf@yc%
\pgfmathtan@{\halfuppervertexangle}%
\pgf@xa\pgfmathresult\pgf@ya%
\else%
\multiply\pgf@x2\relax%
\multiply\pgf@y2\relax%
\pgfmathmod{\pgfkeysvalueof{/pgf/shape border rotate}}{360}%
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter\c@pgf@counta\pgfmathresult\relax\pgfmath@%
\advance\c@pgf@counta45\relax%
\divide\c@pgf@counta90\relax%
\multiply\c@pgf@counta90\relax%
\ifnum\c@pgf@counta<0\relax%
\advance\c@pgf@counta360\relax%
\fi%
\edef\rotate{\the\c@pgf@counta}%
\ifnum\c@pgf@counta=90\relax%
\pgf@xc\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xc%
\else%
\ifnum\c@pgf@counta=270\relax%
\pgf@xc\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xc%
\fi%
\fi%
\pgfmathadd@{\halfuppervertexangle}{\halflowervertexangle}%
\pgfmathsin@{\pgfmathresult}%
\pgfmathreciprocal@{\pgfmathresult}%
\pgf@ya\pgfmathresult\pgf@y%
\pgfmathcos@{\halfuppervertexangle}%
\pgf@ya\pgfmathresult\pgf@ya%
\pgfmathsin@{\halflowervertexangle}%
\pgf@ya\pgfmathresult\pgf@ya%
\pgf@yb\pgf@y%
\advance\pgf@yb-\pgf@ya%
\pgf@yc.5\pgf@y%
\advance\pgf@yc-\pgf@ya%
\edef\deltay{\the\pgf@yc}%
\pgfmathtan@{\halfuppervertexangle}%
\pgf@xa.5\pgf@x%
\advance\pgf@xa\pgfmathresult\pgf@ya%
\pgf@xb.5\pgf@x%
\pgfmathreciprocal@{\pgfmathresult}%
\advance\pgf@ya\pgfmathresult\pgf@xb%
\pgfmathtan@{\halflowervertexangle}%
\pgfmathreciprocal@{\pgfmathresult}%
\advance\pgf@yb\pgfmathresult\pgf@xb%
\fi%
\pgfmathsetlength\pgf@yc{\pgfkeysvalueof{/pgf/minimum height}}%
\pgf@y\pgf@ya%
\advance\pgf@y\pgf@yb%
\ifdim\pgf@y<\pgf@yc%
\pgfmathreciprocal@{\pgfmath@tonumber{\pgf@y}}%
\pgf@yc\pgfmathresult\pgf@yc%
\pgf@xa\pgfmath@tonumber{\pgf@yc}\pgf@xa%
\pgf@ya\pgfmath@tonumber{\pgf@yc}\pgf@ya%
\pgf@yb\pgfmath@tonumber{\pgf@yc}\pgf@yb%
\fi%
\pgf@x2.0\pgf@xa%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@x<\pgf@xc%
\pgfmathreciprocal@{\pgfmath@tonumber{\pgf@x}}%
\pgf@xc\pgfmathresult\pgf@xc%
\pgf@xa\pgfmath@tonumber{\pgf@xc}\pgf@xa%
\pgf@ya\pgfmath@tonumber{\pgf@xc}\pgf@ya%
\pgf@yb\pgfmath@tonumber{\pgf@xc}\pgf@yb%
\fi%
\edef\kitehalfwidth{\the\pgf@xa}%
\edef\kiteheight{\the\pgf@ya}%
\edef\kitedepth{\the\pgf@yb}%
\pgfextract@process\toppoint{%
\centerpoint%
\advance\pgf@y\deltay\relax%
\advance\pgf@y\kiteheight%
}%
\pgfextract@process\bottompoint{%
\centerpoint%
\advance\pgf@y\deltay\relax%
\advance\pgf@y-\kitedepth%
}%
\pgfextract@process\leftpoint{%
\centerpoint%
\advance\pgf@y\deltay\relax%
\advance\pgf@x-\kitehalfwidth%
}%
\pgfextract@process\rightpoint{%
\centerpoint%
\advance\pgf@y\deltay\relax%
\advance\pgf@x\kitehalfwidth%
}%
\pgfmathsin@{\halfuppervertexangle}%
\pgfmathreciprocal@{\pgfmathresult}%
\pgf@y\outersep\relax%
\pgf@y\pgfmathresult\pgf@y%
\edef\topmiter{\the\pgf@y}%
\pgfmathsin@{\halflowervertexangle}%
\pgfmathreciprocal@{\pgfmathresult}%
\pgf@y\outersep\relax%
\pgf@y\pgfmathresult\pgf@y%
\edef\bottommiter{\the\pgf@y}%
\pgfmathsubtract@{180}{\halflowervertexangle}%
\pgfmathsubtract@{\pgfmathresult}{\halfuppervertexangle}%
\pgfmathdivide@{\pgfmathresult}{2}%
\pgfmathsin@{\pgfmathresult}%
\pgfmathreciprocal@{\pgfmathresult}%
\pgf@xa\outersep\relax%
\pgf@xa\pgfmathresult\pgf@xa%
\pgfmathsubtract@{\halfuppervertexangle}{\halflowervertexangle}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\angle\pgfmathresult%
\pgfextract@process\rightmiter{%
\pgfqpointpolar{\angle}{\the\pgf@xa}%
}%
\pgfmathsubtract@{180}{\angle}%
\let\angle\pgfmathresult%
\pgfextract@process\leftmiter{%
\pgfqpointpolar{\angle}{\the\pgf@xa}%
}%
\pgfextract@process\topborderpoint{%
\toppoint%
\advance\pgf@y\topmiter\relax%
}%
\pgfextract@process\bottomborderpoint{%
\bottompoint%
\advance\pgf@y-\bottommiter\relax%
}%
\pgfextract@process\leftborderpoint{%
\leftpoint%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\leftmiter%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfextract@process\rightborderpoint{%
\rightpoint%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\rightmiter%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\topborderpoint}%
\let\angletotoppoint\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\leftborderpoint}%
\let\angletoleftpoint\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\bottomborderpoint}%
\let\angletobottompoint\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\rightborderpoint}%
\let\angletorightpoint\pgfmathresult%
\pgfextract@process\rotatedbasepoint{%
\pgfmathrotatepointaround{\basepoint}{\centerpoint}{-\rotate}%
}%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\topborderpoint}%
\let\baseangletotoppoint\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\leftborderpoint}%
\let\baseangletoleftpoint\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\bottomborderpoint}%
\let\baseangletobottompoint\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\rightborderpoint}%
\let\baseangletorightpoint\pgfmathresult%
\pgfextract@process\rotatedmidpoint{%
\pgfmathrotatepointaround{\midpoint}{\centerpoint}{-\rotate}%
}%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\topborderpoint}%
\let\midangletotoppoint\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\leftborderpoint}%
\let\midangletoleftpoint\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\bottomborderpoint}%
\let\midangletobottompoint\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\rightborderpoint}%
\let\midangletorightpoint\pgfmathresult%
\pgfextractx\pgf@xa{\pgfpointdiff{\leftborderpoint}{\rightborderpoint}}%
\ifdim\pgf@xa<0pt\relax%
\pgf@xa-\pgf@xa%
\fi%
\pgfextracty\pgf@ya{\pgfpointdiff{\topborderpoint}{\bottomborderpoint}}%
\ifdim\pgf@ya<0pt\relax%
\pgf@ya-\pgf@ya%
\fi%
\ifdim\pgf@ya>\pgf@xa%
\edef\externalradius{\the\pgf@ya}%
\else%
\edef\externalradius{\the\pgf@xa}%
\fi%
\pgfextract@process\toppoint{%
\pgfmathrotatepointaround{\toppoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\bottompoint{%
\pgfmathrotatepointaround{\bottompoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\leftpoint{%
\pgfmathrotatepointaround{\leftpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\rightpoint{%
\pgfmathrotatepointaround{\rightpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\topborderpoint{%
\pgfmathrotatepointaround{\topborderpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\bottomborderpoint{%
\pgfmathrotatepointaround{\bottomborderpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\leftborderpoint{%
\pgfmathrotatepointaround{\leftborderpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\rightborderpoint{%
\pgfmathrotatepointaround{\rightborderpoint}{\centerpoint}{\rotate}%
}%
\addtosavedmacro{\rotate}%
\addtosavedmacro{\externalradius}%
\addtosavedmacro\toppoint%
\addtosavedmacro\bottompoint%
\addtosavedmacro\leftpoint%
\addtosavedmacro\rightpoint%
\addtosavedmacro\topborderpoint%
\addtosavedmacro\bottomborderpoint%
\addtosavedmacro\leftborderpoint%
\addtosavedmacro\rightborderpoint%
\addtosavedmacro\angletotoppoint%
\addtosavedmacro\angletobottompoint%
\addtosavedmacro\angletoleftpoint%
\addtosavedmacro\angletorightpoint%
\addtosavedmacro\baseangletotoppoint%
\addtosavedmacro\baseangletobottompoint%
\addtosavedmacro\baseangletoleftpoint%
\addtosavedmacro\baseangletorightpoint%
\addtosavedmacro\midangletotoppoint%
\addtosavedmacro\midangletobottompoint%
\addtosavedmacro\midangletoleftpoint%
\addtosavedmacro\midangletorightpoint%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt\relax%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\anchor{center}{\centerpoint}%
\anchor{base}{\basepoint}%
\anchor{base west}{%
\installkiteparameters%
\let\pgf@kiteanchorborderreferencepoint\basepoint%
\csname pgf@anchor@kite@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{base east}{%
\installkiteparameters%
\let\pgf@kiteanchorborderreferencepoint\basepoint%
\csname pgf@anchor@kite@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{mid}{\midpoint}%
\anchor{mid west}{%
\installkiteparameters%
\let\pgf@kiteanchorborderreferencepoint\midpoint%
\csname pgf@anchor@kite@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{mid east}{%
\installkiteparameters%
\let\pgf@kiteanchorborderreferencepoint\midpoint%
\csname pgf@anchor@kite@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{north}{%
\installkiteparameters%
\csname pgf@anchor@kite@border\endcsname{\pgfqpoint{0pt}{\externalradius}}%
}%
\anchor{south}{%
\installkiteparameters%
\csname pgf@anchor@kite@border\endcsname{\pgfqpoint{0pt}{-\externalradius}}%
}%
\anchor{east}{%
\installkiteparameters%
\csname pgf@anchor@kite@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{west}{%
\installkiteparameters%
\csname pgf@anchor@kite@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{north east}{%
\installkiteparameters%
\csname pgf@anchor@kite@border\endcsname{\pgfqpoint{\externalradius}{\externalradius}}%
}%
\anchor{south west}{%
\installkiteparameters%
\csname pgf@anchor@kite@border\endcsname{\pgfqpoint{-\externalradius}{-\externalradius}}%
}%
\anchor{south east}{%
\installkiteparameters%
\csname pgf@anchor@kite@border\endcsname{\pgfqpoint{\externalradius}{-\externalradius}}%
}%
\anchor{north west}{%
\installkiteparameters%
\csname pgf@anchor@kite@border\endcsname{\pgfqpoint{-\externalradius}{\externalradius}}%
}%
\anchor{upper vertex}{%
\installkiteparameters%
\topborderpoint}%
\anchor{lower vertex}{%
\installkiteparameters%
\bottomborderpoint}%
\anchor{left vertex}{%
\installkiteparameters%
\leftborderpoint}%
\anchor{right vertex}{%
\installkiteparameters%
\rightborderpoint}%
\anchor{upper left side}{%
\installkiteparameters%
\pgfpointlineattime{0.5}{\topborderpoint}{\leftborderpoint}}%
\anchor{lower left side}{%
\installkiteparameters%
\pgfpointlineattime{0.5}{\bottomborderpoint}{\leftborderpoint}}%
\anchor{upper right side}{%
\installkiteparameters%
\pgfpointlineattime{0.5}{\topborderpoint}{\rightborderpoint}}%
\anchor{lower right side}{%
\installkiteparameters%
\pgfpointlineattime{0.5}{\bottomborderpoint}{\rightborderpoint}}%
\backgroundpath{%
\installkiteparameters%
\pgfpathmoveto{\toppoint}%
\pgfpathlineto{\leftpoint}%
\pgfpathlineto{\bottompoint}%
\pgfpathlineto{\rightpoint}%
\pgfpathclose%
}%
\anchorborder{%
\edef\externalx{\the\pgf@x}%
\edef\externaly{\the\pgf@y}%
\pgfutil@ifundefined{pgf@kiteanchorborderreferencepoint}%
{\let\referencepoint\centerpoint}%
{\let\referencepoint\pgf@kiteanchorborderreferencepoint}%
\referencepoint%
\pgf@xa\externalx\relax%
\pgf@ya\externaly\relax%
\advance\pgf@xa\pgf@x%
\advance\pgf@ya\pgf@y%
\edef\externalx{\the\pgf@xa}%
\edef\externaly{\the\pgf@ya}%
\installkiteparameters%
\pgfmathanglebetweenpoints{\referencepoint}{\pgfqpoint{\externalx}{\externaly}}%
\pgfmathsubtract@{\pgfmathresult}{\rotate}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\externalangle\pgfmathresult%
\ifx\referencepoint\basepoint%
\let\angletotoppoint\baseangletotoppoint%
\let\angletobottompoint\baseangletobottompoint%
\let\angletoleftpoint\baseangletoleftpoint%
\let\angletorightpoint\baseangletorightpoint%
\else%
\ifx\referencepoint\midpoint%
\let\angletotoppoint\midangletotoppoint%
\let\angletobottompoint\midangletobottompoint%
\let\angletoleftpoint\midangletoleftpoint%
\let\angletorightpoint\midangletorightpoint%
\fi\fi%
\ifdim\angletorightpoint pt<\angletotoppoint pt\relax%
\ifdim\externalangle pt<\angletorightpoint pt\relax%
\let\firstpoint\rightborderpoint%
\let\secondpoint\bottomborderpoint%
\else%
\ifdim\externalangle pt<\angletotoppoint pt\relax%
\let\firstpoint\rightborderpoint%
\let\secondpoint\topborderpoint%
\else%
\ifdim\externalangle pt<\angletoleftpoint pt\relax%
\let\firstpoint\topborderpoint%
\let\secondpoint\leftborderpoint%
\else%
\ifdim\externalangle pt<\angletobottompoint pt\relax%
\let\firstpoint\leftborderpoint%
\let\secondpoint\bottomborderpoint%
\else%
\let\firstpoint\rightborderpoint%
\let\secondpoint\bottomborderpoint%
\fi%
\fi%
\fi%
\fi%
\else%
\ifdim\externalangle pt<\angletotoppoint pt\relax%
\let\firstpoint\rightborderpoint%
\let\secondpoint\topborderpoint%
\else%
\ifdim\externalangle pt<\angletoleftpoint pt\relax%
\let\firstpoint\leftborderpoint%
\let\secondpoint\topborderpoint%
\else%
\ifdim\externalangle pt<\angletobottompoint pt\relax%
\let\firstpoint\bottomborderpoint%
\let\secondpoint\leftborderpoint%
\else%
\ifdim\externalangle pt<\angletorightpoint pt\relax%
\let\firstpoint\rightborderpoint%
\let\secondpoint\bottomborderpoint%
\else%
\let\firstpoint\rightborderpoint%
\let\secondpoint\topborderpoint%
\fi%
\fi%
\fi%
\fi%
\fi%
\pgfpointintersectionoflines{\referencepoint}{\pgfqpoint{\externalx}{\externaly}}%
{\firstpoint}{\secondpoint}%
}%
}%
\pgfkeys{/pgf/.cd,
dart tip angle/.initial=45,
dart tail angle/.initial=135,
}%
\pgfdeclareshape{dart}{%
\savedmacro\installdartparameters{%
\pgfmathdivide{\pgfkeysvalueof{/pgf/dart tip angle}}{2}%
\let\halftipangle\pgfmathresult%
\pgfmathdivide{\pgfkeysvalueof{/pgf/dart tail angle}}{2}%
\let\halftailangle\pgfmathresult%
\pgfmathcot@{\halftipangle}%
\let\cothalftipangle\pgfmathresult%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\fi%
\edef\outersep{\the\pgf@x}%
\pgfextract@process\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\pgfextract@process\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt\relax%
}%
\pgfextract@process\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\ifpgfshapeborderusesincircle%
\pgfmathsetmacro\rotate{\pgfkeysvalueof{/pgf/shape border rotate}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\fi%
\pgf@x1.41421\pgf@x%
\pgf@xa\cothalftipangle\pgf@x%
\advance\pgf@xa\pgf@x%
\else%
\pgfmathmod{\pgfkeysvalueof{/pgf/shape border rotate}}{360}%
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter\c@pgf@counta\pgfmathresult\relax\pgfmath@%
\advance\c@pgf@counta45\relax%
\divide\c@pgf@counta90\relax%
\multiply\c@pgf@counta90\relax%
\ifnum\c@pgf@counta<0\relax%
\advance\c@pgf@counta360\relax%
\fi%
\edef\rotate{\the\c@pgf@counta}%
\ifnum\c@pgf@counta=90\relax%
\pgf@xc\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xc%
\else%
\ifnum\c@pgf@counta=270\relax%
\pgf@xc\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xc%
\fi%
\fi%
\pgf@xa\cothalftipangle\pgf@y%
\advance\pgf@xa2.0\pgf@x%
\fi%
\pgfmathsubtract@{\halftailangle}{\halftipangle}%
\pgfmathcosec@{\pgfmathresult}%
\pgf@ya\pgfmathresult\pgf@xa%
\pgfmathsin@{\halftipangle}%
\pgf@ya\pgfmathresult\pgf@ya%
\pgfmathcos@{\halftipangle}%
\pgf@ya\pgfmathresult\pgf@ya%
\pgf@xb\cothalftipangle\pgf@ya%
\pgf@xc-\pgf@xa%
\advance\pgf@xc\pgf@xb%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@xb<\pgf@y%
\pgfmathreciprocal@{\pgfmath@tonumber{\pgf@xb}}%
\pgf@y\pgfmathresult\pgf@y%
\pgf@xa\pgfmath@tonumber{\pgf@y}\pgf@xa%
\pgf@xc\pgfmath@tonumber{\pgf@y}\pgf@xc%
\pgf@ya\pgfmath@tonumber{\pgf@y}\pgf@ya%
\pgf@x\pgfmath@tonumber{\pgf@y}\pgf@x%
\fi%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@y.5\pgf@y%
\ifdim\pgf@ya<\pgf@y%
\pgfmathreciprocal@{\pgfmath@tonumber{\pgf@ya}}%
\pgf@ya\pgf@y%
\pgf@y\pgfmathresult\pgf@y%
\pgf@xa\pgfmath@tonumber{\pgf@y}\pgf@xa%
\pgf@xc\pgfmath@tonumber{\pgf@y}\pgf@xc%
\pgf@x\pgfmath@tonumber{\pgf@y}\pgf@x%
\fi%
\edef\dartlength{\the\pgf@xa}%
\edef\deltax{\the\pgf@x}%
\edef\taillength{\the\pgf@xc}%
\edef\halftailseparation{\the\pgf@ya}
\pgfextract@process\tippoint{%
\centerpoint%
\advance\pgf@x\dartlength\relax%
\advance\pgf@x-\deltax\relax%
}%
\pgfextract@process\tailcenterpoint{%
\centerpoint%
\advance\pgf@x-\deltax\relax%
}%
\pgfextract@process\lefttailpoint{%
\centerpoint%
\advance\pgf@x-\deltax\relax%
\advance\pgf@x-\taillength\relax%
\advance\pgf@y\halftailseparation\relax%
}%
\pgfextract@process\righttailpoint{%
\centerpoint%
\advance\pgf@x-\deltax\relax%
\advance\pgf@x-\taillength\relax%
\advance\pgf@y-\halftailseparation\relax%
}%
\pgfextract@process\tipmiter{%
\pgfmathcosec@{\halftipangle}%
\pgf@x\outersep\relax%
\pgf@x\pgfmathresult\pgf@x%
\pgf@y0pt\relax%
}%
\pgfextract@process\tailcentermiter{%
\pgfmathcosec@{\halftailangle}%
\pgf@x-\outersep\relax%
\pgf@x\pgfmathresult\pgf@x%
\pgf@y0pt\relax%
}%
\pgfmathsubtract@{\halftailangle}{\halftipangle}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\angle\pgfmathresult%
\pgfmathcosec@{\pgfmathresult}%
\pgf@x\outersep\relax%
\pgf@x\pgfmathresult\pgf@x%
\pgfmathadd@{\angle}{90}%
\pgfmathsubtract{\pgfmathresult}{\halftailangle}%
\pgfmathsincos@{\pgfmathresult}%
\pgf@ya\pgfmathresultx\pgf@x%
\pgf@xa\pgfmathresulty\pgf@x%
\pgfextract@process\lefttailmiter{%
\pgf@x-\pgf@xa%
\pgf@y\pgf@ya%
}%
\pgfextract@process\righttailmiter{%
\pgf@x-\pgf@xa%
\pgf@y-\pgf@ya%
}%
\pgfextract@process\tipborderpoint{%
\pgfpointadd{\tippoint}{\tipmiter}
}%
\pgfextract@process\tailcenterborderpoint{%
\pgfpointadd{\tailcenterpoint}{\tailcentermiter}%
}%
\pgfextract@process\lefttailborderpoint{%
\pgfpointadd{\lefttailpoint}{\lefttailmiter}%
}%
\pgfextract@process\righttailborderpoint{%
\pgfpointadd{\righttailpoint}{\righttailmiter}%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\tipborderpoint}%
\let\angletotip\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\tailcenterborderpoint}%
\let\angletotailcenter\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\lefttailborderpoint}%
\let\angletolefttail\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\righttailborderpoint}%
\let\angletorighttail\pgfmathresult%
\pgfextract@process\rotatedbasepoint{%
\pgfmathrotatepointaround{\basepoint}{\centerpoint}{-\rotate}%
}%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\tipborderpoint}%
\let\baseangletotip\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\tailcenterborderpoint}%
\let\baseangletotailcenter\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\lefttailborderpoint}%
\let\baseangletolefttail\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedbasepoint}{\righttailborderpoint}%
\let\baseangletorighttail\pgfmathresult%
\pgfextract@process\rotatedmidpoint{%
\pgfmathrotatepointaround{\midpoint}{\centerpoint}{-\rotate}%
}%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\tipborderpoint}%
\let\midangletotip\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\tailcenterborderpoint}%
\let\midangletotailcenter\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\lefttailborderpoint}%
\let\midangletolefttail\pgfmathresult%
\pgfmathanglebetweenpoints{\rotatedmidpoint}{\righttailborderpoint}%
\let\midangletorighttail\pgfmathresult%
\pgfextract@process\tippoint{%
\pgfmathrotatepointaround{\tippoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\tailcenterpoint{%
\pgfmathrotatepointaround{\tailcenterpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\lefttailpoint{%
\pgfmathrotatepointaround{\lefttailpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\righttailpoint{%
\pgfmathrotatepointaround{\righttailpoint}{\centerpoint}{\rotate}%
}%
\pgfextractx\pgf@xa{\pgfpointdiff{\lefttailborderpoint}{\tipborderpoint}}%
\pgfextracty\pgf@ya{\pgfpointdiff{\lefttailborderpoint}{\righttailborderpoint}}%
\ifdim\pgf@xa<0pt\relax%
\pgf@xa-\pgf@xa%
\fi%
\ifdim\pgf@ya<0pt\relax%
\pgf@ya-\pgf@ya%
\fi%
\ifdim\pgf@xa>\pgf@ya%
\edef\externalradius{\the\pgf@xa}%
\else%
\edef\externalradius{\the\pgf@ya}%
\fi%
\pgfextract@process\tipborderpoint{%
\pgfmathrotatepointaround{\tipborderpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\tailcenterborderpoint{%
\pgfmathrotatepointaround{\tailcenterborderpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\lefttailborderpoint{%
\pgfmathrotatepointaround{\lefttailborderpoint}{\centerpoint}{\rotate}%
}%
\pgfextract@process\righttailborderpoint{%
\pgfmathrotatepointaround{\righttailborderpoint}{\centerpoint}{\rotate}%
}%
\addtosavedmacro{\rotate}%
\addtosavedmacro{\externalradius}%
\addtosavedmacro{\tippoint}%
\addtosavedmacro{\tailcenterpoint}%
\addtosavedmacro{\lefttailpoint}%
\addtosavedmacro{\righttailpoint}%
\addtosavedmacro{\tipborderpoint}%
\addtosavedmacro{\tailcenterborderpoint}%
\addtosavedmacro{\lefttailborderpoint}%
\addtosavedmacro{\righttailborderpoint}%
\addtosavedmacro{\angletotip}%
\addtosavedmacro{\angletotailcenter}%
\addtosavedmacro{\angletolefttail}%
\addtosavedmacro{\angletorighttail}%
\addtosavedmacro{\baseangletotip}%
\addtosavedmacro{\baseangletotailcenter}%
\addtosavedmacro{\baseangletolefttail}%
\addtosavedmacro{\baseangletorighttail}%
\addtosavedmacro{\midangletotip}%
\addtosavedmacro{\midangletotailcenter}%
\addtosavedmacro{\midangletolefttail}%
\addtosavedmacro{\midangletorighttail}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt\relax%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\anchor{center}{\centerpoint}%
\anchor{base}{\basepoint}%
\anchor{base west}{%
\installdartparameters%
\let\pgf@dartanchorborderreferencepoint\basepoint%
\csname pgf@anchor@dart@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{base east}{%
\installdartparameters%
\let\pgf@dartanchorborderreferencepoint\basepoint%
\csname pgf@anchor@dart@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{mid}{\midpoint}%
\anchor{mid west}{%
\installdartparameters%
\let\pgf@dartanchorborderreferencepoint\midpoint%
\csname pgf@anchor@dart@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{mid east}{%
\installdartparameters%
\let\pgf@dartanchorborderreferencepoint\midpoint%
\csname pgf@anchor@dart@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{north}{%
\installdartparameters%
\csname pgf@anchor@dart@border\endcsname{\pgfqpoint{0pt}{\externalradius}}%
}%
\anchor{south}{%
\installdartparameters%
\csname pgf@anchor@dart@border\endcsname{\pgfqpoint{0pt}{-\externalradius}}%
}%
\anchor{east}{%
\installdartparameters%
\csname pgf@anchor@dart@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{west}{%
\installdartparameters%
\csname pgf@anchor@dart@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{north east}{%
\installdartparameters%
\csname pgf@anchor@dart@border\endcsname{\pgfqpoint{\externalradius}{\externalradius}}%
}%
\anchor{south west}{%
\installdartparameters%
\csname pgf@anchor@dart@border\endcsname{\pgfqpoint{-\externalradius}{-\externalradius}}%
}%
\anchor{south east}{%
\installdartparameters%
\csname pgf@anchor@dart@border\endcsname{\pgfqpoint{\externalradius}{-\externalradius}}%
}%
\anchor{north west}{%
\installdartparameters%
\csname pgf@anchor@dart@border\endcsname{\pgfqpoint{-\externalradius}{\externalradius}}%
}%
\anchor{tip}{%
\installdartparameters%
\tipborderpoint}%
\anchor{left tail}{%
\installdartparameters%
\lefttailborderpoint}%
\anchor{right tail}{%
\installdartparameters%
\righttailborderpoint}%
\anchor{tail center}{%
\installdartparameters%
\tailcenterborderpoint}%
\anchor{left side}{%
\installdartparameters%
\pgfpointlineattime{0.5}{\tipborderpoint}{\lefttailborderpoint}}%
\anchor{right side}{%
\installdartparameters%
\pgfpointlineattime{0.5}{\tipborderpoint}{\righttailborderpoint}}%
\backgroundpath{%
\installdartparameters%
\pgfpathmoveto{\tippoint}%
\pgfpathlineto{\lefttailpoint}%
\pgfpathlineto{\tailcenterpoint}%
\pgfpathlineto{\righttailpoint}%
\pgfpathclose%
}%
\anchorborder{%
\edef\externalx{\the\pgf@x}%
\edef\externaly{\the\pgf@y}%
\pgfutil@ifundefined{pgf@dartanchorborderreferencepoint}%
{\let\referencepoint\centerpoint}%
{\let\referencepoint\pgf@dartanchorborderreferencepoint}%
\referencepoint%
\pgf@xa\externalx\relax%
\pgf@ya\externaly\relax%
\advance\pgf@xa\pgf@x%
\advance\pgf@ya\pgf@y%
\edef\externalx{\the\pgf@xa}%
\edef\externaly{\the\pgf@ya}%
\installdartparameters%
\pgfmathanglebetweenpoints{\referencepoint}{\pgfqpoint{\externalx}{\externaly}}%
\pgfmathsubtract@{\pgfmathresult}{\rotate}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\externalangle\pgfmathresult%
\ifx\referencepoint\basepoint%
\let\angletotip\baseangletotip%
\let\angletotailcenter\baseangletotailcenter%
\let\angletolefttail\baseangletolefttail%
\let\angletorighttail\baseangletorighttail%
\else%
\ifx\referencepoint\midpoint%
\let\angletotip\midangletotip%
\let\angletotailcenter\midangletotailcenter%
\let\angletolefttail\midangletolefttail%
\let\angletorighttail\midangletorighttail%
\fi\fi%
\ifdim\externalangle pt<\angletotip pt\relax%
\let\firstpoint\tipborderpoint%
\let\secondpoint\righttailborderpoint%
\else%
\ifdim\externalangle pt<\angletolefttail pt\relax%
\let\firstpoint\lefttailborderpoint%
\let\secondpoint\tipborderpoint%
\else%
\ifdim\externalangle pt<\angletotailcenter pt\relax%
\let\firstpoint\lefttailborderpoint%
\let\secondpoint\tailcenterborderpoint%
\else%
\ifdim\externalangle pt<\angletorighttail pt\relax%
\let\firstpoint\righttailborderpoint%
\let\secondpoint\tailcenterborderpoint%
\else%
\let\firstpoint\tipborderpoint%
\let\secondpoint\righttailborderpoint%
\fi%
\fi%
\fi%
\fi%
\pgfpointintersectionoflines{\referencepoint}{\pgfqpoint{\externalx}{\externaly}}%
{\firstpoint}{\secondpoint}%
}%
}%
\pgfkeys{/pgf/circular sector angle/.initial=60}%
\pgfdeclareshape{circular sector}{%
\savedmacro\installcircularsectorparameters{%
\pgfextract@process\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\fi%
\edef\outersep{\the\pgf@x}%
\pgfmathmod{\pgfkeysvalueof{/pgf/circular sector angle}}{360}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\angle\pgfmathresult%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\halfangle\pgfmathresult%
\pgfmathsin@{\halfangle}%
\let\sinehalfangle\pgfmathresult%
\pgfmathreciprocal@{\pgfmathresult}%
\let\cosechalfangle\pgfmathresult%
\pgfmathabs@{\halfangle}%
\pgfmathcos@{\pgfmathresult}%
\let\coshalfangle\pgfmathresult%
\pgf@x\pgfmathresult pt\relax%
\pgf@x\cosechalfangle\pgf@x%
\edef\cothalfangle{\pgfmath@tonumber{\pgf@x}}%
\pgf@x\outersep\relax%
\pgf@x\cosechalfangle\pgf@x%
\edef\centermiter{\the\pgf@x}%
\pgfmathsubtract@{180}{\halfangle}%
\let\startangle\pgfmathresult%
\pgfmathadd@{180}{\halfangle}%
\let\endangle\pgfmathresult%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\ifpgfshapeborderusesincircle%
\pgfmathsetmacro\rotate{\pgfkeysvalueof{/pgf/shape border rotate}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\fi%
\pgf@x1.41421\pgf@x%
\pgf@xa\cosechalfangle\pgf@x%
\pgf@xb\pgf@xa%
\advance\pgf@xa\pgf@x%
\else%
\pgfmathmod{\pgfkeysvalueof{/pgf/shape border rotate}}{360}%
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter\c@pgf@counta\pgfmathresult\relax\pgfmath@%
\advance\c@pgf@counta45\relax%
\divide\c@pgf@counta90\relax%
\multiply\c@pgf@counta90\relax%
\ifnum\c@pgf@counta<0\relax%
\advance\c@pgf@counta360\relax%
\fi%
\edef\rotate{\the\c@pgf@counta}%
\ifnum\c@pgf@counta=90\relax%
\pgf@xc\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xc%
\else%
\ifnum\c@pgf@counta=270\relax%
\pgf@xc\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xc%
\fi%
\fi%
\pgf@xa\cosechalfangle\pgf@y%
\pgf@xa\coshalfangle\pgf@xa%
\advance\pgf@xa\pgf@x%
\pgf@xb\pgf@xa%
\advance\pgf@xa\pgf@x%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@xa}}{\pgfmath@tonumber{\pgf@y}}%
\pgf@xa\pgfmathresult pt\relax%
\fi%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/minimum width}}%
\pgf@x.5\pgf@x%
\pgfmathsec@{\halfangle}%
\pgf@xc\pgfmathresult\pgf@xb%
\ifdim\pgf@xc<0pt\relax%
\pgf@xc-\pgf@xc%
\fi%
\ifdim\pgf@xc<\pgf@x%
\pgfmathreciprocal{\pgfmath@tonumber{\pgf@xc}}%
\pgf@xc\pgfmathresult\pgf@x%
\pgf@xa\pgfmath@tonumber{\pgf@xc}\pgf@xa%
\pgf@xb\pgfmath@tonumber{\pgf@xc}\pgf@xb%
\fi%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@xa<\pgf@y%
\pgfmathreciprocal{\pgfmath@tonumber{\pgf@xa}}%
\pgf@xc\pgfmathresult\pgf@y%
\pgf@xa\pgf@y%
\pgf@xb\pgfmath@tonumber{\pgf@xc}\pgf@xb%
\fi%
\edef\centeroffset{\the\pgf@xb}%
\edef\radius{\the\pgf@xa}%
\advance\pgf@xa\outersep\relax%
\edef\borderradius{\the\pgf@xa}%
\pgf@x\outersep\relax%
\pgf@x\cosechalfangle\pgf@x%
\pgf@x\coshalfangle\pgf@x%
\advance\pgf@xa\pgf@x%
\edef\cornerradius{\the\pgf@xa}%
\pgfextract@process\sectorcenter{%
\centerpoint%
\advance\pgf@x\centeroffset%
}%
\pgfextract@process\arcstart{%
\pgfqpointpolar{\startangle}{\radius}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\sectorcenter%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfextract@process\sectorcenterborder{%
\sectorcenter%
\advance\pgf@x\centermiter\relax%
}%
\pgfextract@process\arcstartborder{%
\pgfqpointpolar{\startangle}{\borderradius}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\sectorcenter%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfextract@process\arcendborder{%
\pgfqpointpolar{\endangle}{\borderradius}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\sectorcenter%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfextract@process\arcstartcorner{%
\pgfqpointpolar{\startangle}{\cornerradius}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\sectorcenterborder%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfextract@process\arcendcorner{%
\pgfqpointpolar{\endangle}{\cornerradius}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\sectorcenterborder%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\sectorcenterborder}%
\let\angletosectorcenterborder\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\arcstartborder}%
\let\angletoarcstartborder\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\arcendborder}%
\let\angletoarcendborder\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\arcstartcorner}%
\let\angletoarcstartcorner\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\arcendcorner}%
\let\angletoarcendcorner\pgfmathresult%
\pgfextract@process\sectorcenter{%
\pgfmathrotatepointaround{\sectorcenter}{\centerpoint}{\rotate}%
}%
\pgfextract@process\arcstart{%
\pgfmathrotatepointaround{\arcstart}{\centerpoint}{\rotate}%
}%
\pgfextract@process\sectorcenterborder{%
\pgfmathrotatepointaround{\sectorcenterborder}{\centerpoint}{\rotate}%
}%
\pgfextract@process\arcstartborder{%
\pgfmathrotatepointaround{\arcstartborder}{\centerpoint}{\rotate}%
}%
\pgfextract@process\arcendborder{%
\pgfmathrotatepointaround{\arcendborder}{\centerpoint}{\rotate}%
}%
\pgfextract@process\arcstartcorner{%
\pgfmathrotatepointaround{\arcstartcorner}{\centerpoint}{\rotate}%
}%
\pgfextract@process\arcendcorner{%
\pgfmathrotatepointaround{\arcendcorner}{\centerpoint}{\rotate}%
}%
\pgfmathadd@{\startangle}{\rotate}%
\let\startangle\pgfmathresult%
\pgfmathadd@{\endangle}{\rotate}%
\let\endangle\pgfmathresult%
\addtosavedmacro{\rotate}%
\addtosavedmacro{\centeroffset}%
\addtosavedmacro{\radius}%
\addtosavedmacro{\borderradius}%
\addtosavedmacro{\cornerradius}%
\addtosavedmacro{\endangle}%
\addtosavedmacro{\startangle}%
\addtosavedmacro{\sectorcenter}%
\addtosavedmacro{\arcstart}%
\addtosavedmacro{\sectorcenterborder}%
\addtosavedmacro{\arcstartborder}%
\addtosavedmacro{\arcendborder}%
\addtosavedmacro{\arcstartcorner}%
\addtosavedmacro{\arcendcorner}%
\addtosavedmacro{\angletosectorcenterborder}%
\addtosavedmacro{\angletoarcstartborder}%
\addtosavedmacro{\angletoarcendborder}%
\addtosavedmacro{\angletoarcstartcorner}%
\addtosavedmacro{\angletoarcendcorner}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt\relax%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\anchor{center}{\centerpoint}%
\anchor{base}{\basepoint}%
\anchor{mid}{\midpoint}%
\anchor{arc start}{%
\installcircularsectorparameters%
\arcstartcorner%
}%
\anchor{arc end}{%
\installcircularsectorparameters%
\arcendcorner%
}%
\anchor{sector center}{%
\installcircularsectorparameters%
\sectorcenterborder%
}%
\anchor{arc center}{%
\installcircularsectorparameters%
\pgfmathadd@{\rotate}{180}%
\let\angle\pgfmathresult%
\csname pgf@anchor@circular sector@border\endcsname{\pgfqpointpolar{\angle}{\cornerradius}}%
}%
\anchor{north}{%
\installcircularsectorparameters%
\csname pgf@anchor@circular sector@border\endcsname{\pgfqpoint{0pt}{\cornerradius}}%
}%
\anchor{south}{%
\installcircularsectorparameters%
\csname pgf@anchor@circular sector@border\endcsname{\pgfqpoint{0pt}{-\cornerradius}}%
}%
\anchor{east}{%
\installcircularsectorparameters%
\csname pgf@anchor@circular sector@border\endcsname{\pgfqpoint{\cornerradius}{0pt}}%
}%
\anchor{west}{%
\installcircularsectorparameters%
\csname pgf@anchor@circular sector@border\endcsname{\pgfqpoint{-\cornerradius}{0pt}}%
}%
\anchor{north west}{%
\installcircularsectorparameters%
\csname pgf@anchor@circular sector@border\endcsname{\pgfqpoint{-\cornerradius}{\cornerradius}}%
}%
\anchor{south west}{%
\installcircularsectorparameters%
\csname pgf@anchor@circular sector@border\endcsname{\pgfqpoint{-\cornerradius}{-\cornerradius}}%
}%
\anchor{north east}{%
\installcircularsectorparameters%
\csname pgf@anchor@circular sector@border\endcsname{\pgfqpoint{\cornerradius}{\cornerradius}}%
}%
\anchor{south east}{%
\installcircularsectorparameters%
\csname pgf@anchor@circular sector@border\endcsname{\pgfqpoint{\cornerradius}{-\cornerradius}}%
}%
\backgroundpath{%
\installcircularsectorparameters%
\pgfpathmoveto{\sectorcenter}%
\pgfpathlineto{\arcstart}%
\ifdim\endangle pt>360pt\relax%
\ifdim\startangle pt>360pt\relax%
\pgfpatharc{\startangle}{\endangle}{\radius}%
\else%
\pgfpatharc{\startangle}{360}{\radius}%
\pgfpatharc{0}{\endangle}{\radius}%
\fi%
\else%
\pgfpatharc{\startangle}{\endangle}{\radius}%
\fi%
\pgfpathclose%
}%
\anchorborder{%
\edef\externalx{\the\pgf@x}%
\edef\externaly{\the\pgf@y}%
\centerpoint%
\pgf@xa\externalx\relax%
\pgf@ya\externaly\relax%
\advance\pgf@xa\pgf@x%
\advance\pgf@ya\pgf@y%
\edef\externalx{\the\pgf@xa}%
\edef\externaly{\the\pgf@ya}%
\installcircularsectorparameters%
\pgfmathanglebetweenpoints{\centerpoint}{\pgfqpoint{\externalx}{\externaly}}%
\let\externalangle\pgfmathresult%
\pgfmathsubtract@{\pgfmathresult}{\rotate}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\angle\pgfmathresult%
\ifdim\angle pt>\angletoarcendcorner pt\relax%
\let\firstpoint\arcendcorner%
\let\secondpoint\sectorcenterborder%
\else%
\ifdim\angle pt>\angletoarcendborder pt\relax%
\let\firstpoint\arcendborder%
\let\secondpoint\arcendcorner%
\else%
\ifdim\angle pt>\angletoarcstartborder pt\relax%
\let\firstpoint\pgfutil@empty%
\let\secondpoint\pgfutil@empty%
\else%
\ifdim\angle pt>\angletoarcstartcorner pt\relax%
\let\firstpoint\arcstartborder
\let\secondpoint\arcstartcorner
\else%
\let\firstpoint\sectorcenterborder%
\let\secondpoint\arcstartcorner%
\fi%
\fi%
\fi%
\fi%
\ifx\firstpoint\pgfutil@empty
\pgfmathanglebetweenlines{\centerpoint}{\pgfqpoint{\externalx}{\externaly}}%
{\sectorcenter}{\centerpoint}%
\pgfmathsin@{\pgfmathresult}%
\let\sineangle\pgfmathresult%
\pgf@x\borderradius\relax%
\pgfmathreciprocal@{\pgfmath@tonumber{\pgf@x}}%
\let\reciprocalradius\pgfmathresult%
\pgf@x\centeroffset\relax%
\pgf@x\sineangle\pgf@x%
\pgf@x\reciprocalradius\pgf@x%
\pgfmathasin@{\pgfmath@tonumber{\pgf@x}}%
\pgf@x\pgfmathresult pt\relax%
\advance\pgf@x\externalangle pt\relax%
\edef\angle{\pgfmath@tonumber{\pgf@x}}%
\pgfpointadd{\sectorcenter}{\pgfqpointpolar{\angle}{\borderradius}}%
\else%
\pgfpointintersectionoflines{\centerpoint}{\pgfqpoint{\externalx}{\externaly}}%
{\firstpoint}{\secondpoint}%
\fi%
}%
}%
\newif\ifpgfcylinderusescustomfill
\pgfkeys{/pgf/.cd,
cylinder uses custom fill/.is if=pgfcylinderusescustomfill,
cylinder end fill/.initial=white,
cylinder body fill/.initial=white,
}%
\pgfdeclareshape{cylinder}{%
\savedmacro\getcylinderpoints{%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/inner xsep}}%
\pgf@x\pgf@xc%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@yc{\pgfkeysvalueof{/pgf/inner ysep}}%
\pgf@y\pgf@yc%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\ifpgfshapeborderusesincircle%
\pgfmathsetmacro\rotate{\pgfkeysvalueof{/pgf/shape border rotate}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\else%
\pgf@y\pgf@x%
\fi%
\pgf@x1.414213\pgf@x%
\pgf@y1.414213\pgf@y%
\else%
\pgfmathmod{\pgfkeysvalueof{/pgf/shape border rotate}}{360}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\pgfmathsetcount\c@pgf@counta{+\pgfmathresult}%
\advance\c@pgf@counta45\relax%
\divide\c@pgf@counta90\relax%
\multiply\c@pgf@counta90\relax%
\edef\rotate{\the\c@pgf@counta}%
\ifnum\c@pgf@counta=90\relax%
\pgf@xa\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xa%
\pgf@yc\pgf@xc%
\else%
\ifnum\c@pgf@counta=270\relax%
\pgf@xa\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xa%
\pgf@yc\pgf@xc%
\fi%
\fi%
\fi%
\addtosavedmacro\rotate%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgfutil@tempdima\pgfshapeaspect\pgf@ya%
\pgfutil@tempdimb\pgf@ya%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgfutil@tempdimb<.5\pgf@xc\relax%
\pgfutil@tempdimb.5\pgf@xc%
\pgf@ya\pgfutil@tempdimb%
\fi%
\pgf@yb\pgfutil@tempdimb%
\advance\pgf@yb-\pgf@yc%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@yb}}{\pgfmath@tonumber{\pgfutil@tempdimb}}%
\pgfmathasin@{\pgfmathresult}%
\pgfmathcos@{\pgfmathresult}%
\let\angle\pgfmathresult%
\pgf@xb\pgfmathresult\pgfutil@tempdima%
\pgf@x.5\pgflinewidth%
\advance\pgf@x2.0\pgf@xa%
\advance\pgf@x3.0\pgfutil@tempdima%
\advance\pgf@x-\pgf@xb%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@x<\pgf@xc%
\advance\pgf@xc-\pgf@x%
\advance\pgf@xa.5\pgf@xc%
\fi%
\pgf@x\pgfutil@tempdima\relax%
\pgf@y\pgfutil@tempdimb\relax%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@yc{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xc>\pgf@yc%
\advance\pgf@x\pgf@xc%
\advance\pgf@y\pgf@xc%
\edef\outersep{\the\pgf@xc}%
\else%
\advance\pgf@x\pgf@yc%
\advance\pgf@y\pgf@yc%
\edef\outersep{\the\pgf@yc}%
\fi%
\edef\xradius{\the\pgf@x}%
\edef\yradius{\the\pgf@y}%
\addtosavedmacro\xradius%
\addtosavedmacro\yradius%
\addtosavedmacro\outersep%
\pgfextract@process\cylindercenter{%
\pgf@x\pgfutil@tempdima%
\advance\pgf@x.5\pgflinewidth%
\advance\pgf@x\pgf@xb%
\pgf@x.5\pgf@x%
\pgf@y0pt%
}%
\addtosavedmacro\cylindercenter%
\pgfextract@process\beforetop{%
\pgf@x\pgf@xa%
\advance\pgf@x\pgfutil@tempdima%
\advance\pgf@x.5\pgflinewidth%
\pgf@y\pgf@ya%
}%
\pgfextract@process\afterbottom{%
\pgf@x-\pgf@xa%
\advance\pgf@x\pgf@xb%
\pgf@y\pgf@ya%
}%
\addtosavedmacro\beforetop%
\addtosavedmacro\afterbottom%
\pgfmathsetlength\pgf@yc{\pgfkeysvalueof{/pgf/outer ysep}}%
\pgfextract@process\beforetopanchor{%
\beforetop%
\advance\pgf@y\pgf@yc%
}%
\pgfextract@process\afterbottomanchor{%
\afterbottom%
\advance\pgf@y\pgf@yc%
}%
\addtosavedmacro\beforetopanchor%
\addtosavedmacro\afterbottomanchor%
\beforetopanchor%
\advance\pgf@x\xradius\relax%
\ifdim\pgf@x>\pgf@y%
\edef\externalradius{\the\pgf@x}%
\else%
\edef\externalradius{\the\pgf@y}%
\fi%
\addtosavedmacro\externalradius%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{shape center}{%
\getcylinderpoints%
\pgfmathrotatepointaround{\pgfpointadd{\cylindercenter}{\centerpoint}}%
{\centerpoint}{\rotate}%
}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\getcylinderpoints%
\let\pgf@cylinder@referencepoint\midpoint%
\pgf@anchor@cylinder@border{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{mid west}{%
\getcylinderpoints%
\let\pgf@cylinder@referencepoint\midpoint%
\pgf@anchor@cylinder@border{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\getcylinderpoints%
\let\pgf@cylinder@referencepoint\basepoint%
\pgf@anchor@cylinder@border{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{base west}{%
\getcylinderpoints%
\let\pgf@cylinder@referencepoint\basepoint%
\pgf@anchor@cylinder@border{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{north}{%
\getcylinderpoints%
\pgf@anchor@cylinder@border{\pgfqpoint{0pt}{\externalradius}}%
}%
\anchor{south}{%
\getcylinderpoints%
\pgf@anchor@cylinder@border{\pgfqpoint{0pt}{-\externalradius}}%
}%
\anchor{east}{%
\getcylinderpoints%
\pgf@anchor@cylinder@border{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{west}{%
\getcylinderpoints%
\pgf@anchor@cylinder@border{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{north east}{%
\getcylinderpoints%
\pgf@anchor@cylinder@border{\pgfqpoint{\externalradius}{\externalradius}}%
}%
\anchor{south west}{%
\getcylinderpoints%
\pgf@anchor@cylinder@border{\pgfqpoint{-\externalradius}{-\externalradius}}%
}%
\anchor{south east}{%
\getcylinderpoints%
\pgf@anchor@cylinder@border{\pgfqpoint{\externalradius}{-\externalradius}}%
}%
\anchor{north west}{%
\getcylinderpoints%
\pgf@anchor@cylinder@border{\pgfqpoint{-\externalradius}{\externalradius}}%
}%
\anchor{before top}{%
\getcylinderpoints%
\pgfmathrotatepointaround{\pgfpointadd{\beforetopanchor}{\centerpoint}}{\centerpoint}{\rotate}%
}%
\anchor{top}{%
\getcylinderpoints%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\beforetop%
\pgf@y0pt\relax%
\advance\pgf@x\xradius\relax%
}{\centerpoint}}{\centerpoint}{\rotate}%
}%
\anchor{after top}{%
\getcylinderpoints%
\pgfmathrotatepointaround{\pgfpointadd{\beforetopanchor\pgf@y-\pgf@y}{\centerpoint}}{\centerpoint}{\rotate}%
}%
\anchor{before bottom}{%
\getcylinderpoints%
\pgfmathrotatepointaround{\pgfpointadd{\afterbottomanchor\pgf@y-\pgf@y}{\centerpoint}}{\centerpoint}{\rotate}%
}%
\anchor{bottom}{%
\getcylinderpoints%
\pgfmathrotatepointaround{%
\pgfpointadd{%
\afterbottom%
\pgf@y0pt\relax%
\advance\pgf@x-\xradius\relax%
}{\centerpoint}}{\centerpoint}{\rotate}%
}%
\anchor{after bottom}{%
\getcylinderpoints%
\pgfmathrotatepointaround{\pgfpointadd{\afterbottomanchor}{\centerpoint}}{\centerpoint}{\rotate}%
}%
\backgroundpath{%
\getcylinderpoints%
{%
\pgf@x\xradius\relax%
\advance\pgf@x-\outersep\relax%
\edef\xradius{\the\pgf@x}%
\pgf@y\yradius\relax%
\advance\pgf@y-\outersep\relax%
\edef\yradius{\the\pgf@y}%
\pgftransformshift{\centerpoint}%
\pgftransformrotate{\rotate}%
\pgfpathmoveto{\afterbottom}%
\pgfpatharc{90}{270}{\xradius and \yradius}%
\pgfpathlineto{\beforetop\pgf@y-\pgf@y}%
\pgfpatharc{-90}{90}{\xradius and \yradius}%
\pgfpathclose%
\pgfpathmoveto{\beforetop}%
\pgfpatharc{90}{270}{\xradius and \yradius}%
}%
}%
\behindbackgroundpath{%
\ifpgfcylinderusescustomfill%
\getcylinderpoints%
\pgf@x\xradius\relax%
\advance\pgf@x-\outersep\relax%
\edef\xradius{\the\pgf@x}%
\pgf@y\yradius\relax%
\advance\pgf@y-\outersep\relax%
\edef\yradius{\the\pgf@y}%
{%
\pgftransformshift{\centerpoint}%
\pgftransformrotate{\rotate}%
\pgfpathmoveto{\afterbottom}%
\pgfpatharc{90}{270}{\xradius and \yradius}%
\pgfpathlineto{\beforetop\pgf@y-\pgf@y}%
\pgfpatharc{270}{90}{\xradius and \yradius}%
\pgfpathclose%
\expandafter\pgfsetfillcolor\expandafter{\pgfkeysvalueof{/pgf/cylinder body fill}}%
\pgfusepath{fill}%
\pgfpathmoveto{\beforetop}%
\pgfpatharc{90}{-270}{\xradius and \yradius}%
\pgfpathclose
\expandafter\pgfsetfillcolor\expandafter{\pgfkeysvalueof{/pgf/cylinder end fill}}%
\pgfusepath{fill}%
}%
\fi%
}%
\anchorborder{%
\pgfextract@process\externalpoint{}%
\getcylinderpoints%
\pgfutil@ifundefined{pgf@cylinder@referencepoint}{\let\referencepoint\centerpoint}{%
\let\referencepoint\pgf@cylinder@referencepoint}%
\pgfextract@process\externalpoint{%
\externalpoint%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\referencepoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\externalpoint}%
\pgfmathsubtract@{\pgfmathresult}{\rotate}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\externalangle\pgfmathresult%
\pgfmathanglebetweenpoints{\referencepoint}{\pgfpointadd{\afterbottomanchor}{\centerpoint}}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}{\pgfpointadd{\beforetopanchor}{\centerpoint}}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathrotatepointaround{%
\pgfmathpointintersectionoflineandarc%
{\pgfmathrotatepointaround{\externalpoint}{\centerpoint}{-\rotate}}%
{\pgfmathrotatepointaround{\referencepoint}{\centerpoint}{-\rotate}}%
{%
\beforetop%
\pgf@xa\pgf@x%
\centerpoint%
\advance\pgf@x\pgf@xa%
}%
{0}{90}{\xradius and \yradius}%
}{\centerpoint}{\rotate}%
\else%
\pgfpointintersectionoflines{%
\pgfmathrotatepointaround{\pgfpointadd{\afterbottomanchor}{\centerpoint}}%
{\centerpoint}{\rotate}}{%
\pgfmathrotatepointaround{\pgfpointadd{\beforetopanchor}{\centerpoint}}%
{\centerpoint}{\rotate}}%
{\referencepoint}{\externalpoint}%
\fi%
\else%
\pgfmathanglebetweenpoints{\referencepoint}{\pgfpointadd{\afterbottomanchor\pgf@y-\pgf@y}{\centerpoint}}%
\ifdim\externalangle pt>\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\referencepoint}{\pgfpointadd{\beforetopanchor\pgf@y-\pgf@y}{\centerpoint}}%
\ifdim\externalangle pt>\pgfmathresult pt\relax%
\pgfmathrotatepointaround{%
\pgfmathpointintersectionoflineandarc%
{\pgfmathrotatepointaround{\externalpoint}{\centerpoint}{-\rotate}}%
{\pgfmathrotatepointaround{\referencepoint}{\centerpoint}{-\rotate}}%
{%
\beforetop%
\pgf@xa\pgf@x%
\centerpoint
\advance\pgf@x\pgf@xa%
}%
{270}{360}{\xradius and \yradius}%
}{\centerpoint}{\rotate}%
\else%
\pgfpointintersectionoflines{%
\pgfmathrotatepointaround{\pgfpointadd{\afterbottomanchor\pgf@y-\pgf@y}{\centerpoint}}%
{\centerpoint}{\rotate}}{%
\pgfmathrotatepointaround{\pgfpointadd{\beforetopanchor\pgf@y-\pgf@y}{\centerpoint}}%
{\centerpoint}{\rotate}}%
{\referencepoint}{\externalpoint}%
\fi%
\else%
\pgfmathrotatepointaround{%
\pgfmathpointintersectionoflineandarc%
{\pgfmathrotatepointaround{\externalpoint}{\centerpoint}{-\rotate}}%
{\pgfmathrotatepointaround{\referencepoint}{\centerpoint}{-\rotate}}%
{%
\afterbottom%
\pgf@xa\pgf@x%
\centerpoint
\advance\pgf@x\pgf@xa%
}%
{90}{270}{\xradius and \yradius}%
}{\centerpoint}{\rotate}%
\fi%
\fi%
}%
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.geometric.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.misc.code.tex ====
\ProvidesFileRCS{pgflibraryshapes.misc.code.tex}
\pgfdeclareshape{cross out}
{%
\inheritsavedanchors[from=rectangle]%
\inheritanchorborder[from=rectangle]%
\inheritanchor[from=rectangle]{north}%
\inheritanchor[from=rectangle]{north west}%
\inheritanchor[from=rectangle]{north east}%
\inheritanchor[from=rectangle]{center}%
\inheritanchor[from=rectangle]{west}%
\inheritanchor[from=rectangle]{east}%
\inheritanchor[from=rectangle]{mid}%
\inheritanchor[from=rectangle]{mid west}%
\inheritanchor[from=rectangle]{mid east}%
\inheritanchor[from=rectangle]{base}%
\inheritanchor[from=rectangle]{base west}%
\inheritanchor[from=rectangle]{base east}%
\inheritanchor[from=rectangle]{south}%
\inheritanchor[from=rectangle]{south west}%
\inheritanchor[from=rectangle]{south east}%
\foregroundpath{
\southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
\northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}}
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@yb}}
\pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@ya}}
\pgfsetarrowsstart{}
\pgfsetarrowsend{}
}%
}%
\pgfdeclareshape{strike out}
{%
\inheritsavedanchors[from=rectangle]%
\inheritanchorborder[from=rectangle]%
\inheritanchor[from=rectangle]{north}%
\inheritanchor[from=rectangle]{north west}%
\inheritanchor[from=rectangle]{north east}%
\inheritanchor[from=rectangle]{center}%
\inheritanchor[from=rectangle]{west}%
\inheritanchor[from=rectangle]{east}%
\inheritanchor[from=rectangle]{mid}%
\inheritanchor[from=rectangle]{mid west}%
\inheritanchor[from=rectangle]{mid east}%
\inheritanchor[from=rectangle]{base}%
\inheritanchor[from=rectangle]{base west}%
\inheritanchor[from=rectangle]{base east}%
\inheritanchor[from=rectangle]{south}%
\inheritanchor[from=rectangle]{south west}%
\inheritanchor[from=rectangle]{south east}%
\foregroundpath{
\pgfpathmoveto{\southwest}
\pgfpathlineto{\northeast}
\pgfsetarrowsstart{}
\pgfsetarrowsend{}
}%
}%
\pgfkeys{/pgf/.cd,
rounded rectangle west arc/.initial=convex,
rounded rectangle east arc/.initial=convex,
rounded rectangle left arc/.style={/pgf/rounded rectangle west arc={#1}},%
rounded rectangle right arc/.style={/pgf/rounded rectangle east arc={#1}},%
rounded rectangle arc length/.initial=180%
}%
\def\pgf@lib@sh@misc@rr@text@concave{concave}%
\def\pgf@lib@sh@misc@rr@text@convex{convex}%
\pgfdeclareshape{rounded rectangle}{%
\savedmacro\westarc{%
\edef\westarc{\pgfkeysvalueof{/pgf/rounded rectangle west arc}}%
}%
\savedmacro\eastarc{%
\edef\eastarc{\pgfkeysvalueof{/pgf/rounded rectangle east arc}}%
}%
\savedmacro\roundedrectanglepoints{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/rounded rectangle arc length}}%
\pgf@x=.5\pgf@x%
\edef\halfarcangle{\pgfmath@tonumber{\pgf@x}}%
\addtosavedmacro\halfarcangle%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\edef\innerxsep{\the\pgf@x}%
\pgf@xa=0.5\wd\pgfnodeparttextbox%
\edef\halftextwidth{\the\pgf@xa}%
\addtosavedmacro\halftextwidth%
\advance\pgf@x by\pgf@xa%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\edef\innerysep{\the\pgf@y}%
\pgf@ya=.5\ht\pgfnodeparttextbox%
\advance\pgf@ya by.5\dp\pgfnodeparttextbox%
\edef\halftextheight{\the\pgf@ya}%
\addtosavedmacro\halftextheight%
\advance\pgf@y by\pgf@ya%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@y<.5\pgf@yb%
\pgf@y=.5\pgf@yb%
\fi%
\edef\halfheight{\the\pgf@y}%
\addtosavedmacro\halfheight%
\pgfmathcosec@{\halfarcangle}%
\pgf@ya=\pgfmathresult\pgf@y%
\edef\radius{\the\pgf@ya}%
\addtosavedmacro\radius%
\pgfmathcos@{\halfarcangle}%
\pgf@xa=\pgf@ya%
\advance\pgf@xa by-\pgfmathresult\pgf@ya%
\pgfmathdivide{\halftextheight}{\radius}%
\pgfmathasin@{\pgfmathresult}%
\pgfmathcos@{\pgfmathresult}%
\pgf@xb=\pgf@ya%
\advance\pgf@xb by-\pgfmathresult\pgf@ya%
\edef\westarc{\pgfkeysvalueof{/pgf/rounded rectangle west arc}}%
\edef\eastarc{\pgfkeysvalueof{/pgf/rounded rectangle east arc}}%
\pgfutil@tempdima=2.0\pgf@x%
\ifx\westarc\pgf@lib@sh@misc@rr@text@concave%
\advance\pgfutil@tempdima by\pgf@xa%
\else%
\ifx\westarc\pgf@lib@sh@misc@rr@text@convex%
\advance\pgfutil@tempdima by\pgf@xb%
\fi%
\fi%
\ifx\eastarc\pgf@lib@sh@misc@rr@text@concave%
\advance\pgfutil@tempdima by\pgf@xa%
\else%
\ifx\eastarc\pgf@lib@sh@misc@rr@text@convex%
\advance\pgfutil@tempdima by\pgf@xb%
\fi%
\fi%
\pgfmathsetlength\pgfutil@tempdimb{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgfutil@tempdima<\pgfutil@tempdimb%
\advance\pgfutil@tempdimb by-\pgfutil@tempdima%
\divide\pgfutil@tempdimb by2\relax%
\edef\xoffset{\the\pgfutil@tempdimb}%
\else%
\let\xoffset=\innerxsep%
\fi%
\pgf@x=\halftextwidth\relax%
\advance\pgf@x by\xoffset\relax%
\pgf@xc=\pgf@ya%
\advance\pgf@xc by-\pgf@xb%
\ifdim\pgf@xc>\pgf@x\relax%
\advance\pgf@xc by-\pgf@x%
\advance\pgf@xc by\xoffset\relax%
\edef\xoffset{\the\pgf@xc}%
\fi%
\addtosavedmacro\xoffset%
\pgf@x=\halftextwidth\relax%
\advance\pgf@x by\xoffset\relax%
\edef\halfwidth{\the\pgf@x}%
\addtosavedmacro\halfwidth%
\edef\arcwidth{\the\pgf@xa}%
\addtosavedmacro\arcwidth%
\edef\chordwidth{\the\pgf@xb}%
\addtosavedmacro\chordwidth%
\pgfmathsetlengthmacro\outerxsep{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlengthmacro\outerysep{\pgfkeysvalueof{/pgf/outer ysep}}%
\addtosavedmacro\outerxsep%
\addtosavedmacro\outerysep%
\ifdim\halfarcangle pt=90pt\relax%
\def\concavexshift{0pt}%
\else%
\pgfmathsubtract@{90}{\halfarcangle}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\angletemp=\pgfmathresult%
\pgf@x=\outerxsep\relax%
\pgfmathcosec@{\angletemp}%
\pgf@x=\pgfmathresult\pgf@x%
\pgfmathcos@{\angletemp}%
\pgf@x=\pgfmathresult\pgf@x%
\edef\concavexshift{\the\pgf@x}%
\fi%
\addtosavedmacro\concavexshift%
\ifdim\halfarcangle pt=90pt\relax%
\def\convexxshift{0pt}%
\else%
\pgfmathadd@{90}{\halfarcangle}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\angletemp=\pgfmathresult%
\pgf@x=\outerxsep\relax%
\pgfmathcosec@{\angletemp}%
\pgf@x=\pgfmathresult\pgf@x%
\pgfmathcos@{\angletemp}%
\pgf@x=\pgfmathresult\pgf@x%
\edef\convexxshift{\the\pgf@x}%
\fi%
\addtosavedmacro\convexxshift%
}%
\saveddimen\halflinewidth{\pgf@x.5\pgflinewidth}%
\savedanchor\centerpoint{%
\pgf@x=.5\wd\pgfnodeparttextbox%
\pgf@y=.5\ht\pgfnodeparttextbox%
\advance\pgf@y by-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x=.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x=.5\wd\pgfnodeparttextbox%
\pgf@y=0pt\relax%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid west}{%
\csname pgf@anchor@rounded rectangle@west\endcsname%
\pgf@xc=\pgf@x%
\midpoint%
\pgf@x=\pgf@xc%
}%
\anchor{mid east}{%
\csname pgf@anchor@rounded rectangle@east\endcsname%
\pgf@xc=\pgf@x%
\midpoint%
\pgf@x=\pgf@xc%
}%
\anchor{base}{\basepoint}%
\anchor{base west}{%
\csname pgf@anchor@rounded rectangle@west\endcsname%
\pgf@xc=\pgf@x%
\basepoint%
\pgf@x=\pgf@xc%
}%
\anchor{base east}{%
\csname pgf@anchor@rounded rectangle@east\endcsname%
\pgf@xc=\pgf@x%
\basepoint%
\pgf@x=\pgf@xc%
}%
\anchor{north}{%
\roundedrectanglepoints%
\pgfpointadd{\centerpoint}{\pgfpoint{+0pt}{\halfheight+\outerysep}}%
}%
\anchor{south}{%
\roundedrectanglepoints%
\pgfpointadd{\centerpoint}{\pgfpoint{+0pt}{-\halfheight-\outerysep}}%
}%
\anchor{west}{%
\roundedrectanglepoints%
\pgfpointadd{\centerpoint}{%
\ifx\westarc\pgf@lib@sh@misc@rr@text@concave%
\pgfpoint{-\halfwidth-\arcwidth-\concavexshift}{+0pt}%
\else%
\ifx\westarc\pgf@lib@sh@misc@rr@text@convex%
\pgfpoint{-\halfwidth-\chordwidth-\outerxsep}{+0pt}%
\else%
\pgfpoint{-\halfwidth-\outerxsep}{+0pt}%
\fi%
\fi%
}%
}%
\anchor{north west}{%
\roundedrectanglepoints%
\ifx\westarc\pgf@lib@sh@misc@rr@text@convex%
\pgfpointadd{\centerpoint}{\pgfpoint{-\halfwidth-\chordwidth+\arcwidth-\convexxshift}{+0pt}}%
\else%
\csname pgf@anchor@rounded rectangle@west\endcsname%
\fi%
\pgf@xc=\pgf@x%
\csname pgf@anchor@rounded rectangle@north\endcsname%
\pgf@x=\pgf@xc%
}%
\anchor{south west}{%
\roundedrectanglepoints%
\ifx\westarc\pgf@lib@sh@misc@rr@text@convex%
\pgfpointadd{\centerpoint}{\pgfpoint{-\halfwidth-\chordwidth+\arcwidth-\convexxshift}{+0pt}}%
\else%
\csname pgf@anchor@rounded rectangle@west\endcsname%
\fi%
\pgf@xc=\pgf@x%
\csname pgf@anchor@rounded rectangle@south\endcsname%
\pgf@x=\pgf@xc%
}%
\anchor{east}{%
\roundedrectanglepoints%
\pgfpointadd{\centerpoint}{%
\ifx\eastarc\pgf@lib@sh@misc@rr@text@concave%
\pgfpoint{\halfwidth+\arcwidth+\concavexshift}{+0pt}%
\else%
\ifx\eastarc\pgf@lib@sh@misc@rr@text@convex%
\pgfpoint{\halfwidth+\chordwidth+\outerxsep}{+0pt}%
\else%
\pgfpoint{\halfwidth+\outerxsep}{+0pt}%
\fi%
\fi%
}%
}%
\anchor{north east}{%
\roundedrectanglepoints%
\ifx\eastarc\pgf@lib@sh@misc@rr@text@convex%
\pgfpointadd{\centerpoint}{\pgfpoint{\halfwidth+\chordwidth-\arcwidth+\convexxshift}{+0pt}}%
\else%
\csname pgf@anchor@rounded rectangle@east\endcsname%
\fi%
\pgf@xc=\pgf@x%
\csname pgf@anchor@rounded rectangle@north\endcsname%
\pgf@x=\pgf@xc%
}%
\anchor{south east}{%
\roundedrectanglepoints%
\ifx\eastarc\pgf@lib@sh@misc@rr@text@convex%
\pgfpointadd{\centerpoint}{\pgfpoint{\halfwidth+\chordwidth-\arcwidth+\convexxshift}{+0pt}}%
\else%
\csname pgf@anchor@rounded rectangle@east\endcsname%
\fi%
\pgf@xc=\pgf@x%
\csname pgf@anchor@rounded rectangle@south\endcsname%
\pgf@x=\pgf@xc%
}%
\backgroundpath{%
{%
\roundedrectanglepoints%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\pgfpoint{0pt}{\halfheight}}%
\ifx\eastarc\pgf@lib@sh@misc@rr@text@concave%
\pgfpathlineto{\pgfpoint{\halfwidth+\arcwidth}{+\halfheight}}%
\pgfpatharc{180-\halfarcangle}{180+\halfarcangle}{+\radius}%
\else%
\ifx\eastarc\pgf@lib@sh@misc@rr@text@convex%
\pgfpathlineto{\pgfpoint{\halfwidth+\chordwidth-\arcwidth}{+\halfheight}}%
\pgfpatharc{+\halfarcangle}{+-\halfarcangle}{+\radius}%
\else%
\pgfpathlineto{\pgfqpoint{\halfwidth}{\halfheight}}%
\pgfpathlineto{\pgfqpoint{\halfwidth}{-\halfheight}}%
\fi%
\fi%
\ifx\westarc\pgf@lib@sh@misc@rr@text@concave%
\pgfpathlineto{\pgfpoint{-\halfwidth-\arcwidth}{+-\halfheight}}%
\pgfpatharc{+-\halfarcangle}{+\halfarcangle}{+\radius}%
\else%
\ifx\westarc\pgf@lib@sh@misc@rr@text@convex%
\pgfpathlineto{\pgfpoint{-\halfwidth-\chordwidth+\arcwidth}{+-\halfheight}}%
\pgfpatharc{180+\halfarcangle}{180-\halfarcangle}{+\radius}%
\else%
\pgfpathlineto{\pgfqpoint{-\halfwidth}{-\halfheight}}%
\pgfpathlineto{\pgfqpoint{-\halfwidth}{\halfheight}}%
\fi%
\fi%
\pgfpathclose%
}%
}%
\anchorborder{%
\pgfextract@process\externalpoint{%
\pgfextract@process\externalpoint{}%
\pgfpointadd{\centerpoint}{\externalpoint}%
}%
\roundedrectanglepoints%
\pgfmathanglebetweenpoints{\centerpoint}{\externalpoint}%
\let\externalangle=\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@rounded rectangle@north west\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@rounded rectangle@north east\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\ifx\eastarc\pgf@lib@sh@misc@rr@text@convex%
\pgfextract@process\arccenter{%
\pgfpointadd{\centerpoint}{\pgfpoint{\halfwidth+\chordwidth-\radius}{+0pt}}%
}%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{\arccenter}{0}{\halfarcangle}{\radius+\outerxsep and \radius+\outerysep}%
\else%
\pgfpointintersectionoflines%
{\csname pgf@anchor@rounded rectangle@north east\endcsname}%
{\csname pgf@anchor@rounded rectangle@south east\endcsname}%
{\externalpoint}{\centerpoint}%
\fi%
\else%
\pgfpointintersectionoflines%
{\csname pgf@anchor@rounded rectangle@north east\endcsname}%
{\csname pgf@anchor@rounded rectangle@north west\endcsname}%
{\externalpoint}{\centerpoint}%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@rounded rectangle@south west\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\ifx\westarc\pgf@lib@sh@misc@rr@text@convex%
\pgfextract@process\arccenter{%
\pgfpointadd{\centerpoint}{\pgfpoint{-\halfwidth-\chordwidth+\radius}{+0pt}}%
}%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{\arccenter}{180-\halfarcangle}{180+\halfarcangle}{\radius+\outerxsep and \radius+\outerysep}%
\else%
\pgfpointintersectionoflines%
{\csname pgf@anchor@rounded rectangle@north west\endcsname}%
{\csname pgf@anchor@rounded rectangle@south west\endcsname}%
{\externalpoint}{\centerpoint}%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@rounded rectangle@south east\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfpointintersectionoflines%
{\csname pgf@anchor@rounded rectangle@south east\endcsname}%
{\csname pgf@anchor@rounded rectangle@south west\endcsname}%
{\externalpoint}{\centerpoint}%
\else%
\ifx\eastarc\pgf@lib@sh@misc@rr@text@convex%
\pgfextract@process\arccenter{%
\pgfpointadd{\centerpoint}{\pgfpoint{\halfwidth+\chordwidth-\radius}{+0pt}}%
}%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{\arccenter}{360-\halfarcangle}{360}{\radius+\outerxsep and \radius+\outerysep}%
\else%
\pgfpointintersectionoflines%
{\csname pgf@anchor@rounded rectangle@north east\endcsname}%
{\csname pgf@anchor@rounded rectangle@south east\endcsname}%
{\externalpoint}{\centerpoint}%
\fi%
\fi%
\fi%
\fi%
}%
}%
\pgfkeys{/pgf/chamfered rectangle corners/.store in=\pgf@lib@sh@misc@cr@corners}%
\pgfkeys{/tikz/chamfered rectangle corners/.store in=\pgf@lib@sh@misc@cr@corners}%
\def\pgf@lib@sh@misc@cr@chamferall{chamfer all}%
\def\pgf@lib@sh@misc@cr@chamfer{chamfer}%
\let\pgf@lib@sh@misc@cr@corners\pgf@lib@sh@misc@cr@chamferall
\def\pgf@lib@sh@misc@cr@getcorners{%
\let\northeastcorner\pgfutil@empty%
\let\southeastcorner\pgfutil@empty%
\let\southwestcorner\pgfutil@empty%
\let\northwestcorner\pgfutil@empty%
\expandafter\pgfutil@in@\expandafter{\pgf@lib@sh@misc@cr@corners}{chamfer all}%
\ifpgfutil@in@%
\let\northeastcorner\pgf@lib@sh@misc@cr@round%
\let\southeastcorner\pgf@lib@sh@misc@cr@round%
\let\southwestcorner\pgf@lib@sh@misc@cr@round%
\let\northwestcorner\pgf@lib@sh@misc@cr@round%
\let\pgf@next\relax%
\else%
\let\pgf@next\pgf@lib@sh@misc@cr@parsecorners%
\fi%
\pgf@next}%
\def\pgf@lib@sh@misc@cr@parsecorners{%
\expandafter\pgf@@chamferedrectangle@parsecorners\pgf@lib@sh@misc@cr@corners,\pgf@stop,%
}%
\def\pgf@@chamferedrectangle@parsecorners#1,{%
\ifx#1\pgf@stop%
\let\pgf@next\relax%
\else%
\pgfutil@in@{@#1@}{@north east@@top left@}%
\ifpgfutil@in@%
\let\northeastcorner\pgf@lib@sh@misc@cr@chamfer%
\else%
\pgfutil@in@{@#1@}{@south east@@bottom right@}%
\ifpgfutil@in@%
\let\southeastcorner\pgf@lib@sh@misc@cr@chamfer%
\else%
\pgfutil@in@{@#1@}{@south west@@bottom left@}%
\ifpgfutil@in@%
\let\southwestcorner\pgf@lib@sh@misc@cr@chamfer%
\else%
\pgfutil@in@{@#1@}{@north west@@top right@}%
\ifpgfutil@in@%
\let\northwestcorner\pgf@lib@sh@misc@cr@round%
\fi%
\fi%
\fi%
\fi%
\let\pgf@next\pgf@@@chamferedrectangle@parsecorners%
\fi%
\pgf@next%
}%
\def\pgf@@@chamferedrectangle@parsecorners{%
\pgfutil@ifnextchar x{\pgf@@chamferedrectangle@parsecorners}{\pgf@@chamferedrectangle@parsecorners}%
}%
\pgfkeys{/pgf/.cd,
chamfered rectangle angle/.initial=45,%
chamfered rectangle xsep/.initial=.666ex,%
chamfered rectangle ysep/.initial=.666ex%
}%
\pgfkeys{/pgf/chamfered rectangle sep/.style={%
/pgf/chamfered rectangle xsep={#1},/pgf/chamfered rectangle ysep={#1}}%
}%
\pgfdeclareshape{chamfered rectangle}{%
\savedmacro\getchamferedrectanglepoints{%
\pgf@lib@sh@misc@cr@getcorners%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@xa.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@ya.5\ht\pgfnodeparttextbox%
\advance\pgf@ya.5\dp\pgfnodeparttextbox%
\pgfmathsetlength\pgfutil@tempdima{\pgfkeysvalueof{/pgf/chamfered rectangle angle}}%
\ifdim\pgfutil@tempdima<89pt\relax%
\ifdim\pgfutil@tempdima<1pt\relax%
\pgfutil@tempdima1pt\relax%
\fi%
\else%
\pgfutil@tempdima89pt\relax%
\fi%
\pgfutil@tempdima-\pgfutil@tempdima%
\advance\pgfutil@tempdima90pt\relax%
\pgfmathtan@{\pgfmath@tonumber{\pgfutil@tempdima}}%
\let\tanangle\pgfmathresult%
\pgfmathcot@{\pgfmath@tonumber{\pgfutil@tempdima}}%
\let\cotangle\pgfmathresult%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/chamfered rectangle xsep}}%
\pgf@yc\tanangle\pgf@xb%
\ifdim\pgf@yc>\pgf@ya%
\pgf@yc\pgf@ya%
\pgf@xb\cotangle\pgf@yc%
\fi%
\pgfmathcot@{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/chamfered rectangle ysep}}%
\pgf@xc\cotangle\pgf@yb%
\ifdim\pgf@xc>\pgf@xa%
\pgf@xc\pgf@xa%
\pgf@yb\tanangle\pgf@xc%
\fi%
\pgfutil@tempdima\pgf@xa%
\advance\pgfutil@tempdima\pgf@xb%
\pgfmathsetlength\pgfutil@tempdimb{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgfutil@tempdima<.5\pgfutil@tempdimb%
\pgf@xa.5\pgfutil@tempdimb%
\advance\pgf@xa-\pgf@xb%
\fi%
\pgfutil@tempdima\pgf@ya%
\advance\pgfutil@tempdima\pgf@yb%
\pgfmathsetlength\pgfutil@tempdimb{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgfutil@tempdima<.5\pgfutil@tempdimb%
\pgf@ya.5\pgfutil@tempdimb%
\advance\pgf@ya-\pgf@yb%
\fi%
\pgfextract@process\centerpoint{%
\pgfmathsetlength\pgf@x{+.5\wd\pgfnodeparttextbox}%
\pgfmathsetlength\pgf@y{+.5\ht\pgfnodeparttextbox}%
\pgfmathaddtolength\pgf@y{+-.5\dp\pgfnodeparttextbox}%
}%
\pgfextract@process\beforenortheast{%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@x\pgf@xb%
\advance\pgf@y\pgf@ya%
\advance\pgf@y-\pgf@yc%
}%
\pgfextract@process\northeast{%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
\ifx\northeastcorner\pgfutil@empty%
\advance\pgf@x\pgf@xb%
\advance\pgf@y\pgf@yb%
\fi%
}%
\pgfextract@process\afternortheast{%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@x-\pgf@xc%
\advance\pgf@y\pgf@ya%
\advance\pgf@y\pgf@yb%
}%
\pgfextract@process\northwest{%
\centerpoint%
\advance\pgf@x-\pgf@xa%
\advance\pgf@y\pgf@ya%
\ifx\northwestcorner\pgfutil@empty%
\advance\pgf@x-\pgf@xb%
\advance\pgf@y\pgf@yb%
\fi%
}%
\pgfextract@process\beforesouthwest{%
\centerpoint%
\advance\pgf@x-\pgf@xa%
\advance\pgf@x-\pgf@xb%
\advance\pgf@y-\pgf@ya%
\advance\pgf@y\pgf@yc%
}%
\pgfextract@process\southwest{%
\centerpoint%
\advance\pgf@x-\pgf@xa%
\advance\pgf@y-\pgf@ya%
\ifx\southwestcorner\pgfutil@empty%
\advance\pgf@x-\pgf@xb%
\advance\pgf@y-\pgf@yb%
\fi%
}%
\pgfextract@process\aftersouthwest{%
\centerpoint%
\advance\pgf@x-\pgf@xa%
\advance\pgf@x\pgf@xc%
\advance\pgf@y-\pgf@ya%
\advance\pgf@y-\pgf@yb%
}%
\pgfextract@process\southeast{%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y-\pgf@ya%
\ifx\southeastcorner\pgfutil@empty%
\advance\pgf@x\pgf@xb%
\advance\pgf@y-\pgf@yb%
\fi%
}%
\pgfmathanglebetweenlines{\beforenortheast}{\afternortheast}{\beforenortheast}%
{\beforesouthwest\pgf@ya\pgf@y\beforenortheast\pgf@y\pgf@ya}%
\pgfutil@tempdima\pgfmathresult pt\relax%
\ifdim\pgfutil@tempdima>180pt\relax%
\advance\pgfutil@tempdima-180pt\relax%
\fi%
\pgfmathsetlength\pgfutil@tempdimb{\pgfkeysvalueof{/pgf/outer xsep}}%
\ifdim\pgfutil@tempdima<90pt\relax%
\pgfmathcosec@{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgfutil@tempdimb\pgfmathresult\pgfutil@tempdimb%
\pgfutil@tempdima0pt\relax%
\else%
\pgfutil@tempdima.5\pgfutil@tempdima%
\pgfmathcosec@{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgfutil@tempdimb\pgfmathresult\pgfutil@tempdimb%
\pgfutil@tempdima-\pgfutil@tempdima%
\advance\pgfutil@tempdima90pt\relax%
\fi%
\pgfextract@process\before@ne@anchor{%
\beforenortheast%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfutil@tempdima-\pgfutil@tempdima%
\advance\pgfutil@tempdima180pt\relax%
\pgfextract@process\before@sw@anchor{%
\beforesouthwest%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgfqpointpolar{-\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfmathanglebetweenlines{\afternortheast}{\aftersouthwest\pgf@xa\pgf@x\afternortheast\pgf@x\pgf@xa}%
{\afternortheast}{\beforenortheast}%
\pgfutil@tempdima\pgfmathresult pt\relax%
\ifdim\pgfutil@tempdima>270pt\relax%
\advance\pgfutil@tempdima-270pt\relax%
\fi%
\pgfmathsetlength\pgfutil@tempdimb{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgfutil@tempdima<90pt\relax%
\pgfmathcosec@{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgfutil@tempdimb\pgfmathresult\pgfutil@tempdimb%
\pgfutil@tempdima90pt\relax%
\else%
\pgfutil@tempdima.5\pgfutil@tempdima%
\pgfmathcosec@{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgfutil@tempdimb\pgfmathresult\pgfutil@tempdimb%
\fi%
\pgfextract@process\after@ne@anchor{%
\afternortheast%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgfqpointpolar{\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfutil@tempdima-\pgfutil@tempdima%
\advance\pgfutil@tempdima180pt\relax%
\pgfextract@process\after@sw@anchor{%
\aftersouthwest
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgfqpointpolar{-\pgfmath@tonumber{\pgfutil@tempdima}}{\the\pgfutil@tempdimb}%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\addtosavedmacro\before@ne@anchor%
\addtosavedmacro\after@ne@anchor%
\addtosavedmacro\before@sw@anchor%
\addtosavedmacro\after@sw@anchor%
\pgfextract@process\ne@anchor{%
\ifx\northeastcorner\pgfutil@empty%
\northeast%
\pgfmathaddtolength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathaddtolength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\else%
\pgfpointlineattime{0.5}{\before@ne@anchor}{\after@ne@anchor}%
\fi%
}%
\pgfextract@process\nw@anchor{%
\ifx\northwestcorner\pgfutil@empty%
\northwest%
\pgfmathaddtolength\pgf@x{-\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathaddtolength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\else%
\pgfpointlineattime{0.5}{%
\before@ne@anchor%
\pgf@ya\pgf@y
\before@sw@anchor%
\pgf@y\pgf@ya%
}{%
\after@ne@anchor%
\pgf@ya\pgf@y
\after@sw@anchor%
\pgf@y\pgf@ya%
}%
\fi%
}%
\pgfextract@process\sw@anchor{%
\ifx\southwestcorner\pgfutil@empty%
\southwest%
\pgfmathaddtolength\pgf@x{-\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathaddtolength\pgf@y{-\pgfkeysvalueof{/pgf/outer ysep}}%
\else%
\pgfpointlineattime{0.5}{\before@sw@anchor}{\after@sw@anchor}%
\fi%
}%
\pgfextract@process\se@anchor{%
\ifx\southeastcorner\pgfutil@empty%
\southeast%
\pgfmathaddtolength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathaddtolength\pgf@y{-\pgfkeysvalueof{/pgf/outer ysep}}%
\else%
\pgfpointlineattime{0.5}{%
\before@ne@anchor%
\pgf@xa\pgf@x
\before@sw@anchor%
\pgf@x\pgf@xa%
}{%
\after@ne@anchor%
\pgf@xa\pgf@x
\after@sw@anchor%
\pgf@x\pgf@xa%
}%
\fi%
}%
\addtosavedmacro\ne@anchor%
\addtosavedmacro\nw@anchor%
\addtosavedmacro\sw@anchor%
\addtosavedmacro\se@anchor%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\getchamferedrectanglepoints%
\midpoint%
\pgf@ya\pgf@y%
\pgf@process{%
\before@sw@anchor%
\pgf@ya\pgf@y%
\before@ne@anchor%
\pgf@y\pgf@ya%
}%
\ifdim\pgf@ya<\pgf@y%
\pgfpointintersectionoflines{\midpoint}{\midpoint\pgf@ya\pgf@y\before@ne@anchor\pgf@y\pgf@ya}%
{\before@sw@anchor\pgf@ya\pgf@y\before@ne@anchor\pgf@y\pgf@ya}%
{\after@sw@anchor\pgf@ya\pgf@y\after@ne@anchor\pgf@y\pgf@ya}%
\else%
\pgf@process{\before@ne@anchor}%
\ifdim\pgf@ya<\pgf@y%
\pgfpointintersectionoflines{\midpoint}{\midpoint\pgf@ya\pgf@y\before@ne@anchor\pgf@y\pgf@ya}%
{\before@sw@anchor\pgf@ya\pgf@y\before@ne@anchor\pgf@y\pgf@ya}%
{\before@ne@anchor}%
\else%
\pgfpointintersectionoflines{\midpoint}{\midpoint\pgf@ya\pgf@y\before@ne@anchor\pgf@y\pgf@ya}%
{\before@ne@anchor}%
{\after@ne@anchor}%
\fi%
\fi%
}%
\anchor{mid west}{%
\getchamferedrectanglepoints%
\midpoint%
\pgf@ya\pgf@y%
\pgf@process{\before@sw@anchor}%
\ifdim\pgf@ya<\pgf@y%
\pgfpointintersectionoflines{\midpoint}{\midpoint\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
{\before@sw@anchor}{\after@sw@anchor}%
\else%
\pgf@process{\before@ne@anchor\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
\ifdim\pgf@ya<\pgf@y%
\pgfpointintersectionoflines{\midpoint}{\midpoint\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
{\before@ne@anchor\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
{\before@sw@anchor}%
\else%
\pgfpointintersectionoflines{\midpoint}{\midpoint\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
{\before@ne@anchor\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
{\after@ne@anchor\pgf@ya\pgf@y\after@sw@anchor\pgf@y\pgf@ya}%
\fi%
\fi%
}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\getchamferedrectanglepoints%
\basepoint%
\pgf@ya\pgf@y%
\pgf@process{%
\before@sw@anchor%
\pgf@ya\pgf@y%
\before@ne@anchor%
\pgf@y\pgf@ya%
}%
\ifdim\pgf@ya<\pgf@y%
\pgfpointintersectionoflines{\basepoint}{\basepoint\pgf@ya\pgf@y\before@ne@anchor\pgf@y\pgf@ya}%
{\before@sw@anchor\pgf@ya\pgf@y\before@ne@anchor\pgf@y\pgf@ya}%
{\after@sw@anchor\pgf@ya\pgf@y\after@ne@anchor\pgf@y\pgf@ya}%
\else%
\pgf@process{\before@ne@anchor}%
\ifdim\pgf@ya<\pgf@y%
\pgfpointintersectionoflines{\basepoint}{\basepoint\pgf@ya\pgf@y\before@ne@anchor\pgf@y\pgf@ya}%
{\before@sw@anchor\pgf@ya\pgf@y\before@ne@anchor\pgf@y\pgf@ya}%
{\before@ne@anchor}%
\else%
\pgfpointintersectionoflines{\basepoint}{\basepoint\pgf@ya\pgf@y\before@ne@anchor\pgf@y\pgf@ya}%
{\before@ne@anchor}%
{\after@ne@anchor}%
\fi%
\fi%
}%
\anchor{base west}{%
\getchamferedrectanglepoints%
\basepoint%
\pgf@ya\pgf@y%
\pgf@process{\before@sw@anchor}%
\ifdim\pgf@ya<\pgf@y%
\pgfpointintersectionoflines{\basepoint}{\basepoint\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
{\before@sw@anchor}{\after@sw@anchor}%
\else%
\pgf@process{\before@ne@anchor\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
\ifdim\pgf@ya<\pgf@y%
\pgfpointintersectionoflines{\basepoint}{\basepoint\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
{\before@ne@anchor\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
{\before@sw@anchor}%
\else%
\pgfpointintersectionoflines{\basepoint}{\basepoint\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
{\before@ne@anchor\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
{\after@ne@anchor\pgf@ya\pgf@y\after@sw@anchor\pgf@y\pgf@ya}%
\fi%
\fi%
}%
\anchor{before north east}{\getchamferedrectanglepoints\before@ne@anchor}%
\anchor{north east}{\getchamferedrectanglepoints\ne@anchor}%
\anchor{after north east}{\getchamferedrectanglepoints\after@ne@anchor}%
\anchor{north}{%
\getchamferedrectanglepoints%
\centerpoint%
\pgf@xa\pgf@x%
\after@ne@anchor%
\pgf@x\pgf@xa}%
\anchor{before north west}{%
\getchamferedrectanglepoints%
\after@sw@anchor%
\pgf@xa\pgf@x%
\after@ne@anchor%
\pgf@x\pgf@xa}%
\anchor{north west}{\getchamferedrectanglepoints\nw@anchor}%
\anchor{after north west}{%
\getchamferedrectanglepoints%
\before@sw@anchor%
\pgf@xa\pgf@x%
\before@ne@anchor%
\pgf@x\pgf@xa}%
\anchor{west}{%
\getchamferedrectanglepoints%
\centerpoint%
\pgf@ya\pgf@y%
\before@sw@anchor%
\pgf@y\pgf@ya}%
\anchor{before south west}{\getchamferedrectanglepoints\before@sw@anchor}%
\anchor{south west}{\getchamferedrectanglepoints\sw@anchor}%
\anchor{after south west}{\getchamferedrectanglepoints\after@sw@anchor}%
\anchor{south}{%
\getchamferedrectanglepoints%
\centerpoint%
\pgf@xa\pgf@x%
\after@sw@anchor%
\pgf@x\pgf@xa}%
\anchor{before south east}{%
\getchamferedrectanglepoints%
\after@sw@anchor%
\pgf@ya\pgf@y%
\after@ne@anchor%
\pgf@y\pgf@ya}%
\anchor{south east}{\getchamferedrectanglepoints\se@anchor}%
\anchor{after south east}{%
\getchamferedrectanglepoints%
\before@sw@anchor%
\pgf@ya\pgf@y%
\before@ne@anchor%
\pgf@y\pgf@ya}%
\anchor{east}{%
\getchamferedrectanglepoints%
\centerpoint%
\pgf@ya\pgf@y%
\before@ne@anchor%
\pgf@y\pgf@ya}%
\backgroundpath{%
\pgfpathmoveto{\beforenortheast}%
\pgfpathlineto{\northeast}%
\pgfpathlineto{\afternortheast}%
\pgfpathlineto{\aftersouthwest\pgf@xa\pgf@x\afternortheast\pgf@x\pgf@xa}%
\pgfpathlineto{\northwest}%
\pgfpathlineto{\beforesouthwest\pgf@xa\pgf@x\beforenortheast\pgf@x\pgf@xa}%
\pgfpathlineto{\beforesouthwest}%
\pgfpathlineto{\southwest}%
\pgfpathlineto{\aftersouthwest}%
\pgfpathlineto{\aftersouthwest\pgf@ya\pgf@y\afternortheast\pgf@y\pgf@ya}%
\pgfpathlineto{\southeast}%
\pgfpathlineto{\beforesouthwest\pgf@ya\pgf@y\beforenortheast\pgf@y\pgf@ya}%
\pgfpathclose%
}%
\anchorborder{%
\pgfextract@process\externalpoint{%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\externalpoint}%
\let\externalangle\pgfmathresult%
\getchamferedrectanglepoints%
\pgfmathanglebetweenpoints{\centerpoint}{\centerpoint\pgf@ya\pgf@y\before@sw@anchor\pgf@y\pgf@ya}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\centerpoint}{\centerpoint\pgf@xa\pgf@x\after@ne@anchor\pgf@x\pgf@xa}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\centerpoint}{\ne@anchor}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\centerpoint}{\before@ne@anchor}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\centerpoint\pgf@ya\pgf@y\before@ne@anchor\pgf@y\pgf@ya}{\before@ne@anchor}%
\else%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\before@ne@anchor}{\ne@anchor}%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\after@ne@anchor}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\ne@anchor}{\after@ne@anchor}%
\else%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\after@ne@anchor}{\centerpoint\pgf@xa\pgf@x\after@ne@anchor\pgf@x\pgf@xa}%
\fi%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\nw@anchor}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\centerpoint}{\after@sw@anchor\pgf@xa\pgf@x\after@ne@anchor\pgf@x\pgf@xa}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\centerpoint\pgf@xa\pgf@x\after@ne@anchor\pgf@x\pgf@xa}%
{\after@sw@anchor\pgf@xa\pgf@x\after@ne@anchor\pgf@x\pgf@xa}%
\else%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\after@sw@anchor\pgf@xa\pgf@x\after@ne@anchor\pgf@x\pgf@xa}%
{\nw@anchor}%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\before@sw@anchor\pgf@xa\pgf@x\before@ne@anchor\pgf@x\pgf@xa}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\nw@anchor}{\before@sw@anchor\pgf@xa\pgf@x\before@ne@anchor\pgf@x\pgf@xa}%
\else%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\before@sw@anchor\pgf@xa\pgf@x\before@ne@anchor\pgf@x\pgf@xa}%
{\before@sw@anchor\pgf@xa\pgf@x\centerpoint\pgf@x\pgf@xa}%
\fi%
\fi%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\centerpoint\pgf@xa\pgf@x\after@sw@anchor\pgf@x\pgf@xa}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\centerpoint}{\sw@anchor}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\centerpoint}{\before@sw@anchor}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\before@sw@anchor\pgf@xa\pgf@x\centerpoint\pgf@x\pgf@xa}%
{\before@sw@anchor}%
\else%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\before@sw@anchor}{\sw@anchor}%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\after@sw@anchor}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\sw@anchor}{\after@sw@anchor}%
\else%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\after@sw@anchor}{\centerpoint\pgf@xa\pgf@x\after@sw@anchor\pgf@x\pgf@xa}%
\fi%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\se@anchor}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\centerpoint}{\after@ne@anchor\pgf@xa\pgf@x\after@sw@anchor\pgf@x\pgf@xa}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\after@ne@anchor\pgf@xa\pgf@x\after@sw@anchor\pgf@x\pgf@xa}%
{\centerpoint\pgf@xa\pgf@x\after@sw@anchor\pgf@x\pgf@xa}%
\else%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\after@ne@anchor\pgf@xa\pgf@x\after@sw@anchor\pgf@x\pgf@xa}{\se@anchor}
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\before@ne@anchor\pgf@xa\pgf@x\before@sw@anchor\pgf@x\pgf@xa}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\se@anchor}{\before@ne@anchor\pgf@xa\pgf@x\before@sw@anchor\pgf@x\pgf@xa}%
\else%
\pgfpointintersectionoflines{\centerpoint}{\externalpoint}%
{\before@ne@anchor\pgf@xa\pgf@x\before@sw@anchor\pgf@x\pgf@xa}%
{\centerpoint\pgf@ya\pgf@y\before@ne@anchor\pgf@y\pgf@ya}%
\fi%
\fi%
\fi%
\fi%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.misc.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex ====
\ProvidesFileRCS{pgflibraryshapes.multipart.code.tex}
\newbox\pgfnodepartlowerbox
\pgfdeclareshape{circle split}
{%
\nodeparts{text,lower}%
\savedanchor\centerpoint{%
\pgf@x=.5\wd\pgfnodeparttextbox%
\pgfmathsetlength{\pgf@y}{\pgfkeysvalueof{/pgf/inner ysep}}%
\pgf@y=-\pgf@y%
\advance\pgf@y by-\dp\pgfnodeparttextbox%
\advance\pgf@y by-.5\pgflinewidth%
}%
\savedanchor\loweranchor{%
\pgf@x=-.5\wd\pgfnodepartlowerbox%
\advance\pgf@x by.5\wd\pgfnodeparttextbox%
\pgfmathsetlength{\pgf@y}{\pgfkeysvalueof{/pgf/inner ysep}}%
\pgf@y=-2\pgf@y%
\advance\pgf@y by-\ht\pgfnodepartlowerbox%
\advance\pgf@y by-.5\pgflinewidth%
\advance\pgf@y by-\dp\pgfnodeparttextbox%
\advance\pgf@y by-.5\pgflinewidth%
}%
\saveddimen\radius{%
\pgf@ya=.5\ht\pgfnodeparttextbox%
\advance\pgf@ya by.5\dp\pgfnodeparttextbox%
\pgf@yb=.5\ht\pgfnodepartlowerbox%
\advance\pgf@yb by.5\dp\pgfnodepartlowerbox%
\ifdim\pgf@ya>\pgf@yb\relax%
\pgf@ya2.0\pgf@ya\relax%
\else%
\pgf@ya2.0\pgf@yb\relax%
\fi%
\advance\pgf@ya by.5\pgflinewidth%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@ya by2\pgf@yb%
\pgf@xa=.5\wd\pgfnodeparttextbox%
\ifdim\pgf@xa<.5\wd\pgfnodepartlowerbox%
\pgf@xa=.5\wd\pgfnodepartlowerbox%
\fi%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@xa by\pgf@xb%
\pgf@process{\pgfpointnormalised{\pgfqpoint{\pgf@xa}{\pgf@ya}}}%
\ifdim\pgf@x>\pgf@y%
\c@pgf@counta=\pgf@x%
\ifnum\c@pgf@counta=0\relax%
\else%
\divide\c@pgf@counta by 255\relax%
\pgf@xa=16\pgf@xa\relax%
\divide\pgf@xa by\c@pgf@counta%
\pgf@xa=16\pgf@xa\relax%
\fi%
\else%
\c@pgf@counta=\pgf@y%
\ifnum\c@pgf@counta=0\relax%
\else%
\divide\c@pgf@counta by 255\relax%
\pgf@ya=16\pgf@ya\relax%
\divide\pgf@ya by\c@pgf@counta%
\pgf@xa=16\pgf@ya\relax%
\fi%
\fi%
\pgf@x=\pgf@xa%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/minimum width}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@x<.5\pgf@xb%
\pgf@x=.5\pgf@xb%
\fi%
\ifdim\pgf@x<.5\pgf@yb%
\pgf@x=.5\pgf@yb%
\fi%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xb<\pgf@yb%
\advance\pgf@x by\pgf@yb%
\else%
\advance\pgf@x by\pgf@xb%
\fi%
}%
\inheritanchorborder[from=circle]%
\inheritanchor[from=circle]{north}%
\inheritanchor[from=circle]{north west}%
\inheritanchor[from=circle]{north east}%
\inheritanchor[from=circle]{center}%
\inheritanchor[from=circle]{west}%
\inheritanchor[from=circle]{east}%
\inheritanchor[from=circle]{mid}%
\inheritanchor[from=circle]{mid west}%
\inheritanchor[from=circle]{mid east}%
\inheritanchor[from=circle]{base}%
\inheritanchor[from=circle]{base west}%
\inheritanchor[from=circle]{base east}%
\inheritanchor[from=circle]{south}%
\inheritanchor[from=circle]{south west}%
\inheritanchor[from=circle]{south east}%
\anchor{lower}{\loweranchor}%
\inheritbackgroundpath[from=circle]%
\beforebackgroundpath{
\pgfutil@tempdima=\radius%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xb<\pgf@yb%
\advance\pgfutil@tempdima by-\pgf@yb%
\else%
\advance\pgfutil@tempdima by-\pgf@xb%
\fi%
\advance\pgfutil@tempdima by-.5\pgflinewidth%
\pgfsetshortenstart{0pt}%
\pgfsetshortenend{0pt}%
\pgfsetarrows{-}%
\pgfpathmoveto{\pgfpointadd{\centerpoint}{\pgfqpoint{-1\pgfutil@tempdima}{0pt}}}%
\pgfpathlineto{\pgfpointadd{\centerpoint}{\pgfqpoint{\pgfutil@tempdima}{0pt}}}%
\pgfusepath{stroke}%
}%
}%
\pgfdeclareshape{circle solidus}{%
\nodeparts{text,lower}%
\savedanchor\centerpoint{%
\pgf@x=0.5\wd\pgfnodeparttextbox%
\advance\pgf@x by0.5\dp\pgfnodeparttextbox%
\advance\pgf@x by0.5\ht\pgfnodeparttextbox%
\pgf@y=-\pgf@x%
\advance\pgf@y by\ht\pgfnodeparttextbox%
\advance\pgf@x by0.3536\pgflinewidth%
\advance\pgf@y by-0.3536\pgflinewidth%
\pgfmathsetlength{\pgf@xa}{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x by\pgf@xa%
\pgfmathsetlength{\pgf@ya}{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y by-\pgf@ya%
}%
\savedanchor\loweranchor{%
\pgf@x=0.5\wd\pgfnodeparttextbox%
\advance\pgf@x by0.5\dp\pgfnodeparttextbox%
\advance\pgf@x by0.5\ht\pgfnodeparttextbox%
\pgf@y=-\pgf@x%
\advance\pgf@y by\ht\pgfnodeparttextbox%
\advance\pgf@x by0.5\ht\pgfnodepartlowerbox%
\advance\pgf@x by0.5\dp\pgfnodepartlowerbox%
\advance\pgf@x by-0.5\wd\pgfnodepartlowerbox%
\advance\pgf@y by-0.5\ht\pgfnodepartlowerbox%
\advance\pgf@y by0.5\dp\pgfnodepartlowerbox%
\advance\pgf@y by-0.5\wd\pgfnodepartlowerbox%
\advance\pgf@x by0.7071\pgflinewidth%
\advance\pgf@y by-0.7071\pgflinewidth%
\pgfmathsetlength{\pgf@xa}{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x by2\pgf@xa%
\pgfmathsetlength{\pgf@ya}{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y by-2\pgf@ya%
}%
\saveddimen\radius{%
\pgf@x=\ht\pgfnodeparttextbox%
\advance\pgf@x by\dp\pgfnodeparttextbox%
\advance\pgf@x by\wd\pgfnodeparttextbox%
\pgf@y=\ht\pgfnodepartlowerbox%
\advance\pgf@y by\dp\pgfnodepartlowerbox%
\advance\pgf@y by\wd\pgfnodepartlowerbox%
\ifdim\pgf@x<\pgf@y%
\pgf@x=\pgf@y%
\fi%
\pgf@x=0.7071\pgf@x%
\advance\pgf@x by0.5\pgflinewidth%
\pgfmathsetlength{\pgf@xa}{\pgfkeysvalueof{/pgf/inner xsep}}%
\pgfmathsetlength{\pgf@ya}{\pgfkeysvalueof{/pgf/inner ysep}}%
\pgfmathaddtolength{\pgf@x}{veclen(2\pgf@xa,2\pgf@ya)}%
\pgfmathsetlength{\pgf@xa}{\pgfkeysvalueof{/pgf/minimum width}}%
\pgfmathsetlength{\pgf@ya}{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@x<.5\pgf@xa%
\pgf@x=.5\pgf@xa%
\fi%
\ifdim\pgf@x<.5\pgf@ya%
\pgf@x=.5\pgf@ya%
\fi%
\pgfmathsetlength{\pgf@xa}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@ya}{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xa<\pgf@ya%
\advance\pgf@x by\pgf@ya%
\else%
\advance\pgf@x by\pgf@xa%
\fi%
}%
\inheritanchorborder[from=circle]%
\inheritanchor[from=circle]{north}%
\inheritanchor[from=circle]{north west}%
\inheritanchor[from=circle]{north east}%
\inheritanchor[from=circle]{center}%
\inheritanchor[from=circle]{west}%
\inheritanchor[from=circle]{east}%
\inheritanchor[from=circle]{mid}%
\inheritanchor[from=circle]{mid west}%
\inheritanchor[from=circle]{mid east}%
\inheritanchor[from=circle]{base}%
\inheritanchor[from=circle]{base west}%
\inheritanchor[from=circle]{base east}%
\inheritanchor[from=circle]{south}%
\inheritanchor[from=circle]{south west}%
\inheritanchor[from=circle]{south east}%
\anchor{lower}{\loweranchor}%
\inheritbackgroundpath[from=circle]%
\beforebackgroundpath{%
\pgfutil@tempdima=\radius%
\pgfmathsetlength{\pgf@xa}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@ya}{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xa<\pgf@ya%
\advance\pgfutil@tempdima by-\pgf@ya%
\else%
\advance\pgfutil@tempdima by-\pgf@xa%
\fi%
\advance\pgfutil@tempdima by-.5\pgflinewidth%
\pgfsetshortenstart{0pt}%
\pgfsetshortenend{0pt}%
\pgfsetarrows{-}%
\pgfpathmoveto{\pgfpointadd{\centerpoint}{\pgfqpoint{-0.437\pgfutil@tempdima}{-0.437\pgfutil@tempdima}}}%
\pgfpathlineto{\pgfpointadd{\centerpoint}{\pgfqpoint{0.437\pgfutil@tempdima}{0.437\pgfutil@tempdima}}}%
\pgfusepath{stroke}%
}%
}%
\def\pgf@lib@sh@newbox{\csname newbox\endcsname}%
\def\pgf@lib@sh@toalpha#1{%
\ifcase#1\relax%
\or one\or two\or three\or four\or five\or six\or seven\or eight\or nine\or ten%
\or eleven\or twelve\or thirteen\or fourteen\or fifteen%
\or sixteen\or seventeen\or eighteen\or nineteen\or twenty%
\else%
twenty%
\fi%
}%
\def\pgf@lib@sh@getalpha#1#2{\expandafter\edef\expandafter#1\expandafter{\pgf@lib@sh@toalpha{#2}}}%
\newbox\pgfnodeparttwobox
\newbox\pgfnodepartthreebox
\newbox\pgfnodepartfourbox
\let\pgfnodepartonebox=\pgfnodeparttextbox
\let\pgfnodepartsecondbox=\pgfnodeparttwobox
\let\pgfnodepartthirdbox=\pgfnodepartthreebox
\let\pgfnodepartfourthbox=\pgfnodepartfourbox
\def\pgf@lib@sh@allocateboxes#1{%
\c@pgf@counta=#1\relax%
\pgfmathloop%
\ifnum\c@pgf@counta>4\relax%
\pgfutil@ifundefined{pgfnodepart\pgf@lib@sh@toalpha{\c@pgf@counta}box}%
{%
\expandafter\pgf@lib@sh@newbox\csname pgfnodepart\pgf@lib@sh@toalpha{\c@pgf@counta}box\endcsname%
}%
{}%
\advance\c@pgf@counta by-1\relax%
\repeatpgfmathloop%
}%
\def\pgf@lib@sh@rs@lefttext{left}%
\def\pgf@lib@sh@rs@righttext{right}%
\def\pgf@lib@sh@rs@centertext{center}%
\def\pgf@lib@sh@rs@bottomtext{bottom}%
\def\pgf@lib@sh@rs@toptext{top}%
\def\pgf@lib@sh@rs@basetext{base}%
\def\pgf@lib@sh@rs@nonetext{none}%
\newif\ifpgfrectanglesplithorizontal
\newif\ifpgfrectanglesplitdrawsplits\pgfrectanglesplitdrawsplitstrue
\newif\ifpgfrectanglesplitignoreemptyparts
\newif\ifpgfrectanglesplitusecustomfill
\let\pgf@lib@sh@rs@every@emptypart=\pgfutil@empty
\let\pgf@lib@sh@rs@every@part=\pgfutil@empty
\def\pgf@lib@sh@rs@list@fill{none}%
\pgfkeys{/pgf/.cd,
rectangle split parts/.initial=4,
rectangle split part align/.initial=center,
rectangle split horizontal/.is if=pgfrectanglesplithorizontal,
rectangle split ignore empty parts/.is if=pgfrectanglesplitignoreemptyparts,
rectangle split empty part width/.code={%
\pgfmathsetlength\pgf@x{#1}
\edef\pgf@lib@sh@rs@temp{\noexpand\vrule width\the\pgf@x height0ptdepth0pt\relax}%
\def\pgf@lib@sh@rs@@temp{\def\pgf@lib@sh@rs@every@emptypart}%
\expandafter\expandafter\expandafter\pgf@lib@sh@rs@@temp\expandafter\expandafter\expandafter{%
\expandafter\pgf@lib@sh@rs@every@emptypart\pgf@lib@sh@rs@temp}%
},%
rectangle split empty part width=1ex,
rectangle split empty part height/.code={%
\pgfmathsetlength\pgf@x{#1}
\edef\pgf@lib@sh@rs@temp{\noexpand\vrule width0ptheight\the\pgf@x depth0pt\relax}%
\def\pgf@lib@sh@rs@@temp{\def\pgf@lib@sh@rs@every@emptypart}%
\expandafter\expandafter\expandafter\pgf@lib@sh@rs@@temp\expandafter\expandafter\expandafter{%
\expandafter\pgf@lib@sh@rs@every@emptypart\pgf@lib@sh@rs@temp}%
},%
rectangle split empty part height=1ex,
rectangle split empty part depth/.code={%
\pgfmathsetlength\pgf@x{#1}
\edef\pgf@lib@sh@rs@temp{\noexpand\vrule width0ptheight0ptdepth\the\pgf@x\relax}%
\def\pgf@lib@sh@rs@@temp{\def\pgf@lib@sh@rs@every@emptypart}%
\expandafter\expandafter\expandafter\pgf@lib@sh@rs@@temp\expandafter\expandafter\expandafter{%
\expandafter\pgf@lib@sh@rs@every@emptypart\pgf@lib@sh@rs@temp}%
},%
rectangle split empty part depth=0ex,
rectangle split every empty part/.store in=\pgf@lib@sh@rs@every@emptypart,
rectangle split part fill/.code=\def\pgf@lib@sh@rs@list@fill{#1}\pgfrectanglesplitusecustomfilltrue,
rectangle split uses custom fill/.is if=pgfrectanglesplitusecustomfill,
rectangle split draw splits/.is if=pgfrectanglesplitdrawsplits,
rectangle split allocate boxes/.code=\pgf@lib@sh@allocateboxes{#1},
}%
\def\pgf@lib@sh@rs@process@list#1#2{%
\c@pgf@counta=1\relax%
\c@pgf@countb=#2\relax%
\edef\pgf@lib@sh@rs@temp{#1}%
\expandafter\pgf@lib@sh@rs@@process@list\pgf@lib@sh@rs@temp,\pgf@stop,
}%
\def\pgf@lib@sh@rs@@process@list{%
\pgfutil@ifnextchar x{\pgf@lib@sh@rs@@@process@list}%
{\pgf@lib@sh@rs@@@process@list}
}%
\def\pgf@lib@sh@rs@@@process@list#1,{%
\ifx#1\pgf@stop%
\let\pgf@next\pgf@lib@sh@rs@@@@process@list%
\else%
\pgf@lib@sh@getalpha\pgf@lib@sh@rs@number{\c@pgf@counta}%
\def\pgf@lib@sh@rs@lastalign{#1}%
\pgfutil@namedef{pgf@lib@sh@rs@\pgf@lib@sh@toalpha{\c@pgf@counta}@item}{#1}%
\let\pgf@next\pgf@lib@sh@rs@@process@list%
\advance\c@pgf@counta by1\relax%
\fi%
\pgf@next}%
\def\pgf@lib@sh@rs@@@@process@list{%
\pgfmathloop%
\ifnum\c@pgf@counta>\c@pgf@countb%
\else%
\expandafter\edef\csname pgf@lib@sh@rs@\pgf@lib@sh@toalpha{\c@pgf@counta}@item\endcsname%
{\pgf@lib@sh@rs@lastalign}%
\advance\c@pgf@counta by1\relax%
\repeatpgfmathloop%
}%
\pgf@lib@sh@allocateboxes{20}%
\pgfdeclareshape{rectangle split}{%
\savedmacro\rectanglesplitparameters{%
\pgfmathsetcount\c@pgf@counta{\pgfkeysvalueof{/pgf/rectangle split parts}}%
\edef\parts{\the\c@pgf@counta}%
\addtosavedmacro\parts%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\edef\innerxsep{\the\pgf@x}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\edef\innerysep{\the\pgf@y}%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\edef\outerxsep{\the\pgf@x}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\edef\outerysep{\the\pgf@y}%
\addtosavedmacro\outerxsep%
\addtosavedmacro\outerysep%
\pgf@x=0pt\relax%
\pgf@y=0pt\relax%
\pgfutil@tempdima=0pt\relax%
\pgfutil@tempdimb=0pt\relax%
\pgfmathloop%
\ifnum\pgfmathcounter>\parts%
\else%
\pgf@lib@sh@getalpha\pgf@lib@sh@rs@number{\pgfmathcounter}%
\expandafter\let\expandafter\pgf@lib@sh@box\expandafter=%
\csname pgfnodepart\pgf@lib@sh@rs@number box\endcsname%
\pgf@xa=\wd\pgf@lib@sh@box%
\pgf@ya=\ht\pgf@lib@sh@box%
\pgf@yb=\dp\pgf@lib@sh@box%
\expandafter\def\csname pgf@lib@sh@rs@empty@\pgf@lib@sh@rs@number\endcsname{\relax}%
\ifdim\pgf@xa=0pt\relax%
\ifdim\pgf@ya=0pt\relax%
\ifdim\pgf@yb=0pt\relax%
\ifpgfrectanglesplitignoreemptyparts%
\expandafter\let\csname pgf@lib@sh@rs@empty@\pgf@lib@sh@rs@number\endcsname=\pgfutil@empty%
\else%
\setbox\pgf@lib@sh@box=\hbox{{\pgf@lib@sh@rs@every@emptypart}}%
\pgf@xa=\wd\pgf@lib@sh@box%
\pgf@ya=\ht\pgf@lib@sh@box%
\pgf@yb=\dp\pgf@lib@sh@box%
\fi%
\fi%
\fi%
\fi%
\expandafter\edef\csname pgf@lib@sh@rs@width@\pgf@lib@sh@rs@number\endcsname{\the\pgf@xa}%
\expandafter\edef\csname pgf@lib@sh@rs@height@\pgf@lib@sh@rs@number\endcsname{\the\pgf@ya}%
\expandafter\edef\csname pgf@lib@sh@rs@depth@\pgf@lib@sh@rs@number\endcsname{\the\pgf@yb}%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@empty@\pgf@lib@sh@rs@number\endcsname%
\ifdim\pgf@xa>\pgf@x%
\pgf@x=\pgf@xa%
\fi%
\ifdim\pgf@ya>\pgfutil@tempdima%
\pgfutil@tempdima=\pgf@ya%
\fi%
\ifdim\pgf@yb>\pgfutil@tempdimb%
\pgfutil@tempdimb=\pgf@yb%
\fi%
\pgf@yc=\pgfutil@tempdima%
\advance\pgf@yc by\pgfutil@tempdimb%
\ifdim\pgf@yc>\pgf@y%
\pgf@y=\pgf@yc%
\fi%
\repeatpgfmathloop%
\edef\pgf@lib@sh@rs@max@width{\the\pgf@x}%
\edef\pgf@lib@sh@rs@max@totalheight{\the\pgf@y}%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/minimum width}}%
\advance\pgf@x by-\innerxsep\relax%
\advance\pgf@x by-\innerxsep\relax%
\pgf@xa=\pgf@x%
\advance\pgf@xa by-\pgf@lib@sh@rs@max@width\relax%
\ifdim\pgf@xa>0pt\relax%
\edef\pgf@lib@sh@rs@max@width{\the\pgf@x}%
\fi%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/minimum height}}%
\advance\pgf@y by-\innerysep\relax%
\advance\pgf@y by-\innerysep\relax%
\pgf@ya=\pgf@y%
\advance\pgf@ya by-\pgf@lib@sh@rs@max@totalheight\relax%
\ifdim\pgf@ya>0pt\relax%
\edef\pgf@lib@sh@rs@max@totalheight{\the\pgf@y}%
\fi%
\pgf@lib@sh@rs@process@list{\pgfkeysvalueof{/pgf/rectangle split part align}}{\parts}%
\ifpgfrectanglesplithorizontal%
\pgf@x=0pt\relax%
\pgfmathloop%
\ifnum\pgfmathcounter>\parts%
\else%
\pgf@lib@sh@getalpha\pgf@lib@sh@rs@number{\pgfmathcounter}%
\expandafter\let\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname=\pgfutil@empty%
\expandafter\ifx\csname pgf@lib@sh@rs@empty@\pgf@lib@sh@rs@number\endcsname\pgfutil@empty%
\ifpgfrectanglesplitignoreemptyparts%
\expandafter\let\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname=%
\pgf@lib@sh@rs@lastanchor%
\fi%
\fi%
\expandafter\ifx\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname\pgfutil@empty%
\expandafter\ifx\csname pgf@lib@sh@rs@\pgf@lib@sh@rs@number @item\endcsname%
\pgf@lib@sh@rs@bottomtext%
\pgf@y=\csname pgf@lib@sh@rs@depth@\pgf@lib@sh@rs@number\endcsname\relax%
\else%
\expandafter\ifx\csname pgf@lib@sh@rs@\pgf@lib@sh@rs@number @item\endcsname%
\pgf@lib@sh@rs@toptext%
\pgf@y=-\csname pgf@lib@sh@rs@height@\pgf@lib@sh@rs@number\endcsname\relax%
\advance\pgf@y by\pgf@lib@sh@rs@max@totalheight\relax%
\else%
\expandafter\ifx\csname pgf@lib@sh@rs@\pgf@lib@sh@rs@number @item\endcsname%
\pgf@lib@sh@rs@basetext%
\pgf@y=\pgf@lib@sh@rs@max@totalheight\relax%
\advance\pgf@y by-\pgfutil@tempdima%
\advance\pgf@y by\pgfutil@tempdimb%
\divide\pgf@y by2\relax%
\else%
\pgf@y=\pgf@lib@sh@rs@max@totalheight\relax%
\advance\pgf@y by-\csname pgf@lib@sh@rs@height@\pgf@lib@sh@rs@number\endcsname\relax%
\advance\pgf@y by\csname pgf@lib@sh@rs@depth@\pgf@lib@sh@rs@number\endcsname\relax%
\divide\pgf@y by2\relax%
\fi%
\fi%
\fi%
\ifnum\pgfmathcounter=1\relax%
\edef\pgf@lib@sh@rs@yoffset{\the\pgf@y}%
\pgf@y=0pt\relax%
\pgfextract@process\pgf@lib@sh@rs@anchor@one{}%
\addtosavedmacro\pgf@lib@sh@rs@anchor@one%
\let\pgf@lib@sh@rs@lastanchor=\pgf@lib@sh@rs@anchor@one%
\let\pgf@lib@sh@rs@lastnumber=\pgf@lib@sh@rs@number%
\else
\advance\pgf@y by-\pgf@lib@sh@rs@yoffset\relax%
\advance\pgf@x by\csname pgf@lib@sh@rs@width@\pgf@lib@sh@rs@lastnumber\endcsname\relax%
\advance\pgf@x by\innerxsep\relax%
\advance\pgf@x by\pgflinewidth%
\advance\pgf@x by\innerxsep\relax%
\expandafter\pgfextract@process\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname{}%
\expandafter\let\expandafter\pgf@lib@sh@rs@lastanchor\expandafter=%
\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname%
\let\pgf@lib@sh@rs@lastnumber=\pgf@lib@sh@rs@number%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname%
\fi%
\fi%
\repeatpgfmathloop%
\pgfextract@process\northeast{%
\pgf@lib@sh@rs@lastanchor%
\advance\pgf@x by\csname pgf@lib@sh@rs@width@\pgf@lib@sh@rs@lastnumber\endcsname\relax%
\advance\pgf@x by\innerxsep\relax%
\advance\pgf@x by\outerxsep\relax%
\pgf@y=\pgf@lib@sh@rs@max@totalheight\relax%
\advance\pgf@y by-\pgf@lib@sh@rs@yoffset\relax%
\advance\pgf@y by\innerysep\relax%
\advance\pgf@y by\outerysep\relax%
}%
\addtosavedmacro\northeast%
\pgfextract@process\southwest{%
\pgf@lib@sh@rs@anchor@one%
\advance\pgf@x by-\innerxsep\relax%
\advance\pgf@x by-\outerxsep\relax%
\pgf@y=-\pgf@lib@sh@rs@yoffset\relax%
\advance\pgf@y by-\innerysep\relax%
\advance\pgf@y by-\outerysep\relax%
}%
\addtosavedmacro\southwest%
\pgfextract@process\centerpoint{%
\pgfpointadd{\southwest}{\northeast}%
\divide\pgf@x by2\relax%
\divide\pgf@y by2\relax%
}%
\addtosavedmacro\centerpoint%
\pgfmathloop%
\ifnum\pgfmathcounter>\parts%
\else%
\pgf@lib@sh@getalpha\pgf@lib@sh@rs@number{\pgfmathcounter}%
\expandafter\ifx\csname pgf@lib@sh@rs@empty@\pgf@lib@sh@rs@number\endcsname\pgfutil@empty%
\else%
\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname%
\pgf@xa=\pgf@x%
\pgf@xb=\csname pgf@lib@sh@rs@width@\pgf@lib@sh@rs@number\endcsname\relax%
\advance\pgf@xa by0.5\pgf@xb%
\expandafter\pgfextract@process\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @south\endcsname{%
\southwest%
\pgf@x=\pgf@xa%
}%
\expandafter\pgfextract@process\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @north\endcsname{%
\northeast%
\pgf@x=\pgf@xa%
}%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @north\endcsname%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @south\endcsname%
\ifnum\pgfmathcounter=\parts%
\else%
\advance\pgf@xa by0.5\pgf@xb%
\advance\pgf@xa by\innerxsep\relax%
\advance\pgf@xa by.5\pgflinewidth%
\expandafter\pgfextract@process\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split@south\endcsname{%
\southwest%
\pgf@x=\pgf@xa%
}%
\expandafter\pgfextract@process\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split@north\endcsname{%
\northeast%
\pgf@x=\pgf@xa%
}%
\expandafter\pgfextract@process\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split\endcsname{%
\centerpoint%
\pgf@x=\pgf@xa%
}%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split@north\endcsname%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split@south\endcsname%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split\endcsname%
\fi%
\fi%
\repeatpgfmathloop%
\else%
\pgf@y=0pt\relax%
\pgfmathloop%
\ifnum\pgfmathcounter>\parts%
\else%
\pgf@lib@sh@getalpha\pgf@lib@sh@rs@number{\pgfmathcounter}%
\expandafter\let\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname=\pgfutil@empty%
\expandafter\ifx\csname pgf@lib@sh@rs@empty@\pgf@lib@sh@rs@number\endcsname\pgfutil@empty%
\ifpgfrectanglesplitignoreemptyparts%
\expandafter\let\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname=%
\pgf@lib@sh@rs@lastanchor%
\fi%
\fi%
\expandafter\ifx\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname\pgfutil@empty%
\expandafter\ifx\csname pgf@lib@sh@rs@\pgf@lib@sh@rs@number @item\endcsname%
\pgf@lib@sh@rs@lefttext%
\pgf@x=0pt\relax%
\else%
\expandafter\ifx\csname pgf@lib@sh@rs@\pgf@lib@sh@rs@number @item\endcsname%
\pgf@lib@sh@rs@righttext%
\pgf@x=-\csname pgf@lib@sh@rs@width@\pgf@lib@sh@rs@number\endcsname\relax%
\advance\pgf@x by\pgf@lib@sh@rs@max@width\relax%
\else%
\pgf@x=-\csname pgf@lib@sh@rs@width@\pgf@lib@sh@rs@number\endcsname\relax%
\advance\pgf@x by\pgf@lib@sh@rs@max@width\relax%
\divide\pgf@x by2\relax%
\fi%
\fi%
\ifnum\pgfmathcounter=1\relax%
\edef\pgf@lib@sh@rs@xoffset{\the\pgf@x}%
\pgf@x=0pt\relax%
\pgfextract@process\pgf@lib@sh@rs@anchor@one{}%
\addtosavedmacro\pgf@lib@sh@rs@anchor@one%
\let\pgf@lib@sh@rs@lastanchor=\pgf@lib@sh@rs@anchor@one%
\let\pgf@lib@sh@rs@lastnumber=\pgf@lib@sh@rs@number%
\else
\advance\pgf@x by-\pgf@lib@sh@rs@xoffset\relax%
\advance\pgf@y by-\csname pgf@lib@sh@rs@depth@\pgf@lib@sh@rs@lastnumber\endcsname\relax%
\advance\pgf@y by-\innerysep\relax%
\advance\pgf@y by-\pgflinewidth%
\advance\pgf@y by-\innerysep\relax%
\advance\pgf@y by-\csname pgf@lib@sh@rs@height@\pgf@lib@sh@rs@number\endcsname\relax%
\expandafter\pgfextract@process\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname{}%
\expandafter\let\expandafter\pgf@lib@sh@rs@lastanchor\expandafter=%
\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname%
\let\pgf@lib@sh@rs@lastnumber=\pgf@lib@sh@rs@number%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname%
\fi%
\fi%
\repeatpgfmathloop%
\pgfextract@process\northeast{%
\pgf@x=\pgf@lib@sh@rs@max@width\relax%
\advance\pgf@x by-\pgf@lib@sh@rs@xoffset\relax%
\advance\pgf@x by\innerxsep\relax%
\advance\pgf@x by\outerxsep\relax%
\pgf@y=\pgf@lib@sh@rs@height@one\relax%
\advance\pgf@y by\innerysep\relax%
\advance\pgf@y by\outerysep\relax%
\advance\pgf@y by.5\pgflinewidth%
}%
\addtosavedmacro\northeast%
\pgfextract@process\southwest{%
\pgf@lib@sh@rs@lastanchor%
\pgf@x=-\pgf@lib@sh@rs@xoffset\relax%
\advance\pgf@x by-\innerxsep\relax%
\advance\pgf@x by-\outerxsep\relax%
\advance\pgf@y by-\csname pgf@lib@sh@rs@depth@\pgf@lib@sh@rs@lastnumber\endcsname\relax%
\advance\pgf@y by-\innerysep\relax%
\advance\pgf@y by-\outerysep\relax%
\advance\pgf@y by-.5\pgflinewidth%
}%
\addtosavedmacro\southwest%
\pgfextract@process\centerpoint{%
\pgfpointadd{\southwest}{\northeast}%
\divide\pgf@x by2\relax%
\divide\pgf@y by2\relax%
}%
\addtosavedmacro\centerpoint%
\pgfmathloop%
\ifnum\pgfmathcounter>\parts%
\else%
\pgf@lib@sh@getalpha\pgf@lib@sh@rs@number{\pgfmathcounter}%
\expandafter\ifx\csname pgf@lib@sh@rs@empty@\pgf@lib@sh@rs@number\endcsname\pgfutil@empty%
\else%
\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname%
\pgf@ya=\csname pgf@lib@sh@rs@height@\pgf@lib@sh@rs@number\endcsname\relax%
\advance\pgf@y by0.5\pgf@ya%
\pgf@ya=\csname pgf@lib@sh@rs@depth@\pgf@lib@sh@rs@number\endcsname\relax%
\advance\pgf@y by-0.5\pgf@ya%
\pgf@ya=\pgf@y%
\expandafter\pgfextract@process\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @west\endcsname{%
\southwest%
\pgf@y=\pgf@ya%
}%
\expandafter\pgfextract@process\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @east\endcsname{%
\northeast%
\pgf@y=\pgf@ya%
}%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @east\endcsname%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @west\endcsname%
\ifnum\pgfmathcounter=\parts%
\else%
\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number\endcsname%
\pgf@ya=\pgf@y%
\advance\pgf@ya by-\csname pgf@lib@sh@rs@depth@\pgf@lib@sh@rs@number\endcsname\relax%
\advance\pgf@ya by-\innerysep\relax%
\advance\pgf@ya by-.5\pgflinewidth%
\expandafter\pgfextract@process\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split@west\endcsname{%
\southwest%
\pgf@y=\pgf@ya%
}%
\expandafter\pgfextract@process\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split@east\endcsname{%
\northeast%
\pgf@y=\pgf@ya%
}%
\expandafter\pgfextract@process\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split\endcsname{%
\centerpoint%
\pgf@y=\pgf@ya%
}%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split@east\endcsname%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split@west\endcsname%
\expandafter\addtosavedmacro\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split\endcsname%
\fi%
\fi%
\repeatpgfmathloop%
\fi%
}%
\savedanchor\basepoint{%
\pgf@x=0.5\wd\pgfnodeparttextbox%
\pgf@y=0pt\relax%
}%
\savedanchor\midpoint{%
\pgf@x=0.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\anchor{center}{%
\rectanglesplitparameters%
\centerpoint%
}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\rectanglesplitparameters%
\northeast%
\pgf@y=0pt\relax%
}%
\anchor{base west}{%
\rectanglesplitparameters%
\southwest%
\pgf@y=0pt\relax%
}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\rectanglesplitparameters%
\northeast%
\pgf@xa=\pgf@x%
\midpoint%
\pgf@x=\pgf@xa%
}%
\anchor{mid west}{%
\rectanglesplitparameters%
\southwest%
\pgf@xa=\pgf@x%
\midpoint%
\pgf@x=\pgf@xa%
}%
\anchor{north}{%
\rectanglesplitparameters%
\centerpoint%
\pgf@xa=\pgf@x%
\northeast%
\pgf@x=\pgf@xa%
}%
\anchor{south}{%
\rectanglesplitparameters%
\centerpoint%
\pgf@xa=\pgf@x%
\southwest%
\pgf@x=\pgf@xa%
}%
\anchor{east}{%
\rectanglesplitparameters%
\centerpoint%
\pgf@ya=\pgf@y%
\northeast%
\pgf@y=\pgf@ya%
}%
\anchor{west}{%
\rectanglesplitparameters%
\centerpoint%
\pgf@ya=\pgf@y%
\southwest%
\pgf@y=\pgf@ya%
}%
\anchor{north east}{%
\rectanglesplitparameters%
\northeast%
}%
\anchor{north west}{%
\rectanglesplitparameters%
\northeast%
\pgf@ya=\pgf@y%
\southwest%
\pgf@y=\pgf@ya%
}%
\anchor{south west}{%
\rectanglesplitparameters%
\southwest%
}%
\anchor{south east}{%
\rectanglesplitparameters%
\southwest%
\pgf@ya=\pgf@y%
\northeast%
\pgf@y=\pgf@ya%
}%
\behindbackgroundpath{%
\ifpgfrectanglesplitusecustomfill%
\pgf@lib@sh@rs@process@list{\pgf@lib@sh@rs@list@fill}{\parts}%
{%
\ifpgfrectanglesplithorizontal%
\expandafter\let\expandafter\pgf@lib@sh@rs@fill@bottomleft\expandafter=%
\csname pgf@anchor@rectangle split@south west\endcsname%
\pgfmathloop%
\ifnum\pgfmathcounter>\parts%
\else%
\pgf@lib@sh@getalpha\pgf@lib@sh@rs@number{\pgfmathcounter}%
\ifnum\pgfmathcounter=\parts%
\expandafter\let\expandafter\pgf@lib@sh@rs@fill@topright\expandafter=%
\csname pgf@anchor@rectangle split@north east\endcsname%
\else%
\expandafter\let\expandafter\pgf@lib@sh@rs@fill@topright\expandafter=%
\csname pgf@anchor@rectangle split@\pgf@lib@sh@rs@number\space split north\endcsname%
\fi%
\expandafter\ifx\csname pgf@lib@sh@rs@empty@\pgf@lib@sh@rs@number\endcsname\pgfutil@empty%
\else%
\expandafter\ifx\csname pgf@lib@sh@rs@\pgf@lib@sh@rs@number @item\endcsname\pgf@lib@sh@rs@nonetext%
\else%
\pgfextract@process\pgf@lib@sh@rs@fill@bottomleft{%
\pgf@lib@sh@rs@fill@bottomleft%
\advance\pgf@y by\outerysep\relax%
\ifnum\pgfmathcounter=1\relax%
\advance\pgf@x by\outerxsep\relax%
\fi%
}%
\pgfextract@process\pgf@lib@sh@rs@fill@topright{%
\pgf@lib@sh@rs@fill@topright%
\advance\pgf@y by-\outerysep\relax%
\ifnum\pgfmathcounter=\parts\relax%
\advance\pgf@x by-\outerxsep\relax%
\fi%
}%
\ifnum\pgfmathcounter>1\relax%
\begingroup\pgfsetcornersarced{\pgfpointorigin}%
\fi%
\pgfpathmoveto{%
\pgf@lib@sh@rs@fill@topright%
\pgf@xa=\pgf@x%
\pgf@lib@sh@rs@fill@bottomleft%
\pgf@x=\pgf@xa%
}%
\pgfpathlineto{\pgf@lib@sh@rs@fill@bottomleft}%
\pgfpathlineto{%
\pgf@lib@sh@rs@fill@bottomleft%
\pgf@xa=\pgf@x%
\pgf@lib@sh@rs@fill@topright%
\pgf@x=\pgf@xa%
}%
\ifnum\pgfmathcounter>1\relax%
\endgroup%
\fi%
\ifnum\pgfmathcounter<\parts%
\begingroup\pgfsetcornersarced{\pgfpointorigin}%
\fi%
\pgfpathlineto{\pgf@lib@sh@rs@fill@topright}%
\pgfpathclose%
\ifnum\pgfmathcounter<\parts%
\endgroup%
\fi%
\pgfsetfillcolor{\csname pgf@lib@sh@rs@\pgf@lib@sh@rs@number @item\endcsname}%
\pgfusepath{fill}%
\fi%
\fi%
\pgfextract@process\pgf@lib@sh@rs@fill@bottomleft{%
\pgf@lib@sh@rs@fill@bottomleft%
\pgf@ya=\pgf@y%
\pgf@lib@sh@rs@fill@topright%
\pgf@y=\pgf@ya%
\advance\pgf@y by-\outerysep%
}%
\repeatpgfmathloop%
\else%
\expandafter\let\expandafter\pgf@lib@sh@rs@fill@topright\expandafter=%
\csname pgf@anchor@rectangle split@north east\endcsname%
\pgfmathloop%
\ifnum\pgfmathcounter>\parts%
\else%
\pgf@lib@sh@getalpha\pgf@lib@sh@rs@number{\pgfmathcounter}%
\ifnum\pgfmathcounter=\parts%
\expandafter\let\expandafter\pgf@lib@sh@rs@fill@bottomleft\expandafter=%
\csname pgf@anchor@rectangle split@south west\endcsname%
\else%
\expandafter\let\expandafter\pgf@lib@sh@rs@fill@bottomleft\expandafter=%
\csname pgf@anchor@rectangle split@\pgf@lib@sh@rs@number\space split west\endcsname%
\fi%
\expandafter\ifx\csname pgf@lib@sh@rs@empty@\pgf@lib@sh@rs@number\endcsname\pgfutil@empty%
\else%
\expandafter\ifx\csname pgf@lib@sh@rs@\pgf@lib@sh@rs@number @item\endcsname\pgf@lib@sh@rs@nonetext%
\else%
\pgfextract@process\pgf@lib@sh@rs@fill@bottomleft{%
\pgf@lib@sh@rs@fill@bottomleft%
\advance\pgf@x by\outerxsep\relax%
\ifnum\parts=1\relax%
\advance\pgf@y by\outerysep\relax%
\else%
\ifnum\pgfmathcounter=\parts
\advance\pgf@y by\outerysep\relax%
\fi%
\fi%
}%
\pgfextract@process\pgf@lib@sh@rs@fill@topright{%
\pgf@lib@sh@rs@fill@topright%
\advance\pgf@x by-\outerxsep\relax%
\ifnum\parts=1\relax%
\advance\pgf@y by-\outerysep\relax%
\else%
\ifnum\pgfmathcounter=1\relax%
\advance\pgf@y by-\outerysep\relax%
\fi%
\fi%
}%
\pgfpathmoveto{\pgf@lib@sh@rs@fill@bottomleft}%
\ifnum\pgfmathcounter>1\relax%
\begingroup\pgfsetcornersarced{\pgfpointorigin}%
\fi%
\pgfpathlineto{%
\pgf@lib@sh@rs@fill@bottomleft%
\pgf@xa=\pgf@x%
\pgf@lib@sh@rs@fill@topright%
\pgf@x=\pgf@xa%
}%
\pgfpathlineto{\pgf@lib@sh@rs@fill@topright}%
\ifnum\pgfmathcounter>1\relax%
\endgroup%
\fi%
\ifnum\pgfmathcounter<\parts%
\begingroup\pgfsetcornersarced{\pgfpointorigin}%
\fi%
\pgfpathlineto{%
\pgf@lib@sh@rs@fill@topright%
\pgf@xa=\pgf@x%
\pgf@lib@sh@rs@fill@bottomleft%
\pgf@x=\pgf@xa%
}%
\pgfpathclose%
\ifnum\pgfmathcounter<\parts%
\endgroup%
\fi%
\pgfsetfillcolor{\csname pgf@lib@sh@rs@\pgf@lib@sh@rs@number @item\endcsname}%
\pgfusepath{fill}%
\fi%
\fi%
\pgfextract@process\pgf@lib@sh@rs@fill@topright{%
\pgf@lib@sh@rs@fill@topright%
\pgf@xa=\pgf@x%
\pgf@lib@sh@rs@fill@bottomleft%
\pgf@x=\pgf@xa%
\advance\pgf@x by\outerxsep\relax%
}%
\repeatpgfmathloop%
\fi%
}%
\fi%
}%
\backgroundpath{%
\begingroup%
\pgfextract@process\southwest{%
\southwest%
\advance\pgf@x by\outerxsep\relax%
\advance\pgf@y by\outerysep\relax%
}%
\pgfextract@process\northeast{%
\northeast%
\advance\pgf@x by-\outerxsep\relax%
\advance\pgf@y by-\outerysep\relax%
}%
\pgfpathrectangle{\southwest}{\pgfpointdiff{\southwest}{\northeast}}%
\endgroup%
\ifpgfrectanglesplitdrawsplits%
\pgfmathloop%
\ifnum\pgfmathcounter=\parts%
\else%
\pgf@lib@sh@getalpha\pgf@lib@sh@rs@number{\pgfmathcounter}%
\expandafter\ifx\csname pgf@lib@sh@rs@empty@\pgf@lib@sh@rs@number\endcsname\pgfutil@empty%
\else%
\pgfpathmoveto{%
\ifpgfrectanglesplithorizontal%
\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split@north\endcsname%
\advance\pgf@y by-\outerysep\relax%
\else%
\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split@east\endcsname%
\advance\pgf@x by-\outerxsep\relax%
\fi%
}%
\pgfpathlineto{%
\ifpgfrectanglesplithorizontal%
\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split@south\endcsname%
\advance\pgf@y by\outerysep\relax%
\else%
\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@number @split@west\endcsname%
\advance\pgf@x by\outerxsep\relax%
\fi%
}%
\fi%
\repeatpgfmathloop%
\fi%
}%
\anchorborder{%
\pgfutil@tempdima\pgf@x%
\pgfutil@tempdimb\pgf@y%
\rectanglesplitparameters%
\pgfpointdiff{\southwest}{\northeast}%
\pgf@x.5\pgf@x%
\pgf@y.5\pgf@y%
\edef\pgf@marshall{%
\noexpand\pgfpointborderrectangle{%
\noexpand\pgfqpoint{\the\pgfutil@tempdima}{\the\pgfutil@tempdimb}%
}%
{%
\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}%
}%
}%
\pgf@marshall%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@rectangle split\endcsname{%
\let\pgf@lib@sh@rs@temp=\pgfutil@empty%
\pgfmathloop%
\ifnum\pgfmathcounter=\parts%
\expandafter\edef\csname pgf@sh@boxes@rectangle split\endcsname%
{\pgf@lib@sh@rs@temp\pgf@lib@sh@toalpha{\pgfmathcounter}}%
\else%
\edef\pgf@lib@sh@rs@temp{\pgf@lib@sh@rs@temp\pgf@lib@sh@toalpha{\pgfmathcounter},}%
\repeatpgfmathloop%
}%
}%
\pgfutil@for\pgf@lib@sh@rs@temp:={one,two,three,four,five,six,seven,eight,nine,ten,eleven,twelve,thirteen,fourteen,fifteen,sixteen,seventeen,eighteen,nineteen,twenty}\do{%
\expandafter\xdef\csname pgf@anchor@rectangle split@\pgf@lib@sh@rs@temp\endcsname{%
\noexpand\rectanglesplitparameters%
\noexpand\pgfutil@ifundefined{pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp}{\noexpand\pgf@lib@sh@rs@anchor@one}%
{\noexpand\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp\noexpand\endcsname}%
}%
\expandafter\xdef\csname pgf@anchor@rectangle split@\pgf@lib@sh@rs@temp\space split\endcsname{%
\noexpand\rectanglesplitparameters%
\noexpand\pgfutil@ifundefined{pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @split}%
{\noexpand\centerpoint}%
{\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @split\noexpand\endcsname}%
}%
\expandafter\xdef\csname pgf@anchor@rectangle split@\pgf@lib@sh@rs@temp\space split north\endcsname{%
\noexpand\rectanglesplitparameters%
\noexpand\pgfutil@ifundefined{pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @split@north}%
{\noexpand\csname pgf@anchor@rectangle split@north\noexpand\endcsname}%
{\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @split@north\noexpand\endcsname}%
}%
\expandafter\xdef\csname pgf@anchor@rectangle split@\pgf@lib@sh@rs@temp\space split south\endcsname{%
\noexpand\rectanglesplitparameters%
\noexpand\pgfutil@ifundefined{pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @split@south}%
{\noexpand\csname pgf@anchor@rectangle split@south\noexpand\endcsname}%
{\noexpand\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @split@south\noexpand\endcsname}%
}%
\expandafter\xdef\csname pgf@anchor@rectangle split@\pgf@lib@sh@rs@temp\space north\endcsname{%
\noexpand\rectanglesplitparameters%
\noexpand\pgfutil@ifundefined{pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @north}%
{\noexpand\csname pgf@anchor@rectangle split@north\noexpand\endcsname}%
{\noexpand\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @north\noexpand\endcsname}%
}%
\expandafter\xdef\csname pgf@anchor@rectangle split@\pgf@lib@sh@rs@temp\space south\endcsname{%
\noexpand\rectanglesplitparameters%
\noexpand\pgfutil@ifundefined{pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @south}%
{\noexpand\csname pgf@anchor@rectangle split@south\noexpand\endcsname}%
{\noexpand\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @south\noexpand\endcsname}%
}%
\expandafter\xdef\csname pgf@anchor@rectangle split@\pgf@lib@sh@rs@temp\space split east\endcsname{%
\noexpand\rectanglesplitparameters%
\noexpand\pgfutil@ifundefined{pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @split@east}%
{\noexpand\csname pgf@anchor@rectangle split@east\noexpand\endcsname}%
{\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @split@east\noexpand\endcsname}%
}%
\expandafter\xdef\csname pgf@anchor@rectangle split@\pgf@lib@sh@rs@temp\space split west\endcsname{%
\noexpand\rectanglesplitparameters%
\noexpand\pgfutil@ifundefined{pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @split@west}%
{\noexpand\csname pgf@anchor@rectangle split@west\noexpand\endcsname}%
{\noexpand\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @split@west\noexpand\endcsname}%
}%
\expandafter\xdef\csname pgf@anchor@rectangle split@\pgf@lib@sh@rs@temp\space east\endcsname{%
\noexpand\rectanglesplitparameters%
\noexpand\pgfutil@ifundefined{pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @east}%
{\noexpand\csname pgf@anchor@rectangle split@east\noexpand\endcsname}%
{\noexpand\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @east\noexpand\endcsname}%
}%
\expandafter\xdef\csname pgf@anchor@rectangle split@\pgf@lib@sh@rs@temp\space west\endcsname{%
\noexpand\rectanglesplitparameters%
\noexpand\pgfutil@ifundefined{pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @west}%
{\noexpand\csname pgf@anchor@rectangle split@west\noexpand\endcsname}%
{\noexpand\csname pgf@lib@sh@rs@anchor@\pgf@lib@sh@rs@temp @west\noexpand\endcsname}%
}%
}%
\pgfutil@namelet{pgf@anchor@rectangle split@text east}{pgf@anchor@rectangle split@one east}%
\pgfutil@namelet{pgf@anchor@rectangle split@text west}{pgf@anchor@rectangle split@one west}%
\pgfutil@namelet{pgf@anchor@rectangle split@text split}{pgf@anchor@rectangle split@one split}%
\pgfutil@namelet{pgf@anchor@rectangle split@text split east}{pgf@anchor@rectangle split@one split east}%
\pgfutil@namelet{pgf@anchor@rectangle split@text split west}{pgf@anchor@rectangle split@one split west}%
\pgfutil@namelet{pgf@anchor@rectangle split@second}{pgf@anchor@rectangle split@two}%
\pgfutil@namelet{pgf@anchor@rectangle split@second east}{pgf@anchor@rectangle split@two east}%
\pgfutil@namelet{pgf@anchor@rectangle split@second west}{pgf@anchor@rectangle split@two west}%
\pgfutil@namelet{pgf@anchor@rectangle split@second split}{pgf@anchor@rectangle split@two split}%
\pgfutil@namelet{pgf@anchor@rectangle split@second split east}{pgf@anchor@rectangle split@two split east}%
\pgfutil@namelet{pgf@anchor@rectangle split@second split west}{pgf@anchor@rectangle split@two split west}%
\pgfutil@namelet{pgf@anchor@rectangle split@third}{pgf@anchor@rectangle split@three}%
\pgfutil@namelet{pgf@anchor@rectangle split@third east}{pgf@anchor@rectangle split@three east}%
\pgfutil@namelet{pgf@anchor@rectangle split@third west}{pgf@anchor@rectangle split@three west}%
\pgfutil@namelet{pgf@anchor@rectangle split@third split}{pgf@anchor@rectangle split@three split}%
\pgfutil@namelet{pgf@anchor@rectangle split@third split east}{pgf@anchor@rectangle split@three split east}%
\pgfutil@namelet{pgf@anchor@rectangle split@third split west}{pgf@anchor@rectangle split@three split west}%
\pgfutil@namelet{pgf@anchor@rectangle split@fourth}{pgf@anchor@rectangle split@four}%
\pgfutil@namelet{pgf@anchor@rectangle split@fourth east}{pgf@anchor@rectangle split@four east}%
\pgfutil@namelet{pgf@anchor@rectangle split@fourth west}{pgf@anchor@rectangle split@four west}%
\pgfutil@namelet{pgf@anchor@rectangle split@fourth split}{pgf@anchor@rectangle split@four split}%
\pgfutil@namelet{pgf@anchor@rectangle split@fourth split east}{pgf@anchor@rectangle split@four split east}%
\pgfutil@namelet{pgf@anchor@rectangle split@fourth split west}{pgf@anchor@rectangle split@four split west}%
\pgfdeclareshape{ellipse split}{%
\nodeparts{text,lower}%
\savedanchor\radii{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\pgf@y2.0\pgf@y%
\advance\pgf@y.5\pgflinewidth%
\pgf@xa.5\wd\pgfnodeparttextbox%
\pgf@xb.5\wd\pgfnodepartlowerbox%
\advance\pgf@xa\pgf@x%
\advance\pgf@xb\pgf@x%
\pgf@ya\ht\pgfnodeparttextbox%
\advance\pgf@ya\dp\pgfnodeparttextbox%
\pgf@yb\ht\pgfnodepartlowerbox%
\advance\pgf@yb\dp\pgfnodepartlowerbox%
\advance\pgf@ya\pgf@y%
\advance\pgf@yb\pgf@y%
\ifdim\pgf@xa>\pgf@xb%
\pgf@x1.414213\pgf@xa%
\else%
\pgf@x1.414213\pgf@xb%
\fi%
\ifdim\pgf@ya>\pgf@yb%
\pgf@y1.414213\pgf@ya%
\else%
\pgf@y1.414213\pgf@yb%
\fi%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum width}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@x<.5\pgf@xa%
\pgf@x.5\pgf@xa%
\fi%
\ifdim\pgf@y<.5\pgf@ya%
\pgf@y.5\pgf@ya%
\fi%
\pgfmathaddtolength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathaddtolength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
}%
\savedanchor\lower{%
\pgf@x-.5\wd\pgfnodepartlowerbox%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\pgf@y-2.0\pgf@y%
\advance\pgf@y-\pgflinewidth%
\advance\pgf@y-\dp\pgfnodeparttextbox%
\advance\pgf@y-\ht\pgfnodepartlowerbox%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{-\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y-\dp\pgfnodeparttextbox%
\advance\pgf@y-.5\pgflinewidth%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt\relax%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{.5ex}%
}%
\anchor{center}{\centerpoint}%
\anchor{lower}{\lower}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{\radii\pgf@xa\pgf@x\midpoint\advance\pgf@x\pgf@xa}%
\anchor{mid west}{\radii\pgf@xa\pgf@x\midpoint\advance\pgf@x-\pgf@xa}%
\anchor{base}{\basepoint}%
\anchor{base east}{\radii\pgf@xa\pgf@x\basepoint\advance\pgf@x\pgf@xa}%
\anchor{base west}{\radii\pgf@xa\pgf@x\basepoint\advance\pgf@x-\pgf@xa}%
\anchor{north}{\pgfpointadd{\centerpoint}{\radii\pgf@x0pt}}%
\anchor{south}{\pgfpointadd{\centerpoint}{\radii\pgf@x0pt\pgf@y-\pgf@y}}%
\anchor{east}{\pgfpointadd{\centerpoint}{\radii\pgf@y0pt}}%
\anchor{west}{\pgfpointadd{\centerpoint}{\radii\pgf@x-\pgf@x\pgf@y0pt}}%
\anchor{north west}{\pgfpointadd{\centerpoint}{\radii\pgf@x-0.707106\pgf@x\pgf@y0.707106\pgf@y}}%
\anchor{south west}{\pgfpointadd{\centerpoint}{\radii\pgf@x-0.707106\pgf@x\pgf@y-0.707106\pgf@y}}%
\anchor{north east}{\pgfpointadd{\centerpoint}{\radii\pgf@x0.707106\pgf@x\pgf@y0.707106\pgf@y}}%
\anchor{south east}{\pgfpointadd{\centerpoint}{\radii\pgf@x0.707106\pgf@x\pgf@y-0.707106\pgf@y}}%
\backgroundpath{%
\radii%
\pgfmathaddtolength\pgf@x{-\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathaddtolength\pgf@y{-\pgfkeysvalueof{/pgf/outer ysep}}%
\pgfutil@tempdima\pgf@x%
\pgfutil@tempdimb\pgf@y%
\pgfpathellipse{\centerpoint}{\pgfqpoint{\the\pgfutil@tempdima}{0pt}}{\pgfqpoint{0pt}{\the\pgfutil@tempdimb}}%
\pgfpathmoveto{\centerpoint\advance\pgf@x-\pgfutil@tempdima}%
\pgfpathlineto{\centerpoint\advance\pgf@x\pgfutil@tempdima}%
}%
\anchorborder{%
\pgfextract@process\externalpoint{}%
\radii%
\edef\pgf@marshal{%
\noexpand\pgfpointadd{\noexpand\pgfpointborderellipse{\noexpand\externalpoint}%
{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}}{\noexpand\centerpoint}%
}%
\pgf@marshal%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.symbols.code.tex ====
\ProvidesFileRCS{pgflibraryshapes.symbols.code.tex}
\pgfdeclareshape{forbidden sign}
{%
\inheritsavedanchors[from=circle]%
\inheritanchorborder[from=circle]%
\inheritanchor[from=circle]{north}%
\inheritanchor[from=circle]{north west}%
\inheritanchor[from=circle]{north east}%
\inheritanchor[from=circle]{center}%
\inheritanchor[from=circle]{west}%
\inheritanchor[from=circle]{east}%
\inheritanchor[from=circle]{mid}%
\inheritanchor[from=circle]{mid west}%
\inheritanchor[from=circle]{mid east}%
\inheritanchor[from=circle]{base}%
\inheritanchor[from=circle]{base west}%
\inheritanchor[from=circle]{base east}%
\inheritanchor[from=circle]{south}%
\inheritanchor[from=circle]{south west}%
\inheritanchor[from=circle]{south east}%
\inheritbackgroundpath[from=circle]%
\foregroundpath{
\centerpoint%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfutil@tempdima=\radius%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xb<\pgf@yb%
\advance\pgfutil@tempdima by-\pgf@yb%
\else%
\advance\pgfutil@tempdima by-\pgf@xb%
\fi%
\pgfpathmoveto{\pgfpointadd{\pgfqpoint{\pgf@xc}{\pgf@yc}}{\pgfqpoint{-0.707107\pgfutil@tempdima}{-0.707107\pgfutil@tempdima}}}
\pgfpathlineto{\pgfpointadd{\pgfqpoint{\pgf@xc}{\pgf@yc}}{\pgfqpoint{0.707107\pgfutil@tempdima}{0.707107\pgfutil@tempdima}}}
\pgfsetarrowsstart{}
\pgfsetarrowsend{}
}%
}%
\pgfdeclareshape{correct forbidden sign}
{%
\inheritsavedanchors[from=circle]%
\inheritanchorborder[from=circle]%
\inheritanchor[from=circle]{north}%
\inheritanchor[from=circle]{north west}%
\inheritanchor[from=circle]{north east}%
\inheritanchor[from=circle]{center}%
\inheritanchor[from=circle]{west}%
\inheritanchor[from=circle]{east}%
\inheritanchor[from=circle]{mid}%
\inheritanchor[from=circle]{mid west}%
\inheritanchor[from=circle]{mid east}%
\inheritanchor[from=circle]{base}%
\inheritanchor[from=circle]{base west}%
\inheritanchor[from=circle]{base east}%
\inheritanchor[from=circle]{south}%
\inheritanchor[from=circle]{south west}%
\inheritanchor[from=circle]{south east}%
\inheritbackgroundpath[from=circle]%
\foregroundpath{
\centerpoint%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfutil@tempdima=\radius%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xb<\pgf@yb%
\advance\pgfutil@tempdima by-\pgf@yb%
\else%
\advance\pgfutil@tempdima by-\pgf@xb%
\fi%
\pgfpathmoveto{\pgfpointadd{\pgfqpoint{\pgf@xc}{\pgf@yc}}{\pgfqpoint{0.707107\pgfutil@tempdima}{-0.707107\pgfutil@tempdima}}}
\pgfpathlineto{\pgfpointadd{\pgfqpoint{\pgf@xc}{\pgf@yc}}{\pgfqpoint{-0.707107\pgfutil@tempdima}{0.707107\pgfutil@tempdima}}}
\pgfsetarrowsstart{}
\pgfsetarrowsend{}
}%
}%
\pgfkeys{/pgf/random starburst/%
.code={%
\ifx\pgfkeysnovalue#1%
\pgfmathgeneratepseudorandomnumber%
\else%
\pgfmathtruncatemacro\pgfmathresult{#1}%
\fi%
\pgfkeyslet{/pgf/random starburst}{\pgfmathresult}%
}%
}%
\pgfkeys{/pgf/random starburst=100}%
\pgfkeys{/pgf/starburst point height/.value required}%
\pgfkeys{/pgf/starburst point height/.code={%
\pgfmathparse{#1}%
\edef\pgfmathresult{\pgfmathresult pt}%
\pgfkeyslet{/pgf/starburst point height}{\pgfmathresult}%
}%
}%
\pgfkeys{/pgf/starburst point height=.5cm}%
\pgfkeys{/pgf/starburst points/.value required}%
\pgfkeys{/pgf/starburst points/.code={%
\pgfmathtruncatemacro\pgfmathresult{#1}%
\pgfkeyslet{/pgf/starburst points}{\pgfmathresult}%
}%
}%
\pgfkeys{/pgf/starburst points=17}%
\pgfdeclareshape{starburst}{%
\savedmacro\anglestep{%
\pgfmathdivide@{180}{\pgfkeysvalueof{/pgf/starburst points}}%
\let\anglestep\pgfmathresult%
}%
\savedmacro\calculatestarburstpoints{%
\pgfmathdivide@{180}{\pgfkeysvalueof{/pgf/starburst points}}%
\let\anglestep\pgfmathresult%
\pgfmathsetcounter{pgf@counta}{\pgfkeysvalueof{/pgf/starburst points}}%
\multiply\c@pgf@counta2\relax%
\edef\totalpoints{\the\c@pgf@counta}%
\addtosavedmacro{\totalpoints}%
\pgfextract@process\centerpoint{%
\pgfmathsetlength\pgf@x{+.5\wd\pgfnodeparttextbox}%
\pgfmathsetlength\pgf@y{+.5\ht\pgfnodeparttextbox}%
\pgfmathaddtolength\pgf@y{+-.5\dp\pgfnodeparttextbox}%
}%
\pgfmathsetlength\pgf@x{+\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@y{+\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\fi%
\edef\outersep{\the\pgf@x}%
\pgfmathsetlength\pgf@x{+\pgfkeysvalueof{/pgf/inner xsep}}%
\pgfmathaddtolength\pgf@x{+.5\wd\pgfnodeparttextbox}%
\pgfmathsetlength\pgf@y{+\pgfkeysvalueof{/pgf/inner ysep}}%
\pgfmathaddtolength\pgf@y{+.5\ht\pgfnodeparttextbox}%
\pgfmathaddtolength\pgf@y{+.5\dp\pgfnodeparttextbox}%
\ifpgfshapeborderusesincircle%
\pgfkeysgetvalue{/pgf/shape border rotate}{\rotate}%
\ifdim\pgf@y>\pgf@x%
\pgf@x\pgf@y%
\fi%
\pgf@x1.41421\pgf@x%
\pgf@y\pgf@x%
\else%
\pgfkeysgetvalue{/pgf/shape border rotate}{\rotate}%
\pgfmathmod@{\rotate}{360}%
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter\c@pgf@counta\pgfmathresult\relax\pgfmath@%
\advance\c@pgf@counta45\relax%
\divide\c@pgf@counta90\relax%
\multiply\c@pgf@counta90\relax%
\ifnum\c@pgf@counta<0\relax%
\advance\c@pgf@counta360\relax%
\fi%
\ifnum\c@pgf@counta=90\relax%
\pgf@xc\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xc%
\else%
\ifnum\c@pgf@counta=270\relax%
\pgf@xc\pgf@x%
\pgf@x\pgf@y%
\pgf@y\pgf@xc%
\fi%
\fi%
\edef\rotate{\the\c@pgf@counta}%
\pgf@x=1.41421\pgf@x%
\pgf@y=1.41421\pgf@y%
\fi%
\addtosavedmacro{\rotate}%
\pgf@xa\pgf@x%
\pgfmathsetlength\pgf@xb{+\pgfkeysvalueof{/pgf/starburst point height}}%
\advance\pgf@xa\pgf@xb%
\pgfmathsetlength\pgf@xc{+\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@xa<.5\pgf@xc%
\pgf@x.5\pgf@xc%
\advance\pgf@x-\pgf@xb%
\fi%
\pgf@ya\pgf@y%
\pgfmathsetlength\pgf@yb{+\pgfkeysvalueof{/pgf/starburst point height}}%
\advance\pgf@ya\pgf@yb%
\pgfmathsetlength\pgf@yc{+\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@ya<.5\pgf@yc%
\pgf@y.5\pgf@yc%
\advance\pgf@y-\pgf@yb%
\fi%
\edef\xinnerradius{\the\pgf@x}%
\edef\yinnerradius{\the\pgf@y}%
\addtosavedmacro{\xinnerradius}%
\addtosavedmacro{\yinnerradius}%
\ifdim\pgf@y>\pgf@x%
\pgf@x\pgf@y%
\fi%
\pgfmathaddtolength\pgf@x{+\pgfkeysvalueof{/pgf/starburst point height}}%
\edef\externalradius{\the\pgf@x}%
\addtosavedmacro{\externalradius}%
\pgfmathsetseed{\pgfkeysvalueof{/pgf/random starburst}}%
\def\angle{90}%
\c@pgf@counta1\relax%
\c@pgf@countb0\relax%
\c@pgf@countc\totalpoints\relax%
\advance\c@pgf@countc2\relax%
\edef\looppoints{\the\c@pgf@countc}%
\let\secondpoint\pgfutil@empty%
\let\thirdpoint\pgfutil@empty%
\pgfmathloop%
\let\firstpoint\secondpoint%
\let\secondpoint\thirdpoint%
\ifnum\pgfmathcounter>\looppoints%
\else%
\ifnum\pgfmathcounter>\totalpoints%
\expandafter\let\expandafter\thirdpoint\csname point@\the\c@pgf@counta @\endcsname%
\else%
\ifodd\pgfmathcounter%
\ifnum\pgfkeysvalueof{/pgf/random starburst}=0\relax%
\pgf@xa\pgfkeysvalueof{/pgf/starburst point height}\relax%
\else%
\pgf@x\pgfkeysvalueof{/pgf/starburst point height}\relax%
\pgf@xa.75\pgf@x%
\pgf@xb.25\pgf@x%
\pgfmathrnd%
\pgf@xa\pgfmathresult\pgf@xa%
\advance\pgf@xa\pgf@xb%
\fi%
\pgf@x\xinnerradius\relax%
\advance\pgf@x\pgf@xa%
\pgf@y\yinnerradius\relax%
\advance\pgf@y\pgf@xa%
\expandafter\pgfextract@process\csname point@\the\c@pgf@counta @\endcsname{%
\pgfpointpolar{\angle}{\the\pgf@x and \the\pgf@y}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\else%
\expandafter\pgfextract@process\csname point@\the\c@pgf@counta @\endcsname{%
\pgfpointpolar{\angle}{\xinnerradius and \yinnerradius}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\fi%
\expandafter\let\expandafter\thirdpoint\csname point@\the\c@pgf@counta @\endcsname%
\expandafter\addtosavedmacro\expandafter{\csname point@\the\c@pgf@counta @\endcsname}%
\fi%
\ifx\firstpoint\pgfutil@empty%
\else%
\pgfmathanglebetweenlines{\secondpoint}{\thirdpoint}{\secondpoint}{\firstpoint}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\defaultmiterangle\pgfmathresult%
\pgfmathcosec@{\pgfmathresult}%
\pgf@x\outersep\relax%
\pgf@x\pgfmathresult\pgf@x%
\edef\miterlength{\the\pgf@x}%
\pgfmathanglebetweenlines{\firstpoint}{\secondpoint}{\firstpoint}{\thirdpoint}%
\pgfmathadd@{\pgfmathresult}{\defaultmiterangle}%
\pgfmathsubtract@{180}{\pgfmathresult}%
\let\angletemp\pgfmathresult%
\pgfmathanglebetweenpoints{\firstpoint}{\thirdpoint}%
\pgfmathsubtract@{180}{\pgfmathresult}%
\pgfmathsubtract@{\angletemp}{\pgfmathresult}%
\edef\miterangle{\pgfmathresult}%
\pgfextract@process\borderpoint{%
\secondpoint%
\pgf@xa\pgf@x
\pgf@ya\pgf@y%
\pgfpointpolar{\miterangle}{\miterlength}%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\borderpoint}%
\expandafter\edef\csname angletoborderpoint@\the\c@pgf@countb @\endcsname{\pgfmathresult}%
\expandafter\addtosavedmacro\expandafter{\csname angletoborderpoint@\the\c@pgf@countb @\endcsname}%
\expandafter\pgfextract@process\csname borderpoint@\the\c@pgf@countb @\endcsname{%
\pgfmathrotatepointaround{\borderpoint}{\centerpoint}{\rotate}%
}%
\expandafter\addtosavedmacro\expandafter{\csname borderpoint@\the\c@pgf@countb @\endcsname}%
\c@pgf@countc\c@pgf@countb%
\advance\c@pgf@countc1\relax%
\divide\c@pgf@countc2\relax%
\ifodd\c@pgf@countb\relax%
\pgfutil@ifundefined{pgf@anchor@starburst@outer point\space\the\c@pgf@countc}{%
\expandafter\xdef\csname pgf@anchor@starburst@outer point\space\the\c@pgf@countc\endcsname{%
\noexpand\calculatestarburstpoints%
\noexpand\csname borderpoint@\the\c@pgf@countb @\noexpand\endcsname%
}%
}{}%
\else%
\pgfutil@ifundefined{pgf@anchor@starburst@inner point\space\the\c@pgf@countc}{%
\expandafter\xdef\csname pgf@anchor@starburst@inner point\space\the\c@pgf@countc\endcsname{%
\noexpand\calculatestarburstpoints%
\noexpand\csname borderpoint@\the\c@pgf@countb @\noexpand\endcsname%
}%
}{}%
\fi%
\fi%
\pgfmathadd@{\angle}{\anglestep}%
\pgfmathmod@{\pgfmathresult}{360}%
\let\angle\pgfmathresult%
\advance\c@pgf@counta1\relax%
\ifnum\c@pgf@counta>\totalpoints%
\c@pgf@counta1\relax%
\fi%
\advance\c@pgf@countb1\relax%
\ifnum\c@pgf@countb>\totalpoints%
\c@pgf@countb1\relax%
\fi%
\repeatpgfmathloop%
}%
\savedanchor\centerpoint{%
\pgfmathsetlength\pgf@x{+.5\wd\pgfnodeparttextbox}%
\pgfmathsetlength\pgf@y{+.5\ht\pgfnodeparttextbox}%
\pgfmathaddtolength\pgf@y{+-.5\dp\pgfnodeparttextbox}%
}%
\savedanchor\midpoint{%
\pgfmathsetlength\pgf@x{+.5\wd\pgfnodeparttextbox}%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\savedanchor\basepoint{%
\pgfmathsetlength\pgf@x{+.5\wd\pgfnodeparttextbox}%
\pgf@y0pt\relax%
}%
\anchor{center}{\centerpoint}%
\anchor{base}{\basepoint}%
\anchor{mid}{\midpoint}%
\anchor{north}{%
\calculatestarburstpoints%
\csname pgf@anchor@starburst@border\endcsname{\pgfqpoint{0pt}{\externalradius}}%
}%
\anchor{south}{%
\calculatestarburstpoints%
\csname pgf@anchor@starburst@border\endcsname{\pgfqpoint{0pt}{-\externalradius}}%
}%
\anchor{east}{%
\calculatestarburstpoints%
\csname pgf@anchor@starburst@border\endcsname{\pgfqpoint{\externalradius}{0pt}}%
}%
\anchor{west}{%
\calculatestarburstpoints%
\csname pgf@anchor@starburst@border\endcsname{\pgfqpoint{-\externalradius}{0pt}}%
}%
\anchor{north west}{%
\calculatestarburstpoints%
\csname pgf@anchor@starburst@border\endcsname{\pgfqpoint{-\externalradius}{\externalradius}}%
}%
\anchor{south west}{%
\calculatestarburstpoints%
\csname pgf@anchor@starburst@border\endcsname{\pgfqpoint{-\externalradius}{-\externalradius}}%
}%
\anchor{north east}{%
\calculatestarburstpoints%
\csname pgf@anchor@starburst@border\endcsname{\pgfqpoint{\externalradius}{\externalradius}}%
}%
\anchor{south east}{%
\calculatestarburstpoints%
\csname pgf@anchor@starburst@border\endcsname{\pgfqpoint{\externalradius}{-\externalradius}}%
}%
\backgroundpath{%
\calculatestarburstpoints%
\pgfmathloop%
\ifnum\pgfmathcounter>\totalpoints%
\else%
\ifnum\pgfmathcounter=1\relax%
\let\starburstaction\pgfpathmoveto%
\else%
\let\starburstaction\pgfpathlineto%
\fi%
\starburstaction{%
\csname point@\pgfmathcounter @\endcsname}
\repeatpgfmathloop%
\pgfpathclose%
}%
\anchorborder{%
\edef\externalx{\the\pgf@x}%
\edef\externaly{\the\pgf@y}%
\centerpoint%
\pgf@xa\externalx\relax%
\pgf@ya\externaly\relax%
\advance\pgf@xa\pgf@x%
\advance\pgf@ya\pgf@y%
\edef\externalx{\the\pgf@xa}%
\edef\externaly{\the\pgf@ya}%
\calculatestarburstpoints%
\pgfmathanglebetweenpoints{\centerpoint}{\pgfqpoint{\externalx}{\externaly}}%
\pgfmathsubtract@{\pgfmathresult}{\rotate}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\externalangle\pgfmathresult%
\ifdim\externalangle pt<90pt\relax%
\c@pgf@counta0\relax%
\c@pgf@countb\totalpoints\relax%
\pgfmathloop%
\ifnum\c@pgf@counta>0\relax%
\else%
\ifdim\csname angletoborderpoint@\the\c@pgf@countb @\endcsname pt>90pt\relax%
\c@pgf@counta\c@pgf@countb%
\else%
\ifdim\externalangle pt>\csname angletoborderpoint@\the\c@pgf@countb @\endcsname pt\relax%
\c@pgf@counta\c@pgf@countb%
\fi%
\fi%
\advance\c@pgf@countb-1\relax%
\repeatpgfmathloop%
\edef\first{\the\c@pgf@counta}%
\advance\c@pgf@counta1\relax%
\ifnum\c@pgf@counta>\totalpoints\relax%
\c@pgf@counta1\relax%
\fi%
\edef\second{\the\c@pgf@counta}%
\else%
\c@pgf@counta0\relax%
\pgfmathloop%
\ifnum\c@pgf@counta>0\relax%
\else%
\ifdim\csname angletoborderpoint@\pgfmathcounter @\endcsname pt<90pt\relax%
\c@pgf@counta\pgfmathcounter%
\else%
\ifdim\externalangle pt<\csname angletoborderpoint@\pgfmathcounter @\endcsname pt\relax%
\c@pgf@counta\pgfmathcounter%
\fi%
\fi%
\repeatpgfmathloop%
\edef\first{\the\c@pgf@counta}%
\advance\c@pgf@counta-1\relax%
\ifnum\c@pgf@counta=0\relax%
\c@pgf@counta\totalpoints\relax%
\fi%
\edef\second{\the\c@pgf@counta}%
\fi%
\pgfpointintersectionoflines{\centerpoint}{\pgfqpoint{\externalx}{\externaly}}%
{\csname borderpoint@\first @\endcsname}{\csname borderpoint@\second @\endcsname}%
}%
}%
\newif\ifpgfcloudanchorsuseellipse%
\newif\ifpgfcloudignoresaspect%
\pgfcloudignoresaspectfalse%
\pgfkeys{/pgf/.cd,
cloud puffs/.initial=10,
cloud puff arc/.initial=150,
cloud ignores aspect/.is if=pgfcloudignoresaspect,
cloud anchors use ellipse/.is if=pgfcloudanchorsuseellipse,
}%
\pgfkeys{/pgf/.cd,
aspect/.code={\pgfsetshapeaspect{#1}},%
shape aspect/.initial=1,%
shape aspect/.code={%
\pgfkeys{/pgf/aspect={#1}}%
\pgfkeyssetvalue{/pgf/shape aspect}{#1}
}%
}%
\def\pgfsetshapeaspect#1{%
\def\pgfshapeaspect{#1}%
\pgfutil@tempdima=#1pt%
\pgfutil@tempdima=.125\pgfutil@tempdima%
\c@pgf@counta=\pgfutil@tempdima\relax%
\pgfutil@tempdima=8192pt%
\divide\pgfutil@tempdima by\c@pgf@counta%
\edef\pgfshapeaspectinverse{\pgf@sys@tonumber{\pgfutil@tempdima}}%
}%
\pgfsetshapeaspect{1}%
\pgfdeclareshape{cloud}{%
\savedmacro\getradii{%
\pgfmathtruncatemacro\puffs{\pgfkeysvalueof{/pgf/cloud puffs}}%
\addtosavedmacro\puffs%
\pgfmathdivide{360}{\pgfkeysvalueof{/pgf/cloud puffs}}%
\let\anglestep\pgfmathresult%
\addtosavedmacro\anglestep%
\pgfmathsetmacro\arc{\pgfkeysvalueof{/pgf/cloud puff arc}}%
\addtosavedmacro\arc%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@x1.4142135\pgf@x%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\pgf@y1.4142135\pgf@y%
\ifpgfcloudignoresaspect%
\pgf@xc\pgf@x%
\pgf@yc\pgf@y%
\else%
\pgf@xc\pgfshapeaspect\pgf@y%
\ifdim\pgf@xc<\pgf@x%
\pgf@xc\pgf@x%
\fi%
\pgf@yc\pgfshapeaspectinverse\pgf@xc%
\ifdim\pgf@yc<\pgf@y%
\pgf@yc\pgf@y%
\pgf@xc\pgfshapeaspect\pgf@y%
\fi%
\fi%
\edef\xinnerradius{\the\pgf@xc}%
\edef\yinnerradius{\the\pgf@yc}%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@x<\pgf@y%
\pgf@x\pgf@y%
\fi%
\edef\outersep{\the\pgf@x}%
\addtosavedmacro\outersep%
\pgfmathsubtract{180}{\arc}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\tempangle\pgfmathresult%
\pgfmathsec@{\pgfmathresult}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\arcradiusquotient\pgfmathresult%
\addtosavedmacro\arcradiusquotient%
\pgfmathsin@{\tempangle}%
\pgfmathsubtract@{1}{\pgfmathresult}%
\pgfmathmultiply@{\pgfmathresult}{\arcradiusquotient}%
\let\archeightquotient\pgfmathresult%
\addtosavedmacro\archeightquotient%
\pgfmathdivide{\arc}{2}%
\let\halfarcangle\pgfmathresult%
\pgfmathcos@{\pgfmathresult}%
\pgfmathsubtract@{1}{\pgfmathresult}%
\let\pgf@temp\pgfmathresult%
\pgfmathsin@{\halfarcangle}%
\pgfmathdivide@{\pgf@temp}{\pgfmathresult}%
\let\pgf@temp\pgfmathresult%
\pgfmathdivide@{\anglestep}{2}%
\pgfmathsin@{\pgfmathresult}%
\pgfmathmultiply@{\pgfmathresult}{\pgf@temp}%
\let\k\pgfmathresult%
\pgfmathdivide@{\anglestep}{2}%
\pgfmathcos@{\pgfmathresult}%
\let\coshalfanglestep\pgfmathresult%
\pgf@x\xinnerradius\relax%
\pgf@y\yinnerradius\relax%
\pgf@xa\coshalfanglestep\pgf@x%
\advance\pgf@xa\k\pgf@y%
\pgf@ya\coshalfanglestep\pgf@y%
\advance\pgf@ya\k\pgf@x%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@ya<.5\pgf@yb%
\pgf@ya.5\pgf@yb%
\fi%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@xa<.5\pgf@xb%
\pgf@xa.5\pgf@xb%
\fi%
\edef\xouterradius{\the\pgf@xa}%
\addtosavedmacro\xouterradius%
\edef\youterradius{\the\pgf@ya}%
\addtosavedmacro\youterradius%
\pgf@xc\k pt\relax%
\pgf@xc-\k\pgf@xc%
\pgf@yc\coshalfanglestep pt\relax%
\pgf@yc\coshalfanglestep\pgf@yc%
\advance\pgf@xc\pgf@yc\relax%
\pgfmathreciprocal@{\pgfmath@tonumber{\pgf@xc}}%
\pgf@x\coshalfanglestep\pgf@xa%
\advance\pgf@x-\k\pgf@ya%
\pgf@x\pgfmathresult\pgf@x%
\pgf@y\coshalfanglestep\pgf@ya%
\advance\pgf@y-\k\pgf@xa%
\pgf@y\pgfmathresult\pgf@y%
\edef\xinnerradius{\the\pgf@x}%
\edef\yinnerradius{\the\pgf@y}%
\addtosavedmacro\xinnerradius%
\addtosavedmacro\yinnerradius%
\pgfmathdivide@{\arc}{4}%
\let\quarterarc\pgfmathresult%
\pgfmathsubtract@{180}{\arc}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\halfcomplementarc\pgfmathresult%
\addtosavedmacro\arc%
\addtosavedmacro\quarterarc%
\addtosavedmacro\halfcomplementarc%
\pgfmathsec@{\halfcomplementarc}%
\let\sechalfcomplementarc\pgfmathresult%
\pgfmathsin@{\halfcomplementarc}%
\let\sinhalfcomplementarc\pgfmathresult%
\addtosavedmacro\sechalfcomplementarc%
\addtosavedmacro\sinhalfcomplementarc%
\pgfmathsin@{\quarterarc}%
\let\sinquarterarc\pgfmathresult%
\pgfmathcos@{\quarterarc}%
\let\cosquarterarc\pgfmathresult%
\pgfmathreciprocal@{\cosquarterarc}%
\pgfmathmultiply@{\pgfmathresult}{\sinquarterarc}%
\let\tanquarterarc\pgfmathresult%
\addtosavedmacro\sinquarterarc%
\addtosavedmacro\cosquarterarc%
\addtosavedmacro\tanquarterarc%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{base}{\basepoint}%
\anchor{north}{%
\getradii%
\csname pgf@anchor@cloud@border\endcsname{\pgfqpoint{0pt}{\youterradius}}%
}%
\anchor{south}{%
\getradii%
\csname pgf@anchor@cloud@border\endcsname{\pgfqpoint{0pt}{-\youterradius}}%
}%
\anchor{east}{%
\getradii%
\csname pgf@anchor@cloud@border\endcsname{\pgfqpoint{\xouterradius}{0pt}}%
}%
\anchor{west}{%
\getradii%
\csname pgf@anchor@cloud@border\endcsname{\pgfqpoint{-\xouterradius}{0pt}}%
}%
\anchor{north west}{%
\getradii%
\pgfextract@process\pgf@sh{%
\pgf@x\xouterradius\relax%
\pgf@x-0.707106\pgf@x%
\pgf@y\youterradius\relax%
\pgf@y0.707106\pgf@y%
}%
\csname pgf@anchor@cloud@border\endcsname{\pgf@sh}%
}%
\anchor{north east}{%
\getradii%
\pgfextract@process\pgf@sh{%
\pgf@x\xouterradius\relax%
\pgf@x0.707106\pgf@x%
\pgf@y\youterradius\relax%
\pgf@y0.707106\pgf@y%
}%
\csname pgf@anchor@cloud@border\endcsname{\pgf@sh}%
}%
\anchor{south west}{%
\getradii%
\pgfextract@process\pgf@sh{%
\pgf@x\xouterradius\relax%
\pgf@x-0.707106\pgf@x%
\pgf@y\youterradius\relax%
\pgf@y-0.707106\pgf@y%
}%
\csname pgf@anchor@cloud@border\endcsname{\pgf@sh}%
}%
\anchor{south east}{%
\getradii%
\pgfextract@process\pgf@sh{%
\pgf@x\xouterradius\relax%
\pgf@x0.707106\pgf@x%
\pgf@y\youterradius\relax%
\pgf@y-0.707106\pgf@y%
}%
\csname pgf@anchor@cloud@border\endcsname{\pgf@sh}%
}%
\backgroundpath{%
{%
\getradii%
\pgfmathdivide@{\anglestep}{2}%
\pgfmathsubtract@{90}{\pgfmathresult}%
\let\angle\pgfmathresult%
\pgfextract@process\arcfirstpoint{%
\pgfpointadd{\centerpoint}{%
\pgfpointpolar{+\angle}{+\xinnerradius and +\yinnerradius}%
}%
}%
\pgfpathmoveto{\arcfirstpoint}%
\let\arcendpoint\arcfirstpoint%
\pgfmathloop%
\ifnum\pgfmathcounter>\puffs\relax%
\else
\let\arcstartpoint\arcendpoint%
\ifnum\pgfmathcounter=\puffs\relax%
\let\arcendpoint\arcfirstpoint%
\else%
\pgfmathadd@{\angle}{\anglestep}%
\let\angle\pgfmathresult%
\pgfextract@process\arcendpoint{%
\pgfpointadd{\centerpoint}{%
\pgfpointpolar{+\angle}{+\xinnerradius and +\yinnerradius}%
}%
}%
\fi%
\pgf@sh@getcloudpuffparameters%
\pgfmathsubtract@{90}{\quarterarc}%
\pgfmathadd@{\pgfmathresult}{\arcslope}%
\let\arcrotate\pgfmathresult%
\pgfmathsin@{\arcrotate}%
\let\sinarcrotate\pgfmathresult%
\pgfmathcos@{\arcrotate}%
\let\cosarcrotate\pgfmathresult%
\pgf@x\arcradius\relax%
\pgf@x\tanquarterarc\pgf@x%
\edef\controlscale{\pgfmath@tonumber{\pgf@x}}%
\pgfextract@process\controlone{%
\pgf@x0.55228475pt\relax%
\pgf@x\sinquarterarc\pgf@x%
\pgf@y0.55228475pt\relax%
\pgf@y\cosquarterarc\pgf@y%
\pgf@x\controlscale\pgf@x%
\pgf@y\controlscale\pgf@y%
\pgf@xa\cosarcrotate\pgf@x%
\advance\pgf@xa-\sinarcrotate\pgf@y%
\pgf@ya\cosarcrotate\pgf@y%
\advance\pgf@ya\sinarcrotate\pgf@x%
\arcstartpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfextract@process\arcmidpoint{%
\pgfextract@process\arcmidpoint{%
\pgf@x-\halfchordlength\relax%
\pgf@y\segmentheight\relax%
}%
\pgfpointadd{\arcstartpoint}{%
\pgfmathrotatepointaround{\arcmidpoint}{\pgfpointorigin}{\arcslope}%
}%
}%
\pgfextract@process\controltwo{%
\pgf@x0.55228475pt\relax%
\pgf@x\sinquarterarc\pgf@x%
\pgf@y-0.55228475pt\relax%
\pgf@y\cosquarterarc\pgf@y%
\pgf@x\controlscale\pgf@x%
\pgf@y\controlscale\pgf@y%
\pgf@xa\cosarcrotate\pgf@x%
\advance\pgf@xa-\sinarcrotate\pgf@y%
\pgf@ya\cosarcrotate\pgf@y%
\advance\pgf@ya\sinarcrotate\pgf@x%
\arcmidpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
{%
\pgfsetcornersarced{\pgfpointorigin}%
\pgfpathcurveto{\controlone}{\controltwo}{\arcmidpoint}%
}%
\pgfmathadd@{\quarterarc}{90}%
\pgfmathadd@{\pgfmathresult}{\arcslope}%
\let\arcrotate\pgfmathresult%
\pgfmathsin@{\arcrotate}%
\let\sinarcrotate\pgfmathresult%
\pgfmathcos@{\arcrotate}%
\let\cosarcrotate\pgfmathresult%
\pgfextract@process\controlone{%
\pgf@x0.55228475pt\relax%
\pgf@x\sinquarterarc\pgf@x%
\pgf@y0.55228475pt\relax%
\pgf@y\cosquarterarc\pgf@y%
\pgf@x\controlscale\pgf@x%
\pgf@y\controlscale\pgf@y%
\pgf@xa\cosarcrotate\pgf@x%
\advance\pgf@xa-\sinarcrotate\pgf@y%
\pgf@ya\cosarcrotate\pgf@y%
\advance\pgf@ya\sinarcrotate\pgf@x%
\arcmidpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfextract@process\controltwo{%
\pgf@x0.55228475pt\relax%
\pgf@x\sinquarterarc\pgf@x%
\pgf@y-0.55228475pt\relax%
\pgf@y\cosquarterarc\pgf@y%
\pgf@x\controlscale\pgf@x%
\pgf@y\controlscale\pgf@y%
\pgf@xa\cosarcrotate\pgf@x%
\advance\pgf@xa-\sinarcrotate\pgf@y%
\pgf@ya\cosarcrotate\pgf@y%
\advance\pgf@ya\sinarcrotate\pgf@x%
\arcendpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfpathcurveto{\controlone}{\controltwo}{\arcendpoint}%
\repeatpgfmathloop%
\pgfpathclose%
}%
}%
\anchorborder{%
\edef\externalx{\the\pgf@x}%
\edef\externaly{\the\pgf@y}%
\getradii%
\ifpgfcloudanchorsuseellipse%
\pgfpointadd{\centerpoint}{%
\pgfpointborderellipse{%
\pgfpoint{\externalx}{\externaly}
}{%
\pgfpoint{\xouterradius}{\youterradius}
}%
}%
\else%
\pgfextract@process\externalpoint{%
\centerpoint%
\advance\pgf@x\externalx\relax%
\advance\pgf@y\externaly\relax%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\externalpoint}%
\let\externalangle\pgfmathresult%
\pgfmathdivide@{\anglestep}{2}%
\let\halfanglestep\pgfmathresult%
\pgfmathsubtract@{90}{\halfanglestep}%
\let\endangle\pgfmathresult%
\pgfmathloop%
\pgfmathsubtract@{\endangle}{\anglestep}%
\ifdim\pgfmathresult pt<-\anglestep pt\relax%
\else%
\let\endangle\pgfmathresult%
\repeatpgfmathloop%
\def\angle{0}%
\let\lastangle\angle%
\pgfmathloop%
\pgfmathadd@{\endangle}{\anglestep}%
\let\endangle\pgfmathresult%
\pgfextract@process\miterpoint{%
\pgfextract@process\secondpoint{%
\pgfpointpolar{+\endangle}{+\xinnerradius and +\yinnerradius}%
}%
\pgfmathadd@{\endangle}{\anglestep}%
\let\angletemp\pgfmathresult%
\pgfextract@process\thirdpoint{%
\pgfpointpolar{+\angletemp}{+\xinnerradius and +\yinnerradius}%
}%
\pgfmathsubtract@{\endangle}{\anglestep}%
\let\angletemp\pgfmathresult%
\pgfextract@process\firstpoint{%
\pgfpointpolar{+\angletemp}{+\xinnerradius and +\yinnerradius}%
}%
\pgfmathanglebetweenpoints{\firstpoint}{\secondpoint}%
\let\anglealpha\pgfmathresult%
\pgfmathanglebetweenpoints{\secondpoint}{\thirdpoint}%
\let\anglebeta\pgfmathresult%
\pgfmathsubtract@{\anglebeta}{\anglealpha}%
\pgfmathdivide@{\pgfmathresult}{2}%
\pgfmathadd@{\pgfmathresult}{\halfcomplementarc}%
\pgfmathcosec@{\pgfmathresult}%
\pgf@x\outersep\relax%
\pgf@x\pgfmathresult\pgf@x%
\edef\miterradius{\the\pgf@x}%
\pgfmathadd@{\anglealpha}{\anglebeta}%
\pgfmathsubtract@{\pgfmathresult}{180}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\miterangle\pgfmathresult%
\pgfpointadd{\secondpoint}{%
\pgfqpointpolar{\miterangle}{\miterradius}%
}%
}%
\pgfmathanglebetweenpoints{\pgfpointorigin}{\miterpoint}%
\let\angle\pgfmathresult%
\ifdim\angle pt<\lastangle pt\relax%
\pgfmathadd@{\angle}{360}%
\let\angle\pgfmathresult%
\fi%
\let\lastangle\angle%
\ifdim\externalangle pt>\angle pt\relax%
\repeatpgfmathloop%
\pgfmathmod@{\endangle}{360}%
\let\endangle\pgfmathresult%
\pgfmathsubtract@{\endangle}{\anglestep}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\startangle\pgfmathresult%
\pgfextract@process\arcstartpoint{%
\pgfpointadd{\centerpoint}{%
\pgfpointpolar{+\startangle}{+\xinnerradius and +\yinnerradius}%
}%
}%
\pgfextract@process\arcendpoint{%
\pgfpointadd{\centerpoint}{%
\pgfpointpolar{+\endangle}{+\xinnerradius and +\yinnerradius}%
}%
}%
\pgf@sh@getcloudpuffparameters%
\ifdim\endangle pt<\startangle pt\relax%
\pgfmathadd@{\externalangle}{180}%
\pgfmathmod@{\pgfmathresult}{360}%
\let\x\pgfmathresult%
\else%
\let\x\externalangle%
\fi%
\let\s\halfcomplementarc%
\pgfmathadd@{\s}{\arc}%
\let\e\pgfmathresult%
\pgfmathadd@{\e}{\s}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\n\pgfmathresult%
\def\m{360}%
\pgfmathloop%
\pgfmathadd@{\e}{\s}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\p\pgfmathresult%
\ifdim\p pt=\s pt\relax%
\else%
\pgfmathadd@{\p}{\arcslope}%
\let\a\pgfmathresult%
\pgfextract@process\arcpoint{%
\pgfpointadd{\circlecenterpoint}{%
\pgfqpointpolar{\a}{\outerarcradius}%
}%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\arcpoint}%
\ifdim\endangle pt<\startangle pt\relax%
\pgfmathadd@{\pgfmathresult}{180}%
\pgfmathmod@{\pgfmathresult}{360}%
\fi%
\let\q\pgfmathresult%
\ifdim\x pt=\q pt%
\pgfmathbreakloop%
\else
\ifdim\x pt<\q pt\relax%
\let\e\p%
\else%
\let\s\p%
\fi%
\fi%
\pgfmathsubtract@{\x}{\q}%
\pgfmathabs@{\pgfmathresult}%
\ifdim\pgfmathresult pt<\m pt\relax%
\let\m\pgfmathresult%
\let\n\p%
\fi%
\repeatpgfmathloop%
\pgfmathadd@{\n}{\arcslope}%
\let\anchorangle\pgfmathresult%
\pgfpointadd{\circlecenterpoint}{%
\pgfqpointpolar{\anchorangle}{\outerarcradius}%
}%
\fi%
}%
\pgfutil@g@addto@macro\pgf@sh@s@cloud{%
\c@pgf@counta\puffs\relax%
\pgfmathloop%
\ifnum\c@pgf@counta>0\relax%
\pgfutil@ifundefined{pgf@anchor@cloud@puff\space\the\c@pgf@counta}{%
\expandafter\xdef\csname pgf@anchor@cloud@puff\space\the\c@pgf@counta\endcsname{%
\noexpand\pgf@sh@@cloudpuffanchor{\the\c@pgf@counta}%
}%
}{\c@pgf@counta0\relax}%
\advance\c@pgf@counta-1\relax%
\repeatpgfmathloop%
}%
}%
\def\pgf@sh@@cloudpuffanchor#1{%
\getradii%
\pgfmathdivide@{\anglestep}{2}%
\let\halfanglestep\pgfmathresult%
\c@pgf@counta#1\relax%
\advance\c@pgf@counta-1\relax%
\pgfmathmultiply@{\anglestep}{\the\c@pgf@counta}%
\pgfmathadd@{\pgfmathresult}{90}%
\pgfmathsubtract@{\pgfmathresult}{\halfanglestep}%
\let\angle\pgfmathresult%
\pgfextract@process\arcstartpoint{%
\pgfpointadd{\centerpoint}{%
\pgfpointpolar{+\angle}{+\xinnerradius and +\yinnerradius}%
}%
}%
\pgfmathadd@{\angle}{\anglestep}%
\let\angle\pgfmathresult%
\pgfextract@process\arcendpoint{%
\pgfpointadd{\centerpoint}{%
\pgfpointpolar{+\angle}{+\xinnerradius and +\yinnerradius}%
}%
}%
\pgf@sh@getcloudpuffparameters%
\pgfmathadd@{\arcslope}{90}%
\let\anchorangle\pgfmathresult%
\pgfpointadd{\circlecenterpoint}{%
\pgfqpointpolar{\anchorangle}{\outerarcradius}%
}%
}%
\def\pgf@sh@getcloudpuffparameters{%
\pgfmathanglebetweenpoints{\arcendpoint}{\arcstartpoint}%
\let\arcslope\pgfmathresult%
\pgfpointdiff{\arcendpoint}{\arcstartpoint}%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}
\pgf@x\pgfmathresult pt\relax%
\pgf@xa.5\pgf@x%
\edef\halfchordlength{\the\pgf@xa}%
\pgf@x\arcradiusquotient\pgf@x%
\edef\arcradius{\the\pgf@x}%
\pgf@xa\outersep\relax%
\advance\pgf@xa\pgf@x%
\edef\outerarcradius{\the\pgf@xa}%
\pgf@y-\sinhalfcomplementarc\pgf@x%
\advance\pgf@y\pgf@x%
\edef\segmentheight{\the\pgf@y}%
\pgfextract@process\circlecenterpoint{%
\pgfextract@process\circlecenterpoint{%
\pgf@x-\halfchordlength\relax%
\pgf@y\segmentheight\relax%
\advance\pgf@y-\arcradius
}%
\pgfpointadd{\arcstartpoint}{%
\pgfmathrotatepointaround{\circlecenterpoint}{\pgfpointorigin}{\arcslope}%
}%
}%
}%
\def\pgf@lib@sh@signal@nowhere{nowhere}%
\def\pgf@lib@sh@signal@from{from}%
\def\pgf@lib@sh@signal@to{to}%
\def\pgf@lib@sh@signal@parsedirection#1#2{%
\let\pgf@lib@sh@signal@direction=#2%
\edef\pgf@lib@sh@temp{#1}%
\expandafter\pgf@lib@sh@signal@@parsedirection\pgf@lib@sh@temp\pgf@stop}%
\def\pgf@lib@sh@signal@@parsedirection#1\pgf@stop{%
\pgfutil@in@{and}{#1}%
\ifpgfutil@in@%
\pgf@lib@sh@signal@@@parsedirection#1\pgf@lib%
\else%
\pgf@lib@sh@signal@@@parsedirection#1 and #1\pgf@lib%
\fi
}%
\def\pgf@lib@sh@signal@@@parsedirection#1 and #2\pgf@lib{%
\pgfutil@in@{nowhere}{#1}%
\ifpgfutil@in@
\else%
\pgf@lib@sh@signal@@@@parsedirection{#1}%
\pgf@lib@sh@signal@@@@parsedirection{#2}%
\fi%
}%
\def\pgf@lib@sh@signal@@@@parsedirection#1{%
\pgfutil@in@{ #1 }{ east right }%
\ifpgfutil@in@%
\let\pgf@lib@sh@signal@east=\pgf@lib@sh@signal@direction%
\let\pgf@lib@sh@signal@north=\pgf@lib@sh@signal@nowhere%
\let\pgf@lib@sh@signal@south=\pgf@lib@sh@signal@nowhere%
\fi%
\pgfutil@in@{ #1 }{ left west }%
\ifpgfutil@in@%
\let\pgf@lib@sh@signal@west=\pgf@lib@sh@signal@direction%
\let\pgf@lib@sh@signal@north=\pgf@lib@sh@signal@nowhere%
\let\pgf@lib@sh@signal@south=\pgf@lib@sh@signal@nowhere%
\fi%
\pgfutil@in@{ #1 }{ above up north }%
\ifpgfutil@in@%
\let\pgf@lib@sh@signal@north=\pgf@lib@sh@signal@direction%
\let\pgf@lib@sh@signal@east=\pgf@lib@sh@signal@nowhere%
\let\pgf@lib@sh@signal@west=\pgf@lib@sh@signal@nowhere%
\fi%
\pgfutil@in@{ #1 }{ below down south }%
\ifpgfutil@in@%
\let\pgf@lib@sh@signal@south=\pgf@lib@sh@signal@direction%
\let\pgf@lib@sh@signal@east=\pgf@lib@sh@signal@nowhere%
\let\pgf@lib@sh@signal@west=\pgf@lib@sh@signal@nowhere%
\fi%
}%
\pgfkeys{/pgf/.cd,
signal pointer angle/.initial=90,
signal to/.initial=east,
signal from/.initial=nowhere,
}%
\pgfdeclareshape{signal}{%
\savedmacro\installsignalparameters{%
\let\pgf@lib@sh@signal@north=\pgf@lib@sh@signal@nowhere%
\let\pgf@lib@sh@signal@south=\pgf@lib@sh@signal@nowhere%
\let\pgf@lib@sh@signal@east=\pgf@lib@sh@signal@nowhere%
\let\pgf@lib@sh@signal@west=\pgf@lib@sh@signal@nowhere%
\pgf@lib@sh@signal@parsedirection{\pgfkeysvalueof{/pgf/signal from}}{\pgf@lib@sh@signal@from}%
\pgf@lib@sh@signal@parsedirection{\pgfkeysvalueof{/pgf/signal to}}{\pgf@lib@sh@signal@to}%
\pgfextract@process\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\pgfmathsetmacro\pointerangle{\pgfkeysvalueof{/pgf/signal pointer angle}}%
\pgfmathdivide@{\pointerangle}{2}%
\let\halfpointerangle=\pgfmathresult%
\pgfmathcosec@{\halfpointerangle}%
\let\cosechalfpointerangle=\pgfmathresult%
\pgfmathdivide@{\halfpointerangle}{2}%
\let\quarterpointerangle=\pgfmathresult%
\pgfmathcosec@{\quarterpointerangle}%
\let\cosecquarterpointerangle=\pgfmathresult%
\pgfmathsec@{\quarterpointerangle}%
\let\secquarterpointerangle=\pgfmathresult%
\pgfmathsubtract@{90}{\quarterpointerangle}%
\let\complementquarterpointerangle\pgfmathresult%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@x>\pgf@y%
\pgf@y\pgf@x%
\fi%
\pgf@yc=\pgf@y%
\pgf@x=\cosechalfpointerangle\pgf@y%
\edef\pointerapexmiter{\the\pgf@x}%
\pgf@x=\secquarterpointerangle\pgf@y%
\edef\tocornermiter{\the\pgf@x}%
\pgf@x=\cosecquarterpointerangle\pgf@y
\edef\fromcornermiter{\the\pgf@x}%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@xa.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@ya.5\ht\pgfnodeparttextbox%
\advance\pgf@ya.5\dp\pgfnodeparttextbox%
\pgfmathsubtract@{90}{\halfpointerangle}%
\pgfmathtan@{\pgfmathresult}%
\pgf@xb=\pgfmathresult\pgf@ya%
\pgf@yb=\pgfmathresult\pgf@xa%
\pgfutil@tempdima=2.0\pgf@ya%
\ifx\pgf@lib@sh@signal@north\pgf@lib@sh@signal@nowhere%
\else%
\advance\pgfutil@tempdima by\pgf@yb%
\fi%
\ifx\pgf@lib@sh@signal@south\pgf@lib@sh@signal@nowhere%
\else%
\advance\pgfutil@tempdima by\pgf@yb%
\fi%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgfutil@tempdima<\pgf@y%
\pgfutil@tempdima=\pgf@y%
\ifx\pgf@lib@sh@signal@north\pgf@lib@sh@signal@nowhere%
\else%
\advance\pgfutil@tempdima by-\pgf@yb%
\fi%
\ifx\pgf@lib@sh@signal@south\pgf@lib@sh@signal@nowhere%
\else%
\advance\pgfutil@tempdima by-\pgf@yb%
\fi%
\pgf@ya=0.5\pgfutil@tempdima%
\pgfmathsubtract@{90}{\halfpointerangle}%
\pgfmathtan@{\pgfmathresult}%
\pgf@xb=\pgfmathresult\pgf@ya%
\fi%
\pgfutil@tempdima=2.0\pgf@xa%
\ifx\pgf@lib@sh@signal@east\pgf@lib@sh@signal@nowhere%
\else%
\advance\pgfutil@tempdima by\pgf@xb%
\fi%
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@nowhere%
\else%
\advance\pgfutil@tempdima by\pgf@xb%
\fi%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgfutil@tempdima<\pgf@x%
\pgfutil@tempdima=\pgf@x%
\ifx\pgf@lib@sh@signal@east\pgf@lib@sh@signal@nowhere%
\else%
\advance\pgfutil@tempdima by-\pgf@xb%
\fi%
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@nowhere%
\else%
\advance\pgfutil@tempdima by-\pgf@xb%
\fi%
\pgf@xa=0.5\pgfutil@tempdima%
\pgfmathsubtract@{90}{\halfpointerangle}%
\pgfmathtan@{\pgfmathresult}%
\pgf@yb=\pgfmathresult\pgf@xa%
\fi%
\pgfextract@process\north{%
\centerpoint%
\advance\pgf@y\pgf@ya%
\ifx\pgf@lib@sh@signal@north\pgf@lib@sh@signal@to%
\advance\pgf@y\pgf@yb%
\fi%
}%
\pgfextract@process\south{%
\centerpoint%
\advance\pgf@y-\pgf@ya%
\ifx\pgf@lib@sh@signal@south\pgf@lib@sh@signal@to%
\advance\pgf@y-\pgf@yb%
\fi%
}%
\pgfextract@process\east{%
\centerpoint%
\advance\pgf@x\pgf@xa%
\ifx\pgf@lib@sh@signal@east\pgf@lib@sh@signal@to%
\advance\pgf@x\pgf@xb%
\fi%
}%
\pgfextract@process\west{%
\centerpoint%
\advance\pgf@x-\pgf@xa%
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@to%
\advance\pgf@x-\pgf@xb%
\fi%
}%
\pgfextract@process\northeast{%
\centerpoint%
\advance\pgf@y\pgf@ya%
\advance\pgf@x\pgf@xa%
\ifx\pgf@lib@sh@signal@north\pgf@lib@sh@signal@from%
\advance\pgf@y\pgf@yb%
\fi%
\ifx\pgf@lib@sh@signal@east\pgf@lib@sh@signal@from%
\advance\pgf@x\pgf@xb%
\fi%
}%
\pgfextract@process\southeast{%
\centerpoint%
\advance\pgf@y-\pgf@ya%
\advance\pgf@x\pgf@xa%
\ifx\pgf@lib@sh@signal@south\pgf@lib@sh@signal@from%
\advance\pgf@y-\pgf@yb%
\fi%
\ifx\pgf@lib@sh@signal@east\pgf@lib@sh@signal@from%
\advance\pgf@x\pgf@xb%
\fi%
}%
\pgfextract@process\southwest{%
\centerpoint%
\advance\pgf@y-\pgf@ya%
\advance\pgf@x-\pgf@xa%
\ifx\pgf@lib@sh@signal@south\pgf@lib@sh@signal@from%
\advance\pgf@y-\pgf@yb%
\fi%
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@from%
\advance\pgf@x-\pgf@xb%
\fi%
}%
\pgfextract@process\northwest{%
\centerpoint%
\advance\pgf@y\pgf@ya%
\advance\pgf@x-\pgf@xa%
\ifx\pgf@lib@sh@signal@north\pgf@lib@sh@signal@from%
\advance\pgf@y\pgf@yb%
\fi%
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@from%
\advance\pgf@x-\pgf@xb%
\fi%
}%
\addtosavedmacro{\north}%
\addtosavedmacro{\south}%
\addtosavedmacro{\east}%
\addtosavedmacro{\west}%
\addtosavedmacro{\northeast}%
\addtosavedmacro{\southwest}%
\addtosavedmacro{\southeast}%
\addtosavedmacro{\northwest}%
\pgfextract@process\northmiter{%
\pgf@x0pt%
\ifx\pgf@lib@sh@signal@north\pgf@lib@sh@signal@nowhere%
\pgf@y\pgf@yc%
\else%
\pgf@y\pointerapexmiter\relax%
\fi%
}%
\pgfextract@process\southmiter{%
\pgf@x0pt%
\ifx\pgf@lib@sh@signal@south\pgf@lib@sh@signal@nowhere%
\pgf@y-\pgf@yc%
\else%
\pgf@y-\pointerapexmiter\relax%
\fi%
}%
\pgfextract@process\eastmiter{%
\pgf@y0pt%
\ifx\pgf@lib@sh@signal@east\pgf@lib@sh@signal@nowhere%
\pgf@x\pgf@yc%
\else%
\pgf@x\pointerapexmiter\relax%
\fi%
}%
\pgfextract@process\westmiter{%
\pgf@y0pt%
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@nowhere%
\pgf@x-\pgf@yc%
\else%
\pgf@x-\pointerapexmiter\relax%
\fi%
}%
\pgfextract@process\northeastmiter{%
\ifx\pgf@lib@sh@signal@east\pgf@lib@sh@signal@nowhere%
\pgf@x\pgf@yc
\pgf@y\pgf@yc%
\else
\ifx\pgf@lib@sh@signal@east\pgf@lib@sh@signal@from%
\pgfqpointpolar{\quarterpointerangle}{\fromcornermiter}
\else%
\ifx\pgf@lib@sh@signal@east\pgf@lib@sh@signal@to%
\pgfqpointpolar{\complementquarterpointerangle}{\tocornermiter}%
\fi%
\fi%
\fi%
\ifx\pgf@lib@sh@signal@north\pgf@lib@sh@signal@from%
\pgfqpointpolar{\complementquarterpointerangle}{\fromcornermiter}%
\else%
\ifx\pgf@lib@sh@signal@north\pgf@lib@sh@signal@to%
\pgfqpointpolar{\quarterpointerangle}{\tocornermiter}%
\fi%
\fi%
}%
\pgfextract@process\southeastmiter{%
\ifx\pgf@lib@sh@signal@east\pgf@lib@sh@signal@nowhere%
\pgf@x\pgf@yc%
\pgf@y\pgf@yc%
\else
\ifx\pgf@lib@sh@signal@east\pgf@lib@sh@signal@from%
\pgfqpointpolar{-\quarterpointerangle}{\fromcornermiter}
\else%
\ifx\pgf@lib@sh@signal@east\pgf@lib@sh@signal@to%
\pgfqpointpolar{-\complementquarterpointerangle}{\tocornermiter}%
\fi%
\fi%
\fi%
\ifx\pgf@lib@sh@signal@south\pgf@lib@sh@signal@from%
\pgfqpointpolar{-\complementquarterpointerangle}{\fromcornermiter}
\else%
\ifx\pgf@lib@sh@signal@south\pgf@lib@sh@signal@to%
\pgfqpointpolar{-\quarterpointerangle}{\tocornermiter}%
\fi%
\fi%
}%
\pgfextract@process\southwestmiter{%
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@nowhere%
\pgf@x-\pgf@yc
\pgf@y-\pgf@yc%
\else
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@from%
\pgfmathadd@{\quarterpointerangle}{180}%
\expandafter\pgfqpointpolar\expandafter{\pgfmathresult}{\fromcornermiter}
\else%
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@to%
\pgfmathadd@{\complementquarterpointerangle}{180}%
\expandafter\pgfqpointpolar\expandafter{\pgfmathresult}{\tocornermiter}%
\fi%
\fi%
\fi%
\ifx\pgf@lib@sh@signal@south\pgf@lib@sh@signal@from%
\pgfmathadd@{\complementquarterpointerangle}{180}%
\expandafter\pgfqpointpolar\expandafter{\pgfmathresult}{\fromcornermiter}%
\else%
\ifx\pgf@lib@sh@signal@south\pgf@lib@sh@signal@to%
\pgfmathadd@{\quarterpointerangle}{180}%
\expandafter\pgfqpointpolar\expandafter{\pgfmathresult}{\tocornermiter}%
\fi%
\fi%
}%
\pgfextract@process\northwestmiter{%
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@nowhere%
\pgf@x-\pgf@yc%
\pgf@y\pgf@yc%
\else
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@from%
\pgfmathsubtract@{180}{\quarterpointerangle}%
\expandafter\pgfqpointpolar\expandafter{\pgfmathresult}{\fromcornermiter}
\else%
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@to%
\pgfmathsubtract@{180}{\complementquarterpointerangle}%
\expandafter\pgfqpointpolar\expandafter{\pgfmathresult}{\tocornermiter}%
\fi%
\fi%
\fi%
\ifx\pgf@lib@sh@signal@north\pgf@lib@sh@signal@from%
\pgfmathsubtract@{180}{\complementquarterpointerangle}%
\expandafter\pgfqpointpolar\expandafter{\pgfmathresult}{\fromcornermiter}%
\else%
\ifx\pgf@lib@sh@signal@west\pgf@lib@sh@signal@to%
\pgfmathsubtract@{180}{\quarterpointerangle}%
\expandafter\pgfqpointpolar\expandafter{\pgfmathresult}{\tocornermiter}%
\fi%
\fi%
}%
\addtosavedmacro{\northmiter}%
\addtosavedmacro{\southmiter}%
\addtosavedmacro{\eastmiter}%
\addtosavedmacro{\westmiter}%
\addtosavedmacro{\northeastmiter}%
\addtosavedmacro{\southeastmiter}%
\addtosavedmacro{\southwestmiter}%
\addtosavedmacro{\northwestmiter}%
\pgfextract@process\anchornorth{%
\pgfpointadd{\north}{\northmiter}%
}%
\pgfextract@process\anchorsouth{%
\pgfpointadd{\south}{\southmiter}%
}%
\pgfextract@process\anchoreast{%
\pgfpointadd{\east}{\eastmiter}%
}%
\pgfextract@process\anchorwest{%
\pgfpointadd{\west}{\westmiter}%
}%
\pgfextract@process\anchornortheast{%
\pgfpointadd{\northeast}{\northeastmiter}%
}%
\pgfextract@process\anchorsoutheast{%
\pgfpointadd{\southeast}{\southeastmiter}%
}%
\pgfextract@process\anchorsouthwest{%
\pgfpointadd{\southwest}{\southwestmiter}%
}%
\pgfextract@process\anchornorthwest{%
\pgfpointadd{\northwest}{\northwestmiter}%
}%
\addtosavedmacro{\anchornorth}%
\addtosavedmacro{\anchorsouth}%
\addtosavedmacro{\anchoreast}%
\addtosavedmacro{\anchorwest}%
\addtosavedmacro{\anchornortheast}%
\addtosavedmacro{\anchorsouthwest}%
\addtosavedmacro{\anchorsoutheast}%
\addtosavedmacro{\anchornorthwest}%
}%
\savedanchor\centerpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor\basepoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\savedanchor\midpoint{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+.5ex}%
}%
\anchor{center}{\centerpoint}%
\anchor{base}{\basepoint}%
\anchor{base east}{%
\installsignalparameters%
\anchoreast%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\anchorsoutheast%
\ifdim\pgf@xa>\pgf@x%
\pgfutil@tempdima\pgf@xa%
\else%
\pgfutil@tempdima\pgf@x%
\fi%
\pgfextract@process\externalpoint{%
\basepoint%
\pgf@x\pgfutil@tempdima%
}
\basepoint%
\let\firstpoint\anchoreast%
\ifdim\pgf@y<\pgf@ya%
\let\secondpoint\anchorsoutheast%
\else%
\let\secondpoint\anchornortheast%
\fi%
\pgfpointintersectionoflines{\basepoint}{\externalpoint}%
{\firstpoint}{\secondpoint}%
}%
\anchor{base west}{%
\installsignalparameters%
\anchorwest%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\anchorsouthwest%
\ifdim\pgf@xa<\pgf@x%
\pgfutil@tempdima\pgf@xa%
\else%
\pgfutil@tempdima\pgf@x%
\fi%
\pgfextract@process\externalpoint{%
\basepoint%
\pgf@x\pgfutil@tempdima%
}
\basepoint%
\let\firstpoint\anchorwest%
\ifdim\pgf@y<\pgf@ya%
\let\secondpoint\anchorsouthwest%
\else%
\let\secondpoint\anchornorthwest%
\fi%
\pgfpointintersectionoflines{\basepoint}{\externalpoint}%
{\firstpoint}{\secondpoint}%
}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{%
\installsignalparameters%
\anchoreast%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\anchorsoutheast%
\ifdim\pgf@xa>\pgf@x%
\pgfutil@tempdima\pgf@xa%
\else%
\pgfutil@tempdima\pgf@x%
\fi%
\pgfextract@process\externalpoint{%
\midpoint%
\pgf@x\pgfutil@tempdima%
}
\midpoint%
\let\firstpoint\anchoreast%
\ifdim\pgf@y<\pgf@ya%
\let\secondpoint\anchorsoutheast%
\else%
\let\secondpoint\anchornortheast%
\fi%
\pgfpointintersectionoflines{\midpoint}{\externalpoint}%
{\firstpoint}{\secondpoint}%
}%
\anchor{mid west}{%
\installsignalparameters%
\anchorwest%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\anchorsouthwest%
\ifdim\pgf@xa<\pgf@x%
\pgfutil@tempdima\pgf@xa%
\else%
\pgfutil@tempdima\pgf@x%
\fi%
\pgfextract@process\externalpoint{%
\midpoint%
\pgf@x\pgfutil@tempdima%
}
\midpoint%
\let\firstpoint\anchorwest%
\ifdim\pgf@y<\pgf@ya%
\let\secondpoint\anchorsouthwest%
\else%
\let\secondpoint\anchornorthwest%
\fi%
\pgfpointintersectionoflines{\midpoint}{\externalpoint}%
{\firstpoint}{\secondpoint}%
}%
\anchor{north}{\installsignalparameters\anchornorth}%
\anchor{south}{\installsignalparameters\anchorsouth}%
\anchor{east}{\installsignalparameters\anchoreast}%
\anchor{west}{\installsignalparameters\anchorwest}%
\anchor{north east}{\installsignalparameters\anchornortheast}%
\anchor{south east}{\installsignalparameters\anchorsoutheast}%
\anchor{south west}{\installsignalparameters\anchorsouthwest}%
\anchor{north west}{\installsignalparameters\anchornorthwest}%
\backgroundpath{%
\installsignalparameters%
\pgfpathmoveto{\north}%
\pgfpathlineto{\northeast}%
\pgfpathlineto{\east}%
\pgfpathlineto{\southeast}%
\pgfpathlineto{\south}%
\pgfpathlineto{\southwest}%
\pgfpathlineto{\west}%
\pgfpathlineto{\northwest}%
\pgfpathclose%
}%
\anchorborder{%
\edef\externalx{\the\pgf@x}%
\edef\externaly{\the\pgf@y}%
\centerpoint%
\pgf@xa\externalx\relax%
\pgf@ya\externaly\relax%
\advance\pgf@xa\pgf@x%
\advance\pgf@ya\pgf@y%
\edef\externalx{\the\pgf@xa}%
\edef\externaly{\the\pgf@ya}%
\installsignalparameters%
\pgfmathanglebetweenpoints{\centerpoint}{\pgfqpoint{\externalx}{\externaly}}%
\let\externalangle\pgfmathresult%
\pgfmathanglebetweenpoints{\centerpoint}{\anchorwest}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\centerpoint}{\anchornorth}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\centerpoint}{\anchornortheast}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\let\firstpoint\anchoreast%
\let\secondpoint\anchornortheast%
\else%
\let\secondpoint\anchornortheast%
\let\firstpoint\anchornorth%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\anchornorthwest}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\let\firstpoint\anchornorth%
\let\secondpoint\anchornorthwest%
\else%
\let\secondpoint\anchornorthwest%
\let\firstpoint\anchorwest%
\fi%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\anchorsouth}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\pgfmathanglebetweenpoints{\centerpoint}{\anchorsouthwest}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\let\firstpoint\anchorwest%
\let\secondpoint\anchorsouthwest%
\else%
\let\secondpoint\anchorsouthwest%
\let\firstpoint\anchorsouth%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\anchorsoutheast}%
\ifdim\externalangle pt<\pgfmathresult pt\relax%
\let\firstpoint\anchorsouth%
\let\secondpoint\anchorsoutheast%
\else%
\let\secondpoint\anchorsoutheast%
\let\firstpoint\anchoreast%
\fi%
\fi%
\fi%
\pgfpointintersectionoflines{\centerpoint}{\pgfqpoint{\externalx}{\externaly}}%
{\firstpoint}{\secondpoint}%
}%
}%
\pgfkeys{/pgf/.cd,
tape bend top/.initial=in and out,
tape bend bottom/.initial=in and out,
tape bend/.style={/pgf/tape bend top={#1}, /pgf/tape bend bottom={#1}},
tape bend height/.initial=5pt,
}%
\def\pgf@lib@sh@inandouttext{in and out}%
\def\pgf@lib@sh@outandintext{out and in}%
\def\pgf@lib@sh@nonetext{none}%
\pgfdeclareshape{tape}{%
\savedmacro\tapedimensions{%
\pgfmathsetlength\pgf@x{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y.5\dp\pgfnodeparttextbox%
\pgfmathsetlengthmacro\outerxsep{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlengthmacro\outerysep{\pgfkeysvalueof{/pgf/outer ysep}}%
\addtosavedmacro\outerxsep%
\addtosavedmacro\outerysep%
\pgfmathsetlength\pgfutil@tempdima{\pgfkeysvalueof{/pgf/tape bend height}}%
\pgfutil@tempdima.5\pgfutil@tempdima%
\edef\halfbendheight{\the\pgfutil@tempdima}%
\addtosavedmacro\halfbendheight%
\pgfkeysgetvalue{/pgf/tape bend top}{\topbendstyle}%
\pgfkeysgetvalue{/pgf/tape bend bottom}{\bottombendstyle}%
\addtosavedmacro\topbendstyle%
\addtosavedmacro\bottombendstyle%
\ifx\topbendstyle\pgf@lib@sh@nonetext%
\else%
\advance\pgf@y\pgfutil@tempdima%
\fi%
\ifx\bottombendstyle\pgf@lib@sh@none%
\else%
\advance\pgf@y\pgfutil@tempdima%
\fi%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum width}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@x<.5\pgf@xa%
\pgf@x.5\pgf@xa%
\fi%
\ifdim\pgf@y<.5\pgf@ya%
\pgf@y.5\pgf@ya%
\fi%
\ifx\topbendstyle\pgf@lib@sh@nonetext%
\else%
\advance\pgf@y-\pgfutil@tempdima%
\fi%
\ifx\bottombendstyle\pgf@lib@sh@nonetext%
\else%
\advance\pgf@y-\pgfutil@tempdima%
\fi%
\pgfutil@tempdima3.414213\pgfutil@tempdima%
\edef\bendyradius{\the\pgfutil@tempdima}%
\addtosavedmacro\bendyradius%
\advance\pgfutil@tempdima\outerysep%
\edef\outerbendyradius{\the\pgfutil@tempdima}%
\addtosavedmacro\outerbendyradius%
\advance\pgfutil@tempdima-\outerysep%
\advance\pgfutil@tempdima-\outerysep%
\edef\innerbendyradius{\the\pgfutil@tempdima}%
\addtosavedmacro\innerbendyradius%
\pgfutil@tempdima0.707106\pgf@x%
\edef\bendxradius{\the\pgfutil@tempdima}%
\addtosavedmacro\bendxradius%
\advance\pgfutil@tempdima\outerxsep%
\edef\outerbendxradius{\the\pgfutil@tempdima}%
\addtosavedmacro\outerbendxradius%
\advance\pgfutil@tempdima-\outerxsep%
\advance\pgfutil@tempdima-\outerxsep%
\edef\innerbendxradius{\the\pgfutil@tempdima}%
\addtosavedmacro\innerbendxradius%
\edef\halfwidth{\the\pgf@x}%
\edef\halfheight{\the\pgf@y}%
\addtosavedmacro\halfwidth%
\addtosavedmacro\halfheight%
\advance\pgf@x\outerxsep%
\edef\outerhalfwidth{\the\pgf@x}%
\addtosavedmacro\outerhalfwidth%
\pgf@xc\bendxradius%
\pgf@yc\bendyradius%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@yc}}{\pgfmath@tonumber{\pgf@xc}}%
\pgfmathatan{\pgfmathresult}%
\pgf@xc\pgfmathresult pt\relax%
\pgf@xc.5\pgf@xc%
\edef\halfangle{\pgfmath@tonumber{\pgf@xc}}%
\addtosavedmacro\halfangle%
\pgf@xc45pt\relax%
\advance\pgf@xc-\halfangle pt%
\pgfmathcot@{\pgfmath@tonumber{\pgf@xc}}%
\let\cothalfanglein\pgfmathresult%
\addtosavedmacro\cothalfanglein%
\pgf@xc90pt\relax%
\advance\pgf@xc-\halfangle pt%
\pgfmathcot@{\pgfmath@tonumber{\pgf@xc}}%
\let\cothalfangleout\pgfmathresult%
\addtosavedmacro\cothalfangleout%
}%
\savedanchor{\centerpoint}{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y.5\ht\pgfnodeparttextbox%
\advance\pgf@y-.5\dp\pgfnodeparttextbox%
}%
\savedanchor{\midpoint}{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@y{+0.5ex}%
}%
\savedanchor{\basepoint}{%
\pgf@x.5\wd\pgfnodeparttextbox%
\pgf@y0pt%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\midpoint}%
\anchor{mid east}{\tapedimensions\midpoint\advance\pgf@x\outerhalfwidth}%
\anchor{mid west}{\tapedimensions\midpoint\advance\pgf@x-\outerhalfwidth}%
\anchor{base}{\basepoint}%
\anchor{base east}{\tapedimensions\basepoint\advance\pgf@x\outerhalfwidth}%
\anchor{base west}{\tapedimensions\basepoint\advance\pgf@x-\outerhalfwidth}%
\anchor{north}{%
\csname pgf@anchor@tape@north east\endcsname%
\pgf@ya\pgf@y%
\csname pgf@anchor@tape@north west\endcsname%
\advance\pgf@ya\pgf@y%
\centerpoint%
\pgf@y.5\pgf@ya%
}%
\anchor{south}{%
\csname pgf@anchor@tape@south east\endcsname%
\pgf@ya\pgf@y%
\csname pgf@anchor@tape@south west\endcsname%
\advance\pgf@ya\pgf@y%
\centerpoint%
\pgf@y.5\pgf@ya%
}%
\anchor{east}{%
\tapedimensions%
\centerpoint%
\advance\pgf@x\outerhalfwidth%
}%
\anchor{west}{%
\tapedimensions%
\centerpoint%
\advance\pgf@x-\outerhalfwidth%
}%
\anchor{north east}{%
\tapedimensions%
\centerpoint%
\advance\pgf@x\outerhalfwidth%
\advance\pgf@y\halfheight%
\pgf@yc\outerysep%
\ifx\topbendstyle\pgf@lib@sh@inandouttext%
\advance\pgf@y\halfbendheight%
\advance\pgf@y\cothalfangleout\pgf@yc%
\else%
\ifx\topbendstyle\pgf@lib@sh@outandintext%
\advance\pgf@y\halfbendheight%
\advance\pgf@y\cothalfanglein\pgf@yc%
\else%
\advance\pgf@y\pgf@yc%
\fi%
\fi%
}%
\anchor{north west}{%
\tapedimensions%
\centerpoint%
\advance\pgf@x-\outerhalfwidth%
\advance\pgf@y\halfheight%
\pgf@yc\outerysep%
\ifx\topbendstyle\pgf@lib@sh@inandouttext%
\advance\pgf@y\halfbendheight%
\advance\pgf@y\cothalfanglein\pgf@yc%
\else%
\ifx\topbendstyle\pgf@lib@sh@outandintext%
\advance\pgf@y\halfbendheight%
\advance\pgf@y\cothalfangleout\pgf@yc%
\else%
\advance\pgf@y\pgf@yc%
\fi%
\fi%
}%
\anchor{south east}{%
\tapedimensions%
\centerpoint%
\advance\pgf@x\outerhalfwidth%
\advance\pgf@y-\halfheight%
\pgf@yc\outerysep%
\ifx\topbendstyle\pgf@lib@sh@outandintext%
\advance\pgf@y-\halfbendheight%
\advance\pgf@y-\cothalfangleout\pgf@yc%
\else%
\ifx\topbendstyle\pgf@lib@sh@inandouttext%
\advance\pgf@y-\halfbendheight%
\advance\pgf@y-\cothalfanglein\pgf@yc%
\else%
\advance\pgf@y-\pgf@yc%
\fi%
\fi%
}%
\anchor{south west}{%
\tapedimensions%
\centerpoint%
\advance\pgf@x-\outerhalfwidth%
\advance\pgf@y-\halfheight%
\pgf@yc\outerysep%
\ifx\topbendstyle\pgf@lib@sh@outandintext%
\advance\pgf@y-\halfbendheight%
\advance\pgf@y-\cothalfanglein\pgf@yc%
\else%
\ifx\topbendstyle\pgf@lib@sh@inandouttext%
\advance\pgf@y-\halfbendheight%
\advance\pgf@y-\cothalfangleout\pgf@yc%
\else%
\advance\pgf@y-\pgf@yc%
\fi%
\fi%
}%
\backgroundpath{%
\tapedimensions%
\pgf@xc\halfwidth%
\pgf@yc\halfheight%
\pgf@xc\bendxradius%
\pgf@yc\bendyradius%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\pgfqpoint{-\halfwidth}{0pt}}%
\pgfpathlineto{\pgfqpoint{-\halfwidth}{\halfheight}}%
\ifx\topbendstyle\pgf@lib@sh@inandouttext%
\pgfpathlineto{\pgf@x-\halfwidth\pgf@y\halfheight\advance\pgf@y\halfbendheight}%
\pgfpatharc{225}{315}{\bendxradius and \bendyradius}%
\pgfpatharc{135}{45}{\bendxradius and \bendyradius}%
\else%
\ifx\topbendstyle\pgf@lib@sh@outandintext%
\pgfpathlineto{\pgf@x-\halfwidth\pgf@y\halfheight\advance\pgf@y\halfbendheight}%
\pgfpatharc{135}{45}{\bendxradius and \bendyradius}%
\pgfpatharc{225}{315}{\bendxradius and \bendyradius}%
\else%
\pgfpathlineto{\pgfqpoint{\halfwidth}{\halfheight}}%
\fi%
\fi%
\pgfpathlineto{\pgfqpoint{\halfwidth}{-\halfheight}}%
\ifx\bottombendstyle\pgf@lib@sh@inandouttext%
\pgfpathlineto{\pgf@x\halfwidth\pgf@y-\halfheight\advance\pgf@y-\halfbendheight}%
\pgfpatharc{45}{135}{\bendxradius and \bendyradius}%
\pgfpatharc{315}{225}{\bendxradius and \bendyradius}%
\else%
\ifx\bottombendstyle\pgf@lib@sh@outandintext%
\pgfpathlineto{\pgf@x\halfwidth\pgf@y-\halfheight\advance\pgf@y-\halfbendheight}%
\pgfpatharc{315}{225}{\bendxradius and \bendyradius}%
\pgfpatharc{45}{135}{\bendxradius and \bendyradius}%
\else%
\pgfpathlineto{\pgfqpoint{-\halfwidth}{-\halfheight}}%
\fi%
\fi%
\pgfpathclose%
}%
}%
\anchorborder{%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgfextract@process\externalpoint{%
\centerpoint%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
\pgfmathanglebetweenpoints{\centerpoint}{\externalpoint}%
\let\externalangle\pgfmathresult%
\tapedimensions%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@tape@north west\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt%
\ifdim\externalangle pt<90pt%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@tape@north east\endcsname}%
\ifdim\externalangle pt<\pgfmathresult pt%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{\csname pgf@anchor@tape@north east\endcsname}%
{\csname pgf@anchor@tape@south east\endcsname}%
\else%
\ifx\topbendstyle\pgf@lib@sh@inandouttext%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{%
\centerpoint%
\pgf@xc\halfwidth%
\advance\pgf@x.5\pgf@xc%
\advance\pgf@y\halfheight%
\advance\pgf@y\halfbendheight%
\pgf@yc\bendyradius%
\advance\pgf@y-.707106\pgf@yc%
}%
{5}{175}{\outerbendxradius and \outerbendyradius}%
\else%
\ifx\topbendstyle\pgf@lib@sh@outandintext%
\pgfmathpointintersectionoflineandarc{\centerpoint}{\externalpoint}%
{%
\centerpoint%
\pgf@xc\halfwidth%
\advance\pgf@x.5\pgf@xc%
\advance\pgf@y\halfheight%
\advance\pgf@y\halfbendheight%
\pgf@yc\bendyradius%
\advance\pgf@y.707106\pgf@yc%
}%
{185}{355}{\innerbendxradius and \innerbendyradius}%
\else%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{\csname pgf@anchor@tape@north east\endcsname}%
{\csname pgf@anchor@tape@north west\endcsname}%
\fi%
\fi%
\fi%
\else%
\ifx\topbendstyle\pgf@lib@sh@inandouttext%
\pgfmathpointintersectionoflineandarc{\centerpoint}{\externalpoint}%
{%
\centerpoint%
\pgf@xc\halfwidth%
\advance\pgf@x-.5\pgf@xc%
\advance\pgf@y\halfheight%
\advance\pgf@y\halfbendheight%
\pgf@yc\bendyradius%
\advance\pgf@y.707106\pgf@yc%
}%
{185}{355}{\innerbendxradius and \innerbendyradius}%
\else%
\ifx\topbendstyle\pgf@lib@sh@outandintext%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{%
\centerpoint%
\pgf@xc\halfwidth%
\advance\pgf@x-.5\pgf@xc%
\advance\pgf@y\halfheight%
\advance\pgf@y\halfbendheight%
\pgf@yc\bendyradius%
\advance\pgf@y-.707106\pgf@yc%
}%
{5}{175}{\outerbendxradius and \outerbendyradius}%
\else%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{\csname pgf@anchor@tape@north east\endcsname}%
{\csname pgf@anchor@tape@north west\endcsname}%
\fi%
\fi%
\fi%
\else%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@tape@south west\endcsname}%
\ifdim\externalangle pt>\pgfmathresult pt%
\ifdim\externalangle pt>270pt%
\pgfmathanglebetweenpoints{\centerpoint}{\csname pgf@anchor@tape@south east\endcsname}%
\ifdim\externalangle pt>\pgfmathresult pt%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{\csname pgf@anchor@tape@north east\endcsname}%
{\csname pgf@anchor@tape@south east\endcsname}%
\else%
\ifx\bottombendstyle\pgf@lib@sh@inandouttext%
\pgfmathpointintersectionoflineandarc{\centerpoint}{\externalpoint}%
{%
\centerpoint%
\pgf@xc\halfwidth%
\advance\pgf@x.5\pgf@xc%
\advance\pgf@y-\halfheight%
\advance\pgf@y-\halfbendheight%
\pgf@yc\bendyradius%
\advance\pgf@y-.707106\pgf@yc%
}%
{5}{175}{\innerbendxradius and \innerbendyradius}%
\else%
\ifx\bottombendstyle\pgf@lib@sh@outandintext%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{%
\centerpoint%
\pgf@xc\halfwidth%
\advance\pgf@x.5\pgf@xc%
\advance\pgf@y-\halfheight%
\advance\pgf@y-\halfbendheight%
\pgf@yc\bendyradius%
\advance\pgf@y.707106\pgf@yc%
}%
{185}{355}{\outerbendxradius and \outerbendyradius}%
\else%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{\csname pgf@anchor@tape@south east\endcsname}%
{\csname pgf@anchor@tape@south west\endcsname}%
\fi%
\fi%
\fi%
\else%
\ifx\bottombendstyle\pgf@lib@sh@inandouttext%
\pgfmathpointintersectionoflineandarc{\externalpoint}{\centerpoint}%
{%
\centerpoint%
\pgf@xc\halfwidth%
\advance\pgf@x-.5\pgf@xc%
\advance\pgf@y-\halfheight%
\advance\pgf@y-\halfbendheight%
\pgf@yc\bendyradius%
\advance\pgf@y.707106\pgf@yc%
}%
{185}{355}{\outerbendxradius and \outerbendyradius}%
\else%
\ifx\bottombendstyle\pgf@lib@sh@outandintext%
\pgfmathpointintersectionoflineandarc{\centerpoint}{\externalpoint}%
{%
\centerpoint%
\pgf@xc\halfwidth%
\advance\pgf@x-.5\pgf@xc%
\advance\pgf@y-\halfheight%
\advance\pgf@y-\halfbendheight%
\pgf@yc\bendyradius%
\advance\pgf@y-.707106\pgf@yc%
}%
{5}{175}{\innerbendxradius and \innerbendyradius}%
\else%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{\csname pgf@anchor@tape@south east\endcsname}%
{\csname pgf@anchor@tape@south west\endcsname}%
\fi%
\fi%
\fi%
\else%
\pgfpointintersectionoflines{\externalpoint}{\centerpoint}%
{\csname pgf@anchor@tape@north west\endcsname}%
{\csname pgf@anchor@tape@south west\endcsname}%
\fi%
\fi%
}%
}%
\pgfkeys{/pgf/.cd,
magnifying glass handle angle/.initial=-45,
magnifying glass handle aspect/.initial=1.5,
}%
\pgfdeclareshape{magnifying glass}
{%
\inheritsavedanchors[from=circle]%
\inheritanchorborder[from=circle]%
\inheritanchor[from=circle]{north}%
\inheritanchor[from=circle]{north west}%
\inheritanchor[from=circle]{north east}%
\inheritanchor[from=circle]{center}%
\inheritanchor[from=circle]{west}%
\inheritanchor[from=circle]{east}%
\inheritanchor[from=circle]{mid}%
\inheritanchor[from=circle]{mid west}%
\inheritanchor[from=circle]{mid east}%
\inheritanchor[from=circle]{base}%
\inheritanchor[from=circle]{base west}%
\inheritanchor[from=circle]{base east}%
\inheritanchor[from=circle]{south}%
\inheritanchor[from=circle]{south west}%
\inheritanchor[from=circle]{south east}%
\inheritbackgroundpath[from=circle]%
\foregroundpath{
\centerpoint%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgfutil@tempdima=\radius%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xb<\pgf@yb%
\advance\pgfutil@tempdima by-\pgf@yb%
\else%
\advance\pgfutil@tempdima by-\pgf@xb%
\fi%
\pgfpathmoveto{\pgfpointadd{\pgfqpoint{\pgf@xc}{\pgf@yc}}
{\pgfpointpolar{\pgfkeysvalueof{/pgf/magnifying glass handle angle}}{\pgfutil@tempdima}}}
\pgfpathlineto{\pgfpointadd{\pgfqpoint{\pgf@xc}{\pgf@yc}}
{\pgfpointpolar{\pgfkeysvalueof{/pgf/magnifying glass handle angle}}{\pgfutil@tempdima+\pgfutil@tempdima*(\pgfkeysvalueof{/pgf/magnifying glass handle aspect})}}}
\pgfsetarrowsstart{}
\pgfsetarrowsend{}
}%
}%
\pgfkeys{%
/pgf/magnetic tape tail/.initial=0.15,
/pgf/magnetic tape tail extend/.initial=0cm,
}%
\pgfdeclareshape{magnetic tape}{%
\nodeparts{text}%
\savedmacro\installparameters{%
\pgf@x=0.5\wd\pgfnodeparttextbox%
\pgf@y=0.5\ht\pgfnodeparttextbox%
\advance\pgf@y by-0.5\dp\pgfnodeparttextbox%
\edef\centerpoint{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgf@x=\wd\pgfnodeparttextbox%
\pgf@y=\ht\pgfnodeparttextbox%
\advance\pgf@y by\dp\pgfnodeparttextbox%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@x by2.0\pgf@xa%
\advance\pgf@y by2.0\pgf@ya%
\ifdim\pgf@y>\pgf@x%
\pgf@x=\pgf@y%
\fi%
\pgf@x=1.414213\pgf@x%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/minimum width}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@x<\pgf@xa%
\pgf@x=\pgf@xa%
\fi%
\ifdim\pgf@x<\pgf@ya%
\pgf@x=\pgf@ya%
\fi%
\pgf@x=0.5\pgf@x%
\edef\radius{\the\pgf@x}%
\pgfmathparse{max(\pgfkeysvalueof{/pgf/magnetic tape tail extend},0)}%
\edef\tailextend{\pgfmathresult pt}%
\pgfmathparse{min(max(\pgfkeysvalueof{/pgf/magnetic tape tail},0),1)}%
\pgf@xa=\pgfmathresult\pgf@x%
\edef\tailheight{\the\pgf@xa}%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xa<\pgf@ya%
\pgf@xa=\pgf@ya%
\fi%
\edef\outersep{\the\pgf@xa}%
\pgfmathparse{\outersep+\radius}%
\edef\outerradius{\pgfmathresult pt}%
\pgfmathparse{(\radius-\tailheight)/\radius}%
\pgfmathasin@{\pgfmathresult}%
\pgfmathadd@{-\pgfmathresult}{360}%
\let\tailangle=\pgfmathresult%
\pgfmathparse{\outerradius/(\outerradius+\tailextend)}%
\pgfmathatan@{\pgfmathresult}%
\pgfmathadd@{-\pgfmathresult}{360}%
\let\tailbottomangle=\pgfmathresult%
\pgfmathparse{(\outerradius-\outersep-\tailheight-\outersep)/(\outerradius+\tailextend)}%
\pgfmathatan@{\pgfmathresult}%
\pgfmathadd@{-\pgfmathresult}{360}%
\let\tailtopangle=\pgfmathresult%
\addtosavedmacro\radius%
\addtosavedmacro\outerradius%
\addtosavedmacro\outersep%
\addtosavedmacro\tailheight%
\addtosavedmacro\tailextend
\addtosavedmacro\tailangle%
\addtosavedmacro\tailtopangle%
\addtosavedmacro\tailbottomangle%
\addtosavedmacro\centerpoint%
}%
\savedanchor{\base}{\pgfqpoint{0.5\wd\pgfnodeparttextbox}{0pt}}%
\savedanchor{\mid}{\pgfqpoint{0.5\wd\pgfnodeparttextbox}{0pt}\pgfmathsetlength\pgf@y{.5ex}}%
\anchor{center}{\installparameters\centerpoint}%
\anchor{base}{\base}%
\anchor{mid}{\mid}%
\anchor{base west}{\installparameters\pgfpointadd{\base}{\pgfqpoint{-\outerradius}{0pt}}}%
\anchor{base east}{\installparameters\pgfpointadd{\base}{\pgfqpoint{\outerradius}{0pt}}}%
\anchor{mid west}{\installparameters\pgfpointadd{\mid}{\pgfqpoint{-\outerradius}{0pt}}}%
\anchor{mid east}{\installparameters\pgfpointadd{\mid}{\pgfqpoint{\outerradius}{0pt}}}%
\anchor{north}{\installparameters%
\pgfpointadd{\centerpoint}{\pgfqpoint{0pt}{\outerradius}}}%
\anchor{north east}{\installparameters%
\pgfpointadd{\centerpoint}{\pgfqpointpolar{45}{\outerradius}}}%
\anchor{south}{\installparameters%
\pgfpointadd{\centerpoint}{\pgfqpoint{0pt}{-\outerradius}}}%
\anchor{south east}{\installparameters%
\pgfpointadd{\centerpoint}{\pgfqpoint{\outerradius}{-\outerradius}}}%
\anchor{east}{\installparameters%
\pgfpointadd{\centerpoint}{\pgfqpoint{\outerradius}{0pt}}}%
\anchor{south west}{\installparameters%
\pgfpointadd{\centerpoint}{\pgfqpointpolar{225}{\outerradius}}}%
\anchor{west}{\installparameters%
\pgfpointadd{\centerpoint}{\pgfqpoint{-\outerradius}{0pt}}}%
\anchor{north west}{\installparameters%
\pgfpointadd{\centerpoint}{\pgfqpointpolar{135}{\outerradius}}}%
\anchor{tail east}{\installparameters%
\pgfpointadd{\centerpoint}{\pgfpoint{\radius+\tailextend+\outersep}{-\outerradius+\outersep+\tailheight/2}}}%
\anchor{tail south east}{\installparameters%
\pgfpointadd{\centerpoint}{\pgfpoint{\radius+\tailextend+\outersep}{-\outerradius}}}%
\anchor{tail north east}{\installparameters%
\pgfpointadd{\centerpoint}{\pgfpoint{\radius+\tailextend+\outersep}{-\outerradius+\outersep+\tailheight+\outersep}}}%
\backgroundpath{
\installparameters%
{%
\pgftransformshift{\centerpoint}%
\pgfpathmoveto{\pgfpointpolar{\tailangle}{\radius}}%
\pgfpatharc{\tailangle}{360}{\radius}%
\pgfpatharc{0}{270}{\radius}%
\pgfpathlineto{\pgfpoint{\radius+\tailextend}{-\radius}}%
\pgfpathlineto{\pgfpoint{\radius+\tailextend}{-\radius+\tailheight}}%
\pgfpathclose%
}%
}%
\anchorborder{%
\pgfextract@process\externalpoint{}%
\installparameters%
\pgfmathanglebetweenpoints{\pgfpointorigin}{\externalpoint}
\ifdim\pgfmathresult pt<270pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointborderellipse%
{\externalpoint}%
{\pgfqpoint{\outerradius}{\outerradius}}%
}%
\else%
\ifdim\pgfmathresult pt<\tailbottomangle pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointintersectionoflines%
{\externalpoint}{\pgfpointorigin}%
{\pgfqpoint{0pt}{-\outerradius}}{\pgfqpoint{\outerradius}{-\outerradius}}%
}%
\else%
\ifdim\pgfmathresult pt<\tailtopangle pt\relax%
\pgfpointadd{\centerpoint}{%
\pgfpointintersectionoflines%
{\externalpoint}{\pgfpointorigin}%
{\pgfqpoint{\outerradius}{\outerradius}}{\pgfqpoint{\outerradius}{-\outerradius}}%
}%
\else%
\pgfpointadd{\centerpoint}{%
\pgfpointborderellipse%
{\externalpoint}%
{\pgfqpoint{\outerradius}{\outerradius}}%
}%
\fi%
\fi%
\fi%
}%
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/libraries/shapes/pgflibraryshapes.symbols.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfint.code.tex ====
\ifx\pgfintloaded\pgfutil@undefined
\let\pgfintloaded=\relax
\else
\expandafter\endinput
\fi
\def\pgfinteval#1{\number\numexpr#1\relax}
\def\pgfintabs#1{\number\expandafter\pgfint@abs\number\numexpr#1\relax}
\def\pgfint@abs#1{\ifx-#1\else\expandafter#1\fi}
\def\pgfintmax#1#2{%
\number\expandafter\pgfint@minmax
\number\numexpr#1\expandafter;%
\number\numexpr#2;%
>
}
\def\pgfintmin#1#2{%
\number\expandafter\pgfint@minmax
\number\numexpr#1\expandafter;%
\number\numexpr#2;%
<
}
\def\pgfint@minmax#1;#2;#3{%
\ifnum#1#3#2
#1%
\else
#2%
\fi
}
\def\pgfintdivtruncate#1#2{%
\number\numexpr\expandafter\pgfint@divtruncate
\number\numexpr#1\expandafter;%
\number\numexpr#2;%
\relax
}
\def\pgfint@divtruncate#1#2;#3#4;{%
\ifx0#1
0%
\else
(#1#2%
\ifx-#1 +\else-\fi
(\ifx-#3 -\fi#3#4-1)/2%
)%
\fi
/#3#4%
}
\def\pgfintdivfloor#1#2{%
\number\numexpr\expandafter\pgfint@divfloor
\number\numexpr#1\expandafter;%
\number\numexpr#2;%
\relax
}
\def\pgfint@divfloor#1#2;#3#4;{%
\ifx0#1
0%
\else
\ifnum
0\ifx-#1\ifx#3-\else1\fi\fi
0\ifx-#3\ifx#1-\else1\fi\fi
>0
\pgfint@@divfloor#1#2;#3#4;-+%
\else
\pgfint@@divfloor#1#2;#3#4;+-%
\fi
\fi
/#3#4%
}
\def\pgfint@@divfloor#1#2;#3#4;#5#6{%
(#1#2%
\ifx-#1 #5\else#6\fi
(\ifx-#3 -\fi#3#4#61)/2%
)%
}
\def\pgfintdivround#1#2{\number\numexpr(#1)/(#2)\relax}
\def\pgfintmod#1#2{%
\number\numexpr\expandafter\pgfint@mod%
\number\numexpr#1\expandafter;%
\number\numexpr#2;%
\relax
}
\def\pgfint@mod#1;#2;{#1-(\pgfint@divfloor#1;#2;)*#2}
\def\pgfintset#1#2{#1 \numexpr#2\relax}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfint.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmath.code.tex ====
\ifx\pgfmathloaded\pgfutil@undefined
\let\pgfmathloaded=\relax
\else
\expandafter\endinput
\fi
\ifx\pgfkeysloaded\pgfutil@undefined
\input pgfkeys.code.tex
\fi
\input pgfmathutil.code.tex
\input pgfmathparser.code.tex
\input pgfmathfunctions.code.tex
\input pgfmathfunctions.basic.code.tex
\input pgfmathfunctions.trigonometric.code.tex
\input pgfmathfunctions.random.code.tex
\input pgfmathfunctions.comparison.code.tex
\input pgfmathfunctions.base.code.tex
\input pgfmathfunctions.round.code.tex
\input pgfmathfunctions.misc.code.tex
\input pgfmathfunctions.integerarithmetics.code.tex
\input pgfmathcalc.code.tex
\input pgfmathfloat.code.tex
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmath.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathcalc.code.tex ====
\def\pgfmathsetlength#1#2{%
\expandafter\pgfmath@onquick#2\pgfmath@%
{%
\begingroup%
\pgfmath@selectfont%
#1#2\unskip%
\expandafter\endgroup%
\expandafter#1\the#1\relax%
}%
{%
\pgfmathparse{#2}%
\ifpgfmathmathunitsdeclared%
#1\pgfmathresult mu\relax%
\else%
#1\pgfmathresult pt\relax%
\fi%
}%
\ignorespaces%
}
\def\pgfmathaddtolength#1#2{%
\expandafter\pgfmath@onquick#2\pgfmath@%
{%
\begingroup%
\pgfmath@selectfont%
\advance#1#2\unskip%
\expandafter%
\endgroup%
\expandafter#1\the#1\relax%
}%
{%
\pgfmathparse{#2}%
\ifpgfmathmathunitsdeclared%
\advance#1\pgfmathresult mu\relax%
\else%
\advance#1\pgfmathresult pt\relax%
\fi%
}%
\ignorespaces%
}
\def\pgfmathsetcount#1#2{%
\expandafter\pgfmath@onquick#2\pgfmath@%
{%
\afterassignment\pgfmath@gobbletilpgfmath@%
#1#2\relax\pgfmath@%
}%
{%
\pgfmathparse{#2}%
\afterassignment\pgfmath@gobbletilpgfmath@%
#1\pgfmathresult\relax\pgfmath@%
}%
\ignorespaces%
}
\def\pgfmathaddtocount#1#2{%
\expandafter\pgfmath@onquick#2\pgfmath@%
{%
\edef\pgfmath@addtocounttemp{\the#1}%
\afterassignment\pgfmath@gobbletilpgfmath@%
#1#2\relax\pgfmath@%
\advance#1\pgfmath@addtocounttemp\relax%
}%
{%
\edef\pgfmath@addtocounttemp{\the#1}%
\pgfmathparse{#2}%
\afterassignment\pgfmath@gobbletilpgfmath@%
#1\pgfmathresult\relax\pgfmath@%
\advance#1\pgfmath@addtocounttemp\relax%
}%
\ignorespaces%
}
\def\pgfmathnewcounter#1{%
\expandafter\ifx\csname c@#1\endcsname\relax%
\def\pgfmath@marshal{\csname newcount\endcsname}%
\expandafter\pgfmath@marshal\csname c@#1\endcsname%
\expandafter\def\csname the#1\endcsname{\expandafter\the\csname c@#1\endcsname}%
\fi%
}
\def\pgfmathsetcounter#1#2{%
\expandafter\pgfmathsetcount\csname c@#1\endcsname{#2}%
}
\def\pgfmathaddtocounter#1#2{%
\expandafter\pgfmathaddtocount\csname c@#1\endcsname{#2}%
}
\def\pgfmath@pgftext{pgf}
\def\pgfmath@tikztext{tikz}
\def\pgfmathmakecounterglobal#1{%
\pgfmath@ifundefined{c@#1}{}{%
\expandafter\pgfmath@in@\expandafter{\pgfmath@pgftext}{#1}%
\ifpgfmath@in@%
\else%
\expandafter\pgfmath@in@\expandafter{\pgfmath@tikztext}{#1}%
\ifpgfmath@in@%
\else%
\expandafter\global\csname c@#1\endcsname\csname c@#1\endcsname\relax%
\fi%
\fi%
}%
}
\def\pgfmathsetmacro#1#2{%
\begingroup%
\pgfmathparse{#2}%
\let#1=\pgfmathresult
\pgfmath@smuggleone{#1}%
\endgroup%
}
\def\pgfmathsetlengthmacro#1#2{%
\begingroup%
\pgfmathsetlength\pgfmath@x{#2}%
\edef#1{\the\pgfmath@x}%
\pgfmath@smuggleone{#1}%
\endgroup%
}
\def\pgfmathtruncatemacro#1#2{%
\begingroup%
\pgfmathsetcount\c@pgfmath@counta{#2}%
\edef#1{\the\c@pgfmath@counta}%
\pgfmath@smuggleone{#1}%
\endgroup%
}
\def\pgfmath@onquick{%
\futurelet\pgfmath@next%
\pgfmath@@onquick}
\def\pgfmath@@onquick#1\pgfmath@{%
\ifx\pgfmath@next+%
\let\pgfmath@next=\pgfmath@firstoftwo%
\else%
\let\pgfmath@next=\pgfmath@secondoftwo%
\fi%
\pgfmath@next%
}
\def\pgfmathanglebetweenpoints#1#2{%
\begingroup%
\pgf@process{\pgfpointdiff{#1}{#2}}%
\edef\pgf@marshall{\expandafter\noexpand\csname pgfmathatan2@\endcsname{\expandafter\Pgf@geT\the\pgf@y}{\expandafter\Pgf@geT\the\pgf@x}}%
\pgf@marshall%
\ifdim\pgfmathresult pt<0pt%
\pgfmathparse{\pgfmathresult+360}%
\fi%
\expandafter%
\endgroup\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult}%
}
\def\pgfmathrotatepointaround#1#2#3{%
\pgf@process{%
\pgf@process{#1}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\pgf@process{#2}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgf@xb\pgf@x%
\pgf@yb\pgf@y%
\pgf@x=\pgf@xc%
\pgf@y=\pgf@yc%
\advance\pgf@x-\pgf@xa%
\advance\pgf@y-\pgf@ya%
\pgfmathsetmacro\angle{#3}%
\pgfmathsin@{\angle}%
\let\sineangle\pgfmathresult%
\pgfmathcos@{\angle}%
\let\cosineangle\pgfmathresult%
\pgf@xa\cosineangle\pgf@x%
\advance\pgf@xa-\sineangle\pgf@y%
\pgf@ya\sineangle\pgf@x%
\advance\pgf@ya\cosineangle\pgf@y%
\pgf@x\pgf@xb%
\pgf@y\pgf@yb%
\advance\pgf@x\pgf@xa%
\advance\pgf@y\pgf@ya%
}%
}
\def\pgfmathanglebetweenlines#1#2#3#4{%
\begingroup%
\pgfmathanglebetweenpoints{#1}{#2}%
\let\firstangle\pgfmathresult%
\pgfmathanglebetweenpoints{#3}{#4}%
\let\secondangle\pgfmathresult%
\ifdim\firstangle pt>\secondangle pt\relax%
\pgfmathadd@{\secondangle}{360}%
\let\secondangle\pgfmathresult%
\fi%
\pgfmathsubtract@{\secondangle}{\firstangle}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\def\pgfmathreflectpointalongaxis#1#2#3{%
\pgf@process{%
\pgfmathanglebetweenpoints{#2}{#1}%
\pgfmath@tempdima\pgfmathresult pt\relax%
\pgfmathparse{#3}%
\advance\pgfmath@tempdima-\pgfmathresult pt\relax%
\pgfmath@tempdima-2.0\pgfmath@tempdima%
\pgfmathrotatepointaround{#1}{#2}{\pgfmath@tonumber{\pgfmath@tempdima}}%
}%
}
\def\pgfmathpointintersectionoflineandarc#1#2#3#4#5#6{%
\pgf@process{%
\pgfmathanglebetweenpoints{#2}{#1}%
\let\x\pgfmathresult%
\pgfmath@in@{and }{#6}%
\ifpgfmath@in@%
\pgf@polar@#6\@@%
\else%
\pgf@polar@#6 and #6\@@%
\fi%
\edef\xarcradius{\the\pgf@x}%
\edef\yarcradius{\the\pgf@y}%
\pgfmathsetmacro\s{#4}%
\pgfmathsetmacro\e{#5}%
\pgfmathmod@{\s}{360}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\ss\pgfmathresult%
\pgfmathmod@{\e}{360}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathadd@{\pgfmathresult}{360}%
\fi%
\let\ee\pgfmathresult%
\ifdim\ee pt<\ss pt\relax%
\pgfmathadd@{\x}{180}%
\pgfmathmod@{\pgfmathresult}{360}%
\let\x\pgfmathresult%
\fi%
\def\m{360}%
\pgfmathadd@{\s}{\e}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\n\pgfmathresult%
\pgfmathloop%
\pgfmathadd@{\s}{\e}%
\pgfmathdivide@{\pgfmathresult}{2}%
\let\p\pgfmathresult%
\ifdim\p pt=\s pt\relax%
\else%
\pgfmathanglebetweenpoints{#2}{%
\pgfpointadd{#3}{%
\pgf@x\xarcradius\relax%
\pgfmathcos@{\p}%
\pgf@x\pgfmathresult\pgf@x%
\pgf@y\yarcradius\relax%
\pgfmathsin@{\p}%
\pgf@y\pgfmathresult\pgf@y%
}%
}%
\ifdim\ee pt<\ss pt\relax%
\pgfmathadd@{\pgfmathresult}{180}%
\pgfmathmod@{\pgfmathresult}{360}%
\fi%
\let\q\pgfmathresult%
\ifdim\x pt>335pt\relax%
\ifdim\q pt<45pt\relax%
\pgfmathadd@{\q}{360}%
\let\q\pgfmathresult%
\fi%
\fi%
\ifdim\x pt=\q pt%
\pgfmathbreakloop%
\else
\ifdim\x pt<\q pt\relax%
\let\e\p%
\else%
\let\s\p%
\fi%
\fi%
\pgfmathsubtract@{\x}{\q}%
\pgfmathabs@{\pgfmathresult}%
\ifdim\pgfmathresult pt<\m pt\relax%
\let\m\pgfmathresult%
\let\n\p%
\fi%
\repeatpgfmathloop%
\pgfpointadd{#3}{\pgfpointpolar{\n}{\xarcradius and \yarcradius}}%
}%
}
\def\pgfmathangleonellipse#1#2{%
\begingroup%
\pgfmath@in@{and }{#2}%
\ifpgfmath@in@%
\pgf@polar@#2\@@%
\else%
\pgf@polar@#2 and #2\@@%
\fi%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgf@process{#1}%
\ifdim\pgf@x=0pt\relax%
\pgfutil@tempdima1pt\relax%
\else%
\pgfutil@tempdima\pgf@x%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@xa}}{\pgfmath@tonumber{\pgfutil@tempdima}}%
\pgfutil@tempdima\pgfmathresult pt\relax%
\fi%
\ifdim\pgf@y=0pt\relax%
\pgfutil@tempdima1pt\relax%
\else%
\pgfmathdivide@{\pgfmath@tonumber{\pgf@y}}{\pgfmath@tonumber{\pgf@ya}}%
\pgfutil@tempdima\pgfmathresult\pgfutil@tempdima%
\pgfmathatan@{\pgfmath@tonumber{\pgfutil@tempdima}}%
\fi%
\pgfutil@tempdima\pgfmathresult pt\relax%
\ifdim\pgfutil@tempdima<0pt\relax%
\advance\pgfutil@tempdima360pt\relax%
\fi%
\ifdim\pgf@x<0pt\relax%
\ifdim\pgf@y=0pt\relax%
\pgfutil@tempdima180pt\relax%
\else%
\ifdim\pgf@y<0pt\relax%
\advance\pgfutil@tempdima180pt\relax%
\else%
\advance\pgfutil@tempdima-180pt\relax%
\fi%
\fi%
\else%
\ifdim\pgf@x=0pt\relax%
\ifdim\pgf@y<0pt\relax%
\pgfutil@tempdima270pt\relax%
\else%
\pgfutil@tempdima90pt\relax%
\fi%
\else%
\ifdim\pgf@y=0pt\relax%
\pgfutil@tempdima0pt\relax%
\fi%
\fi%
\fi%
\pgfmath@returnone\pgfutil@tempdima%
\endgroup%
}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathcalc.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfloat.code.tex ====
\pgfkeys{
/pgf/compat/number printer/.is choice,
/pgf/compat/number printer/2.10/.code={%
\def\pgfmathprintnumber@begingroup{\bgroup}%
\def\pgfmathprintnumber@endgroup{\egroup}%
},
/pgf/compat/number printer/next after 2.10/.code={%
\def\pgfmathprintnumber@begingroup{\begingroup}%
\def\pgfmathprintnumber@endgroup{\endgroup}%
},
/pgf/compat/number printer/next after 2.10,%
}
\newif\ifpgfmathfloatcomparison
\newif\ifpgfmathfloatroundhasperiod
\newif\ifpgfmathprintnumberskipzeroperiod
\toksdef\pgfmathfloat@tmptoks=1
\newif\ifpgfmathfloat@fixed@digits@after@period
\newif\ifpgfmathfloatroundmayneedrenormalize
\toksdef\pgfmathfloat@a@Mtok=0
\let\pgfmathfloat@a@S=\c@pgf@counta
\let\pgfmathfloat@a@M=\pgf@xa
\let\pgfmathfloat@a@E=\c@pgf@countb
\let\pgfmathfloat@b@S=\c@pgf@countc
\let\pgfmathfloat@b@M=\pgf@xb
\let\pgfmathfloat@b@E=\c@pgf@countd
\def\pgfmathfloat@round@precision{2}
\def\pgfmathfloat@round@precision@orig{\pgfmathfloat@round@precision}%
\gdef\pgfmathfloat@glob@TMP{}
\def\pgfmathfloatparsenumber#1{%
\begingroup
\edef\pgfmathresult{#1}%
\expandafter\pgfflt@impl\pgfmathresult\pgfflt@EOI
\ifpgfmathfloatparsenumberpendingperiod
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok.0}%
\fi
\pgfmathfloatcreate{\the\pgfmathfloat@a@S}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\let\pgfmathfloatqparsenumber=\pgfmathfloatparsenumber
\def\pgfmathfloattoregisters#1#2#3#4{%
\expandafter\pgfmathfloat@decompose#1\relax{#2}{#3}{#4}%
}
\def\pgfmathfloattoregisterstok#1#2#3#4{%
\expandafter\pgfmathfloat@decompose@tok#1\relax{#2}{#3}{#4}%
}
\def\pgfmathfloatgetflags#1#2{%
\expandafter\pgfmathfloat@decompose@F#1\relax{#2}%
}
\def\pgfmathfloatgetflagstomacro#1#2{%
\expandafter\pgfmathfloat@decompose@Fmacro#1\relax{#2}%
}%
\def\pgfmathfloatgetmantissa#1#2{%
\expandafter\pgfmathfloat@decompose@M#1\relax{#2}%
}
\let\pgfmathfloatgetmantisse=\pgfmathfloatgetmantissa
\def\pgfmathfloatgetmantissatok#1#2{%
\expandafter\pgfmathfloat@decompose@Mtok#1\relax{#2}%
}
\let\pgfmathfloatgetmantissetok=\pgfmathfloatgetmantissatok
\def\pgfmathfloatgetexponent#1#2{%
\expandafter\pgfmathfloat@decompose@E#1\relax{#2}%
}
\def\pgfmathfloat@to@FMeE@style#1{\expandafter\pgfmathfloat@to@FMeE@style@#1\relax\relax}%
\def\pgfmathfloat@to@FMeE@style@#1#2{%
\ifx#2Y%
\expandafter\pgfmathfloat@to@FMeE@style@@%
\else
\expandafter\pgfmathfloat@to@FMeE@style@error%
\fi
#1#2%
}%
\def\pgfmathfloat@to@FMeE@style@@#1Y#2e#3]\relax\relax{\def\pgfmathresult{#1#2e#3}}%
\def\pgfmathfloat@to@FMeE@style@error#1\relax\relax{%
\begingroup
\pgfmathfloatparsenumber@handleerror{wrong lowlevel format}{#1}{#1}%
\xdef\pgfmathfloat@decompose@TMP{%
\noexpand\pgfmathfloatcreate{\the\pgfmathfloat@a@S}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
}%
\endgroup
\pgfmathfloat@decompose@TMP
}%
\def\pgfmathfloat@decompose#1#2{%
\ifx#2Y%
\expandafter\pgfmathfloat@decompose@%
\else
\expandafter\pgfmathfloat@decompose@error%
\fi
#1#2%
}
\def\pgfmathfloat@decompose@#1Y#2e#3]\relax#4#5#6{%
#4=#1\relax
#5=#2pt %
#6=#3\relax%
}
\def\pgfmathfloat@decompose@tok#1#2{%
\ifx#2Y%
\expandafter\pgfmathfloat@decompose@tok@%
\else
\expandafter\pgfmathfloat@decompose@tok@error%
\fi
#1#2%
}%
\def\pgfmathfloat@decompose@tok@#1Y#2e#3]\relax#4#5#6{%
#4=#1\relax
#5={#2}%
#6=#3\relax%
}
\def\pgfmathfloat@decompose@F#1#2{%
\ifx#2Y%
\expandafter\pgfmathfloat@decompose@F@%
\else
\expandafter\pgfmathfloat@decompose@F@error%
\fi
#1#2%
}%
\def\pgfmathfloat@decompose@Fmacro#1#2{%
\ifx#2Y%
\expandafter\pgfmathfloat@decompose@Fmacro@%
\else
\expandafter\pgfmathfloat@decompose@F@error%
\fi
#1#2%
}%
\def\pgfmathfloat@decompose@M#1#2{%
\ifx#2Y%
\expandafter\pgfmathfloat@decompose@M@%
\else
\expandafter\pgfmathfloat@decompose@M@error%
\fi
#1#2%
}%
\def\pgfmathfloat@decompose@E#1#2{%
\ifx#2Y%
\expandafter\pgfmathfloat@decompose@E@%
\else
\expandafter\pgfmathfloat@decompose@E@error%
\fi
#1#2%
}%
\def\pgfmathfloat@decompose@Mtok#1#2{%
\ifx#2Y%
\expandafter\pgfmathfloat@decompose@Mtok@%
\else
\expandafter\pgfmathfloat@decompose@Mtok@error%
\fi
#1#2%
}%
\def\pgfmathfloat@decompose@F@#1Y#2e#3]\relax#4{#4=#1\relax}%
\def\pgfmathfloat@decompose@Fmacro@#1Y#2e#3]\relax#4{\def#4{#1}}%
\def\pgfmathfloat@decompose@M@#1Y#2e#3]\relax#4{#4=#2pt}%
\def\pgfmathfloat@decompose@Mtok@#1Y#2e#3]\relax#4{#4={#2}}%
\def\pgfmathfloat@decompose@E@#1Y#2e#3]\relax#4{#4=#3\relax}%
\def\pgfmathfloat@decompose@error#1\relax#2#3#4{%
\begingroup
\pgfmathfloatparsenumber@handleerror{wrong lowlevel format}{#1}{#1}%
\xdef\pgfmathfloat@decompose@TMP{%
\noexpand#2=\the\pgfmathfloat@a@S\space
\noexpand#3=\the\pgfmathfloat@a@Mtok pt
\noexpand#4=\the\pgfmathfloat@a@E\space
}%
\endgroup
\pgfmathfloat@decompose@TMP
}%
\def\pgfmathfloat@decompose@tok@error#1\relax#2#3#4{%
\begingroup
\pgfmathfloatparsenumber@handleerror{wrong lowlevel format}{#1}{#1}%
\xdef\pgfmathfloat@decompose@TMP{%
\noexpand#2=\the\pgfmathfloat@a@S\space
\noexpand#3={\the\pgfmathfloat@a@Mtok}%
\noexpand#4=\the\pgfmathfloat@a@E\space
}%
\endgroup
\pgfmathfloat@decompose@TMP
}%
\def\pgfmathfloat@decompose@F@error#1\relax#2{%
\begingroup
\pgfmathfloatparsenumber@handleerror{wrong lowlevel format}{#1}{#1}%
\xdef\pgfmathfloat@decompose@TMP{\noexpand#2=\the\pgfmathfloat@a@S\space}%
\endgroup
\pgfmathfloat@decompose@TMP
}%
\def\pgfmathfloat@decompose@M@error#1\relax#2{%
\begingroup
\pgfmathfloatparsenumber@handleerror{wrong lowlevel format}{#1}{#1}%
\xdef\pgfmathfloat@decompose@TMP{\noexpand#2=\the\pgfmathfloat@a@Mtok pt }%
\endgroup
\pgfmathfloat@decompose@TMP
}%
\def\pgfmathfloat@decompose@Mtok@error#1\relax#2{%
\begingroup
\pgfmathfloatparsenumber@handleerror{wrong lowlevel format}{#1}{#1}%
\xdef\pgfmathfloat@decompose@TMP{\noexpand#2={\the\pgfmathfloat@a@Mtok}}%
\endgroup
\pgfmathfloat@decompose@TMP
}%
\def\pgfmathfloat@decompose@E@error#1\relax#2{%
\begingroup
\pgfmathfloatparsenumber@handleerror{wrong lowlevel format}{#1}{#1}%
\xdef\pgfmathfloat@decompose@TMP{\noexpand#2=\the\pgfmathfloat@a@E\space}%
\endgroup
\pgfmathfloat@decompose@TMP
}%
\def\pgfmathfloattomacro#1#2#3#4{%
\begingroup
\expandafter\pgfmathfloat@decompose@tok#1\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\xdef\pgfmathfloat@glob@TMP{%
\noexpand\def\noexpand#2{\the\pgfmathfloat@a@S}%
\noexpand\def\noexpand#3{\the\pgfmathfloat@a@Mtok}%
\noexpand\def\noexpand#4{\the\pgfmathfloat@a@E}%
}%
\endgroup
\pgfmathfloat@glob@TMP
}
\def\pgfmathfloatcreate#1#2#3{%
\edef\pgfmathresult{#1Y#2e#3]}%
}%
\def\pgfmathfloat@POSTFLAGSCHAR{Y}
\def\pgfmathfloattofixed@#1{%
\begingroup
\expandafter\pgfmathfloat@decompose@tok#1\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\ifcase\pgfmathfloat@a@S
\def\pgfmathresult{0.0}%
\or
\expandafter\pgfmathfloattofixed@impl\the\pgfmathfloat@a@Mtok\relax
\or
\expandafter\pgfmathfloattofixed@impl\the\pgfmathfloat@a@Mtok\relax
\pgfmathfloat@a@Mtok=\expandafter{\pgfmathresult}%
\edef\pgfmathresult{-\the\pgfmathfloat@a@Mtok}%
\or\def\pgfmathresult{nan}%
\or\def\pgfmathresult{inf}%
\or\def\pgfmathresult{-inf}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\let\pgfmathfloattofixed=\pgfmathfloattofixed@
\def\pgfmathfloattoint#1{%
\pgfmathfloattofixed{#1}%
\expandafter\pgfmathfloattoint@@\pgfmathresult\relax
}%
\def\pgfmathfloattoint@@#1.#2\relax{%
\def\pgfmathresult{#1}%
}%
\def\pgfmathfloattosci@#1{%
\begingroup
\expandafter\pgfmathfloat@decompose@tok#1\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\ifcase\pgfmathfloat@a@S
\def\pgfmathresult{0.0e0}%
\or
\edef\pgfmathresult{\the\pgfmathfloat@a@Mtok e\the\pgfmathfloat@a@E}%
\or
\edef\pgfmathresult{-\the\pgfmathfloat@a@Mtok e\the\pgfmathfloat@a@E}%
\or\def\pgfmathresult{nan}%
\or\def\pgfmathresult{inf}%
\or\def\pgfmathresult{-inf}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\let\pgfmathfloattosci=\pgfmathfloattosci@
\def\pgfmathfloatvalueof#1{\expandafter\pgfmathfloatvalueof@@#1@@}%
\def\pgfmathfloatvalueof@@#1#2{%
\if#2Y%
\expandafter\pgfmathfloatvalueof@@@\expandafter#1\expandafter#2%
\else
\expandafter\pgfmathfloatvalueof@abort\expandafter#1\expandafter#2%
\fi
}
\def\pgfmathfloatvalueof@@@#1Y#2e#3]@@{%
\ifcase#1 %
0.0e0%
\or
#2e#3%
\or
-#2e#3%
\or nan%
\or inf%
\or -inf%
\fi
}%
\def\pgfmathfloatvalueof@abort#1@@{#1}%
\def\pgfmathroundto#1{%
\pgfmathfloatroundhasperiodtrue
\begingroup
\pgfmathfloat@fixed@digits@after@periodfalse
\pgfmathroundto@impl{#1}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\def\pgfmathroundtozerofill#1{%
\pgfmathfloatroundhasperiodtrue
\begingroup
\pgfmathfloat@fixed@digits@after@periodtrue
\pgfmathroundto@impl{#1}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\def\pgfmathprintnumber@fixed@styleDEFAULT#1#2#3e#4\relax{%
\begingroup
\pgfkeysgetvalue{/pgf/number format/set decimal separator}\pgfmathprintnumber@fixed@styleDEFAULT@DEC@SEP
\pgfkeysgetvalue{/pgf/number format/@dec sep mark}\pgfmathprintnumber@fixed@styleDEFAULT@DEC@SEP@MARK
\pgfkeysgetvalue{/pgf/number format/set thousands separator}\pgfmathprintnumber@fixed@styleDEFAULT@THOUSAND@SEP
\c@pgf@counta=#4\relax %
\ifnum#2=0
\c@pgf@counta=0
\fi
\def\pgfmathresult{}%
\ifpgfmathfloatroundhasperiod
\expandafter\pgfmathprintnumber@fixed@styleDEFAULT@impl@period#1\pgfmathfloat@EOI
\else
\expandafter\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod#1\pgfmathfloat@EOI\pgfmathfloat@EOI\pgfmathfloat@EOI%
\begingroup
\toks0=\expandafter{\pgfmathresult}%
\toks1=\expandafter{\pgfmathprintnumber@fixed@styleDEFAULT@DEC@SEP@MARK}%
\xdef\pgfmathfloat@glob@TMP{\the\toks0 \the\toks1 }%
\endgroup
\let\pgfmathresult=\pgfmathfloat@glob@TMP
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@period#1.#2\pgfmathfloat@EOI{%
\ifpgfmathprintnumberskipzeroperiod
\def\pgfmathfloat@loc@TMPb{#1}%
\ifx\pgfmathfloatparsenumber@tok@ZERO\pgfmathfloat@loc@TMPb
\else
\def\pgfmathfloat@loc@TMPc{-0}%
\ifx\pgfmathfloat@loc@TMPc\pgfmathfloat@loc@TMPb
\def\pgfmathresult{-}%
\else
\def\pgfmathfloat@loc@TMPc{+0}%
\ifx\pgfmathfloat@loc@TMPc\pgfmathfloat@loc@TMPb
\def\pgfmathresult{+}%
\else
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod#1\pgfmathfloat@EOI\pgfmathfloat@EOI\pgfmathfloat@EOI
\fi
\fi
\fi
\else
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod#1\pgfmathfloat@EOI\pgfmathfloat@EOI\pgfmathfloat@EOI
\fi
\ifpgfmathprintnumber@thousand@sep@in@fractional
\let\pgfmathresultfractional\pgfutil@empty%
\pgfmathprintnumber@thousand@sep@in@fractional#2MMMM\@@
\else
\def\pgfmathresultfractional{#2}%
\fi
\begingroup
\toks0=\expandafter{\pgfmathresult}%
\toks1=\expandafter{\pgfmathprintnumber@fixed@styleDEFAULT@DEC@SEP@MARK}%
\toks2=\expandafter{\pgfmathprintnumber@fixed@styleDEFAULT@DEC@SEP}%
\toks3=\expandafter{\pgfmathresultfractional}%
\xdef\pgfmathfloat@glob@TMP{\the\toks0 \the\toks1 \the\toks2 \the\toks3 }%
\endgroup
\let\pgfmathresult=\pgfmathfloat@glob@TMP
}%
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod{%
\ifx\pgfmathprintnumber@fixed@styleDEFAULT@THOUSAND@SEP\pgfutil@empty
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT{%
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@printall}%
\else
\ifnum\c@pgf@counta<0\relax %
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT{%
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@printall}%
\else
\ifnum\c@pgf@counta<\pgfkeysvalueof{/pgf/number format/min exponent for 1000 sep}\relax
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT{%
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@printall}%
\else
\advance\c@pgf@counta by1 %
\c@pgf@countb=\c@pgf@counta
\divide\c@pgf@countb by3 %
\c@pgf@countc=\c@pgf@countb
\multiply\c@pgf@countc by3
\advance\c@pgf@counta by-\c@pgf@countc%
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT{%
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@printsign
}%
\fi
\fi
\fi
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT
}
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@printsign#1{%
\def\pgfmathfloat@loc@TMPb{#1}%
\ifx\pgfmathfloat@loc@TMPb\pgfmathfloatparsenumber@tok@MINUS
\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult #1}%
\let\pgfmathfloat@loc@TMPb=\pgfutil@empty
\else
\ifx\pgfmathfloat@loc@TMPb\pgfmathfloatparsenumber@tok@PLUS
\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult #1}%
\let\pgfmathfloat@loc@TMPb=\pgfutil@empty
\else
\ifpgfmathprintnumber@showpositive
\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult +}%
\fi
\fi
\fi
\ifnum\c@pgf@counta>0 %
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT{%
\expandafter\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@printtrailingdigits\pgfmathfloat@loc@TMPb
}%
\else
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT{%
\expandafter\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@counteverythird\pgfmathfloat@loc@TMPb
}%
\fi
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT
}
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@printtrailingdigits#1#2{%
\ifcase\c@pgf@counta %
\or
\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult #1}%
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT{%
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@counteverythird#2%
}%
\or
\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult #1#2}%
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT{%
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@counteverythird%
}%
\fi
\ifnum\c@pgf@countb>0\relax %
\begingroup
\toks0=\expandafter{\pgfmathresult}%
\toks1=\expandafter{\pgfmathprintnumber@fixed@styleDEFAULT@THOUSAND@SEP}%
\xdef\pgfmathfloat@glob@TMP{\the\toks0 \the\toks1 }%
\endgroup
\let\pgfmathresult=\pgfmathfloat@glob@TMP
\fi
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT
}
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@counteverythird#1#2#3{%
\ifnum\c@pgf@countb>0\relax
\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult #1#2#3}%
\advance\c@pgf@countb by-1
\ifnum\c@pgf@countb>0\relax
\begingroup
\toks0=\expandafter{\pgfmathresult}%
\toks1=\expandafter{\pgfmathprintnumber@fixed@styleDEFAULT@THOUSAND@SEP}%
\xdef\pgfmathfloat@glob@TMP{\the\toks0 \the\toks1 }%
\endgroup
\let\pgfmathresult=\pgfmathfloat@glob@TMP
\fi
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT{%
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@counteverythird%
}%
\else
\let\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT=\relax
\fi
\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@NEXT
}
\def\pgfmathprintnumber@thousand@sep@in@fractional#1#2#3#4{%
\if#4M%
\def\pgfmathprint@next{\pgfmathprintnumber@thousand@sep@in@fractional@finish#1#2#3#4}%
\else
\begingroup
\toks0=\expandafter{\pgfmathresultfractional}%
\toks1={#1#2#3}%
\toks2=\expandafter{\pgfmathprintnumber@fixed@styleDEFAULT@THOUSAND@SEP}%
\xdef\pgfmathfloat@glob@TMP{\the\toks0 \the\toks1 \the\toks2 }%
\endgroup
\let\pgfmathresultfractional=\pgfmathfloat@glob@TMP
\def\pgfmathprint@next{\pgfmathprintnumber@thousand@sep@in@fractional#4}%
\fi
\pgfmathprint@next
}%
\def\pgfmathprintnumber@thousand@sep@in@fractional@finish#1M{%
\expandafter\def\expandafter\pgfmathresultfractional\expandafter{\pgfmathresultfractional #1}%
\pgfmathprintnumber@thousand@sep@in@fractional@finish@
}%
\def\pgfmathprintnumber@thousand@sep@in@fractional@finish@#1\@@{}%
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@printall#1{%
\def\pgfmathfloat@loc@TMPb{#1}%
\let\pgfmathfloat@loc@TMPc=\pgfutil@empty
\ifx\pgfmathfloat@loc@TMPb\pgfmathfloatparsenumber@tok@MINUS
\else
\ifx\pgfmathfloat@loc@TMPb\pgfmathfloatparsenumber@tok@PLUS
\else
\ifpgfmathprintnumber@showpositive
\def\pgfmathfloat@loc@TMPc{+}%
\fi
\fi
\fi
\expandafter\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@printall@\pgfmathfloat@loc@TMPc#1%
}
\def\pgfmathprintnumber@fixed@styleDEFAULT@impl@noperiod@printall@#1\pgfmathfloat@EOI\pgfmathfloat@EOI\pgfmathfloat@EOI{%
\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult #1}%
}%
\def\pgfmathprintnumber@fixed@stylePERIOD#1#2#3e#4\relax{%
\def\pgfmathresult{#1}%
}
\def\pgfmathprintnumber@fixed@styleCOMMA#1#2#3e#4\relax{%
\ifpgfmathfloatroundhasperiod
\expandafter\pgfmathprintnumber@fixed@styleCOMMA@impl#1\pgfmathfloat@EOI
\else
\def\pgfmathresult{#1}%
\fi
}
\def\pgfmathprintnumber@fixed@styleCOMMA@impl#1.#2\pgfmathfloat@EOI{\def\pgfmathresult{#1{,}#2}}
\let\pgfmathprintnumber@fixed@style=\pgfmathprintnumber@fixed@styleDEFAULT
\def\pgfmathfloatround#1{%
\pgfmathfloatroundhasperiodtrue
\begingroup
\pgfmathfloat@fixed@digits@after@periodfalse
\expandafter\pgfmathfloat@decompose@tok#1\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\pgfmathfloatround@impl
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\def\pgfmathfloatroundzerofill#1{%
\pgfmathfloatroundhasperiodtrue
\begingroup
\pgfmathfloat@fixed@digits@after@periodtrue
\expandafter\pgfmathfloat@decompose@tok#1\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\pgfmathfloatround@impl
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\newif\ifpgfmathfloatround@allow@empty@mantissa
\def\pgfmathfloatround@mantissa@ONE{1pt }%
\def\pgfmathfloatrounddisplaystyle@shared@impl#1#2e#3\relax#4#5#6{%
\pgfkeysgetvalue{/pgf/number format/@sci exponent mark}\pgfmathfloatrounddisplaystyle@e@mark
\ifcase#1\relax
\pgfmathprintnumber@fixed@style{#2}#1#2e0\relax%
\expandafter\pgfmathfloatrounddisplaystyle@shared@impl@\expandafter{\pgfmathresult}{#4#6}%
\or
\def\pgfmathfloat@loc@TMPa{1}%
\ifpgfmathfloatround@allow@empty@mantissa
\else
\ifdim#2pt=\pgfmathfloatround@mantissa@ONE
\def\pgfmathfloat@loc@TMPa{0}%
\fi
\fi
\if1\pgfmathfloat@loc@TMPa
\pgfmathprintnumber@fixed@style{#2}#1#2e0\relax%
\expandafter\pgfmathfloatrounddisplaystyle@shared@impl@\expandafter{\pgfmathresult}{#4#6}%
\else
\def\pgfmathfloat@loc@TMPa{0}%
\pgfmathfloatrounddisplaystyle@shared@impl@{#5}{#6}%
\fi
\or
\def\pgfmathfloat@loc@TMPa{1}%
\ifpgfmathfloatround@allow@empty@mantissa
\else
\ifdim#2pt=\pgfmathfloatround@mantissa@ONE
\def\pgfmathfloat@loc@TMPa{0}%
\fi
\fi
\if1\pgfmathfloat@loc@TMPa
\pgfmathprintnumber@fixed@style{-#2}#1#2e0\relax%
\expandafter\pgfmathfloatrounddisplaystyle@shared@impl@\expandafter{\pgfmathresult}{#4#6}%
\else
\def\pgfmathfloat@loc@TMPa{0}%
\pgfmathfloatrounddisplaystyle@shared@impl@{-#5}{#6}%
\fi
\or
\pgfmathfloatrounddisplaystyle@shared@impl@@{\hbox{NaN}}{}%
\or
\ifpgfmathprintnumber@showpositive
\pgfmathfloatrounddisplaystyle@shared@impl@@{+\infty}{}%
\else
\pgfmathfloatrounddisplaystyle@shared@impl@@{\infty}{}%
\fi
\or
\pgfmathfloatrounddisplaystyle@shared@impl@@{-\infty}{}%
\fi
}
\def\pgfmathfloatrounddisplaystyle@shared@impl@#1#2{%
\pgfmathprintnumber@begingroup
\toks0={#1}%
\toks1=\expandafter{\pgfmathfloatrounddisplaystyle@e@mark #2}%
\xdef\pgfmathfloat@glob@TMP{\the\toks0 \the\toks1 }%
\pgfmathprintnumber@endgroup
\let\pgfmathresult=\pgfmathfloat@glob@TMP
}%
\def\pgfmathfloatrounddisplaystyle@shared@impl@@#1#2{%
\pgfmathprintnumber@begingroup
\toks0={#1}%
\toks1=\expandafter{\pgfmathfloatrounddisplaystyle@e@mark #2}%
\pgfkeysgetvalue{/pgf/number format/@dec sep mark}\pgfmathprintnumber@fixed@styleDEFAULT@DEC@SEP@MARK
\toks2=\expandafter{\pgfmathprintnumber@fixed@styleDEFAULT@DEC@SEP@MARK}%
\xdef\pgfmathfloat@glob@TMP{\the\toks0 \the\toks1 \the\toks2 }%
\pgfmathprintnumber@endgroup
\let\pgfmathresult=\pgfmathfloat@glob@TMP
}
\def\pgfmathfloatrounddisplaystyle@std#1#2e#3\relax{%
\pgfmathfloatrounddisplaystyle@shared@impl#1#2e#3\relax{\cdot}{}{10^{#3}}%
}
\def\pgfmathfloatrounddisplaystyle@subscript#1#2e#3\relax{%
\pgfmathfloatrounddisplaystyle@shared@impl#1#2e#3\relax{}{1}{_{#3}}%
}
\def\pgfmathfloatrounddisplaystyle@superscript#1#2e#3\relax{%
\pgfmathfloatrounddisplaystyle@shared@impl#1#2e#3\relax{}{1}{^{#3}}%
}
\def\pgfmathfloatrounddisplaystyle@e#1#2e#3\relax{%
\ifnum#3<0\relax
\pgfmathprintnumber@begingroup
\count0=#3\relax
\multiply\count0 by-1
\xdef\pgfmathfloat@glob@TMP{e{-}\the\count0}%
\pgfmathprintnumber@endgroup%
\let\pgfmathresult=\pgfmathfloat@glob@TMP
\else
\def\pgfmathresult{e{+}#3}%
\fi
\def\pgfmathfloat@loc@TMPb{\pgfmathfloatrounddisplaystyle@shared@impl#1#2e#3\relax{}{1}}%
\expandafter\pgfmathfloat@loc@TMPb\expandafter{\pgfmathresult}%
}
\def\pgfmathfloatrounddisplaystyle@E#1#2e#3\relax{%
\ifnum#3<0\relax
\pgfmathprintnumber@begingroup
\count0=#3\relax
\multiply\count0 by-1
\xdef\pgfmathfloat@glob@TMP{E{-}\the\count0}%
\pgfmathprintnumber@endgroup%
\let\pgfmathresult=\pgfmathfloat@glob@TMP
\else
\def\pgfmathresult{E{+}#3}%
\fi
\def\pgfmathfloat@loc@TMPb{\pgfmathfloatrounddisplaystyle@shared@impl#1#2e#3\relax{}{1}}%
\expandafter\pgfmathfloat@loc@TMPb\expandafter{\pgfmathresult}%
}
\def\pgfmathfloatrounddisplaystyle@generic#1#2e#3\relax{%
\begingroup
\pgfkeysvalueof {/pgf/number format/sci generic/@/.@cmd}{#3}{#1}{#2}\pgfeov
\pgfkeysgetvalue{/pgf/number format/sci generic/mantissa sep}\pgfmathdisplay@aftermantissa
\pgfkeysgetvalue{/pgf/number format/sci generic/empty mantissa sep}\pgfmathdisplay@nomantissa
\pgfkeysgetvalue{/pgf/number format/sci generic/exponent}\pgfmathdisplay@e
\toks0=\expandafter{\pgfmathdisplay@aftermantissa}%
\toks1=\expandafter{\pgfmathdisplay@nomantissa}%
\toks2=\expandafter{\pgfmathdisplay@e}%
\xdef\pgfmathfloat@glob@TMP{\noexpand\pgfmathfloatrounddisplaystyle@shared@impl#1#2e#3\noexpand\relax{\the\toks0}{\the\toks1}{\the\toks2}}%
\endgroup
\pgfmathfloat@glob@TMP
}
\let\pgfmathfloatrounddisplaystyle=\pgfmathfloatrounddisplaystyle@std
\newif\ifpgfmathfloat@usezerofill@sci
\newif\ifpgfmathfloat@usezerofill@fixed
\newif\ifpgfmathprintnumber@assumemathmode
\newif\ifpgfmathprintnumber@showpositive
\newif\ifpgfmathprintnumber@frac@warn
\newif\ifpgfmathprintnumber@frac@whole
\newif\ifpgfmathparsenumber@comma@as@period
\long\def\pgfmathfloatfrac@verbatim#1#2{#1/#2}%
\let\pgfmathround@@orig=\pgfmathround@
\def\pgfmathprintnumber@RELATIVE@choice@roundtofixed{2}%
\newif\ifpgfmathprintnumber@thousand@sep@in@fractional
\pgfkeys{%
/pgf/number format/.is family,
/pgf/number format,
fixed/.code= \pgfmath@set@number@printer{pgfmathprintnumber@FIXED},
sci/.code= \pgfmath@set@number@printer{pgfmathprintnumber@SCI},
std/.code= {\pgfmath@set@number@printer{pgfmathprintnumber@STD}\pgfmathprintnumber@STD@setparam{#1}},
std/.default=,%
relative round mode/.is choice,
relative round mode/fixed/.code={\def\pgfmathprintnumber@RELATIVE@choice@roundtofixed{1}},
relative round mode/mantissa/.code={\def\pgfmathprintnumber@RELATIVE@choice@roundtofixed{0}},
relative round mode/compatible/.code={\def\pgfmathprintnumber@RELATIVE@choice@roundtofixed{2}},
relative/.code={%
\pgfmath@set@number@printer{pgfmathprintnumber@RELATIVE}%
\pgfmathround@@orig{#1}%
\expandafter\pgfmathfloattoint@@\pgfmathresult\relax
\let\pgfmathprintnumber@RELATIVE@param=\pgfmathresult
},%
relative/.value required,
relative*/.style={/pgf/number format/relative={#1},/pgf/number format/relative round mode=fixed},
every relative/.style=std,
relative style/.style={/pgf/number format/every relative/.append style={#1}},
fixed relative/.code= \pgfmath@set@number@printer{pgfmathprintnumber@FIXED@RELATIVE},
int detect/.code= \pgfmath@set@number@printer{pgfmathprintnumber@INT@DETECT},
int trunc/.code= \pgfmath@set@number@printer{pgfmathprintnumber@INT@TRUNC},
frac/.code= \pgfmath@set@number@printer{pgfmathprintnumber@frac},%
frac TeX/.initial=\frac,
frac whole format/.code={\def\pgfmathresult{#1}},
frac denom/.initial=,
frac whole/.is if=pgfmathprintnumber@frac@whole,
frac whole=true,
frac shift/.initial=4,
frac warning/.is if=pgfmathprintnumber@frac@warn,
frac warning=true,
assume math mode/.is if=pgfmathprintnumber@assumemathmode,
assume math mode/.default=true,
fixed zerofill/.is if= pgfmathfloat@usezerofill@fixed,
fixed zerofill/.default=true,
sci zerofill/.is if= pgfmathfloat@usezerofill@sci,
sci zerofill/.default=true,
zerofill/.style= {/pgf/number format/fixed zerofill={#1},/pgf/number format/sci zerofill={#1}},
zerofill/.default= true,
precision/.store in= \pgfmathfloat@round@precision,
sci precision/.code={%
\edef\pgfmathfloat@loc@TMPa{#1}%
\ifx\pgfmathfloat@loc@TMPa\pgfutil@empty
\def\pgfmathprintnumber@sci@precision{\pgfmathfloat@round@precision}%
\else
\let\pgfmathprintnumber@sci@precision=\pgfmathfloat@loc@TMPa
\fi
},%
sci precision/.default=,
sci precision=,
fixed default/.code= {\let\pgfmathprintnumber@fixed@style=\pgfmathprintnumber@fixed@styleDEFAULT},
set decimal separator/.initial=,
dec sep/.style={/pgf/number format/set decimal separator={#1}},
@dec sep mark/.initial=,
@sci exponent mark/.initial=,
set thousands separator/.initial=,
1000 sep in fractionals/.is if=pgfmathprintnumber@thousand@sep@in@fractional,
1000 sep in fractionals/.default=true,
1000 sep/.style={/pgf/number format/set thousands separator={#1}},
min exponent for 1000 sep/.initial=0,
use period/.style= {/pgf/number format/set decimal separator={.},/pgf/number format/set thousands separator={{{,}}}},
use comma/.style= {/pgf/number format/set decimal separator={{{,}}},/pgf/number format/set thousands separator={.}},
showpos/.is if=pgfmathprintnumber@showpositive,
showpos/.default=true,
print sign/.is if=pgfmathprintnumber@showpositive,
print sign/.default=true,
read comma as period/.is if=pgfmathparsenumber@comma@as@period,
read comma as period/.default=true,
skip 0./.is if=pgfmathprintnumberskipzeroperiod,
skip 0./.default=true,
skip 0.= false,
use period,
sci 10^e/.code= {\let\pgfmathfloatrounddisplaystyle=\pgfmathfloatrounddisplaystyle@std},
sci 10e/.code= {\let\pgfmathfloatrounddisplaystyle=\pgfmathfloatrounddisplaystyle@std},
sci e/.code= {\let\pgfmathfloatrounddisplaystyle=\pgfmathfloatrounddisplaystyle@e},
sci E/.code= {\let\pgfmathfloatrounddisplaystyle=\pgfmathfloatrounddisplaystyle@E},
sci subscript/.code= {\let\pgfmathfloatrounddisplaystyle=\pgfmathfloatrounddisplaystyle@subscript},
sci superscript/.code= {\let\pgfmathfloatrounddisplaystyle=\pgfmathfloatrounddisplaystyle@superscript},
sci generic/.code= {%
\let\pgfmathfloatrounddisplaystyle=\pgfmathfloatrounddisplaystyle@generic
\pgfkeysdefargs{/pgf/number format/sci generic/@}%
{##1##2##3}%
{\pgfqkeys{/pgf/number format/sci generic}{#1}}%
},
sci generic/mantissa sep/.initial=,%
sci generic/empty mantissa sep/.initial=,%
sci generic/mantisse sep/.style={/pgf/number format/sci generic/mantissa sep={#1}},%
sci generic/empty mantisse sep/.style={/pgf/number format/sci generic/empty mantissa sep={#1}},%
sci generic/exponent/.initial=,%
sci generic/.value required,
verbatim/.code={%
\pgfqkeys{/pgf/number format}{%
sci generic={mantissa sep=,exponent={e##1}},
1000 sep=,
skip 0.=false,
print sign=false,
dec sep=.,
assume math mode,
frac TeX=\pgfmathfloatfrac@verbatim,
frac whole format/.code={\def\pgfmathresult{##1 }},
@dec sep mark=,
@sci exponent mark=,
}%
},
retain unit mantissa/.is if=pgfmathfloatround@allow@empty@mantissa,
retain unit mantissa/.default=true,
retain unit mantissa=true,
implementation/.code={\def\pgfmathprintnumber@protected{#1}},
}
\def\pgfmathprintnumber@STD#1{%
\pgfmathfloatparsenumber{#1}%
\pgfmathfloat@to@FMeE@style\pgfmathresult
\expandafter\pgfmathprintnumber@STD@issci\pgfmathresult\relax
}
\def\pgfmathprintnumber@STD@setparam#1{%
\edef\pgfmathfloat@loc@TMPb{#1}%
\ifx\pgfmathfloat@loc@TMPb\pgfutil@empty
\def\pgfmathprintnumber@STD@getlowerbound{%
\c@pgf@counta=\pgfmathfloat@round@precision@orig\relax
\divide\c@pgf@counta by-2\relax
}%
\def\pgfmathprintnumber@STD@upperbound{4}%
\else
\expandafter\pgfutil@in@\expandafter:\expandafter{\pgfmathfloat@loc@TMPb}%
\ifpgfutil@in@
\def\pgfmathfloat@loc@TMPa##1:##2\relax{%
\edef\pgfmathprintnumber@STD@getlowerbound{%
\noexpand\c@pgf@counta=##1\space
}%
\edef\pgfmathprintnumber@STD@upperbound{##2}%
}%
\expandafter\pgfmathfloat@loc@TMPa\pgfmathfloat@loc@TMPb\relax
\else
\def\pgfmathprintnumber@STD@upperbound{4}%
\edef\pgfmathprintnumber@STD@getlowerbound{%
\noexpand\c@pgf@counta=\pgfmathfloat@loc@TMPb\space
}%
\fi
\fi
}%
\def\pgfmathprintnumber@STD@issci#1#2e#3\relax{%
\expandafter\ifnum#1<3
\expandafter\ifnum#3>\pgfmathprintnumber@STD@upperbound\relax
\pgfmathprintnumber@SCI@issci#1#2e#3\relax%
\else
\begingroup
\pgfmathprintnumber@STD@getlowerbound
\ifnum#3<\c@pgf@counta
\pgfmathprintnumber@SCI@issci#1#2e#3\relax%
\else
\pgfmathprintnumber@FIXED@issci#1#2e#3\relax%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
\fi
\else%
\pgfmathfloatrounddisplaystyle#1#2e#3\relax%
\fi
}
\def\pgfmathprintnumber@RELATIVE#1{%
\pgfmathfloatparsenumber{#1}%
\pgfmathfloat@to@FMeE@style\pgfmathresult
\expandafter\pgfmathprintnumber@RELATIVE@issci\pgfmathresult\relax
}
\def\pgfmathprintnumber@RELATIVE@choice@roundtofixed@warn{%
\pgf@typeout{! Package pgf warning: the use of /pgf/number format/relative is discouraged (buggy). Please use 'relative*' instead or type \string\pgfkeys{/pgf/number format/relative round mode=fixed} into your preamble.}%
\global\let\pgfmathprintnumber@RELATIVE@choice@roundtofixed@warn=\relax
}
\def\pgfmathprintnumber@RELATIVE@issci#1#2e#3\relax{%
\begingroup
\c@pgf@counta=#3\relax
\advance\c@pgf@counta by-\pgfmathprintnumber@RELATIVE@param\relax
\pgfmathfloatcreate{#1}{#2}{\the\c@pgf@counta}%
\if0\pgfmathprintnumber@RELATIVE@choice@roundtofixed
\def\b@round@fixed{0}%
\else
\if1\pgfmathprintnumber@RELATIVE@choice@roundtofixed
\def\b@round@fixed{1}%
\else
\pgfmathprintnumber@RELATIVE@choice@roundtofixed@warn
\ifnum\c@pgf@counta>0
\def\b@round@fixed{0}%
\else
\def\b@round@fixed{1}%
\fi
\fi
\fi
\if1\b@round@fixed
\pgfmathfloattofixed\pgfmathresult
\expandafter\pgfmathroundto\expandafter{\pgfmathresult}%
\pgfmathfloatparsenumber{\pgfmathresult}%
\pgfmathfloatroundhasperiodtrue%
\else
\expandafter\pgfmathfloatround\expandafter{\pgfmathresult}%
\fi
\pgfmathfloattoregisterstok\pgfmathresult\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\ifnum\pgfmathfloat@a@S=0
\pgfmathfloat@a@E=\pgfmathfloat@a@S %
\else
\advance\pgfmathfloat@a@E by+\pgfmathprintnumber@RELATIVE@param\relax
\fi
\edef\pgfmathresultX{%
\the\pgfmathfloat@a@S
\the\pgfmathfloat@a@Mtok
\ifpgfmathfloatroundhasperiod\else.0\fi
e\the\pgfmathfloat@a@E}%
\pgfqkeys{/pgf/number format}{/pgf/number format/every relative,
fixed zerofill=false,%
sci zerofill=false}%
\ifx\pgfmathprintnumber@issci\pgfmathprintnumber@RELATIVE@issci
\pgfmath@error{The '/pgf/number format/every relative' style should set a valid display style}{}%
\fi
\let\pgfmathfloat@round@precision@orig=\pgfmathfloat@round@precision
\def\pgfmathfloat@round@precision{9999}%
\expandafter\pgfmathprintnumber@issci\pgfmathresultX\relax%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\def\pgfmathprintnumber@FIXED@RELATIVE#1{%
\pgfmathfloatparsenumber{#1}%
\pgfmathfloat@to@FMeE@style\pgfmathresult
\expandafter\pgfmathprintnumber@FIXED@RELATIVE@issci\pgfmathresult\relax
}
\def\pgfmathprintnumber@FIXED@RELATIVE@issci#1#2e#3\relax{%
\begingroup
\pgfmathfloatcreate{#1}{#2}{#3}%
\c@pgf@counta=\pgfmathfloat@round@precision\relax
\advance\c@pgf@counta by-1
\edef\pgfmathfloat@round@precision{\the\c@pgf@counta}%
\pgfmathfloatround{\pgfmathresult}%
\pgfmathfloattoregisterstok\pgfmathresult\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\ifnum\pgfmathfloat@a@S=0
\pgfmathfloat@a@E=\pgfmathfloat@a@S %
\fi
\edef\pgfmathresultX{%
\the\pgfmathfloat@a@S
\the\pgfmathfloat@a@Mtok
\ifpgfmathfloatroundhasperiod\else.0\fi
e\the\pgfmathfloat@a@E}%
\let\pgfmathfloat@round@precision@orig=\pgfmathfloat@round@precision
\pgfmathfloat@usezerofill@fixedfalse
\def\pgfmathfloat@round@precision{9999}%
\expandafter\pgfmathprintnumber@FIXED@issci\pgfmathresultX\relax%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\def\pgfmathprintnumber@frac#1{%
\pgfmathfloatparsenumber{#1}%
\pgfmathfloatgetfrac{\pgfmathresult}%
\expandafter\pgfmathprintnumber@frac@formatresult\pgfmathresult
}
\def\pgfmathprintnumber@frac@issci#1#2e#3\relax{%
\pgfmathfloatcreate{#1}{#2}{#3}%
\pgfmathfloatgetfrac{\pgfmathresult}%
\expandafter\pgfmathprintnumber@frac@formatresult\pgfmathresult
}
\def\pgfmathprintnumber@frac@formatresult#1#2#3{%
\begingroup
\pgfkeysgetvalue{/pgf/number format/frac TeX}\pgfmathresult
\toks0=\expandafter{\pgfmathresult}%
\def\pgfmathfloat@loc@TMPa{#1}%
\ifx\pgfmathfloat@loc@TMPa\pgfutil@empty
\ifpgfmathprintnumber@showpositive
\def\pgfmathfloat@loc@TMPa{+}%
\fi
\else
\ifx\pgfmathfloat@loc@TMPa-%
\else
\ifx\pgfmathfloat@loc@TMPa+%
\else
\ifpgfmathprintnumber@showpositive
\edef\pgfmathfloat@loc@TMPa{+\pgfmathfloat@loc@TMPa}%
\fi
\def\pgfmathfloat@loc@TMPb{\pgfkeysvalueof{/pgf/number format/frac whole format/.@cmd}}%
\expandafter\pgfmathfloat@loc@TMPb\pgfmathfloat@loc@TMPa\pgfeov
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\fi
\fi
\fi
\toks1=\expandafter{\pgfmathfloat@loc@TMPa}%
\edef\pgfmathresult{%
\the\toks1 \ifnum#2=0 \else\the\toks0 {#2}{#3}\fi%
}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloatgetfrac#1{%
\pgfutil@ifundefined{pgfmathfloatmultiply@}{%
\pgfmath@error{Sorry, the number format 'frac' requires '\string\usetikzlibrary{fpu}' (and, optionally, \string\usepackage{fp}) in order to work correctly}{}%
\edef\pgfmathresult{{#1}{0}{1}}%
}{%
\pgfmathfloatgetfrac@{#1}%
}%
}%
\def\pgfmathfloatgetfrac@#1{%
\begingroup
\edef\pgfmathfloat@arg{#1}%
\expandafter\pgfmathfloat@decompose@tok\pgfmathfloat@arg\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\def\pgfmathfloat@loc@TMPa{0}%
\ifcase\pgfmathfloat@a@S
\def\pgfmathresult{{0}{0}{1}}%
\or%
\pgfmathfloat@a@S=1
\def\pgfmathfloat@loc@TMPa{1}%
\or%
\pgfmathfloat@a@S=-1
\def\pgfmathfloat@loc@TMPa{1}%
\or
\edef\pgfmathresult{{}{NaN}{1}}%
\or
\edef\pgfmathresult{{}{\infty}{1}}%
\or
\edef\pgfmathresult{{-}{\infty}{1}}%
\fi
\if1\pgfmathfloat@loc@TMPa
\ifnum\pgfmathfloat@a@E<0
\def\pgfmathfloat@wholenumber{}%
\else
\pgfmathfloatcreate{1}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\pgfmathfloattofixed\pgfmathresult%
\def\pgfmathfloat@loc@TMPa##1.##2\relax{%
\def\pgfmathfloat@wholenumber{##1}%
\pgfmathfloatparsenumber{0.##2}%
}%
\expandafter\pgfmathfloat@loc@TMPa\pgfmathresult\relax
\expandafter\pgfmathfloat@decompose@tok\pgfmathresult\relax\pgfmathfloat@b@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\fi
\def\pgfmathfloat@loc@TMPa##1.##2\relax{%
\def\pgfmathfloat@mantissa@first{##1}%
\def\pgfmathfloat@mantissa@ltone{0.##2}%
}%
\expandafter\pgfmathfloat@loc@TMPa\the\pgfmathfloat@a@Mtok\relax
\def\pgfmathfloat@loc@@to@int##1.##2\relax##3{%
##3=##1
\ifdim0.##2pt>0.5pt
\advance##3 by1
\fi
}%
\let\pgfmathresultnumerator=\pgfmathfloat@b@S
\let\pgfmathresultdenom=\pgfmathfloat@b@E
\pgfkeysgetvalue{/pgf/number format/frac denom}\pgfmath@target@denominator
\ifx\pgfmath@target@denominator\pgfutil@empty
\pgfmathfloat@a@E=-\pgfmathfloat@a@E
\ifdim\pgfmathfloat@mantissa@ltone pt=0pt
\def\pgfmathfloat@factor{1}%
\edef\pgfmathfloat@scaled@numerator{\the\pgfmathfloat@a@Mtok}%
\else
\pgfutil@ifundefined{FPdiv}{%
\pgfmathfloatparsenumber{\pgfmathfloat@mantissa@ltone}%
\pgfmathfloatreciprocal@{\pgfmathresult}%
}{%
\FPmessagesfalse%
\FPdebugfalse%
\FPdiv\pgfmathresult{1}{\pgfmathfloat@mantissa@ltone}%
\pgfmathfloatparsenumber{\pgfmathresult}%
}%
\let\pgfmathfloat@inv=\pgfmathresult
\pgfmathfloatcreate{1}{1.0}{\pgfkeysvalueof{/pgf/number format/frac shift}}%
\let\pgfmathfloat@scalebaseten=\pgfmathresult
\pgfmathfloatmultiply@{\pgfmathfloat@inv}{\pgfmathfloat@scalebaseten}%
\let\pgfmathfloat@factor=\pgfmathresult
\expandafter\pgfmathfloatparsenumber\expandafter{\the\pgfmathfloat@a@Mtok}%
\let\pgfmathfloat@loc@TMPa=\pgfmathresult
\pgfmathfloatmultiply@{\pgfmathfloat@factor}{\pgfmathfloat@loc@TMPa}%
\pgfmathfloattofixed\pgfmathresult
\let\pgfmathfloat@scaled@numerator=\pgfmathresult
\pgfmathfloattofixed\pgfmathfloat@factor
\expandafter\pgfmathfloat@loc@@to@int\pgfmathresult\relax{\pgfmathfloat@b@S}%
\edef\pgfmathfloat@factor{\the\pgfmathfloat@b@S}%
\fi
\pgfmathresultdenom=\pgfmathfloat@factor\relax
\pgfmathfloat@multiply@ten@to@the@E\pgfmathresultdenom
\expandafter\pgfmathfloat@loc@@to@int\pgfmathfloat@scaled@numerator\relax{\pgfmathresultnumerator}%
\pgfmathgreatestcommondivisor{\pgfmathresultnumerator}{\pgfmathresultdenom}%
\divide\pgfmathresultnumerator by\pgfmathresult\relax
\divide\pgfmathresultdenom by\pgfmathresult\relax
\ifpgfmathprintnumber@frac@warn
\ifnum\pgfmathresultdenom>1000
\pgfutil@ifundefined{FPdiv}{%
\pgfmathfloattosci@\pgfmathfloat@arg
\pgf@typeout{! Package pgf /pgf/number format/frac warning=true: /pgf/number format/frac of `\pgfmathresult' = \the\pgfmathresultnumerator\space / \the\pgfmathresultdenom\space might be large due to instabilities. Try \string\usepackage{fp} to improve accuracy.}%
}{}%
\fi
\fi
\else
\pgfmathresultdenom=\pgfmath@target@denominator\relax
\pgfmathfloatcreate{1}{\the\pgfmathfloat@a@Mtok}{\the\pgfmathfloat@a@E}%
\pgfmathfloattofixed\pgfmathresult
\pgf@xa=\pgfmathresult pt
\multiply\pgf@xa by\pgfmathresultdenom
\edef\pgfmathfloat@scaled@numerator{\pgfmath@tonumber\pgf@xa}%
\expandafter\pgfmathfloat@loc@@to@int\pgfmathfloat@scaled@numerator\relax{\pgfmathresultnumerator}%
\fi
\ifpgfmathprintnumber@frac@whole
\else
\ifx\pgfmathfloat@wholenumber\pgfutil@empty
\else
\count0=\pgfmathfloat@wholenumber\relax
\multiply\count0 by\pgfmathresultdenom
\advance\pgfmathresultnumerator by\count0
\def\pgfmathfloat@wholenumber{}%
\fi
\fi
\ifnum\pgfmathfloat@a@S<0
\edef\pgfmathresult{{-\pgfmathfloat@wholenumber}{\the\pgfmathresultnumerator}{\the\pgfmathresultdenom}}%
\else
\edef\pgfmathresult{{\pgfmathfloat@wholenumber}{\the\pgfmathresultnumerator}{\the\pgfmathresultdenom}}%
\fi
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfmathfloat@gobble@until@relax#1\relax{}
\def\pgfmathgreatestcommondivisor#1#2{%
\begingroup
\count0=#1\relax
\count1=#2\relax
\ifnum\count0=0
\edef\pgfmathresult{\the\count1}%
\else
\pgfmathgreatestcommondivisor@loop
\edef\pgfmathresult{\the\count0}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\def\pgfmathgreatestcommondivisor@loop{%
\ifnum\count1=0
\else
\ifnum\count0>\count1
\advance\count0 by-\count1
\else
\advance\count1 by-\count0
\fi
\expandafter\pgfmathgreatestcommondivisor@loop
\fi
}%
\def\pgfmathfloat@multiply@ten@to@the@E#1{%
\ifnum\pgfmathfloat@a@E>0
\multiply#1 by10
\advance\pgfmathfloat@a@E by-1
\def\pgfmathfloat@multiply@ten@to@the@E@next{\pgfmathfloat@multiply@ten@to@the@E{#1}}%
\else
\let\pgfmathfloat@multiply@ten@to@the@E@next=\relax%
\fi
\pgfmathfloat@multiply@ten@to@the@E@next
}%
\def\pgfmathprintnumber@INT@TRUNC#1{%
\pgfmathfloatparsenumber{#1}%
\pgfmathfloat@to@FMeE@style\pgfmathresult
\expandafter\pgfmathprintnumber@INT@TRUNC@issci\pgfmathresult\relax
}
\def\pgfmathprintnumber@INT@TRUNC@impl#1.#2\relax#3#4e#5\relax{%
\pgfmathfloatroundhasperiodfalse
\pgfmathprintnumber@fixed@style{#1}#3#4e#5\relax%
}
\def\pgfmathprintnumber@INT@TRUNC@issci#1#2e#3\relax{%
\ifnum#1<3\relax
\pgfmathfloatcreate{#1}{#2}{#3}%
\pgfmathfloattofixed{\pgfmathresult}%
\expandafter\pgfmathprintnumber@INT@TRUNC@impl\pgfmathresult\relax#1#2e#3\relax
\else
\pgfmathfloatrounddisplaystyle#1#2e#3\relax%
\fi
}
\def\pgfmathifisint#1#2#3{%
\gdef\pgfmathfloatisint@@{0}%
\begingroup
\pgfmathfloatparsenumber{#1}%
\let\pgfretval\pgfmathresult
\pgfmathfloat@to@FMeE@style\pgfmathresult
\expandafter\pgfmathfloatisint@\pgfmathresult\relax
\pgfmath@smuggleone\pgfretval
\endgroup
\if1\pgfmathfloatisint@@ #2\else #3\fi
}%
\def\pgfmathfloatisint@#1#2e#3\relax{%
\ifnum#1<3\relax
\pgfmathfloatcreate{#1}{#2}{#3}%
\pgfmathfloattofixed{\pgfmathresult}%
\def\pgfmathfloat@round@precision{6}%
\expandafter\pgfmathroundto\expandafter{\pgfmathresult}%
\ifpgfmathfloatroundhasperiod
\else
\let\pgfretval\pgfmathresult%
\gdef\pgfmathfloatisint@@{1}%
\fi
\fi
}
\def\pgfmathprintnumber@INT@DETECT#1{%
\pgfmathfloatparsenumber{#1}%
\pgfmathfloat@to@FMeE@style\pgfmathresult
\expandafter\pgfmathprintnumber@INT@DETECT@issci\pgfmathresult\relax
}
\def\pgfmathprintnumber@INT@DETECT@issci#1#2e#3\relax{%
\begingroup
\ifnum#1<3\relax
\pgfmathfloatcreate{#1}{#2}{#3}%
\pgfmathfloattofixed{\pgfmathresult}%
\let\pgfmathfloat@round@precision@=\pgfmathfloat@round@precision
\def\pgfmathfloat@round@precision{6}%
\expandafter\pgfmathroundto\expandafter{\pgfmathresult}%
\let\pgfmathfloat@round@precision=\pgfmathfloat@round@precision@
\ifpgfmathfloatroundhasperiod
\pgfmathprintnumber@SCI@issci#1#2e#3\relax
\else
\expandafter\pgfmathprintnumber@fixed@style\expandafter{\pgfmathresult}#1#2e#3\relax
\fi
\else
\pgfmathfloatrounddisplaystyle#1#2e#3\relax%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\def\pgfmathprintnumber@FIXED#1{%
\pgfmathfloatparsenumber{#1}%
\pgfmathfloat@to@FMeE@style\pgfmathresult
\expandafter\pgfmathprintnumber@FIXED@issci\pgfmathresult\relax
}
\def\pgfmathprintnumber@FIXED@issci#1#2e#3\relax{%
\begingroup
\ifnum#1<3
\pgfmathfloatcreate{#1}{#2}{#3}%
\pgfmathfloattofixed{\pgfmathresult}%
\ifpgfmathfloat@usezerofill@fixed
\expandafter\pgfmathroundtozerofill\expandafter{\pgfmathresult}%
\else
\expandafter\pgfmathroundto\expandafter{\pgfmathresult}%
\fi
\ifpgfmathfloatroundmayneedrenormalize
\pgfmathfloat@a@E=#3\relax
\advance\pgfmathfloat@a@E by1
\edef\pgfmathfloat@loc@TMPb{\noexpand\pgfmathprintnumber@fixed@style{\pgfmathresult}#1#2e\the\pgfmathfloat@a@E}%
\pgfmathfloat@loc@TMPb\relax%
\else
\expandafter\pgfmathprintnumber@fixed@style\expandafter{\pgfmathresult}#1#2e#3\relax%
\fi
\else%
\pgfmathfloatrounddisplaystyle#1#2e#3\relax%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\def\pgfmathprintnumber@SCI#1{%
\pgfmathfloatparsenumber{#1}%
\pgfmathfloat@to@FMeE@style\pgfmathresult
\expandafter\pgfmathprintnumber@SCI@issci\pgfmathresult\relax
}
\def\pgfmathprintnumber@SCI@issci#1#2e#3\relax{%
\begingroup
\pgfmathfloatcreate{#1}{#2}{#3}%
\edef\pgfmathfloat@round@precision{\pgfmathprintnumber@sci@precision}%
\ifpgfmathfloat@usezerofill@sci
\pgfmathfloatroundzerofill{\pgfmathresult}%
\else
\pgfmathfloatround{\pgfmathresult}%
\fi
\pgfmathfloat@to@FMeE@style\pgfmathresult
\expandafter\pgfmathfloatrounddisplaystyle\pgfmathresult\relax
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\pgfutil@protected\def\pgfmathprintnumber{%
\pgfutil@ifnextchar[%
{\pgfmathprintnumber@OPT}%
{\pgfmathprintnumber@noopt}%
}
\def\pgfmathprintnumber@noopt#1{%
\pgfmathprintnumber@{#1}%
\ifpgfmathprintnumber@assumemathmode
\pgfmathresult
\else
\pgfutilensuremath{\pgfmathresult}%
\fi
}%
\def\pgfmathprintnumber@OPT[#1]#2{%
\begingroup
\pgfqkeys{/pgf/number format}{#1}%
\pgfmathprintnumber@{#2}%
\ifpgfmathprintnumber@assumemathmode
\pgfmathresult
\else
\pgfutilensuremath{\pgfmathresult}%
\fi
\endgroup
}%
\def\pgfmathprintnumberto{%
\pgfutil@ifnextchar[%
{\pgfmathprintnumberto@OPT}%
{\pgfmathprintnumberto@noopt}%
}
\def\pgfmathprintnumberto@noopt#1#2{%
\begingroup
\pgfmathprintnumber@{#1}%
\ifpgfmathprintnumber@assumemathmode
\global\let\pgfmathfloat@glob@TMP=\pgfmathresult
\else
\toks0=\expandafter{\pgfmathresult}%
\xdef\pgfmathfloat@glob@TMP{\noexpand\pgfutilensuremath{\the\toks0 }}%
\fi
\endgroup
\let#2=\pgfmathfloat@glob@TMP
}%
\def\pgfmathprintnumberto@OPT[#1]#2#3{%
\begingroup
\pgfqkeys{/pgf/number format}{#1}%
\pgfmathprintnumber@{#2}%
\ifpgfmathprintnumber@assumemathmode
\global\let\pgfmathfloat@glob@TMP=\pgfmathresult
\else
\toks0=\expandafter{\pgfmathresult}%
\xdef\pgfmathfloat@glob@TMP{\noexpand\pgfutilensuremath{\the\toks0 }}%
\fi
\endgroup
\let#3=\pgfmathfloat@glob@TMP
}%
\def\pgfmath@set@number@printer#1{%
\expandafter\let\expandafter\pgfmathprintnumber@\csname #1\endcsname
\expandafter\let\expandafter\pgfmathprintnumber@issci\csname #1@issci\endcsname
}
\pgfkeys{/pgf/number format/std}
\def\pgfmathfloat@EOI{\pgfmathfloat@EOI}%
\let\c@pgfmathroundto@prec=\pgfmathfloat@b@S%
\let\c@pgfmathroundto@offsetbehindperiod=\pgfmathfloat@b@E
\newcount\c@pgfmathroundto@lastzeros
\newif\ifpgfmathround@impl@PREPERIOD@is@negative@zero
\def\pgfmathroundto@impl#1{%
\edef\pgfmathround@input{#1}%
\global\pgfmathfloatroundmayneedrenormalizefalse
\pgfmathfloat@tmptoks={}%
\let\pgfmathround@next=\pgfutil@empty
\let\pgfmathround@cur=\pgfutil@empty
\let\pgfmathresult=\pgfutil@empty
\expandafter\c@pgfmathroundto@prec\pgfmathfloat@round@precision\relax
\c@pgfmathroundto@lastzeros=0
\c@pgfmathroundto@offsetbehindperiod=-1 %
\pgfmathround@impl@PREPERIOD@is@negative@zerotrue
\expandafter\pgfmathroundto@impl@ITERATE@NODOT@firstcall\pgfmathround@input\pgfmathfloat@EOI
}
\def\pgfmathroundto@impl@discard@period#1.#2\pgfmathfloat@EOI{%
\pgfmathfloatroundhasperiodfalse
\aftergroup\pgfmathfloatroundhasperiodfalse
\def\pgfmathresult{#1}%
}
\def\pgfmathroundto@impl@gobble@rest@and@start#1\pgfmathfloat@EOI{%
\pgfmathroundto@impl@start
}
\def\pgfmathroundto@impl@gobble@and@start\pgfmathfloat@EOI{%
\pgfmathroundto@impl@start
}
\def\pgfmathroundto@impl@gobble\pgfmathfloat@EOI{}%
\def\pgfmathroundto@impl@gobble@rest#1\pgfmathfloat@EOI{}%
\def\pgfmathroundto@impl@start{%
\ifx\pgfmathround@next\pgfutil@empty
\ifnum\c@pgfmathroundto@offsetbehindperiod<0
\ifpgfmathfloat@fixed@digits@after@period
\ifnum\c@pgfmathroundto@prec=0\relax
\pgfmathfloatroundhasperiodfalse
\aftergroup\pgfmathfloatroundhasperiodfalse
\edef\pgfmathresult{\pgfmathround@input}%
\else
\pgfmathfloat@tmptoks=\expandafter{\pgfmathround@input.}%
\c@pgfmathroundto@offsetbehindperiod=\c@pgfmathroundto@prec
\pgfmathroundto@impl@append@zeros
\edef\pgfmathresult{\the\pgfmathfloat@tmptoks}%
\fi
\else
\pgfmathfloatroundhasperiodfalse
\aftergroup\pgfmathfloatroundhasperiodfalse
\edef\pgfmathresult{\pgfmathround@input}%
\fi
\else
\pgfmathroundto@impl@finish@with@truncation
\fi
\else
\expandafter\ifnum\pgfmathround@next<5\relax
\pgfmathroundto@impl@finish@with@truncation
\else
\multiply\c@pgfmathroundto@offsetbehindperiod by-1
\expandafter\pgfmathroundto@impl@ADD@ONE\the\pgfmathfloat@tmptoks\pgfmathfloat@EOI
\fi
\fi
}
\def\pgfmathroundto@impl@finish@with@truncation{%
\ifpgfmathfloat@fixed@digits@after@period
\expandafter\pgfmathroundto@impl@REVERSE\the\pgfmathfloat@tmptoks\pgfmathfloat@EOI
\ifnum\c@pgfmathroundto@lastzeros=\c@pgfmathroundto@offsetbehindperiod
\ifpgfmathround@impl@PREPERIOD@is@negative@zero
\expandafter\pgfmathroundto@impl@discard@minus\the\pgfmathfloat@tmptoks\pgfmathfloat@EOI
\fi
\fi
\ifnum\c@pgfmathroundto@prec=0\relax
\expandafter\pgfmathroundto@impl@discard@period\the\pgfmathfloat@tmptoks\pgfmathfloat@EOI
\else
\advance\c@pgfmathroundto@prec by-\c@pgfmathroundto@offsetbehindperiod
\c@pgfmathroundto@offsetbehindperiod=\c@pgfmathroundto@prec
\pgfmathroundto@impl@append@zeros
\edef\pgfmathresult{\the\pgfmathfloat@tmptoks}%
\fi
\else
\pgfmathroundto@impl@discard@suffix@zeros
\fi
}
\def\pgfmathroundto@impl@discard@minus-#1\pgfmathfloat@EOI{\pgfmathfloat@tmptoks={#1}}%
\def\pgfmathroundto@impl@append@zeros{%
\ifnum\c@pgfmathroundto@offsetbehindperiod>0
\pgfmathfloat@tmptoks=\expandafter{\the\pgfmathfloat@tmptoks0}%
\advance\c@pgfmathroundto@offsetbehindperiod by-1
\pgfmathroundto@impl@append@zeros
\fi
}
\def\pgfmathroundto@impl@ADD@ONE{%
\pgfmathfloat@tmptoks={}%
\pgfmathroundto@impl@ADD@ONE@ITERATE
}
\def\pgfmathroundto@impl@ADD@ONE@ITERATE{%
\pgfutil@ifnextchar\pgfmathfloat@EOI{%
\global\pgfmathfloatroundmayneedrenormalizetrue
\edef\pgfmathresult{1\the\pgfmathfloat@tmptoks}%
\pgfmathroundto@impl@gobble
}{%
\pgfutil@ifnextchar.{%
\ifnum\c@pgfmathroundto@prec=0
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@ADD@ONE@ITERATE@gobble@dot}%
\else
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@ADD@ONE@NEXT@COLLECT}%
\fi
\pgfmathround@nextcmd
}{%
\pgfutil@ifnextchar+{%
\global\pgfmathfloatroundmayneedrenormalizetrue
\edef\pgfmathresult{1\the\pgfmathfloat@tmptoks}%
\pgfmathroundto@impl@gobble@rest
}{%
\pgfutil@ifnextchar-{%
\global\pgfmathfloatroundmayneedrenormalizetrue
\edef\pgfmathresult{-1\the\pgfmathfloat@tmptoks}%
\pgfmathroundto@impl@gobble@rest
}{%
\pgfmathroundto@impl@ADD@ONE@NEXT
}%
}%
}%
}%
}
\def\pgfmathroundto@impl@ADD@ONE@ITERATE@gobble@dot.{%
\pgfmathfloatroundhasperiodfalse
\aftergroup\pgfmathfloatroundhasperiodfalse
\pgfmathroundto@impl@ADD@ONE@ITERATE
}
\def\pgfmathroundto@impl@ADD@ONE@NEXT@COLLECT#1{%
\pgfmathfloat@tmptoks=\expandafter{\expandafter#1\the\pgfmathfloat@tmptoks}%
\pgfmathroundto@impl@ADD@ONE@ITERATE
}
\def\pgfmathroundto@impl@ADD@ONE@NEXT#1{%
\ifnum#1=9
\ifnum\c@pgfmathroundto@offsetbehindperiod<0
\ifpgfmathfloat@fixed@digits@after@period
\pgfmathfloat@tmptoks=\expandafter{\expandafter0\the\pgfmathfloat@tmptoks}%
\else
\fi
\else
\pgfmathfloat@tmptoks=\expandafter{\expandafter0\the\pgfmathfloat@tmptoks}%
\fi
\advance\c@pgfmathroundto@offsetbehindperiod by1
\ifnum\c@pgfmathroundto@offsetbehindperiod=0
\ifpgfmathfloat@fixed@digits@after@period
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@ADD@ONE@ITERATE}%
\else
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@ADD@ONE@ITERATE@gobble@dot}%
\fi
\else
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@ADD@ONE@ITERATE}%
\fi
\else
\c@pgfmathroundto@lastzeros=#1
\advance\c@pgfmathroundto@lastzeros by1
\edef\pgfmathresult{\the\c@pgfmathroundto@lastzeros\the\pgfmathfloat@tmptoks}%
\pgfmathfloat@tmptoks=\expandafter{\pgfmathresult}%
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@REVERSE@ITERATE}%
\fi
\pgfmathround@nextcmd
}
\def\pgfmathroundto@impl@discard@suffix@zeros{%
\ifnum\c@pgfmathroundto@lastzeros=\c@pgfmathroundto@offsetbehindperiod
\ifpgfmathround@impl@PREPERIOD@is@negative@zero
\pgfmathfloatroundhasperiodfalse
\aftergroup\pgfmathfloatroundhasperiodfalse
\def\pgfmathresult{0}%
\else
\expandafter\pgfmathroundto@impl@discard@period\pgfmathround@input\pgfmathfloat@EOI
\fi
\else
\ifnum\c@pgfmathroundto@lastzeros=0
\expandafter\pgfmathroundto@impl@REVERSE\the\pgfmathfloat@tmptoks\pgfmathfloat@EOI
\else
\expandafter\pgfmathroundto@impl@discard@suffix@zeros@ITERATE\the\pgfmathfloat@tmptoks\pgfmathfloat@EOI
\fi
\fi
}
\def\pgfmathroundto@impl@discard@suffix@zeros@ITERATE#1{%
\advance\c@pgfmathroundto@lastzeros by-1
\ifnum\c@pgfmathroundto@lastzeros=0
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@REVERSE}%
\else
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@discard@suffix@zeros@ITERATE}%
\fi
\pgfmathround@nextcmd
}
\def\pgfmathroundto@impl@REVERSE{%
\pgfmathfloat@tmptoks={}%
\pgfmathroundto@impl@REVERSE@ITERATE
}
\def\pgfmathroundto@impl@REVERSE@ITERATE{%
\pgfutil@ifnextchar\pgfmathfloat@EOI{%
\edef\pgfmathresult{\the\pgfmathfloat@tmptoks}%
\pgfmathroundto@impl@gobble
}{%
\pgfmathroundto@impl@REVERSE@NEXT
}%
}
\def\pgfmathroundto@impl@REVERSE@NEXT#1{%
\pgfmathfloat@tmptoks=\expandafter{\expandafter#1\the\pgfmathfloat@tmptoks}%
\pgfmathroundto@impl@REVERSE@ITERATE
}
\def\pgfmathroundto@impl@BEGIN@DOT.{%
\pgfmathfloat@tmptoks=\expandafter{\expandafter.\the\pgfmathfloat@tmptoks}%
\c@pgfmathroundto@offsetbehindperiod=0
\pgfmathroundto@impl@ITERATE@DOT
}
\def\pgfmathroundto@impl@ITERATE@DOT{%
\pgfutil@ifnextchar\pgfmathfloat@EOI{%
\pgfmathroundto@impl@gobble@and@start
}{%
\pgfmathroundto@impl@NEXT@DOT
}%
}
\def\pgfmathroundto@impl@NEXT@DOT#1{%
\ifnum\c@pgfmathroundto@offsetbehindperiod=\c@pgfmathroundto@prec
\def\pgfmathround@next{#1}%
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@gobble@rest@and@start}%
\else
\advance\c@pgfmathroundto@offsetbehindperiod by1
\ifnum#1=0
\advance\c@pgfmathroundto@lastzeros by1
\else
\c@pgfmathroundto@lastzeros=0
\fi
\pgfmathfloat@tmptoks=\expandafter{\expandafter#1\the\pgfmathfloat@tmptoks}%
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@ITERATE@DOT}%
\fi
\pgfmathround@nextcmd
}%
\def\pgfmathroundto@impl@ITERATE@NODOT@firstcall#1{%
\def\pgfmathround@cur{#1}%
\ifx\pgfmathround@cur\pgfmathfloat@EOI
\pgfmathround@impl@PREPERIOD@is@negative@zerofalse
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@start}%
\else
\ifx\pgfmathround@cur\pgfmathfloatparsenumber@tok@PERIOD
\pgfmathround@impl@PREPERIOD@is@negative@zerofalse
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@BEGIN@DOT.}%
\else
\ifx\pgfmathround@cur\pgfmathfloatparsenumber@tok@MINUS
\else
\pgfmathround@impl@PREPERIOD@is@negative@zerofalse
\fi
\pgfmathfloat@tmptoks=\expandafter{\expandafter#1\the\pgfmathfloat@tmptoks}%
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@ITERATE@NODOT}%
\fi
\fi
\pgfmathround@nextcmd
}
\def\pgfmathroundto@impl@ITERATE@NODOT#1{%
\def\pgfmathround@cur{#1}%
\ifx\pgfmathround@cur\pgfmathfloat@EOI
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@start}%
\else
\ifx\pgfmathround@cur\pgfmathfloatparsenumber@tok@PERIOD
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@BEGIN@DOT.}%
\else
\ifx\pgfmathround@cur\pgfmathfloatparsenumber@tok@ZERO
\else
\pgfmathround@impl@PREPERIOD@is@negative@zerofalse
\fi
\pgfmathfloat@tmptoks=\expandafter{\expandafter#1\the\pgfmathfloat@tmptoks}%
\def\pgfmathround@nextcmd{\pgfmathroundto@impl@ITERATE@NODOT}%
\fi
\fi
\pgfmathround@nextcmd
}
\def\pgfmathfloatround@impl{%
\expandafter\pgfmathroundto@impl\expandafter{\the\pgfmathfloat@a@Mtok}%
\ifpgfmathfloatroundmayneedrenormalize
\ifpgfmathfloatroundhasperiod
\expandafter\pgfmathfloatround@impl@renormalize\pgfmathresult\pgfmathfloat@EOI%
\else
\expandafter\pgfmathfloatround@impl@renormalize\pgfmathresult.\pgfmathfloat@EOI%
\fi
\advance\pgfmathfloat@a@E by1
\fi
\pgfmathfloatcreate{\the\pgfmathfloat@a@S}{\pgfmathresult}{\the\pgfmathfloat@a@E}%
}
\def\pgfmathfloatround@impl@renormalize#1#2.#3\pgfmathfloat@EOI{%
\pgfmathroundto@impl{#1.#2#3}%
}
\def\pgfmathfloattofixed@impl#1.#2\relax{%
\ifnum\pgfmathfloat@a@E<0
\ifcase-\pgfmathfloat@a@E
\or%
\pgfmathfloat@a@Mtok={0.}%
\or%
\pgfmathfloat@a@Mtok={0.0}%
\or%
\pgfmathfloat@a@Mtok={0.00}%
\or%
\pgfmathfloat@a@Mtok={0.000}%
\or%
\pgfmathfloat@a@Mtok={0.0000}%
\or%
\pgfmathfloat@a@Mtok={0.00000}%
\or%
\pgfmathfloat@a@Mtok={0.000000}%
\or%
\pgfmathfloat@a@Mtok={0.0000000}%
\or%
\pgfmathfloat@a@Mtok={0.00000000}%
\or%
\pgfmathfloat@a@Mtok={0.000000000}%
\else%
\pgfmathfloat@a@Mtok={0.0000000000}%
\advance\pgfmathfloat@a@E by10
\pgfutil@loop
\ifnum\pgfmathfloat@a@E<-1
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok 0}%
\advance\pgfmathfloat@a@E by1
\pgfutil@repeat
\fi
\def\pgfmathfloat@loc@TMPb{#2}%
\def\pgfmathfloat@loc@TMPc{0}%
\ifx\pgfmathfloat@loc@TMPb\pgfmathfloat@loc@TMPc
\edef\pgfmathresult{\the\pgfmathfloat@a@Mtok #1}%
\else
\edef\pgfmathresult{\the\pgfmathfloat@a@Mtok #1#2}%
\fi
\else
\pgfmathfloat@a@Mtok{#1}%
\pgfmathfloattofixed@impl@pos#2000000000\pgfmathfloat@EOI
\edef\pgfmathresult{\the\pgfmathfloat@a@Mtok}%
\fi
}
\def\pgfmathfloattofixed@impl@pos#1#2#3#4#5#6#7#8#9\pgfmathfloat@EOI{%
\ifcase\pgfmathfloat@a@E
\pgfmathfloat@a@Mtok\expandafter{\the\pgfmathfloat@a@Mtok .#1#2#3#4#5#6#7#8#9}%
\or%
\pgfmathfloat@a@Mtok\expandafter{\the\pgfmathfloat@a@Mtok #1.#2#3#4#5#6#7#8#9}%
\or%
\pgfmathfloat@a@Mtok\expandafter{\the\pgfmathfloat@a@Mtok #1#2.#3#4#5#6#7#8#9}%
\or%
\pgfmathfloat@a@Mtok\expandafter{\the\pgfmathfloat@a@Mtok #1#2#3.#4#5#6#7#8#9}%
\or%
\pgfmathfloat@a@Mtok\expandafter{\the\pgfmathfloat@a@Mtok #1#2#3#4.#5#6#7#8#9}%
\or%
\pgfmathfloat@a@Mtok\expandafter{\the\pgfmathfloat@a@Mtok #1#2#3#4#5.#6#7#8#9}%
\or%
\pgfmathfloat@a@Mtok\expandafter{\the\pgfmathfloat@a@Mtok #1#2#3#4#5#6.#7#8#9}%
\or%
\pgfmathfloat@a@Mtok\expandafter{\the\pgfmathfloat@a@Mtok #1#2#3#4#5#6#7.#8#9}%
\or%
\pgfmathfloat@a@Mtok\expandafter{\the\pgfmathfloat@a@Mtok #1#2#3#4#5#6#7#8.#9}%
\else%
\pgfmathfloat@a@Mtok\expandafter{\the\pgfmathfloat@a@Mtok #1#2#3#4#5#6#7#8}%
\advance\pgfmathfloat@a@E by-8
\pgfmathfloattofixed@impl@collectmantissa#9\count\pgfmathfloat@a@E
\fi
}%
\def\pgfmathfloattofixed@impl@collectmantissa#1#2\count#3{%
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok #1}%
\advance\pgfmathfloat@a@E by-1%
\def\pgfmathfloat@loc@TMPb{#2}%
\ifx\pgfmathfloat@loc@TMPb\pgfutil@empty
\pgfutil@loop
\ifnum\pgfmathfloat@a@E>0%
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok 0}%
\advance\pgfmathfloat@a@E by-1%
\pgfutil@repeat
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok .0}%
\else
\ifnum\pgfmathfloat@a@E=0
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok .#2}%
\else
\pgfmathfloattofixed@impl@collectmantissa#2\count#3%
\fi
\fi
}
\def\pgfmathfloatparsenumber@tok@ZERO{0}
\def\pgfmathfloatparsenumber@tok@PLUS{+}
\def\pgfmathfloatparsenumber@tok@MINUS{-}
\def\pgfmathfloatparsenumber@tok@PERIOD{.}
\newif\ifpgfmathfloatparsenumberpendingperiod
\def\pgfflt@EOI{p@EOI}%
\def\pgfflt@EOI@unexpanded{\pgfflt@EOI}%
\def\pgfflt@impl#1{%
\pgfmathfloatparsenumberpendingperiodfalse
\pgfmathfloat@tmptoks={}%
\pgfmathfloat@a@E=0
\expandafter\ifx\csname pgfflt@#1\endcsname\relax
\pgfmathfloat@a@S=1
\expandafter\pgfflt@init\expandafter#1%
\else
\expandafter\expandafter\csname pgfflt@#1\endcsname
\fi
}
\expandafter\def\csname pgfflt@+\endcsname{%
\pgfmathfloat@a@S=1 %
\pgfflt@init}%
\expandafter\def\csname pgfflt@-\endcsname{%
\pgfmathfloat@a@S=2 %
\pgfflt@init}%
\expandafter\def\csname pgfflt@\pgfflt@EOI\endcsname{%
\pgfmathfloatparsenumber@handleerror{empty number}{}{}}%
\pgfkeys{
/pgf/fpu/handlers/empty number/.style 2 args={%
/pgf/fpu/handlers/invalid number={#1}{#2}%
},
/pgf/fpu/empty number is zero/.style={%
/pgf/fpu/handlers/empty number/.code 2 args={%
\pgfmathfloatcreate{0}{0.0}{0}%
}%
},%
/pgf/fpu/handlers/invalid separator/.code 2 args={%
\pgfmath@error{Could not parse input '#1' as a floating point number, sorry. The unreadable part was near the decimal separator '#2'. Do you need the option 'read comma as period'?}{}%
},
/pgf/fpu/handlers/invalid number/.code 2 args={%
\pgfmath@error{Could not parse input '#1' as a floating point number, sorry. The unreadable part was near '#2'.}{}%
},
/pgf/fpu/handlers/wrong lowlevel format/.code 2 args={%
\pgfmath@error{Sorry, an internal routine of the floating point unit got an ill-formatted floating point number `#1'. The unreadable part was near '#2'.}{}%
\let\pgfmathresult=\pgfutil@empty
},
}
\def\pgfmathfloatparsenumber@handleerror#1#2#3{%
\let\pgfmathresult=\pgfutil@empty
\pgfmathfloatparsenumberpendingperiodfalse
\pgfkeys{/pgf/fpu/handlers/#1={#2}{#3}}%
\ifx\pgfmathresult\pgfutil@empty
\pgfmathfloat@a@S=3
\pgfmathfloat@a@Mtok={0.0}%
\pgfmathfloat@a@E=0
\else
\expandafter\pgfmathfloat@decompose@tok\pgfmathresult\relax\pgfmathfloat@a@S\pgfmathfloat@a@Mtok\pgfmathfloat@a@E
\fi
}
\def\pgfflt@error#1\pgfflt@EOI{%
\begingroup
\pgfmathfloat@a@Mtok={#1}%
\xdef\pgfmathfloat@glob@TMP{%
\noexpand\pgfmathfloatparsenumber@handleerror
{invalid number}{\pgfmathresult}{\the\pgfmathfloat@a@Mtok}}%
\endgroup
\pgfmathfloat@glob@TMP
}%
\def\pgfflt@init#1{%
\expandafter\ifx\csname pgffltA@#1\endcsname\relax
\expandafter\pgfflt@error\expandafter#1%
\else
\expandafter\expandafter\csname pgffltA@#1\endcsname
\fi}
\expandafter\def\csname pgffltA@0\endcsname{\pgfflt@leadingzero}%
\expandafter\def\csname pgffltA@1\endcsname{\pgfflt@nonzerodigit1}%
\expandafter\def\csname pgffltA@2\endcsname{\pgfflt@nonzerodigit2}%
\expandafter\def\csname pgffltA@3\endcsname{\pgfflt@nonzerodigit3}%
\expandafter\def\csname pgffltA@4\endcsname{\pgfflt@nonzerodigit4}%
\expandafter\def\csname pgffltA@5\endcsname{\pgfflt@nonzerodigit5}%
\expandafter\def\csname pgffltA@6\endcsname{\pgfflt@nonzerodigit6}%
\expandafter\def\csname pgffltA@7\endcsname{\pgfflt@nonzerodigit7}%
\expandafter\def\csname pgffltA@8\endcsname{\pgfflt@nonzerodigit8}%
\expandafter\def\csname pgffltA@9\endcsname{\pgfflt@nonzerodigit9}%
\def\pgfflt@nonzerodigit#1{%
\pgfmathfloat@a@Mtok={#1}%
\pgfmathfloatparsenumberpendingperiodtrue
\pgfflt@positiveexp}%
\expandafter\def\csname pgffltA@n\endcsname{\pgfflt@readnan}%
\expandafter\def\csname pgffltA@N\endcsname{\pgfflt@readnan}%
\expandafter\def\csname pgffltA@i\endcsname{\pgfflt@readinf}%
\expandafter\def\csname pgffltA@I\endcsname{\pgfflt@readinf}%
\expandafter\def\csname pgffltA@.\endcsname{%
\pgfmathfloat@a@E=-1
\pgfflt@leadingzero@foundperiod}%
\expandafter\def\csname pgffltA@,\endcsname{%
\pgfmathfloat@frenchinput{%
\pgfmathfloat@a@E=-1
\pgfflt@leadingzero@foundperiod
}%
}%
\def\pgfmathfloat@frenchinput#1{%
\ifpgfmathparsenumber@comma@as@period
\def\pgf@marshal{#1}%
\expandafter\pgf@marshal
\else
\expandafter\pgfflt@error@separator\expandafter,%
\fi
}%
\def\pgfflt@error@separator#1\pgfflt@EOI{%
\begingroup
\pgfmathfloat@a@Mtok={#1}%
\xdef\pgfmathfloat@glob@TMP{%
\noexpand\pgfmathfloatparsenumber@handleerror
{invalid separator}{\pgfmathresult}{\the\pgfmathfloat@a@Mtok}}%
\endgroup
\pgfmathfloat@glob@TMP
}%
\def\pgfflt@finish#1\pgfflt@EOI{}
\def\pgfflt@readnan #1#2{%
\def\pgfflt@readnan@ok{1}%
\if#1a\else\if#1A\else\def\pgfflt@readnan@ok{0}\fi\fi
\if#2n\else\if#2N\else\def\pgfflt@readnan@ok{0}\fi\fi
\if\pgfflt@readnan@ok1%
\pgfmathfloat@a@S=3\relax%
\pgfmathfloat@a@Mtok={0.0}%
\pgfmathfloat@a@E=0%
\expandafter\pgfflt@finish
\else
\def\pgfflt@readnan@{\pgfflt@error #1#2}%
\expandafter\pgfflt@readnan@
\fi
}
\def\pgfflt@readinf #1#2{%
\def\pgfflt@readinf@ok{1}%
\if#1n\else\if#1N\else\def\pgfflt@readinf@ok{0}\fi\fi
\if#2f\else\if#2F\else\def\pgfflt@readinf@ok{0}\fi\fi
\if\pgfflt@readinf@ok1%
\ifnum\pgfmathfloat@a@S=1 %
\pgfmathfloat@a@S=4 %
\pgfmathfloat@a@Mtok={0.0}%
\else
\pgfmathfloat@a@S=5 %
\pgfmathfloat@a@Mtok={0.0}%
\fi
\pgfmathfloat@a@E=0 %
\expandafter\pgfflt@finish
\else
\def\pgfflt@readinf@{\pgfflt@error #1#2}%
\expandafter\pgfflt@readinf@
\fi
}
\def\pgfflt@leadingzero#1{%
\expandafter\ifx\csname pgffltB@#1\endcsname\relax
\expandafter\pgfflt@error\expandafter#1%
\else
\expandafter\expandafter\csname pgffltB@#1\endcsname
\fi}
\expandafter\def\csname pgffltB@0\endcsname{\pgfflt@leadingzero}%
\expandafter\def\csname pgffltB@1\endcsname{\pgfmathfloat@a@Mtok={1}\pgfmathfloatparsenumberpendingperiodtrue \pgfflt@positiveexp}
\expandafter\def\csname pgffltB@2\endcsname{\pgfmathfloat@a@Mtok={2}\pgfmathfloatparsenumberpendingperiodtrue \pgfflt@positiveexp}
\expandafter\def\csname pgffltB@3\endcsname{\pgfmathfloat@a@Mtok={3}\pgfmathfloatparsenumberpendingperiodtrue \pgfflt@positiveexp}
\expandafter\def\csname pgffltB@4\endcsname{\pgfmathfloat@a@Mtok={4}\pgfmathfloatparsenumberpendingperiodtrue \pgfflt@positiveexp}
\expandafter\def\csname pgffltB@5\endcsname{\pgfmathfloat@a@Mtok={5}\pgfmathfloatparsenumberpendingperiodtrue \pgfflt@positiveexp}
\expandafter\def\csname pgffltB@6\endcsname{\pgfmathfloat@a@Mtok={6}\pgfmathfloatparsenumberpendingperiodtrue \pgfflt@positiveexp}
\expandafter\def\csname pgffltB@7\endcsname{\pgfmathfloat@a@Mtok={7}\pgfmathfloatparsenumberpendingperiodtrue \pgfflt@positiveexp}
\expandafter\def\csname pgffltB@8\endcsname{\pgfmathfloat@a@Mtok={8}\pgfmathfloatparsenumberpendingperiodtrue \pgfflt@positiveexp}
\expandafter\def\csname pgffltB@9\endcsname{\pgfmathfloat@a@Mtok={9}\pgfmathfloatparsenumberpendingperiodtrue \pgfflt@positiveexp}
\expandafter\def\csname pgffltB@\pgfmathfloat@POSTFLAGSCHAR\endcsname{\pgfmathfloat@a@Mtok={0}\pgfflt@readlowlevelfloat}%
\expandafter\def\csname pgffltB@.\endcsname{%
\pgfmathfloat@a@E=-1
\pgfflt@leadingzero@foundperiod}%
\expandafter\def\csname pgffltB@,\endcsname{%
\pgfmathfloat@frenchinput{%
\pgfmathfloat@a@E=-1
\pgfflt@leadingzero@foundperiod
}%
}%
\expandafter\def\csname pgffltB@e\endcsname{%
\pgfmathfloat@a@S=0\relax%
\pgfmathfloat@a@Mtok={0.0}%
\pgfmathfloat@a@E=0%
\pgfflt@readexponent}%
\let\pgffltB@E=\pgffltB@e
\expandafter\def\csname pgffltB@\pgfflt@EOI\endcsname{%
\pgfmathfloat@a@S=0\relax%
\pgfmathfloat@a@Mtok={0.0}%
\pgfmathfloat@a@E=0}%
\def\pgfflt@leadingzero@foundperiod#1{%
\expandafter\ifx\csname pgffltC@#1\endcsname\relax
\expandafter\pgfflt@error\expandafter#1%
\else
\expandafter\expandafter\csname pgffltC@#1\endcsname
\fi}
\expandafter\def\csname pgffltC@0\endcsname{%
\advance\pgfmathfloat@a@E by-1
\pgfflt@leadingzero@foundperiod}%
\expandafter\def\csname pgffltC@1\endcsname{\pgfmathfloat@a@Mtok={1}\pgfmathfloatparsenumberpendingperiodtrue\pgfflt@finish@number@after@period}%
\expandafter\def\csname pgffltC@2\endcsname{\pgfmathfloat@a@Mtok={2}\pgfmathfloatparsenumberpendingperiodtrue\pgfflt@finish@number@after@period}%
\expandafter\def\csname pgffltC@3\endcsname{\pgfmathfloat@a@Mtok={3}\pgfmathfloatparsenumberpendingperiodtrue\pgfflt@finish@number@after@period}%
\expandafter\def\csname pgffltC@4\endcsname{\pgfmathfloat@a@Mtok={4}\pgfmathfloatparsenumberpendingperiodtrue\pgfflt@finish@number@after@period}%
\expandafter\def\csname pgffltC@5\endcsname{\pgfmathfloat@a@Mtok={5}\pgfmathfloatparsenumberpendingperiodtrue\pgfflt@finish@number@after@period}%
\expandafter\def\csname pgffltC@6\endcsname{\pgfmathfloat@a@Mtok={6}\pgfmathfloatparsenumberpendingperiodtrue\pgfflt@finish@number@after@period}%
\expandafter\def\csname pgffltC@7\endcsname{\pgfmathfloat@a@Mtok={7}\pgfmathfloatparsenumberpendingperiodtrue\pgfflt@finish@number@after@period}%
\expandafter\def\csname pgffltC@8\endcsname{\pgfmathfloat@a@Mtok={8}\pgfmathfloatparsenumberpendingperiodtrue\pgfflt@finish@number@after@period}%
\expandafter\def\csname pgffltC@9\endcsname{\pgfmathfloat@a@Mtok={9}\pgfmathfloatparsenumberpendingperiodtrue\pgfflt@finish@number@after@period}%
\expandafter\def\csname pgffltC@e\endcsname{%
\pgfmathfloat@a@S=0\relax%
\pgfmathfloat@a@Mtok={0.0}%
\pgfmathfloat@a@E=0%
\pgfflt@readexponent}%
\let\pgffltC@E=\pgffltC@e
\expandafter\def\csname pgffltC@\pgfflt@EOI\endcsname{%
\pgfmathfloat@a@S=0\relax%
\pgfmathfloat@a@Mtok={0.0}%
\pgfmathfloat@a@E=0}%
\def\pgfflt@positiveexp#1{%
\expandafter\ifx\csname pgffltD@#1\endcsname\relax
\expandafter\pgfflt@error\expandafter#1%
\else
\expandafter\expandafter\csname pgffltD@#1\endcsname
\fi}
\expandafter\def\csname pgffltD@0\endcsname{%
\advance\pgfmathfloat@a@E by1
\pgfmathfloat@tmptoks=\expandafter{\the\pgfmathfloat@tmptoks0}%
\pgfflt@pendingzeros@positiveexp}%
\expandafter\def\csname pgffltD@1\endcsname{\pgffltD@nonzerodigit1}%
\expandafter\def\csname pgffltD@2\endcsname{\pgffltD@nonzerodigit2}%
\expandafter\def\csname pgffltD@3\endcsname{\pgffltD@nonzerodigit3}%
\expandafter\def\csname pgffltD@4\endcsname{\pgffltD@nonzerodigit4}%
\expandafter\def\csname pgffltD@5\endcsname{\pgffltD@nonzerodigit5}%
\expandafter\def\csname pgffltD@6\endcsname{\pgffltD@nonzerodigit6}%
\expandafter\def\csname pgffltD@7\endcsname{\pgffltD@nonzerodigit7}%
\expandafter\def\csname pgffltD@8\endcsname{\pgffltD@nonzerodigit8}%
\expandafter\def\csname pgffltD@9\endcsname{\pgffltD@nonzerodigit9}%
\expandafter\def\csname pgffltD@\pgfmathfloat@POSTFLAGSCHAR\endcsname{\pgfflt@readlowlevelfloat}%
\expandafter\def\csname pgffltD@.\endcsname{\pgfflt@finish@number@after@period}%
\expandafter\def\csname pgffltD@,\endcsname{\pgfmathfloat@frenchinput{\pgfflt@finish@number@after@period}}%
\expandafter\def\csname pgffltD@e\endcsname{\pgfflt@readexponent}%
\let\pgffltD@E=\pgffltD@e
\expandafter\def\csname pgffltD@\pgfflt@EOI\endcsname{}%
\def\pgffltD@nonzerodigit#1{%
\advance\pgfmathfloat@a@E by1
\ifpgfmathfloatparsenumberpendingperiod
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok.}%
\pgfmathfloatparsenumberpendingperiodfalse
\fi
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok#1}%
\pgfflt@positiveexp}%
\def\pgfflt@readlowlevelfloat#1e#2]\pgfflt@EOI{%
\pgfmathfloatparsenumberpendingperiodfalse
\pgfmathfloat@a@S=\the\pgfmathfloat@a@Mtok\relax
\pgfmathfloat@a@Mtok={#1}%
\pgfmathfloat@a@E=#2
}%
\def\pgfflt@readexponent#1\pgfflt@EOI{%
\afterassignment\pgfflt@readexponent@
\pgfmathfloat@b@E=#1 \pgfflt@EOI%
}
\def\pgfflt@readexponent@#1{%
\advance\pgfmathfloat@a@E by\pgfmathfloat@b@E\relax
\def\pgfmathfloat@loc@TMPb{#1}%
\ifx\pgfmathfloat@loc@TMPb\pgfflt@EOI@unexpanded
\else
\def\pgfmathfloat@loc@TMPb{\pgfflt@error#1}%
\expandafter\pgfmathfloat@loc@TMPb
\fi
}
\def\pgfflt@pendingzeros@positiveexp#1{%
\expandafter\ifx\csname pgffltE@#1\endcsname\relax
\expandafter\pgfflt@error\expandafter#1%
\else
\expandafter\expandafter\csname pgffltE@#1\endcsname
\fi}
\expandafter\def\csname pgffltE@0\endcsname{%
\pgfmathfloat@tmptoks=\expandafter{\the\pgfmathfloat@tmptoks0}%
\advance\pgfmathfloat@a@E by1
\pgfflt@pendingzeros@positiveexp}%
\expandafter\def\csname pgffltE@1\endcsname{\pgffltE@nonzerodigit1}%
\expandafter\def\csname pgffltE@2\endcsname{\pgffltE@nonzerodigit2}%
\expandafter\def\csname pgffltE@3\endcsname{\pgffltE@nonzerodigit3}%
\expandafter\def\csname pgffltE@4\endcsname{\pgffltE@nonzerodigit4}%
\expandafter\def\csname pgffltE@5\endcsname{\pgffltE@nonzerodigit5}%
\expandafter\def\csname pgffltE@6\endcsname{\pgffltE@nonzerodigit6}%
\expandafter\def\csname pgffltE@7\endcsname{\pgffltE@nonzerodigit7}%
\expandafter\def\csname pgffltE@8\endcsname{\pgffltE@nonzerodigit8}%
\expandafter\def\csname pgffltE@9\endcsname{\pgffltE@nonzerodigit9}%
\expandafter\def\csname pgffltE@.\endcsname{\pgfflt@finish@number@after@period}%
\expandafter\def\csname pgffltE@,\endcsname{\pgfmathfloat@frenchinput{\pgfflt@finish@number@after@period}}%
\def\pgffltE@e{\pgfflt@readexponent}%
\let\pgffltE@E=\pgffltE@e
\expandafter\def\csname pgffltE@\pgfflt@EOI\endcsname{}%
\def\pgffltE@nonzerodigit#1{%
\advance\pgfmathfloat@a@E by1
\ifpgfmathfloatparsenumberpendingperiod
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok.}%
\pgfmathfloatparsenumberpendingperiodfalse
\fi
\pgfmathfloat@a@Mtok=\expandafter\expandafter\expandafter{\expandafter\the\expandafter\pgfmathfloat@a@Mtok\the\pgfmathfloat@tmptoks}%
\pgfmathfloat@tmptoks={}%
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok#1}%
\pgfflt@positiveexp}%
\def\pgfflt@finish@number@after@period#1{%
\expandafter\ifx\csname pgffltF@#1\endcsname\relax
\expandafter\pgfflt@error\expandafter#1%
\else
\expandafter\expandafter\csname pgffltF@#1\endcsname
\fi}
\expandafter\def\csname pgffltF@0\endcsname{%
\pgfmathfloat@tmptoks=\expandafter{\the\pgfmathfloat@tmptoks0}%
\pgfflt@pendingzeros}%
\expandafter\def\csname pgffltF@1\endcsname{\pgffltF@nonzerodigit1}%
\expandafter\def\csname pgffltF@2\endcsname{\pgffltF@nonzerodigit2}%
\expandafter\def\csname pgffltF@3\endcsname{\pgffltF@nonzerodigit3}%
\expandafter\def\csname pgffltF@4\endcsname{\pgffltF@nonzerodigit4}%
\expandafter\def\csname pgffltF@5\endcsname{\pgffltF@nonzerodigit5}%
\expandafter\def\csname pgffltF@6\endcsname{\pgffltF@nonzerodigit6}%
\expandafter\def\csname pgffltF@7\endcsname{\pgffltF@nonzerodigit7}%
\expandafter\def\csname pgffltF@8\endcsname{\pgffltF@nonzerodigit8}%
\expandafter\def\csname pgffltF@9\endcsname{\pgffltF@nonzerodigit9}%
\def\pgffltF@e{\pgfflt@readexponent}%
\let\pgffltF@E=\pgffltF@e
\expandafter\def\csname pgffltF@\pgfflt@EOI\endcsname{}%
\def\pgffltF@nonzerodigit#1{%
\ifpgfmathfloatparsenumberpendingperiod
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok.}%
\pgfmathfloatparsenumberpendingperiodfalse
\fi
\pgfmathfloat@a@Mtok=\expandafter\expandafter\expandafter{\expandafter\the\expandafter\pgfmathfloat@a@Mtok\the\pgfmathfloat@tmptoks}%
\pgfmathfloat@tmptoks={}%
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok#1}%
\pgfflt@finish@number@after@period}%
\def\pgfflt@pendingzeros#1{%
\expandafter\ifx\csname pgffltG@#1\endcsname\relax
\expandafter\pgfflt@error\expandafter#1%
\else
\expandafter\expandafter\csname pgffltG@#1\endcsname
\fi}
\expandafter\def\csname pgffltG@0\endcsname{%
\pgfmathfloat@tmptoks=\expandafter{\the\pgfmathfloat@tmptoks0}%
\pgfflt@pendingzeros}%
\expandafter\def\csname pgffltG@1\endcsname{\pgffltG@nonzerodigit1}%
\expandafter\def\csname pgffltG@2\endcsname{\pgffltG@nonzerodigit2}%
\expandafter\def\csname pgffltG@3\endcsname{\pgffltG@nonzerodigit3}%
\expandafter\def\csname pgffltG@4\endcsname{\pgffltG@nonzerodigit4}%
\expandafter\def\csname pgffltG@5\endcsname{\pgffltG@nonzerodigit5}%
\expandafter\def\csname pgffltG@6\endcsname{\pgffltG@nonzerodigit6}%
\expandafter\def\csname pgffltG@7\endcsname{\pgffltG@nonzerodigit7}%
\expandafter\def\csname pgffltG@8\endcsname{\pgffltG@nonzerodigit8}%
\expandafter\def\csname pgffltG@9\endcsname{\pgffltG@nonzerodigit9}%
\def\pgffltG@e{\pgfflt@readexponent}%
\let\pgffltG@E=\pgffltG@e
\expandafter\def\csname pgffltG@\pgfflt@EOI\endcsname{}%
\def\pgffltG@nonzerodigit#1{%
\ifpgfmathfloatparsenumberpendingperiod
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok.}%
\pgfmathfloatparsenumberpendingperiodfalse
\fi
\pgfmathfloat@a@Mtok=\expandafter\expandafter\expandafter{\expandafter\the\expandafter\pgfmathfloat@a@Mtok\the\pgfmathfloat@tmptoks}%
\pgfmathfloat@tmptoks={}%
\pgfmathfloat@a@Mtok=\expandafter{\the\pgfmathfloat@a@Mtok#1}%
\pgfflt@finish@number@after@period}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfloat.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.base.code.tex ====
\pgfmathdeclarefunction{bin}{1}{%
\begingroup%
\afterassignment\pgfmath@gobbletilpgfmath@%
\c@pgfmath@counta=#1\relax\pgfmath@%
\expandafter\pgfmathbasetobase\expandafter\pgfmathresult\expandafter{\the\c@pgfmath@counta}{10}{2}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{hex}{1}{%
\begingroup%
\afterassignment\pgfmath@gobbletilpgfmath@%
\c@pgfmath@counta=#1\relax\pgfmath@%
\expandafter\pgfmathbasetobase\expandafter\pgfmathresult\expandafter{\the\c@pgfmath@counta}{10}{16}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{Hex}{1}{%
\begingroup%
\afterassignment\pgfmath@gobbletilpgfmath@%
\c@pgfmath@counta=#1\relax\pgfmath@%
\expandafter\pgfmathbasetoBase\expandafter\pgfmathresult\expandafter{\the\c@pgfmath@counta}{10}{16}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{oct}{1}{%
\begingroup%
\afterassignment\pgfmath@gobbletilpgfmath@%
\c@pgfmath@counta=#1\relax\pgfmath@%
\expandafter\pgfmathbasetobase\expandafter\pgfmathresult\expandafter{\the\c@pgfmath@counta}{10}{8}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\def\pgfmathbasetodec#1#2#3{%
\pgfmath@checknumber{#2}%
\pgfmath@checkbase{#3}%
\def\pgfmath@base{#3}%
\def\pgfmath@base@macro{#1}%
\c@pgfmath@counta=1\relax%
\let\pgfmath@reversed=\pgfmath@empty%
\expandafter\pgfmathbasetodec@#2\pgfmath@base@stop}
\def\pgfmathbasetodec@#1{%
\ifx#1\pgfmath@base@stop%
\c@pgfmath@countb=0%
\divide\c@pgfmath@counta by\pgfmath@base\relax%
\expandafter\pgfmathbasetodec@@%
\else%
\edef\pgfmath@reversed{\pgfmath@reversed#1}%
\expandafter\multiply\expandafter\c@pgfmath@counta\pgfmath@base\relax%
\expandafter\pgfmathbasetodec@%
\fi}
\def\pgfmathbasetodec@@{\expandafter\pgfmathbasetodec@@@\pgfmath@reversed\pgfmathbasetodec}
\def\pgfmathbasetodec@@@#1{%
\ifx\pgfmathbasetodec#1\relax%
\expandafter\edef\pgfmath@base@macro{\the\c@pgfmath@countb}%
\let\pgfmath@next=\pgfmathbasetodec@@@@%
\else%
\chardef\pgfmath@charnum`#1\relax%
\c@pgfmath@countc=\pgfmath@charnum\relax%
\ifnum\c@pgfmath@countc>96\relax%
\advance\c@pgfmath@countc by-87\relax%
\else
\ifnum\c@pgfmath@countc>64\relax%
\advance\c@pgfmath@countc by-55\relax%
\else
\advance\c@pgfmath@countc by-48\relax%
\fi%
\fi%
\ifnum\c@pgfmath@countc<\pgfmath@base\relax%
\multiply\c@pgfmath@countc by\c@pgfmath@counta%
\advance\c@pgfmath@countb by\c@pgfmath@countc%
\divide\c@pgfmath@counta by\pgfmath@base\relax%
\let\pgfmath@next\pgfmathbasetodec@@@%
\else
\pgfmath@error{Digit `#1' invalid for base \pgfmath@base}{}%
\let\pgfmath@next=\relax%
\fi%
\fi%
\pgfmath@next}
\def\pgfmathbasetodec@@@@{%
\expandafter\pgfmath@ensurenumberlength\expandafter{\pgfmath@base@macro}%
}
\def\pgfmathdectobase#1#2#3{%
\pgfmath@checknumber{#2}%
\pgfmath@checkbase{#3}%
\c@pgfmath@counta=#2\relax%
\let#1=\pgfmath@empty%
\pgfmathloop
\ifnum\c@pgfmath@counta>0\relax%
\c@pgfmath@countb=\c@pgfmath@counta%
\divide\c@pgfmath@countb by#3\relax%
\multiply\c@pgfmath@countb by-#3\relax%
\advance\c@pgfmath@countb by\c@pgfmath@counta%
\edef#1{\csname pgfmath@lowercase digit@\the\c@pgfmath@countb\endcsname#1}%
\divide\c@pgfmath@counta by#3\relax%
\repeatpgfmathloop%
\pgfmath@ensurenumberlength{#1}}
\def\pgfmathdectoBase#1#2#3{%
\pgfmath@checkbase{#3}%
\pgfmath@checknumber{#2}%
\c@pgfmath@counta=#2\relax%
\let#1=\pgfmath@empty%
\pgfmathloop
\ifnum\c@pgfmath@counta>0\relax%
\c@pgfmath@countb=\c@pgfmath@counta%
\divide\c@pgfmath@countb by#3\relax%
\multiply\c@pgfmath@countb by-#3\relax%
\advance\c@pgfmath@countb by\c@pgfmath@counta%
\edef#1{\csname pgfmath@uppercase digit@\the\c@pgfmath@countb\endcsname#1}%
\divide\c@pgfmath@counta by#3\relax%
\repeatpgfmathloop%
\pgfmath@ensurenumberlength{#1}}
\def\pgfmath@base@digits@create{%
\def\pgfmath@base@digit@style{lowercase digit}%
\c@pgfmath@counta=0\relax%
\pgfmath@base@digits@create@0123456789abcdefghijklmnopqrstuvwxyz\pgfmath@base@digits@create%
\def\pgfmath@base@digit@style{uppercase digit}%
\c@pgfmath@counta=0\relax%
\pgfmath@base@digits@create@0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\pgfmath@base@digits@create}
\def\pgfmath@base@digits@create@#1{%
\ifx\pgfmath@base@digits@create#1\relax%
\else%
\expandafter\pgfmath@def\expandafter{\pgfmath@base@digit@style}{\the\c@pgfmath@counta}{#1}%
\advance\c@pgfmath@counta by1\relax%
\expandafter\pgfmath@base@digits@create@%
\fi}
\pgfmath@base@digits@create
\def\pgfmathbasetobase#1#2#3#4{%
\pgfmathbasetodec{\pgfmath@base@temp}{#2}{#3}%
\pgfmathdectobase{#1}{\pgfmath@base@temp}{#4}%
}
\def\pgfmathbasetoBase#1#2#3#4{%
\pgfmathbasetodec{\pgfmath@base@temp}{#2}{#3}%
\pgfmathdectoBase{#1}{\pgfmath@base@temp}{#4}%
}
\def\pgfmath@checkbase#1{%
\ifnum#1<2\relax%
\pgfmath@error{Cannot process numbers in base `#1'.}{}%
\else%
\ifnum#1>36\relax%
\pgfmath@error{Cannot process numbers in base `#1'.}{}%
\fi%
\fi}
\def\pgfmath@checknumber#1{%
\expandafter\pgfmath@checknumber@#1\pgfmath@}
\def\pgfmath@checknumber@#1#2\pgfmath@{%
\ifx#1-%
\pgfmath@error{Cannot process negative numbers.}{}%
\fi}
\def\pgfmath@ensurenumberlength#1{%
\def\pgfmath@base@tempa{#1}%
\expandafter\c@pgfmath@counta\pgfmath@basenumberlength\relax%
\expandafter\pgfmath@ensurenumberlength@#1\pgfmath@ensurenumberlength}
\def\pgfmath@ensurenumberlength@#1{%
\ifx\pgfmath@ensurenumberlength#1\relax%
\expandafter\pgfmath@ensurenumberlength@@%
\else%
\advance\c@pgfmath@counta by-1\relax%
\expandafter\pgfmath@ensurenumberlength@
\fi}
\def\pgfmath@ensurenumberlength@@{%
\edef\pgfmath@base@tempb{\pgfmath@base@tempa}%
\pgfmath@ensurenumberlength@@@}
\def\pgfmath@ensurenumberlength@@@{%
\ifnum\c@pgfmath@counta>0\relax%
\advance\c@pgfmath@counta by-1\relax%
\edef\pgfmath@base@tempb{0\pgfmath@base@tempb}%
\expandafter\pgfmath@ensurenumberlength@@@%
\fi%
\expandafter\edef\pgfmath@base@tempa{\pgfmath@base@tempb}}
\def\pgfmathsetbasenumberlength#1{\def\pgfmath@basenumberlength{#1}}
\pgfmathsetbasenumberlength{1}%
\def\pgfmathtodigitlist#1#2{%
\def\pgfmath@temp{#1}%
\let\pgfmath@digitlist=\pgfutil@empty%
\edef\pgfmath@@tmp{#2}%
\expandafter\pgfmath@todigitlist\pgfmath@@tmp @%
}
\def\pgfmath@base@atchar{@}
\def\pgfmath@todigitlist#1{%
\def\pgfmath@digit{#1}%
\ifx\pgfmath@digit\pgfmath@base@atchar%
\expandafter\let\pgfmath@temp=\pgfmath@digitlist%
\else%
\ifx\pgfmath@digitlist\pgfutil@empty%
\edef\pgfmath@digitlist{#1}%
\else%
\edef\pgfmath@digitlist{\pgfmath@digitlist,#1}%
\fi%
\expandafter\pgfmath@todigitlist%
\fi%
}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.base.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex ====
\pgfmathdeclarefunction{add}{2}{%
\begingroup%
\pgfmath@x=#1pt\relax%
\pgfmath@y=#2pt\relax%
\advance\pgfmath@x by\pgfmath@y%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\pgfmathdeclarefunction{subtract}{2}{%
\begingroup%
\pgfmath@x=#1pt\relax%
\pgfmath@y=#2pt\relax%
\advance\pgfmath@x by-\pgfmath@y%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\pgfmathdeclarefunction{neg}{1}{%
\begingroup%
\pgfmath@x=-#1pt\relax%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\def\pgfmath@operation@neg@precedence{500}
\pgfmathdeclarefunction{multiply}{2}{%
\begingroup%
\pgfmath@x=#1pt\relax%
\pgfmath@y=#2pt\relax%
\pgfmath@x=\pgfmath@tonumber{\pgfmath@y}\pgfmath@x%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\newif\ifpgfmath@divide@period
\pgfmathdeclarefunction{divide}{2}{%
\begingroup%
\pgfmath@x=#1pt\relax%
\pgfmath@y=#2pt\relax%
\let\pgfmath@sign=\pgfmath@empty%
\ifdim0pt=\pgfmath@y%
\pgfmath@error{You've asked me to divide `#1' by `#2', %
but I cannot divide any number by `#2'}{}%
\fi%
\afterassignment\pgfmath@xa%
\c@pgfmath@counta\the\pgfmath@y\relax%
\ifdim0pt=\pgfmath@xa%
\divide\pgfmath@x by\c@pgfmath@counta%
\else%
\ifdim0pt>\pgfmath@x%
\def\pgfmath@sign{-}%
\pgfmath@x=-\pgfmath@x%
\fi%
\ifdim0pt>\pgfmath@y%
\expandafter\def\expandafter\pgfmath@sign\expandafter{\pgfmath@sign-}%
\pgfmath@y=-\pgfmath@y%
\fi%
\ifdim1pt>\pgfmath@y%
\pgfmathreciprocal@{\pgfmath@tonumber{\pgfmath@y}}%
\pgfmath@x=\pgfmath@sign\pgfmathresult\pgfmath@x%
\else%
\def\pgfmathresult{0}%
\pgfmath@divide@periodtrue%
\c@pgfmath@counta=0\relax%
\pgfmathdivide@@%
\pgfmath@x=\pgfmath@sign\pgfmathresult pt\relax%
\fi%
\fi%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\def\pgfmath@small@number{0.00002}
\def\pgfmathdivide@@{%
\let\pgfmath@next=\relax%
\ifdim\pgfmath@small@number pt<\pgfmath@x%
\ifdim\pgfmath@small@number pt<\pgfmath@y%
\ifdim\pgfmath@y>\pgfmath@x%
\ifpgfmath@divide@period%
\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult.}%
\pgfmath@divide@periodfalse%
\fi%
\pgfmathdivide@dimenbyten\pgfmath@y%
\ifdim\pgfmath@y>\pgfmath@x%
\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult0}%
\fi%
\else%
\c@pgfmath@counta=\pgfmath@x%
\c@pgfmath@countb=\pgfmath@y%
\divide\c@pgfmath@counta by\c@pgfmath@countb%
\pgfmath@ya=\c@pgfmath@counta\pgfmath@y%
\advance\pgfmath@x by-\pgfmath@ya%
\def\pgfmath@next{%
\toks0=\expandafter{\pgfmathresult}%
\edef\pgfmathresult{\the\toks0 \the\c@pgfmath@counta}%
}%
\ifpgfmath@divide@period
\else
\ifnum\c@pgfmath@counta>9 %
\expandafter\pgfmathdivide@advance@last@digit\pgfmathresult CCCCC\@@
\advance\c@pgfmath@counta by-10 %
\ifnum\c@pgfmath@counta=0
\let\pgfmath@next=\relax
\fi
\fi
\fi
\pgfmath@next
\fi%
\let\pgfmath@next=\pgfmathdivide@@%
\fi%
\fi%
\pgfmath@next%
}
\def\pgfmathdivide@advance@last@digit#1.#2#3#4#5#6#7\@@{%
\pgfmath@ya=\pgfmathresult pt %
\if#2C%
\pgfmath@xa=1pt %
\else
\if#3C%
\pgfmath@xa=0.1pt %
\else
\if#4C%
\pgfmath@xa=0.01pt %
\else
\if#5C%
\pgfmath@xa=0.001pt %
\else
\if#6C%
\pgfmath@xa=0.0001pt %
\else
\pgfmath@xa=0.00001pt %
\fi
\fi
\fi
\fi
\fi
\advance\pgfmath@ya by\pgfmath@xa
\edef\pgfmathresult{\pgfmath@tonumber@notrailingzero\pgfmath@ya}%
}%
{
\catcode`\p=12
\catcode`\t=12
\gdef\Pgf@geT@NO@TRAILING@ZERO#1.#2pt{%
#1.%
\ifnum#2=0 \else #2\fi
}
}
\def\pgfmath@tonumber@notrailingzero#1{\expandafter\Pgf@geT@NO@TRAILING@ZERO\the#1}
\def\pgfmathdivide@dimenbyten#1{%
\edef\pgfmath@temp{\pgfmath@tonumber{#1}}%
\expandafter\pgfmathdivide@@dimenbyten\pgfmath@temp\@@#1\@@}
\def\pgfmathdivide@@dimenbyten#1.#2\@@#3\@@{%
\pgfmath@tempcnta=#1\relax%
\divide\pgfmath@tempcnta by10\relax%
\pgfmath@tempcntb=\pgfmath@tempcnta%
\multiply\pgfmath@tempcnta by-10\relax%
\advance\pgfmath@tempcnta by#1\relax%
#3=\the\pgfmath@tempcntb.\the\pgfmath@tempcnta#2pt\relax%
}
\pgfmathdeclarefunction{reciprocal}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\ifdim\pgfmath@x=0pt\relax%
\pgfmath@error{You asked me to calculate `1/#1', but I cannot divide any number by zero}{}%
\fi%
\edef\pgfmath@reciprocaltemp{\pgfmath@tonumber{\pgfmath@x}}%
\expandafter\pgfmathreciprocal@@\pgfmath@reciprocaltemp0000000\pgfmath@}
\def\pgfmathreciprocal@@#1.#2#3#4#5#6#7\pgfmath@{%
\c@pgfmath@counta#2#3#4#5#6\relax%
\ifnum\c@pgfmath@counta=0\relax%
\pgfmath@x1pt\relax%
\divide\pgfmath@x#1\relax%
\else%
\ifnum#1>100\relax%
\c@pgfmath@counta#1#2#3#4\relax%
\c@pgfmath@countb1000000000\relax%
\divide\c@pgfmath@countb\c@pgfmath@counta%
\c@pgfmath@counta\c@pgfmath@countb%
\divide\c@pgfmath@counta10000\relax%
\pgfmath@x\c@pgfmath@counta pt\relax%
\multiply\c@pgfmath@counta-10000\relax%
\advance\c@pgfmath@countb\c@pgfmath@counta%
\pgfmath@y\c@pgfmath@countb pt\relax%
\divide\pgfmath@y1000000\relax%
\advance\pgfmath@x\pgfmath@y%
\else%
\c@pgfmath@counta#1#2#3#4#5#6\relax%
\c@pgfmath@countb1000000000\relax%
\divide\c@pgfmath@countb\c@pgfmath@counta%
\c@pgfmath@counta\c@pgfmath@countb%
\divide\c@pgfmath@counta10000\relax%
\pgfmath@x\c@pgfmath@counta pt\relax%
\multiply\c@pgfmath@counta-10000\relax%
\advance\c@pgfmath@countb\c@pgfmath@counta%
\pgfmath@y\c@pgfmath@countb pt\relax%
\pgfmath@y.1\pgfmath@y%
\pgfmath@y.1\pgfmath@y%
\pgfmath@y.1\pgfmath@y%
\pgfmath@y.1\pgfmath@y%
\advance\pgfmath@x\pgfmath@y%
\fi%
\fi%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\pgfmathdeclarefunction{div}{2}{%
\begingroup%
\pgfmathdivide@{#1}{#2}%
\ifdim\pgfmathresult pt<0pt\relax%
\pgfmathceil@{\pgfmathresult}%
\else%
\pgfmathfloor@{\pgfmathresult}%
\fi%
\afterassignment\pgfmath@gobbletilpgfmath@%
\c@pgfmath@counta=\pgfmathresult\relax\pgfmath@%
\edef\pgfmathresult{\the\c@pgfmath@counta}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{mod}{2}{%
\begingroup%
\pgfmath@xa#1pt%
\pgfmath@xb#2pt%
\pgfmath@x\pgfmath@xa%
\c@pgfmath@counta\pgfmath@xa%
\c@pgfmath@countb\pgfmath@xb%
\divide\c@pgfmath@counta\c@pgfmath@countb%
\multiply\pgfmath@xb\c@pgfmath@counta%
\advance\pgfmath@x-\pgfmath@xb%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\pgfmathdeclarefunction{Mod}{2}{%
\begingroup%
\pgfmathmod@{#1}{#2}%
\pgfmath@x=\pgfmathresult pt\relax%
\ifdim\pgfmath@x<0pt\relax%
\advance\pgfmath@x by#2pt\relax%
\fi%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{abs}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\ifdim\pgfmath@x<0pt\relax%
\pgfmath@x-\pgfmath@x%
\fi%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\pgfmathdeclarefunction{sign}{1}{%
\begingroup
\ifdim#1pt>0sp %
\def\pgfmathresult{1}%
\else
\ifdim#1pt=0sp %
\def\pgfmathresult{0}%
\else
\def\pgfmathresult{-1}%
\fi
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}
\pgfmathdeclarefunction{e}{0}{\def\pgfmathresult{2.718281828}}
\pgfmathdeclarefunction{ln}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\ifdim\pgfmath@x>0pt\else%
\pgfmath@error{I cannot calculate the logarithm of `#1'}{}%
\fi%
\c@pgfmath@counta=0\relax%
\ifdim\pgfmath@x>2pt\relax%
\ifdim\pgfmath@x<128pt\relax%
\ifdim\pgfmath@x<8pt\relax%
\ifdim\pgfmath@x<4pt\relax%
\divide\pgfmath@x by2\relax%
\c@pgfmath@counta=1\relax%
\else%
\divide\pgfmath@x by4\relax%
\c@pgfmath@counta=2\relax%
\fi%
\else%
\ifdim\pgfmath@x<32pt\relax%
\ifdim\pgfmath@x<16pt\relax%
\divide\pgfmath@x by8\relax%
\c@pgfmath@counta=3\relax%
\else%
\divide\pgfmath@x by16\relax%
\c@pgfmath@counta=4\relax%
\fi%
\else%
\ifdim\pgfmath@x<64pt\relax%
\divide\pgfmath@x by32\relax%
\c@pgfmath@counta=5\relax%
\else%
\divide\pgfmath@x by64\relax%
\c@pgfmath@counta=6\relax%
\fi%
\fi%
\fi%
\else%
\ifdim\pgfmath@x<2048pt\relax%
\ifdim\pgfmath@x<512pt\relax%
\ifdim\pgfmath@x<256pt\relax%
\divide\pgfmath@x by128\relax%
\c@pgfmath@counta=7\relax%
\else%
\divide\pgfmath@x by256\relax%
\c@pgfmath@counta=8\relax%
\fi%
\else%
\ifdim\pgfmath@x<1024pt\relax%
\divide\pgfmath@x by512\relax%
\c@pgfmath@counta=9\relax%
\else%
\divide\pgfmath@x by1024\relax%
\c@pgfmath@counta=10\relax%
\fi%
\fi%
\else%
\ifdim\pgfmath@x<8192pt\relax%
\ifdim\pgfmath@x<4096pt\relax%
\divide\pgfmath@x by2048\relax%
\c@pgfmath@counta=11\relax%
\else%
\divide\pgfmath@x by4096\relax%
\c@pgfmath@counta =12\relax%
\fi%
\else%
\divide\pgfmath@x by8192\relax%
\c@pgfmath@counta=13\relax%
\fi%
\fi%
\fi%
\else%
\ifdim\pgfmath@x<1pt\relax%
\ifdim\pgfmath@x>0.0078125pt\relax%
\ifdim\pgfmath@x>0.125pt\relax%
\ifdim\pgfmath@x>0.5pt\relax%
\multiply\pgfmath@x by2\relax%
\c@pgfmath@counta=-1\relax%
\else%
\multiply\pgfmath@x by4\relax%
\c@pgfmath@counta=-2\relax%
\fi%
\else%
\ifdim\pgfmath@x>0.03125pt\relax%
\ifdim\pgfmath@x>0.0625pt\relax%
\multiply\pgfmath@x by8\relax%
\c@pgfmath@counta=-3\relax%
\else%
\multiply\pgfmath@x by16\relax%
\c@pgfmath@counta=-4\relax%
\fi%
\else%
\ifdim\pgfmath@x>0.015625pt\relax%
\multiply\pgfmath@x by32\relax%
\c@pgfmath@counta=-5\relax%
\else%
\multiply\pgfmath@x by64\relax%
\c@pgfmath@counta=-6\relax%
\fi%
\fi%
\fi%
\else%
\ifdim\pgfmath@x>0.00048828125pt\relax%
\ifdim\pgfmath@x>0.001953125pt\relax%
\ifdim\pgfmath@x>0.00390625pt\relax%
\multiply\pgfmath@x by128\relax%
\c@pgfmath@counta=-7\relax%
\else%
\multiply\pgfmath@x by256\relax%
\c@pgfmath@counta=-8\relax%
\fi%
\else%
\ifdim\pgfmath@x>0.0009765625pt\relax%
\multiply\pgfmath@x by512\relax%
\c@pgfmath@counta=-9\relax%
\else%
\multiply\pgfmath@x by1024\relax%
\c@pgfmath@counta=-10\relax%
\fi%
\fi%
\else%
\ifdim\pgfmath@x>0.0001220703125pt\relax%
\ifdim\pgfmath@x>0.0002441406256pt\relax%
\multiply\pgfmath@x by2048\relax%
\c@pgfmath@counta=-11\relax%
\else%
\multiply\pgfmath@x by4096\relax%
\c@pgfmath@counta=-12\relax%
\fi%
\else%
\multiply\pgfmath@x by8192\relax%
\c@pgfmath@counta=-13\relax%
\fi%
\fi%
\fi%
\fi%
\fi%
\edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@x}}%
\pgfmath@x=0.04300521312\pgfmath@x%
\advance\pgfmath@x by-.4025153233pt\relax%
\pgfmath@x=\pgfmath@temp\pgfmath@x%
\advance\pgfmath@x by1.589480044pt\relax%
\pgfmath@x=\pgfmath@temp\pgfmath@x%
\advance\pgfmath@x by-3.489886985pt\relax%
\pgfmath@x=\pgfmath@temp\pgfmath@x%
\advance\pgfmath@x by5.047861502pt\relax%
\pgfmath@x=\pgfmath@temp\pgfmath@x%
\advance\pgfmath@x by-2.787927935pt\relax%
\advance\pgfmath@x by\c@pgfmath@counta pt\relax%
\pgfmath@x=0.6931471806\pgfmath@x%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\pgfmathdeclarefunction{log2}{1}{%
\begingroup%
\pgfmathln@{#1}%
\pgfmath@x=\pgfmathresult pt\relax%
\pgfmath@x=1.442695041\pgfmath@x%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\pgfmathdeclarefunction{log10}{1}{%
\begingroup%
\pgfmathln@{#1}%
\pgfmath@x=\pgfmathresult pt\relax%
\pgfmath@x=0.43429441\pgfmath@x%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\expandafter\let\expandafter\pgfmathlogtwo\csname pgfmathlog2\endcsname
\expandafter\let\expandafter\pgfmathlogtwo@\csname pgfmathlog2@\endcsname
\expandafter\let\expandafter\pgfmathlogten\csname pgfmathlog10\endcsname
\expandafter\let\expandafter\pgfmathlogten@\csname pgfmathlog10@\endcsname
\pgfmathdeclarefunction{exp}{1}{%
\begingroup
\pgfmath@xc=#1pt\relax
\pgfmath@yc=#1pt\relax
\ifdim\pgfmath@xc<-9pt
\pgfmath@x=1sp\relax
\else
\ifdim\pgfmath@xc<0pt
\pgfmath@xc=-\pgfmath@xc
\fi
\pgfmath@x=1pt\relax
\pgfmath@xa=1pt\relax
\pgfmath@xb=\pgfmath@x
\pgfmathloop%
\divide\pgfmath@xa by\pgfmathcounter
\pgfmath@xa=\pgfmath@tonumber\pgfmath@xc\pgfmath@xa%
\advance\pgfmath@x by\pgfmath@xa
\ifdim\pgfmath@x=\pgfmath@xb
\else
\pgfmath@xb=\pgfmath@x
\repeatpgfmathloop%
\ifdim\pgfmath@yc<0pt
\pgfmathreciprocal@{\pgfmath@tonumber\pgfmath@x}%
\pgfmath@x=\pgfmathresult pt\relax
\fi
\fi
\pgfmath@returnone\pgfmath@x%
\endgroup
}
\pgfmathdeclarefunction{sqrt}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\ifdim\pgfmath@x<0pt\relax%
\pgfmath@error{I cannot calculate the square-root of the negative number `#1'}{}%
\else%
\ifdim\pgfmath@x<10pt\relax%
\def\pgfmath@zeros{0}%
\def\pgfmath@targetiterations{1}%
\else%
\ifdim\pgfmath@x<100pt\relax%
\def\pgfmath@zeros{}%
\def\pgfmath@targetiterations{1}%
\else%
\ifdim\pgfmath@x<1000pt\relax%
\def\pgfmath@zeros{0}%
\def\pgfmath@targetiterations{2}%
\else%
\ifdim\pgfmath@x<10000pt\relax%
\def\pgfmath@zeros{}%
\def\pgfmath@targetiterations{2}%
\else%
\def\pgfmath@zeros{0}%
\def\pgfmath@targetiterations{3}%
\fi\fi\fi\fi\fi%
\edef\pgfmath@temp{\pgfmath@zeros\pgfmath@tonumber{\pgfmath@x}}%
\expandafter\pgfmath@sqrt@\pgfmath@temp\pgfmath@%
}
\def\pgfmath@sqrt@#1.#2\pgfmath@{\pgfmath@@sqrt@#1#2\pgfmath@empty\pgfmath@empty\pgfmath@}
\def\pgfmath@@sqrt@#1#2{%
\c@pgfmath@countb=#1#2\relax%
\ifnum\c@pgfmath@countb>35\relax%
\ifnum\c@pgfmath@countb>63\relax%
\ifnum\c@pgfmath@countb>80\relax%
\c@pgfmath@counta=9\relax%
\else%
\c@pgfmath@counta=8\relax%
\fi%
\else%
\ifnum\c@pgfmath@countb>48\relax%
\c@pgfmath@counta=7\relax%
\else%
\c@pgfmath@counta=6\relax%
\fi%
\fi%
\else%
\ifnum\c@pgfmath@countb>15\relax%
\ifnum\c@pgfmath@countb>24\relax%
\c@pgfmath@counta5\relax%
\else%
\c@pgfmath@counta=4\relax%
\fi%
\else%
\ifnum\c@pgfmath@countb>3\relax%
\ifnum\c@pgfmath@countb>8\relax%
\c@pgfmath@counta=3\relax%
\else%
\c@pgfmath@counta=2\relax%
\fi%
\else%
\ifnum\c@pgfmath@countb>0\relax%
\c@pgfmath@counta=1\relax%
\else%
\c@pgfmath@counta=0\relax%
\fi%
\fi%
\fi%
\fi%
\edef\pgfmath@root{\the\c@pgfmath@counta}%
\edef\pgfmath@rootspecial{\the\c@pgfmath@counta}%
\multiply\c@pgfmath@counta by-\c@pgfmath@counta\relax%
\advance\c@pgfmath@counta by#1#2\relax%
\edef\pgfmath@remainder{\the\c@pgfmath@counta}%
\pgfmath@@@sqrt@%
}
\def\pgfmath@@@sqrt@#1#2{%
\ifx\pgfmath@empty#1%
\edef\pgfmath@remainder{\pgfmath@remainder00}%
\def\pgfmath@tokens{\pgfmath@empty\pgfmath@empty}%
\else%
\ifx\pgfmath@empty#2%
\edef\pgfmath@remainder{\pgfmath@remainder#10}%
\def\pgfmath@tokens{\pgfmath@empty\pgfmath@empty}%
\else%
\edef\pgfmath@remainder{\pgfmath@remainder#1#2}%
\def\pgfmath@tokens{}%
\fi\fi%
\c@pgfmath@counta=\pgfmath@rootspecial\relax%
\multiply\c@pgfmath@counta by20\relax%
\c@pgfmath@countb=\c@pgfmath@counta%
\multiply\c@pgfmath@countb by6\relax%
\advance\c@pgfmath@countb by36\relax%
\c@pgfmath@countc=\c@pgfmath@counta%
\multiply\c@pgfmath@countc by2\relax%
\ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
\advance\c@pgfmath@countb by-\c@pgfmath@countc%
\advance\c@pgfmath@countb by-20\relax%
\ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
\advance\c@pgfmath@countb by-\c@pgfmath@countc%
\advance\c@pgfmath@countb by-12\relax%
\ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
\advance\c@pgfmath@countb by-\c@pgfmath@counta%
\advance\c@pgfmath@countb by-3\relax%
\ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
\def\pgfmath@digit{0}%
\else%
\def\pgfmath@digit{1}%
\fi%
\else%
\advance\c@pgfmath@countb by\c@pgfmath@counta%
\advance\c@pgfmath@countb by5\relax%
\ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
\def\pgfmath@digit{2}%
\else%
\def\pgfmath@digit{3}%
\fi%
\fi%
\else%
\advance\c@pgfmath@countb by\c@pgfmath@counta%
\advance\c@pgfmath@countb by9\relax%
\ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
\def\pgfmath@digit{4}%
\else%
\def\pgfmath@digit{5}%
\fi%
\fi%
\else%
\advance\c@pgfmath@countb by\c@pgfmath@countc%
\advance\c@pgfmath@countb by28\relax%
\ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
\advance\c@pgfmath@countb by-\c@pgfmath@counta%
\advance\c@pgfmath@countb by-15\relax%
\ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
\def\pgfmath@digit{6}%
\else%
\def\pgfmath@digit{7}%
\fi%
\else%
\advance\c@pgfmath@countb by\c@pgfmath@counta%
\advance\c@pgfmath@countb by17\relax%
\ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
\def\pgfmath@digit{8}%
\else%
\def\pgfmath@digit{9}%
\fi%
\fi%
\fi%
\edef\pgfmath@rootspecial{\pgfmath@rootspecial\pgfmath@digit}%
\advance\c@pgfmath@counta by\pgfmath@digit\relax%
\multiply\c@pgfmath@counta by-\pgfmath@digit\relax%
\advance\c@pgfmath@counta by\pgfmath@remainder\relax%
\edef\pgfmath@remainder{\the\c@pgfmath@counta}%
\c@pgfmath@counta=\pgfmath@targetiterations\relax%
\advance\c@pgfmath@counta by-1\relax%
\edef\pgfmath@targetiterations{\the\c@pgfmath@counta}%
\ifnum\c@pgfmath@counta=0\relax%
\edef\pgfmath@root{\pgfmath@root.\pgfmath@digit}%
\else%
\edef\pgfmath@root{\pgfmath@root\pgfmath@digit}%
\fi%
\ifnum\c@pgfmath@counta=-4\relax%
\let\pgfmath@next\pgfmath@sqrt@end%
\else%
\let\pgfmath@next\pgfmath@@@sqrt@%
\fi%
\expandafter\pgfmath@next\pgfmath@tokens%
}
\def\pgfmath@sqrt@end#1\pgfmath@{%
\edef\pgfmathresult{\pgfmath@root}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup}
\pgfmathdeclarefunction{pow}{2}{%
\begingroup%
\pgfmath@xa=#1pt%
\pgfmath@xb=#2pt%
\ifdim\pgfmath@xa=0pt\relax%
\ifdim\pgfmath@xb=0pt\relax%
\pgfmath@x=1pt\relax%
\else%
\pgfmath@x=0pt\relax%
\fi%
\else%
\afterassignment\pgfmath@x%
\expandafter\c@pgfmath@counta\the\pgfmath@xb\relax%
\ifnum\c@pgfmath@counta<0\relax%
\c@pgfmath@counta=-\c@pgfmath@counta%
\pgfmathreciprocal@{#1}%
\pgfmath@xa=\pgfmathresult pt\relax%
\fi
\ifdim\pgfmath@x=0pt\relax%
\pgfmath@x=1pt\relax%
\pgfmathloop%
\ifnum\c@pgfmath@counta>0\relax%
\ifodd\c@pgfmath@counta%
\pgfmath@x=\pgfmath@tonumber{\pgfmath@x}\pgfmath@xa%
\fi
\ifnum\c@pgfmath@counta>1\relax%
\pgfmath@xa=\pgfmath@tonumber{\pgfmath@xa}\pgfmath@xa%
\fi%
\divide\c@pgfmath@counta by2\relax%
\repeatpgfmathloop%
\else%
\pgfmathln@{#1}%
\pgfmath@x=\pgfmathresult pt\relax%
\pgfmath@x=\pgfmath@tonumber{\pgfmath@xb}\pgfmath@x%
\pgfmathexp@{\pgfmath@tonumber{\pgfmath@x}}%
\pgfmath@x=\pgfmathresult pt\relax%
\fi%
\fi
\pgfmath@returnone\pgf@x%
\endgroup%
}
\pgfmathdeclarefunction{factorial}{1}{%
\begingroup%
\afterassignment\pgfmath@gobbletilpgfmath@%
\c@pgfmath@counta=#1\relax\pgfmath@%
\pgfmath@x=1pt\relax%
\pgfmathloop%
\ifnum\c@pgfmath@counta<2\relax%
\else%
\multiply\pgfmath@x by\c@pgfmath@counta%
\advance\c@pgfmath@counta by-1\relax%
\repeatpgfmathloop%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.code.tex ====
\def\pgfmathdeclarefunction{\pgfmath@ifnextchar*\pgfmathdeclarefunction@force\pgfmathdeclarefunction@check}
\def\pgfmathdeclarefunction@check#1{%
\expandafter\ifx\csname pgfmath@function@#1\endcsname\relax\else%
\pgfmath@error{The function `#1' already exists}{}%
\fi%
\pgfmath@declarefunction{#1}%
}
\def\pgfmathdeclarefunction@force*{\pgfmath@declarefunction}%
\def\pgfmathredeclarefunction#1#2{%
\expandafter\ifx\csname pgfmath@function@#1\endcsname\relax%
\pgfmath@error{The function `#1' does not exist}{}%
\else%
\edef\pgf@marshal{\noexpand\pgfmathdeclarefunction*{#1}{\csname pgfmath@operation@#1@arity\endcsname}}%
\pgf@marshal{#2}%
\fi%
}
\def\pgfmath@declarefunction#1#2{%
\pgfmath@namedef{pgfmath@function@#1}{#1}%
\pgfmath@namedef{pgfmath@operation@#1@type}{function}%
\pgfmath@namedef{pgfmath@operation@#1@arity}{#2}%
\pgfmath@namedef{pgfmath@operation@#1@infix}{#1}%
\pgfmath@namedef{pgfmath@operation@#1@precedence}{1000}%
\expandafter\ifx\csname pgfmath@operation@#1@arity\endcsname\pgfmath@dots%
\pgfmath@namedef{pgfmath@operation@#1@arity}{1}%
\else%
\ifnum\csname pgfmath@operation@#1@arity\endcsname>9\relax%
\pgfmath@namedef{pgfmath@operation@#1@arity}{1}%
\fi%
\fi%
\edef\pgfmath@marshal{%
\noexpand\pgfmath@@declarefunction%
{\expandafter\noexpand\csname pgfmath#1\endcsname}%
{\expandafter\noexpand\csname pgfmath#1@\endcsname}%
{\csname pgfmath@operation@#1@arity\endcsname}%
}%
\pgfkeysvalueof{/pgf/declare function/execute at begin function}%
\pgfmath@marshal%
}
\def\pgfmath@@declarefunction#1#2#3#4{%
\pgfkeysvalueof{/pgf/declare function/execute at end function}%
\ifcase#3\relax%
\def#1{#2}%
\def\pgfmath@@head{\def#2}%
\or
\def#1##1{\pgfmathparse{##1}\expandafter#2\expandafter{\pgfmathresult}}%
\def\pgfmath@@head{\def#2####1}%
\else%
\pgfmath@toks={}%
\pgfmathloop%
\ifnum\pgfmathcounter>#3\relax%
\else%
\expandafter\pgfmath@addto@toks\expandafter{\pgfmath@char@hash}%
\expandafter\pgfmath@addto@toks\expandafter{\pgfmathcounter}%
\repeatpgfmathloop%
\edef\pgfmath@head{\noexpand\def\noexpand#1\the\pgfmath@toks}%
\edef\pgfmath@@head{\noexpand\def\noexpand#2\the\pgfmath@toks}%
\pgfmath@toks={}%
\def\pgfmath@arguments{}%
\pgfmathloop%
\ifnum\pgfmathcounter>#3\relax%
\else%
\pgfmath@addto@toks{\pgfmathparse}%
\expandafter\expandafter\expandafter\pgfmath@addto@toks%
\expandafter\expandafter\expandafter{\expandafter\expandafter\expandafter%
{\expandafter\pgfmath@char@hash\pgfmathcounter}}%
\pgfmath@addto@toks{\let}%
\expandafter\pgfmath@addto@toks\expandafter{%
\csname pgfmath@argument@\pgfmathcounter\endcsname=\pgfmathresult}%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter%
\pgfmath@arguments\expandafter\expandafter\expandafter{\expandafter%
\pgfmath@arguments\expandafter{\csname pgfmath@argument@\pgfmathcounter\endcsname}}%
\repeatpgfmathloop%
\expandafter\pgfmath@addto@toks\expandafter{\expandafter#2\pgfmath@arguments}%
\edef\pgfmath@body{{\the\pgfmath@toks}}%
\expandafter\pgfmath@head\pgfmath@body%
\fi%
\pgfmath@@head{#4}%
}
\def\pgfmath@addto@toks#1{%
\edef\pgfmath@toks@expanded{\the\pgfmath@toks}%
\expandafter\pgfmath@toks\expandafter{\pgfmath@toks@expanded#1}}
\pgfkeys{%
/pgf/declare function/.code={%
\pgfmath@local@functions#1@=@;%
},
/pgf/declare function/execute at begin function/.initial={},
/pgf/declare function/execute at end function/.initial={},
/pgf/declare function/ignore spaces/.is choice,
/pgf/declare function/ignore spaces/.default=true,
/pgf/declare function/ignore spaces/true/.style={%
/pgf/declare function/execute at begin function={%
\begingroup
\catcode`\^^I=9\relax
\catcode`\ =9\relax
\catcode`\~=10\relax
\endlinechar=`\ \relax
},
/pgf/declare function/execute at end function={%
\endgroup
},
},
/pgf/declare function/ignore spaces/false/.style={%
/pgf/declare function/execute at begin function={},
/pgf/declare function/execute at end function={},
},
}
\def\pgfmath@local@gobbleone#1{}
\def\pgfmath@local@at{@}%
\def\pgfmath@local@functions{%
\pgfutil@ifnextchar x{\pgfmath@local@@functions}{\pgfmath@local@@functions}%
}
\def\pgfmath@local@@functions#1=#2;{%
\def\pgfmath@local@temp{#1}%
\ifx\pgfmath@local@temp\pgfmath@local@at%
\let\pgfmath@local@next=\relax%
\else%
\pgfmath@local@function#1=#2;%
\let\pgfmath@local@next=\pgfmath@local@functions%
\fi%
\pgfmath@local@next%
}
\def\pgfmath@local@function{%
\let\pgfmath@local@name=\pgfutil@empty%
\let\pgfmath@local@args=\pgfutil@empty%
\let\pgfmath@local@body=\pgfutil@empty%
\pgfmath@local@@function}
\def\pgfmath@local@@function#1{%
\if#1=%
\let\pgfmath@local@next=\pgfmath@local@function@body%
\else%
\if#1(%
\let\pgfmath@local@next=\pgfmath@local@function@args%
\else%
\expandafter\def\expandafter\pgfmath@local@name\expandafter{\pgfmath@local@name#1}%
\let\pgfmath@local@next=\pgfmath@local@@function%
\fi%
\fi%
\pgfmath@local@next%
}
\def\pgfmath@local@function@args#1){%
\def\pgfmath@local@args{#1}%
\pgfmath@local@@function}
\def\pgfmath@local@function@body#1;{%
\def\pgfmath@local@body{#1}%
\begingroup%
\c@pgf@counta=0\relax%
\ifx\pgfmath@local@args\pgfmath@empty%
\expandafter\pgfmath@toks\expandafter=\expandafter{\pgfmath@local@body}%
\else%
\pgfmath@toks={}%
\expandafter\pgfmath@local@function@@body\pgfmath@local@args,,%
\fi%
\xdef\pgfmath@local@temp{%
\noexpand\pgfmathnotifynewdeclarefunction{\pgfmath@local@name}{\the\c@pgf@counta}%
{\the\pgfmath@toks}%
}%
\endgroup%
\pgfmath@local@temp%
}
\def\pgfmathnotifynewdeclarefunction#1#2#3{%
\pgfmathdeclarefunction{#1}{#2}{\pgfmathparse{#3}}%
}%
\def\pgfmath@local@function@@body#1,{%
\def\pgfmath@local@test{#1}%
\ifx\pgfmath@local@test\pgfutil@empty%
\let\pgfmath@local@next=\relax%
\else%
\edef\pgfmath@local@var@string{@\expandafter\pgfmath@local@gobbleone\string#1}%
\advance\c@pgf@counta by1\relax%
\expandafter\expandafter\expandafter\pgfmath@toks\expandafter\expandafter\expandafter=%
\expandafter\expandafter\expandafter{\expandafter\pgfmath@char@hash\the\c@pgf@counta}%
\edef#1{\the\pgfmath@toks}%
\pgfmath@toks={}%
\expandafter\pgfmath@local@function@@@body\pgfmath@local@body @%
\edef\pgfmath@local@body{\the\pgfmath@toks}%
\let\pgfmath@local@next=\pgfmath@local@function@@body%
\fi%
\pgfmath@local@next%
}
\def\pgfmath@local@function@@@body{%
\pgfutil@ifnextchar\bgroup{\pgfmath@local@function@@@body@bgroup}%
{\pgfmath@local@function@@@body@nobgroup}}%
\def\pgfmath@local@function@@@body@bgroup#1{%
\begingroup%
\pgfmath@toks={}%
\pgfmath@local@function@@@body#1 @%
\xdef\pgfmath@local@temp{{\the\pgfmath@toks}}%
\endgroup%
\expandafter\pgfmath@addto@toks\expandafter{\pgfmath@local@temp}%
\pgfmath@local@function@@@body%
}
\def\pgfmath@local@function@@@body@nobgroup#1{%
\ifx#1@%
\let\pgfmath@local@next=\relax%
\else%
\let\pgfmath@local@next=\pgfmath@local@function@@@body%
\edef\pgfmath@local@var@@string{@\expandafter\pgfmath@local@gobbleone\string#1}%
\ifx\pgfmath@local@var@@string\pgfmath@local@var@string%
\expandafter\pgfmath@addto@toks\expandafter{#1}%
\else%
\edef\pgfmath@local@temp{\the\pgfmath@toks}%
\pgfmath@toks={#1}%
\edef\pgfmath@local@@temp{\the\pgfmath@toks}%
\expandafter\pgfmath@toks\expandafter=\expandafter{\pgfmath@local@temp}%
\expandafter\pgfmath@addto@toks\expandafter{\pgfmath@local@@temp}%
\fi%
\fi%
\pgfmath@local@next%
}
\def\pgfmathdeclarepseudoconstant#1#2{%
\pgfmathdeclarefunction*{#1}{0}{#2}%
}%
\def\pgfmathredeclarepseudoconstant#1#2{%
\pgfmathredeclarefunction{#1}{#2}%
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex ====
\pgfmathdeclarefunction{greater}{2}{%
\begingroup%
\ifdim#1pt>#2pt\relax%
\def\pgfmathresult{1}%
\else%
\def\pgfmathresult{0}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\let\pgfmathgreaterthan=\pgfmathgreater
\pgfmathdeclarefunction{less}{2}{%
\begingroup%
\ifdim#1pt<#2pt\relax%
\def\pgfmathresult{1}%
\else%
\def\pgfmathresult{0}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\let\pgfmathlessthan=\pgfmathless
\pgfmathdeclarefunction{equal}{2}{%
\begingroup%
\ifdim#1pt=#2pt\relax%
\def\pgfmathresult{1}%
\else%
\def\pgfmathresult{0}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\let\pgfmathequalto=\pgfmathequal
\newif\ifpgfmathcomparison
\pgfmathdeclarefunction{approxequalto}{2}{%
\begingroup%
\pgfmath@x=#1pt\relax%
\pgfmath@y=#2pt\relax%
\advance\pgfmath@x by-\pgfmath@y%
\ifdim\pgfmath@x<0pt\relax%
\multiply\pgfmath@x by-1\relax%
\fi
\ifdim\pgfmath@x<0.0001pt\relax%
\def\pgfmathresult{1.0}%
\global\pgfmathcomparisontrue%
\else%
\def\pgfmathresult{0.0}%
\global\pgfmathcomparisonfalse%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{ifthenelse}{3}{%
\begingroup%
\ifdim#1pt=0.0pt\relax%
\expandafter\def\expandafter\pgfmathresult\expandafter{#3}%
\else%
\expandafter\def\expandafter\pgfmathresult\expandafter{#2}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{notequal}{2}{%
\begingroup%
\ifdim#1pt=#2pt\relax%
\def\pgfmathresult{0}%
\else%
\def\pgfmathresult{1}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{notless}{2}{%
\begingroup%
\ifdim#1pt<#2pt\relax%
\def\pgfmathresult{0}%
\else%
\def\pgfmathresult{1}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{notgreater}{2}{%
\begingroup%
\ifdim#1pt>#2pt\relax%
\def\pgfmathresult{0}%
\else%
\def\pgfmathresult{1}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{and}{2}{%
\begingroup%
\def\pgfmathresult{1}%
\ifdim#1pt=0pt\relax%
\def\pgfmathresult{0}%
\else%
\ifdim#2pt=0pt\relax%
\def\pgfmathresult{0}%
\fi%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{or}{2}{%
\begingroup%
\def\pgfmathresult{0}%
\ifdim#1pt=0pt\relax%
\ifdim#2pt=0pt\relax%
\else%
\def\pgfmathresult{1}%
\fi%
\else%
\def\pgfmathresult{1}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{not}{1}{%
\begingroup%
\ifdim#1pt=0pt\relax%
\def\pgfmathresult{1}%
\else%
\def\pgfmathresult{0}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{true}{0}{\def\pgfmathresult{1}}
\pgfmathdeclarefunction{false}{0}{\def\pgfmathresult{0}}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex ====
\pgfmathdeclarefunction{gcd}{2}{%
\begingroup
\pgfmathcontinuelooptrue
\pgfmath@xa=#1pt
\pgfmath@xb=#2pt
\ifdim\pgfmath@xa=0pt\relax
\pgfmathcontinueloopfalse
\pgfmath@xa=\pgfmath@xb
\fi
\ifdim\pgfmath@xb=0pt\relax
\pgfmathcontinueloopfalse
\pgfmath@xb=\pgfmath@xa
\fi
\ifdim\pgfmath@xa<0pt\relax
\pgfmath@xa=-\pgfmath@xa
\fi
\ifdim\pgfmath@xb<0pt\relax
\pgfmath@xb=-\pgfmath@xb
\fi
\loop
\ifpgfmathcontinueloop
\ifdim\pgfmath@xa=\pgfmath@xb
\pgfmathcontinueloopfalse
\else
\ifdim\pgfmath@xa>\pgfmath@xb
\advance\pgfmath@xa by-\pgfmath@xb
\else
\advance\pgfmath@xb by-\pgfmath@xa
\fi
\fi
\repeat
\pgfmathparse{int(\pgfmath@xa)}%
\pgfmath@smuggleone\pgfmathresult
\endgroup}
\newif\ifpgfmath@isprime@unknown
\newif\ifpgfmath@isprime
\pgfmathdeclarefunction{isprime}{1}{%
\begingroup
\pgfmath@isprime@unknowntrue
\pgfmathsetcount\c@pgfmath@counta{abs(int(#1))}%
\ifcase\c@pgfmath@counta\relax
\pgfmath@isprimefalse
\pgfmath@isprime@unknownfalse
\or
\pgfmath@isprimefalse
\pgfmath@isprime@unknownfalse
\or
\pgfmath@isprimetrue
\pgfmath@isprime@unknownfalse
\or
\pgfmath@isprimetrue
\pgfmath@isprime@unknownfalse
\else
\ifodd\c@pgfmath@counta\relax
\else
\pgfmath@isprimefalse
\pgfmath@isprime@unknownfalse
\fi
\fi
\ifpgfmath@isprime@unknown
\c@pgfmath@countd=3
\pgfmath@isprimetrue
\pgfmathloop
\c@pgfmath@countb=\c@pgfmath@counta
\divide\c@pgfmath@countb by\c@pgfmath@countd
\ifnum\c@pgfmath@countb>\c@pgfmath@countd
\pgfmath@isprime@unknowntrue
\else
\pgfmath@isprime@unknownfalse
\fi
\multiply\c@pgfmath@countb by\c@pgfmath@countd
\ifnum\c@pgfmath@countb=\c@pgfmath@counta
\global\pgfmath@isprimefalse
\pgfmath@isprime@unknownfalse
\fi
\ifpgfmath@isprime@unknown\advance\c@pgfmath@countd by 2
\repeatpgfmathloop
\fi
\ifpgfmath@isprime
\def\pgfmathresult{1}%
\else
\def\pgfmathresult{0}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup}
\pgfmathdeclarefunction{isodd}{1}{%
\begingroup
\pgfmathsetcount\c@pgfmath@counta{abs(int(#1))}%
\ifodd\c@pgfmath@counta
\def\pgfmathresult{1}%
\else
\def\pgfmathresult{0}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup}
\pgfmathdeclarefunction{iseven}{1}{%
\begingroup
\pgfmathsetcount\c@pgfmath@counta{abs(int(#1))}%
\ifodd\c@pgfmath@counta
\def\pgfmathresult{0}%
\else
\def\pgfmathresult{1}%
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex ====
\pgfmathdeclarefunction{veclen}{2}{%
\begingroup%
\pgfmath@x#1pt\relax%
\pgfmath@y#2pt\relax%
\ifdim\pgfmath@x<0pt\relax%
\pgfmath@x-\pgfmath@x%
\fi%
\ifdim\pgfmath@y<0pt\relax%
\pgfmath@y-\pgfmath@y%
\fi%
\ifdim\pgfmath@x=0pt\relax%
\pgfmath@x\pgfmath@y%
\else%
\ifdim\pgfmath@y=0pt\relax%
\else%
\ifdim\pgfmath@x>\pgfmath@y%
\pgfmath@xa\pgfmath@x%
\pgfmath@x\pgfmath@y%
\pgfmath@y\pgfmath@xa%
\fi%
\ifdim\pgfmath@y>10000pt\relax%
\c@pgfmath@counta1500\relax%
\else%
\ifdim\pgfmath@y>1000pt\relax%
\c@pgfmath@counta150\relax%
\else%
\ifdim\pgfmath@y>100pt\relax%
\c@pgfmath@counta50\relax%
\else%
\c@pgfmath@counta1\relax%
\fi%
\fi%
\fi%
\divide\pgfmath@x\c@pgfmath@counta\relax%
\divide\pgfmath@y\c@pgfmath@counta\relax%
\pgfmathreciprocal@{\pgfmath@tonumber{\pgfmath@y}}%
\pgfmath@x\pgfmathresult\pgfmath@x%
\pgfmath@xa\pgfmath@tonumber{\pgfmath@x}\pgfmath@x%
\edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@xa}}%
\pgfmath@x-0.01019210944\pgfmath@xa%
\advance\pgfmath@x0.04453994279pt\relax%
\pgfmath@x\pgfmath@temp\pgfmath@x%
\advance\pgfmath@x-0.1195159052pt\relax%
\pgfmath@x\pgfmath@temp\pgfmath@x%
\advance\pgfmath@x0.4993615349pt\relax%
\pgfmath@x\pgfmath@temp\pgfmath@x%
\advance\pgfmath@x1.000012594pt\relax%
\ifdim\pgfmath@y<0pt\relax%
\pgfmath@y-\pgfmath@y%
\fi%
\pgfmath@x\pgfmath@tonumber{\pgfmath@y}\pgfmath@x%
\multiply\pgfmath@x\c@pgfmath@counta\relax%
\fi%
\fi%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\pgfmathdeclarefunction{cosh}{1}{%
\begingroup
\edef\pgfmath@arg{#1}%
\pgfmathexp@{\pgfmath@arg}%
\pgfmath@x=\pgfmathresult pt\relax%
\pgfmathexp@{-\pgfmath@arg}%
\advance\pgfmath@x by\pgfmathresult pt\relax%
\divide\pgfmath@x by2\relax%
\pgfmath@returnone\pgfmath@x%
\endgroup}
\pgfmathdeclarefunction{sinh}{1}{%
\begingroup
\edef\pgfmath@arg{#1}%
\pgfmathexp@{\pgfmath@arg}%
\pgfmath@x=\pgfmathresult pt\relax%
\pgfmathexp@{-\pgfmath@arg}%
\advance\pgfmath@x by-\pgfmathresult pt\relax%
\divide\pgfmath@x by2\relax%
\pgfmath@returnone\pgfmath@x%
\endgroup
}%
\pgfmathdeclarefunction{tanh}{1}{%
\begingroup
\edef\pgfmath@arg{#1}%
\pgfmathsinh@{\pgfmath@arg}%
\pgfmath@x=\pgfmathresult pt\relax%
\pgfmathcosh@{\pgfmath@arg}%
\pgfmath@y=\pgfmathresult pt\relax%
\pgfmathdivide@{\pgfmath@tonumber{\pgfmath@x}}{\pgfmath@tonumber{\pgfmath@y}}%
\pgfmath@x=\pgfmathresult pt\relax%
\pgfmath@returnone\pgfmath@x%
\endgroup
}%
\def\pgfmathscientific#1#2{%
\begingroup%
\edef\pgfmath@sci@exponent{#2}%
\pgfmath@x#1pt\relax%
\ifdim\pgfmath@x<0pt\relax%
\pgfmath@x-\pgfmath@x%
\edef\pgfmath@sci@sign{-}%
\expandafter\edef\expandafter\pgfmath@temp\expandafter{\expandafter\pgfmath@gobbleone#1}%
\else%
\edef\pgfmath@sci@sign{+}%
\edef\pgfmath@temp{#1}%
\fi%
\expandafter\pgfmath@in@\expandafter.\expandafter{#1}%
\ifpgfmath@in@%
\else%
\edef\pgfmath@temp{\pgfmath@temp.0}%
\fi%
\expandafter\pgfmath@scientific@@\pgfmath@temp00000000000\pgfmath@}
\def\pgfmath@scientific@@#1.#2#3#4#5#6{%
\edef\pgfmath@sci@int{#1}%
\edef\pgfmath@sci@mantissaA{#2#3#4#5#6}%
\pgfmath@scientific@@@}
\def\pgfmath@scientific@@@#1#2#3#4#5#6\pgfmath@{%
\edef\pgfmath@sci@mantissaB{#1#2#3#4#5}%
\c@pgfmath@counta\pgfmath@sci@exponent\relax%
\ifnum\c@pgfmath@counta<-4\relax%
\pgfmath@x0pt\relax%
\else%
\c@pgfmath@countb\c@pgfmath@counta%
\ifnum\c@pgfmath@counta<0\relax%
\c@pgfmath@counta-\c@pgfmath@counta%
\fi%
\pgfmathpow@{10}{\the\c@pgfmath@counta}%
\afterassignment\pgfmath@gobbletilpgfmath@
\c@pgfmath@countc\pgfmathresult\relax\pgfmath@
\edef\pgfmath@sci@factor{\the\c@pgfmath@countc}%
\ifnum\c@pgfmath@countb<0\relax%
\pgfmath@x\pgfmath@sci@int.\pgfmath@sci@mantissaA pt\relax%
\divide\pgfmath@x\pgfmath@sci@factor\relax%
\else%
\c@pgfmath@counta\pgfmath@sci@int%
\c@pgfmath@countb\pgfmath@sci@mantissaA%
\multiply\c@pgfmath@counta\pgfmath@sci@factor\relax%
\multiply\c@pgfmath@countb\pgfmath@sci@factor\relax%
\c@pgfmath@countc\c@pgfmath@countb%
\divide\c@pgfmath@countb100000\relax%
\advance\c@pgfmath@counta\c@pgfmath@countb%
\multiply\c@pgfmath@countb100000\relax%
\advance\c@pgfmath@countc-\c@pgfmath@countb%
\c@pgfmath@countb\pgfmath@sci@mantissaB\relax%
\multiply\c@pgfmath@countb\pgfmath@sci@factor\relax%
\divide\c@pgfmath@countb100000\relax%
\advance\c@pgfmath@countc\c@pgfmath@countb%
\advance\c@pgfmath@countc100000\relax%
\edef\pgfmath@sci@result{\pgfmath@sci@sign\the\c@pgfmath@counta.\expandafter\pgfmath@gobbleone\the\c@pgfmath@countc pt}%
\pgfmath@x\pgfmath@sci@result\relax%
\fi\fi%
\pgfmath@returnone\pgfmath@x%
\endgroup}
\pgfmathdeclarefunction{width}{1}{%
\begingroup%
\setbox\pgfmath@box=\hbox{{\pgfmath@selectfont{#1}}}%
\pgfmath@x=\wd\pgfmath@box%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{height}{1}{%
\begingroup%
\setbox\pgfmath@box=\hbox{{\pgfmath@selectfont{#1}}}%
\pgfmath@x=\ht\pgfmath@box%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{depth}{1}{%
\begingroup%
\setbox\pgfmath@box=\hbox{{\pgfmath@selectfont{#1}}}%
\pgfmath@x=\dp\pgfmath@box%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\pgfmathdeclarefunction{array}{2}{%
\begingroup%
\afterassignment\pgfmath@gobbletilpgfmath@\pgfmath@count=#2\relax\pgfmath@%
\expandafter\pgfmatharray@@#1\pgfmath@stop%
}
\def\pgfmath@token@stop{\pgfmath@stop}%
\def\pgfmatharray@@#1{%
\def\pgfmath@temp{#1}%
\advance\pgfmath@count by-1\relax%
\ifx\pgfmath@temp\pgfmath@token@stop%
\pgfmath@error{Array index out of bounds.}{}%
\def\pgfmathresult{0}%
\pgfmath@smuggleone\pgfmathresult\endgroup%
\let\pgfmath@next=\relax%
\else%
\ifnum\pgfmath@count=-1\relax%
\def\pgfmathresult{#1}%
\let\pgfmath@next=\pgfmatharray@@@%
\else%
\let\pgfmath@next=\pgfmatharray@@%
\fi%
\fi%
\pgfmath@next}
\def\pgfmatharray@@@#1\pgfmath@stop{%
\pgfmath@smuggleone\pgfmathresult\endgroup%
}
\pgfmathdeclarefunction{dim}{1}{%
\begingroup
\pgfmath@count=0\relax
\expandafter\pgfmath@dim@i\pgfutil@firstofone#1{\pgfmath@token@stop}%
\edef\pgfmathresult{\the\pgfmath@count}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup}
\def\pgfmath@dim@i#1#{%
\pgfutil@ifempty{#1}{}{\advance\pgfmath@count by 1}%
\pgfmath@dim@ii{#1}}
\def\pgfmath@dim@ii#1#2{%
\ifx\pgfmath@token@stop#2%
\else
\advance\pgfmath@count by 1\relax
\expandafter\pgfmath@dim@i
\fi}
\pgfmathdeclarefunction{max}{...}{%
\begingroup%
\pgfmath@x=-16383pt\relax%
\pgfmathmax@@#1{}}
\def\pgfmathmax@@#1{%
\def\pgfmath@temp{#1}%
\ifx\pgfmath@temp\pgfmath@empty%
\let\pgfmath@next=\pgfmathmax@@@%
\else%
\ifdim#1pt>\pgfmath@x%
\pgfmath@x=#1pt\relax%
\fi%
\let\pgfmath@next=\pgfmathmax@@%
\fi%
\pgfmath@next}
\def\pgfmathmax@@@{\pgfmath@returnone\pgfmath@x\endgroup}%
\def\pgfmathmax#1#2{%
\pgfmathparse{#1,#2}%
\expandafter\pgfmathmax@\expandafter{\pgfmathresult}%
}
\pgfmathdeclarefunction{min}{...}{%
\begingroup%
\pgfmath@x=16383pt\relax%
\pgfmathmin@@#1{}}
\def\pgfmathmin@@#1{%
\def\pgfmath@temp{#1}%
\ifx\pgfmath@temp\pgfmath@empty%
\let\pgfmath@next=\pgfmathmin@@@%
\else%
\ifdim#1pt<\pgfmath@x%
\pgfmath@x=#1pt\relax%
\fi%
\let\pgfmath@next=\pgfmathmin@@%
\fi%
\pgfmath@next}
\def\pgfmathmin@@@{\pgfmath@returnone\pgfmath@x\endgroup}%
\def\pgfmathmin#1#2{%
\pgfmathparse{#1,#2}%
\expandafter\pgfmathmin@\expandafter{\pgfmathresult}%
}
\pgfmathdeclarefunction{scalar}{1}{%
\def\pgfmathresult{#1}%
\global\pgfmathunitsdeclaredfalse%
}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.random.code.tex ====
\def\pgfmath@rnd@m{2147483647}%
\begingroup
\c@pgfmath@counta=\time%
\multiply\c@pgfmath@counta by\year%
\ifnum\c@pgfmath@counta=0
\c@pgfmath@counta=1
\fi
\xdef\pgfmath@rnd@z{\the\c@pgfmath@counta}%
\endgroup
\def\pgfmathsetseed#1{%
\pgfmathparse{#1}\expandafter\pgfmath@setseed\pgfmathresult.0\pgfmath@stop
}%
\def\pgfmath@setseed#1.#2\pgfmath@stop{\def\pgfmath@rnd@z{#1}}%
\def\pgfmath@rnd@a{69621}
\def\pgfmath@rnd@r{23902}
\def\pgfmath@rnd@q{30845}
\def\pgfmathgeneratepseudorandomnumber{%
\begingroup%
\c@pgfmath@counta=\pgfmath@rnd@z%
\c@pgfmath@countb=\pgfmath@rnd@z%
\c@pgfmath@countc=\pgfmath@rnd@q%
\divide\c@pgfmath@counta by\c@pgfmath@countc%
\multiply\c@pgfmath@counta by-\c@pgfmath@countc%
\advance\c@pgfmath@counta by\c@pgfmath@countb
\c@pgfmath@countc=\pgfmath@rnd@a%
\multiply\c@pgfmath@counta by\c@pgfmath@countc%
\c@pgfmath@countc=\pgfmath@rnd@q%
\divide\c@pgfmath@countb by\c@pgfmath@countc%
\c@pgfmath@countc=\pgfmath@rnd@r%
\multiply\c@pgfmath@countb by\c@pgfmath@countc%
\advance\c@pgfmath@counta by-\c@pgfmath@countb%
\ifnum\c@pgfmath@counta<0\relax%
\c@pgfmath@countb=\pgfmath@rnd@m%
\advance\c@pgfmath@counta by\c@pgfmath@countb%
\fi%
\xdef\pgfmath@rnd@z{\the\c@pgfmath@counta}%
\endgroup%
\edef\pgfmathresult{\pgfmath@rnd@z}%
}
\pgfmathdeclarefunction{rnd}{0}{%
\begingroup%
\pgfmathgeneratepseudorandomnumber%
\c@pgfmath@counta\pgfmathresult%
\c@pgfmath@countb\c@pgfmath@counta%
\divide\c@pgfmath@countb100001\relax%
\multiply\c@pgfmath@countb-100001\relax%
\advance\c@pgfmath@countb\c@pgfmath@counta%
\advance\c@pgfmath@countb1000000\relax%
\expandafter\pgfmathrnd@@\the\c@pgfmath@countb\pgfmath@%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\def\pgfmathrnd@@#1#2#3\pgfmath@{%
\edef\pgfmath@temp{#2.#3}%
\pgfmath@x=\pgfmath@temp pt\relax%
}%
\pgfmathdeclarefunction{rand}{0}{%
\begingroup%
\pgfmathgeneratepseudorandomnumber%
\c@pgfmath@counta\pgfmathresult%
\c@pgfmath@countb\c@pgfmath@counta%
\divide\c@pgfmath@countb200001\relax%
\multiply\c@pgfmath@countb-200001\relax%
\advance\c@pgfmath@countb\c@pgfmath@counta%
\advance\c@pgfmath@countb-100000\relax%
\ifnum\c@pgfmath@countb<0\relax%
\advance\c@pgfmath@countb-1000000\relax%
\else%
\advance\c@pgfmath@countb1000000\relax%
\fi%
\expandafter\pgfmathrand@@\the\c@pgfmath@countb\pgfmath@%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\def\pgfmathrand@@#1#2#3#4\pgfmath@{%
\ifx#1-%
\edef\pgfmath@temp{-#3.#4}%
\else%
\edef\pgfmath@temp{#2.#3#4}%
\fi%
\pgfmath@x=\pgfmath@temp pt\relax%
}%
\pgfmathdeclarefunction{random}{...}{%
\begingroup%
\def\pgfmath@temp{#1}%
\ifx\pgfmath@temp\pgfmath@empty%
\pgfmathrnd@%
\else%
\expandafter\pgfmathrandom@@#1\pgfmath@stop%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup}
\def\pgfmathrandom@@{\futurelet\pgfmath@token\pgfmathrandom@@@}
\def\pgfmathrandom@@@{%
\ifx\pgfmath@token\bgroup%
\expandafter\pgfmath@random@@@@%
\else%
\expandafter\pgfmath@random@@@@@%
\fi%
}
\def\pgfmath@random@@@@@#1\pgfmath@stop{%
\pgfmathrandominteger\pgfmathresult{1}{#1}%
}
\def\pgfmath@random@@@@#1#2\pgfmath@stop{%
\pgfmathrandominteger\pgfmathresult{#1}{#2}%
}
\def\pgfmathrandominteger#1#2#3{%
\begingroup%
\pgfmathsetcount\c@pgfmath@counta{#2}%
\pgfmathsetcount\c@pgfmath@countb{#3}%
\c@pgfmath@countc\c@pgfmath@countb%
\ifnum\c@pgfmath@counta>\c@pgfmath@countb\relax%
\c@pgfmath@countc\c@pgfmath@counta%
\c@pgfmath@counta\c@pgfmath@countb%
\c@pgfmath@countb\c@pgfmath@countc%
\fi%
\c@pgfmath@countd\c@pgfmath@counta
\advance\c@pgfmath@countc1\relax%
\advance\c@pgfmath@countc-\c@pgfmath@counta%
\pgfmathgeneratepseudorandomnumber%
\c@pgfmath@counta\pgfmathresult\relax%
\c@pgfmath@countb\c@pgfmath@counta%
\divide\c@pgfmath@countb\c@pgfmath@countc%
\multiply\c@pgfmath@countb-\c@pgfmath@countc%
\advance\c@pgfmath@counta\c@pgfmath@countb%
\advance\c@pgfmath@counta\c@pgfmath@countd
\edef\pgfmathresult{\the\c@pgfmath@counta}%
\pgfmath@smuggleone{\pgfmathresult}%
\endgroup%
\edef#1{\pgfmathresult}%
}
\def\pgfmathdeclarerandomlist#1#2{%
\def\pgfmath@randomlistname{#1}%
\begingroup%
\c@pgfmath@counta=1\relax%
\def\pgfmath@empty{pgfmath@empty}%
\expandafter\pgfmath@scanrandomlist#2{pgfmath@empty}}
\def\pgfmath@scanrandomlist#1{%
\def\pgfmath@scanneditem{#1}%
\ifx\pgfmath@scanneditem\pgfmath@empty%
\advance\c@pgfmath@counta-1\relax%
\expandafter\xdef\csname pgfmath@randomlist@\pgfmath@randomlistname\endcsname{\the\c@pgfmath@counta}%
\endgroup%
\else%
\expandafter\gdef\csname pgfmath@randomlist@\pgfmath@randomlistname @\the\c@pgfmath@counta\endcsname{#1}%
\advance\c@pgfmath@counta1\relax%
\expandafter\pgfmath@scanrandomlist%
\fi}
\def\pgfmathrandomitem#1#2{%
\pgfmath@ifundefined{pgfmath@randomlist@#2}{\pgfmath@error{Unknown random list `#2'}{}}{%
\edef\pgfmath@randomlistlength{\csname pgfmath@randomlist@#2\endcsname}%
\pgfmathrandominteger{\pgfmath@randomtemp}{1}{\pgfmath@randomlistlength}%
\expandafter\def\expandafter#1\expandafter{\csname pgfmath@randomlist@#2@\pgfmath@randomtemp\endcsname}}}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.random.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.round.code.tex ====
\pgfmathdeclarefunction{round}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\afterassignment\pgfmath@xa%
\expandafter\c@pgfmath@counta\the\pgfmath@x\relax%
\pgfmath@xb\pgfmath@x%
\ifdim\pgfmath@xb<0pt\relax%
\ifdim\pgfmath@xa<0.5pt\relax%
\else%
\advance\c@pgfmath@counta-1\relax%
\fi%
\else%
\ifdim\pgfmath@xa<0.5pt\relax%
\else%
\advance\c@pgfmath@counta1\relax%
\fi%
\fi%
\pgfmath@returnone\the\c@pgfmath@counta pt%
\endgroup%
}%
\pgfmathdeclarefunction{floor}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\afterassignment\pgfmathfloor@collect@remainder%
\expandafter\c@pgfmath@counta\the\pgfmath@x\pgfmath@%
\expandafter\pgfmath@x#1pt\relax%
\ifdim\pgfmath@x<0pt\relax%
\ifdim\pgfmathfloor@remainder>0pt
\advance\c@pgfmath@counta by -1\relax%
\else
\fi
\fi%
\pgfmath@x\c@pgfmath@counta pt\relax%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\def\pgfmathfloor@collect@remainder#1\pgfmath@{%
\def\pgfmathfloor@remainder{#1}%
\ifx\pgfmathfloor@remainder\pgfutil@empty
\def\pgfmathfloor@remainder{0}%
\fi
}%
\pgfmathdeclarefunction{ceil}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@%
\pgfmath@y\pgfmath@x%
\advance\pgfmath@y-\c@pgfmath@counta pt\relax%
\pgfmath@x\c@pgfmath@counta pt\relax%
\ifdim\pgfmath@y>0pt\relax%
\advance\pgfmath@x1pt\relax%
\fi%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\pgfmathdeclarefunction{int}{1}{%
\begingroup%
\expandafter\pgfmathint@@#1.\pgfmath@stop
\pgfmath@smuggleone\pgfmathresult%
\endgroup}
\def\pgfmathint@@#1.#2\pgfmath@stop{%
\def\pgfmath@temp{#1}%
\ifx\pgfmath@temp\pgfmath@empty%
\def\pgfmathresult{0}%
\else%
\pgfmath@in@{#1}{+-+0-0}%
\ifpgfmath@in@
\def\pgfmathresult{0}%
\else%
\def\pgfmathresult{#1}%
\fi%
\fi}
\pgfmathdeclarefunction{frac}{1}{%
\begingroup%
\expandafter\pgfmathfrac@@#1.\pgfmath@stop%
\pgfmath@smuggleone\pgfmathresult%
\endgroup}
\def\pgfmathfrac@@#1.{%
\pgfmath@ifnextchar\pgfmath@stop{\def\pgfmathresult{0.0}\pgfmath@gobbleone}{\pgfmathfrac@@@}%
}
\def\pgfmathfrac@@@#1.\pgfmath@stop{\def\pgfmathresult{0.#1}}
\pgfmathdeclarefunction{real}{1}{%
\begingroup%
\pgfmath@x=#1pt\relax%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.round.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex ====
\pgfmathdeclarefunction{pi}{0}{\def\pgfmathresult{3.141592654}}
\pgfkeys{
/pgf/trig format/.is choice,
/pgf/trig format/deg/.code={\def\pgfmath@trig@format@choice{0}},
/pgf/trig format/rad/.code={\def\pgfmath@trig@format@choice{1}},
/pgf/trig format/deg,
}
\def\pgfmathiftrigonometricusesdeg#1#2{%
\if0\pgfmath@trig@format@choice
#1%
\else
#2%
\fi
}%
\pgfmathdeclarefunction{radians}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\pgfmath@x57.29577\pgfmath@x\relax%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\pgfmathdeclarefunction{deg}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\pgfmath@scale@rad@to@deg\pgfmath@x
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\def\pgfmath@scale@rad@to@deg#1{%
#1=57.29577#1\relax%
}%
\pgfmathdeclarefunction{rad}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\pgfmath@scale@deg@to@rad\pgfmath@x
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\def\pgfmath@scale@deg@to@rad#1{%
#1=3.14159#1%
\divide#1180\relax%
}%
\pgfmathdeclarefunction{sin}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\if1\pgfmath@trig@format@choice
\pgfmath@scale@rad@to@deg\pgfmath@x
\fi
\advance\pgfmath@x-90pt\relax%
\afterassignment\pgfmath@gobbletilpgfmath@
\expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@
\divide\c@pgfmath@counta360\relax%
\multiply\c@pgfmath@counta-360\relax%
\advance\pgfmath@x\c@pgfmath@counta pt\relax%
\ifdim\pgfmath@x<0pt\relax\pgfmath@x-\pgfmath@x\fi%
\ifdim\pgfmath@x<180pt\relax%
\else
\pgfmath@x-\pgfmath@x%
\advance\pgfmath@x360pt\relax%
\fi%
\afterassignment\pgfmath@xa%
\expandafter\c@pgfmath@counta\the\pgfmath@x\relax%
\ifdim\pgfmath@xa=0pt%
\expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname pt\relax%
\else%
\pgfmath@x-\pgfmath@xa%
\advance\pgfmath@x1pt\relax%
\expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@x%
\advance\c@pgfmath@counta1\relax%
\ifnum\c@pgfmath@counta=181\relax\c@pgfmath@counta179\relax\fi%
\expandafter\advance\expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@xa%
\fi%
\pgfmath@returnone\pgfmath@x%
\endgroup
}
\pgfmathdeclarefunction{cos}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\if1\pgfmath@trig@format@choice
\pgfmath@scale@rad@to@deg\pgfmath@x
\fi
\afterassignment\pgfmath@gobbletilpgfmath@%
\expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@%
\divide\c@pgfmath@counta360\relax%
\multiply\c@pgfmath@counta-360\relax%
\advance\pgfmath@x\c@pgfmath@counta pt\relax%
\ifdim\pgfmath@x<0pt\relax\pgfmath@x-\pgfmath@x\fi%
\ifdim\pgfmath@x<180pt\relax%
\else%
\pgfmath@x-\pgfmath@x%
\advance\pgfmath@x360pt\relax%
\fi%
\afterassignment\pgfmath@xa%
\expandafter\c@pgfmath@counta\the\pgfmath@x\relax%
\ifdim\pgfmath@xa=0pt%
\expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname pt%
\else%
\pgfmath@x-\pgfmath@xa%
\advance\pgfmath@x1pt\relax%
\expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@x%
\advance\c@pgfmath@counta1\relax%
\ifnum\c@pgfmath@counta=181\relax\c@pgfmath@counta179\relax\fi%
\expandafter\advance\expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@xa%
\fi%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\def\pgfmathsincos#1{%
\pgfmathparse{#1}%
\expandafter\pgfmathsincos@\expandafter{\pgfmathresult}}
\def\pgfmathsincos@#1{%
\edef\pgfmath@temparg{#1}%
\pgfmathsin@{\pgfmath@temparg}\edef\pgfmathresulty{\pgfmathresult}%
\pgfmathcos@{\pgfmath@temparg}\edef\pgfmathresultx{\pgfmathresult}%
}
\pgfmathdeclarefunction{tan}{1}{%
\begingroup%
\edef\pgfmath@temparg{#1}%
\pgfmathcos@{\pgfmath@temparg}%
\expandafter\pgfmathreciprocal@\expandafter{\pgfmathresult}%
\edef\pgfmath@tantemp{\pgfmathresult}%
\pgfmathsin@{\pgfmath@temparg}%
\pgfmath@x\pgfmathresult pt\relax%
\pgfmath@x\pgfmath@tantemp\pgfmath@x%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\pgfmathdeclarefunction{cosec}{1}{%
\expandafter\pgfmathsin@\expandafter{#1}%
\pgfmathreciprocal@{\pgfmathresult}%
}
\pgfmathdeclarefunction{sec}{1}{%
\expandafter\pgfmathcos@\expandafter{#1}%
\pgfmathreciprocal@{\pgfmathresult}%
}
\pgfmathdeclarefunction{cot}{1}{%
\begingroup%
\edef\pgfmath@temparg{#1}%
\pgfmathsin@{\pgfmath@temparg}%
\expandafter\pgfmathreciprocal@\expandafter{\pgfmathresult}%
\edef\pgfmath@tantemp{\pgfmathresult}%
\pgfmathcos@{\pgfmath@temparg}%
\pgfmath@x\pgfmathresult pt\relax%
\pgfmath@x\pgfmath@tantemp\pgfmath@x%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\def\pgfmath@multiply@thousand#1.#2#3#4#5\relax{%
\edef\pgfmathresult{#1#2#3#4.#5}%
}%
\pgfmathdeclarefunction{asin}{1}{%
\begingroup%
\pgfmath@x=#1pt %
\pgfmath@xa\pgfmath@x%
\edef\pgf@temp{\pgfmath@tonumber\pgfmath@x}%
\expandafter\pgfmath@multiply@thousand\pgf@temp 000\relax
\pgfmath@x=\pgfmathresult pt %
\ifdim\pgfmath@x<0pt\relax%
\pgfmath@x-\pgfmath@x%
\fi%
\pgfmath@table@lookup{\pgfmath@x}{pgfmath@acos@}{1001}%
\pgfmath@x=-\pgfmath@x
\advance\pgfmath@x90pt\relax%
\ifdim\pgfmath@xa<0pt\relax%
\pgfmath@x-\pgfmath@x%
\fi%
\if1\pgfmath@trig@format@choice
\pgfmath@scale@deg@to@rad\pgfmath@x
\fi
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\def\pgfmath@table@lookup#1#2#3{%
\pgfmath@x=#1\relax
\expandafter\pgfmath@table@lookup@\the\pgfmath@x\relax{#2}{#3}%
}
\def\pgfmath@table@lookup@#1.#2\relax#3#4{%
\edef\pgf@temp{\Pgf@geT#2}%
\pgfmath@x=\csname #3#1\endcsname pt %
\c@pgfmath@countc=#1 %
\advance\c@pgfmath@countc by1 %
\ifnum\c@pgfmath@countc<#4 %
\pgfmath@ya=\csname #3\the\c@pgfmath@countc\endcsname pt %
\advance\pgfmath@ya by-\pgfmath@x %
\advance\pgfmath@x by0.\pgf@temp\pgfmath@ya
\fi
}%
\pgfmathdeclarefunction{acos}{1}{%
\begingroup%
\pgfmath@x#1pt\relax%
\pgfmath@xa\pgfmath@x%
\edef\pgf@temp{\pgfmath@tonumber\pgfmath@x}%
\expandafter\pgfmath@multiply@thousand\pgf@temp 000\relax
\pgfmath@x=\pgfmathresult pt %
\ifdim\pgfmath@x<0pt\relax%
\pgfmath@x-\pgfmath@x%
\fi%
\pgfmath@table@lookup{\pgfmath@x}{pgfmath@acos@}{1001}%
\ifdim\pgfmath@xa<0pt\relax%
\pgfmath@x-\pgfmath@x%
\advance\pgfmath@x by180pt\relax%
\fi%
\if1\pgfmath@trig@format@choice
\pgfmath@scale@deg@to@rad\pgfmath@x
\fi
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\pgfmathdeclarefunction{atan}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\pgfmath@xa\pgfmath@x%
\ifdim\pgfmath@x<0pt\relax%
\pgfmath@x-\pgfmath@x%
\fi%
\pgfmath@xb\pgfmath@x%
\ifdim\pgfmath@x>1pt\relax%
\edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@x}}%
\pgfmathreciprocal@{\pgfmath@temp}%
\pgfmath@x\pgfmathresult pt\relax%
\fi%
\edef\pgf@temp{\pgfmath@tonumber\pgfmath@x}%
\expandafter\pgfmath@multiply@thousand\pgf@temp 000\relax
\pgfmath@x=\pgfmathresult pt %
\pgfmath@table@lookup{\pgfmath@x}{pgfmath@atan@}{1001}%
\ifdim\pgfmath@xb>1pt\relax%
\pgfmath@x=-\pgfmath@x%
\advance\pgfmath@x90pt%
\fi%
\ifdim\pgfmath@xa<0pt\relax%
\pgfmath@x-\pgfmath@x%
\fi%
\if1\pgfmath@trig@format@choice
\pgfmath@scale@deg@to@rad\pgfmath@x
\fi
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\pgfmathdeclarefunction{atan2}{2}{%
\begingroup%
\let\pgfmath@trig@format@choice@@=\pgfmath@trig@format@choice
\def\pgfmath@trig@format@choice{0}%
\pgfmath@y=#1pt\relax%
\ifdim\pgfmath@y<0pt\relax%
\pgfmath@y=-\pgfmath@y%
\fi%
\ifdim\pgfmath@y<0.001pt\relax%
\ifdim#2pt<0pt\relax%
\pgfmath@x=+180pt\relax%
\else%
\ifdim#2pt>0pt\relax%
\pgfmath@x=0pt\relax%
\else%
\ifdim#1pt<0pt%
\pgfmath@x=-90pt\relax%
\else%
\pgfmath@x=90pt\relax%
\fi%
\fi%
\fi%
\else%
\pgfmathabs@{#1}\let\pgfmath@tempa\pgfmathresult%
\pgfmathabs@{#2}\let\pgfmath@tempb\pgfmathresult%
\ifdim\pgfmath@tempa pt>\pgfmath@tempb pt%
\pgfmathdivide@{#2}{\pgfmath@tempa}%
\expandafter\pgfmathatan@\expandafter{\pgfmathresult}%
\pgfmath@x=90pt%
\advance\pgfmath@x by-\pgfmathresult pt\relax%
\else%
\pgfmathdivide@{\pgfmath@tempa}{#2}%
\expandafter\pgfmathatan@\expandafter{\pgfmathresult}%
\pgfmath@x=\pgfmathresult pt\relax%
\ifdim#2pt<0pt%
\advance\pgfmath@x by180pt\relax%
\fi%
\fi%
\ifdim#1pt<0pt\relax%
\pgfmath@x=-\pgfmath@x%
\fi%
\fi%
\if1\pgfmath@trig@format@choice@@
\pgfmath@scale@deg@to@rad\pgfmath@x
\fi
\pgfmath@returnone\pgfmath@x%
\endgroup%
}
\expandafter\let\expandafter\pgfmathatantwo\csname pgfmathatan2\endcsname
\expandafter\let\expandafter\pgfmathatantwo@\csname pgfmathatan2@\endcsname
\def\pgfmath@def#1#2#3{\expandafter\def\csname pgfmath@#1@#2\endcsname{#3}}
\pgfmath@def{cos}{0}{1.00000} \pgfmath@def{cos}{1}{0.99985}
\pgfmath@def{cos}{2}{0.99939} \pgfmath@def{cos}{3}{0.99863}
\pgfmath@def{cos}{4}{0.99756} \pgfmath@def{cos}{5}{0.99619}
\pgfmath@def{cos}{6}{0.99452} \pgfmath@def{cos}{7}{0.99255}
\pgfmath@def{cos}{8}{0.99027} \pgfmath@def{cos}{9}{0.98769}
\pgfmath@def{cos}{10}{0.98481} \pgfmath@def{cos}{11}{0.98163}
\pgfmath@def{cos}{12}{0.97815} \pgfmath@def{cos}{13}{0.97437}
\pgfmath@def{cos}{14}{0.97030} \pgfmath@def{cos}{15}{0.96593}
\pgfmath@def{cos}{16}{0.96126} \pgfmath@def{cos}{17}{0.95630}
\pgfmath@def{cos}{18}{0.95106} \pgfmath@def{cos}{19}{0.94552}
\pgfmath@def{cos}{20}{0.93969} \pgfmath@def{cos}{21}{0.93358}
\pgfmath@def{cos}{22}{0.92718} \pgfmath@def{cos}{23}{0.92050}
\pgfmath@def{cos}{24}{0.91355} \pgfmath@def{cos}{25}{0.90631}
\pgfmath@def{cos}{26}{0.89879} \pgfmath@def{cos}{27}{0.89101}
\pgfmath@def{cos}{28}{0.88295} \pgfmath@def{cos}{29}{0.87462}
\pgfmath@def{cos}{30}{0.86603} \pgfmath@def{cos}{31}{0.85717}
\pgfmath@def{cos}{32}{0.84805} \pgfmath@def{cos}{33}{0.83867}
\pgfmath@def{cos}{34}{0.82904} \pgfmath@def{cos}{35}{0.81915}
\pgfmath@def{cos}{36}{0.80902} \pgfmath@def{cos}{37}{0.79864}
\pgfmath@def{cos}{38}{0.78801} \pgfmath@def{cos}{39}{0.77715}
\pgfmath@def{cos}{40}{0.76604} \pgfmath@def{cos}{41}{0.75471}
\pgfmath@def{cos}{42}{0.74314} \pgfmath@def{cos}{43}{0.73135}
\pgfmath@def{cos}{44}{0.71934} \pgfmath@def{cos}{45}{0.70711}
\pgfmath@def{cos}{46}{0.69466} \pgfmath@def{cos}{47}{0.68200}
\pgfmath@def{cos}{48}{0.66913} \pgfmath@def{cos}{49}{0.65606}
\pgfmath@def{cos}{50}{0.64279} \pgfmath@def{cos}{51}{0.62932}
\pgfmath@def{cos}{52}{0.61566} \pgfmath@def{cos}{53}{0.60182}
\pgfmath@def{cos}{54}{0.58779} \pgfmath@def{cos}{55}{0.57358}
\pgfmath@def{cos}{56}{0.55919} \pgfmath@def{cos}{57}{0.54464}
\pgfmath@def{cos}{58}{0.52992} \pgfmath@def{cos}{59}{0.51504}
\pgfmath@def{cos}{60}{0.50000} \pgfmath@def{cos}{61}{0.48481}
\pgfmath@def{cos}{62}{0.46947} \pgfmath@def{cos}{63}{0.45399}
\pgfmath@def{cos}{64}{0.43837} \pgfmath@def{cos}{65}{0.42262}
\pgfmath@def{cos}{66}{0.40674} \pgfmath@def{cos}{67}{0.39073}
\pgfmath@def{cos}{68}{0.37461} \pgfmath@def{cos}{69}{0.35837}
\pgfmath@def{cos}{70}{0.34202} \pgfmath@def{cos}{71}{0.32557}
\pgfmath@def{cos}{72}{0.30902} \pgfmath@def{cos}{73}{0.29237}
\pgfmath@def{cos}{74}{0.27564} \pgfmath@def{cos}{75}{0.25882}
\pgfmath@def{cos}{76}{0.24192} \pgfmath@def{cos}{77}{0.22495}
\pgfmath@def{cos}{78}{0.20791} \pgfmath@def{cos}{79}{0.19081}
\pgfmath@def{cos}{80}{0.17365} \pgfmath@def{cos}{81}{0.15643}
\pgfmath@def{cos}{82}{0.13917} \pgfmath@def{cos}{83}{0.12187}
\pgfmath@def{cos}{84}{0.10453} \pgfmath@def{cos}{85}{0.08716}
\pgfmath@def{cos}{86}{0.06976} \pgfmath@def{cos}{87}{0.05234}
\pgfmath@def{cos}{88}{0.03490} \pgfmath@def{cos}{89}{0.01745}
\pgfmath@def{cos}{90}{0.00000} \pgfmath@def{cos}{91}{-0.01745}
\pgfmath@def{cos}{92}{-0.03490} \pgfmath@def{cos}{93}{-0.05234}
\pgfmath@def{cos}{94}{-0.06976} \pgfmath@def{cos}{95}{-0.08716}
\pgfmath@def{cos}{96}{-0.10453} \pgfmath@def{cos}{97}{-0.12187}
\pgfmath@def{cos}{98}{-0.13917} \pgfmath@def{cos}{99}{-0.15643}
\pgfmath@def{cos}{100}{-0.17365} \pgfmath@def{cos}{101}{-0.19081}
\pgfmath@def{cos}{102}{-0.20791} \pgfmath@def{cos}{103}{-0.22495}
\pgfmath@def{cos}{104}{-0.24192} \pgfmath@def{cos}{105}{-0.25882}
\pgfmath@def{cos}{106}{-0.27564} \pgfmath@def{cos}{107}{-0.29237}
\pgfmath@def{cos}{108}{-0.30902} \pgfmath@def{cos}{109}{-0.32557}
\pgfmath@def{cos}{110}{-0.34202} \pgfmath@def{cos}{111}{-0.35837}
\pgfmath@def{cos}{112}{-0.37461} \pgfmath@def{cos}{113}{-0.39073}
\pgfmath@def{cos}{114}{-0.40674} \pgfmath@def{cos}{115}{-0.42262}
\pgfmath@def{cos}{116}{-0.43837} \pgfmath@def{cos}{117}{-0.45399}
\pgfmath@def{cos}{118}{-0.46947} \pgfmath@def{cos}{119}{-0.48481}
\pgfmath@def{cos}{120}{-0.50000} \pgfmath@def{cos}{121}{-0.51504}
\pgfmath@def{cos}{122}{-0.52992} \pgfmath@def{cos}{123}{-0.54464}
\pgfmath@def{cos}{124}{-0.55919} \pgfmath@def{cos}{125}{-0.57358}
\pgfmath@def{cos}{126}{-0.58779} \pgfmath@def{cos}{127}{-0.60182}
\pgfmath@def{cos}{128}{-0.61566} \pgfmath@def{cos}{129}{-0.62932}
\pgfmath@def{cos}{130}{-0.64279} \pgfmath@def{cos}{131}{-0.65606}
\pgfmath@def{cos}{132}{-0.66913} \pgfmath@def{cos}{133}{-0.68200}
\pgfmath@def{cos}{134}{-0.69466} \pgfmath@def{cos}{135}{-0.70711}
\pgfmath@def{cos}{136}{-0.71934} \pgfmath@def{cos}{137}{-0.73135}
\pgfmath@def{cos}{138}{-0.74314} \pgfmath@def{cos}{139}{-0.75471}
\pgfmath@def{cos}{140}{-0.76604} \pgfmath@def{cos}{141}{-0.77715}
\pgfmath@def{cos}{142}{-0.78801} \pgfmath@def{cos}{143}{-0.79864}
\pgfmath@def{cos}{144}{-0.80902} \pgfmath@def{cos}{145}{-0.81915}
\pgfmath@def{cos}{146}{-0.82904} \pgfmath@def{cos}{147}{-0.83867}
\pgfmath@def{cos}{148}{-0.84805} \pgfmath@def{cos}{149}{-0.85717}
\pgfmath@def{cos}{150}{-0.86603} \pgfmath@def{cos}{151}{-0.87462}
\pgfmath@def{cos}{152}{-0.88295} \pgfmath@def{cos}{153}{-0.89101}
\pgfmath@def{cos}{154}{-0.89879} \pgfmath@def{cos}{155}{-0.90631}
\pgfmath@def{cos}{156}{-0.91355} \pgfmath@def{cos}{157}{-0.92050}
\pgfmath@def{cos}{158}{-0.92718} \pgfmath@def{cos}{159}{-0.93358}
\pgfmath@def{cos}{160}{-0.93969} \pgfmath@def{cos}{161}{-0.94552}
\pgfmath@def{cos}{162}{-0.95106} \pgfmath@def{cos}{163}{-0.95630}
\pgfmath@def{cos}{164}{-0.96126} \pgfmath@def{cos}{165}{-0.96593}
\pgfmath@def{cos}{166}{-0.97030} \pgfmath@def{cos}{167}{-0.97437}
\pgfmath@def{cos}{168}{-0.97815} \pgfmath@def{cos}{169}{-0.98163}
\pgfmath@def{cos}{170}{-0.98481} \pgfmath@def{cos}{171}{-0.98769}
\pgfmath@def{cos}{172}{-0.99027} \pgfmath@def{cos}{173}{-0.99255}
\pgfmath@def{cos}{174}{-0.99452} \pgfmath@def{cos}{175}{-0.99619}
\pgfmath@def{cos}{176}{-0.99756} \pgfmath@def{cos}{177}{-0.99863}
\pgfmath@def{cos}{178}{-0.99939} \pgfmath@def{cos}{179}{-0.99985}
\pgfmath@def{cos}{180}{-1.00000} \pgfmath@def{cos}{181}{-0.99985}
\pgfmath@def{cosfrac}{0}{1.00000} \pgfmath@def{cosfrac}{1}{0.99995}
\pgfmath@def{cosfrac}{2}{0.99980} \pgfmath@def{cosfrac}{3}{0.99955}
\pgfmath@def{cosfrac}{4}{0.99920} \pgfmath@def{cosfrac}{5}{0.99875}
\pgfmath@def{cosfrac}{6}{0.99820} \pgfmath@def{cosfrac}{7}{0.99755}
\pgfmath@def{cosfrac}{8}{0.99681} \pgfmath@def{cosfrac}{9}{0.99597}
\pgfmath@def{cosfrac}{10}{0.99503} \pgfmath@def{cosfrac}{11}{0.99400}
\pgfmath@def{cosfrac}{12}{0.99287} \pgfmath@def{cosfrac}{13}{0.99165}
\pgfmath@def{cosfrac}{14}{0.99034} \pgfmath@def{cosfrac}{15}{0.98893}
\pgfmath@def{cosfrac}{16}{0.98744} \pgfmath@def{cosfrac}{17}{0.98585}
\pgfmath@def{cosfrac}{18}{0.98418} \pgfmath@def{cosfrac}{19}{0.98242}
\pgfmath@def{cosfrac}{20}{0.98058} \pgfmath@def{cosfrac}{21}{0.97865}
\pgfmath@def{cosfrac}{22}{0.97664} \pgfmath@def{cosfrac}{23}{0.97455}
\pgfmath@def{cosfrac}{24}{0.97238} \pgfmath@def{cosfrac}{25}{0.97014}
\pgfmath@def{cosfrac}{26}{0.96782} \pgfmath@def{cosfrac}{27}{0.96542}
\pgfmath@def{cosfrac}{28}{0.96296} \pgfmath@def{cosfrac}{29}{0.96042}
\pgfmath@def{cosfrac}{30}{0.95782} \pgfmath@def{cosfrac}{31}{0.95515}
\pgfmath@def{cosfrac}{32}{0.95242} \pgfmath@def{cosfrac}{33}{0.94962}
\pgfmath@def{cosfrac}{34}{0.94677} \pgfmath@def{cosfrac}{35}{0.94385}
\pgfmath@def{cosfrac}{36}{0.94088} \pgfmath@def{cosfrac}{37}{0.93786}
\pgfmath@def{cosfrac}{38}{0.93478} \pgfmath@def{cosfrac}{39}{0.93165}
\pgfmath@def{cosfrac}{40}{0.92847} \pgfmath@def{cosfrac}{41}{0.92525}
\pgfmath@def{cosfrac}{42}{0.92198} \pgfmath@def{cosfrac}{43}{0.91866}
\pgfmath@def{cosfrac}{44}{0.91531} \pgfmath@def{cosfrac}{45}{0.91192}
\pgfmath@def{cosfrac}{46}{0.90849} \pgfmath@def{cosfrac}{47}{0.90502}
\pgfmath@def{cosfrac}{48}{0.90152} \pgfmath@def{cosfrac}{49}{0.89799}
\pgfmath@def{cosfrac}{50}{0.89442} \pgfmath@def{cosfrac}{51}{0.89083}
\pgfmath@def{cosfrac}{52}{0.88721} \pgfmath@def{cosfrac}{53}{0.88357}
\pgfmath@def{cosfrac}{54}{0.87990} \pgfmath@def{cosfrac}{55}{0.87621}
\pgfmath@def{cosfrac}{56}{0.87250} \pgfmath@def{cosfrac}{57}{0.86877}
\pgfmath@def{cosfrac}{58}{0.86503} \pgfmath@def{cosfrac}{59}{0.86126}
\pgfmath@def{cosfrac}{60}{0.85749} \pgfmath@def{cosfrac}{61}{0.85370}
\pgfmath@def{cosfrac}{62}{0.84990} \pgfmath@def{cosfrac}{63}{0.84609}
\pgfmath@def{cosfrac}{64}{0.84227} \pgfmath@def{cosfrac}{65}{0.83844}
\pgfmath@def{cosfrac}{66}{0.83460} \pgfmath@def{cosfrac}{67}{0.83077}
\pgfmath@def{cosfrac}{68}{0.82692} \pgfmath@def{cosfrac}{69}{0.82308}
\pgfmath@def{cosfrac}{70}{0.81923} \pgfmath@def{cosfrac}{71}{0.81538}
\pgfmath@def{cosfrac}{72}{0.81153} \pgfmath@def{cosfrac}{73}{0.80768}
\pgfmath@def{cosfrac}{74}{0.80384} \pgfmath@def{cosfrac}{75}{0.80000}
\pgfmath@def{cosfrac}{76}{0.79616} \pgfmath@def{cosfrac}{77}{0.79232}
\pgfmath@def{cosfrac}{78}{0.78850} \pgfmath@def{cosfrac}{79}{0.78468}
\pgfmath@def{cosfrac}{80}{0.78086} \pgfmath@def{cosfrac}{81}{0.77706}
\pgfmath@def{cosfrac}{82}{0.77326} \pgfmath@def{cosfrac}{83}{0.76948}
\pgfmath@def{cosfrac}{84}{0.76570} \pgfmath@def{cosfrac}{85}{0.76193}
\pgfmath@def{cosfrac}{86}{0.75818} \pgfmath@def{cosfrac}{87}{0.75444}
\pgfmath@def{cosfrac}{88}{0.75071} \pgfmath@def{cosfrac}{89}{0.74699}
\pgfmath@def{cosfrac}{90}{0.74329} \pgfmath@def{cosfrac}{91}{0.73960}
\pgfmath@def{cosfrac}{92}{0.73593} \pgfmath@def{cosfrac}{93}{0.73227}
\pgfmath@def{cosfrac}{94}{0.72862} \pgfmath@def{cosfrac}{95}{0.72499}
\pgfmath@def{cosfrac}{96}{0.72138} \pgfmath@def{cosfrac}{97}{0.71779}
\pgfmath@def{cosfrac}{98}{0.71421} \pgfmath@def{cosfrac}{99}{0.71065}
\pgfmath@def{cosfrac}{100}{0.70710}
\pgfmath@def{atan}{0}{0.00000} \pgfmath@def{atan}{1}{0.05729}
\pgfmath@def{atan}{2}{0.11459} \pgfmath@def{atan}{3}{0.17188}
\pgfmath@def{atan}{4}{0.22918} \pgfmath@def{atan}{5}{0.28647}
\pgfmath@def{atan}{6}{0.34377} \pgfmath@def{atan}{7}{0.40106}
\pgfmath@def{atan}{8}{0.45835} \pgfmath@def{atan}{9}{0.51564}
\pgfmath@def{atan}{10}{0.57293} \pgfmath@def{atan}{11}{0.63022}
\pgfmath@def{atan}{12}{0.68751} \pgfmath@def{atan}{13}{0.74480}
\pgfmath@def{atan}{14}{0.80208} \pgfmath@def{atan}{15}{0.85937}
\pgfmath@def{atan}{16}{0.91665} \pgfmath@def{atan}{17}{0.97393}
\pgfmath@def{atan}{18}{1.03121} \pgfmath@def{atan}{19}{1.08848}
\pgfmath@def{atan}{20}{1.14576} \pgfmath@def{atan}{21}{1.20303}
\pgfmath@def{atan}{22}{1.26030} \pgfmath@def{atan}{23}{1.31757}
\pgfmath@def{atan}{24}{1.37483} \pgfmath@def{atan}{25}{1.43209}
\pgfmath@def{atan}{26}{1.48935} \pgfmath@def{atan}{27}{1.54661}
\pgfmath@def{atan}{28}{1.60386} \pgfmath@def{atan}{29}{1.66111}
\pgfmath@def{atan}{30}{1.71835} \pgfmath@def{atan}{31}{1.77560}
\pgfmath@def{atan}{32}{1.83284} \pgfmath@def{atan}{33}{1.89007}
\pgfmath@def{atan}{34}{1.94730} \pgfmath@def{atan}{35}{2.00453}
\pgfmath@def{atan}{36}{2.06175} \pgfmath@def{atan}{37}{2.11897}
\pgfmath@def{atan}{38}{2.17619} \pgfmath@def{atan}{39}{2.23340}
\pgfmath@def{atan}{40}{2.29061} \pgfmath@def{atan}{41}{2.34781}
\pgfmath@def{atan}{42}{2.40500} \pgfmath@def{atan}{43}{2.46220}
\pgfmath@def{atan}{44}{2.51938} \pgfmath@def{atan}{45}{2.57657}
\pgfmath@def{atan}{46}{2.63374} \pgfmath@def{atan}{47}{2.69092}
\pgfmath@def{atan}{48}{2.74808} \pgfmath@def{atan}{49}{2.80524}
\pgfmath@def{atan}{50}{2.86240} \pgfmath@def{atan}{51}{2.91955}
\pgfmath@def{atan}{52}{2.97669} \pgfmath@def{atan}{53}{3.03383}
\pgfmath@def{atan}{54}{3.09097} \pgfmath@def{atan}{55}{3.14809}
\pgfmath@def{atan}{56}{3.20521} \pgfmath@def{atan}{57}{3.26232}
\pgfmath@def{atan}{58}{3.31943} \pgfmath@def{atan}{59}{3.37653}
\pgfmath@def{atan}{60}{3.43363} \pgfmath@def{atan}{61}{3.49071}
\pgfmath@def{atan}{62}{3.54779} \pgfmath@def{atan}{63}{3.60487}
\pgfmath@def{atan}{64}{3.66193} \pgfmath@def{atan}{65}{3.71899}
\pgfmath@def{atan}{66}{3.77604} \pgfmath@def{atan}{67}{3.83308}
\pgfmath@def{atan}{68}{3.89012} \pgfmath@def{atan}{69}{3.94715}
\pgfmath@def{atan}{70}{4.00417} \pgfmath@def{atan}{71}{4.06118}
\pgfmath@def{atan}{72}{4.11819} \pgfmath@def{atan}{73}{4.17518}
\pgfmath@def{atan}{74}{4.23217} \pgfmath@def{atan}{75}{4.28915}
\pgfmath@def{atan}{76}{4.34612} \pgfmath@def{atan}{77}{4.40308}
\pgfmath@def{atan}{78}{4.46004} \pgfmath@def{atan}{79}{4.51698}
\pgfmath@def{atan}{80}{4.57392} \pgfmath@def{atan}{81}{4.63084}
\pgfmath@def{atan}{82}{4.68776} \pgfmath@def{atan}{83}{4.74467}
\pgfmath@def{atan}{84}{4.80157} \pgfmath@def{atan}{85}{4.85846}
\pgfmath@def{atan}{86}{4.91534} \pgfmath@def{atan}{87}{4.97221}
\pgfmath@def{atan}{88}{5.02907} \pgfmath@def{atan}{89}{5.08592}
\pgfmath@def{atan}{90}{5.14276} \pgfmath@def{atan}{91}{5.19959}
\pgfmath@def{atan}{92}{5.25641} \pgfmath@def{atan}{93}{5.31322}
\pgfmath@def{atan}{94}{5.37002} \pgfmath@def{atan}{95}{5.42681}
\pgfmath@def{atan}{96}{5.48359} \pgfmath@def{atan}{97}{5.54035}
\pgfmath@def{atan}{98}{5.59711} \pgfmath@def{atan}{99}{5.65385}
\pgfmath@def{atan}{100}{5.71059} \pgfmath@def{atan}{101}{5.76731}
\pgfmath@def{atan}{102}{5.82402} \pgfmath@def{atan}{103}{5.88072}
\pgfmath@def{atan}{104}{5.93741} \pgfmath@def{atan}{105}{5.99409}
\pgfmath@def{atan}{106}{6.05075} \pgfmath@def{atan}{107}{6.10741}
\pgfmath@def{atan}{108}{6.16405} \pgfmath@def{atan}{109}{6.22068}
\pgfmath@def{atan}{110}{6.27729} \pgfmath@def{atan}{111}{6.33390}
\pgfmath@def{atan}{112}{6.39049} \pgfmath@def{atan}{113}{6.44707}
\pgfmath@def{atan}{114}{6.50364} \pgfmath@def{atan}{115}{6.56019}
\pgfmath@def{atan}{116}{6.61673} \pgfmath@def{atan}{117}{6.67326}
\pgfmath@def{atan}{118}{6.72978} \pgfmath@def{atan}{119}{6.78628}
\pgfmath@def{atan}{120}{6.84277} \pgfmath@def{atan}{121}{6.89924}
\pgfmath@def{atan}{122}{6.95571} \pgfmath@def{atan}{123}{7.01216}
\pgfmath@def{atan}{124}{7.06859} \pgfmath@def{atan}{125}{7.12501}
\pgfmath@def{atan}{126}{7.18142} \pgfmath@def{atan}{127}{7.23781}
\pgfmath@def{atan}{128}{7.29419} \pgfmath@def{atan}{129}{7.35056}
\pgfmath@def{atan}{130}{7.40691} \pgfmath@def{atan}{131}{7.46324}
\pgfmath@def{atan}{132}{7.51957} \pgfmath@def{atan}{133}{7.57587}
\pgfmath@def{atan}{134}{7.63217} \pgfmath@def{atan}{135}{7.68844}
\pgfmath@def{atan}{136}{7.74471} \pgfmath@def{atan}{137}{7.80095}
\pgfmath@def{atan}{138}{7.85719} \pgfmath@def{atan}{139}{7.91340}
\pgfmath@def{atan}{140}{7.96961} \pgfmath@def{atan}{141}{8.02579}
\pgfmath@def{atan}{142}{8.08196} \pgfmath@def{atan}{143}{8.13812}
\pgfmath@def{atan}{144}{8.19426} \pgfmath@def{atan}{145}{8.25038}
\pgfmath@def{atan}{146}{8.30649} \pgfmath@def{atan}{147}{8.36258}
\pgfmath@def{atan}{148}{8.41866} \pgfmath@def{atan}{149}{8.47472}
\pgfmath@def{atan}{150}{8.53076} \pgfmath@def{atan}{151}{8.58679}
\pgfmath@def{atan}{152}{8.64280} \pgfmath@def{atan}{153}{8.69879}
\pgfmath@def{atan}{154}{8.75477} \pgfmath@def{atan}{155}{8.81073}
\pgfmath@def{atan}{156}{8.86667} \pgfmath@def{atan}{157}{8.92260}
\pgfmath@def{atan}{158}{8.97851} \pgfmath@def{atan}{159}{9.03440}
\pgfmath@def{atan}{160}{9.09027} \pgfmath@def{atan}{161}{9.14613}
\pgfmath@def{atan}{162}{9.20197} \pgfmath@def{atan}{163}{9.25779}
\pgfmath@def{atan}{164}{9.31359} \pgfmath@def{atan}{165}{9.36938}
\pgfmath@def{atan}{166}{9.42515} \pgfmath@def{atan}{167}{9.48090}
\pgfmath@def{atan}{168}{9.53663} \pgfmath@def{atan}{169}{9.59235}
\pgfmath@def{atan}{170}{9.64804} \pgfmath@def{atan}{171}{9.70372}
\pgfmath@def{atan}{172}{9.75938} \pgfmath@def{atan}{173}{9.81502}
\pgfmath@def{atan}{174}{9.87064} \pgfmath@def{atan}{175}{9.92624}
\pgfmath@def{atan}{176}{9.98182} \pgfmath@def{atan}{177}{10.03739}
\pgfmath@def{atan}{178}{10.09294} \pgfmath@def{atan}{179}{10.14846}
\pgfmath@def{atan}{180}{10.20397} \pgfmath@def{atan}{181}{10.25946}
\pgfmath@def{atan}{182}{10.31493} \pgfmath@def{atan}{183}{10.37037}
\pgfmath@def{atan}{184}{10.42580} \pgfmath@def{atan}{185}{10.48121}
\pgfmath@def{atan}{186}{10.53660} \pgfmath@def{atan}{187}{10.59197}
\pgfmath@def{atan}{188}{10.64732} \pgfmath@def{atan}{189}{10.70265}
\pgfmath@def{atan}{190}{10.75796} \pgfmath@def{atan}{191}{10.81325}
\pgfmath@def{atan}{192}{10.86852} \pgfmath@def{atan}{193}{10.92377}
\pgfmath@def{atan}{194}{10.97900} \pgfmath@def{atan}{195}{11.03420}
\pgfmath@def{atan}{196}{11.08939} \pgfmath@def{atan}{197}{11.14456}
\pgfmath@def{atan}{198}{11.19970} \pgfmath@def{atan}{199}{11.25483}
\pgfmath@def{atan}{200}{11.30993} \pgfmath@def{atan}{201}{11.36501}
\pgfmath@def{atan}{202}{11.42007} \pgfmath@def{atan}{203}{11.47511}
\pgfmath@def{atan}{204}{11.53013} \pgfmath@def{atan}{205}{11.58512}
\pgfmath@def{atan}{206}{11.64010} \pgfmath@def{atan}{207}{11.69505}
\pgfmath@def{atan}{208}{11.74998} \pgfmath@def{atan}{209}{11.80489}
\pgfmath@def{atan}{210}{11.85977} \pgfmath@def{atan}{211}{11.91464}
\pgfmath@def{atan}{212}{11.96948} \pgfmath@def{atan}{213}{12.02430}
\pgfmath@def{atan}{214}{12.07910} \pgfmath@def{atan}{215}{12.13388}
\pgfmath@def{atan}{216}{12.18863} \pgfmath@def{atan}{217}{12.24336}
\pgfmath@def{atan}{218}{12.29807} \pgfmath@def{atan}{219}{12.35275}
\pgfmath@def{atan}{220}{12.40741} \pgfmath@def{atan}{221}{12.46205}
\pgfmath@def{atan}{222}{12.51667} \pgfmath@def{atan}{223}{12.57126}
\pgfmath@def{atan}{224}{12.62583} \pgfmath@def{atan}{225}{12.68038}
\pgfmath@def{atan}{226}{12.73490} \pgfmath@def{atan}{227}{12.78940}
\pgfmath@def{atan}{228}{12.84388} \pgfmath@def{atan}{229}{12.89833}
\pgfmath@def{atan}{230}{12.95276} \pgfmath@def{atan}{231}{13.00717}
\pgfmath@def{atan}{232}{13.06155} \pgfmath@def{atan}{233}{13.11590}
\pgfmath@def{atan}{234}{13.17024} \pgfmath@def{atan}{235}{13.22455}
\pgfmath@def{atan}{236}{13.27883} \pgfmath@def{atan}{237}{13.33309}
\pgfmath@def{atan}{238}{13.38733} \pgfmath@def{atan}{239}{13.44154}
\pgfmath@def{atan}{240}{13.49573} \pgfmath@def{atan}{241}{13.54989}
\pgfmath@def{atan}{242}{13.60403} \pgfmath@def{atan}{243}{13.65814}
\pgfmath@def{atan}{244}{13.71223} \pgfmath@def{atan}{245}{13.76630}
\pgfmath@def{atan}{246}{13.82034} \pgfmath@def{atan}{247}{13.87435}
\pgfmath@def{atan}{248}{13.92834} \pgfmath@def{atan}{249}{13.98230}
\pgfmath@def{atan}{250}{14.03624} \pgfmath@def{atan}{251}{14.09015}
\pgfmath@def{atan}{252}{14.14404} \pgfmath@def{atan}{253}{14.19790}
\pgfmath@def{atan}{254}{14.25174} \pgfmath@def{atan}{255}{14.30555}
\pgfmath@def{atan}{256}{14.35933} \pgfmath@def{atan}{257}{14.41309}
\pgfmath@def{atan}{258}{14.46682} \pgfmath@def{atan}{259}{14.52053}
\pgfmath@def{atan}{260}{14.57421} \pgfmath@def{atan}{261}{14.62787}
\pgfmath@def{atan}{262}{14.68149} \pgfmath@def{atan}{263}{14.73510}
\pgfmath@def{atan}{264}{14.78867} \pgfmath@def{atan}{265}{14.84222}
\pgfmath@def{atan}{266}{14.89575} \pgfmath@def{atan}{267}{14.94924}
\pgfmath@def{atan}{268}{15.00271} \pgfmath@def{atan}{269}{15.05615}
\pgfmath@def{atan}{270}{15.10957} \pgfmath@def{atan}{271}{15.16296}
\pgfmath@def{atan}{272}{15.21632} \pgfmath@def{atan}{273}{15.26966}
\pgfmath@def{atan}{274}{15.32297} \pgfmath@def{atan}{275}{15.37625}
\pgfmath@def{atan}{276}{15.42950} \pgfmath@def{atan}{277}{15.48273}
\pgfmath@def{atan}{278}{15.53593} \pgfmath@def{atan}{279}{15.58910}
\pgfmath@def{atan}{280}{15.64224} \pgfmath@def{atan}{281}{15.69536}
\pgfmath@def{atan}{282}{15.74845} \pgfmath@def{atan}{283}{15.80151}
\pgfmath@def{atan}{284}{15.85454} \pgfmath@def{atan}{285}{15.90755}
\pgfmath@def{atan}{286}{15.96052} \pgfmath@def{atan}{287}{16.01347}
\pgfmath@def{atan}{288}{16.06640} \pgfmath@def{atan}{289}{16.11929}
\pgfmath@def{atan}{290}{16.17215} \pgfmath@def{atan}{291}{16.22499}
\pgfmath@def{atan}{292}{16.27780} \pgfmath@def{atan}{293}{16.33058}
\pgfmath@def{atan}{294}{16.38333} \pgfmath@def{atan}{295}{16.43605}
\pgfmath@def{atan}{296}{16.48875} \pgfmath@def{atan}{297}{16.54142}
\pgfmath@def{atan}{298}{16.59405} \pgfmath@def{atan}{299}{16.64666}
\pgfmath@def{atan}{300}{16.69924} \pgfmath@def{atan}{301}{16.75179}
\pgfmath@def{atan}{302}{16.80431} \pgfmath@def{atan}{303}{16.85680}
\pgfmath@def{atan}{304}{16.90927} \pgfmath@def{atan}{305}{16.96170}
\pgfmath@def{atan}{306}{17.01411} \pgfmath@def{atan}{307}{17.06648}
\pgfmath@def{atan}{308}{17.11883} \pgfmath@def{atan}{309}{17.17114}
\pgfmath@def{atan}{310}{17.22343} \pgfmath@def{atan}{311}{17.27569}
\pgfmath@def{atan}{312}{17.32792} \pgfmath@def{atan}{313}{17.38012}
\pgfmath@def{atan}{314}{17.43228} \pgfmath@def{atan}{315}{17.48442}
\pgfmath@def{atan}{316}{17.53653} \pgfmath@def{atan}{317}{17.58861}
\pgfmath@def{atan}{318}{17.64066} \pgfmath@def{atan}{319}{17.69268}
\pgfmath@def{atan}{320}{17.74467} \pgfmath@def{atan}{321}{17.79663}
\pgfmath@def{atan}{322}{17.84855} \pgfmath@def{atan}{323}{17.90045}
\pgfmath@def{atan}{324}{17.95232} \pgfmath@def{atan}{325}{18.00416}
\pgfmath@def{atan}{326}{18.05596} \pgfmath@def{atan}{327}{18.10774}
\pgfmath@def{atan}{328}{18.15949} \pgfmath@def{atan}{329}{18.21120}
\pgfmath@def{atan}{330}{18.26289} \pgfmath@def{atan}{331}{18.31454}
\pgfmath@def{atan}{332}{18.36616} \pgfmath@def{atan}{333}{18.41775}
\pgfmath@def{atan}{334}{18.46931} \pgfmath@def{atan}{335}{18.52084}
\pgfmath@def{atan}{336}{18.57234} \pgfmath@def{atan}{337}{18.62381}
\pgfmath@def{atan}{338}{18.67525} \pgfmath@def{atan}{339}{18.72665}
\pgfmath@def{atan}{340}{18.77803} \pgfmath@def{atan}{341}{18.82937}
\pgfmath@def{atan}{342}{18.88068} \pgfmath@def{atan}{343}{18.93196}
\pgfmath@def{atan}{344}{18.98321} \pgfmath@def{atan}{345}{19.03443}
\pgfmath@def{atan}{346}{19.08562} \pgfmath@def{atan}{347}{19.13677}
\pgfmath@def{atan}{348}{19.18789} \pgfmath@def{atan}{349}{19.23898}
\pgfmath@def{atan}{350}{19.29004} \pgfmath@def{atan}{351}{19.34107}
\pgfmath@def{atan}{352}{19.39206} \pgfmath@def{atan}{353}{19.44303}
\pgfmath@def{atan}{354}{19.49396} \pgfmath@def{atan}{355}{19.54486}
\pgfmath@def{atan}{356}{19.59572} \pgfmath@def{atan}{357}{19.64656}
\pgfmath@def{atan}{358}{19.69736} \pgfmath@def{atan}{359}{19.74813}
\pgfmath@def{atan}{360}{19.79887} \pgfmath@def{atan}{361}{19.84958}
\pgfmath@def{atan}{362}{19.90025} \pgfmath@def{atan}{363}{19.95089}
\pgfmath@def{atan}{364}{20.00150} \pgfmath@def{atan}{365}{20.05208}
\pgfmath@def{atan}{366}{20.10262} \pgfmath@def{atan}{367}{20.15313}
\pgfmath@def{atan}{368}{20.20361} \pgfmath@def{atan}{369}{20.25406}
\pgfmath@def{atan}{370}{20.30447} \pgfmath@def{atan}{371}{20.35485}
\pgfmath@def{atan}{372}{20.40520} \pgfmath@def{atan}{373}{20.45551}
\pgfmath@def{atan}{374}{20.50579} \pgfmath@def{atan}{375}{20.55604}
\pgfmath@def{atan}{376}{20.60626} \pgfmath@def{atan}{377}{20.65644}
\pgfmath@def{atan}{378}{20.70659} \pgfmath@def{atan}{379}{20.75670}
\pgfmath@def{atan}{380}{20.80679} \pgfmath@def{atan}{381}{20.85684}
\pgfmath@def{atan}{382}{20.90685} \pgfmath@def{atan}{383}{20.95684}
\pgfmath@def{atan}{384}{21.00678} \pgfmath@def{atan}{385}{21.05670}
\pgfmath@def{atan}{386}{21.10658} \pgfmath@def{atan}{387}{21.15643}
\pgfmath@def{atan}{388}{21.20625} \pgfmath@def{atan}{389}{21.25603}
\pgfmath@def{atan}{390}{21.30578} \pgfmath@def{atan}{391}{21.35549}
\pgfmath@def{atan}{392}{21.40517} \pgfmath@def{atan}{393}{21.45482}
\pgfmath@def{atan}{394}{21.50444} \pgfmath@def{atan}{395}{21.55402}
\pgfmath@def{atan}{396}{21.60356} \pgfmath@def{atan}{397}{21.65307}
\pgfmath@def{atan}{398}{21.70255} \pgfmath@def{atan}{399}{21.75200}
\pgfmath@def{atan}{400}{21.80140} \pgfmath@def{atan}{401}{21.85078}
\pgfmath@def{atan}{402}{21.90012} \pgfmath@def{atan}{403}{21.94943}
\pgfmath@def{atan}{404}{21.99870} \pgfmath@def{atan}{405}{22.04794}
\pgfmath@def{atan}{406}{22.09715} \pgfmath@def{atan}{407}{22.14632}
\pgfmath@def{atan}{408}{22.19546} \pgfmath@def{atan}{409}{22.24456}
\pgfmath@def{atan}{410}{22.29362} \pgfmath@def{atan}{411}{22.34266}
\pgfmath@def{atan}{412}{22.39166} \pgfmath@def{atan}{413}{22.44062}
\pgfmath@def{atan}{414}{22.48955} \pgfmath@def{atan}{415}{22.53845}
\pgfmath@def{atan}{416}{22.58731} \pgfmath@def{atan}{417}{22.63613}
\pgfmath@def{atan}{418}{22.68492} \pgfmath@def{atan}{419}{22.73368}
\pgfmath@def{atan}{420}{22.78240} \pgfmath@def{atan}{421}{22.83109}
\pgfmath@def{atan}{422}{22.87974} \pgfmath@def{atan}{423}{22.92836}
\pgfmath@def{atan}{424}{22.97694} \pgfmath@def{atan}{425}{23.02549}
\pgfmath@def{atan}{426}{23.07400} \pgfmath@def{atan}{427}{23.12248}
\pgfmath@def{atan}{428}{23.17092} \pgfmath@def{atan}{429}{23.21933}
\pgfmath@def{atan}{430}{23.26770} \pgfmath@def{atan}{431}{23.31604}
\pgfmath@def{atan}{432}{23.36434} \pgfmath@def{atan}{433}{23.41261}
\pgfmath@def{atan}{434}{23.46084} \pgfmath@def{atan}{435}{23.50904}
\pgfmath@def{atan}{436}{23.55720} \pgfmath@def{atan}{437}{23.60532}
\pgfmath@def{atan}{438}{23.65341} \pgfmath@def{atan}{439}{23.70147}
\pgfmath@def{atan}{440}{23.74949} \pgfmath@def{atan}{441}{23.79747}
\pgfmath@def{atan}{442}{23.84542} \pgfmath@def{atan}{443}{23.89334}
\pgfmath@def{atan}{444}{23.94122} \pgfmath@def{atan}{445}{23.98906}
\pgfmath@def{atan}{446}{24.03687} \pgfmath@def{atan}{447}{24.08464}
\pgfmath@def{atan}{448}{24.13238} \pgfmath@def{atan}{449}{24.18008}
\pgfmath@def{atan}{450}{24.22774} \pgfmath@def{atan}{451}{24.27537}
\pgfmath@def{atan}{452}{24.32296} \pgfmath@def{atan}{453}{24.37052}
\pgfmath@def{atan}{454}{24.41804} \pgfmath@def{atan}{455}{24.46553}
\pgfmath@def{atan}{456}{24.51298} \pgfmath@def{atan}{457}{24.56040}
\pgfmath@def{atan}{458}{24.60778} \pgfmath@def{atan}{459}{24.65512}
\pgfmath@def{atan}{460}{24.70243} \pgfmath@def{atan}{461}{24.74970}
\pgfmath@def{atan}{462}{24.79693} \pgfmath@def{atan}{463}{24.84413}
\pgfmath@def{atan}{464}{24.89130} \pgfmath@def{atan}{465}{24.93842}
\pgfmath@def{atan}{466}{24.98551} \pgfmath@def{atan}{467}{25.03257}
\pgfmath@def{atan}{468}{25.07959} \pgfmath@def{atan}{469}{25.12657}
\pgfmath@def{atan}{470}{25.17352} \pgfmath@def{atan}{471}{25.22043}
\pgfmath@def{atan}{472}{25.26731} \pgfmath@def{atan}{473}{25.31414}
\pgfmath@def{atan}{474}{25.36095} \pgfmath@def{atan}{475}{25.40771}
\pgfmath@def{atan}{476}{25.45444} \pgfmath@def{atan}{477}{25.50114}
\pgfmath@def{atan}{478}{25.54780} \pgfmath@def{atan}{479}{25.59442}
\pgfmath@def{atan}{480}{25.64100} \pgfmath@def{atan}{481}{25.68755}
\pgfmath@def{atan}{482}{25.73406} \pgfmath@def{atan}{483}{25.78054}
\pgfmath@def{atan}{484}{25.82698} \pgfmath@def{atan}{485}{25.87338}
\pgfmath@def{atan}{486}{25.91975} \pgfmath@def{atan}{487}{25.96608}
\pgfmath@def{atan}{488}{26.01237} \pgfmath@def{atan}{489}{26.05863}
\pgfmath@def{atan}{490}{26.10485} \pgfmath@def{atan}{491}{26.15103}
\pgfmath@def{atan}{492}{26.19718} \pgfmath@def{atan}{493}{26.24329}
\pgfmath@def{atan}{494}{26.28937} \pgfmath@def{atan}{495}{26.33541}
\pgfmath@def{atan}{496}{26.38141} \pgfmath@def{atan}{497}{26.42737}
\pgfmath@def{atan}{498}{26.47330} \pgfmath@def{atan}{499}{26.51919}
\pgfmath@def{atan}{500}{26.56505} \pgfmath@def{atan}{501}{26.61086}
\pgfmath@def{atan}{502}{26.65665} \pgfmath@def{atan}{503}{26.70239}
\pgfmath@def{atan}{504}{26.74810} \pgfmath@def{atan}{505}{26.79377}
\pgfmath@def{atan}{506}{26.83941} \pgfmath@def{atan}{507}{26.88500}
\pgfmath@def{atan}{508}{26.93057} \pgfmath@def{atan}{509}{26.97609}
\pgfmath@def{atan}{510}{27.02158} \pgfmath@def{atan}{511}{27.06703}
\pgfmath@def{atan}{512}{27.11244} \pgfmath@def{atan}{513}{27.15782}
\pgfmath@def{atan}{514}{27.20316} \pgfmath@def{atan}{515}{27.24846}
\pgfmath@def{atan}{516}{27.29373} \pgfmath@def{atan}{517}{27.33896}
\pgfmath@def{atan}{518}{27.38415} \pgfmath@def{atan}{519}{27.42931}
\pgfmath@def{atan}{520}{27.47443} \pgfmath@def{atan}{521}{27.51951}
\pgfmath@def{atan}{522}{27.56455} \pgfmath@def{atan}{523}{27.60956}
\pgfmath@def{atan}{524}{27.65453} \pgfmath@def{atan}{525}{27.69947}
\pgfmath@def{atan}{526}{27.74437} \pgfmath@def{atan}{527}{27.78923}
\pgfmath@def{atan}{528}{27.83405} \pgfmath@def{atan}{529}{27.87884}
\pgfmath@def{atan}{530}{27.92359} \pgfmath@def{atan}{531}{27.96830}
\pgfmath@def{atan}{532}{28.01297} \pgfmath@def{atan}{533}{28.05761}
\pgfmath@def{atan}{534}{28.10221} \pgfmath@def{atan}{535}{28.14678}
\pgfmath@def{atan}{536}{28.19130} \pgfmath@def{atan}{537}{28.23579}
\pgfmath@def{atan}{538}{28.28025} \pgfmath@def{atan}{539}{28.32466}
\pgfmath@def{atan}{540}{28.36904} \pgfmath@def{atan}{541}{28.41338}
\pgfmath@def{atan}{542}{28.45769} \pgfmath@def{atan}{543}{28.50196}
\pgfmath@def{atan}{544}{28.54619} \pgfmath@def{atan}{545}{28.59038}
\pgfmath@def{atan}{546}{28.63454} \pgfmath@def{atan}{547}{28.67865}
\pgfmath@def{atan}{548}{28.72274} \pgfmath@def{atan}{549}{28.76678}
\pgfmath@def{atan}{550}{28.81079} \pgfmath@def{atan}{551}{28.85476}
\pgfmath@def{atan}{552}{28.89869} \pgfmath@def{atan}{553}{28.94259}
\pgfmath@def{atan}{554}{28.98645} \pgfmath@def{atan}{555}{29.03027}
\pgfmath@def{atan}{556}{29.07405} \pgfmath@def{atan}{557}{29.11780}
\pgfmath@def{atan}{558}{29.16151} \pgfmath@def{atan}{559}{29.20519}
\pgfmath@def{atan}{560}{29.24882} \pgfmath@def{atan}{561}{29.29242}
\pgfmath@def{atan}{562}{29.33598} \pgfmath@def{atan}{563}{29.37951}
\pgfmath@def{atan}{564}{29.42299} \pgfmath@def{atan}{565}{29.46644}
\pgfmath@def{atan}{566}{29.50986} \pgfmath@def{atan}{567}{29.55323}
\pgfmath@def{atan}{568}{29.59657} \pgfmath@def{atan}{569}{29.63987}
\pgfmath@def{atan}{570}{29.68314} \pgfmath@def{atan}{571}{29.72636}
\pgfmath@def{atan}{572}{29.76955} \pgfmath@def{atan}{573}{29.81270}
\pgfmath@def{atan}{574}{29.85582} \pgfmath@def{atan}{575}{29.89890}
\pgfmath@def{atan}{576}{29.94194} \pgfmath@def{atan}{577}{29.98494}
\pgfmath@def{atan}{578}{30.02791} \pgfmath@def{atan}{579}{30.07084}
\pgfmath@def{atan}{580}{30.11373} \pgfmath@def{atan}{581}{30.15658}
\pgfmath@def{atan}{582}{30.19940} \pgfmath@def{atan}{583}{30.24218}
\pgfmath@def{atan}{584}{30.28492} \pgfmath@def{atan}{585}{30.32763}
\pgfmath@def{atan}{586}{30.37030} \pgfmath@def{atan}{587}{30.41293}
\pgfmath@def{atan}{588}{30.45552} \pgfmath@def{atan}{589}{30.49808}
\pgfmath@def{atan}{590}{30.54060} \pgfmath@def{atan}{591}{30.58308}
\pgfmath@def{atan}{592}{30.62553} \pgfmath@def{atan}{593}{30.66794}
\pgfmath@def{atan}{594}{30.71031} \pgfmath@def{atan}{595}{30.75264}
\pgfmath@def{atan}{596}{30.79494} \pgfmath@def{atan}{597}{30.83720}
\pgfmath@def{atan}{598}{30.87942} \pgfmath@def{atan}{599}{30.92160}
\pgfmath@def{atan}{600}{30.96375} \pgfmath@def{atan}{601}{31.00586}
\pgfmath@def{atan}{602}{31.04794} \pgfmath@def{atan}{603}{31.08997}
\pgfmath@def{atan}{604}{31.13197} \pgfmath@def{atan}{605}{31.17393}
\pgfmath@def{atan}{606}{31.21586} \pgfmath@def{atan}{607}{31.25775}
\pgfmath@def{atan}{608}{31.29960} \pgfmath@def{atan}{609}{31.34141}
\pgfmath@def{atan}{610}{31.38319} \pgfmath@def{atan}{611}{31.42493}
\pgfmath@def{atan}{612}{31.46663} \pgfmath@def{atan}{613}{31.50829}
\pgfmath@def{atan}{614}{31.54992} \pgfmath@def{atan}{615}{31.59151}
\pgfmath@def{atan}{616}{31.63306} \pgfmath@def{atan}{617}{31.67458}
\pgfmath@def{atan}{618}{31.71606} \pgfmath@def{atan}{619}{31.75750}
\pgfmath@def{atan}{620}{31.79891} \pgfmath@def{atan}{621}{31.84028}
\pgfmath@def{atan}{622}{31.88161} \pgfmath@def{atan}{623}{31.92290}
\pgfmath@def{atan}{624}{31.96416} \pgfmath@def{atan}{625}{32.00538}
\pgfmath@def{atan}{626}{32.04656} \pgfmath@def{atan}{627}{32.08771}
\pgfmath@def{atan}{628}{32.12882} \pgfmath@def{atan}{629}{32.16989}
\pgfmath@def{atan}{630}{32.21092} \pgfmath@def{atan}{631}{32.25192}
\pgfmath@def{atan}{632}{32.29288} \pgfmath@def{atan}{633}{32.33381}
\pgfmath@def{atan}{634}{32.37469} \pgfmath@def{atan}{635}{32.41554}
\pgfmath@def{atan}{636}{32.45636} \pgfmath@def{atan}{637}{32.49713}
\pgfmath@def{atan}{638}{32.53787} \pgfmath@def{atan}{639}{32.57857}
\pgfmath@def{atan}{640}{32.61924} \pgfmath@def{atan}{641}{32.65987}
\pgfmath@def{atan}{642}{32.70046} \pgfmath@def{atan}{643}{32.74101}
\pgfmath@def{atan}{644}{32.78153} \pgfmath@def{atan}{645}{32.82201}
\pgfmath@def{atan}{646}{32.86246} \pgfmath@def{atan}{647}{32.90286}
\pgfmath@def{atan}{648}{32.94323} \pgfmath@def{atan}{649}{32.98357}
\pgfmath@def{atan}{650}{33.02386} \pgfmath@def{atan}{651}{33.06412}
\pgfmath@def{atan}{652}{33.10435} \pgfmath@def{atan}{653}{33.14453}
\pgfmath@def{atan}{654}{33.18468} \pgfmath@def{atan}{655}{33.22479}
\pgfmath@def{atan}{656}{33.26487} \pgfmath@def{atan}{657}{33.30491}
\pgfmath@def{atan}{658}{33.34491} \pgfmath@def{atan}{659}{33.38488}
\pgfmath@def{atan}{660}{33.42481} \pgfmath@def{atan}{661}{33.46470}
\pgfmath@def{atan}{662}{33.50455} \pgfmath@def{atan}{663}{33.54437}
\pgfmath@def{atan}{664}{33.58416} \pgfmath@def{atan}{665}{33.62390}
\pgfmath@def{atan}{666}{33.66361} \pgfmath@def{atan}{667}{33.70328}
\pgfmath@def{atan}{668}{33.74292} \pgfmath@def{atan}{669}{33.78252}
\pgfmath@def{atan}{670}{33.82208} \pgfmath@def{atan}{671}{33.86161}
\pgfmath@def{atan}{672}{33.90110} \pgfmath@def{atan}{673}{33.94055}
\pgfmath@def{atan}{674}{33.97997} \pgfmath@def{atan}{675}{34.01935}
\pgfmath@def{atan}{676}{34.05869} \pgfmath@def{atan}{677}{34.09800}
\pgfmath@def{atan}{678}{34.13727} \pgfmath@def{atan}{679}{34.17650}
\pgfmath@def{atan}{680}{34.21570} \pgfmath@def{atan}{681}{34.25486}
\pgfmath@def{atan}{682}{34.29398} \pgfmath@def{atan}{683}{34.33307}
\pgfmath@def{atan}{684}{34.37212} \pgfmath@def{atan}{685}{34.41114}
\pgfmath@def{atan}{686}{34.45012} \pgfmath@def{atan}{687}{34.48906}
\pgfmath@def{atan}{688}{34.52797} \pgfmath@def{atan}{689}{34.56684}
\pgfmath@def{atan}{690}{34.60567} \pgfmath@def{atan}{691}{34.64447}
\pgfmath@def{atan}{692}{34.68323} \pgfmath@def{atan}{693}{34.72195}
\pgfmath@def{atan}{694}{34.76064} \pgfmath@def{atan}{695}{34.79930}
\pgfmath@def{atan}{696}{34.83791} \pgfmath@def{atan}{697}{34.87649}
\pgfmath@def{atan}{698}{34.91504} \pgfmath@def{atan}{699}{34.95354}
\pgfmath@def{atan}{700}{34.99202} \pgfmath@def{atan}{701}{35.03045}
\pgfmath@def{atan}{702}{35.06885} \pgfmath@def{atan}{703}{35.10721}
\pgfmath@def{atan}{704}{35.14554} \pgfmath@def{atan}{705}{35.18383}
\pgfmath@def{atan}{706}{35.22209} \pgfmath@def{atan}{707}{35.26031}
\pgfmath@def{atan}{708}{35.29849} \pgfmath@def{atan}{709}{35.33664}
\pgfmath@def{atan}{710}{35.37475} \pgfmath@def{atan}{711}{35.41282}
\pgfmath@def{atan}{712}{35.45086} \pgfmath@def{atan}{713}{35.48886}
\pgfmath@def{atan}{714}{35.52683} \pgfmath@def{atan}{715}{35.56476}
\pgfmath@def{atan}{716}{35.60266} \pgfmath@def{atan}{717}{35.64052}
\pgfmath@def{atan}{718}{35.67834} \pgfmath@def{atan}{719}{35.71613}
\pgfmath@def{atan}{720}{35.75388} \pgfmath@def{atan}{721}{35.79160}
\pgfmath@def{atan}{722}{35.82928} \pgfmath@def{atan}{723}{35.86692}
\pgfmath@def{atan}{724}{35.90453} \pgfmath@def{atan}{725}{35.94211}
\pgfmath@def{atan}{726}{35.97965} \pgfmath@def{atan}{727}{36.01715}
\pgfmath@def{atan}{728}{36.05461} \pgfmath@def{atan}{729}{36.09204}
\pgfmath@def{atan}{730}{36.12944} \pgfmath@def{atan}{731}{36.16680}
\pgfmath@def{atan}{732}{36.20412} \pgfmath@def{atan}{733}{36.24141}
\pgfmath@def{atan}{734}{36.27866} \pgfmath@def{atan}{735}{36.31588}
\pgfmath@def{atan}{736}{36.35306} \pgfmath@def{atan}{737}{36.39021}
\pgfmath@def{atan}{738}{36.42732} \pgfmath@def{atan}{739}{36.46440}
\pgfmath@def{atan}{740}{36.50144} \pgfmath@def{atan}{741}{36.53844}
\pgfmath@def{atan}{742}{36.57541} \pgfmath@def{atan}{743}{36.61234}
\pgfmath@def{atan}{744}{36.64924} \pgfmath@def{atan}{745}{36.68611}
\pgfmath@def{atan}{746}{36.72293} \pgfmath@def{atan}{747}{36.75973}
\pgfmath@def{atan}{748}{36.79648} \pgfmath@def{atan}{749}{36.83321}
\pgfmath@def{atan}{750}{36.86989} \pgfmath@def{atan}{751}{36.90654}
\pgfmath@def{atan}{752}{36.94316} \pgfmath@def{atan}{753}{36.97974}
\pgfmath@def{atan}{754}{37.01629} \pgfmath@def{atan}{755}{37.05280}
\pgfmath@def{atan}{756}{37.08928} \pgfmath@def{atan}{757}{37.12572}
\pgfmath@def{atan}{758}{37.16212} \pgfmath@def{atan}{759}{37.19849}
\pgfmath@def{atan}{760}{37.23483} \pgfmath@def{atan}{761}{37.27113}
\pgfmath@def{atan}{762}{37.30740} \pgfmath@def{atan}{763}{37.34363}
\pgfmath@def{atan}{764}{37.37982} \pgfmath@def{atan}{765}{37.41598}
\pgfmath@def{atan}{766}{37.45211} \pgfmath@def{atan}{767}{37.48820}
\pgfmath@def{atan}{768}{37.52426} \pgfmath@def{atan}{769}{37.56028}
\pgfmath@def{atan}{770}{37.59627} \pgfmath@def{atan}{771}{37.63222}
\pgfmath@def{atan}{772}{37.66814} \pgfmath@def{atan}{773}{37.70402}
\pgfmath@def{atan}{774}{37.73987} \pgfmath@def{atan}{775}{37.77568}
\pgfmath@def{atan}{776}{37.81146} \pgfmath@def{atan}{777}{37.84720}
\pgfmath@def{atan}{778}{37.88291} \pgfmath@def{atan}{779}{37.91859}
\pgfmath@def{atan}{780}{37.95423} \pgfmath@def{atan}{781}{37.98983}
\pgfmath@def{atan}{782}{38.02540} \pgfmath@def{atan}{783}{38.06094}
\pgfmath@def{atan}{784}{38.09644} \pgfmath@def{atan}{785}{38.13191}
\pgfmath@def{atan}{786}{38.16734} \pgfmath@def{atan}{787}{38.20274}
\pgfmath@def{atan}{788}{38.23811} \pgfmath@def{atan}{789}{38.27344}
\pgfmath@def{atan}{790}{38.30873} \pgfmath@def{atan}{791}{38.34399}
\pgfmath@def{atan}{792}{38.37922} \pgfmath@def{atan}{793}{38.41441}
\pgfmath@def{atan}{794}{38.44957} \pgfmath@def{atan}{795}{38.48469}
\pgfmath@def{atan}{796}{38.51979} \pgfmath@def{atan}{797}{38.55484}
\pgfmath@def{atan}{798}{38.58986} \pgfmath@def{atan}{799}{38.62485}
\pgfmath@def{atan}{800}{38.65980} \pgfmath@def{atan}{801}{38.69472}
\pgfmath@def{atan}{802}{38.72961} \pgfmath@def{atan}{803}{38.76446}
\pgfmath@def{atan}{804}{38.79928} \pgfmath@def{atan}{805}{38.83406}
\pgfmath@def{atan}{806}{38.86881} \pgfmath@def{atan}{807}{38.90353}
\pgfmath@def{atan}{808}{38.93821} \pgfmath@def{atan}{809}{38.97285}
\pgfmath@def{atan}{810}{39.00747} \pgfmath@def{atan}{811}{39.04205}
\pgfmath@def{atan}{812}{39.07659} \pgfmath@def{atan}{813}{39.11111}
\pgfmath@def{atan}{814}{39.14558} \pgfmath@def{atan}{815}{39.18003}
\pgfmath@def{atan}{816}{39.21444} \pgfmath@def{atan}{817}{39.24882}
\pgfmath@def{atan}{818}{39.28316} \pgfmath@def{atan}{819}{39.31747}
\pgfmath@def{atan}{820}{39.35175} \pgfmath@def{atan}{821}{39.38599}
\pgfmath@def{atan}{822}{39.42020} \pgfmath@def{atan}{823}{39.45438}
\pgfmath@def{atan}{824}{39.48852} \pgfmath@def{atan}{825}{39.52263}
\pgfmath@def{atan}{826}{39.55670} \pgfmath@def{atan}{827}{39.59074}
\pgfmath@def{atan}{828}{39.62475} \pgfmath@def{atan}{829}{39.65873}
\pgfmath@def{atan}{830}{39.69267} \pgfmath@def{atan}{831}{39.72658}
\pgfmath@def{atan}{832}{39.76045} \pgfmath@def{atan}{833}{39.79429}
\pgfmath@def{atan}{834}{39.82810} \pgfmath@def{atan}{835}{39.86188}
\pgfmath@def{atan}{836}{39.89562} \pgfmath@def{atan}{837}{39.92933}
\pgfmath@def{atan}{838}{39.96300} \pgfmath@def{atan}{839}{39.99665}
\pgfmath@def{atan}{840}{40.03025} \pgfmath@def{atan}{841}{40.06383}
\pgfmath@def{atan}{842}{40.09737} \pgfmath@def{atan}{843}{40.13088}
\pgfmath@def{atan}{844}{40.16436} \pgfmath@def{atan}{845}{40.19781}
\pgfmath@def{atan}{846}{40.23122} \pgfmath@def{atan}{847}{40.26459}
\pgfmath@def{atan}{848}{40.29794} \pgfmath@def{atan}{849}{40.33125}
\pgfmath@def{atan}{850}{40.36453} \pgfmath@def{atan}{851}{40.39778}
\pgfmath@def{atan}{852}{40.43099} \pgfmath@def{atan}{853}{40.46417}
\pgfmath@def{atan}{854}{40.49732} \pgfmath@def{atan}{855}{40.53044}
\pgfmath@def{atan}{856}{40.56352} \pgfmath@def{atan}{857}{40.59657}
\pgfmath@def{atan}{858}{40.62959} \pgfmath@def{atan}{859}{40.66257}
\pgfmath@def{atan}{860}{40.69553} \pgfmath@def{atan}{861}{40.72845}
\pgfmath@def{atan}{862}{40.76133} \pgfmath@def{atan}{863}{40.79419}
\pgfmath@def{atan}{864}{40.82701} \pgfmath@def{atan}{865}{40.85980}
\pgfmath@def{atan}{866}{40.89256} \pgfmath@def{atan}{867}{40.92528}
\pgfmath@def{atan}{868}{40.95798} \pgfmath@def{atan}{869}{40.99064}
\pgfmath@def{atan}{870}{41.02326} \pgfmath@def{atan}{871}{41.05586}
\pgfmath@def{atan}{872}{41.08842} \pgfmath@def{atan}{873}{41.12095}
\pgfmath@def{atan}{874}{41.15345} \pgfmath@def{atan}{875}{41.18592}
\pgfmath@def{atan}{876}{41.21836} \pgfmath@def{atan}{877}{41.25076}
\pgfmath@def{atan}{878}{41.28313} \pgfmath@def{atan}{879}{41.31547}
\pgfmath@def{atan}{880}{41.34777} \pgfmath@def{atan}{881}{41.38005}
\pgfmath@def{atan}{882}{41.41229} \pgfmath@def{atan}{883}{41.44450}
\pgfmath@def{atan}{884}{41.47668} \pgfmath@def{atan}{885}{41.50882}
\pgfmath@def{atan}{886}{41.54094} \pgfmath@def{atan}{887}{41.57302}
\pgfmath@def{atan}{888}{41.60507} \pgfmath@def{atan}{889}{41.63709}
\pgfmath@def{atan}{890}{41.66908} \pgfmath@def{atan}{891}{41.70103}
\pgfmath@def{atan}{892}{41.73296} \pgfmath@def{atan}{893}{41.76485}
\pgfmath@def{atan}{894}{41.79671} \pgfmath@def{atan}{895}{41.82854}
\pgfmath@def{atan}{896}{41.86034} \pgfmath@def{atan}{897}{41.89210}
\pgfmath@def{atan}{898}{41.92383} \pgfmath@def{atan}{899}{41.95554}
\pgfmath@def{atan}{900}{41.98721} \pgfmath@def{atan}{901}{42.01885}
\pgfmath@def{atan}{902}{42.05046} \pgfmath@def{atan}{903}{42.08203}
\pgfmath@def{atan}{904}{42.11358} \pgfmath@def{atan}{905}{42.14509}
\pgfmath@def{atan}{906}{42.17657} \pgfmath@def{atan}{907}{42.20802}
\pgfmath@def{atan}{908}{42.23944} \pgfmath@def{atan}{909}{42.27083}
\pgfmath@def{atan}{910}{42.30219} \pgfmath@def{atan}{911}{42.33352}
\pgfmath@def{atan}{912}{42.36481} \pgfmath@def{atan}{913}{42.39607}
\pgfmath@def{atan}{914}{42.42731} \pgfmath@def{atan}{915}{42.45851}
\pgfmath@def{atan}{916}{42.48968} \pgfmath@def{atan}{917}{42.52082}
\pgfmath@def{atan}{918}{42.55193} \pgfmath@def{atan}{919}{42.58300}
\pgfmath@def{atan}{920}{42.61405} \pgfmath@def{atan}{921}{42.64507}
\pgfmath@def{atan}{922}{42.67605} \pgfmath@def{atan}{923}{42.70701}
\pgfmath@def{atan}{924}{42.73793} \pgfmath@def{atan}{925}{42.76882}
\pgfmath@def{atan}{926}{42.79968} \pgfmath@def{atan}{927}{42.83051}
\pgfmath@def{atan}{928}{42.86131} \pgfmath@def{atan}{929}{42.89208}
\pgfmath@def{atan}{930}{42.92282} \pgfmath@def{atan}{931}{42.95353}
\pgfmath@def{atan}{932}{42.98421} \pgfmath@def{atan}{933}{43.01485}
\pgfmath@def{atan}{934}{43.04547} \pgfmath@def{atan}{935}{43.07605}
\pgfmath@def{atan}{936}{43.10661} \pgfmath@def{atan}{937}{43.13713}
\pgfmath@def{atan}{938}{43.16763} \pgfmath@def{atan}{939}{43.19809}
\pgfmath@def{atan}{940}{43.22853} \pgfmath@def{atan}{941}{43.25893}
\pgfmath@def{atan}{942}{43.28930} \pgfmath@def{atan}{943}{43.31964}
\pgfmath@def{atan}{944}{43.34996} \pgfmath@def{atan}{945}{43.38024}
\pgfmath@def{atan}{946}{43.41049} \pgfmath@def{atan}{947}{43.44071}
\pgfmath@def{atan}{948}{43.47090} \pgfmath@def{atan}{949}{43.50106}
\pgfmath@def{atan}{950}{43.53119} \pgfmath@def{atan}{951}{43.56130}
\pgfmath@def{atan}{952}{43.59137} \pgfmath@def{atan}{953}{43.62141}
\pgfmath@def{atan}{954}{43.65142} \pgfmath@def{atan}{955}{43.68140}
\pgfmath@def{atan}{956}{43.71135} \pgfmath@def{atan}{957}{43.74127}
\pgfmath@def{atan}{958}{43.77116} \pgfmath@def{atan}{959}{43.80102}
\pgfmath@def{atan}{960}{43.83086} \pgfmath@def{atan}{961}{43.86066}
\pgfmath@def{atan}{962}{43.89043} \pgfmath@def{atan}{963}{43.92017}
\pgfmath@def{atan}{964}{43.94988} \pgfmath@def{atan}{965}{43.97957}
\pgfmath@def{atan}{966}{44.00922} \pgfmath@def{atan}{967}{44.03884}
\pgfmath@def{atan}{968}{44.06844} \pgfmath@def{atan}{969}{44.09800}
\pgfmath@def{atan}{970}{44.12754} \pgfmath@def{atan}{971}{44.15704}
\pgfmath@def{atan}{972}{44.18652} \pgfmath@def{atan}{973}{44.21597}
\pgfmath@def{atan}{974}{44.24538} \pgfmath@def{atan}{975}{44.27477}
\pgfmath@def{atan}{976}{44.30413} \pgfmath@def{atan}{977}{44.33346}
\pgfmath@def{atan}{978}{44.36276} \pgfmath@def{atan}{979}{44.39203}
\pgfmath@def{atan}{980}{44.42127} \pgfmath@def{atan}{981}{44.45048}
\pgfmath@def{atan}{982}{44.47966} \pgfmath@def{atan}{983}{44.50882}
\pgfmath@def{atan}{984}{44.53794} \pgfmath@def{atan}{985}{44.56704}
\pgfmath@def{atan}{986}{44.59610} \pgfmath@def{atan}{987}{44.62514}
\pgfmath@def{atan}{988}{44.65415} \pgfmath@def{atan}{989}{44.68313}
\pgfmath@def{atan}{990}{44.71208} \pgfmath@def{atan}{991}{44.74100}
\pgfmath@def{atan}{992}{44.76989} \pgfmath@def{atan}{993}{44.79876}
\pgfmath@def{atan}{994}{44.82759} \pgfmath@def{atan}{995}{44.85640}
\pgfmath@def{atan}{996}{44.88517} \pgfmath@def{atan}{997}{44.91392}
\pgfmath@def{atan}{998}{44.94264} \pgfmath@def{atan}{999}{44.97133}
\pgfmath@def{atan}{1000}{45.00000}
\pgfmath@def{acos}{0}{90.00000} \pgfmath@def{acos}{1}{89.94270}
\pgfmath@def{acos}{2}{89.88540} \pgfmath@def{acos}{3}{89.82811}
\pgfmath@def{acos}{4}{89.77081} \pgfmath@def{acos}{5}{89.71352}
\pgfmath@def{acos}{6}{89.65622} \pgfmath@def{acos}{7}{89.59892}
\pgfmath@def{acos}{8}{89.54162} \pgfmath@def{acos}{9}{89.48433}
\pgfmath@def{acos}{10}{89.42703} \pgfmath@def{acos}{11}{89.36973}
\pgfmath@def{acos}{12}{89.31243} \pgfmath@def{acos}{13}{89.25513}
\pgfmath@def{acos}{14}{89.19783} \pgfmath@def{acos}{15}{89.14053}
\pgfmath@def{acos}{16}{89.08322} \pgfmath@def{acos}{17}{89.02592}
\pgfmath@def{acos}{18}{88.96862} \pgfmath@def{acos}{19}{88.91131}
\pgfmath@def{acos}{20}{88.85400} \pgfmath@def{acos}{21}{88.79670}
\pgfmath@def{acos}{22}{88.73939} \pgfmath@def{acos}{23}{88.68208}
\pgfmath@def{acos}{24}{88.62476} \pgfmath@def{acos}{25}{88.56745}
\pgfmath@def{acos}{26}{88.51014} \pgfmath@def{acos}{27}{88.45282}
\pgfmath@def{acos}{28}{88.39550} \pgfmath@def{acos}{29}{88.33818}
\pgfmath@def{acos}{30}{88.28086} \pgfmath@def{acos}{31}{88.22354}
\pgfmath@def{acos}{32}{88.16622} \pgfmath@def{acos}{33}{88.10889}
\pgfmath@def{acos}{34}{88.05156} \pgfmath@def{acos}{35}{87.99423}
\pgfmath@def{acos}{36}{87.93690} \pgfmath@def{acos}{37}{87.87957}
\pgfmath@def{acos}{38}{87.82223} \pgfmath@def{acos}{39}{87.76489}
\pgfmath@def{acos}{40}{87.70755} \pgfmath@def{acos}{41}{87.65021}
\pgfmath@def{acos}{42}{87.59286} \pgfmath@def{acos}{43}{87.53552}
\pgfmath@def{acos}{44}{87.47817} \pgfmath@def{acos}{45}{87.42081}
\pgfmath@def{acos}{46}{87.36346} \pgfmath@def{acos}{47}{87.30610}
\pgfmath@def{acos}{48}{87.24874} \pgfmath@def{acos}{49}{87.19138}
\pgfmath@def{acos}{50}{87.13401} \pgfmath@def{acos}{51}{87.07664}
\pgfmath@def{acos}{52}{87.01927} \pgfmath@def{acos}{53}{86.96190}
\pgfmath@def{acos}{54}{86.90452} \pgfmath@def{acos}{55}{86.84714}
\pgfmath@def{acos}{56}{86.78975} \pgfmath@def{acos}{57}{86.73237}
\pgfmath@def{acos}{58}{86.67497} \pgfmath@def{acos}{59}{86.61758}
\pgfmath@def{acos}{60}{86.56018} \pgfmath@def{acos}{61}{86.50278}
\pgfmath@def{acos}{62}{86.44538} \pgfmath@def{acos}{63}{86.38797}
\pgfmath@def{acos}{64}{86.33056} \pgfmath@def{acos}{65}{86.27314}
\pgfmath@def{acos}{66}{86.21572} \pgfmath@def{acos}{67}{86.15830}
\pgfmath@def{acos}{68}{86.10087} \pgfmath@def{acos}{69}{86.04344}
\pgfmath@def{acos}{70}{85.98601} \pgfmath@def{acos}{71}{85.92857}
\pgfmath@def{acos}{72}{85.87113} \pgfmath@def{acos}{73}{85.81368}
\pgfmath@def{acos}{74}{85.75623} \pgfmath@def{acos}{75}{85.69877}
\pgfmath@def{acos}{76}{85.64131} \pgfmath@def{acos}{77}{85.58385}
\pgfmath@def{acos}{78}{85.52638} \pgfmath@def{acos}{79}{85.46891}
\pgfmath@def{acos}{80}{85.41143} \pgfmath@def{acos}{81}{85.35395}
\pgfmath@def{acos}{82}{85.29646} \pgfmath@def{acos}{83}{85.23897}
\pgfmath@def{acos}{84}{85.18147} \pgfmath@def{acos}{85}{85.12397}
\pgfmath@def{acos}{86}{85.06646} \pgfmath@def{acos}{87}{85.00895}
\pgfmath@def{acos}{88}{84.95144} \pgfmath@def{acos}{89}{84.89392}
\pgfmath@def{acos}{90}{84.83639} \pgfmath@def{acos}{91}{84.77886}
\pgfmath@def{acos}{92}{84.72132} \pgfmath@def{acos}{93}{84.66378}
\pgfmath@def{acos}{94}{84.60623} \pgfmath@def{acos}{95}{84.54868}
\pgfmath@def{acos}{96}{84.49112} \pgfmath@def{acos}{97}{84.43355}
\pgfmath@def{acos}{98}{84.37598} \pgfmath@def{acos}{99}{84.31841}
\pgfmath@def{acos}{100}{84.26083} \pgfmath@def{acos}{101}{84.20324}
\pgfmath@def{acos}{102}{84.14564} \pgfmath@def{acos}{103}{84.08805}
\pgfmath@def{acos}{104}{84.03044} \pgfmath@def{acos}{105}{83.97283}
\pgfmath@def{acos}{106}{83.91521} \pgfmath@def{acos}{107}{83.85759}
\pgfmath@def{acos}{108}{83.79996} \pgfmath@def{acos}{109}{83.74232}
\pgfmath@def{acos}{110}{83.68468} \pgfmath@def{acos}{111}{83.62703}
\pgfmath@def{acos}{112}{83.56938} \pgfmath@def{acos}{113}{83.51171}
\pgfmath@def{acos}{114}{83.45405} \pgfmath@def{acos}{115}{83.39637}
\pgfmath@def{acos}{116}{83.33869} \pgfmath@def{acos}{117}{83.28100}
\pgfmath@def{acos}{118}{83.22330} \pgfmath@def{acos}{119}{83.16560}
\pgfmath@def{acos}{120}{83.10789} \pgfmath@def{acos}{121}{83.05018}
\pgfmath@def{acos}{122}{82.99245} \pgfmath@def{acos}{123}{82.93472}
\pgfmath@def{acos}{124}{82.87698} \pgfmath@def{acos}{125}{82.81924}
\pgfmath@def{acos}{126}{82.76149} \pgfmath@def{acos}{127}{82.70373}
\pgfmath@def{acos}{128}{82.64596} \pgfmath@def{acos}{129}{82.58819}
\pgfmath@def{acos}{130}{82.53040} \pgfmath@def{acos}{131}{82.47261}
\pgfmath@def{acos}{132}{82.41482} \pgfmath@def{acos}{133}{82.35701}
\pgfmath@def{acos}{134}{82.29920} \pgfmath@def{acos}{135}{82.24138}
\pgfmath@def{acos}{136}{82.18355} \pgfmath@def{acos}{137}{82.12571}
\pgfmath@def{acos}{138}{82.06786} \pgfmath@def{acos}{139}{82.01001}
\pgfmath@def{acos}{140}{81.95215} \pgfmath@def{acos}{141}{81.89428}
\pgfmath@def{acos}{142}{81.83640} \pgfmath@def{acos}{143}{81.77851}
\pgfmath@def{acos}{144}{81.72062} \pgfmath@def{acos}{145}{81.66272}
\pgfmath@def{acos}{146}{81.60480} \pgfmath@def{acos}{147}{81.54688}
\pgfmath@def{acos}{148}{81.48895} \pgfmath@def{acos}{149}{81.43102}
\pgfmath@def{acos}{150}{81.37307} \pgfmath@def{acos}{151}{81.31511}
\pgfmath@def{acos}{152}{81.25715} \pgfmath@def{acos}{153}{81.19917}
\pgfmath@def{acos}{154}{81.14119} \pgfmath@def{acos}{155}{81.08320}
\pgfmath@def{acos}{156}{81.02520} \pgfmath@def{acos}{157}{80.96719}
\pgfmath@def{acos}{158}{80.90917} \pgfmath@def{acos}{159}{80.85114}
\pgfmath@def{acos}{160}{80.79310} \pgfmath@def{acos}{161}{80.73505}
\pgfmath@def{acos}{162}{80.67699} \pgfmath@def{acos}{163}{80.61893}
\pgfmath@def{acos}{164}{80.56085} \pgfmath@def{acos}{165}{80.50276}
\pgfmath@def{acos}{166}{80.44466} \pgfmath@def{acos}{167}{80.38656}
\pgfmath@def{acos}{168}{80.32844} \pgfmath@def{acos}{169}{80.27031}
\pgfmath@def{acos}{170}{80.21218} \pgfmath@def{acos}{171}{80.15403}
\pgfmath@def{acos}{172}{80.09587} \pgfmath@def{acos}{173}{80.03770}
\pgfmath@def{acos}{174}{79.97953} \pgfmath@def{acos}{175}{79.92134}
\pgfmath@def{acos}{176}{79.86314} \pgfmath@def{acos}{177}{79.80493}
\pgfmath@def{acos}{178}{79.74671} \pgfmath@def{acos}{179}{79.68848}
\pgfmath@def{acos}{180}{79.63024} \pgfmath@def{acos}{181}{79.57198}
\pgfmath@def{acos}{182}{79.51372} \pgfmath@def{acos}{183}{79.45545}
\pgfmath@def{acos}{184}{79.39716} \pgfmath@def{acos}{185}{79.33886}
\pgfmath@def{acos}{186}{79.28056} \pgfmath@def{acos}{187}{79.22224}
\pgfmath@def{acos}{188}{79.16391} \pgfmath@def{acos}{189}{79.10556}
\pgfmath@def{acos}{190}{79.04721} \pgfmath@def{acos}{191}{78.98885}
\pgfmath@def{acos}{192}{78.93047} \pgfmath@def{acos}{193}{78.87208}
\pgfmath@def{acos}{194}{78.81368} \pgfmath@def{acos}{195}{78.75527}
\pgfmath@def{acos}{196}{78.69685} \pgfmath@def{acos}{197}{78.63841}
\pgfmath@def{acos}{198}{78.57997} \pgfmath@def{acos}{199}{78.52151}
\pgfmath@def{acos}{200}{78.46304} \pgfmath@def{acos}{201}{78.40455}
\pgfmath@def{acos}{202}{78.34606} \pgfmath@def{acos}{203}{78.28755}
\pgfmath@def{acos}{204}{78.22903} \pgfmath@def{acos}{205}{78.17050}
\pgfmath@def{acos}{206}{78.11195} \pgfmath@def{acos}{207}{78.05339}
\pgfmath@def{acos}{208}{77.99482} \pgfmath@def{acos}{209}{77.93624}
\pgfmath@def{acos}{210}{77.87764} \pgfmath@def{acos}{211}{77.81903}
\pgfmath@def{acos}{212}{77.76041} \pgfmath@def{acos}{213}{77.70178}
\pgfmath@def{acos}{214}{77.64313} \pgfmath@def{acos}{215}{77.58447}
\pgfmath@def{acos}{216}{77.52579} \pgfmath@def{acos}{217}{77.46711}
\pgfmath@def{acos}{218}{77.40841} \pgfmath@def{acos}{219}{77.34969}
\pgfmath@def{acos}{220}{77.29096} \pgfmath@def{acos}{221}{77.23222}
\pgfmath@def{acos}{222}{77.17347} \pgfmath@def{acos}{223}{77.11470}
\pgfmath@def{acos}{224}{77.05591} \pgfmath@def{acos}{225}{76.99712}
\pgfmath@def{acos}{226}{76.93831} \pgfmath@def{acos}{227}{76.87948}
\pgfmath@def{acos}{228}{76.82064} \pgfmath@def{acos}{229}{76.76179}
\pgfmath@def{acos}{230}{76.70292} \pgfmath@def{acos}{231}{76.64404}
\pgfmath@def{acos}{232}{76.58515} \pgfmath@def{acos}{233}{76.52624}
\pgfmath@def{acos}{234}{76.46731} \pgfmath@def{acos}{235}{76.40837}
\pgfmath@def{acos}{236}{76.34942} \pgfmath@def{acos}{237}{76.29045}
\pgfmath@def{acos}{238}{76.23147} \pgfmath@def{acos}{239}{76.17247}
\pgfmath@def{acos}{240}{76.11346} \pgfmath@def{acos}{241}{76.05443}
\pgfmath@def{acos}{242}{75.99538} \pgfmath@def{acos}{243}{75.93632}
\pgfmath@def{acos}{244}{75.87725} \pgfmath@def{acos}{245}{75.81816}
\pgfmath@def{acos}{246}{75.75906} \pgfmath@def{acos}{247}{75.69994}
\pgfmath@def{acos}{248}{75.64080} \pgfmath@def{acos}{249}{75.58165}
\pgfmath@def{acos}{250}{75.52248} \pgfmath@def{acos}{251}{75.46330}
\pgfmath@def{acos}{252}{75.40410} \pgfmath@def{acos}{253}{75.34489}
\pgfmath@def{acos}{254}{75.28566} \pgfmath@def{acos}{255}{75.22641}
\pgfmath@def{acos}{256}{75.16715} \pgfmath@def{acos}{257}{75.10787}
\pgfmath@def{acos}{258}{75.04857} \pgfmath@def{acos}{259}{74.98926}
\pgfmath@def{acos}{260}{74.92993} \pgfmath@def{acos}{261}{74.87059}
\pgfmath@def{acos}{262}{74.81123} \pgfmath@def{acos}{263}{74.75185}
\pgfmath@def{acos}{264}{74.69245} \pgfmath@def{acos}{265}{74.63304}
\pgfmath@def{acos}{266}{74.57361} \pgfmath@def{acos}{267}{74.51417}
\pgfmath@def{acos}{268}{74.45471} \pgfmath@def{acos}{269}{74.39523}
\pgfmath@def{acos}{270}{74.33573} \pgfmath@def{acos}{271}{74.27621}
\pgfmath@def{acos}{272}{74.21668} \pgfmath@def{acos}{273}{74.15713}
\pgfmath@def{acos}{274}{74.09757} \pgfmath@def{acos}{275}{74.03798}
\pgfmath@def{acos}{276}{73.97838} \pgfmath@def{acos}{277}{73.91876}
\pgfmath@def{acos}{278}{73.85912} \pgfmath@def{acos}{279}{73.79946}
\pgfmath@def{acos}{280}{73.73979} \pgfmath@def{acos}{281}{73.68010}
\pgfmath@def{acos}{282}{73.62039} \pgfmath@def{acos}{283}{73.56066}
\pgfmath@def{acos}{284}{73.50091} \pgfmath@def{acos}{285}{73.44115}
\pgfmath@def{acos}{286}{73.38136} \pgfmath@def{acos}{287}{73.32156}
\pgfmath@def{acos}{288}{73.26174} \pgfmath@def{acos}{289}{73.20190}
\pgfmath@def{acos}{290}{73.14204} \pgfmath@def{acos}{291}{73.08216}
\pgfmath@def{acos}{292}{73.02226} \pgfmath@def{acos}{293}{72.96235}
\pgfmath@def{acos}{294}{72.90241} \pgfmath@def{acos}{295}{72.84246}
\pgfmath@def{acos}{296}{72.78248} \pgfmath@def{acos}{297}{72.72249}
\pgfmath@def{acos}{298}{72.66248} \pgfmath@def{acos}{299}{72.60244}
\pgfmath@def{acos}{300}{72.54239} \pgfmath@def{acos}{301}{72.48232}
\pgfmath@def{acos}{302}{72.42223} \pgfmath@def{acos}{303}{72.36212}
\pgfmath@def{acos}{304}{72.30198} \pgfmath@def{acos}{305}{72.24183}
\pgfmath@def{acos}{306}{72.18166} \pgfmath@def{acos}{307}{72.12147}
\pgfmath@def{acos}{308}{72.06125} \pgfmath@def{acos}{309}{72.00102}
\pgfmath@def{acos}{310}{71.94077} \pgfmath@def{acos}{311}{71.88049}
\pgfmath@def{acos}{312}{71.82019} \pgfmath@def{acos}{313}{71.75988}
\pgfmath@def{acos}{314}{71.69954} \pgfmath@def{acos}{315}{71.63918}
\pgfmath@def{acos}{316}{71.57880} \pgfmath@def{acos}{317}{71.51840}
\pgfmath@def{acos}{318}{71.45798} \pgfmath@def{acos}{319}{71.39754}
\pgfmath@def{acos}{320}{71.33707} \pgfmath@def{acos}{321}{71.27658}
\pgfmath@def{acos}{322}{71.21608} \pgfmath@def{acos}{323}{71.15555}
\pgfmath@def{acos}{324}{71.09499} \pgfmath@def{acos}{325}{71.03442}
\pgfmath@def{acos}{326}{70.97382} \pgfmath@def{acos}{327}{70.91321}
\pgfmath@def{acos}{328}{70.85257} \pgfmath@def{acos}{329}{70.79190}
\pgfmath@def{acos}{330}{70.73122} \pgfmath@def{acos}{331}{70.67051}
\pgfmath@def{acos}{332}{70.60978} \pgfmath@def{acos}{333}{70.54903}
\pgfmath@def{acos}{334}{70.48826} \pgfmath@def{acos}{335}{70.42746}
\pgfmath@def{acos}{336}{70.36664} \pgfmath@def{acos}{337}{70.30579}
\pgfmath@def{acos}{338}{70.24493} \pgfmath@def{acos}{339}{70.18404}
\pgfmath@def{acos}{340}{70.12312} \pgfmath@def{acos}{341}{70.06218}
\pgfmath@def{acos}{342}{70.00122} \pgfmath@def{acos}{343}{69.94024}
\pgfmath@def{acos}{344}{69.87923} \pgfmath@def{acos}{345}{69.81820}
\pgfmath@def{acos}{346}{69.75714} \pgfmath@def{acos}{347}{69.69606}
\pgfmath@def{acos}{348}{69.63496} \pgfmath@def{acos}{349}{69.57383}
\pgfmath@def{acos}{350}{69.51268} \pgfmath@def{acos}{351}{69.45150}
\pgfmath@def{acos}{352}{69.39030} \pgfmath@def{acos}{353}{69.32908}
\pgfmath@def{acos}{354}{69.26783} \pgfmath@def{acos}{355}{69.20655}
\pgfmath@def{acos}{356}{69.14525} \pgfmath@def{acos}{357}{69.08393}
\pgfmath@def{acos}{358}{69.02258} \pgfmath@def{acos}{359}{68.96120}
\pgfmath@def{acos}{360}{68.89980} \pgfmath@def{acos}{361}{68.83837}
\pgfmath@def{acos}{362}{68.77692} \pgfmath@def{acos}{363}{68.71544}
\pgfmath@def{acos}{364}{68.65394} \pgfmath@def{acos}{365}{68.59241}
\pgfmath@def{acos}{366}{68.53086} \pgfmath@def{acos}{367}{68.46928}
\pgfmath@def{acos}{368}{68.40767} \pgfmath@def{acos}{369}{68.34604}
\pgfmath@def{acos}{370}{68.28438} \pgfmath@def{acos}{371}{68.22269}
\pgfmath@def{acos}{372}{68.16098} \pgfmath@def{acos}{373}{68.09924}
\pgfmath@def{acos}{374}{68.03748} \pgfmath@def{acos}{375}{67.97568}
\pgfmath@def{acos}{376}{67.91386} \pgfmath@def{acos}{377}{67.85202}
\pgfmath@def{acos}{378}{67.79014} \pgfmath@def{acos}{379}{67.72824}
\pgfmath@def{acos}{380}{67.66631} \pgfmath@def{acos}{381}{67.60436}
\pgfmath@def{acos}{382}{67.54237} \pgfmath@def{acos}{383}{67.48036}
\pgfmath@def{acos}{384}{67.41832} \pgfmath@def{acos}{385}{67.35626}
\pgfmath@def{acos}{386}{67.29416} \pgfmath@def{acos}{387}{67.23204}
\pgfmath@def{acos}{388}{67.16988} \pgfmath@def{acos}{389}{67.10770}
\pgfmath@def{acos}{390}{67.04550} \pgfmath@def{acos}{391}{66.98326}
\pgfmath@def{acos}{392}{66.92099} \pgfmath@def{acos}{393}{66.85870}
\pgfmath@def{acos}{394}{66.79637} \pgfmath@def{acos}{395}{66.73402}
\pgfmath@def{acos}{396}{66.67164} \pgfmath@def{acos}{397}{66.60923}
\pgfmath@def{acos}{398}{66.54679} \pgfmath@def{acos}{399}{66.48432}
\pgfmath@def{acos}{400}{66.42182} \pgfmath@def{acos}{401}{66.35929}
\pgfmath@def{acos}{402}{66.29673} \pgfmath@def{acos}{403}{66.23414}
\pgfmath@def{acos}{404}{66.17152} \pgfmath@def{acos}{405}{66.10887}
\pgfmath@def{acos}{406}{66.04619} \pgfmath@def{acos}{407}{65.98348}
\pgfmath@def{acos}{408}{65.92074} \pgfmath@def{acos}{409}{65.85796}
\pgfmath@def{acos}{410}{65.79516} \pgfmath@def{acos}{411}{65.73233}
\pgfmath@def{acos}{412}{65.66946} \pgfmath@def{acos}{413}{65.60657}
\pgfmath@def{acos}{414}{65.54364} \pgfmath@def{acos}{415}{65.48068}
\pgfmath@def{acos}{416}{65.41769} \pgfmath@def{acos}{417}{65.35467}
\pgfmath@def{acos}{418}{65.29161} \pgfmath@def{acos}{419}{65.22853}
\pgfmath@def{acos}{420}{65.16541} \pgfmath@def{acos}{421}{65.10226}
\pgfmath@def{acos}{422}{65.03908} \pgfmath@def{acos}{423}{64.97586}
\pgfmath@def{acos}{424}{64.91261} \pgfmath@def{acos}{425}{64.84933}
\pgfmath@def{acos}{426}{64.78602} \pgfmath@def{acos}{427}{64.72267}
\pgfmath@def{acos}{428}{64.65929} \pgfmath@def{acos}{429}{64.59588}
\pgfmath@def{acos}{430}{64.53244} \pgfmath@def{acos}{431}{64.46896}
\pgfmath@def{acos}{432}{64.40544} \pgfmath@def{acos}{433}{64.34190}
\pgfmath@def{acos}{434}{64.27832} \pgfmath@def{acos}{435}{64.21470}
\pgfmath@def{acos}{436}{64.15105} \pgfmath@def{acos}{437}{64.08737}
\pgfmath@def{acos}{438}{64.02365} \pgfmath@def{acos}{439}{63.95990}
\pgfmath@def{acos}{440}{63.89611} \pgfmath@def{acos}{441}{63.83229}
\pgfmath@def{acos}{442}{63.76844} \pgfmath@def{acos}{443}{63.70455}
\pgfmath@def{acos}{444}{63.64062} \pgfmath@def{acos}{445}{63.57666}
\pgfmath@def{acos}{446}{63.51266} \pgfmath@def{acos}{447}{63.44863}
\pgfmath@def{acos}{448}{63.38456} \pgfmath@def{acos}{449}{63.32045}
\pgfmath@def{acos}{450}{63.25631} \pgfmath@def{acos}{451}{63.19213}
\pgfmath@def{acos}{452}{63.12792} \pgfmath@def{acos}{453}{63.06367}
\pgfmath@def{acos}{454}{62.99938} \pgfmath@def{acos}{455}{62.93506}
\pgfmath@def{acos}{456}{62.87070} \pgfmath@def{acos}{457}{62.80630}
\pgfmath@def{acos}{458}{62.74187} \pgfmath@def{acos}{459}{62.67740}
\pgfmath@def{acos}{460}{62.61289} \pgfmath@def{acos}{461}{62.54834}
\pgfmath@def{acos}{462}{62.48376} \pgfmath@def{acos}{463}{62.41913}
\pgfmath@def{acos}{464}{62.35447} \pgfmath@def{acos}{465}{62.28977}
\pgfmath@def{acos}{466}{62.22504} \pgfmath@def{acos}{467}{62.16026}
\pgfmath@def{acos}{468}{62.09545} \pgfmath@def{acos}{469}{62.03059}
\pgfmath@def{acos}{470}{61.96570} \pgfmath@def{acos}{471}{61.90077}
\pgfmath@def{acos}{472}{61.83580} \pgfmath@def{acos}{473}{61.77079}
\pgfmath@def{acos}{474}{61.70574} \pgfmath@def{acos}{475}{61.64065}
\pgfmath@def{acos}{476}{61.57552} \pgfmath@def{acos}{477}{61.51035}
\pgfmath@def{acos}{478}{61.44514} \pgfmath@def{acos}{479}{61.37988}
\pgfmath@def{acos}{480}{61.31459} \pgfmath@def{acos}{481}{61.24926}
\pgfmath@def{acos}{482}{61.18389} \pgfmath@def{acos}{483}{61.11847}
\pgfmath@def{acos}{484}{61.05302} \pgfmath@def{acos}{485}{60.98752}
\pgfmath@def{acos}{486}{60.92199} \pgfmath@def{acos}{487}{60.85641}
\pgfmath@def{acos}{488}{60.79078} \pgfmath@def{acos}{489}{60.72512}
\pgfmath@def{acos}{490}{60.65941} \pgfmath@def{acos}{491}{60.59367}
\pgfmath@def{acos}{492}{60.52787} \pgfmath@def{acos}{493}{60.46204}
\pgfmath@def{acos}{494}{60.39616} \pgfmath@def{acos}{495}{60.33025}
\pgfmath@def{acos}{496}{60.26428} \pgfmath@def{acos}{497}{60.19828}
\pgfmath@def{acos}{498}{60.13223} \pgfmath@def{acos}{499}{60.06613}
\pgfmath@def{acos}{500}{60.00000} \pgfmath@def{acos}{501}{59.93381}
\pgfmath@def{acos}{502}{59.86759} \pgfmath@def{acos}{503}{59.80132}
\pgfmath@def{acos}{504}{59.73500} \pgfmath@def{acos}{505}{59.66864}
\pgfmath@def{acos}{506}{59.60224} \pgfmath@def{acos}{507}{59.53579}
\pgfmath@def{acos}{508}{59.46929} \pgfmath@def{acos}{509}{59.40275}
\pgfmath@def{acos}{510}{59.33617} \pgfmath@def{acos}{511}{59.26953}
\pgfmath@def{acos}{512}{59.20285} \pgfmath@def{acos}{513}{59.13613}
\pgfmath@def{acos}{514}{59.06936} \pgfmath@def{acos}{515}{59.00254}
\pgfmath@def{acos}{516}{58.93568} \pgfmath@def{acos}{517}{58.86876}
\pgfmath@def{acos}{518}{58.80180} \pgfmath@def{acos}{519}{58.73480}
\pgfmath@def{acos}{520}{58.66774} \pgfmath@def{acos}{521}{58.60064}
\pgfmath@def{acos}{522}{58.53349} \pgfmath@def{acos}{523}{58.46629}
\pgfmath@def{acos}{524}{58.39905} \pgfmath@def{acos}{525}{58.33175}
\pgfmath@def{acos}{526}{58.26441} \pgfmath@def{acos}{527}{58.19702}
\pgfmath@def{acos}{528}{58.12957} \pgfmath@def{acos}{529}{58.06208}
\pgfmath@def{acos}{530}{57.99454} \pgfmath@def{acos}{531}{57.92695}
\pgfmath@def{acos}{532}{57.85931} \pgfmath@def{acos}{533}{57.79162}
\pgfmath@def{acos}{534}{57.72388} \pgfmath@def{acos}{535}{57.65608}
\pgfmath@def{acos}{536}{57.58824} \pgfmath@def{acos}{537}{57.52035}
\pgfmath@def{acos}{538}{57.45240} \pgfmath@def{acos}{539}{57.38441}
\pgfmath@def{acos}{540}{57.31636} \pgfmath@def{acos}{541}{57.24826}
\pgfmath@def{acos}{542}{57.18010} \pgfmath@def{acos}{543}{57.11190}
\pgfmath@def{acos}{544}{57.04364} \pgfmath@def{acos}{545}{56.97533}
\pgfmath@def{acos}{546}{56.90697} \pgfmath@def{acos}{547}{56.83855}
\pgfmath@def{acos}{548}{56.77008} \pgfmath@def{acos}{549}{56.70156}
\pgfmath@def{acos}{550}{56.63298} \pgfmath@def{acos}{551}{56.56435}
\pgfmath@def{acos}{552}{56.49567} \pgfmath@def{acos}{553}{56.42693}
\pgfmath@def{acos}{554}{56.35813} \pgfmath@def{acos}{555}{56.28928}
\pgfmath@def{acos}{556}{56.22038} \pgfmath@def{acos}{557}{56.15141}
\pgfmath@def{acos}{558}{56.08240} \pgfmath@def{acos}{559}{56.01333}
\pgfmath@def{acos}{560}{55.94420} \pgfmath@def{acos}{561}{55.87501}
\pgfmath@def{acos}{562}{55.80577} \pgfmath@def{acos}{563}{55.73647}
\pgfmath@def{acos}{564}{55.66712} \pgfmath@def{acos}{565}{55.59770}
\pgfmath@def{acos}{566}{55.52823} \pgfmath@def{acos}{567}{55.45871}
\pgfmath@def{acos}{568}{55.38912} \pgfmath@def{acos}{569}{55.31947}
\pgfmath@def{acos}{570}{55.24977} \pgfmath@def{acos}{571}{55.18001}
\pgfmath@def{acos}{572}{55.11019} \pgfmath@def{acos}{573}{55.04030}
\pgfmath@def{acos}{574}{54.97036} \pgfmath@def{acos}{575}{54.90036}
\pgfmath@def{acos}{576}{54.83030} \pgfmath@def{acos}{577}{54.76018}
\pgfmath@def{acos}{578}{54.69000} \pgfmath@def{acos}{579}{54.61976}
\pgfmath@def{acos}{580}{54.54945} \pgfmath@def{acos}{581}{54.47909}
\pgfmath@def{acos}{582}{54.40866} \pgfmath@def{acos}{583}{54.33817}
\pgfmath@def{acos}{584}{54.26762} \pgfmath@def{acos}{585}{54.19701}
\pgfmath@def{acos}{586}{54.12633} \pgfmath@def{acos}{587}{54.05559}
\pgfmath@def{acos}{588}{53.98479} \pgfmath@def{acos}{589}{53.91392}
\pgfmath@def{acos}{590}{53.84299} \pgfmath@def{acos}{591}{53.77199}
\pgfmath@def{acos}{592}{53.70093} \pgfmath@def{acos}{593}{53.62981}
\pgfmath@def{acos}{594}{53.55862} \pgfmath@def{acos}{595}{53.48736}
\pgfmath@def{acos}{596}{53.41604} \pgfmath@def{acos}{597}{53.34466}
\pgfmath@def{acos}{598}{53.27320} \pgfmath@def{acos}{599}{53.20168}
\pgfmath@def{acos}{600}{53.13010} \pgfmath@def{acos}{601}{53.05844}
\pgfmath@def{acos}{602}{52.98672} \pgfmath@def{acos}{603}{52.91494}
\pgfmath@def{acos}{604}{52.84308} \pgfmath@def{acos}{605}{52.77115}
\pgfmath@def{acos}{606}{52.69916} \pgfmath@def{acos}{607}{52.62710}
\pgfmath@def{acos}{608}{52.55497} \pgfmath@def{acos}{609}{52.48276}
\pgfmath@def{acos}{610}{52.41049} \pgfmath@def{acos}{611}{52.33815}
\pgfmath@def{acos}{612}{52.26574} \pgfmath@def{acos}{613}{52.19326}
\pgfmath@def{acos}{614}{52.12070} \pgfmath@def{acos}{615}{52.04808}
\pgfmath@def{acos}{616}{51.97538} \pgfmath@def{acos}{617}{51.90261}
\pgfmath@def{acos}{618}{51.82976} \pgfmath@def{acos}{619}{51.75685}
\pgfmath@def{acos}{620}{51.68386} \pgfmath@def{acos}{621}{51.61080}
\pgfmath@def{acos}{622}{51.53766} \pgfmath@def{acos}{623}{51.46445}
\pgfmath@def{acos}{624}{51.39117} \pgfmath@def{acos}{625}{51.31781}
\pgfmath@def{acos}{626}{51.24437} \pgfmath@def{acos}{627}{51.17086}
\pgfmath@def{acos}{628}{51.09728} \pgfmath@def{acos}{629}{51.02361}
\pgfmath@def{acos}{630}{50.94987} \pgfmath@def{acos}{631}{50.87606}
\pgfmath@def{acos}{632}{50.80216} \pgfmath@def{acos}{633}{50.72819}
\pgfmath@def{acos}{634}{50.65414} \pgfmath@def{acos}{635}{50.58001}
\pgfmath@def{acos}{636}{50.50580} \pgfmath@def{acos}{637}{50.43152}
\pgfmath@def{acos}{638}{50.35715} \pgfmath@def{acos}{639}{50.28270}
\pgfmath@def{acos}{640}{50.20818} \pgfmath@def{acos}{641}{50.13357}
\pgfmath@def{acos}{642}{50.05888} \pgfmath@def{acos}{643}{49.98411}
\pgfmath@def{acos}{644}{49.90926} \pgfmath@def{acos}{645}{49.83432}
\pgfmath@def{acos}{646}{49.75930} \pgfmath@def{acos}{647}{49.68420}
\pgfmath@def{acos}{648}{49.60902} \pgfmath@def{acos}{649}{49.53375}
\pgfmath@def{acos}{650}{49.45839} \pgfmath@def{acos}{651}{49.38296}
\pgfmath@def{acos}{652}{49.30743} \pgfmath@def{acos}{653}{49.23182}
\pgfmath@def{acos}{654}{49.15613} \pgfmath@def{acos}{655}{49.08035}
\pgfmath@def{acos}{656}{49.00448} \pgfmath@def{acos}{657}{48.92852}
\pgfmath@def{acos}{658}{48.85248} \pgfmath@def{acos}{659}{48.77634}
\pgfmath@def{acos}{660}{48.70012} \pgfmath@def{acos}{661}{48.62381}
\pgfmath@def{acos}{662}{48.54741} \pgfmath@def{acos}{663}{48.47092}
\pgfmath@def{acos}{664}{48.39434} \pgfmath@def{acos}{665}{48.31767}
\pgfmath@def{acos}{666}{48.24091} \pgfmath@def{acos}{667}{48.16405}
\pgfmath@def{acos}{668}{48.08710} \pgfmath@def{acos}{669}{48.01006}
\pgfmath@def{acos}{670}{47.93293} \pgfmath@def{acos}{671}{47.85570}
\pgfmath@def{acos}{672}{47.77838} \pgfmath@def{acos}{673}{47.70096}
\pgfmath@def{acos}{674}{47.62345} \pgfmath@def{acos}{675}{47.54585}
\pgfmath@def{acos}{676}{47.46814} \pgfmath@def{acos}{677}{47.39034}
\pgfmath@def{acos}{678}{47.31244} \pgfmath@def{acos}{679}{47.23445}
\pgfmath@def{acos}{680}{47.15635} \pgfmath@def{acos}{681}{47.07816}
\pgfmath@def{acos}{682}{46.99987} \pgfmath@def{acos}{683}{46.92147}
\pgfmath@def{acos}{684}{46.84298} \pgfmath@def{acos}{685}{46.76439}
\pgfmath@def{acos}{686}{46.68569} \pgfmath@def{acos}{687}{46.60690}
\pgfmath@def{acos}{688}{46.52800} \pgfmath@def{acos}{689}{46.44899}
\pgfmath@def{acos}{690}{46.36989} \pgfmath@def{acos}{691}{46.29068}
\pgfmath@def{acos}{692}{46.21136} \pgfmath@def{acos}{693}{46.13194}
\pgfmath@def{acos}{694}{46.05241} \pgfmath@def{acos}{695}{45.97278}
\pgfmath@def{acos}{696}{45.89304} \pgfmath@def{acos}{697}{45.81319}
\pgfmath@def{acos}{698}{45.73323} \pgfmath@def{acos}{699}{45.65317}
\pgfmath@def{acos}{700}{45.57299} \pgfmath@def{acos}{701}{45.49271}
\pgfmath@def{acos}{702}{45.41231} \pgfmath@def{acos}{703}{45.33180}
\pgfmath@def{acos}{704}{45.25118} \pgfmath@def{acos}{705}{45.17045}
\pgfmath@def{acos}{706}{45.08961} \pgfmath@def{acos}{707}{45.00865}
\pgfmath@def{acos}{708}{44.92757} \pgfmath@def{acos}{709}{44.84638}
\pgfmath@def{acos}{710}{44.76508} \pgfmath@def{acos}{711}{44.68366}
\pgfmath@def{acos}{712}{44.60212} \pgfmath@def{acos}{713}{44.52046}
\pgfmath@def{acos}{714}{44.43869} \pgfmath@def{acos}{715}{44.35680}
\pgfmath@def{acos}{716}{44.27478} \pgfmath@def{acos}{717}{44.19265}
\pgfmath@def{acos}{718}{44.11039} \pgfmath@def{acos}{719}{44.02802}
\pgfmath@def{acos}{720}{43.94552} \pgfmath@def{acos}{721}{43.86289}
\pgfmath@def{acos}{722}{43.78014} \pgfmath@def{acos}{723}{43.69727}
\pgfmath@def{acos}{724}{43.61427} \pgfmath@def{acos}{725}{43.53115}
\pgfmath@def{acos}{726}{43.44790} \pgfmath@def{acos}{727}{43.36452}
\pgfmath@def{acos}{728}{43.28101} \pgfmath@def{acos}{729}{43.19737}
\pgfmath@def{acos}{730}{43.11360} \pgfmath@def{acos}{731}{43.02970}
\pgfmath@def{acos}{732}{42.94567} \pgfmath@def{acos}{733}{42.86151}
\pgfmath@def{acos}{734}{42.77721} \pgfmath@def{acos}{735}{42.69278}
\pgfmath@def{acos}{736}{42.60821} \pgfmath@def{acos}{737}{42.52351}
\pgfmath@def{acos}{738}{42.43867} \pgfmath@def{acos}{739}{42.35370}
\pgfmath@def{acos}{740}{42.26858} \pgfmath@def{acos}{741}{42.18333}
\pgfmath@def{acos}{742}{42.09793} \pgfmath@def{acos}{743}{42.01240}
\pgfmath@def{acos}{744}{41.92672} \pgfmath@def{acos}{745}{41.84090}
\pgfmath@def{acos}{746}{41.75493} \pgfmath@def{acos}{747}{41.66882}
\pgfmath@def{acos}{748}{41.58257} \pgfmath@def{acos}{749}{41.49617}
\pgfmath@def{acos}{750}{41.40962} \pgfmath@def{acos}{751}{41.32292}
\pgfmath@def{acos}{752}{41.23607} \pgfmath@def{acos}{753}{41.14908}
\pgfmath@def{acos}{754}{41.06193} \pgfmath@def{acos}{755}{40.97463}
\pgfmath@def{acos}{756}{40.88717} \pgfmath@def{acos}{757}{40.79956}
\pgfmath@def{acos}{758}{40.71180} \pgfmath@def{acos}{759}{40.62388}
\pgfmath@def{acos}{760}{40.53580} \pgfmath@def{acos}{761}{40.44756}
\pgfmath@def{acos}{762}{40.35916} \pgfmath@def{acos}{763}{40.27061}
\pgfmath@def{acos}{764}{40.18189} \pgfmath@def{acos}{765}{40.09300}
\pgfmath@def{acos}{766}{40.00396} \pgfmath@def{acos}{767}{39.91474}
\pgfmath@def{acos}{768}{39.82537} \pgfmath@def{acos}{769}{39.73582}
\pgfmath@def{acos}{770}{39.64611} \pgfmath@def{acos}{771}{39.55622}
\pgfmath@def{acos}{772}{39.46617} \pgfmath@def{acos}{773}{39.37594}
\pgfmath@def{acos}{774}{39.28554} \pgfmath@def{acos}{775}{39.19496}
\pgfmath@def{acos}{776}{39.10421} \pgfmath@def{acos}{777}{39.01328}
\pgfmath@def{acos}{778}{38.92218} \pgfmath@def{acos}{779}{38.83089}
\pgfmath@def{acos}{780}{38.73942} \pgfmath@def{acos}{781}{38.64777}
\pgfmath@def{acos}{782}{38.55594} \pgfmath@def{acos}{783}{38.46392}
\pgfmath@def{acos}{784}{38.37171} \pgfmath@def{acos}{785}{38.27932}
\pgfmath@def{acos}{786}{38.18673} \pgfmath@def{acos}{787}{38.09396}
\pgfmath@def{acos}{788}{38.00100} \pgfmath@def{acos}{789}{37.90784}
\pgfmath@def{acos}{790}{37.81448} \pgfmath@def{acos}{791}{37.72093}
\pgfmath@def{acos}{792}{37.62719} \pgfmath@def{acos}{793}{37.53324}
\pgfmath@def{acos}{794}{37.43909} \pgfmath@def{acos}{795}{37.34474}
\pgfmath@def{acos}{796}{37.25019} \pgfmath@def{acos}{797}{37.15542}
\pgfmath@def{acos}{798}{37.06046} \pgfmath@def{acos}{799}{36.96528}
\pgfmath@def{acos}{800}{36.86989} \pgfmath@def{acos}{801}{36.77429}
\pgfmath@def{acos}{802}{36.67848} \pgfmath@def{acos}{803}{36.58245}
\pgfmath@def{acos}{804}{36.48621} \pgfmath@def{acos}{805}{36.38974}
\pgfmath@def{acos}{806}{36.29305} \pgfmath@def{acos}{807}{36.19615}
\pgfmath@def{acos}{808}{36.09901} \pgfmath@def{acos}{809}{36.00165}
\pgfmath@def{acos}{810}{35.90406} \pgfmath@def{acos}{811}{35.80625}
\pgfmath@def{acos}{812}{35.70820} \pgfmath@def{acos}{813}{35.60991}
\pgfmath@def{acos}{814}{35.51139} \pgfmath@def{acos}{815}{35.41263}
\pgfmath@def{acos}{816}{35.31364} \pgfmath@def{acos}{817}{35.21440}
\pgfmath@def{acos}{818}{35.11491} \pgfmath@def{acos}{819}{35.01518}
\pgfmath@def{acos}{820}{34.91520} \pgfmath@def{acos}{821}{34.81497}
\pgfmath@def{acos}{822}{34.71449} \pgfmath@def{acos}{823}{34.61375}
\pgfmath@def{acos}{824}{34.51276} \pgfmath@def{acos}{825}{34.41150}
\pgfmath@def{acos}{826}{34.30999} \pgfmath@def{acos}{827}{34.20821}
\pgfmath@def{acos}{828}{34.10616} \pgfmath@def{acos}{829}{34.00385}
\pgfmath@def{acos}{830}{33.90126} \pgfmath@def{acos}{831}{33.79840}
\pgfmath@def{acos}{832}{33.69526} \pgfmath@def{acos}{833}{33.59184}
\pgfmath@def{acos}{834}{33.48814} \pgfmath@def{acos}{835}{33.38416}
\pgfmath@def{acos}{836}{33.27989} \pgfmath@def{acos}{837}{33.17533}
\pgfmath@def{acos}{838}{33.07047} \pgfmath@def{acos}{839}{32.96532}
\pgfmath@def{acos}{840}{32.85988} \pgfmath@def{acos}{841}{32.75413}
\pgfmath@def{acos}{842}{32.64807} \pgfmath@def{acos}{843}{32.54171}
\pgfmath@def{acos}{844}{32.43504} \pgfmath@def{acos}{845}{32.32806}
\pgfmath@def{acos}{846}{32.22076} \pgfmath@def{acos}{847}{32.11314}
\pgfmath@def{acos}{848}{32.00520} \pgfmath@def{acos}{849}{31.89693}
\pgfmath@def{acos}{850}{31.78833} \pgfmath@def{acos}{851}{31.67939}
\pgfmath@def{acos}{852}{31.57012} \pgfmath@def{acos}{853}{31.46051}
\pgfmath@def{acos}{854}{31.35056} \pgfmath@def{acos}{855}{31.24026}
\pgfmath@def{acos}{856}{31.12961} \pgfmath@def{acos}{857}{31.01860}
\pgfmath@def{acos}{858}{30.90724} \pgfmath@def{acos}{859}{30.79551}
\pgfmath@def{acos}{860}{30.68341} \pgfmath@def{acos}{861}{30.57095}
\pgfmath@def{acos}{862}{30.45811} \pgfmath@def{acos}{863}{30.34489}
\pgfmath@def{acos}{864}{30.23128} \pgfmath@def{acos}{865}{30.11729}
\pgfmath@def{acos}{866}{30.00291} \pgfmath@def{acos}{867}{29.88813}
\pgfmath@def{acos}{868}{29.77294} \pgfmath@def{acos}{869}{29.65736}
\pgfmath@def{acos}{870}{29.54136} \pgfmath@def{acos}{871}{29.42494}
\pgfmath@def{acos}{872}{29.30810} \pgfmath@def{acos}{873}{29.19084}
\pgfmath@def{acos}{874}{29.07315} \pgfmath@def{acos}{875}{28.95502}
\pgfmath@def{acos}{876}{28.83645} \pgfmath@def{acos}{877}{28.71743}
\pgfmath@def{acos}{878}{28.59796} \pgfmath@def{acos}{879}{28.47803}
\pgfmath@def{acos}{880}{28.35763} \pgfmath@def{acos}{881}{28.23677}
\pgfmath@def{acos}{882}{28.11542} \pgfmath@def{acos}{883}{27.99360}
\pgfmath@def{acos}{884}{27.87128} \pgfmath@def{acos}{885}{27.74847}
\pgfmath@def{acos}{886}{27.62516} \pgfmath@def{acos}{887}{27.50134}
\pgfmath@def{acos}{888}{27.37700} \pgfmath@def{acos}{889}{27.25214}
\pgfmath@def{acos}{890}{27.12675} \pgfmath@def{acos}{891}{27.00082}
\pgfmath@def{acos}{892}{26.87434} \pgfmath@def{acos}{893}{26.74731}
\pgfmath@def{acos}{894}{26.61973} \pgfmath@def{acos}{895}{26.49157}
\pgfmath@def{acos}{896}{26.36283} \pgfmath@def{acos}{897}{26.23351}
\pgfmath@def{acos}{898}{26.10359} \pgfmath@def{acos}{899}{25.97306}
\pgfmath@def{acos}{900}{25.84193} \pgfmath@def{acos}{901}{25.71017}
\pgfmath@def{acos}{902}{25.57778} \pgfmath@def{acos}{903}{25.44475}
\pgfmath@def{acos}{904}{25.31106} \pgfmath@def{acos}{905}{25.17671}
\pgfmath@def{acos}{906}{25.04169} \pgfmath@def{acos}{907}{24.90598}
\pgfmath@def{acos}{908}{24.76958} \pgfmath@def{acos}{909}{24.63247}
\pgfmath@def{acos}{910}{24.49464} \pgfmath@def{acos}{911}{24.35608}
\pgfmath@def{acos}{912}{24.21678} \pgfmath@def{acos}{913}{24.07672}
\pgfmath@def{acos}{914}{23.93588} \pgfmath@def{acos}{915}{23.79427}
\pgfmath@def{acos}{916}{23.65185} \pgfmath@def{acos}{917}{23.50863}
\pgfmath@def{acos}{918}{23.36457} \pgfmath@def{acos}{919}{23.21967}
\pgfmath@def{acos}{920}{23.07391} \pgfmath@def{acos}{921}{22.92728}
\pgfmath@def{acos}{922}{22.77975} \pgfmath@def{acos}{923}{22.63132}
\pgfmath@def{acos}{924}{22.48195} \pgfmath@def{acos}{925}{22.33164}
\pgfmath@def{acos}{926}{22.18036} \pgfmath@def{acos}{927}{22.02810}
\pgfmath@def{acos}{928}{21.87483} \pgfmath@def{acos}{929}{21.72053}
\pgfmath@def{acos}{930}{21.56518} \pgfmath@def{acos}{931}{21.40876}
\pgfmath@def{acos}{932}{21.25124} \pgfmath@def{acos}{933}{21.09260}
\pgfmath@def{acos}{934}{20.93281} \pgfmath@def{acos}{935}{20.77185}
\pgfmath@def{acos}{936}{20.60969} \pgfmath@def{acos}{937}{20.44630}
\pgfmath@def{acos}{938}{20.28165} \pgfmath@def{acos}{939}{20.11570}
\pgfmath@def{acos}{940}{19.94844} \pgfmath@def{acos}{941}{19.77982}
\pgfmath@def{acos}{942}{19.60981} \pgfmath@def{acos}{943}{19.43837}
\pgfmath@def{acos}{944}{19.26546} \pgfmath@def{acos}{945}{19.09105}
\pgfmath@def{acos}{946}{18.91509} \pgfmath@def{acos}{947}{18.73754}
\pgfmath@def{acos}{948}{18.55835} \pgfmath@def{acos}{949}{18.37748}
\pgfmath@def{acos}{950}{18.19487} \pgfmath@def{acos}{951}{18.01047}
\pgfmath@def{acos}{952}{17.82423} \pgfmath@def{acos}{953}{17.63609}
\pgfmath@def{acos}{954}{17.44598} \pgfmath@def{acos}{955}{17.25385}
\pgfmath@def{acos}{956}{17.05962} \pgfmath@def{acos}{957}{16.86322}
\pgfmath@def{acos}{958}{16.66457} \pgfmath@def{acos}{959}{16.46359}
\pgfmath@def{acos}{960}{16.26020} \pgfmath@def{acos}{961}{16.05430}
\pgfmath@def{acos}{962}{15.84580} \pgfmath@def{acos}{963}{15.63459}
\pgfmath@def{acos}{964}{15.42057} \pgfmath@def{acos}{965}{15.20360}
\pgfmath@def{acos}{966}{14.98357} \pgfmath@def{acos}{967}{14.76033}
\pgfmath@def{acos}{968}{14.53374} \pgfmath@def{acos}{969}{14.30364}
\pgfmath@def{acos}{970}{14.06986} \pgfmath@def{acos}{971}{13.83221}
\pgfmath@def{acos}{972}{13.59049} \pgfmath@def{acos}{973}{13.34447}
\pgfmath@def{acos}{974}{13.09392} \pgfmath@def{acos}{975}{12.83856}
\pgfmath@def{acos}{976}{12.57811} \pgfmath@def{acos}{977}{12.31225}
\pgfmath@def{acos}{978}{12.04060} \pgfmath@def{acos}{979}{11.76278}
\pgfmath@def{acos}{980}{11.47834} \pgfmath@def{acos}{981}{11.18676}
\pgfmath@def{acos}{982}{10.88748} \pgfmath@def{acos}{983}{10.57984}
\pgfmath@def{acos}{984}{10.26309} \pgfmath@def{acos}{985}{9.93636}
\pgfmath@def{acos}{986}{9.59863} \pgfmath@def{acos}{987}{9.24870}
\pgfmath@def{acos}{988}{8.88512} \pgfmath@def{acos}{989}{8.50614}
\pgfmath@def{acos}{990}{8.10961} \pgfmath@def{acos}{991}{7.69281}
\pgfmath@def{acos}{992}{7.25224} \pgfmath@def{acos}{993}{6.78328}
\pgfmath@def{acos}{994}{6.27958} \pgfmath@def{acos}{995}{5.73196}
\pgfmath@def{acos}{996}{5.12640} \pgfmath@def{acos}{997}{4.43922}
\pgfmath@def{acos}{998}{3.62430} \pgfmath@def{acos}{999}{2.56255}
\pgfmath@def{acos}{1000}{0.00000}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathode.code.tex ====
\def\pgfmathode@stopadd{\pgfmathode@stopadd}
\def\pgfmathode@addindextofunc[#1]#2{%
\begingroup
\gdef\pgfmathode@func{}%
\pgfmathode@addindextofunc@i[#1]#2\pgfmathode@stopadd}
\def\pgfmathode@addindextofunc@i[#1]#2#3{%
\ifx#1#2
\expandafter\gdef\expandafter\pgfmathode@func\expandafter{%
\pgfmathode@func #2[\pgfmathode@timeindex]}%
\else
\expandafter\gdef\expandafter\pgfmathode@func\expandafter{%
\pgfmathode@func #2}%
\fi
\ifx#3\pgfmathode@stopadd
\expandafter\gdef\expandafter\pgfmathode@func\expandafter{%
\expandafter{\pgfmathode@func}}%
\let\next\endgroup
\else
\def\next{\pgfmathode@addindextofunc@i[#1]#3}%
\fi
\next}
\def\pgfmathode@generic@init@RK{%
\begingroup
\gdef#1{{#3}}%
\pgfmathode@addindextofunc[#1]#2%
\pgfmathsetmacro\pgfmathode@Sol@t{#1[0][0]}%
\pgfmathsetmacro\pgfmathode@Deltat{(#4-\pgfmathode@Sol@t)/#5}%
\pgfmathsetmacro\pgfmathode@dimfunc{dim(#3)-1}%
\pgfmathsetmacro\pgfmathode@numstep{#5-1}}
\def\pgfmathodeRKI#1#2#3#4#5{%
\pgfmathode@generic@init@RK
\foreach \pgfmathode@timeindex in {0,...,\pgfmathode@numstep} {%
\message{Step \pgfmathode@timeindex...}%
\foreach \pgfmathode@funcindex in {1,...,\pgfmathode@dimfunc} {%
\pgfmathparse{%
\pgfmathode@Deltat*(\pgfmathode@func[\pgfmathode@funcindex-1])+
#1[\pgfmathode@timeindex][\pgfmathode@funcindex]}%
\expandafter\xdef\csname pgfmathode@Sol@\pgfmathode@funcindex
\endcsname{\pgfmathresult}%
}
\pgfmathparse{\pgfmathode@Sol@t+\pgfmathode@Deltat}%
\xdef\pgfmathode@Sol@t{\pgfmathresult}%
\xdef\pgfmathode@temp{}%
\foreach \pgfmathode@funcindex in {1,...,\pgfmathode@dimfunc} {%
\ifx\pgfmathode@temp\pgfutil@empty
\xdef\pgfmathode@temp{%
\csname pgfmathode@Sol@\pgfmathode@funcindex\endcsname}%
\else
\xdef\pgfmathode@temp{%
\pgfmathode@temp,
\csname pgfmathode@Sol@\pgfmathode@funcindex\endcsname}%
\fi}
\xdef#1{%
{\expandafter\pgfutil@firstofone#1,%
{\pgfmathode@Sol@t,\pgfmathode@temp}}}%
}
\endgroup}
\def\pgfmathodeRKIV#1#2#3#4#5{%
\pgfmathode@generic@init@RK
\foreach \pgfmathode@timeindex in {0,...,\pgfmathode@numstep} {%
\message{Step \pgfmathode@timeindex...}%
\foreach \pgfmathode@funcindex in {1,...,\pgfmathode@dimfunc} {%
\pgfmathparse{%
\pgfmathode@Deltat*(\pgfmathode@func[\pgfmathode@funcindex-1])+
#1[\pgfmathode@timeindex][\pgfmathode@funcindex]}%
\expandafter\xdef\csname pgfmathode@RKIV@1@\pgfmathode@funcindex
\endcsname{\pgfmathresult}%
\pgfmathparse{%
\pgfmathode@Deltat*(\pgfmathode@func[\pgfmathode@funcindex-1])+
#1[\pgfmathode@timeindex][\pgfmathode@funcindex]}%
\expandafter\xdef\csname pgfmathode@RKIV@1@\pgfmathode@funcindex
\endcsname{\pgfmathresult}%
}
\pgfmathparse{\pgfmathode@Sol@t+\pgfmathode@Deltat}%
\xdef\pgfmathode@Sol@t{\pgfmathresult}%
\xdef\pgfmathode@temp{}%
\foreach \pgfmathode@funcindex in {1,...,\pgfmathode@dimfunc} {%
\ifx\pgfmathode@temp\pgfutil@empty
\xdef\pgfmathode@temp{%
\csname pgfmathode@Sol@\pgfmathode@funcindex\endcsname}%
\else
\xdef\pgfmathode@temp{%
\pgfmathode@temp,
\csname pgfmathode@Sol@\pgfmathode@funcindex\endcsname}%
\fi}
\xdef#1{%
{\expandafter\pgfutil@firstofone#1,%
{\pgfmathode@Sol@t,\pgfmathode@temp}}}%
}
\endgroup}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathode.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathparser.code.tex ====
\newdimen\pgfmath@dimen
\newcount\pgfmath@count
\newbox\pgfmath@box
\newtoks\pgfmath@toks
\newif\ifpgfmath@quickparse
\newif\ifpgfmathfloat
\newif\ifpgfmathunitsdeclared
\newif\ifpgfmathmathunitsdeclared
\newif\ifpgfmathignoreunitscale
\let\pgfmath@protected@edef=\edef
\ifcsname protected@edef\endcsname
\let\pgfmath@protected@edef=\protected@edef
\fi
\def\pgfmathprint#1{\pgfmathparse{#1}\pgfmathresult}
\def\pgfmathparse{%
\begingroup
\pgfmath@catcodes
\pgfmath@quickparsefalse
\ifpgfmathfloat
\let\pgfmath@parse@next=\pgfmathfloatparsenumber
\else
\let\pgfmath@parse@next=\pgfmathparse@
\fi
\pgfmath@parse@next}
\begingroup
\lccode`\~=`\"
\lowercase{\endgroup
\def\pgfmath@catcodes{%
\catcode`\==12 %
\catcode`\,=12 %
\catcode`\|=12 %
\catcode`\&=12 %
\let~\pgfmath@char@quote
}}%
\def\pgfmathqparse{%
\begingroup
\pgfmath@catcodes
\pgfmath@quickparsetrue
\pgfmathparse@}
\def\pgfmathparse@#1{%
\global\pgfmathunitsdeclaredfalse
\global\pgfmathmathunitsdeclaredfalse
\pgfmath@protected@edef\pgfmath@expression{#1}%
\expandafter\pgfmathparse@trynumber@loop\pgfmath@expression\pgfmath@parse@stop
}
\def\pgfmath@parse@stop{\pgfmath@parse@stop}%
\def\pgfmathparse@trynumber@token{numeric}
\begingroup
\def\\{\global\let\pgf@let@space@token= } \\ %
\endgroup
\def\pgfmathparse@trynumber@loop{%
\futurelet\pgfmath@token@let\pgfmathparse@trynumber@loop@
}%
\def\pgfmathparse@trynumber@loop@#1{%
\ifx\pgfmath@token@let\pgf@let@space@token
\def\pgfmath@parse@next{\pgfmathparse@@#1}%
\else
\ifx\pgfmath@token@let\bgroup%
\let\pgfmath@parse@next=\pgfmathparse@@
\else
\ifx\pgfmath@token@let\pgfmath@parse@stop
\let\pgfmath@parse@next=\pgfmathparse@expression@is@number
\else
\expandafter\ifx\csname pgfmath@token@\pgfmathparse@trynumber@token @\string#1\endcsname\relax%
\let\pgfmath@parse@next=\pgfmathparse@@
\else
\let\pgfmath@parse@next=\pgfmathparse@trynumber@loop
\fi
\fi
\fi
\fi
\pgfmath@parse@next
}%
\def\pgfmathparse@expression@is@number{%
\let\pgfmathresult=\pgfmath@expression
\pgfmath@smuggleone\pgfmathresult%
\endgroup
\ignorespaces
}%
\def\pgfmathparse@@#1\pgfmath@parse@stop{%
\let\real=\pgfmath@calc@real
\let\minof=\pgfmath@calc@minof
\let\maxof=\pgfmath@calc@maxof
\let\ratio=\pgfmath@calc@ratio
\let\widthof=\pgfmath@calc@widthof
\let\heightof=\pgfmath@calc@heightof
\let\depthof=\pgfmath@calc@depthof
\pgfmath@selectfont
\pgfmath@stack@operation={{}{}{}}%
\pgfmath@stack@operand={{}{}{}}%
\let\pgfmath@stack@operation@top=\pgfmath@stack@empty
\let\pgfmath@stack@operand@top=\pgfmath@stack@empty
\expandafter\pgfmath@bgroup@strip\expandafter{\pgfmath@expression}%
\expandafter\pgfmath@parse@@operand\pgfmath@bgroup@stripped @@@@\pgfmath@parse@stop%
}
\def\pgfmath@parse@end#1\pgfmath@parse@stop{%
\pgfmathpostparse
\pgfmath@smuggleone\pgfmathresult%
\endgroup
\ignorespaces}
\let\pgfmathpostparse=\relax
\def\pgfmathscaleresult{%
\ifpgfmathunitsdeclared
\else
\ifpgfmathignoreunitscale
\else
\afterassignment\pgfmath@gobbletilpgfmath@%
\pgfmath@x\pgfmathresultunitscale pt\relax\pgfmath@%
\expandafter\pgfmath@x\pgfmathresult\pgfmath@x%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
\fi
\fi
}
\def\pgfmathsetresultunitscale#1{\def\pgfmathresultunitscale{#1}}
\def\pgfmathresultunitscale{1}
\def\pgfmathifexpression#1#2#3{%
\pgfmathparse{#1}%
\pgfmath@iftrue{#2}{#3}%
}%
\def\pgfmath@iftrue{%
\ifdim\pgfmathresult pt=1.0pt %
\let\pgfmath@next=\pgfutil@firstoftwo
\else
\let\pgfmath@next=\pgfutil@secondoftwo
\fi
\pgfmath@next%
}%
\def\pgfmath@calc@real#1{#1}
\def\pgfmath@calc@minof#1#2{min(#1,#2)}
\def\pgfmath@calc@maxof#1#2{max(#1,#2)}
\def\pgfmath@calc@ratio#1#2{#1/#2}
\def\pgfmath@calc@widthof#1{width("#1")}
\def\pgfmath@calc@heightof#1{height("#1")}
\def\pgfmath@calc@depthof#1{depth("#1")}
\def\pgfmath@bgroup{\string\pgfmath@bgroup}
\def\pgfmath@egroup{\string\pgfmath@egroup}
\def\pgfmath@egroup@token{\pgfmath@egroup}
\def\pgfmath@text@@{@}
\def\pgfmath@text@operator{operator}
\def\pgfmath@text@function{function}
\def\pgfmath@dots{...}
\def\pgfmath@char@zero{0}
\def\pgfmath@char@quote{"}
\def\pgfmath@char@exclamation{!}
\def\pgfmath@char@plus{+}
\def\pgfmath@char@minus{-}
\def\pgfmath@char@period{.}
\def\pgfmath@char@leftangle{<}
\def\pgfmath@char@leftbracket{[}
\pgfmath@toks={#}
\edef\pgfmath@char@hash{\the\pgfmath@toks}
\def\pgfmath@tokens@make#1#2{%
\def\pgfmath@prefix{#1}%
\expandafter\pgfmath@tokens@@make#2{}}
\def\pgfmath@tokens@@make#1{%
\def\pgfmath@token{#1}%
\ifx\pgfmath@token\pgfmath@empty
\else
\pgfmath@namedef{pgfmath@token@\pgfmath@prefix @\string#1}{#1}%
\expandafter\pgfmath@tokens@@make%
\fi}
\pgfmath@tokens@make{box}{\wd\ht\dp}
\ifx\dimexpr\@undefined\else %
\pgfmath@tokens@make{dimexpr}{\dimexpr\glueexpr}
\fi
\pgfmath@tokens@make{unit}{{bp}{cc}{cm}{dd}{em}{ex}{in}{mm}{pc}{pt}{sp}}
\ifx\pdftexversion\@undefined\else %
\pgfmath@tokens@make{unit}{{nc}{nd}{px}}
\fi
\ifx\directlua\@undefined\else %
\pgfmath@tokens@make{unit}{{nc}{nd}{px}}
\fi
\ifx\kanjiskip\@undefined\else %
\pgfmath@tokens@make{unit}{{H}{Q}{zh}{zw}}
\fi
\pgfmath@tokens@make{mathunit}{{mu}}
\pgfmath@tokens@make{numeric}{.0123456789}
\pgfmath@tokens@make{number}{0123456789}
\pgfmath@tokens@make{functional}{_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ}
\pgfmath@tokens@make{exponent}{eE}
\pgfmath@tokens@make{group}{{()}{[]}{\pgfmath@bgroup\pgfmath@egroup}}
\pgfmath@tokens@make{specials}{@)]\pgfmath@egroup}
\pgfmath@tokens@make{hexadecimal}{0123456789ABCDEFabcdef}
\pgfmath@tokens@make{octal}{01234567}
\pgfmath@tokens@make{binary}{01}
\pgfmath@namedef{pgfmath@base@0x}{16}
\pgfmath@namedef{pgfmath@base@0X}{16}
\pgfmath@namedef{pgfmath@base@0b}{2}
\pgfmath@namedef{pgfmath@base@0B}{2}
\newif\ifpgfmath@dimen@
\def\pgfmath@dimen@#1{%
\begingroup
\afterassignment\pgfmath@dimen@@%
#1=0.0pt\relax\pgfmath@}
\def\pgfmath@dimen@@#1#2\pgfmath@{%
\endgroup
\ifx#1.%
\pgfmath@dimen@false
\else
\pgfmath@dimen@true
\fi}
\def\pgfmath@parse@ifbgroup#1#2{%
\let\pgfmath@parse@bgroup@after=#1%
\let\pgfmath@parse@nobgroup@after=#2%
\futurelet\pgfmath@token@let%
\pgfmath@parse@@ifbgroup}
\def\pgfmath@parse@@ifbgroup{%
\ifx\pgfmath@token@let\bgroup
\let\pgfmath@parse@next=\pgfmath@parse@@@ifbgroup
\else
\ifx\pgfmath@token@let\pgfmath@sptoken
\let\pgfmath@parse@next=\pgfmath@parse@@@@ifbgroup
\else
\let\pgfmath@parse@next=\pgfmath@parse@nobgroup@after
\fi
\fi
\pgfmath@parse@next}
\newif\ifpgfmath@octalparsing
\pgfmath@octalparsingtrue
\def\pgfmath@parse@@@ifbgroup#1{%
\pgfmath@parse@bgroup@after\pgfmath@bgroup#1\pgfmath@egroup}
{
\def\:{\pgfmath@parse@@@@ifbgroup}
\expandafter\gdef\: {\futurelet\pgfmath@token@let\pgfmath@parse@@ifbgroup}
}
\def\pgfmath@parse@operand{%
\expandafter\pgfmath@parse@@operand\pgfmath@token@next}
\def\pgfmath@parse@@operand{%
\pgfmath@parse@ifbgroup{\pgfmath@parse@@operand}{\pgfmath@parse@@operand@}}
\def\pgfmath@parse@@operand@#1{%
\def\pgfmath@token{#1}%
\ifx\pgfmath@token\pgfmath@char@plus
\let\pgfmath@parse@next=\pgfmath@parse@@operand%
\else
\ifx\pgfmath@token\pgfmath@char@minus
\pgfmath@stack@push@operation{neg}%
\let\pgfmath@parse@next=\pgfmath@parse@@operand
\else
\expandafter\ifx\csname pgfmath@operation@\expandafter\string\pgfmath@token @prefix\endcsname\pgfmath@token
\let\pgfmath@parse@next=\pgfmath@parse@prefix@operator
\else
\ifpgfmath@quickparse
\let\pgfmath@parse@next=\pgfmath@qparse@operand
\else
\let\pgfmath@number=\pgfmath@empty
\expandafter\ifx\csname pgfmath@token@functional@\string#1\endcsname\relax%
\let\pgfmath@base=\pgfmath@empty%
\let\pgfmath@token@next=\pgfmath@token%
\if#10%
\ifpgfmath@octalparsing%
\def\pgfmath@base{8}%
\fi%
\fi%
\let\pgfmath@parse@next=\pgfmath@parse@number%
\else%
\let\pgfmath@function=\pgfmath@token%
\let\pgfmath@parse@next=\pgfmath@parse@function%
\fi%
\fi%
\fi%
\fi%
\fi%
\pgfmath@parse@next%
}
\def\pgfmath@parse@prefix@operator{%
\ifx\pgfmath@token\pgfmath@char@quote%
\let\pgfmath@parse@next=\pgfmath@parse@operand@quote%
\else%
\ifx\pgfmath@token\pgfmath@char@exclamation%
\pgfmath@stack@push@operation{not}%
\let\pgfmath@parse@next=\pgfmath@parse@@operand%
\else%
\expandafter\pgfmath@stack@push@operation\expandafter{\pgfmath@token}%
\let\pgfmath@parse@next=\pgfmath@parse@@operand%
\fi%
\fi%
\pgfmath@parse@next%
}%
\def\pgfmath@parse@operand@quote#1"{%
\def\pgfmathresult{#1}%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\pgfmath@parse@@operator%
}
\def\pgfmath@qparse@operand{%
\afterassignment\pgfmath@qparse@@operand%
\pgfmath@dimen\pgfmath@token}
\def\pgfmath@qparse@@operand{%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@dimen}}%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\pgfmath@parse@@operator%
}
\def\pgfmath@parse@number{\pgfmath@parse@ifbgroup{\pgfmath@parse@number}{\pgfmath@parse@number@}}
\def\pgfmath@parse@number@#1{%
\let\pgfmath@token=\pgfmath@token@next%
\def\pgfmath@token@next{#1}%
\pgfmath@parse@@number}
\def\pgfmath@parse@@number{%
\ifx\pgfmath@token\pgfmath@egroup@token%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmath@number}%
\let\pgfmath@parse@next=\pgfmath@parse@@@operator%
\else%
\expandafter\ifcat\pgfmath@token\relax%
\expandafter\ifx\csname pgfmath@token@dimexpr@\expandafter\string\pgfmath@token\endcsname\relax%
\expandafter\ifx\pgfmath@token\numexpr%
\let\pgfmath@parse@next=\pgfmath@parse@numexpr%
\else%
\expandafter\ifx\pgfmath@token\muexpr%
\let\pgfmath@parse@next=\pgfmath@parse@muexpr%
\else%
\expandafter\ifx\csname pgfmath@token@box@\expandafter\string\pgfmath@token\endcsname\relax%
\expandafter\pgfmath@dimen@\pgfmath@token%
\ifpgfmath@dimen@%
\global\pgfmathunitsdeclaredtrue%
\pgfmath@dimen=\pgfmath@number\pgfmath@token%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@dimen}}%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\let\pgfmath@parse@next=\pgfmath@parse@operator%
\else%
\pgfmath@count=\pgfmath@token%
\expandafter\def\expandafter\pgfmath@number\expandafter{\the\pgfmath@count}%
\expandafter\ifcat\pgfmath@token@next\relax%
\let\pgfmath@parse@next=\pgfmath@parse@number%
\else%
\let\pgfmathresult=\pgfmath@number%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\let\pgfmath@parse@next=\pgfmath@parse@operator%
\fi%
\fi%
\else%
\global\pgfmathunitsdeclaredtrue%
\pgfmath@dimen=\pgfmath@number\pgfmath@token\pgfmath@token@next%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@dimen}}%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\let\pgfmath@parse@next=\pgfmath@parse@@operator%
\fi%
\fi%
\fi%
\else%
\global\pgfmathunitsdeclaredtrue%
\let\pgfmath@parse@next=\pgfmath@parse@dimexpr%
\fi%
\else%
\expandafter\ifx\csname pgfmath@token@numeric@\expandafter\string\pgfmath@token\endcsname\relax%
\expandafter\ifx\csname pgfmath@token@unit@\pgfmath@token\expandafter\string\pgfmath@token@next\endcsname\relax%
\expandafter\ifx\csname pgfmath@token@unit@\pgfmath@token\endcsname\relax%
\expandafter\ifx\csname pgfmath@token@exponent@\pgfmath@token\endcsname\relax%
\expandafter\ifx\csname pgfmath@base@\pgfmath@number\pgfmath@token\endcsname\relax%
\expandafter\ifx\csname pgfmath@token@mathunit@\pgfmath@token\expandafter\string\pgfmath@token@next\endcsname\relax%
\ifx\pgfmath@base\pgfmath@empty%
\let\pgfmathresult=\pgfmath@number%
\else%
\ifx\pgfmath@number\pgfmath@char@zero%
\let\pgfmathresult=\pgfmath@number%
\else%
\expandafter\pgfmathbasetobase\expandafter\pgfmathresult\expandafter{\pgfmath@number}{8}{10}%
\fi%
\fi%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\let\pgfmath@parse@next=\pgfmath@parse@@@operator%
\else%
\global\pgfmathunitsdeclaredtrue%
\global\pgfmathmathunitsdeclaredtrue%
\pgfmath@dimen=\pgfmath@number pt\relax%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@dimen}}%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\let\pgfmath@parse@next=\pgfmath@parse@@operator%
\fi%
\else%
\expandafter\let\expandafter\pgfmath@base\expandafter=%
\csname pgfmath@base@\pgfmath@number\pgfmath@token\endcsname%
\let\pgfmath@parse@next=\pgfmath@parse@base%
\fi%
\else%
\let\pgfmath@parse@next=\pgfmath@parse@exponent%
\fi%
\else%
\global\pgfmathunitsdeclaredtrue%
\pgfmath@dimen=\pgfmath@number\pgfmath@token\relax%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@dimen}}%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\let\pgfmath@parse@next=\pgfmath@parse@@operator%
\fi%
\else%
\global\pgfmathunitsdeclaredtrue%
\pgfmath@dimen=\pgfmath@number\pgfmath@token\pgfmath@token@next\relax%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@dimen}}%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\let\pgfmath@parse@next=\pgfmath@parse@@operator%
\fi%
\else%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgfmath@number%
\expandafter\expandafter\expandafter{\expandafter\pgfmath@number\pgfmath@token}%
\ifx\pgfmath@token\pgfmath@char@period%
\let\pgfmath@base=\pgfmath@empty%
\fi%
\let\pgfmath@parse@next=\pgfmath@parse@number%
\fi%
\fi%
\fi%
\pgfmath@parse@next%
}
\def\pgfmath@parse@dimexpr{%
\afterassignment\pgfmath@parse@dimexpr@%
\expandafter\expandafter\expandafter\pgfmath@dimen\expandafter\pgfmath@token\pgfmath@token@next%
}
\def\pgfmath@parse@dimexpr@{%
\edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@dimen}}%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\pgfmath@parse@@operator%
}
\def\pgfmath@parse@muexpr{%
\begingroup%
\afterassignment\pgfmath@parse@muexpr@%
\expandafter\expandafter\expandafter\muskip\expandafter\expandafter\expandafter0\expandafter\pgfmath@token\expandafter\pgfmath@token@next%
}
\def\pgfmath@parse@muexpr@{%
\expandafter\endgroup%
\expandafter\edef\expandafter\pgfmathresult\expandafter{\expandafter\pgfMATH@STRIPMU\the\muskip0}%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\pgfmath@parse@@operator%
}
{
\catcode`\m=12
\catcode`\u=12
\gdef\pgfMATH@STRIPMU#1mu{#1}
}
\def\pgfmath@parse@numexpr{%
\afterassignment\pgfmath@parse@numexpr@%
\expandafter\expandafter\expandafter\pgfmath@count\expandafter\pgfmath@token\pgfmath@token@next%
}
\def\pgfmath@parse@numexpr@#1{%
\expandafter\def\expandafter\pgfmath@number\expandafter{\the\pgfmath@count}%
\def\pgfmath@token@next{#1}%
\expandafter\ifcat\pgfmath@token@next\relax%
\let\pgfmath@parse@next=\pgfmath@parse@number%
\else%
\let\pgfmathresult=\pgfmath@number%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\let\pgfmath@parse@next=\pgfmath@parse@operator%
\fi%
\pgfmath@parse@next%
}
\def\pgfmath@parse@exponent{%
\afterassignment\pgfmath@parse@@exponent%
\pgfmath@count\pgfmath@token@next}
\def\pgfmath@parse@@exponent{%
\pgfmathscientific{\pgfmath@number}{\the\pgfmath@count}%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\pgfmath@parse@@operator%
}
\def\pgfmath@parse@base{%
\ifnum\pgfmath@base=2\relax%
\let\pgfmath@parse@next=\pgfmath@parse@binary%
\else%
\ifnum\pgfmath@base=16\relax%
\let\pgfmath@parse@next=\pgfmath@parse@hexadecimal%
\else%
\pgfmath@error{Unexpected numerical base `\pgfmath@base'}{}%
\def\pgfmathresult{0}%
\let\pgfmath@parse@next=\pgfmath@parse@end%
\fi%
\fi%
\let\pgfmath@number=\pgfmath@empty%
\expandafter\pgfmath@parse@next\pgfmath@token@next%
}
\def\pgfmath@parse@binary#1{%
\expandafter\ifx\csname pgfmath@token@binary@#1\endcsname\relax%
\expandafter\pgfmathbasetobase\expandafter\pgfmathresult\expandafter{\pgfmath@number}{2}{10}%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\def\pgfmath@token@next{#1}%
\let\pgfmath@parse@next=\pgfmath@parse@operator%
\else%
\expandafter\def\expandafter\pgfmath@number\expandafter{\pgfmath@number#1}%
\let\pgfmath@parse@next=\pgfmath@parse@binary%
\fi%
\pgfmath@parse@next%
}
\def\pgfmath@parse@hexadecimal#1{%
\expandafter\ifx\csname pgfmath@token@hexadecimal@#1\endcsname\relax%
\expandafter\pgfmathbasetobase\expandafter\pgfmathresult\expandafter{\pgfmath@number}{16}{10}%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\def\pgfmath@token@next{#1}%
\let\pgfmath@parse@next=\pgfmath@parse@operator%
\else%
\expandafter\def\expandafter\pgfmath@number\expandafter{\pgfmath@number#1}%
\let\pgfmath@parse@next=\pgfmath@parse@hexadecimal%
\fi%
\pgfmath@parse@next%
}
\def\pgfmath@parse@function{\pgfmath@parse@ifbgroup{\pgfmath@parse@function}{\pgfmath@parse@@function}}
\def\pgfmath@parse@function@{\futurelet\pgfmath@token@let\pgfmath@parse@@function}
\def\pgfmath@parse@@function{%
\ifx\pgfmath@token@let\pgfmath@sptoken%
\let\pgfmath@token=\pgfmath@empty%
\let\pgfmath@parse@next=\pgfmath@parse@@@@function%
\else%
\let\pgfmath@parse@next=\pgfmath@parse@@@function%
\fi%
\pgfmath@parse@next}
\def\pgfmath@parse@@@function#1{%
\expandafter\ifx\csname pgfmath@token@functional@\expandafter\string#1\endcsname\relax%
\expandafter\ifx\csname pgfmath@token@number@\expandafter\string#1\endcsname\relax%
\def\pgfmath@token{#1}%
\let\pgfmath@parse@next=\pgfmath@parse@@@@function%
\else%
\expandafter\def\expandafter\pgfmath@function\expandafter{\pgfmath@function#1}%
\let\pgfmath@parse@next=\pgfmath@parse@function@%
\fi%
\else%
\edef\pgfmath@function{\pgfmath@function#1}%
\let\pgfmath@parse@next=\pgfmath@parse@function@%
\fi%
\pgfmath@parse@next}
\def\pgfmath@parse@@@@function{%
\expandafter\ifx\csname pgfmath@function@\pgfmath@function\endcsname\relax%
\pgfmath@error{Unknown function `\pgfmath@function'}{}%
\def\pgfmathresult{0}%
\let\pgfmath@parse@next=\pgfmath@parse@end%
\else%
\expandafter\ifnum\csname pgfmath@operation@\pgfmath@function @arity\endcsname=0\relax%
\csname pgfmath\pgfmath@function @\endcsname%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\let\pgfmath@parse@next=\pgfmath@parse@@operator%
\else%
\expandafter\pgfmath@stack@push@operation\expandafter{\pgfmath@function}%
\let\pgfmath@parse@next=\pgfmath@parse@@operand%
\fi%
\fi%
\expandafter\pgfmath@parse@next\pgfmath@token}
\def\pgfmath@parse@operator{\pgfmath@parse@ifbgroup{\pgfmath@parse@operator}{\pgfmath@parse@operator@}}%
\def\pgfmath@parse@operator@#1{%
\let\pgfmath@token=\pgfmath@token@next%
\def\pgfmath@token@next{#1}%
\pgfmath@parse@@@operator}
\def\pgfmath@parse@@operator{\pgfmath@parse@ifbgroup{\pgfmath@parse@@operator}{\pgfmath@parse@@operator@}}%
\def\pgfmath@parse@@operator@#1{%
\def\pgfmath@token{#1}%
\pgfmath@parse@ifbgroup{\pgfmath@parse@@operator@@}{\pgfmath@parse@@operator@@}}%
\def\pgfmath@parse@@operator@@#1{%
\def\pgfmath@token@next{#1}%
\pgfmath@parse@@@operator}
\def\pgfmath@parse@@@operator{%
\expandafter\ifx\csname pgfmath@operator@\pgfmath@token\expandafter\string\pgfmath@token@next\endcsname\relax%
\expandafter\ifx\csname pgfmath@operator@\pgfmath@token\endcsname\relax%
\pgfmath@error{Unknown operator `\pgfmath@token' or `\pgfmath@token\pgfmath@token@next'}{}%
\def\pgfmathresult{0}%
\let\pgfmath@parse@next=\pgfmath@parse@end%
\else%
\expandafter\pgfmath@operation@process\expandafter{\pgfmath@token}%
\ifx\pgfmath@token\pgfmath@text@@%
\let\pgfmath@parse@next=\pgfmath@parse@end%
\else%
\expandafter\ifx\csname pgfmath@operation@\pgfmath@token @postfix\endcsname\pgfmath@token%
\ifx\pgfmath@token@next\pgfmath@char@leftbracket%
\let\pgfmath@parse@next=\pgfmath@parse@operand%
\else%
\let\pgfmath@parse@next=\pgfmath@parse@operator%
\fi%
\else%
\let\pgfmath@parse@next=\pgfmath@parse@operand%
\fi%
\fi%
\fi%
\else%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter%
\pgfmath@token\expandafter\expandafter\expandafter%
{\expandafter\pgfmath@token\pgfmath@token@next}%
\expandafter\pgfmath@operation@process\expandafter{\pgfmath@token}%
\let\pgfmath@parse@next=\pgfmath@parse@@operand%
\fi%
\pgfmath@parse@next%
}
\def\pgfmath@operation@process#1{%
\def\pgfmath@operator{#1}%
\ifx\pgfmath@stack@operation@top\pgfmath@stack@empty%
\else%
\pgfmath@operation@@process%
\fi%
\expandafter\ifx\csname pgfmath@token@specials@#1\endcsname\relax%
\pgfmath@stack@push@operation{#1}%
\fi%
}
\def\pgfmath@operation@@process{%
\ifx\pgfmath@stack@operation@top\pgfmath@stack@empty%
\let\pgfmath@parse@next=\relax%
\else%
\ifnum\csname pgfmath@operation@\pgfmath@operator @precedence\endcsname>%
\csname pgfmath@operation@\pgfmath@stack@operation@top @precedence\endcsname\relax%
\let\pgfmath@parse@next=\relax%
\else%
\let\pgfmath@stack@operation@last=\pgfmath@stack@operation@top%
\expandafter\ifx\csname pgfmath@operator@\pgfmath@stack@operation@top\endcsname\relax%
\pgfmath@function@@@process%
\else%
\pgfmath@operator@@@process%
\fi%
\expandafter\pgfmath@stack@push@operand\expandafter{\pgfmathresult}%
\expandafter\ifx\csname pgfmath@token@group@\pgfmath@stack@operation@last\pgfmath@operator\endcsname\relax%
\let\pgfmath@parse@next=\pgfmath@operation@@process%
\else%
\let\pgfmath@parse@next=\relax%
\fi%
\fi%
\fi%
\pgfmath@parse@next%
}
\def\pgfmath@operator@@@process{%
\pgfmath@stack@pop@operation\pgfmath@@operator%
\pgfmath@stack@pop@operand\pgfmath@operand@a%
\ifcase\csname pgfmath@operation@\pgfmath@@operator @arity\endcsname\relax%
\or%
\pgfmath@operator@@@@process{\pgfmath@operand@a}%
\or%
\pgfmath@stack@pop@operand\pgfmath@operand@b%
\pgfmath@operator@@@@process{\pgfmath@operand@b}{\pgfmath@operand@a}%
\or%
\pgfmath@stack@pop@operand\pgfmath@operand@b%
\expandafter\pgfmath@operator@@@@process\expandafter%
{\expandafter\pgfmath@operand@b\expandafter}\pgfmath@operand@a%
\else%
\fi%
}
\def\pgfmath@operator@@@@process{%
\csname pgfmath%
\csname pgfmath@operation@\pgfmath@@operator @name\endcsname%
@\endcsname}
\def\pgfmath@function@@@process{%
\ifnum\csname pgfmath@operation@\pgfmath@stack@operation@top @arity\endcsname>0\relax%
\pgfmath@stack@pop@operation\pgfmath@@function%
\pgfmath@stack@pop@operand\pgfmath@@operand%
\ifnum\csname pgfmath@operation@\pgfmath@@function @arity\endcsname>1\relax%
\ifnum\csname pgfmath@operation@\pgfmath@@function @arity\endcsname>9\relax%
\csname pgfmath\pgfmath@@function @\endcsname{\pgfmath@@operand}%
\else%
\expandafter\pgfmath@function@@@@process\pgfmath@@operand%
\fi
\else%
\expandafter\pgfmath@function@@@@process\expandafter{\pgfmath@@operand}%
\fi%
\fi%
}
\def\pgfmath@function@@@@process{\csname pgfmath\pgfmath@@function @\endcsname}
\newtoks\pgfmath@stack@operand
\newtoks\pgfmath@stack@operation
\let\pgfmath@stack@empty=\pgfmath@empty
\def\pgfmath@stack@push#1#2{%
\def\pgfmath@stack@top{#2}%
\expandafter\expandafter\expandafter#1%
\expandafter\expandafter\expandafter{\expandafter\expandafter\expandafter%
{\expandafter\pgfmath@stack@top\expandafter}\the#1}}%
\def\pgfmath@stack@pop#1#2{\expandafter\pgfmath@stack@@pop\the#1\pgfmath@stack@stop{#1}{#2}}
\def\pgfmath@stack@@pop#1#2#3\pgfmath@stack@stop#4#5{\def#5{#1}#4={{#2}#3}\def\pgfmath@stack@top{#2}}
\def\pgfmath@stack@push@operation#1{%
\pgfmath@stack@push\pgfmath@stack@operation{#1}%
\let\pgfmath@stack@operation@top=\pgfmath@stack@top}
\def\pgfmath@stack@pop@operation#1{%
\pgfmath@stack@pop\pgfmath@stack@operation{#1}%
\let\pgfmath@stack@operation@top=\pgfmath@stack@top}
\def\pgfmath@stack@push@operand#1{%
\pgfmath@stack@push\pgfmath@stack@operand{#1}%
\let\pgfmath@stack@operand@top=\pgfmath@stack@top}
\def\pgfmath@stack@pop@operand#1{%
\pgfmath@stack@pop\pgfmath@stack@operand{#1}%
\let\pgfmath@stack@operand@top=\pgfmath@stack@top}
\def\pgfmathdeclareoperator#1#2#3#4#5{%
\ifx\pgfmath@operatorlist\pgfutil@empty
\edef\pgfmath@operatorlist{{\string#1}}%
\else
\edef\pgfmath@operatorlist{\pgfmath@operatorlist,{\string#1}}%
\fi
\pgfmath@namedef{pgfmath@operator@\string#1}{#1}%
\pgfmath@namedef{pgfmath@operation@\string#1@name}{#2}%
\pgfmath@namedef{pgfmath@operation@\string#1@arity}{#3}%
\pgfmath@namedef{pgfmath@operation@\string#1@#4}{#1}%
\pgfmath@namedef{pgfmath@operation@\string#1@precedence}{#5}%
}
\def\pgfmath@operatorlist{}
\pgfmathdeclareoperator{+}{add} {2}{infix}{500}
\pgfmathdeclareoperator{-}{subtract}{2}{infix}{500}
\pgfmathdeclareoperator{*}{multiply}{2}{infix}{700}
\pgfmathdeclareoperator{/}{divide} {2}{infix}{700}
\pgfmathdeclareoperator{^}{pow} {2}{infix}{900}
\pgfmathdeclareoperator{<} {} {1}{prefix} {1}
\pgfmathdeclareoperator{>} {greater} {2}{infix} {250}
\pgfmathdeclareoperator{<} {less} {2}{infix} {250}
\pgfmathdeclareoperator{==}{equal} {2}{infix} {250}
\pgfmathdeclareoperator{>=}{notless} {2}{infix} {250}
\pgfmathdeclareoperator{<=}{notgreater}{2}{infix} {250}
\pgfmathdeclareoperator{&&}{and} {2}{infix} {200}
\pgfmathdeclareoperator{||}{or} {2}{infix} {200}
\pgfmathdeclareoperator{!=}{notequal} {2}{infix} {250}
\pgfmathdeclareoperator{!} {not} {1}{prefix}{975}
\pgfmathdeclareoperator{?} {ifthenelse}{3}{infix} {100}
\pgfmathdeclareoperator{:} {@@collect} {2}{infix}{101}
\pgfmathdeclareoperator{!}{factorial}{1}{postfix}{800}%
\pgfmathdeclareoperator{r}{deg} {1}{postfix}{600}
\pgfmathdeclareoperator{,}{@collect} {2}{infix} {10}
\pgfmathdeclareoperator{[}{@startindex}{2}{prefix} {7}
\pgfmathdeclareoperator{]}{@endindex} {0}{postfix}{6}
\pgfmathdeclareoperator{(}{@startgroup}{1}{prefix} {5}
\pgfmathdeclareoperator{)}{@endgroup} {0}{postfix}{4}
\pgfmathdeclareoperator{\pgfmath@bgroup}{@startarray}{1}{prefix} {3}
\pgfmathdeclareoperator{\pgfmath@egroup}{@endarray} {1}{postfix}{2}%
\pgfmathdeclareoperator{"}{}{1}{prefix}{1}
\pgfmathdeclareoperator{@}{}{0}{postfix}{0}
\def\pgfmath@startgroup@#1{\pgfmath@protected@edef\pgfmathresult{#1}}
\def\pgfmath@endgroup@{}%
\def\pgfmath@startindex@#1#2{%
\expandafter\pgfmatharray@#1{#2}%
\expandafter\pgfmath@bgroup@strip\expandafter{\pgfmathresult}%
\ifx\pgfmath@token@let\bgroup%
\expandafter\def\expandafter\pgfmathresult\expandafter{\expandafter{\pgfmathresult}}%
\fi}
\def\pgfmath@endindex@{}%
\def\pgfmath@startarray@#1{\expandafter\def\expandafter\pgfmathresult\expandafter{\expandafter{#1}}}
\def\pgfmath@endarray@#1{\expandafter\def\expandafter\pgfmathresult\expandafter{#1}}%
\def\pgfmath@@collect@#1#2{%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter%
\pgfmathresult\expandafter\expandafter\expandafter{\expandafter\expandafter\expandafter%
{\expandafter#1\expandafter}\expandafter{#2}}%
}
\def\pgfmath@collect@#1#2{%
\expandafter\def\expandafter\pgfmath@collect@original\expandafter{#1}%
\expandafter\pgfmath@bgroup@strip\expandafter{#1}%
\ifx\pgfmath@token@let\bgroup%
\ifx\pgfmath@collect@original\pgfmath@bgroup@stripped%
\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmath@bgroup@stripped}%
\else%
\expandafter\def\expandafter\pgfmathresult\expandafter{\expandafter{\pgfmath@bgroup@stripped}}%
\fi%
\else%
\expandafter\def\expandafter\pgfmathresult\expandafter{\expandafter{\pgfmath@bgroup@stripped}}%
\fi%
\expandafter\pgfmath@bgroup@strip\expandafter{#2}%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter%
\pgfmathresult\expandafter\expandafter\expandafter%
{\expandafter\pgfmathresult\expandafter{\pgfmath@bgroup@stripped}}%
}
\def\pgfmath@bgroup@strip#1{%
\def\pgfmath@bgroup@strip@last{#1}%
\pgfmath@bgroup@@strip{#1}\pgfmath@\pgfmath@@\pgfmath@@@}
\def\pgfmath@bgroup@strip@#1{%
\def\pgfmath@bgroup@strip@last{#1}%
\pgfmath@bgroup@@strip#1\pgfmath@\pgfmath@@\pgfmath@@@}
\def\pgfmath@bgroup@pgfmath@{\pgfmath@}
\def\pgfmath@bgroup@@strip{%
\futurelet\pgfmath@token@let\pgfmath@bgroup@@@strip}
\def\pgfmath@bgroup@@@strip#1#2#3\pgfmath@@@{%
\ifx\pgfmath@token@let\bgroup
\def\pgfmath@bgroup@test{#2}%
\ifx\pgfmath@bgroup@test\pgfmath@bgroup@pgfmath@
\def\pgfmath@next{\pgfmath@bgroup@strip@{#1}}%
\else
\let\pgfmath@bgroup@stripped=\pgfmath@bgroup@strip@last
\let\pgfmath@next=\relax
\fi
\else
\pgfmath@bgroup@@@@strip#1#2#3%
\let\pgfmath@next=\relax
\fi
\pgfmath@next}
\def\pgfmath@bgroup@@@@strip#1\pgfmath@\pgfmath@@{%
\def\pgfmath@bgroup@stripped{#1}}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathparser.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathutil.code.tex ====
\def\pgfmathincluded{}
\def\pgfmath@grabv#1#2#3#4#5#6#7\pgfmath@grabv{#2#3#4#5\ifx#6!!\fi}
\def\pgfmath@ifskip@extract#1{\expandafter\pgfmath@grabv\meaning#1!!!!!!\pgfmath@grabv}
\def\pgfmath@iftoks@extract#1{\expandafter\pgfmath@grabv\meaning#1!!!!!!\pgfmath@grabv}
\def\pgfmath@grabvi#1#2#3#4#5#6#7#8\pgfmath@grabvi{#2#3#4#5#6\ifx#7!!\fi}
\def\pgfmath@ifdimen@extract#1{\expandafter\pgfmath@grabvi\meaning#1!!!!!!\pgfmath@grabvi}
\def\pgfmath@ifcount@extract#1{\expandafter\pgfmath@grabvi\meaning#1!!!!!!\pgfmath@grabvi}
\def\pgfmath@grabvii#1#2#3#4#5#6#7#8#9\pgfmath@grabvii{#2#3#4#5#6#7\ifx#8!!\fi}
\def\pgfmath@ifmuskip@extract#1{\expandafter\pgfmath@grabvii\meaning#1!!!!!!\pgfmath@grabvii}
\def\pgfmath@ifregister@unguarded#1#2{%
\expandafter\ifx\csname\csname pgfmath@if#1@extract\endcsname{#2}\expandafter\endcsname\csname #1\endcsname
\expandafter\pgfutil@firstoftwo
\else
\expandafter\pgfutil@secondoftwo
\fi}
\def\pgfmath@ifregister#1#2{%
\pgfutil@IfUndefined{pgfmath@if#1@extract}%
{\errmessage{Package PGF Math Error: Cannot test for #1 register}}%
{\pgfutil@IfUndefined{\csname pgfmath@if#1@extract\endcsname{#2}}%
{\pgfutil@secondoftwo}}%
{\pgfmath@ifregister@unguarded{#1}{#2}}}
\def\pgfmath@ensureregister#1#2{%
\pgfmath@ifregister{#1}{#2}%
{}%
{\csname new#1\endcsname#2}%
}
\pgfmath@ensureregister{dimen}{\pgf@x}
\pgfmath@ensureregister{dimen}{\pgf@xa}
\pgfmath@ensureregister{dimen}{\pgf@xb}
\pgfmath@ensureregister{dimen}{\pgf@xc}
\pgfmath@ensureregister{dimen}{\pgf@y}
\pgfmath@ensureregister{dimen}{\pgf@ya}
\pgfmath@ensureregister{dimen}{\pgf@yb}
\pgfmath@ensureregister{dimen}{\pgf@yc}
\pgfmath@ensureregister{dimen}{\pgfutil@tempdima}
\pgfmath@ensureregister{dimen}{\pgfutil@tempdimb}
\pgfmath@ensureregister{count}{\c@pgf@counta}
\pgfmath@ensureregister{count}{\c@pgf@countb}
\pgfmath@ensureregister{count}{\c@pgf@countc}
\pgfmath@ensureregister{count}{\c@pgf@countd}
\pgfmath@ensureregister{count}{\pgfutil@tempcnta}
\pgfmath@ensureregister{count}{\pgfutil@tempcntb}
\let\pgfmath@x\pgf@x
\let\pgfmath@xa\pgf@xa
\let\pgfmath@xb\pgf@xb
\let\pgfmath@xc\pgf@xc
\let\pgfmath@y\pgf@y
\let\pgfmath@ya\pgf@ya
\let\pgfmath@yb\pgf@yb
\let\pgfmath@yc\pgf@yc
\let\pgfmath@tempdima\pgfutil@tempdima
\let\pgfmath@tempdimb\pgfutil@tempdimb
\let\c@pgfmath@counta\c@pgf@counta
\let\c@pgfmath@countb\c@pgf@countb
\let\c@pgfmath@countc\c@pgf@countc
\let\c@pgfmath@countd\c@pgf@countd
\let\pgfmath@tempcnta\pgfutil@tempcnta
\let\pgfmath@tempcntb\pgfutil@tempcntb
\ifx\pgfutil@ifnextchar\pgfmath@undefined%
\long\def\pgfmath@ifnextchar#1#2#3{%
\let\pgfmath@reserved@d#1%
\def\pgfmath@reserved@a{#2}%
\def\pgfmath@reserved@b{#3}%
\futurelet\pgfmath@let@token\pgfmath@ifnch}
\def\pgfmath@ifnch{%
\ifx\pgfmath@let@token\pgfmath@sptoken%
\let\pgfmath@reserved@c\pgfmath@xifnch%
\else%
\ifx\pgfmath@let@token\pgfmath@reserved@d%
\let\pgfmath@reserved@c\pgfmath@reserved@a%
\else%
\let\pgfmath@reserved@c\pgfmath@reserved@b%
\fi%
\fi%
\pgfmath@reserved@c}
{%
\def\:{\global\let\pgfmath@sptoken= } \:
\def\:{\pgfmath@xifnch} \expandafter\gdef\: {\futurelet\pgfmath@let@token\pgfmath@ifnch}
}%
\else%
\let\pgfmath@ifnextchar\pgfutil@ifnextchar%
{%
\def\:{\global\let\pgfmath@sptoken= } \:
}%
\fi%
\ifx\pgfutil@ifundefined\pgfmath@undefined%
\long\def\pgfmath@ifundefined#1{%
\expandafter\ifx\csname#1\endcsname\relax%
\expandafter\pgfmath@firstoftwo%
\else%
\expandafter\pgfmath@secondoftwo%
\fi}%
\else%
\let\pgfmath@ifundefined\pgfutil@ifundefined%
\fi%
\ifx\pgfutil@selectfont\pgfmath@undefined%
\ifx\selectfont\pgfmath@undefined%
\let\pgfmath@selectfont\rm%
\else%
\let\pgfmath@selectfont\selectfont%
\fi%
\else%
\let\pgfmath@selectfont\pgfutil@selectfont%
\fi%
\newif\ifpgfmath@in@
\def\pgfmath@in@#1#2{%
\def\pgfmath@in@@##1#1##2##3\pgfmath@in@@{%
\ifx\pgfmath@in@##2\pgfmath@in@false\else\pgfmath@in@true\fi}%
\pgfmath@in@@#2#1\pgfmath@in@\pgfmath@in@@}
\ifx\pgf@sys@tonumber\pgfmath@undefined%
{\catcode`\p=12\catcode`\t=12\gdef\Pgf@geT#1pt{#1}}
\def\pgfmath@tonumber#1{\expandafter\Pgf@geT\the#1}
\else%
\let\pgfmath@tonumber\pgf@sys@tonumber%
\fi%
\ifx\PackageWarning\pgfmath@undefined
\def\pgfmath@PackageWarning#1#2{\immediate\write-1{Package #1: Warning! #2.}}%
\else%
\let\pgfmath@PackageWarning\PackageWarning%
\fi%
\ifx\PackageError\pgfmath@undefined
\def\pgfmath@PackageError#1#2#3{\errmessage{Package #1 Error: #2.}}%
\else%
\let\pgfmath@PackageError\PackageError%
\fi%
\def\pgfmath@error#1#2{%
\pgfmath@PackageError{PGF Math}{%
#1%
\pgfutil@ifundefined{pgfmath@expression}{}{ (in '\pgfmath@expression')}%
}{#2}%
}
\def\pgfmath@warning#1{%
\pgfmath@PackageWarning{PGF Math}{%
#1%
\pgfutil@ifundefined{pgfmath@expression}{}{ (in '\pgfmath@expression')}%
}%
}
{\catcode`\p=12\catcode`\t=12\gdef\PgfmaTh@PT{pt}}
\edef\pgfmath@pt{\PgfmaTh@PT}%
\def\pgfmath@empty{}
\def\pgfmath@firstoftwo#1#2{#1}
\def\pgfmath@secondoftwo#1#2{#2}
\def\pgfmath@gobbletilpgfmath@#1\pgfmath@{}
\def\pgfmath@gobbleone#1{}%
\def\pgfmath@namedef#1{\expandafter\def\csname#1\endcsname}
\def\pgfmath@nameedef#1{\expandafter\edef\csname#1\endcsname}
\newif\ifpgfmathcontinueloop
\def\pgfmathloop#1\repeatpgfmathloop{%
\def\pgfmathcounter{1}%
\def\pgfmath@iterate{%
#1\relax%
{%
\c@pgfmath@counta\pgfmathcounter%
\advance\c@pgfmath@counta1\relax%
\xdef\pgfmathloop@temp{\the\c@pgfmath@counta}%
}%
\edef\pgfmathcounter{\pgfmathloop@temp}%
\expandafter\pgfmath@iterate\fi}%
\pgfmath@iterate\let\pgfmath@iterate\relax}
\let\repeatpgfmathloop\fi
\def\pgfmathbreakloop{\let\pgfmath@iterate\relax}%
\def\pgfmath@returnone#1\endgroup{%
\pgfmath@x#1%
\edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@x}}%
\expandafter\endgroup\expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmath@temp}%
}
\let\pgfmathreturn=\pgfmath@returnone
\def\pgfmath@smuggleone#1\endgroup{%
\expandafter\endgroup\expandafter\def\expandafter#1\expandafter{#1}}
\let\pgfmathsmuggle=\pgfmath@smuggleone
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/math/pgfmathutil.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleanimations.code.tex ====
\ProvidesFileRCS{pgfmoduleanimations.code.tex}
\input pgfsysanimations.code.tex
\def\pgfanimateattribute#1#2{%
\pgfanimateattributecode{#1}{\pgfkeys{/pgf/animation/.cd,#2}}%
}%
\def\pgfanimateattributecode#1#2{%
{%
\pgfkeys{/pgf/@animation attributes/.cd,#1}%
#2%
\csname pgf@animation@check@\pgf@animation@attribute\endcsname%
\pgfsysanimate{\pgf@animation@attribute}%
}%
}%
\def\pgfsnapshot#1{\pgfparsetime{#1}\expandafter\pgfsysanimsnapshot\expandafter{\pgftimeresult}}%
\def\pgfsnapshotafter#1{\pgfparsetime{#1}\expandafter\pgfsysanimsnapshotafter\expandafter{\pgftimeresult}}%
\pgfkeys{/pgf/@animation attributes/.cd,
visible/.code=\pgf@animate@attr{visibility}{mapped}\def\pgf@anim@map@true{visible}\def\pgf@anim@map@false{hidden},
stage/.code=\pgf@animate@attr{visibility}{mapped}\def\pgf@anim@map@true{visible}\def\pgf@anim@map@false{hidden}\pgfsysanimkeybase\pgfsysanimvaltext{hidden},
opacity/.code=\pgf@animate@attr{opacity}{scalar},
fill opacity/.code=\pgf@animate@attr{fillopacity}{scalar},
draw opacity/.code=\pgf@animate@attr{strokeopacity}{scalar},
stroke opacity/.style=draw opacity,
line width/.code=\pgf@animate@attr{linewidth}{dimension},
fill/.code=\pgf@animate@attr{fillcolor}{color},
draw/.code=\pgf@animate@attr{strokecolor}{color},
color/.code=\pgf@animate@attr{color}{color},
stroke/.style=draw,
motion/.code=\pgf@animate@attr{motion}{scalar},
translate/.code=\pgf@animate@attr{translate}{point},
scale/.code=\pgf@animate@attr{scale}{scaling},
rotate/.code=\pgf@animate@attr{rotate}{scalar},
xskew/.code=\pgf@animate@attr{skewx}{scalar},
yskew/.code=\pgf@animate@attr{skewy}{scalar},
skew x/.style=xskew,
skew y/.style=yskew,
path/.code=\pgf@animate@attr{path}{path},
softpath/.code=\pgf@animate@attr{path}{softpath},
view/.code=\pgf@animate@attr{viewbox}{viewbox},
dash/.code=\pgf@animate@attr{dash}{dash},
none/.code=\pgf@animate@attr{none}{none},
}%
\def\pgf@animate@attr#1#2{%
\def\pgf@animation@attribute{#1}%
\expandafter\let\expandafter\pgfanim@type@parser\csname pgfanim@parse@type@#2\endcsname%
}%
\def\pgfparsetime#1{%
\begingroup%
\pgfmathdeclareoperator{s}{@seconds}{1}{postfix}{600}%
\pgfmathdeclareoperator{m}{m@encountered}{1}{postfix}{600}%
\pgfmathdeclareoperator{i}{i@encountered}{1}{postfix}{600}%
\pgfmathdeclareoperator{n}{@minutes}{1}{postfix}{600}%
\pgfmathdeclareoperator{h}{@hours}{1}{postfix}{600}%
\pgfmathdeclareoperator{:}{time@colon}{2}{infix}{50}%
\pgfmath@octalparsingfalse%
\pgfmathparse{#1}%
\expandafter\endgroup%
\expandafter\def\expandafter\pgftimeresult\expandafter{\pgfmathresult}%
}%
\newif\ifpgfanim@m@encountered
\newif\ifpgfanim@i@encountered
\pgfmathdeclarefunction{@seconds}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\ifpgfanim@m@encountered%
\divide\pgfmath@x by1000\relax%
\fi%
\global\pgfanim@m@encounteredfalse%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\pgfmathdeclarefunction{m@encountered}{1}{%
\global\pgfanim@m@encounteredtrue%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\pgfmathdeclarefunction{i@encountered}{1}{%
\ifpgfanim@m@encountered%
\global\pgfanim@m@encounteredfalse%
\global\pgfanim@i@encounteredtrue%
\else%
\pgfmath@error{Unexpected i}{}%
\fi%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\pgfmathdeclarefunction{@minutes}{1}{%
\ifpgfanim@i@encountered%
\global\pgfanim@i@encounteredfalse%
\else%
\pgfmath@error{Unexpected n}{}%
\fi%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\pgfmath@x60\pgfmath@x\relax%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\pgfmathdeclarefunction{@hours}{1}{%
\begingroup%
\expandafter\pgfmath@x#1pt\relax%
\pgfmath@x3600\pgfmath@x\relax%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\pgfmathdeclarefunction{time@colon}{2}{%
\begingroup%
\pgfmath@x=#1pt\relax%
\pgfmath@x=60\pgfmath@x\relax%
\pgfmath@y=#2pt\relax%
\advance\pgfmath@x by\pgfmath@y%
\pgfmath@returnone\pgfmath@x%
\endgroup%
}%
\def\pgfanimationset{\pgfqkeys{/pgf/animation}}%
\pgfanimationset{
whom/.code={%
\pgf@anim@decomp{#1}%
\pgfidrefnextuse\pgf@anim@id\pgf@anim@id@name%
\expandafter\expandafter\expandafter\pgfsysanimkeywhom\expandafter\expandafter\expandafter{\expandafter\pgf@anim@id\expandafter}\expandafter{\pgf@anim@type}%
\let\pgf@anim@whom@id\pgf@anim@id%
\let\pgf@anim@whom@type\pgf@anim@type%
}
}%
\def\pgf@anim@decomp#1{%
\edef\pgf@temp{#1}%
\expandafter\pgfutil@in@\expandafter.\expandafter{\pgf@temp}%
\ifpgfutil@in@%
\expandafter\pgf@anim@decomp@\pgf@temp\pgf@stop%
\else%
\expandafter\pgf@anim@decomp@\pgf@temp.\pgf@stop%
\fi%
}%
\def\pgf@anim@decomp@#1.#2\pgf@stop{%
\def\pgf@anim@id@name{#1}%
\def\pgf@anim@type{#2}%
}%
\pgfanimationset{
name/.code=\pgfuseid{#1},
}%
\pgfanimationset{
restart/.is choice,
restart/.default=true,
restart/true/.code=\pgfsysanimkeyrestartalways,
restart/false/.code=\pgfsysanimkeyrestartnever,
restart/never/.code=\pgfsysanimkeyrestartnever,
restart/when not active/.code=\pgfsysanimkeyrestartwhennotactive,
}%
\pgfanimationset{
repeats/.code={%
\pgfutil@in@{accumulating\pgf@stop}{#1\pgf@stop}%
\ifpgfutil@in@%
\pgfsysanimkeyaccumulate%
\pgfanim@parse@acc#1\pgf@stop%
\else%
\pgfsysanimkeynoaccumulate%
\pgfanim@parse@noacc{#1}%
\fi%
},
repeats/.default=,
repeat/.style={repeats={#1}},
repeat/.default=,
}%
\def\pgfanim@parse@acc#1accumulating\pgf@stop{%
\pgfanim@parse@noacc{#1}%
}%
\def\pgfanim@parse@noacc#1{%
\pgfutil@in@{\pgf@stop for}{\pgf@stop#1}%
\ifpgfutil@in@%
\pgfanim@parse@for#1\pgf@stop%
\else%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgfutil@empty%
\pgfsysanimkeyrepeatindefinite%
\else%
\pgfmathparse{#1}%
\expandafter\pgfsysanimkeyrepeat\expandafter{\pgfmathresult}%
\fi%
\fi%
}%
\def\pgfanim@parse@for for#1\pgf@stop{\pgfparsetime{#1}\expandafter\pgfsysanimkeyrepeatdur\expandafter{\pgftimeresult}}%
\pgfanimationset{
begin/.code=\pgfparsetime{#1}\expandafter\pgfsysanimkeyoffset\expandafter{\pgftimeresult}{begin},
end/.code=\pgfparsetime{#1}\expandafter\pgfsysanimkeyoffset\expandafter{\pgftimeresult}{end},
}%
\pgfanimationset{
begin on/.code={\pgfanim@make@event{#1}{begin}},%
end on/.code={\pgfanim@make@event{#1}{end}},
}%
\def\pgfanim@make@event#1#2{%
\let\pgfanim@event@event\pgfutil@empty%
\let\pgf@anim@id\pgfutil@empty%
\let\pgf@anim@type\pgfutil@empty%
\let\pgfanim@event@key\pgfutil@empty%
\let\pgfanim@event@repeat\pgfutil@empty%
\let\pgfanim@event@delay\pgfutil@empty%
\pgfkeys{/pgf/animation/events/.cd,#1}%
\ifx\pgfanim@event@key\pgfutil@empty%
\ifx\pgfanim@event@repeat\pgfutil@empty%
\ifx\pgfanim@event@event\pgfutil@empty%
\pgferror{No event specified}%
\else%
\pgfsysanimkeyevent{\pgf@anim@id}{\pgf@anim@type}{\pgfanim@event@event}{\pgfanim@event@delay}{#2}%
\fi%
\else%
\pgfsysanimkeyrepeatevent{\pgf@anim@id}{\pgf@anim@type}{\pgfanim@event@repeat}{\pgfanim@event@delay}{#2}%
\fi%
\else%
\pgfsysanimkeyaccesskey{\pgfanim@event@key}{\pgfanim@event@delay}{#2}%
\fi%
}%
\pgfkeys{/pgf/animation/events/.cd,
event/.store in=\pgfanim@event@event,
of/.code={%
\pgf@anim@decomp{#1}%
\pgfidrefprevuse\pgf@anim@id\pgf@anim@id@name%
\ifx\pgf@anim@id\pgfutil@empty%
\pgferror{Unknown object/node name '\pgf@anim@id@name'. Did you
mean 'of next=\pgf@anim@id@name'?}%
\fi%
},
of next/.code={%
\pgf@anim@decomp{#1}%
\pgfidrefnextuse\pgf@anim@id\pgf@anim@id@name%
},
of id/.code=\def\pgf@anim@id{#1},
key/.store in=\pgfanim@event@key,
repeat/.code=\pgfmathparse{#1}\let\pgfanim@event@repeat\pgfmathresult,
delay/.code=\pgfparsetime{#1}\let\pgfanim@event@delay\pgftimeresult,
click/.style={event=click},
focus in/.style={event=focusin},
focus out/.style={event=focusout},
mouse down/.style={event=mousedown},
mouse up/.style={event=mouseup},
mouse over/.style={event=mouseover},
mouse move/.style={event=mousemove},
mouse out/.style={event=mouseout},
begin/.style={event=begin},
end/.style={event=end},
}%
\pgfanimationset{
begin snapshot/.code=
\pgfparsetime{#1}\expandafter\pgfsysanimkeysnapshotstart\expandafter{\pgftimeresult}
}%
\pgfanimationset{
origin/.code={%
\pgf@process{#1}%
\edef\pgf@marshal{%
\noexpand\pgfsysanimkeycanvastransform%
{\noexpand\pgftransformshift{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}{\noexpand\pgflowlevelsynccm}}%
{\noexpand\pgftransforminvert\noexpand\pgflowlevelsynccm}%
\noexpand\pgf@anim@save@transform{\noexpand\pgftransformshift{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
}%
\pgf@marshal%
},
}%
\pgfsysanimkeycanvastransform{{\pgflowlevelsynccm}}{\pgftransforminvert\pgflowlevelsynccm}%
\pgfanimationset{
transform/.code={%
\pgfsysanimkeycanvastransform{#1{\pgflowlevelsynccm}}{\pgftransforminvert\pgflowlevelsynccm}%
\pgf@anim@save@transform{#1}%
},
}%
\pgfanimationset{
along/.code=%
{%
\pgfsyssoftpath@getcurrentpath\pgfanim@save@path%
\pgfsyssoftpath@setcurrentpath\pgfutil@empty%
#1%
\pgfsyssoftpath@getcurrentpath\pgfanim@the@path%
\global\let\pgfanim@the@path\pgfanim@the@path%
\pgfsyssoftpath@setcurrentpath\pgfanim@save@path%
}%
\expandafter\pgf@anim@protocol@path@size\pgfanim@the@path\pgf@stop%
\expandafter\pgfsysanimkeymovealong\expandafter{\pgfanim@the@path}%
}%
\pgfanimationset{
along softpath/.code=%
\pgf@anim@protocol@path@size#1\pgf@stop%
\pgfsysanimkeymovealong{#1}%
}%
\def\pgf@anim@protocol@path@size{%
\pgfutil@ifnextchar\pgf@stop\pgfutil@gobble\pgf@anim@protocol@path@size@%
}%
\def\pgf@anim@protocol@path@size@#1#2#3{%
\pgf@protocolanimsizes@direct{#2}{#3}%
\pgf@anim@protocol@path@size%
}%
\pgfanimationset{
rotate along/.is choice,
rotate along/.default=true,
rotate along/true/.code=\pgfsysanimkeyrotatealong,
rotate along/false/.code=\pgfsysanimkeynorotatealong,
}%
\pgfanimationset{entry/.code 2 args=\pgf@anim@entry{#1}{#2}}%
\def\pgf@anim@entry#1#2{%
\pgf@anim@entry@giventrue%
\pgfparsetime{#1}%
\edef\pgf@marshal{\noexpand\pgfsysanimkeytime{\pgftimeresult}\pgf@anim@entry@spline\pgf@anim@exit@spline}%
\pgf@marshal%
\def\pgf@temp{#2}%
\ifx\pgf@temp\pgf@special@current@text%
\pgfsysanimvalcurrent%
\else%
\pgfanim@type@parser{#2}%
\fi%
}%
\def\pgf@special@current@text{current value}%
\newif\ifpgf@anim@entry@given
\pgfanimationset{base/.code=\pgf@anim@base{#1}}%
\def\pgf@anim@base#1{%
\pgfsysanimkeybase%
\pgfanim@type@parser{#1}%
}%
\pgfanimationset{
freeze at end/.is choice,
freeze at end/.default=true,
freeze at end/true/.code=\pgfsysanimkeyfreezeatend,
freeze at end/false/.code=\pgfsysanimkeyremoveatend,
}%
\pgfanimationset{
entry control/.code 2 args={%
\pgfmathsetmacro\pgf@temp@t{#1}%
\pgfmathsetmacro\pgf@temp@a{#2}%
\edef\pgf@anim@entry@spline{{\pgf@temp@t}{\pgf@temp@a}}%
},
exit control/.code 2 args={%
\pgfmathsetmacro\pgf@temp@t{#1}%
\pgfmathsetmacro\pgf@temp@a{#2}%
\edef\pgf@anim@exit@spline{{\pgf@temp@t}{\pgf@temp@a}}%
},
stay/.code=\let\pgf@anim@exit@spline\pgfsys@stay@text,%
jump/.code=\let\pgf@anim@entry@spline\pgfsys@jump@text,%
linear/.style={entry control={1}{1},exit control={0}{0}},
}%
\def\pgf@anim@entry@spline@base{{1}{1}}%
\def\pgf@anim@exit@spline@base{{0}{0}}%
\def\pgf@anim@reset@linear{\let\pgf@anim@entry@spline\pgf@anim@entry@spline@base\let\pgf@anim@exit@spline\pgf@anim@exit@spline@base}%
\pgf@anim@reset@linear
\pgfanimationset{
shorten /.code={%
\ifpgf@anim@entry@given%
\pgferror{You must specify shorten < prior to the path entries}%
\else%
\pgfmathsetmacro\pgf@anim@marker@extra@shorten@end{#1}%
\edef\pgf@anim@marker@extra@shorten@end{\pgf@anim@marker@extra@shorten@end pt}%
\fi%
},
}%
\def\pgf@anim@marker@extra@shorten@start{0pt}%
\def\pgf@anim@marker@extra@shorten@end{0pt}%
\def\pgf@anim@marker@shorten@start{0pt}%
\def\pgf@anim@marker@shorten@end{0pt}%
\pgfanimationset{
arrows/.code={%
\ifpgf@anim@entry@given%
\pgferror{You must specify animation arrows prior to the path entries}%
\else%
\pgf@anim@parser@arrows#1\pgf@stop%
\fi%
},
}%
\def\pgf@anim@parser@arrows#1-#2\pgf@stop{%
\pgf@anim@prepare@arrow@start{#1}%
\pgf@anim@prepare@arrow@end{#2}%
\expandafter\expandafter\expandafter\pgfsysanimkeytipmarkers\expandafter\expandafter\expandafter{\expandafter\pgf@anim@marker@id@start\expandafter}\expandafter{\pgf@anim@marker@id@end}%
}%
\def\pgf@anim@prepare@arrow@start#1{%
\def\pgf@anim@temp{#1}%
\ifx\pgf@anim@temp\pgfutil@empty%
\let\pgf@anim@marker@id@start\pgfutil@empty%
\def\pgf@anim@marker@shorten@start{0pt}%
\else%
{%
\pgfsetarrowsstart{#1}%
\pgf@anim@prep@marker@arrow\pgf@start@tip@sequence\pgf@anim@marker@id\pgf@anim@marker@shorten%
\global\let\pgf@anim@marker@id@start\pgf@anim@marker@id%
\global\let\pgf@anim@temp\pgf@anim@marker@shorten%
}%
\let\pgf@anim@marker@shorten@start\pgf@anim@temp%
\fi%
}%
\def\pgf@anim@prepare@arrow@end#1{%
\def\pgf@anim@temp{#1}%
\ifx\pgf@anim@temp\pgfutil@empty%
\let\pgf@anim@marker@id@end\pgfutil@empty%
\def\pgf@anim@marker@shorten@end{0pt}%
\else%
{%
\pgfsetarrowsend{#1}%
\pgf@anim@prep@marker@arrow\pgf@end@tip@sequence\pgf@anim@marker@id\pgf@anim@marker@shorten%
\global\let\pgf@anim@marker@id@end\pgf@anim@marker@id%
}%
\let\pgf@anim@marker@shorten@end\pgf@anim@marker@shorten%
\fi%
}%
\def\pgf@anim@prep@marker@arrow#1#2#3{%
{%
\let\pgf@arrow@handle\pgf@anim@marker@id@test%
\let\pgf@arrow@handle@dot\relax%
\global\let\pgf@anim@marker@id@list\pgfutil@empty%
#1%
}%
\expandafter\let\expandafter#2\csname pgfanim@marker@cache@\pgf@anim@marker@id@list\endcsname%
\expandafter\let\expandafter#3\csname pgfanim@marker@cachel@\pgf@anim@marker@id@list\endcsname%
\ifx#2\relax%
\pgf@relevantforpicturesizefalse%
\pgfinterruptpath%
\pgf@arrow@compute@shortening{#1}%
\xdef#3{\the\pgf@xa}%
{%
\let\pgf@arrow@handle\pgf@anim@drawer@marker
\let\pgf@arrow@handle@dot\relax%
\pgfsys@marker@declare#2{%
\pgftransformxshift{-\pgf@xb}%
\pgftransformxshift{\pgf@xa}%
#1%
}%
}%
\endpgfinterruptpath%
\expandafter\global\expandafter\let\csname pgfanim@marker@cache@\pgf@anim@marker@id@list\endcsname#2%
\expandafter\global\expandafter\let\csname pgfanim@marker@cachel@\pgf@anim@marker@id@list\endcsname#3%
\fi%
}%
\def\pgf@anim@marker@id@test#1#2{%
\pgfarrows@getid{#1}{#2}%
\expandafter\expandafter\expandafter\pgf@arrow@drawer@shift\csname pgf@ar@ends@\pgf@arrow@id\endcsname%
\xdef\pgf@anim@marker@id@list{\pgf@anim@marker@id@list:\pgf@arrow@id\ifpgfarrowswap s\else n\fi\pgfarrows@slant w\the\pgf@xc}%
}%
\def\pgf@anim@drawer@marker#1#2{%
{%
\pgfarrows@getid{#1}{#2}%
\expandafter\expandafter\expandafter\pgf@arrow@drawer@shift\csname pgf@ar@ends@\pgf@arrow@id\endcsname%
\ifdim\pgfarrows@slant pt=0pt%
\else%
\pgftransformxslant{\pgfarrows@slant}%
\fi%
\ifpgfarrowswap%
\pgftransformyscale{-1}%
\fi%
{%
\csname pgf@ar@saves@\pgf@arrow@id\endcsname%
\pgfsys@beginscope%
\pgf@arrows@color@setup%
\pgflowlevelsynccm\csname pgf@ar@cache@\pgf@arrow@id\endcsname%
\pgfsys@endscope%
}%
\expandafter}%
\expandafter\pgftransformxshift\expandafter{\the\pgf@xc}%
}%
\def\pgfanim@parse@type@none#1{%
\pgfsysanimvalnone%
}%
\def\pgfanim@parse@type@scalar#1{%
\pgfmathparse{#1}%
\expandafter\pgfsysanimvalscalar\expandafter{\pgfmathresult}%
}%
\def\pgfanim@parse@type@dimension#1{%
\pgfmathparse{#1}%
\expandafter\pgfsysanimvaldimension\expandafter{\pgfmathresult pt}%
}%
\def\pgfanim@parse@type@mapped#1{%
{%
\expandafter\let\expandafter\pgf@temp\csname pgf@anim@map@#1\endcsname\relax%
\ifx\pgf@temp\relax%
\pgferror{Value '#1' not allowed for an animation for this attribute}%
\let\pgf@temp\pgfutil@empty%
\fi%
\expandafter}%
\expandafter\pgfsysanimvaltext\expandafter{\pgf@temp}%
}%
\def\pgfanim@parse@type@color#1{%
\pgfsysanimvalcolor{#1}%
}%
\def\pgfanim@parse@type@path#1{%
{%
\pgfsyssoftpath@getcurrentpath\pgfanim@save@path%
\pgfsyssoftpath@setcurrentpath\pgfutil@empty%
#1%
\pgfsyssoftpath@getcurrentpath\pgfanim@the@path%
\pgfprocessround{\pgfanim@the@path}{\pgfanim@the@path}%
\global\let\pgfanim@the@path\pgfanim@the@path%
\pgfsyssoftpath@setcurrentpath\pgfanim@save@path%
}%
\expandafter\pgfanim@parse@type@softpath\expandafter{\pgfanim@the@path}%
}%
\def\pgfanim@parse@type@softpath#1{%
{%
\def\pgf@anim@path{#1}%
\pgf@worryfalse%
\pgf@xb=\pgf@anim@marker@extra@shorten@start%
\advance\pgf@xb by\pgf@anim@marker@shorten@start%
\pgf@xc=\pgf@anim@marker@extra@shorten@end%
\advance\pgf@xc by\pgf@anim@marker@shorten@end%
\ifdim\pgf@xb=0pt\else\pgf@worrytrue\fi%
\ifdim\pgf@xc=0pt\else\pgf@worrytrue\fi%
\ifpgf@worry%
\edef\pgf@path@shortening@distance@end{\the\pgf@xc}%
\edef\pgf@path@shortening@distance@start{\the\pgf@xb}%
\pgf@anim@shorten@path%
\fi%
\expandafter}%
\expandafter\pgfsysanimvalpath\expandafter{\pgf@anim@path}%
}%
\def\pgf@anim@shorten@path{%
\pgf@precise@shorteningfalse%
\let\pgf@path@shortening@distance\pgf@path@shortening@distance@end%
\pgfprocesssplitpath{\pgf@anim@path}%
\pgfprocesssplitsubpath{\pgfprocessresultpathsuffix}%
\expandafter\pgf@parse@end\pgfprocessresultsubpathsuffix\pgf@stop\pgf@stop\pgf@stop%
\pgf@prep@end%
\ifdim\pgf@path@shortening@distance=0pt\else\pgf@do@shorten@end\fi%
\let\pgf@path@shortening@distance\pgf@path@shortening@distance@start%
\expandafter\pgf@parse@start\pgfprocessresultpathsuffix\pgf@stop\pgf@stop\pgf@stop%
\pgf@prep@start%
\ifdim\pgf@path@shortening@distance=0pt\else\pgf@do@shorten@start\fi%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@anim@path%
\expandafter\expandafter\expandafter{\expandafter\pgfprocessresultpathprefix\pgfprocessresultpathsuffix}%
}%
\def\pgfanim@parse@type@point#1{%
\pgf@process{#1}%
\pgf@protocolanimsizes\pgf@x\pgf@y%
\expandafter\expandafter\expandafter\pgfsysanimvaltranslate\expandafter\expandafter\expandafter{\expandafter\the\expandafter\pgf@x\expandafter}\expandafter{\the\pgf@y}%
}%
\def\pgfanim@parse@type@scaling#1{%
\pgfutil@in@{,}{#1}%
\ifpgfutil@in@%
\pgfanim@unpack@comma#1\pgf@stop%
\else%
\pgfmathparse{#1}%
\expandafter\pgfsysanimvalscale\expandafter{\pgfmathresult}{\pgfmathresult}%
\fi%
}%
\def\pgfanim@unpack@comma#1,#2\pgf@stop{%
\pgfmathsetmacro{\pgf@anim@temp@x}{#1}%
\pgfmathsetmacro{\pgf@anim@temp@y}{#2}%
\expandafter\expandafter\expandafter\pgfsysanimvalscale\expandafter\expandafter\expandafter{\expandafter\pgf@anim@temp@x\expandafter}\expandafter{\pgf@anim@temp@y}%
}%
\def\pgfanim@parse@type@viewbox#1{%
{%
\pgfanim@unpack@viewbox#1%
\xdef\pgf@anim@caller{\noexpand\pgfsysanimvalviewbox{\the\pgf@x}{\the\pgf@y}{\the\pgf@xa}{\the\pgf@ya}}%
}%
\pgf@anim@caller%
}%
\def\pgfanim@unpack@viewbox#1#2{%
\pgfpointtransformed{#2}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgfpointtransformed{#1}%
\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%
}%
\def\pgfanim@parse@type@dash#1{\pgfanim@parse@type@dash@#1}%
\def\pgfanim@parse@type@dash@#1#2{%
\def\pgf@temp{}%
\def\pgf@next{\pgf@strip}%
\pgf@strip#1{pgf@stop}%
\expandafter\pgfsysanimvaldash\expandafter{\pgf@temp}{#2}%
}%
\def\pgf@protocolanimsizes#1#2{%
\edef\pgf@temp{\noexpand\pgf@anim@handle@point{\the#1}{\the#2}}%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgf@protocolanim@list\expandafter\expandafter\expandafter{\expandafter\pgf@protocolanim@list\pgf@temp}%
}%
\def\pgf@protocolanimsizes@direct#1#2{%
\expandafter\def\expandafter\pgf@protocolanim@list\expandafter{\pgf@protocolanim@list\pgf@anim@handle@point{#1}{#2}}%
}%
\let\pgf@protocolanim@list\pgfutil@empty
\def\pgf@animation@check@translate{%
\ifx\pgf@protocolanim@list\pgfutil@empty%
\else%
\expandafter\expandafter\expandafter\pgf@animation@check@translate@\expandafter\expandafter\expandafter{\expandafter\pgf@protocolanim@list\expandafter}\expandafter{\pgf@anim@saved@transform}%
\fi%
}%
\let\pgf@animation@check@motion\pgf@animation@check@translate
\def\pgf@animation@check@translate@#1#2{%
\pgfsys@attach@to@id\pgf@anim@whom@id\pgf@anim@whom@type{%
\pgf@size@hookedtrue%
{%
#2%
\pgf@pt@x0pt%
\pgf@pt@y0pt%
\pgf@picmaxx=-16000pt\relax%
\pgf@picminx=16000pt\relax%
\pgf@picmaxy=-16000pt\relax%
\pgf@picminy=16000pt\relax%
#1%
\edef\pgf@temp{{\the\pgf@picminx}{\the\pgf@picminy}{\the\pgf@picmaxx}{\the\pgf@picmaxy}}%
\expandafter%
}\expandafter%
\def\expandafter\pgf@temp\expandafter{\pgf@temp}%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgf@path@size@hook\expandafter\expandafter\expandafter{%
\expandafter\pgf@path@size@hook\expandafter\pgf@anim@bb\pgf@temp}%
}{}%
}%
\def\pgf@anim@handle@point#1#2{%
\pgf@x#1\pgf@y#2%
\pgf@pos@transform\pgf@x\pgf@y%
\ifdim\pgf@x<\pgf@picminx\pgf@picminx\pgf@x\fi%
\ifdim\pgf@x>\pgf@picmaxx\pgf@picmaxx\pgf@x\fi%
\ifdim\pgf@y<\pgf@picminy\pgf@picminy\pgf@y\fi%
\ifdim\pgf@y>\pgf@picmaxy\pgf@picmaxy\pgf@y\fi%
}%
\newdimen\pgf@anim@dim
\def\pgf@anim@bb#1#2#3#4{%
\pgf@anim@dim\pgf@size@hook@x%
\advance\pgf@anim@dim by#1\relax%
\ifdim\pgf@anim@dim<\pgf@picminx\global\pgf@picminx\pgf@anim@dim\fi%
\pgf@anim@dim\pgf@size@hook@x%
\advance\pgf@anim@dim by#3\relax%
\ifdim\pgf@anim@dim>\pgf@picmaxx\global\pgf@picmaxx\pgf@anim@dim\fi%
\pgf@anim@dim\pgf@size@hook@y%
\advance\pgf@anim@dim by#2\relax%
\ifdim\pgf@anim@dim<\pgf@picminy\global\pgf@picminy\pgf@anim@dim\fi%
\pgf@anim@dim\pgf@size@hook@y%
\advance\pgf@anim@dim by#4\relax%
\ifdim\pgf@anim@dim>\pgf@picmaxy\global\pgf@picmaxy\pgf@anim@dim\fi%
}%
\def\pgf@anim@save@transform#1{%
\def\pgf@anim@saved@transform{#1}%
}%
\let\pgf@anim@saved@transform\pgfutil@empty%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleanimations.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulebending.code.tex ====
\ProvidesFileRCS{pgfmodulebending.code.tex}
\usepgfmodule{nonlineartransformations}%
\usepgflibrary{curvilinear}%
\pgfkeys{
/pgf/arrow keys/flex/.code=\pgfarrowsaddtooptions{\pgf@arrows@the@rigidity#1pt\let\pgf@arrow@flex@mode\pgf@arrow@mode@is@flex},
/pgf/arrow keys/flex/.default=1,
/pgf/arrow keys/flex'/.code=\pgfarrowsaddtooptions{\pgf@arrows@the@rigidity#1pt\let\pgf@arrow@flex@mode\pgf@arrow@mode@is@flex@prime},
/pgf/arrow keys/flex'/.default=1,
/pgf/arrow
keys/bend/.code=\pgfarrowsaddtooptions{\let\pgf@arrow@flex@mode\pgf@arrow@mode@is@bend},
}%
\def\pgf@arrow@mode@is@flex{1}%
\def\pgf@arrow@mode@is@flex@prime{2}%
\def\pgf@arrow@mode@is@bend{3}%
\newdimen\pgf@arrows@the@rigidity
\def\pgf@prep@curveend{
\pgftransformreset%
\pgfsetcurvilinearbeziercurve{\pgfpointlastonpath}{\pgfpointsecondlastonpath}{\pgfpointthirdlastonpath}{\pgfpointfourthlastonpath}
}%
\def\pgf@do@shorten@curvedend{%
\expandafter\expandafter\expandafter\pgf@do@shorten@curvedend@unpack\expandafter\pgfpointfourthlastonpath\pgfpointthirdlastonpath%
}%
\def\pgf@do@shorten@curvedend@unpack\pgfqpoint#1#2\pgfqpoint#3#4{%
\pgf@process{\pgfcurvilineardistancetotime{\pgf@path@shortening@distance}}%
\pgfpointcurveattime{\pgf@x}{\pgfpointlastonpath}{\pgfpointsecondlastonpath}{\pgfpointthirdlastonpath}{\pgfpointfourthlastonpath}%
\pgf@xb#3%
\pgf@yb#4%
\pgf@xb\pgf@time@t\pgf@xb%
\pgf@yb\pgf@time@t\pgf@yb%
\advance\pgf@xb by\pgf@time@s\pgf@xc%
\advance\pgf@yb by\pgf@time@s\pgf@yc%
\edef\pgfprocessresultsubpathsuffix{%
\expandafter\noexpand\pgfsubpathfourthlasttoken{#1}{#2}%
\noexpand\pgfsyssoftpath@curvetosupportatoken{\the\pgf@xb}{\the\pgf@yb}%
\noexpand\pgfsyssoftpath@curvetosupportbtoken{\the\pgf@xa}{\the\pgf@ya}%
\noexpand\pgfsyssoftpath@curvetotoken{\the\pgf@x}{\the\pgf@y}}%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgfprocessresultpathsuffix%
\expandafter\expandafter\expandafter{\expandafter\pgfprocessresultsubpathprefix\pgfprocessresultsubpathsuffix}%
}%
\def\pgf@do@draw@curvedend{%
\pgf@do@draw@curved\pgf@end@tip@sequence%
}%
\def\pgf@do@draw@curved#1{%
{%
\pgftransformreset%
\pgf@xb\pgf@arrow@tip@total@length%
\let\pgf@arrow@handle\pgf@draw@curved%
\let\pgf@arrow@handle@dot\relax%
#1%
}%
}%
\def\pgf@draw@curved#1#2{%
{%
\pgfarrows@getid{#1}{#2}%
\expandafter\expandafter\expandafter\pgf@arrow@drawer@rigid@shift\csname pgf@ar@ends@\pgf@arrow@id\endcsname%
\expandafter\let\expandafter\pgf@arrow@bending@mode\csname pgf@ar@bending@mode@#1\endcsname%
\ifx\pgf@arrow@bending@mode\pgfutil@empty\let\pgf@arrow@flex@mode\pgf@arrow@mode@is@flex\fi%
{%
\csname pgf@ar@saves@\pgf@arrow@id\endcsname%
\ifcase\pgf@arrow@flex@mode\relax%
\expandafter\expandafter\expandafter\pgf@arrow@drawer@rigid\csname pgf@ar@visual@\pgf@arrow@id\endcsname%
\or%
\expandafter\expandafter\expandafter\pgf@arrow@drawer@rigid\csname pgf@ar@visual@\pgf@arrow@id\endcsname%
\or%
\expandafter\expandafter\expandafter\pgf@arrow@drawer@rigid\csname pgf@ar@ends@\pgf@arrow@id\endcsname%
\or%
\pgf@arrow@drawer@bend%
\fi%
}%
\expandafter}%
\expandafter\pgf@xb\the\pgf@xb%
}%
\def\pgf@falsetext{false}%
\def\pgf@arrow@drawer@rigid@shift#1#2#3{%
\advance\pgf@xb by#2%
\pgf@xa\pgf@xb%
\pgf@x#1%
\advance\pgf@x by\pgfarrowsep%
\advance\pgf@xb by-\pgf@x%
}%
\def\pgf@arrow@drawer@bend{%
\pgftransformnonlinear{\pgf@arrow@bending@mode{\pgf@x}{\pgf@y}}
\pgftransformscale{-1}%
\pgftransformxshift{-\pgf@xa}%
\ifdim\pgfarrows@slant pt=0pt%
\else%
\pgftransformxslant{\pgfarrows@slant}%
\fi%
\ifpgfarrowswap%
\pgftransformyscale{-1}%
\fi%
{%
\pgf@relevantforpicturesizefalse%
\pgfscope%
\pgf@arrows@color@setup%
\csname pgf@ar@inst@code@\pgf@arrow@id\endcsname%
\endpgfscope%
}%
\pgf@arrows@bending@hull%
}%
\def\pgf@arrow@drawer@rigid#1#2#3{%
\pgf@x#1%
\pgf@y#2%
\advance\pgf@y by-\pgf@x%
\pgf@y\pgf@sys@tonumber\pgf@arrows@the@rigidity\pgf@y%
\advance\pgf@y by\pgf@x%
\ifdim\pgf@x=\pgf@y%
\pgf@bending@do@tangent%
\else%
\pgf@bending@do@flex%
\fi%
\pgf@xc#1%
\pgf@xc-\pgf@xc%
\pgftransformxshift{+\pgf@xc}%
\ifdim\pgfarrows@slant pt=0pt%
\else%
\pgftransformxslant{\pgfarrows@slant}%
\fi%
\ifpgfarrowswap%
\pgftransformyscale{-1}%
\fi%
\pgfscope%
\pgf@arrows@color@setup%
\pgflowlevelsynccm\csname pgf@ar@cache@\pgf@arrow@id\endcsname%
\endpgfscope%
\pgf@arrows@rigid@hull%
}%
\def\pgf@bending@do@tangent{%
\pgf@xb\pgf@xa%
\advance\pgf@xb by-\pgf@x%
\pgfcurvilineardistancetotime{\pgf@xb}%
\pgf@xb\pgf@x%
\ifdim\pgf@xb=0pt%
\pgf@bending@possible@degenerate%
\else%
\pgf@bending@do@tangent@normal%
\fi%
\pgf@ya-\pgf@y%
\pgfsettransformentries%
{\pgf@sys@tonumber\pgf@x}{\pgf@sys@tonumber\pgf@y}%
{\pgf@sys@tonumber\pgf@ya}{\pgf@sys@tonumber\pgf@x}{\pgf@xc}{\pgf@yc}%
}%
\def\pgf@bending@do@tangent@normal{%
\pgfpointcurveattime{\pgf@xb}{\pgf@curvilinear@line@a}{\pgf@curvilinear@line@b}{\pgf@curvilinear@line@c}{\pgf@curvilinear@line@d}%
\pgf@xc\pgf@x%
\pgf@yc\pgf@y%
\advance\pgf@xb by-\pgf@xa%
\advance\pgf@yb by-\pgf@ya%
\pgf@process{\pgfpointnormalised{\pgf@x=\pgf@xb\pgf@y=\pgf@yb}}
}%
\def\pgf@bending@possible@degenerate{%
\ifx\pgf@curvilinear@line@a\pgf@curvilinear@line@b%
\ifx\pgf@curvilinear@line@a\pgf@curvilinear@line@c%
\let\pgf@ref\pgf@curvilinear@line@d%
\else
\let\pgf@ref\pgf@curvilinear@line@c%
\fi%
\pgf@process{\pgf@curvilinear@line@a}%
\pgf@xc\pgf@x%
\pgf@yc\pgf@y%
\pgf@process{\pgf@ref}%
\advance\pgf@x by-\pgf@xc
\advance\pgf@y by-\pgf@yc
\pgf@process{\pgfpointnormalised{}}
\pgf@x-\pgf@x
\pgf@y-\pgf@y
\else%
\pgf@bending@do@tangent@normal%
\fi%
}%
\def\pgf@bending@do@flex{
\pgf@xb\pgf@xa%
\pgf@xc\pgf@xa%
\advance\pgf@xc by-\pgf@x%
\advance\pgf@xb by-\pgf@y%
\pgfcurvilineardistancetotime{\pgf@xc}%
\pgf@xc\pgf@x%
\pgfcurvilineardistancetotime{\pgf@xb}%
\pgf@xb\pgf@x%
\pgf@process{\pgfpointcurveattime{\pgf@xc}{\pgf@curvilinear@line@a}{\pgf@curvilinear@line@b}{\pgf@curvilinear@line@c}{\pgf@curvilinear@line@d}}%
\pgf@xc\pgf@x\pgf@yc\pgf@y%
\pgf@process{\pgfpointcurveattime{\pgf@xb}{\pgf@curvilinear@line@a}{\pgf@curvilinear@line@b}{\pgf@curvilinear@line@c}{\pgf@curvilinear@line@d}}%
\pgf@xb\pgf@x\pgf@yb\pgf@y%
\pgftransformarrow{\pgfqpoint{\pgf@xb}{\pgf@yb}}{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
}%
\def\pgf@arrows@bending@hull{%
\ifpgf@relevantforpicturesize%
\expandafter\let\expandafter\pgf@temp\csname pgf@ar@hull@\pgf@arrow@id\endcsname%
\ifx\pgf@temp\pgfutil@empty\else%
\let\pgf@arrow@hull@point\pgf@arrow@bending@hull@point@first%
\pgf@temp%
\pgf@arrow@bending@update@bb%
\fi%
\fi%
}%
\def\pgf@arrow@bending@hull@point@first#1#2{%
\pgfpointtransformednonlinear{\pgfqpoint{#1}{#2}}%
\pgf@xa\pgf@x\pgf@xb\pgf@x%
\pgf@ya\pgf@y\pgf@yb\pgf@y%
\let\pgf@arrow@hull@point\pgf@arrow@bending@hull@point@other%
}%
\def\pgf@arrow@bending@hull@point@other#1#2{%
\pgfpointtransformednonlinear{\pgfqpoint{#1}{#2}}%
\ifdim\pgf@x<\pgf@xa\pgf@xa\pgf@x\else\ifdim\pgf@x>\pgf@xb\pgf@xb\pgf@x\fi\fi%
\ifdim\pgf@y<\pgf@ya\pgf@ya\pgf@y\else\ifdim\pgf@y>\pgf@yb\pgf@yb\pgf@y\fi\fi%
}%
\def\pgf@arrow@bending@update@bb{%
\ifdim\pgf@picmaxx=-16000pt\relax%
\global\pgf@picminx\pgf@xa%
\global\pgf@picmaxx\pgf@xb%
\global\pgf@picminy\pgf@ya%
\global\pgf@picmaxy\pgf@yb%
\else%
\ifdim\pgf@xa<\pgf@picminx\global\pgf@picminx\pgf@xa\fi%
\ifdim\pgf@ya<\pgf@picminy\global\pgf@picminy\pgf@ya\fi%
\ifdim\pgf@xb>\pgf@picmaxx\global\pgf@picmaxx\pgf@xb\fi%
\ifdim\pgf@yb>\pgf@picmaxy\global\pgf@picmaxy\pgf@yb\fi%
\fi%
}%
\def\pgf@prep@curvedstart{
\pgftransformreset%
\pgfsetcurvilinearbeziercurve{\pgfpointfirstonpath}{\pgfpointsecondonpath}{\pgfpointthirdonpath}{\pgfpointfourthonpath}%
}%
\def\pgf@do@shorten@curvedstart{%
\expandafter\expandafter\expandafter\pgf@do@shorten@curvedstart@unpack\expandafter\pgfpointthirdonpath\pgfpointfourthonpath%
}%
\def\pgf@do@shorten@curvedstart@unpack\pgfqpoint#1#2\pgfqpoint#3#4{%
\pgf@process{\pgfcurvilineardistancetotime{\pgf@path@shortening@distance}}%
\pgfpointcurveattime{\pgf@x}{\pgfpointfirstonpath}{\pgfpointsecondonpath}{\pgfpointthirdonpath}{\pgfpointfourthonpath}%
\pgf@xb#1%
\pgf@yb#2%
\pgf@xb\pgf@time@t\pgf@xb%
\pgf@yb\pgf@time@t\pgf@yb%
\advance\pgf@xb by\pgf@time@s\pgf@xc%
\advance\pgf@yb by\pgf@time@s\pgf@yc%
\edef\pgfpointfirstonpath{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\edef\pgfpointsecondonpath{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
\edef\pgfprocessresultpathsuffix{%
\noexpand\pgfsyssoftpath@movetotoken{\the\pgf@x}{\the\pgf@y}%
\noexpand\pgfsyssoftpath@curvetosupportatoken{\the\pgf@xa}{\the\pgf@ya}%
\noexpand\pgfsyssoftpath@curvetosupportbtoken{\the\pgf@xb}{\the\pgf@yb}%
\noexpand\pgfsyssoftpath@curvetotoken{#3}{#4}%
}
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgfprocessresultpathsuffix%
\expandafter\expandafter\expandafter{\expandafter\pgfprocessresultpathsuffix\pgfsubpathend}%
}%
\def\pgf@do@draw@curvedstart{%
\pgf@do@draw@curved\pgf@start@tip@sequence%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulebending.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduledatavisualization.code.tex ====
\ProvidesFileRCS{pgfmoduledatavisualization.code.tex}
\usepgfmodule{oo,shapes}%
\usepgflibrary{fpu}%
\pgfooclass{data visualization}
{%
\attribute before survey;%
\attribute at start survey;%
\attribute at end survey;%
\attribute after survey;%
\attribute before visualization;%
\attribute at start visualization;%
\attribute at end visualization;%
\attribute after visualization;%
\attribute survey count=1;%
\attribute number of surveys=1;%
\attribute data;%
\attribute prepare datapoint signal;%
\attribute map datapoint signal;%
\attribute transform datapoint signal;%
\attribute visualize datapoint signal;%
\attribute finish datapoint signal;%
\attribute survey datapoint signal;%
\attribute phase signal;%
\attribute path signal;%
\attribute direction signal;%
\attribute style signal;%
\method data visualization() {
\pgfoonew{prepare datapoint signal}=new signal()%
\pgfoonew{map datapoint signal}=new signal()%
\pgfoonew{transform datapoint signal}=new signal()%
\pgfoonew{visualize datapoint signal}=new signal()%
\pgfoonew{finish datapoint signal}=new signal()%
\pgfoonew{survey datapoint signal}=new signal()%
\pgfoonew{phase signal}=new signal()%
\pgfoonew{path signal}=new signal()%
\pgfoonew{direction signal}=new signal()%
\pgfoonew{style signal}=new signal()%
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeyslet{/pgf/data visualization/obj}\pgf@dv@me
}%
\def\pgfdvbeforesurvey{1}%
\def\pgfdvbeginsurvey{2}%
\def\pgfdvendsurvey{3}%
\def\pgfdvaftersurvey{4}%
\def\pgfdvbeforevisualization{5}%
\def\pgfdvbeginvisualization{6}%
\def\pgfdvendvisualization{7}%
\def\pgfdvaftervisualization{8}%
\def\pgfdvpathmovetotoken{5}%
\def\pgfdvpathlinetotoken{6}%
\def\pgfdvdirectionfromtoken{7}%
\def\pgfdvdirectiontotoken{8}%
\def\pgfdvdirectionattoken{9}%
\method connect(#1,#2,#3) {
\pgfoovalueof{#3}.connect(#1,#2)
}%
\method add data(#1) {
\pgf@dv@stripped@add#1\pgf@stop
}%
\def\pgf@dv@stripped@add#1\pgf@stop{%
\pgfooappend{data}{#1}%
}%
\method before survey(#1) {
\pgfooappend{before survey}{#1}
}%
\method at start survey(#1) {
\pgfooappend{at start survey}{#1}
}%
\method before visualization(#1) {
\pgfooappend{before visualization}{#1}
}%
\method at start visualization(#1) {
\pgfooappend{at start visualization}{#1}
}%
\method at end survey(#1) {
\pgfooprefix{at end survey}{#1}
}%
\method after survey(#1) {
\pgfooprefix{after survey}{#1}
}%
\method at end visualization(#1) {
\pgfooprefix{at end visualization}{#1}
}%
\method after visualization(#1) {
\pgfooprefix{after visualization}{#1}
}%
\method prepare signal macros() {
\pgfooget{prepare datapoint signal}\pgf@signalpreparedatapoint
\pgfooget{map datapoint signal}\pgf@signalmapdatapoint
\pgfooget{transform datapoint signal}\pgf@signaltransformdatapoint
\pgfooget{visualize datapoint signal}\pgf@signalvisualizedatapoint
\pgfooget{finish datapoint signal}\pgf@signalfinishdatapoint
\pgfooget{survey datapoint signal}\pgf@signalsurveydatapoint
\pgfooget{phase signal}\pgf@signalphase
\pgfooget{path signal}\pgf@signalpath
\pgfooget{direction signal}\pgf@signaldirection
\pgfooget{style signal}\pgf@signalstyle
}%
\method survey() {
\let\pgfdatapoint=\pgfdatapoint@surveyphase%
\pgfoothis.prepare signal macros()
\pgfooset{survey count}{1}
\pgfutil@loop
\pgf@signalphase.emit(\pgfdvbeforesurvey)
\pgfoovalueof{before survey}%
\pgf@signalphase.emit(\pgfdvbeginsurvey)
\pgfoovalueof{at start survey}
\pgfoovalueof{data}%
\pgfoovalueof{at end survey}
\pgf@signalphase.emit(\pgfdvendsurvey)%
\pgfoovalueof{after survey}
\pgf@signalphase.emit(\pgfdvaftersurvey)
\c@pgf@counta=\pgfoovalueof{survey count}\relax
\c@pgf@countb=\pgfoovalueof{number of surveys}\relax
\ifnum\c@pgf@counta<\c@pgf@countb
\advance\c@pgf@counta by1\relax
\pgfooeset{survey count}{\the\c@pgf@counta}
\pgfutil@repeat
}%
\method get survey count(#1) {
\pgfooget{survey count}{#1}
}%
\method do an additional survey() {
\c@pgf@counta=\pgfoovalueof{number of surveys}\relax
\advance\c@pgf@counta by1\relax
\pgfooeset{number of surveys}{\the\c@pgf@counta}
}%
\method visualize() {
\let\pgfdatapoint=\pgfdatapoint@visualizationphase%
\pgfoothis.prepare signal macros()
\pgf@signalphase.emit(\pgfdvbeforevisualization)%
\pgfoovalueof{before visualization}
\pgf@signalphase.emit(\pgfdvbeginvisualization)%
\pgfoovalueof{at start visualization}
\pgfoovalueof{data}%
\pgfoovalueof{at end visualization}
\pgf@signalphase.emit(\pgfdvendvisualization)%
\pgfoovalueof{after visualization}
\pgf@signalphase.emit(\pgfdvaftervisualization)%
}%
}%
\pgfkeys{/data point/.unknown/.code={%
\pgfkeyssetvalue{/data point/\pgfkeyscurrentname}{#1}
},
}%
\def\pgfdatapoint@surveyphase{%
\pgf@signalpreparedatapoint.emit()%
\pgf@signalmapdatapoint.emit()%
\pgf@signalsurveydatapoint.emit()%
}%
\def\pgfdatapoint@visualizationphase{%
\pgf@signalpreparedatapoint.emit()%
\pgfdvmapdatapointtocanvas%
\pgfkeysifdefined{/data point/name}
{%
\pgfcoordinate{\pgfkeysvalueof{/data point/name}}{\pgfpointdvdatapoint}%
}{}%
\pgf@signalvisualizedatapoint.emit()%
\pgf@signalfinishdatapoint.emit()%
}%
\def\pgfdvmapdatapointtocanvas{%
{%
\pgfpointdvlocaldatapoint
\expandafter%
}%
\edef\pgf@marshal{%
\noexpand\pgfkeyssetvalue{/data point/canvas x}{\the\pgf@x}
\noexpand\pgfkeyssetvalue{/data point/canvas y}{\the\pgf@y}
}%
\pgf@marshal%
}%
\def\pgfpointdvdatapoint{%
\pgfqpoint{\pgfkeysvalueof{/data point/canvas x}}{\pgfkeysvalueof{/data point/canvas y}}%
}%
\def\pgfpointdvlocaldatapoint{%
{%
\pgf@signalmapdatapoint.emit()%
\pgftransformreset%
\pgf@signaltransformdatapoint.emit()%
\pgfpointtransformed{\pgfpointorigin}%
}%
}%
\newif\ifpgfdvhandled
\def\pgfdv@generic#1#2#3{%
{%
\pgfdvhandledfalse%
\pgf@signalmapdatapoint.emit()%
#1.emit(#2)%
\ifpgfdvhandled%
\else%
\pgf@process{%
\pgftransformreset%
\pgf@signaltransformdatapoint.emit()%
\pgfpointtransformed{\pgfpointorigin}%
}%
#3{}%
\fi%
}%
}%
\def\pgfpathdvmoveto{%
\pgfdv@generic{\pgf@signalpath}{\pgfdvpathmovetotoken}{\pgfpathmoveto}
}%
\def\pgfpathdvlineto{%
\pgfdv@generic{\pgf@signalpath}{\pgfdvpathlinetotoken}{\pgfpathlineto}
}%
\def\pgfpointdvdirection#1#2{%
{
{
#1
\pgfdv@generic{\pgf@signaldirection}{\pgfdvdirectionfromtoken}{\xdef\pgf@dv@from{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}
}
{
#2
\pgfdv@generic{\pgf@signaldirection}{\pgfdvdirectiontotoken}{\xdef\pgf@dv@to{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}
}
{\pgfdv@generic{\pgf@signaldirection}{\pgfdvdirectionattoken}{%
\pgf@process{
\pgfpointnormalised{%
\pgfpointdiff{\pgf@dv@from}{\pgf@dv@to}
}
}}}
}
}%
\def\pgfdata{\pgfutil@ifnextchar[{\pgf@datagroup@data@opt}{\pgf@datagroup@data@opt[]}}%
\def\pgf@datagroup@data@opt[#1]{%
\begingroup%
\pgfkeys{/pgf/data/.cd,/pgf/every data/.try,#1}%
\pgfkeysgetvalue{/pgf/data/continue code}\pgf@dv@cont@code%
\global\let\pgf@dv@cont@code\pgf@dv@cont@code%
\pgfkeysgetvalue{/pgf/data/use group}\pgf@dv@use@group%
\ifx\pgf@dv@use@group\pgfutil@empty%
\pgf@dv@do@adddata{\pgfkeysvalueof{/pgf/data visualization/obj}.add data(\pgf@do@data{#1})}%
\expandafter\pgf@datagroup@data@opt@cont%
\else%
\expandafter\ifx\csname pgf@dv@group@@\pgf@dv@use@group\endcsname\relax%
\pgferror{Undefined data group '\pgf@dv@use@group'}%
\else%
{%
\pgfkeys{/pgf/data/define group/.code=}%
\csname pgf@dv@group@@\pgf@dv@use@group\endcsname%
}%
\fi%
\endgroup%
\expandafter\pgf@dv@cont@code%
\fi%
}%
\def\pgf@datagroup@data@opt@cont{%
\pgfkeysgetvalue{/pgf/data/format}\pgf@dv@format%
\expandafter\let\expandafter\pgf@dv@format@catcodes\csname pgfdv@format@\pgf@dv@format @catcodes\endcsname%
\ifx\pgf@dv@format@catcodes\relax
\pgferror{Unknown data format '\pgf@dv@format'}%
\else%
\pgfkeysgetvalue{/pgf/data/read from file}\pgf@dv@source%
\ifx\pgf@dv@source\pgfutil@empty%
\let\pgf@next\pgf@datagroup@grab@inline%
\else%
\let\pgf@next\pgf@datagroup@grab@external%
\fi%
\pgf@next%
}%
\def\pgf@datagroup@grab@inline{%
\pgfutil@ifnextchar\bgroup{%
\begingroup%
\catcode`\^^M=\active%
\pgf@dv@format@catcodes%
\pgf@datagroup@grab@@inline}%
{\pgferror{Opening brace expected}}%
}%
\def\pgf@datagroup@grab@external{%
\fi%
\endgroup%
\pgf@dv@do@adddata{\pgfkeysvalueof{/pgf/data visualization/obj}.add data({{{\pgf@datagroup@do@external}}})}%
\pgf@dv@cont@code%
}%
\def\pgf@dv@do@adddata#1{%
\pgfkeysgetvalue{/pgf/data/store in group}\pgf@dv@temp%
\ifx\pgf@dv@temp\pgfutil@empty%
#1%
\else%
\expandafter\pgfutil@g@addto@macro\csname pgf@dv@group@@\pgf@dv@temp\endcsname{#1}%
\fi%
}%
{\catcode`\^=7 \catcode`\^^M=13
\gdef\pgf@datagroup@grab@@inline#1{%
\endgroup%
\pgf@dv@do@adddata{\pgfkeysvalueof{/pgf/data visualization/obj}.add data({{{\pgf@datagroup@do@inline#1^^M\pgf@@eol}}})}%
\fi%
\endgroup%
\pgf@dv@cont@code%
}%
}%
\def\pgf@@eol{\pgf@eol}%
\def\pgf@do@data#1#2{%
\begingroup%
\pgfkeys{/pgf/data/.cd,/pgf/every data/.try,#1}%
\pgfkeysgetvalue{/pgf/data/format}\pgf@dv@format%
\expandafter\let\expandafter\pgf@dv@format@line\csname pgfdv@format@\pgf@dv@format @line\endcsname%
\expandafter\let\expandafter\pgf@dv@format@emptyline\csname pgfdv@format@\pgf@dv@format @empty\endcsname%
\csname pgfdv@format@\pgfkeysvalueof{/pgf/data/format}@startup\endcsname%
#2%
\csname pgfdv@format@\pgfkeysvalueof{/pgf/data/format}@end\endcsname%
\endgroup%
}%
\def\pgf@datagroup@do@external{%
\csname pgfdv@format@\pgfkeysvalueof{/pgf/data/format}@catcodes\endcsname%
\immediate\openin\r@pgf@reada=\pgfkeysvalueof{/pgf/data/read from file} %
\ifeof\r@pgf@reada\relax
\pgferror{Data file '\pgfkeysvalueof{/pgf/data/read from file}' not found}%
\else
\pgf@datagroup@readline%
\fi
\immediate\closein\r@pgf@reada%
}%
\def\pgf@partext{\par}%
\def\pgf@datagroup@readline{%
\endlinechar=-1 %
\immediate\read\r@pgf@reada to \pgf@temp%
\ifx\pgf@temp\pgf@partext%
\pgf@dv@format@emptyline%
\else%
\ifx\pgf@temp\pgfutil@empty%
\pgf@dv@format@emptyline%
\else%
\expandafter\pgf@dv@format@line\pgf@temp\pgfeol%
\fi%
\fi%
\ifeof\r@pgf@reada\else\expandafter\pgf@datagroup@readline\fi%
}%
\def\pgf@datagroup@do@inline{%
\pgf@dv@handle@line%
}%
{\catcode`\^=7 \catcode`\^^M=13
\gdef\pgf@dv@handle@line{%
\pgfutil@ifnextchar^^M{\pgf@dv@format@emptyline\expandafter\pgf@dv@handle@line\pgfutil@gobble}%
{\pgfutil@ifnextchar\pgf@@eol{\pgfutil@gobble}{\pgf@dv@handle@nonemptyline}}%
}%
\gdef\pgf@dv@handle@nonemptyline#1^^M{%
\pgf@dv@format@line#1\pgfeol%
\pgf@dv@handle@line%
}%
}%
\pgfkeys{
/pgf/data/data visualization obj/.initial=\undefined,
/pgf/data/format/.initial=table,%
/pgf/data/read from file/.initial=,
/pgf/data/inline/.style={read from file=},
/pgf/data/continue code/.initial=,
/pgf/data/store in group/.initial=,
/pgf/data/new group/.code={\expandafter\global\expandafter\let\csname pgf@dv@group@@#1\endcsname\pgfutil@empty},
/pgf/data/use group/.initial=,
}%
\def\pgfdeclaredataformat#1#2#3#4#5#6#7{%
\expandafter\def\csname pgfdv@format@#1@catcodes\endcsname{#2}%
\expandafter\def\csname pgfdv@format@#1@startup\endcsname{#3}%
\expandafter\def\csname pgfdv@format@#1@line\endcsname#4\pgfeol{#5}%
\expandafter\def\csname pgfdv@format@#1@empty\endcsname{#6}%
\expandafter\def\csname pgfdv@format@#1@end\endcsname{#7}%
}%
\pgfdeclaredataformat{TeX code}{}{}{#1}{#1 }{}{}%
\pgfdeclaredataformat{named}{}{}{#1}{\pgf@dv@parse@named#1,\pgf@stop}{}{}%
\def\pgf@dv@parse@named{%
\pgfutil@ifnextchar\pgf@stop{\pgfdatapoint\pgfutil@gobble}{\pgf@dv@parse@named@}
}%
\def\pgf@dv@parse@named@#1=#2,#3\pgf@stop{%
\foreach \pgf@dv@temp in {#2} {%
\def\pgf@dv@tempb{/data point/#1=}%
\expandafter\expandafter\expandafter\pgfkeys%
\expandafter\expandafter\expandafter{\expandafter\pgf@dv@tempb\pgf@dv@temp}%
\pgf@dv@parse@named#3\pgf@stop%
}
}%
\pgfdeclaredataformat{table}
{} %
{
\pgfkeysgetvalue{/pgf/data/headline}\pgf@dv@headline
\pgfkeysgetvalue{/pgf/data/separator}\pgf@dv@separator
\ifx\pgf@dv@separator\pgfutil@empty
\let\pgf@dv@separator\space
\fi
\ifx\pgf@dv@separator\pgf@dv@spacetext
\let\pgf@dv@separator\space
\fi
\expandafter\def\expandafter\pgf@dv@till@separator%
\expandafter##\expandafter1\pgf@dv@separator{\pgf@dv@table@handle{##1}}
\expandafter\def\expandafter\pgf@dv@till@separator@head%
\expandafter##\expandafter1\pgf@dv@separator{\pgf@dv@head@handle{##1}}
\ifx\pgf@dv@headline\pgfutil@empty
\pgfdv@firstlinetrue
\else
\pgfdv@firstlinefalse
\expandafter\pgf@dv@parse@headline\expandafter{\pgf@dv@headline}
\fi
}
{#1} %
{
\ifpgfdv@firstline
\pgfdv@firstlinefalse
\pgf@dv@parse@headline{#1}
\else
{
\c@pgf@counta=0\relax%
\def\pgf@marshal{\pgf@dv@parse@table#1}
\expandafter\expandafter\expandafter\pgf@marshal%
\expandafter\pgf@dv@separator\expandafter\pgfeol\pgf@dv@separator
\pgfdatapoint
}
\fi
}
{}%
{}%
\newif\ifpgfdv@firstline
\pgfkeys{
/pgf/data/separator/.initial={,},
/pgf/data/headline/.initial=
}%
\def\pgf@dv@spacetext{\space}%
\def\pgf@dv@parse@table{%
\pgfutil@ifnextchar"%
{\pgferror{csv with quotes not yet implemented}}
{\pgf@dv@till@separator}
}%
\def\pgf@dv@table@handle#1{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgfeoltext%
\let\pgf@next=\relax%
\else%
\advance\c@pgf@counta by1\relax%
\pgfkeysgetvalue{/pgf/data/table/attribute \the\c@pgf@counta}\pgf@dv@target
\ifx\pgf@dv@target\relax%
\edef\pgf@dv@target{attribute \the\c@pgf@counta}
\pgfkeyslet{/pgf/data/table/attribute \the\c@pgf@counta}\pgf@dv@target
\fi
\pgfkeyssetvalue{/data point/\pgf@dv@target}{#1}
\let\pgf@next=\pgf@dv@parse@table%
\fi%
\pgf@next%
}%
\def\pgf@dv@parse@headline#1{
\c@pgf@counta=0\relax%
\def\pgf@marshal{\pgf@dv@doparse@headline#1}
\expandafter\expandafter\expandafter\pgf@marshal%
\expandafter\pgf@dv@separator\expandafter\pgfeol\pgf@dv@separator
}%
\def\pgf@dv@doparse@headline{%
\pgfutil@ifnextchar"%
{\pgferror{csv with quotes not yet implemented}}
{\pgf@dv@till@separator@head}
}%
\def\pgf@dv@head@handle#1{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgfeoltext%
\let\pgf@next=\relax%
\else%
\advance\c@pgf@counta by1\relax%
\pgfkeyssetvalue{/pgf/data/table/attribute \the\c@pgf@counta}{#1}
\let\pgf@next=\pgf@dv@doparse@headline%
\fi%
\pgf@next%
}%
\def\pgfeoltext{\pgfeol}%
\def\pgfdvmathenter#1#2{%
\expandafter\pgfdvmathenter@check\expandafter#1#2\pgfdvmath@end%
}%
\def\pgfdvmathenter@check#1{%
\pgfutil@ifnextchar @{\pgfdvmath@internal#1}{%
\pgfutil@ifnextchar ({\pgfdvmath@expression#1}{%
\pgfutil@ifnextchar !{\pgfdvmath@execute#1}{\pgfdvmath@normal#1}}}%
}%
\def\pgfdvmath@internal#1@#2\pgfdvmath@end{%
\def#1{#2}%
}%
\def\pgfdvmath@expression#1(#2)#3\pgfdvmath@end{%
\pgfmathparse{#2}%
\pgfmathfloatparsenumber{\pgfmathresult}%
\let#1=\pgfmathresult%
}%
\def\pgfdvmath@execute#1!#2\pgfdvmath@end{%
#2%
\let#1=\pgfdvmathvalue%
}%
\def\pgfdvmath@normal#1#2\pgfdvmath@end{%
\pgfmathfloatparsenumber{#2}%
\let#1=\pgfmathresult%
}%
\def\pgfdvmathexitbyprinting#1{%
\pgfmathprintnumber{#1}%
}%
\def\pgfdvmathexitbyscientificformat#1#2{%
\edef#1{\pgfmathfloatvalueof#2}%
}%
\def\pgfdvmathexitbyserializing#1#2{%
\edef#1{@#2}%
}%
\def\pgfdvmathadd#1#2#3{%
\pgfmathfloatadd{#2}{#3}%
\let#1=\pgfmathresult%
}%
\def\pgfdvmathsub#1#2#3{%
\pgfmathfloatsubtract{#2}{#3}%
\let#1=\pgfmathresult%
}%
\def\pgfdvmathmul#1#2#3{%
\pgfmathfloatmultiply{#2}{#3}%
\let#1=\pgfmathresult%
}%
\def\pgfdvmathdiv#1#2#3{%
\pgfmathfloatdivide{#2}{#3}%
\let#1=\pgfmathresult%
}%
\def\pgfdvmathmulfixed#1#2#3{%
\pgfmathfloatmultiplyfixed{#2}{#3}%
\let#1=\pgfmathresult%
}%
\def\pgfdvmathln#1#2{%
\pgfmathfloatln{#2}%
\let#1=\pgfmathresult%
}%
\def\pgfdvmathlog#1#2{%
\pgfmathfloatln{#2}%
\pgfmathfloatmultiply{\pgfmathresult}{\pgfdvmathalwaysloge}%
\let#1=\pgfmathresult%
}%
\def\pgfdvmathexp#1#2{%
\pgfmathfloatexp{#2}%
\let#1=\pgfmathresult%
}%
\def\pgfdvmathpowten#1#2{%
\pgfmathfloattofixed{#2}%
\let\pgf@dv@temp=\pgfmathresult%
\pgfmathround{\pgf@dv@temp}%
\let\pgf@dv@temp@round=\pgfmathresult%
\pgf@x=\pgf@dv@temp@round pt%
\pgf@x=-\pgf@x%
\advance\pgf@x by\pgf@dv@temp pt\relax%
\ifdim\pgf@x>0.0002pt%
\pgfmathfloatmultiply{#2}{\pgfdvmathalwayslnten}%
\pgfmathfloatexp{\pgfmathresult}%
\else
\ifdim\pgf@x<-0.0002pt%
\pgfmathfloatmultiply{#2}{\pgfdvmathalwayslnten}%
\pgfmathfloatexp{\pgfmathresult}%
\else
\pgf@x=\pgf@dv@temp@round sp%
\c@pgf@counta=\pgf@x%
\pgfmathfloatcreate{1}{1.0}{\the\c@pgf@counta}%
\fi
\fi
\let#1=\pgfmathresult%
}%
\def\pgfdvmathfloor#1#2{%
\pgfmathifisint{#2}{%
\let#1=#2%
}{%
\pgfmathfloatgetflags#2\c@pgf@counta%
\ifcase\c@pgf@counta
\let#1=\pgfdvmathalwayszero%
\or
\pgfmathfloatfloor{#2}%
\let#1=\pgfmathresult%
\or
\pgfmathfloatsubtract{\pgfdvmathalwaysone}{#2}%
\pgfmathfloatfloor{\pgfmathresult}%
\pgfmathfloatsubtract{\pgfdvmathalwayszero}{\pgfmathresult}%
\let#1=\pgfmathresult%
\or\let#1=#2%
\or\let#1=#2%
\or\let#1=#2%
\fi%
}%
}%
\def\pgfdvmathunaryop#1#2#3{%
\csname pgfmathfloat#2\endcsname{#3}%
\let#1=\pgfmathresult%
}%
\def\pgfdvmathbinop#1#2#3#4{%
\csname pgfmathfloat#2\endcsname{#3}{#4}%
\let#1=\pgfmathresult%
}%
\def\pgfdvmathifless#1#2#3#4{%
\pgfmathfloatlessthan{#1}{#2}%
\ifpgfmathfloatcomparison#3\else#4\fi%
}%
\pgfooclass{linear transformer}
{%
\attribute attribute;%
\attribute origin = \pgfpointorigin;%
\attribute unit vector;%
\method linear transformer(#1,#2) {
\pgfooset{attribute}{#1}
\pgf@process{#2}
\edef\pgf@temp{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\pgfoolet{unit vector}\pgf@temp%
}%
\method default connects() {
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,transform,transform datapoint signal)
}%
\method set origin(#1) {
\pgf@process{#1}
\edef\pgf@temp{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\pgfoolet{origin}\pgf@temp%
}%
\method transform() {
\pgfkeysgetvalue{/data point/\pgfoovalueof{attribute}}\pgf@dv@val%
\ifx\pgf@dv@val\pgfutil@empty%
\else%
\ifx\pgf@dv@val\relax%
\else%
\pgfdvmathenter{\pgf@dv@math@var}{\pgf@dv@val}%
\pgfdvmathexitbyscientificformat{\pgf@dv@val}{\pgf@dv@math@var}%
\pgftransformshift{\pgfoovalueof{origin}}%
\pgfmathfloatgetexponent\pgf@dv@math@var\c@pgf@counta%
\ifnum\c@pgf@counta<-3\relax%
\else%
\pgftransformshift{\pgfpointscale{\pgf@dv@val}{\pgfoovalueof{unit vector}}}%
\fi%
\fi%
\fi%
}%
}%
\pgfooclass{interval mapper}
{%
\attribute in;%
\attribute out;%
\attribute trans;%
\attribute out min;%
\attribute out min;%
\attribute trans in min;%
\attribute scale;%
\method interval mapper(#1,#2,#3) {
\pgfooset{in}{#1}
\pgfooset{out}{#2}
\def\pgf@temp{#3}%
\ifx\pgf@temp\pgfutil@empty%
\else%
\pgfooset{trans}{%
#3%
}%
\fi%
}%
\method default connects() {
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,map,map datapoint signal)
}%
\method set interval values(#1,#2,#3,#4) {
{%
\pgfdvmathenter{\pgf@in@interval@min}{#1}
\pgfdvmathenter{\pgf@in@interval@max}{#2}
\pgfdvmathenter{\pgf@out@interval@min}{#3}
\pgfdvmathenter{\pgf@out@interval@max}{#4}
\pgfoolet{out min}{\pgf@out@interval@min}
\pgfoolet{out max}{\pgf@out@interval@max}
\pgfdvmathifless{\pgf@in@interval@min}{\pgf@in@interval@max}{%
\pgfdvmathsub{\pgf@out@diff}{\pgf@out@interval@max}{\pgf@out@interval@min}
\let\pgfvalue=\pgf@in@interval@min
\pgfoovalueof{trans}
\let\pgf@in@interval@min@transformed=\pgfvalue
\pgfoolet{trans in min}{\pgf@in@interval@min@transformed}%
\let\pgfvalue=\pgf@in@interval@max
\pgfoovalueof{trans}
\let\pgf@in@interval@max@transformed=\pgfvalue
\pgfdvmathsub{\pgf@diff@in@transformed}{\pgf@in@interval@max@transformed}{\pgf@in@interval@min@transformed}
\pgfdvmathdiv{\pgf@scale}{\pgf@out@diff}{\pgf@diff@in@transformed}%
\pgfoolet{scale}{\pgf@scale}%
}{%
\pgfoolet{scale}\pgf@dv@no@scale%
}%
}%
}%
\def\pgf@dv@no@scale{noscale}%
\method map() {
\pgfooget{scale}\pgf@dv@scale
\ifx\pgf@dv@scale\pgfutil@empty%
\else%
\pgfkeysgetvalue{/data point/\pgfoovalueof{in}/is min or max}\pgf@dv@is%
\ifx\pgf@dv@is\pgf@min@text%
\pgf@dv@set@out@min%
\else%
\ifx\pgf@dv@is\pgf@max@text%
\pgf@dv@set@out@max%
\else%
\ifx\pgf@dv@scale\pgf@dv@no@scale%
\pgf@dv@mapper@goto@mid%
\else%
\pgfkeysgetvalue{/data point/\pgfoovalueof{in}/const}\pgf@dv@external@value%
\ifx\pgf@dv@external@value\relax%
\pgfkeysgetvalue{/data point/\pgfoovalueof{in}}\pgf@dv@external@value%
\fi%
\ifx\pgf@dv@external@value\pgfutil@empty%
\pgf@dv@mapper@pos@check%
\else%
\ifx\pgf@dv@external@value\relax%
\pgf@dv@mapper@pos@check%
\else%
\pgfdvmathenter{\pgfvalue}{\pgf@dv@external@value}%
\pgf@dv@mapper@trans
\fi%
\fi%
\fi%
\fi%
\fi%
\fi%
}%
\def\pgf@dv@set@out@min{%
\pgfkeyslet{/data point/\pgfoovalueof{out}/is min or max}\pgf@min@text%
\pgfooget{out min}{\pgf@minmax@temp}%
\pgf@dv@set@out@now%
}%
\def\pgf@dv@set@out@max{%
\pgfkeyslet{/data point/\pgfoovalueof{out}/is min or max}\pgf@max@text%
\pgfooget{out max}{\pgf@minmax@temp}%
\pgf@dv@set@out@now%
}%
\def\pgf@dv@set@out@now{%
\pgfkeysgetvalue{/data point/\pgfoovalueof{out}/offset}\pgf@dv@external@offset%
\ifx\pgf@dv@external@offset\relax\else%
\ifx\pgf@dv@external@offset\pgfutil@empty\else%
\pgfdvmathenter{\pgfvalue}{\pgf@minmax@temp}%
\pgfdvmathenter{\pgf@dv@offset}{\pgf@dv@external@offset}%
\pgfdvmathadd{\pgfvalue}{\pgfvalue}{\pgf@dv@offset}
\pgfdvmathexitbyserializing{\pgf@minmax@temp}{\pgfvalue}%
\fi
\fi
\pgfkeyslet{/data point/\pgfoovalueof{out}}\pgf@minmax@temp%
}%
\def\pgf@dv@mapper@trans{
\pgfooget{trans in min}{\pgf@dv@trans@in@min}%
\pgfooget{scale}{\pgf@dv@scale}%
\pgfooget{out min}{\pgf@dv@out@min}%
\pgfoovalueof{trans}%
\pgfdvmathsub{\pgfvalue}{\pgfvalue}{\pgf@dv@trans@in@min}%
\pgfdvmathmul{\pgfvalue}{\pgfvalue}{\pgf@dv@scale}%
\pgfdvmathadd{\pgfvalue}{\pgfvalue}{\pgf@dv@out@min}%
\pgfkeysgetvalue{/data point/\pgfoovalueof{out}/offset}\pgf@dv@external@offset%
\ifx\pgf@dv@external@offset\relax\else%
\ifx\pgf@dv@external@offset\pgfutil@empty\else%
\pgfdvmathenter{\pgf@dv@offset}{\pgf@dv@external@offset}%
\pgfdvmathadd{\pgfvalue}{\pgfvalue}{\pgf@dv@offset}
\fi
\fi
\pgfdvmathexitbyserializing{\pgf@temp}{\pgfvalue}%
\pgfkeyslet{/data point/\pgfoovalueof{out}}\pgf@temp%
}%
\def\pgf@dv@mapper@pos@check{%
\pgfkeysgetvalue{/data point/\pgfoovalueof{in}/out pos}\pgf@dv@pos@value%
\ifx\pgf@dv@pos@value\relax\else\if\pgf@dv@pos@value\pgfutil@empty\else%
\pgfmathsetmacro{\pgf@dv@pos@num}{\pgf@dv@pos@value}%
\pgfmathsetmacro{\pgf@dv@pos@num@prime}{1-\pgf@dv@pos@num}%
\pgfooget{out min}{\pgf@out@interval@min}
\pgfooget{out max}{\pgf@out@interval@max}
\pgfdvmathmulfixed{\pgf@out@interval@min}{\pgf@out@interval@min}{\pgf@dv@pos@num@prime}
\pgfdvmathmulfixed{\pgf@out@interval@max}{\pgf@out@interval@max}{\pgf@dv@pos@num}
\pgfdvmathadd{\pgf@out@val}{\pgf@out@interval@min}{\pgf@out@interval@max}%
\pgfdvmathexitbyserializing{\pgf@temp}{\pgf@out@val}%
\pgfkeyslet{/data point/\pgfoovalueof{out}}\pgf@temp%
\fi\fi%
}%
\def\pgf@dv@mapper@goto@mid{%
\pgfooget{out min}{\pgf@out@interval@min}
\pgfooget{out max}{\pgf@out@interval@max}
\pgfdvmathmulfixed{\pgf@out@interval@min}{\pgf@out@interval@min}{.5}
\pgfdvmathmulfixed{\pgf@out@interval@max}{\pgf@out@interval@max}{.5}
\pgfdvmathadd{\pgf@out@val}{\pgf@out@interval@min}{\pgf@out@interval@max}%
\pgfdvmathexitbyserializing{\pgf@temp}{\pgf@out@val}%
\pgfkeyslet{/data point/\pgfoovalueof{out}}\pgf@temp%
}%
}%
\newif\ifpgf@dvignore
\pgfooclass{scaling mapper}
{%
\attribute in;%
\attribute out;%
\attribute in range obj;%
\attribute scaling spec;%
\attribute spec maps min;%
\attribute spec maps max;%
\attribute function;%
\attribute interval mapper;%
\attribute range surveyor;%
\method scaling mapper(#1,#2,#3,#4) {
\pgfooset{in}{#1}
\pgfooset{out}{#2}
\pgfooset{scaling spec}{#3}
\pgfooset{function}{#4}
\pgfoonew \pgf@dv@in@range@obj=new interval(,)
\pgfoolet{in range obj}\pgf@dv@in@range@obj
\pgfoonew \pgf@dv@range@obj=new range surveyor(#1,\pgf@dv@in@range@obj)
\pgf@dv@range@obj.default connects()
\pgfoolet{range surveyor}\pgf@dv@range@obj
\pgfoonew{interval mapper}=new interval mapper(#1,#2,#4)
\pgfoovalueof{interval mapper}.default connects()
}%
\method default connects() {
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,phase,phase signal)
}%
\method get in range interval() {
\pgfooget{in range obj}\pgfdvinrangeinterval
}%
\method get out() {
\pgfooget{out}\pgfdvout
}%
\method get function(#1) {
\pgfooget{function}#1
}%
\method include in value(#1) {
\pgfoovalueof{range surveyor}.include attribute value({#1})
}%
\method set in to(#1) {%
\edef\pgf@temp{#1}%
\ifx\pgf@temp\pgf@min@text%
\pgf@dv@lib@set@mm%
\let\pgf@dv@value\pgfdvmin%
\pgfoovalueof{spec maps min}{\pgfkeyslet{/data point/\pgfoovalueof{in}/is min or max}\pgf@min@text}{}%
\else%
\ifx\pgf@temp\pgf@max@text%
\pgf@dv@lib@set@mm%
\let\pgf@dv@value\pgfdvmax%
\pgfoovalueof{spec maps min}{\pgfkeyslet{/data point/\pgfoovalueof{in}/is min or max}\pgf@max@text}{}%
\else%
\pgfdvmathenter{\pgf@dv@value}{\pgf@temp}%
\fi%
\fi%
\pgfdvmathexitbyserializing{\pgf@dv@serial}{\pgf@dv@value}%
\pgfkeyslet{/data point/\pgfoovalueof{in}}\pgf@dv@serial%
}%
\def\pgf@dv@lib@set@mm{
\pgfooget{in range obj}\pgfdvinrangeinterval
\pgfdvinrangeinterval.get min and max()%
}%
\method phase(#1) {
\ifx#1\pgfdvendsurvey
\pgfoovalueof{in range obj}.get min and max()
\ifx\pgfdvmin\pgfutil@empty%
\else%
\pgfooget{scaling spec}\pgf@temp%
\expandafter\pgf@lib@dv@parse@scaling\pgf@temp\pgf@stop%
\pgfoovalueof{interval mapper}.set interval values(%
\pgf@lib@dv@min,\pgf@lib@dv@max,%
\pgf@lib@dv@min@at,\pgf@lib@dv@max@at)
\fi
\fi
}%
\def\pgf@lib@dv@parse@scaling#1 at#2and #3 at#4\pgf@stop{%
\def\pgf@lib@dv@min{#1}%
\pgfdvmathenter{\pgf@lib@dv@min@at@mv}{#2}
\def\pgf@lib@dv@max{#3}%
\pgfdvmathenter{\pgf@lib@dv@max@at@mv}{#4}
\ifx\pgf@lib@dv@min\pgf@min@text%
\let\pgf@lib@dv@min@mv\pgfdvmin
\pgfoolet{spec maps min}\pgfutil@firstoftwo%
\else
\pgfdvmathenter{\pgf@lib@dv@min@mv}{\pgf@lib@dv@min}
\pgfoolet{spec maps min}\pgfutil@secondoftwo%
\fi
\ifx\pgf@lib@dv@max\pgf@max@text%
\let\pgf@lib@dv@max@mv\pgfdvmax
\pgfoolet{spec maps max}\pgfutil@firstoftwo%
\else
\pgfdvmathenter{\pgf@lib@dv@max@mv}{\pgf@lib@dv@max}
\pgfoolet{spec maps max}\pgfutil@secondoftwo%
\fi
\pgfdvmathexitbyserializing{\pgf@lib@dv@min}{\pgf@lib@dv@min@mv}
\pgfdvmathexitbyserializing{\pgf@lib@dv@min@at}{\pgf@lib@dv@min@at@mv}
\pgfdvmathexitbyserializing{\pgf@lib@dv@max}{\pgf@lib@dv@max@mv}
\pgfdvmathexitbyserializing{\pgf@lib@dv@max@at}{\pgf@lib@dv@max@at@mv}
}%
\def\pgf@min@text{min}%
\def\pgf@max@text{max}%
}%
\pgfooclass{range surveyor}
{%
\attribute attribute;%
\attribute interval obj;%
\method range surveyor(#1,#2) {
\pgfooset{attribute}{#1}
\pgfoolet{interval obj}#2
}%
\method default connects() {
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,survey,survey datapoint signal)
}%
\method include attribute value(#1) {
\pgf@dv@assign@val@stripped#1\pgf@stop%
\pgfoovalueof{interval obj}.adjust(\pgf@dv@range@surv)
}%
\def\pgf@dv@assign@val@stripped#1\pgf@stop{%
\def\pgf@dv@val{#1}
}%
\method survey() {
\let\pgfdvsub\pgf@dv@range@surv@sub
\pgfdvsub{}%
\pgfkeysvalueof{/data point/\pgfoovalueof{attribute}/sub attributes}
}%
\def\pgf@dv@range@surv@sub#1{
\pgfkeysgetvalue{/data point/\pgfoovalueof{attribute}#1}\pgf@dv@val%
\ifx\pgf@dv@val\relax%
\else%
\edef\pgf@dv@val{\pgf@dv@val}%
\ifx\pgf@dv@val\pgfutil@empty%
\else%
\pgfoovalueof{interval obj}.adjust(\pgf@dv@range@surv)%
\fi%
\fi%
}%
\def\pgf@dv@range@surv{%
\pgfdvmathenter{\pgf@dv@value}{\pgf@dv@val}%
\ifx\pgfdvmin\pgfutil@empty%
\let\pgfdvmin\pgf@dv@value%
\else%
\pgfdvmathifless{\pgf@dv@value}{\pgfdvmin}{\let\pgfdvmin\pgf@dv@value}{}%
\fi%
\ifx\pgfdvmax\pgfutil@empty%
\let\pgfdvmax\pgf@dv@value%
\else%
\pgfdvmathifless{\pgfdvmax}{\pgf@dv@value}{\let\pgfdvmax\pgf@dv@value}{}%
\fi%
}%
}%
\usepgflibrary{plothandlers}%
\pgfooclass{plot handler visualizer}
{%
\attribute handlers;%
\attribute name;%
\attribute filter=\pgfdvnamedvisualizerfilter;%
\attribute positions;%
\attribute cache;%
\attribute projection code;%
\method plot handler visualizer(#1,#2) {
\pgfooset{name}{#1}
\pgfooset{handlers}{#2}
}%
\method default connects() {
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,protocol,visualize datapoint signal)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,phase,phase signal)
}%
\method set filter(#1) {
\pgfooset{filter}{#1}
}%
\method set projection code(#1) {
\pgfooset{projection code}{#1}
}%
\method protocol() {
\pgfdvfilterpassedtrue
\pgfoovalueof{filter}
\ifpgfdvfilterpassed%
\pgf@dv@line@cache@it
\fi%
}%
\def\pgf@dv@line@cache@it{
\pgfooget{cache}\pgf@dv@cache
\pgfkeysgetvalue{/data point/outlier}\pgf@temp%
\ifx\pgf@temp\pgfutil@empty
{%
\pgfoovalueof{projection code}
\xdef\pgf@dv@add{\noexpand\pgf@dv@ph{\pgfkeysvalueof{/data
point/canvas x}}{\pgfkeysvalueof{/data point/canvas y}}}%
}
\else%
\gdef\pgf@dv@add{\pgf@dv@outliner}%
\fi%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@dv@cache%
\expandafter\expandafter\expandafter{\expandafter\pgf@dv@cache\pgf@dv@add}%
\global\advance\pgf@lib@dv@cache@count by1\relax%
\ifnum\pgf@lib@dv@cache@count=100\relax%
\global\pgf@lib@dv@cache@count=0\relax%
\pgfooget{positions}\pgf@dv@temp
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@dv@temp%
\expandafter\expandafter\expandafter{\expandafter\pgf@dv@temp\pgf@dv@cache}%
\pgfoolet{positions}\pgf@dv@temp
\let\pgf@dv@cache\pgfutil@empty
\fi
\pgfoolet{cache}\pgf@dv@cache
}%
\method phase(#1) {%
\ifx#1\pgfdvendvisualization%
\pgfoothis.render()%
\fi%
}%
\method render() {
\pgfscope
\pgfooget{handlers}\tikz@dv@temp@list
\foreach\tikz@dv@temp in\tikz@dv@temp@list{
\ifx\tikz@dv@temp\pgfutil@empty
\else
\pgfkeysvalueof{/data point/\pgfoovalueof{name}/execute at begin}
\tikz@dv@temp
\pgfdvnewstreamtrue
\pgfoovalueof{positions}
\pgfoovalueof{cache}
\ifpgfdvnewstream\else\pgfplotstreamend\fi
\pgfkeysvalueof{/data point/\pgfoovalueof{name}/execute at end}
\fi
}
\endpgfscope
\pgfoolet{positions}\pgfutil@empty
\pgfoolet{cache}\pgfutil@empty
}%
\def\pgf@dv@ph#1#2{\ifpgfdvnewstream\pgfplotstreamstart\pgfdvnewstreamfalse\fi\pgfplotstreampoint{\pgfqpoint{#1}{#2}}}%
\def\pgf@dv@outliner{\ifpgfdvnewstream\else\pgfplotstreamend\pgfdvnewstreamtrue\fi}%
}%
\newif\ifpgfdvnewstream
\newcount\pgf@lib@dv@cache@count
\pgfkeys{%
/data point/outlier/.initial=,
/data point/outlier/.default=true,
}%
\def\pgfdvvisualizerfilter#1{%
\pgfkeysgetvalue{/data point/set}\pgf@dv@visualizer%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgf@dv@visualizer%
\else
\pgfdvfilterpassedfalse
\fi%
}%
\def\pgfdvnamedvisualizerfilter{%
\pgfkeysgetvalue{/data point/set}\pgf@dv@visualizer%
\pgfooget{name}\pgf@temp%
\ifx\pgf@temp\pgf@dv@visualizer%
\else
\pgfdvfilterpassedfalse
\fi%
}%
\pgfooclass{rectangle visualizer}
{%
\attribute name;%
\attribute a1;%
\attribute a2;%
\method rectangle visualizer(#1) {
\pgfooset{name}{#1}
}%
\method default connects() {
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,visualize,visualize datapoint signal)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,phase,phase signal)
}%
\method phase(#1) {%
\ifx#1\pgfdvbeginsurvey%
\pgfooeset{a1}{/data point/\pgfkeysvalueof{/data point/\pgfoovalueof{name}/attribute 1}}
\pgfooeset{a2}{/data point/\pgfkeysvalueof{/data point/\pgfoovalueof{name}/attribute 2}}
\pgfkeyssetvalue{\pgfoovalueof{a1}/sub attributes}{\pgfdvsub{/min}\pgfdvsub{/max}}
\pgfkeyssetvalue{\pgfoovalueof{a2}/sub attributes}{\pgfdvsub{/min}\pgfdvsub{/max}}
\fi%
}%
\method visualize() {
{
\pgfkeysgetvalue{/data point/set}\pgf@dv@visualizer%
\pgfooget{name}\pgf@temp%
\ifx\pgf@temp\pgf@dv@visualizer%
\pgf@dv@rect@do
\fi
}
}%
\def\pgf@dv@rect@do{
\pgfkeysgetvalue{\pgfoovalueof{a1}/min}\pgf@dv@amin
\ifx\pgf@dv@amin\relax\else\ifx\pgf@dv@amin\pgfutil@empty\else
\pgfkeysgetvalue{\pgfoovalueof{a1}/max}\pgf@dv@amax
\ifx\pgf@dv@amax\relax\else\ifx\pgf@dv@amax\pgfutil@empty\else
\pgfkeysgetvalue{\pgfoovalueof{a2}/min}\pgf@dv@bmin
\ifx\pgf@dv@bmin\relax\else\ifx\pgf@dv@bmin\pgfutil@empty\else
\pgfkeysgetvalue{\pgfoovalueof{a2}/max}\pgf@dv@bmax
\ifx\pgf@dv@bmax\relax\else\ifx\pgf@dv@bmax\pgfutil@empty\else
\pgfkeysvalueof{/data point/\pgfoovalueof{name}/execute at begin}
\pgfkeyssetvalue{\pgfoovalueof{a1}}{\pgf@dv@amin}
\pgfkeyssetvalue{\pgfoovalueof{a2}}{\pgf@dv@bmin}
\pgfpathdvmoveto
\pgfkeyssetvalue{\pgfoovalueof{a2}}{\pgf@dv@bmax}
\pgfpathdvlineto
\pgfkeyssetvalue{\pgfoovalueof{a1}}{\pgf@dv@amax}
\pgfpathdvlineto
\pgfkeyssetvalue{\pgfoovalueof{a2}}{\pgf@dv@bmin}
\pgfpathdvlineto
\pgfkeyssetvalue{\pgfoovalueof{a1}}{\pgf@dv@amin}
\pgfpathdvlineto
\pgfpathclose
\pgfkeysvalueof{/data point/\pgfoovalueof{name}/execute at end}
\fi\fi
\fi\fi
\fi\fi
\fi\fi
}%
}%
\newcount\pgf@lib@dv@cache@count
\pgfooclass{label visualizer}
{%
\attribute attribute;%
\attribute filter;%
\attribute threshold;%
\attribute before canvas position=;%
\attribute canvas position=;%
\attribute code;%
\method label visualizer(#1,#2,#3,#4) {
\pgfooset{attribute}{#1}
\expandafter\pgfdvmathenter\expandafter{\expandafter\pgf@temp\expandafter}\expandafter{#2}
\pgfoolet{threshold}\pgf@temp
\pgfooset{code}{#3}
\pgfooset{filter}{#4}
}%
\method default connects() {
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,test,visualize datapoint signal)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,phase,phase signal)
}%
\method test() {
\pgfdvfilterpassedtrue
\pgfoovalueof{filter}
\ifpgfdvfilterpassed%
\pgfooget{attribute}\pgf@dv@attribute
\ifx\pgf@dv@attribute\pgfutil@empty%
\else%
\pgf@dv@label@vis@record
\fi%
\fi%
}%
\def\pgf@dv@label@vis@record{
\edef\pgf@dv@pos{%
\noexpand\pgfqpoint%
{\pgfkeysvalueof{/data point/canvas x}}%
{\pgfkeysvalueof{/data point/canvas y}}}%
\pgfooget{canvas position}\pgf@dv@temp%
\pgfoolet{before canvas position}\pgf@dv@temp%
\pgfoolet{canvas position}\pgf@dv@pos%
\pgfooget{threshold}\pgf@dv@thres%
\ifx\pgf@dv@thres\pgfutil@empty%
\else%
\pgfkeysgetvalue{/data point/\pgfoovalueof{attribute}}\pgf@dv@val
\ifx\pgf@dv@val\relax%
\else\ifx\pgf@dv@val\pgfutil@empty%
\else%
\pgfdvmathenter{\pgf@dv@value}{\pgf@dv@val}%
\pgfooget{threshold}{\pgf@dv@thres}
\pgfdvmathifless{\pgf@dv@value}{\pgf@dv@thres}{}{%
\pgfoolet{attribute}\pgfutil@empty%
}%
\fi\fi%
\fi%
}%
\method phase(#1) {%
\ifx#1\pgfdvendvisualization%
\scope
\pgfcoordinate{label visualizer coordinate}{\pgfoovalueof{canvas position}}
\pgfcoordinate{label visualizer coordinate'}{\pgfoovalueof{before canvas position}}
\pgfoovalueof{code}
\endscope
\fi%
}%
}%
\pgfooclass{style attribute}
{%
\attribute attribute;%
\attribute style sheet name;%
\method style attribute(#1,#2) {
\pgfooset{attribute}{#1}
\pgfooset{style sheet name}{#2}
}%
\method default connects() {
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,invoke style,style signal)
}%
\method invoke style() {
\pgfooget{attribute}\pgf@dv@temp
\pgfkeysgetvalue{\pgf@dv@temp}\pgf@dv@temp@val
\ifx\pgf@dv@temp@val\pgfutil@empty%
\else\ifx\pgf@dv@temp@val\relax%
\else%
\pgfkeysifdefined{\pgf@dv@temp/\pgf@dv@temp@val}{\pgfkeysgetvalue{\pgf@dv@temp/\pgf@dv@temp@val}\pgf@dv@temp@val}{}%
\edef\pgf@temp{/pgf/data visualization/style sheets/\pgfoovalueof{style sheet name}}
\pgfkeysifassignable{\pgf@temp/\pgf@dv@temp@val}{%
\pgfkeysalso{\pgf@temp/\pgf@dv@temp@val}}{%
\pgfkeysalso{\pgf@temp/default style/.expand once=\pgf@dv@temp@val}
}
\fi\fi%
}%
}%
\def\pgfdvdeclarestylesheet#1#2{
\pgfkeys{/pgf/data visualization/style sheets/#1/.cd,#2}
}%
\pgfooclass{legend}
{%
\attribute entries;%
\attribute columns or rows;%
\attribute ideal;%
\attribute max;%
\attribute strategy;%
\attribute number of entries=0;%
\method legend(#1,#2,#3,#4) {
\pgfooset{columns or rows}{#1}
\pgfooset{ideal}{#2}
\pgfooset{max}{#3}
\pgfooset{strategy}{#4}
}%
\method default connects() {
}%
\method add entry(#1) {
\pgfooappend{entries}{{#1}}
\c@pgf@counta=\pgfoovalueof{number of entries}\relax%
\advance\c@pgf@counta by1\relax%
\pgfooeset{number of entries}{\the\c@pgf@counta}
}%
\method get arrangement(#1) {
{
\ifnum\pgfoovalueof{number of entries}>\pgfoovalueof{ideal}\relax%
\c@pgf@counta=\pgfoovalueof{ideal}\relax%
\multiply\c@pgf@counta by\pgfoovalueof{max}\relax%
\ifnum\c@pgf@counta>\pgfoovalueof{number of entries}\relax
\c@pgf@counta=\pgfoovalueof{ideal}\relax%
\c@pgf@countb=\pgfoovalueof{number of entries}\relax
\advance\c@pgf@countb by-1\relax
\divide\c@pgf@countb by\c@pgf@counta\relax%
\advance\c@pgf@countb by1\relax%
\else
\c@pgf@countb=\pgfoovalueof{max}\relax%
\c@pgf@counta=\pgfoovalueof{number of entries}\relax
\advance\c@pgf@counta by-1\relax
\divide\c@pgf@counta by\c@pgf@countb\relax%
\advance\c@pgf@counta by1\relax%
\fi
\else
\c@pgf@counta=\pgfoovalueof{number of entries}\relax%
\c@pgf@countb=1\relax%
\fi%
\pgfooget{columns or rows}\pgf@temp
\ifx\pgf@temp\pgf@dv@columnstext%
\c@pgf@countc=\c@pgf@counta\relax
\c@pgf@counta=\c@pgf@countb\relax
\c@pgf@countb=\c@pgf@countc\relax
\fi
\csname pgf@dv@legend@init@\pgfoovalueof{strategy}\endcsname
\expandafter\let\expandafter\pgf@dv@updater\csname pgf@dv@legend@update@\pgfoovalueof{strategy}\endcsname
\pgfooget{entries}\pgf@temp
\expandafter\pgf@dv@legend@arrange\pgf@temp\pgf@stop
\edef\pgf@dv@row@list{1,...,\the\c@pgf@counta}
\edef\pgf@dv@column@list{1,...,\the\c@pgf@countb}
\global\let\pgf@dv@matrix\pgfutil@empty
\foreach \pgf@dv@row in \pgf@dv@row@list
{
\global\let\pgf@dv@matrix@row\pgf@dv@first@mark
\foreach \pgf@dv@column in \pgf@dv@column@list
{
\expandafter\let\expandafter\pgf@temp\csname pgf@dv@legend@entry@\pgf@dv@row @\pgf@dv@column\endcsname
\ifx\pgf@temp\relax
\let\pgf@temp\pgfutil@empty
\fi
\ifx\pgf@dv@matrix@row\pgf@dv@first@mark
\global\let\pgf@dv@matrix@row\pgf@temp
\else
\expandafter\pgfutil@g@addto@macro\expandafter\pgf@dv@matrix@row\expandafter{\expandafter\pgfdvnextcell\pgf@temp}
\fi
}
\pgfutil@g@addto@macro\pgf@dv@matrix@row{\pgfdvendrow}
\expandafter\pgfutil@g@addto@macro\expandafter\pgf@dv@matrix\expandafter{\pgf@dv@matrix@row}
}
\global\let\pgf@dv@matrix@row\relax
}
\let#1\pgf@dv@matrix
\global\let\pgf@dv@matrix\relax
}%
\def\pgf@dv@first@mark{\pgf@dv@first@mark}%
\def\pgf@dv@legend@arrange{%
\pgfutil@ifnextchar\pgf@stop{\pgfutil@gobble}{\pgf@dv@legend@handle@entry}
}%
\def\pgf@dv@legend@handle@entry#1{
\expandafter\def\csname pgf@dv@legend@entry@\the\c@pgf@countc @\the\c@pgf@countd\endcsname{#1}%
\pgf@dv@updater%
\pgf@dv@legend@arrange%
}%
\expandafter\def\csname pgf@dv@legend@init@down then right\endcsname{%
\c@pgf@countc=1\relax%
\c@pgf@countd=1\relax%
}%
\expandafter\def\csname pgf@dv@legend@update@down then right\endcsname{%
\advance\c@pgf@countc by1\relax
\ifnum\c@pgf@countc>\c@pgf@counta\relax%
\c@pgf@countc=1\relax%
\advance\c@pgf@countd by1\relax%
\fi%
}%
\expandafter\def\csname pgf@dv@legend@init@right then down\endcsname{%
\c@pgf@countc=1\relax%
\c@pgf@countd=1\relax%
}%
\expandafter\def\csname pgf@dv@legend@update@right then down\endcsname{%
\advance\c@pgf@countd by1\relax
\ifnum\c@pgf@countd>\c@pgf@countb\relax%
\c@pgf@countd=1\relax%
\advance\c@pgf@countc by1\relax%
\fi%
}%
\expandafter\def\csname pgf@dv@legend@init@up then right\endcsname{%
\c@pgf@countc=\c@pgf@counta\relax%
\c@pgf@countd=1\relax%
}%
\expandafter\def\csname pgf@dv@legend@update@up then right\endcsname{%
\advance\c@pgf@countc by-1\relax
\ifnum\c@pgf@countc=0\relax%
\c@pgf@countc=\c@pgf@counta\relax%
\advance\c@pgf@countd by1\relax%
\fi%
}%
\expandafter\def\csname pgf@dv@legend@init@right then up\endcsname{%
\c@pgf@countc=\c@pgf@counta\relax%
\c@pgf@countd=1\relax%
}%
\expandafter\def\csname pgf@dv@legend@update@right then up\endcsname{%
\advance\c@pgf@countd by1\relax
\ifnum\c@pgf@countd>\c@pgf@countb\relax%
\c@pgf@countd=1\relax%
\advance\c@pgf@countc by-1\relax%
\fi%
}%
\expandafter\def\csname pgf@dv@legend@init@left then up\endcsname{%
\c@pgf@countc=\c@pgf@counta\relax%
\c@pgf@countd=\c@pgf@countb\relax%
}%
\expandafter\def\csname pgf@dv@legend@update@left then up\endcsname{%
\advance\c@pgf@countd by-1\relax
\ifnum\c@pgf@countd=0\relax%
\c@pgf@countd=\c@pgf@countb\relax%
\advance\c@pgf@countc by-1\relax%
\fi%
}%
\expandafter\def\csname pgf@dv@legend@init@up then left\endcsname{%
\c@pgf@countc=\c@pgf@counta\relax%
\c@pgf@countd=\c@pgf@countb\relax%
}%
\expandafter\def\csname pgf@dv@legend@update@up then left\endcsname{%
\advance\c@pgf@countc by-1\relax
\ifnum\c@pgf@countc=0\relax%
\c@pgf@countc=\c@pgf@counta\relax%
\advance\c@pgf@countd by-1\relax%
\fi%
}%
\expandafter\def\csname pgf@dv@legend@init@left then down\endcsname{%
\c@pgf@countc=1\relax%
\c@pgf@countd=\c@pgf@countb\relax%
}%
\expandafter\def\csname pgf@dv@legend@update@left then down\endcsname{%
\advance\c@pgf@countd by-1\relax
\ifnum\c@pgf@countd=0\relax%
\c@pgf@countd=\c@pgf@countb\relax%
\advance\c@pgf@countc by1\relax%
\fi%
}%
\expandafter\def\csname pgf@dv@legend@init@down then left\endcsname{%
\c@pgf@countc=1\relax%
\c@pgf@countd=\c@pgf@countb\relax%
}%
\expandafter\def\csname pgf@dv@legend@update@down then left\endcsname{%
\advance\c@pgf@countc by1\relax
\ifnum\c@pgf@countc>\c@pgf@countb\relax%
\c@pgf@countc=1\relax%
\advance\c@pgf@countd by-1\relax%
\fi%
}%
\def\pgf@dv@columnstext{columns}%
}%
\pgfooclass{interval}
{%
\attribute min;%
\attribute max;%
\method interval(#1,#2) {
\pgfooset{min}{#1}
\pgfooset{max}{#2}
}%
\method default connects() {
}%
\method set min(#1) {
\pgfooset{min}{#1}
}%
\method set max(#1) {
\pgfooset{max}{#1}
}%
\method let min(#1) {
\pgfoolet{min}{#1}
}%
\method let max(#1) {
\pgfoolet{max}{#1}
}%
\method get min and max() {
\pgfooget{min}\pgfdvmin
\pgfooget{max}\pgfdvmax
}%
\method adjust(#1) {
{%
\pgfooget{min}\pgfdvmin
\pgfooget{max}\pgfdvmax
#1%
\pgfoolet{min}\pgfdvmin
\pgfoolet{max}\pgfdvmax
}%
}%
}%
\pgfooclass{count}
{%
\attribute attribute;%
\attribute val=0;%
\attribute max=0;%
\attribute step=1;%
\attribute start val=0;%
\attribute filter=;%
\method count(#1) {
\pgfooset{attribute}{#1}
}%
\method default connects() {
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,apply,prepare datapoint signal)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,phase,phase signal)
}%
\method get max(#1) {
\pgfooget{max}{#1}
}%
\method set value(#1) {
\pgfooset{val}{#1}
\pgfkeyssetvalue{/data point/\pgfoovalueof{attribute}}{#1}%
}%
\method set start value(#1) {
\pgfooset{start val}{#1}
\pgfooset{max}{#1}
}%
\method set filter(#1) {
\pgfooset{filter}{#1}
}%
\method set step(#1) {
\pgfooset{step}{#1}
}%
\method apply() {
\pgfdvfilterpassedtrue%
\pgfoovalueof{filter}%
\ifpgfdvfilterpassed%
\pgfmathparse{\pgfoovalueof{val}+\pgfoovalueof{step}}%
\pgfoolet{val}\pgfmathresult%
\pgfkeyslet{/data point/\pgfoovalueof{attribute}}\pgfmathresult%
\ifdim\pgfmathresult pt>\pgfoovalueof{max}pt\relax%
\pgfoolet{max}\pgfmathresult%
\fi%
\pgfooget{max}\pgfmathresult%
\pgfkeyslet{/data point/\pgfoovalueof{attribute}/max}\pgfmathresult%
\fi%
}%
\method phase(#1) {
\ifx#1\pgfdvbeginsurvey
\pgfooeset{val}{\pgfoovalueof{start val}}
\else \ifx#1\pgfdvbeginvisualization
\pgfooeset{val}{\pgfoovalueof{start val}}
\fi\fi
}%
}%
\newif\ifpgfdvfilterpassed
\pgfooclass{accumulator}
{%
\attribute attribute;%
\attribute sum;%
\method accumulator(#1) {
\pgfooset{attribute}{#1}
\pgfoothis.reset()
}%
\method default connects() {
\pgfoothis.get handle(\pgf@dv@me)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,apply,prepare datapoint signal)
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,phase,phase signal)
}%
\method apply() {%
\pgfkeysgetvalue{/data point/\pgfoovalueof{attribute}/sum}\pgf@temp%
\pgfkeyslet{/data point/\pgfoovalueof{attribute}/prev sum}\pgf@temp%
\pgfkeysgetvalue{/data point/\pgfoovalueof{attribute}}{\pgf@temp@b}%
\pgfdvmathenter{\pgf@dv@new@val}{\pgf@temp@b}%
\pgfooget{sum}\pgf@dv@sum%
\pgfdvmathadd{\pgf@dv@sum}{\pgf@dv@new@val}{\pgf@dv@sum}%
\pgfoolet{sum}\pgf@dv@sum
\pgfdvmathexitbyscientificformat{\pgf@dv@serial@sum}{\pgf@dv@sum}
\pgfkeyslet{/data point/\pgfoovalueof{attribute}/sum}\pgf@dv@serial@sum
}%
\method reset() {
\pgfdvmathenter{\pgf@dv@temp}{0}
\pgfoolet{sum}{\pgf@dv@temp}
\pgfdvmathexitbyserializing{\pgf@dv@zero}{\pgf@dv@temp}
\pgfkeyslet{/data point/\pgfoovalueof{attribute}/prev sum}{\pgf@dv@zero}
\pgfkeyslet{/data point/\pgfoovalueof{attribute}/sum}{\pgf@dv@zero}
}%
\method phase(#1) {
\ifx#1\pgfdvbeginsurvey
\pgfoothis.reset()
\else \ifx#1\pgfdvbeginvisualization
\pgfoothis.reset()
\fi\fi
}%
}%
\pgfkeys{%
/data point/always true/.initial=true,
/data point/always false/.initial=false,
/data point/always 0/.initial=0,
/data point/always 1/.initial=1,
/data point/always empty/.initial=,
/data point/always pgfusepath stroke/.initial=\pgfusepath{stroke},
}%
\pgfdvmathenter{\pgfdvmathalwaysloge}{0.434294481903252}%
\pgfdvmathenter{\pgfdvmathalwayslnten}{2.302585092994046}%
\pgfdvmathenter{\pgfdvmathalwayszero}{0}%
\pgfdvmathenter{\pgfdvmathalwaysone}{1}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduledatavisualization.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduledecorations.code.tex ====
\def\pgfgetpath#1{\pgfsyssoftpath@getcurrentpath{#1}}%
\def\pgfsetpath#1{\pgfsyssoftpath@setcurrentpath{#1}}%
\newdimen\pgfdecoratedcompleteddistance
\newdimen\pgfdecoratedremainingdistance
\newdimen\pgfdecoratedinputsegmentcompleteddistance
\newdimen\pgfdecoratedinputsegmentremainingdistance
\newdimen\pgf@decorate@distancetomove
\newcount\pgf@decorate@repeatstate
\newdimen\pgfdecorationsegmentamplitude
\newdimen\pgfdecorationsegmentlength
\pgfdecorationsegmentamplitude2.5pt
\pgfdecorationsegmentlength10pt
\def\pgfdecorationsegmentangle{45}%
\def\pgfdecorationsegmentaspect{0.5}%
\def\pgfmetadecorationsegmentamplitude{2.5pt}%
\def\pgfmetadecorationsegmentlength{1cm}%
\pgfkeys{%
/pgf/decoration/.code={\pgfkeys{/pgf/decoration/.cd,#1}},
/pgf/decoration/.cd,
amplitude/.code={\pgfmathsetlength\pgfdecorationsegmentamplitude{#1}},
meta-amplitude/.store in=\pgfmetadecorationsegmentamplitude,
segment length/.code={\pgfmathsetlength\pgfdecorationsegmentlength{#1}},
meta-segment length/.store in=\pgfmetadecorationsegmentlength,
angle/.code={\pgfmathparse{#1}\let\pgfdecorationsegmentangle\pgfmathresult},
aspect/.code={\pgfmathparse{#1}\let\pgfdecorationsegmentaspect\pgfmathresult},
start radius/.initial=2.5pt,
end radius/.initial=2.5pt,
radius/.style={start radius={#1},end radius={#1}},
path has corners/.is if=pgfdecoratepathhascorners,
reverse path/.is if=pgf@decorate@inputsegmentobjects@reverse,
}%
\newif\ifpgfdecoratepathhascorners
\newif\ifpgf@decorate@inputsegmentobjects@reverse
\long\def\pgfdeclaredecoration#1#2#3{%
\let\pgf@mod@dec@next=\pgf@mod@dec@firstofone%
\pgfifmetadecoration{#1}{%
\pgferror{You cannot declare a decoration of the same
name as a meta-decoration}%
\let\pgf@mod@dec@next=\pgfutil@gobble%
}{}%
\pgf@mod@dec@next
{%
\def\pgf@decorate@name{#1}%
\pgfutil@namedef{pgf@decorate@@#1@initial}{#2}%
\let\pgf@orig@state\state%
\let\state\pgf@decorate@state
#3%
\let\state\pgf@orig@state%
}%
}%
\def\pgf@decorate@state#1{\pgfutil@ifnextchar[{\pgf@decorate@@start#1}{\pgf@decorate@@start#1[]}}%
\def\pgf@decorate@@start#1[#2]#3{%
\pgfutil@namedef{pgf@decorate@@\pgf@decorate@name @#1@options}{#2}%
\pgfutil@namedef{pgf@decorate@@\pgf@decorate@name @#1@code}{#3}%
}%
\long\def\pgf@mod@dec@firstofone#1{#1}%
\def\pgfifdecoration#1#2#3{\pgfutil@ifundefined{pgf@decorate@@#1@initial}{#3}{#2}}%
\long\def\pgfdeclaremetadecoration#1#2#3{%
\let\pgf@mod@dec@next=\pgf@mod@dec@firstofone%
\pgfifdecoration{#1}{%
\pgferror{You cannot declare a meta-decoration of the
same name as a decoration}%
\let\pgf@mod@dec@next=\pgfutil@gobble%
}{}%
\pgf@mod@dec@next{%
\def\pgf@metadecoration@name{#1}%
\pgfutil@namedef{pgf@metadecoration@@#1@initial}{#2}%
\let\pgf@orig@state\state%
\let\state\pgf@metadecoration@state
#3%
\let\state\pgf@orig@state%
}%
}%
\def\pgf@metadecoration@state#1{\pgfutil@ifnextchar[{\pgf@metadecoration@@state#1}{\pgf@metadecoration@@state#1[]}}%
\def\pgf@metadecoration@@state#1[#2]#3{%
\pgfutil@namedef{pgf@metadecoration@@\pgf@metadecoration@name @#1@options}{#2}%
\pgfutil@namedef{pgf@metadecoration@@\pgf@metadecoration@name @#1@code}{#3}%
}%
\def\pgfifmetadecoration#1#2#3{\pgfutil@ifundefined{pgf@metadecoration@@#1@initial}{#3}{#2}}%
\let\pgfdecoratebeforecode\pgfutil@empty
\let\pgfdecorateaftercode\pgfutil@empty
\long\def\pgfdecoratepath#1#2{%
\pgfdecoration{{#1}{\pgfdecoratedpathlength}{\pgfdecoratebeforecode}{\pgfdecorateaftercode}}%
#2%
\endpgfdecoration}%
\def\pgfdecoratecurrentpath#1{%
\pgfgetpath\pgf@decorate@currentpath%
\pgfsetpath\pgfutil@empty%
\pgfdecoration{{#1}{\pgfdecoratedpathlength}{\pgfdecoratebeforecode}{\pgfdecorateaftercode}}%
\pgfsetpath\pgf@decorate@currentpath%
\endpgfdecoration}%
\def\pgfdecoration#1{%
\begingroup%
\def\pgf@decorate@decorationlist{#1}%
\pgf@decoration@env%
}%
\def\endpgfdecoration{%
\pgf@decoration@endenv%
\ifx\pgfdecoratedpath\pgfutil@empty%
\else%
\pgf@decorate@for\pgf@temp:=\pgf@decorate@decorationlist\do{%
\ifx\pgf@temp\pgfutil@empty%
\else%
\expandafter\pgf@decorate@invoke\expandafter{\pgf@temp}%
\fi%
}%
\fi%
\pgfgetpath\pgfdecorationpath%
\global\let\pgf@decorate@decorationpathtemp\pgfdecorationpath%
\global\let\pgf@decorate@decoratedpathtemp\pgfdecoratedpath%
\global\let\pgf@decorate@existingpathtemp\pgfdecorateexistingpath%
\global\let\pgfpoint@decorated@pathlasttemp\pgfpoint@decorated@pathlast%
\endgroup%
\pgfutil@ifnextchar\@checkend{\aftergroup\pgf@decorate@installmacrosatend}%
{\pgf@decorate@installmacrosatend}%
}%
\def\pgfmetadecoration#1{%
\begingroup%
\let\decoration\pgf@metadecoration@decoration%
\let\beforedecoration\pgf@metadecoration@beforedecoration%
\let\afterdecoration\pgf@metadecoration@afterdecoration%
\def\pgf@metadecoration@name{#1}%
\pgf@decoration@env%
}%
\def\endpgfmetadecoration{%
\pgf@decoration@endenv%
\ifx\pgfdecoratedpath\pgfutil@empty%
\else%
\let\pgfmetadecoratedpathlength\pgf@decorate@totalpathlength%
\def\pgfmetadecoratedinputsegmentremainingdistance{\pgfdecoratedremainingdistance}%
\def\pgfmetadecoratedinputsegmentcompleteddistance{\pgfdecoratedcompleteddistance}%
\expandafter\let\expandafter\pgf@metadecoration@current@state%
\csname pgf@metadecoration@@\pgf@metadecoration@name @initial\endcsname%
\pgf@metadecoration@run%
\let\pgf@decorate@tempname\pgfutil@empty%
\let\pgf@decorate@tempbefore\pgfutil@empty%
\let\pgf@decorate@tempafter\pgfutil@empty%
\csname pgf@metadecoration@@\pgf@metadecoration@name @\pgf@metadecoration@current@state @code\endcsname%
\ifx\pgf@decorate@tempname\pgfutil@empty%
\def\pgf@decorate@tempname{moveto}
\fi%
\pgf@decorate@invoke{%
{\pgf@decorate@tempname}{\pgfdecoratedremainingdistance}%
{\pgf@decorate@tempbefore}{\pgf@decorate@tempafter}%
}%
\fi%
\pgfgetpath\pgfdecorationpath%
\global\let\pgf@decorate@decorationpathtemp\pgfdecorationpath%
\global\let\pgf@decorate@decoratedpathtemp\pgfdecoratedpath%
\global\let\pgf@decorate@existingpathtemp\pgfdecorateexistingpath%
\global\let\pgfpoint@decorated@pathlasttemp\pgfpoint@decorated@pathlast%
\endgroup%
\pgfutil@ifnextchar\@checkend{\aftergroup\pgf@decorate@installmacrosatend}%
{\pgf@decorate@installmacrosatend}%
}%
\def\pgf@decoration@env{%
\pgfgetpath\pgfdecorateexistingpath%
\pgfsetpath\pgfutil@empty%
\let\pgfdecorationpath\pgfutil@empty%
\let\pgfdecoratedpath\pgfutil@empty%
\let\pgfpoint@decorated@pathlast\pgfpointorigin%
\edef\pgfpoint@decorate@existingpathlast{\pgf@x\the\pgf@path@lastx\pgf@y\the\pgf@path@lasty}%
\bgroup%
}%
\def\pgf@decorate@path@check@moveto#1{%
\expandafter\pgf@decorate@path@@check@moveto#1\pgf@decorate@stop\pgf@decorate@@stop}%
\def\pgf@decorate@token@stop{\pgf@decorate@stop}%
\def\pgf@decorate@path@@check@moveto#1#2#3#4\pgf@decorate@@stop#5#6{%
\def\pgf@decorate@temp{#4}%
\pgf@x=#2\relax%
\pgf@y=#3\relax%
\ifx\pgf@decorate@temp\pgf@decorate@token@stop%
#5%
\else%
#6%
\fi%
}%
\def\pgf@decoration@endenv{%
\egroup%
\pgftransformreset%
\pgfgetpath\pgfdecoratedpath%
\pgfsetpath\pgfdecorateexistingpath%
\ifx\pgfdecoratedpath\pgfutil@empty%
\pgferror{I cannot decorate an empty path}%
\else%
\pgf@decorate@path@check@moveto\pgfdecoratedpath{%
\advance\pgf@x by0.0001pt\relax%
\edef\pgfdecoratedpath{%
\expandafter\noexpand\pgfdecoratedpath%
\noexpand\pgfsyssoftpath@linetotoken{\the\pgf@x}{\the\pgf@y}%
}%
}%
{}%
\pgfprocessround{\pgfdecoratedpath}{\pgfdecoratedpath}%
\pgf@decorate@parsesoftpath{\pgfdecoratedpath}{\pgf@decorate@inputsegmentobjects}%
\pgfkeys{/pgf/every decoration/.try}%
\ifpgf@decorate@inputsegmentobjects@reverse%
\pgf@decorate@inputsegmentobjects@reverse{\pgf@decorate@inputsegmentobjects}{\pgf@decorate@inputsegmentobjects}%
\fi%
\let\pgf@decorated@remainingdistance\pgf@decorate@totalpathlength%
\let\pgfpoint@decorated@totalpathfirst\pgfpoint@decorated@firstparsed%
\let\pgfpoint@decorated@totalpathlast\pgfpoint@decorate@lastnonmovetoparsed%
\let\pgfpoint@decorated@pathfirst\pgfpoint@decorated@totalpathfirst
\let\pgfpoint@decorated@pathlast\pgfpoint@decorated@totalpathlast%
\let\pgf@decorate@currentinputsegmentobjects\pgf@decorate@inputsegmentobjects%
\let\pgf@decorate@transformtoinputsegment\pgfutil@empty%
\pgf@decorate@getnextinputsegmentobject\pgf@decorate@nextinputsegmentobject%
\pgf@decorate@processnextinputsegmentobject%
\pgf@decorate@distancetomove0pt\relax%
\fi%
}%
\def\pgf@decorate@installmacrosatend{%
\let\pgfdecorationpath\pgf@decorate@decorationpathtemp%
\let\pgfdecoratedpath\pgf@decorate@decoratedpathtemp%
\let\pgfdecorateexistingpath\pgf@decorate@existingpathtemp%
\let\pgfpoint@decorated@pathlast\pgfpoint@decorated@pathlasttemp%
}%
\let\pgfdecorationpath\pgfutil@empty
\let\pgfdecoratedpath\pgfutil@empty
\let\pgfdecorateexisitingpath\pgfutil@empty
\let\pgfpoint@decorated@pathlast\pgfpointorigin
\def\pgf@decorate@for#1:=#2\do#3{%
\def\pgf@decorate@for@var{#1}%
\def\pgf@decorate@for@action{#3}%
\expandafter\pgf@decorate@@for#2,\pgf@stop,}%
\def\pgf@decorate@@for#1,{%
\ifx#1\pgf@stop%
\expandafter\let\pgf@decorate@for@var\pgfutil@empty%
\else%
\expandafter\def\pgf@decorate@for@var{#1}%
\pgf@decorate@for@action%
\expandafter\pgf@decorate@@for%
\fi%
}%
\def\pgf@decorate@invoke#1{%
\pgf@decorate@@invoke#1\pgf@decorate@invoke\pgf@decorate@invoke\pgf@decorate@invoke\pgf@stop}%
\def\pgf@decorate@@invoke#1#2#3#4#5\pgf@stop{%
\pgfutil@ifundefined{pgf@decorate@@#1@initial}%
{%
\pgferror{Unknown decoration `#1'}%
}%
{%
\def\pgf@decorate@name{#1}%
\ifx\pgf@decorate@invoke#3%
\let\pgf@decorate@beforecode\pgfutil@empty%
\else%
\def\pgf@decorate@beforecode{#3}%
\fi%
\ifx\pgf@decorate@invoke#4%
\let\pgf@decorate@aftercode\pgfutil@empty%
\else%
\def\pgf@decorate@aftercode{#4}%
\fi%
\pgfdecoratedremainingdistance\pgf@decorated@remainingdistance\relax%
\let\pgfdecoratedpathlength\pgf@decorate@totalpathlength%
\pgfmathsetlength\pgf@xa{#2}%
\ifdim\pgf@xa>\pgf@decorated@remainingdistance\relax%
\pgf@xa\pgf@decorated@remainingdistance\relax%
\fi%
\edef\pgf@decorate@currentpathlength{\the\pgf@xa}%
\pgf@xa-\pgf@decorate@currentpathlength\relax%
\advance\pgf@xa\pgf@decorated@remainingdistance\relax%
\edef\pgf@decorated@remainingdistance{\the\pgf@xa}%
\let\pgfdecoratedpathlength\pgf@decorate@currentpathlength%
\pgfdecoratedremainingdistance\pgfdecoratedpathlength\relax%
\pgfdecoratedcompleteddistance0pt\relax%
\pgf@decorate@beforecode%
\expandafter\let\expandafter\pgf@decorate@current@state%
\csname pgf@decorate@@\pgf@decorate@name @initial\endcsname%
\pgf@decorate@run%
\ifdim\pgf@decorated@remainingdistance<1pt\relax%
\let\pgfpoint@decorated@pathlast\pgfpoint@decorated@totalpathlast%
\else%
{%
\pgf@decorate@movealonginputsegment{\the\pgfdecoratedremainingdistance}%
\pgf@decorate@transformtoinputsegment%
\pgfpointorigin%
\pgf@pos@transform@glob%
\global\pgf@x\pgf@x%
\global\pgf@y\pgf@y%
}%
\edef\pgfpoint@decorated@pathlast{\pgf@x\the\pgf@x\pgf@y\the\pgf@y}%
\fi%
{%
\pgftransformreset%
\pgf@decorate@transformtoinputsegment%
\pgf@decorate@additionaltransform%
\csname pgf@decorate@@\pgf@decorate@name @final@code\endcsname%
}%
\pgf@decorate@movealonginputsegment{\the\pgfdecoratedremainingdistance}%
\pgf@decorate@aftercode%
\let\pgf@decorate@additionaltransform\pgfutil@empty%
\let\pgf@decorate@inputsegmentobjects\pgf@decorate@inputsegmentobjects@aftersplit%
\let\pgfpoint@decorated@pathfirst\pgfpoint@decorated@pathlast%
}%
}%
\let\pgf@decorate@transformtoinputsegment\pgfutil@empty%
\let\pgf@decorate@additionaltransform\pgfutil@empty%
\def\pgfpointdecoratedpathfirst{%
{%
\pgftransforminvert%
\pgfpoint@decorated@pathfirst%
\pgf@pos@transform@glob%
\global\pgf@x\pgf@x%
\global\pgf@y\pgf@y%
}%
}%
\def\pgfpointdecoratedpathlast{%
{%
\pgftransforminvert%
\pgfpoint@decorated@pathlast%
\pgf@pos@transform@glob%
\global\pgf@x\pgf@x%
\global\pgf@y\pgf@y%
}%
}%
\def\pgfpointdecoratedinputsegmentfirst{%
{%
\pgftransforminvert%
\pgf@decorate@inputsegment@first%
\pgf@pos@transform@glob%
\global\pgf@x\pgf@x%
\global\pgf@y\pgf@y%
}%
}%
\def\pgfpointdecoratedinputsegmentlast{%
{%
\pgftransforminvert%
\pgf@decorate@inputsegment@last%
\pgf@pos@transform@glob%
\global\pgf@x\pgf@x%
\global\pgf@y\pgf@y%
}%
}%
\def\pgf@final@text{final}%
\def\pgf@decorate@run{%
\let\pgf@decorate@next\pgf@decorate@do@state%
\ifx\pgf@decorate@current@state\pgf@final@text%
\let\pgf@decorate@next\relax%
\fi%
\pgf@decorate@next%
}%
\def\pgf@decorate@do@state{%
\let\pgf@decorate@next\relax%
\let\pgf@decorate@next@state\pgf@decorate@current@state%
\let\pgf@decorate@persistent@pre=\relax%
\let\pgf@decorate@persistent@post=\relax%
\expandafter\expandafter\expandafter\pgf@decorate@setter
\expandafter\expandafter\expandafter{\csname pgf@decorate@@\pgf@decorate@name @\pgf@decorate@current@state @options\endcsname}%
\ifx\pgf@decorate@next\relax%
\let\pgf@decorate@next\pgf@decorate@do@code%
\fi%
\pgf@decorate@next%
}%
\def\pgf@decorate@setter{\pgfqkeys{/pgf/decoration automaton}}%
\pgf@decorate@repeatstate-1\relax
\def\pgf@decorate@do@code{%
\pgf@decorate@persistent@pre%
{%
\pgftransformreset%
\pgf@decorate@transformtoinputsegment%
\pgf@decorate@additionaltransform%
\csname pgf@decorate@@\pgf@decorate@name @\pgf@decorate@current@state @code\endcsname%
}%
\pgf@decorate@persistent@post%
\pgf@decorate@movealongpath{\pgf@decorate@width}%
\ifnum\pgf@decorate@repeatstate>0\relax%
\advance\pgf@decorate@repeatstate-1\relax%
\else%
\pgf@decorate@repeatstate-1\relax%
\let\pgf@decorate@current@state\pgf@decorate@next@state%
\fi%
\pgf@decorate@run%
}%
\pgfkeys{
/pgf/decoration automaton/width/.code=\def\pgf@decorate@width{#1}\pgf@decorate@switch@if#1 to final\pgf@stop,%
/pgf/decoration automaton/switch if less than/.code=\pgf@decorate@switch@if#1\pgf@stop,%
/pgf/decoration automaton/switch if input segment less than/.code=\pgf@decorate@switch@ifinputsegment#1\pgf@stop,%
/pgf/decoration automaton/next state/.store in=\pgf@decorate@next@state,%
/pgf/decoration automaton/persistent precomputation/.store in=\pgf@decorate@persistent@pre,%
/pgf/decoration automaton/persistent postcomputation/.store in=\pgf@decorate@persistent@post,%
/pgf/decoration automaton/repeat state/.code={%
\ifnum\pgf@decorate@repeatstate=-1\relax%
\pgfmathsetcount\pgf@decorate@repeatstate{#1}%
\fi%
},%
/pgf/decoration automaton/if input segment is closepath/.code={%
\ifpgf@decorate@is@closepath@%
\pgfkeysalso{#1}%
\fi%
},
/pgf/decoration automaton/auto end on length/.code=\pgf@decorate@auto@end{#1},
/pgf/decoration automaton/auto corner on length/.code=\pgf@decorate@auto@corner{#1},
}%
\def\pgf@decorate@auto@end#1{%
\ifx\pgf@decorate@next\relax%
\pgfmathsetlength\pgf@x{#1}%
\ifpgf@decorate@is@closepath@%
\ifdim\pgfdecoratedremainingdistance>\pgf@x%
\ifdim\pgfdecoratedinputsegmentremainingdistance>\pgf@x%
\else%
\pgfpathclose%
\pgf@decorate@movealongpath{\pgfdecoratedinputsegmentremainingdistance}%
\pgf@decorate@repeatstate-1\relax%
\let\pgf@decorate@next\pgf@decorate@run%
\fi%
\else%
\pgfpathclose%
\def\pgf@decorate@current@state{final}%
\def\pgf@decorate@width{\pgfdecoratedremainingdistance}
\pgf@decorate@repeatstate-1\relax%
\let\pgf@decorate@next\pgf@decorate@run%
\fi%
\else%
\ifdim\pgfdecoratedremainingdistance>\pgf@x%
\else%
{%
\pgftransformreset%
\pgf@decorate@transformtoinputsegment%
\pgf@decorate@additionaltransform%
\pgfpathlineto{\pgfpoint{\pgfdecoratedremainingdistance}{0pt}}
}%
\def\pgf@decorate@current@state{final}%
\def\pgf@decorate@width{\pgfdecoratedremainingdistance}
\pgf@decorate@repeatstate-1\relax%
\let\pgf@decorate@next\pgf@decorate@run%
\fi%
\fi%
\fi%
}%
\def\pgf@decorate@auto@corner#1{%
\ifpgfdecoratepathhascorners%
\ifx\pgf@decorate@next\relax%
\pgfmathsetlength\pgf@x{#1}%
\ifdim\pgfdecoratedinputsegmentremainingdistance>\pgf@x%
\else%
{%
\pgftransformreset%
\pgf@decorate@transformtoinputsegment%
\pgf@decorate@additionaltransform%
\pgfpathlineto{\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
}%
\pgf@decorate@movealongpath{\pgfdecoratedinputsegmentremainingdistance}%
\pgf@decorate@repeatstate-1\relax%
\let\pgf@decorate@next\pgf@decorate@run%
\fi%
\fi%
\fi%
}%
\def\pgf@decorate@switch@if#1to #2\pgf@stop{%
\ifx\pgf@decorate@next\relax%
\ifdim\pgfdecoratedremainingdistance=0pt\relax%
\def\pgf@decorate@current@state{#2}%
\pgf@decorate@repeatstate-1\relax%
\let\pgf@decorate@next\pgf@decorate@run%
\else%
\pgfmathsetlength\pgf@x{#1}%
\ifdim\pgfdecoratedremainingdistance<\pgf@x%
\def\pgf@decorate@current@state{#2}%
\pgf@decorate@repeatstate-1\relax%
\let\pgf@decorate@next\pgf@decorate@run%
\fi%
\fi%
\fi%
}%
\def\pgf@decorate@switch@ifinputsegment#1to #2\pgf@stop{%
\ifx\pgf@decorate@next\relax%
\pgfmathsetlength\pgf@x{#1}%
\ifdim\pgfdecoratedinputsegmentremainingdistance<\pgf@x%
\def\pgf@decorate@current@state{#2}%
\pgf@decorate@repeatstate-1\relax%
\let\pgf@decorate@next\pgf@decorate@run%
\fi%
\fi%
}%
\def\pgfsetdecorationsegmenttransformation#1{\def\pgf@decorate@additionaltransform{#1}}%
\let\pgf@decorate@additionaltransform\pgfutil@empty%
\def\pgf@metadecoration@decoration#1{%
\edef\pgf@decorate@tempname{#1}%
}%
\def\pgf@metadecoration@beforedecoration#1{%
\def\pgf@decorate@tempbefore{#1}%
}%
\def\pgf@metadecoration@afterdecoration#1{%
\def\pgf@decorate@tempafter{#1}%
}%
\def\pgf@final@text{final}%
\def\pgf@metadecoration@run{%
\let\pgf@metadecoration@next\pgf@metadecoration@do@state%
\ifx\pgf@metadecoration@current@state\pgf@final@text%
\let\pgf@metadecoration@next\relax%
\fi%
\pgf@metadecoration@next%
}%
\def\pgf@metadecoration@do@state{%
\let\pgf@metadecoration@next\relax%
\let\pgf@metadecoration@next@state\pgf@metadecoration@current@state%
\let\pgfmetadecoratedremainingdistance\pgf@decorated@remainingdistance%
\pgf@x-\pgfmetadecoratedremainingdistance\relax%
\advance\pgf@x\pgf@decorate@totalpathlength\relax%
\edef\pgfmetadecoratedcompleteddistance{\the\pgf@x}%
\expandafter\expandafter\expandafter\pgf@metadecoration@setter
\expandafter\expandafter\expandafter{\csname pgf@metadecoration@@\pgf@metadecoration@name @\pgf@metadecoration@current@state @options\endcsname}%
\ifx\pgf@metadecoration@next\relax%
\let\pgf@metadecoration@next\pgf@metadecoration@do@code%
\fi%
\pgf@metadecoration@next%
}%
\def\pgf@metadecoration@do@code{%
\let\pgf@decorate@tempname\pgfutil@empty%
\let\pgf@decorate@tempbefore\pgfutil@empty%
\let\pgf@decorate@tempafter\pgfutil@empty%
\let\pgfpointmetadecoratedpathfirst\pgfpointdecoratedpathfirst%
\let\pgfpointmetadecoratedpathlast\pgfpointdecoratedpathlast%
\csname pgf@metadecoration@@\pgf@metadecoration@name @\pgf@metadecoration@current@state @code\endcsname%
\ifx\pgf@decorate@tempname\pgfutil@empty%
\def\pgf@decorate@tempname{moveto}
\fi%
\pgf@decorate@invoke{%
{\pgf@decorate@tempname}{\pgf@metadecoration@width}%
{\pgf@decorate@tempbefore}{\pgf@decorate@tempafter}%
}%
\let\pgf@metadecoration@current@state\pgf@metadecoration@next@state%
\pgf@metadecoration@run%
}%
\def\pgf@metadecoration@setter{\pgfqkeys{/pgf/meta-decoration automaton}}%
\pgfkeys{
/pgf/meta-decoration automaton/width/.code=\def\pgf@metadecoration@width{#1}\pgf@metadecoration@switch@if#1 to final\pgf@stop,%
/pgf/meta-decoration automaton/switch if less than/.code=\pgf@metadecoration@switch@if#1\pgf@stop,%
/pgf/meta-decoration automaton/switch if input segment less than/.code=\pgf@metadecoration@switch@ifinputsegment#1\pgf@stop,%
/pgf/meta-decoration automaton/next state/.store in=\pgf@metadecoration@next@state,%
}%
\def\pgf@metadecoration@switch@if#1to #2\pgf@stop{%
\ifx\pgf@metadecoration@next\relax%
\pgfmathsetlength\pgf@x{#1}%
\ifdim\pgf@decorated@remainingdistance<\pgf@x%
\def\pgf@metadecoration@current@state{#2}%
\let\pgf@metadecoration@next\pgf@metadecoration@run%
\fi%
\fi%
}%
\def\pgf@metadecoration@switch@ifinputsegment#1to #2\pgf@stop{%
\ifx\pgf@metadecoration@next\relax%
\pgfmathsetlength\pgf@x{#1}%
\ifdim\pgfdecoratedinputsegmentremainingdistance<\pgf@x%
\def\pgf@metadecoration@current@state{#2}%
\let\pgf@metadecoration@next\pgf@metadecoration@run%
\fi%
\fi%
}%
\def\pgf@decorate@movealongpath#1{%
\pgfmathsetlength\pgf@decorate@distancetomove{#1}%
\advance\pgfdecoratedcompleteddistance\pgf@decorate@distancetomove%
\advance\pgfdecoratedremainingdistance-\pgf@decorate@distancetomove%
\pgf@decorate@@movealongpath%
}%
\def\pgf@decorate@@movealongpath{%
\advance\pgfdecoratedinputsegmentcompleteddistance\pgf@decorate@distancetomove%
\advance\pgfdecoratedinputsegmentremainingdistance-\pgf@decorate@distancetomove%
\ifdim\pgfdecoratedinputsegmentremainingdistance>0pt\relax%
\let\pgf@next\pgf@decorate@@@movealongpath%
\else%
\pgf@decorate@distancetomove-\pgfdecoratedinputsegmentremainingdistance%
\pgf@decorate@processnextinputsegmentobject%
\ifx\pgf@decorate@currentinputsegmentobjects\pgfutil@empty%
\pgfdecoratedremainingdistance0pt\relax%
\let\pgf@next\relax%
\else%
\let\pgf@next\pgf@decorate@@movealongpath%
\fi%
\fi%
\pgf@next%
}%
\def\pgf@decorate@@@movealongpath{%
\pgf@decorate@movealonginputsegment{\the\pgf@decorate@distancetomove}%
\pgf@decorate@distancetomove0pt\relax%
\ifdim\pgf@decorate@inputsegmenttime pt>1pt\relax%
\let\pgf@decorate@inputsegmenttimetemp\pgf@decorate@inputsegmenttime%
\pgf@decorate@processnextinputsegmentobject%
\pgf@x\pgf@decorate@inputsegmenttimetemp pt\relax%
\advance\pgf@x-1pt\relax%
\edef\pgf@decorate@inputsegmenttime{\pgfmath@tonumber{\pgf@x}}%
\ifx\pgf@decorate@currentinputsegmentobjects\pgfutil@empty%
\pgfdecoratedremainingdistance0pt\relax%
\fi%
\fi%
}%
\def\pgf@decorate@getnextinputsegmentobject#1{%
\ifx\pgf@decorate@currentinputsegmentobjects\pgfutil@empty%
\let\pgf@next\relax%
\else%
\def\pgf@decorate@temp{#1}%
\let\pgf@next\pgf@decorate@@getnextinputsegmentobject%
\fi%
\pgf@next%
}%
\def\pgf@decorate@@getnextinputsegmentobject{%
\expandafter\pgf@decorate@@@getnextinputsegmentobject\pgf@decorate@currentinputsegmentobjects\pgf@stop}%
\def\pgf@decorate@@@getnextinputsegmentobject#1#2\pgf@stop{%
\expandafter\def\pgf@decorate@temp{#1}%
\def\pgf@decorate@currentinputsegmentobjects{#2}}%
\def\pgf@decorate@processnextinputsegmentobject{%
\let\pgfdecorationpreviousinputsegment\pgfdecoratecurrentinputsegment%
\let\pgf@decorate@currentinputsegmentobject\pgf@decorate@nextinputsegmentobject%
\pgf@decorate@getnextinputsegmentobject\pgf@decorate@nextinputsegmentobject%
\pgf@decorate@is@closepath@false%
\pgf@decorate@currentinputsegmentobject%
\ifx\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentmoveto%
\pgfpathmoveto{\pgf@decorate@inputsegment@first}%
\let\pgfdecorationpreviousinputsegment\pgfdecorationcurrentinputsegment%
\let\pgf@decorate@currentinputsegmentobject\pgf@decorate@nextinputsegmentobject%
\pgf@decorate@getnextinputsegmentobject\pgf@decorate@nextinputsegmentobject%
\pgf@decorate@is@closepath@false%
\pgf@decorate@currentinputsegmentobject%
\fi%
\ifdim\pgfdecoratedinputsegmentlength=0pt\relax%
\def\pgfdecoratedinputsegmentlength{0.05pt}%
\fi%
\pgfdecoratedinputsegmentremainingdistance\pgfdecoratedinputsegmentlength\relax%
\pgfdecoratedinputsegmentcompleteddistance0pt\relax%
\def\pgf@decorate@inputsegmenttime{0}%
\ifx\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentcurveto%
\pgfmathanglebetweenpoints{\pgf@decorate@inputsegment@first}{\pgf@decorate@inputsegment@supporta}%
\let\pgfdecoratedangle\pgfmathresult%
\let\pgfdecoratedinputsegmentstartangle\pgfmathresult%
\pgfmathanglebetweenpoints{\pgf@decorate@inputsegment@supportb}{\pgf@decorate@inputsegment@last}%
\let\pgfdecoratedinputsegmentendangle\pgfmathresult%
\else%
\pgfmathanglebetweenpoints{\pgf@decorate@inputsegment@first}{\pgf@decorate@inputsegment@last}%
\let\pgfdecoratedangle\pgfmathresult%
\let\pgfdecoratedinputsegmentstartangle\pgfmathresult%
\let\pgfdecoratedinputsegmentendangle\pgfmathresult%
\fi%
\begingroup%
\pgf@decorate@nextinputsegmentobject%
\global\let\pgf@decorate@temp\pgfdecorationcurrentinputsegment%
\ifx\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentmoveto%
\expandafter\pgf@decorate@currentinputsegmentobject%
\fi%
\ifx\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentcurveto%
\pgfmathanglebetweenpoints{\pgf@decorate@inputsegment@first}{\pgf@decorate@inputsegment@supporta}%
\else%
\pgfmathanglebetweenpoints{\pgf@decorate@inputsegment@first}{\pgf@decorate@inputsegment@last}%
\fi%
\pgf@x-\pgfdecoratedangle pt\relax%
\advance\pgf@x\pgfmathresult pt\relax%
\edef\pgfdecoratedangletonextinputsegment{\the\pgf@x}%
\pgfmath@smuggleone\pgfdecoratedangletonextinputsegment%
\endgroup%
\let\pgfdecorationnextinputsegmentobject\pgf@decorate@temp%
}%
\newif\ifpgf@decorate@is@closepath@%
\def\pgfdecorationinputsegmentmoveto{moveto}%
\def\pgfdecorationinputsegmentlineto{lineto}%
\def\pgfdecorationinputsegmentcurveto{curveto}%
\def\pgfdecorationinputsegmentclosepath{closepath}%
\def\pgfdecorationinputsegmentlast{last}%
\def\pgf@decorate@inputsegmentobject@moveto#1{%
\def\pgf@decorate@inputsegment@first{#1}%
\def\pgf@decorate@inputsegment@supporta{#1}%
\def\pgf@decorate@inputsegment@supportb{#1}%
\def\pgf@decorate@inputsegment@last{#1}%
\edef\pgf@decorate@lastmoveto{#1}%
\def\pgfdecoratedinputsegmentlength{0pt}%
\let\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentmoveto%
}%
\def\pgf@decorate@inputsegmentobject@lineto#1#2#3{%
\def\pgfdecoratedinputsegmentlength{#1}%
\def\pgf@decorate@inputsegment@first{#2}%
\def\pgf@decorate@inputsegment@last{#3}%
\pgfpointdiff{#2}{#3}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgfextract@process\pgf@decorate@inputsegment@supporta{%
\pgf@process{#2}%
\advance\pgf@x0.333333\pgf@xa%
\advance\pgf@y0.333333\pgf@ya%
}%
\pgfextract@process\pgf@decorate@inputsegment@supportb{%
\pgf@process{#2}%
\advance\pgf@x0.666666\pgf@xa%
\advance\pgf@y0.666666\pgf@ya%
}%
\let\pgf@decorate@movealonginputsegment\pgf@decorate@movealonginputsegment@line%
\let\pgf@decorate@transformtoinputsegment\pgf@decorate@transformtoinputsegment@line%
\let\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentlineto%
}%
\def\pgf@decorate@inputsegmentobject@curveto#1#2#3#4#5{%
\def\pgfdecoratedinputsegmentlength{#1}%
\def\pgf@decorate@inputsegment@first{#2}%
\def\pgf@decorate@inputsegment@supporta{#3}%
\def\pgf@decorate@inputsegment@supportb{#4}%
\def\pgf@decorate@inputsegment@last{#5}%
\let\pgf@decorate@movealonginputsegment\pgf@decorate@movealonginputsegment@curve%
\let\pgf@decorate@transformtoinputsegment\pgf@decorate@transformtoinputsegment@curve%
\let\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentcurveto%
}%
\def\pgf@decorate@inputsegmentobject@closepath#1#2#3{%
\pgf@decorate@is@closepath@true%
\def\pgfdecoratedinputsegmentlength{#1}%
\def\pgf@decorate@inputsegment@first{#2}%
\def\pgf@decorate@inputsegment@last{#3}%
\pgfpointdiff{#2}{#3}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgfextract@process\pgf@decorate@inputsegment@supporta{%
\pgf@process{#2}%
\advance\pgf@x0.333333\pgf@xa%
\advance\pgf@y0.333333\pgf@ya%
}%
\pgfextract@process\pgf@decorate@inputsegment@supportb{%
\pgf@process{#2}%
\advance\pgf@x0.666666\pgf@xa%
\advance\pgf@y0.666666\pgf@ya%
}%
\let\pgf@decorate@movealonginputsegment\pgf@decorate@movealonginputsegment@line%
\let\pgf@decorate@transformtoinputsegment\pgf@decorate@transformtoinputsegment@line%
\let\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentclosepath%
}%
\def\pgf@decorate@inputsegmentobject@endofinputsegments{%
\let\pgfdecorationcurrentinputsegment\pgfdecorationinputsegmentlast%
}%
\def\pgf@decorate@movealonginputsegment@line#1{}%
\def\pgf@decorate@movealonginputsegment@curve#1{%
\ifdim#1=0pt\relax%
\else%
\pgfpointcurveattime{\pgf@decorate@inputsegmenttime}%
{\pgf@decorate@inputsegment@first}{\pgf@decorate@inputsegment@supporta}%
{\pgf@decorate@inputsegment@supportb}{\pgf@decorate@inputsegment@last}%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\pgf@xb\pgf@decorate@inputsegmenttime pt\relax%
\ifdim\pgf@decorate@currentpathlength<128pt\relax%
\pgf@yb.03125pt\relax%
\else%
\ifdim\pgf@decorate@currentpathlength<512pt\relax%
\pgf@yb.015625pt\relax%
\else%
\ifdim\pgf@decorate@currentpathlength<2048pt\relax%
\pgf@yb.00390625pt\relax%
\else%
\pgf@yb.0009765625pt\relax%
\fi%
\fi%
\fi%
\c@pgf@counta1\relax%
\pgfutil@tempdima0pt\relax%
\pgfmathloop%
\advance\pgf@xb\c@pgf@counta\pgf@yb%
\edef\pgf@decorate@temp{%
\pgf@xa\the\pgf@xa%
\pgf@xb\the\pgf@xb%
\pgf@ya\the\pgf@ya%
\pgf@yb\the\pgf@yb%
}%
\pgfpoint@decorate@curveattime{\pgfmath@tonumber{\pgf@xb}}%
{\pgf@decorate@inputsegment@first}{\pgf@decorate@inputsegment@supporta}%
{\pgf@decorate@inputsegment@supportb}{\pgf@decorate@inputsegment@last}%
\pgf@decorate@temp%
\pgf@xc\pgf@xa%
\pgf@yc\pgf@ya%
\pgf@xa\pgf@x%
\pgf@ya\pgf@y%
\advance\pgf@x-\pgf@xc%
\advance\pgf@y-\pgf@yc%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
\pgfutil@tempdimb\pgfmathresult pt\relax%
\advance\pgfutil@tempdima\c@pgf@counta\pgfutil@tempdimb%
\ifnum\c@pgf@counta>0\relax%
\ifdim\pgfutil@tempdima>#1\relax%
\c@pgf@counta-\c@pgf@counta%
\pgf@yb.5\pgf@yb%
\fi%
\else%
\ifdim\pgfutil@tempdima<#1\relax%
\c@pgf@counta-\c@pgf@counta%
\pgf@yb.5\pgf@yb%
\fi%
\fi%
\ifdim\pgf@yb=0pt\relax%
\else%
\repeatpgfmathloop%
\edef\pgf@decorate@inputsegmenttime{\pgfmath@tonumber{\pgf@xb}}%
\pgfpointcurveattime{\pgf@decorate@inputsegmenttime}%
{\pgf@decorate@inputsegment@first}{\pgf@decorate@inputsegment@supporta}%
{\pgf@decorate@inputsegment@supportb}{\pgf@decorate@inputsegment@last}%
\edef\pgf@marshal{%
\noexpand\pgfmathanglebetweenpoints%
{\pgf@x\the\pgf@xb\pgf@y\the\pgf@yb}%
{\pgf@x\the\pgf@xa\pgf@y\the\pgf@ya}%
}%
\pgf@marshal%
\let\pgfdecoratedangle\pgfmathresult%
\fi%
}%
\def\pgfpoint@decorate@curveattime#1#2#3#4#5{%
\edef\pgf@time@s{#1}%
\pgf@x-\pgf@time@s pt\relax%
\advance\pgf@x1pt\relax%
\edef\pgf@time@t{\pgf@sys@tonumber{\pgf@x}}%
#5\relax%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
#4\relax%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
#3\relax%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
#2\relax%
\pgf@x=\pgf@time@t\pgf@x\advance\pgf@x by\pgf@time@s\pgf@xa%
\pgf@y=\pgf@time@t\pgf@y\advance\pgf@y by\pgf@time@s\pgf@ya%
\pgf@xa=\pgf@time@t\pgf@xa\advance\pgf@xa by\pgf@time@s\pgf@xb%
\pgf@ya=\pgf@time@t\pgf@ya\advance\pgf@ya by\pgf@time@s\pgf@yb%
\pgf@xb=\pgf@time@t\pgf@xb\advance\pgf@xb by\pgf@time@s\pgf@xc%
\pgf@yb=\pgf@time@t\pgf@yb\advance\pgf@yb by\pgf@time@s\pgf@yc%
\pgf@x=\pgf@time@t\pgf@x\advance\pgf@x by\pgf@time@s\pgf@xa%
\pgf@y=\pgf@time@t\pgf@y\advance\pgf@y by\pgf@time@s\pgf@ya%
\pgf@xa=\pgf@time@t\pgf@xa\advance\pgf@xa by\pgf@time@s\pgf@xb%
\pgf@ya=\pgf@time@t\pgf@ya\advance\pgf@ya by\pgf@time@s\pgf@yb%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@x=\pgf@time@t\pgf@x\advance\pgf@x by\pgf@time@s\pgf@xa%
\pgf@y=\pgf@time@t\pgf@y\advance\pgf@y by\pgf@time@s\pgf@ya%
}%
\def\pgf@decorate@transformtoinputsegment@line{%
\pgftransformshift{%
\pgfpointlineatdistance{\pgfdecoratedinputsegmentcompleteddistance}{\pgf@decorate@inputsegment@first}{\pgf@decorate@inputsegment@last}
}%
\pgftransformrotate{\pgfdecoratedangle}%
}%
\def\pgf@decorate@transformtoinputsegment@curve{%
\pgfslopedattimetrue%
\pgfallowupsidedownattimetrue%
\pgftransformcurveattime{\pgf@decorate@inputsegmenttime}%
{\pgf@decorate@inputsegment@first}{\pgf@decorate@inputsegment@supporta}%
{\pgf@decorate@inputsegment@supportb}{\pgf@decorate@inputsegment@last}%
}%
\def\pgf@decorate@parsesoftpath#1#2{%
\def\pgf@decorate@inputsegmentobjectsmacro{#2}%
\let\pgf@decorate@inputsegmentobjects\pgfutil@empty%
\pgfutil@tempdima0pt\relax%
\let\pgfpoint@decorate@lastparsed\pgfpoint@decorate@existingpathlast%
\let\pgfpoint@decorate@lastnonmovetoparsed\pgfpoint@origin%
\let\pgf@decorate@queueinputsegmentobject\pgfutil@empty%
\let\pgfpoint@decorated@firstparsed\pgfutil@empty%
\expandafter\pgf@decorate@@parsesoftpath#1\pgf@stop%
}%
\def\pgf@decorate@@parsesoftpath#1{%
\ifx#1\pgf@stop%
\let\pgf@decorate@queueinputsegmentobject\pgfutil@empty%
\pgf@decorate@addtoinputsegmentobjects{\pgf@decorate@inputsegmentobject@endofinputsegments}%
\pgf@decorate@addtoinputsegmentobjects{\pgf@decorate@inputsegmentobject@endofinputsegments}%
\expandafter\let\pgf@decorate@inputsegmentobjectsmacro\pgf@decorate@inputsegmentobjects%
\edef\pgf@decorate@totalpathlength{\the\pgfutil@tempdima}%
\let\pgf@next\relax%
\else%
\ifx#1\pgfsyssoftpath@movetotoken%
\let\pgf@next\pgf@decorate@parsemoveto%
\else%
\ifx#1\pgfsyssoftpath@linetotoken%
\let\pgf@next\pgf@decorate@parselineto%
\else%
\ifx#1\pgfsyssoftpath@curvetosupportatoken%
\let\pgf@next\pgf@decorate@parsecurveto%
\else%
\ifx#1\pgfsyssoftpath@closepathtoken%
\let\pgf@next\pgf@decorate@parseclosepath%
\else%
\ifx#1\pgfsyssoftpath@rectcornertoken%
\let\pgf@next\pgf@decorate@parserect%
\else%
\pgferror{Unrecognised soft path token `#1'}%
\fi%
\fi%
\fi%
\fi%
\fi%
\fi%
\pgf@next}%
\def\pgf@decorate@addtoinputsegmentobjects#1{%
\ifx\pgf@decorate@queueinputsegmentobject\pgfutil@empty%
\else%
\let\pgf@decorate@temp\pgf@decorate@queueinputsegmentobject%
\let\pgf@decorate@queueinputsegmentobject\pgfutil@empty%
\expandafter\pgf@decorate@addtoinputsegmentobjects\expandafter{\pgf@decorate@temp}%
\fi%
\ifx\pgfpoint@decorated@firstparsed\pgfutil@empty%
#1%
\let\pgfpoint@decorated@firstparsed\pgf@decorate@inputsegment@first%
\fi%
\expandafter\def\expandafter\pgf@decorate@inputsegmentobjects\expandafter%
{\pgf@decorate@inputsegmentobjects{#1}}%
}%
\def\pgf@decorate@parsemoveto#1#2{%
\def\pgf@decorate@queueinputsegmentobject{\pgf@decorate@inputsegmentobject@moveto{\pgf@x#1\pgf@y#2}}%
\def\pgfpoint@decorate@lastparsed{\pgf@x#1\pgf@y#2}%
\pgf@decorate@@parsesoftpath%
}%
\def\pgf@decorate@parselineto#1#2{%
\pgf@decorate@linelength{\pgfpoint@decorate@lastparsed}{\pgf@x#1\pgf@y#2}%
\advance\pgfutil@tempdima\pgfmathresult pt\relax%
\edef\pgf@decorate@temp{%
\noexpand\pgf@decorate@inputsegmentobject@lineto{\pgfmathresult pt}{\pgfpoint@decorate@lastparsed}{\pgf@x#1\pgf@y#2}%
}%
\edef\pgfpoint@decorate@lastparsed{\pgf@x#1\pgf@y#2}%
\let\pgfpoint@decorate@lastnonmovetoparsed\pgfpoint@decorate@lastparsed%
\expandafter\pgf@decorate@addtoinputsegmentobjects\expandafter{\pgf@decorate@temp}%
\pgf@decorate@@parsesoftpath%
}%
\def\pgf@decorate@parsecurveto#1#2\pgfsyssoftpath@curvetosupportbtoken#3#4\pgfsyssoftpath@curvetotoken#5#6{%
\pgf@decorate@curvelength{\pgfpoint@decorate@lastparsed}{\pgf@x#1\pgf@y#2}{\pgf@x#3\pgf@y#4}{\pgf@x#5\pgf@y#6}%
\advance\pgfutil@tempdima\pgfmathresult pt\relax%
\edef\pgf@decorate@temp{%
\noexpand\pgf@decorate@inputsegmentobject@curveto{\pgfmathresult pt}{\pgfpoint@decorate@lastparsed}%
{\pgf@x#1\pgf@y#2}{\pgf@x#3\pgf@y#4}{\pgf@x#5\pgf@y#6}%
}%
\expandafter\pgf@decorate@addtoinputsegmentobjects\expandafter{\pgf@decorate@temp}%
\edef\pgfpoint@decorate@lastparsed{\pgf@x#5\pgf@y#6}%
\let\pgfpoint@decorate@lastnonmovetoparsed\pgfpoint@decorate@lastparsed%
\pgf@decorate@@parsesoftpath%
}%
\def\pgf@decorate@parseclosepath#1#2{%
\pgf@decorate@linelength{\pgfpoint@decorate@lastparsed}{\pgf@x#1\pgf@y#2}%
\advance\pgfutil@tempdima\pgfmathresult pt\relax%
\edef\pgf@decorate@temp{%
\noexpand\pgf@decorate@inputsegmentobject@closepath{\pgfmathresult pt}{\pgfpoint@decorate@lastparsed}{\pgf@x#1\pgf@y#2}%
}%
\expandafter\pgf@decorate@addtoinputsegmentobjects\expandafter{\pgf@decorate@temp}%
\edef\pgfpoint@decorate@lastparsed{\pgf@x#1\pgf@y#2}%
\let\pgfpoint@decorate@lastnonmovetoparsed\pgfpoint@decorate@lastparsed%
\pgf@decorate@@parsesoftpath%
}%
\newif\ifpgfdecoraterectangleclockwise
\def\pgf@decorate@parserect#1#2\pgfsyssoftpath@rectsizetoken#3#4{%
\let\pgf@decorate@orig@@parsesoftpath\pgf@decorate@@parsesoftpath%
\let\pgf@decorate@@parsesoftpath\relax%
\pgf@decorate@parsemoveto{#1}{#2}%
\pgf@xa#1\relax%
\pgf@ya#2\relax%
\ifpgfdecoraterectangleclockwise%
\advance\pgf@ya#4%
\pgf@yb\pgf@ya%
\edef\pgf@temp{{\the\pgf@xa}{\the\pgf@ya}}%
\expandafter\pgf@decorate@parselineto\pgf@temp%
\advance\pgf@xa#3%
\pgf@xb\pgf@xa%
\edef\pgf@temp{{\the\pgf@xa}{\the\pgf@ya}}%
\expandafter\pgf@decorate@parselineto\pgf@temp%
\advance\pgf@ya-#4%
\edef\pgf@temp{{\the\pgf@xa}{\the\pgf@ya}}%
\expandafter\pgf@decorate@parselineto\pgf@temp%
\advance\pgf@xa-#3%
\edef\pgf@temp{{\the\pgf@xa}{\the\pgf@ya}}%
\expandafter\pgf@decorate@parseclosepath\pgf@temp%
\else%
\advance\pgf@xa#3%
\edef\pgf@temp{{\the\pgf@xa}{\the\pgf@ya}}%
\pgf@xb\pgf@xa%
\expandafter\pgf@decorate@parselineto\pgf@temp%
\advance\pgf@ya#4%
\pgf@yb\pgf@ya%
\edef\pgf@temp{{\the\pgf@xa}{\the\pgf@ya}}%
\expandafter\pgf@decorate@parselineto\pgf@temp%
\advance\pgf@xa-#3%
\edef\pgf@temp{{\the\pgf@xa}{\the\pgf@ya}}%
\expandafter\pgf@decorate@parselineto\pgf@temp%
\advance\pgf@ya-#4%
\edef\pgf@temp{{\the\pgf@xa}{\the\pgf@ya}}%
\expandafter\pgf@decorate@parseclosepath\pgf@temp%
\fi%
\let\pgf@decorate@@parsesoftpath\pgf@decorate@orig@@parsesoftpath%
\edef\pgf@marshal{\noexpand\pgf@decorate@parsemoveto{\the\pgf@xb}{\the\pgf@yb}}%
\pgf@marshal%
}%
\def\pgf@decorate@linelength#1#2{%
\pgf@process{\pgfpointdiff{#1}{#2}}%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
}%
\newif\ifpgf@decorate@subdivide
\def\pgf@decorate@curvelength#1#2#3#4{%
\begingroup%
\pgf@decorate@recursive@subdividecurve@left{#1}{#2}{#3}{#4}%
\pgfutil@tempdimb\pgfmathresult pt\relax%
\pgf@decorate@recursive@subdividecurve@right{#1}{#2}{#3}{#4}%
\advance\pgfutil@tempdimb\pgfmathresult pt\relax%
\pgfmath@returnone\pgfutil@tempdimb%
\endgroup%
}%
\def\pgf@decorate@@curvelength#1#2#3#4{%
\begingroup%
\pgf@decorate@curvecordlength{#1}{#2}{#3}{#4}%
\ifpgf@decorate@subdivide%
\pgf@decorate@recursive@subdividecurve@left{#1}{#2}{#3}{#4}%
\pgfutil@tempdimb\pgfmathresult pt\relax%
\pgf@decorate@recursive@subdividecurve@right{#1}{#2}{#3}{#4}%
\advance\pgfutil@tempdimb\pgfmathresult pt\relax%
\expandafter\pgfmath@returnone\expandafter\pgfutil@tempdimb%
\else%
\expandafter\pgfmath@returnone\expandafter\pgfmathresult\expandafter p\expandafter t\expandafter%
\fi%
\endgroup%
}%
\def\pgf@decorate@curvelength@tolerance{1pt}%
\def\pgf@decorate@curvecordlength#1#2#3#4{%
#4\relax%
\pgf@xa\pgf@x\pgf@ya\pgf@y%
#1\relax%
\advance\pgf@xa-\pgf@x%
\advance\pgf@ya-\pgf@y%
\ifdim\pgf@xa<0pt\relax\pgf@xa-\pgf@xa\fi%
\ifdim\pgf@ya<0pt\relax\pgf@ya-\pgf@ya\fi%
\pgf@decorate@subdividetrue%
\ifdim\pgf@xa<\pgf@decorate@curvelength@tolerance\relax%
\ifdim\pgf@ya<\pgf@decorate@curvelength@tolerance\relax%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@xa}}{\pgfmath@tonumber{\pgf@ya}}%
\pgf@decorate@subdividefalse%
\fi%
\fi%
}%
\def\pgf@decorate@recursive@subdividecurve@left#1#2#3#4{%
{%
#1\relax%
\pgfutil@tempdima\pgf@x%
\pgfutil@tempdimb\pgf@y%
\pgf@xa.5\pgf@x\pgf@ya.5\pgf@y%
\pgf@xb.25\pgf@x\pgf@yb.25\pgf@y%
\pgf@xc.125\pgf@x\pgf@yc.125\pgf@y%
#2\relax%
\advance\pgf@xa.5\pgf@x\advance\pgf@ya.5\pgf@y%
\advance\pgf@xb.5\pgf@x\advance\pgf@yb.5\pgf@y%
\advance\pgf@xc.375\pgf@x\advance\pgf@yc.375\pgf@y%
#3\relax%
\advance\pgf@xb.25\pgf@x\advance\pgf@yb.25\pgf@y%
\advance\pgf@xc.375\pgf@x\advance\pgf@yc.375\pgf@y%
#4\relax%
\advance\pgf@xc.125\pgf@x\advance\pgf@yc.125\pgf@y%
\xdef\pgf@marshal{%
\noexpand\pgf@decorate@@curvelength%
{\pgf@x\the\pgfutil@tempdima\pgf@y\the\pgfutil@tempdimb}%
{\pgf@x\the\pgf@xa\pgf@y\the\pgf@ya}{\pgf@x\the\pgf@xb\pgf@y\the\pgf@yb}
{\pgf@x\the\pgf@xc\pgf@y\the\pgf@yc}%
}%
}%
\pgf@marshal%
}%
\def\pgf@decorate@recursive@subdividecurve@right#1#2#3#4{%
{%
#1\relax%
\pgfutil@tempdima.125\pgf@x\pgfutil@tempdimb.125\pgf@y%
#2\relax%
\advance\pgfutil@tempdima.375\pgf@x\advance\pgfutil@tempdimb.375\pgf@y%
\pgf@xa.25\pgf@x\pgf@ya.25\pgf@y%
#3\relax%
\advance\pgfutil@tempdima.375\pgf@x\advance\pgfutil@tempdimb.375\pgf@y%
\advance\pgf@xa.5\pgf@x\advance\pgf@ya.5\pgf@y%
\pgf@xb.5\pgf@x\pgf@yb.5\pgf@y%
#4\relax%
\advance\pgfutil@tempdima.125\pgf@x\advance\pgfutil@tempdimb.125\pgf@y%
\advance\pgf@xa.25\pgf@x\advance\pgf@ya.25\pgf@y%
\advance\pgf@xb.5\pgf@x\advance\pgf@yb.5\pgf@y%
\pgf@xc\pgf@x\pgf@yc\pgf@y%
\xdef\pgf@marshal{%
\noexpand\pgf@decorate@@curvelength%
{\pgf@x\the\pgfutil@tempdima\pgf@y\the\pgfutil@tempdimb}%
{\pgf@x\the\pgf@xa\pgf@y\the\pgf@ya}{\pgf@x\the\pgf@xb\pgf@y\the\pgf@yb}
{\pgf@x\the\pgf@xc\pgf@y\the\pgf@yc}%
}%
}%
\pgf@marshal%
}%
\def\pgf@decorate@inputsegmentobjects@reverse#1#2{%
\def\pgf@decorate@path@storein{#2}%
\def\pgf@decorate@inputsegments@@temp{}%
\expandafter\pgf@decorate@inputsegments@@reverse@pass@first#1\pgf@stop}%
\def\pgf@decorate@inputsegments@@reverse@pass@first#1#2\pgf@stop{%
\def\pgf@decorate@temp{#1}%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter%
\pgf@decorate@inputsegments@@temp\expandafter\expandafter\expandafter%
{\expandafter\pgf@decorate@temp\pgf@decorate@inputsegments@@temp}%
\def\pgf@decorate@test{#2}
\ifx\pgf@decorate@test\pgfutil@empty%
\def\pgf@decorate@next{%
\expandafter\pgf@decorate@inputsegmentobjects@reverse@pass@second\pgf@decorate@inputsegments@@temp\pgf@stop%
}%
\else%
\def\pgf@decorate@next{\pgf@decorate@inputsegments@@reverse@pass@first#2\pgf@stop}%
\fi%
\pgf@decorate@next%
}%
\def\pgf@decorate@inputsegmentobjects@reverse@pass@second#1#2#3\pgf@stop{%
\def\pgf@decorate@inputsegments@temp{#3}%
\def\pgf@decorate@inputsegments@@temp{}%
\let\pgf@decorate@current@inputsegmentobject=\pgfutil@empty
\let\pgf@decorate@last@object=\pgfutil@empty
\pgf@decorate@inputsegmentobjects@reverse@moveto@waitingtrue%
\pgf@decorate@inputsegmentobjects@reverse@closepath@waitingfalse%
\expandafter\pgf@decorate@path@@reverse@pass@second\pgf@decorate@inputsegments@temp\pgf@stop}%
\def\pgf@decorate@path@@reverse@pass@second#1{%
\ifx#1\pgf@stop%
\expandafter\def\expandafter\pgf@decorate@inputsegments@@temp\expandafter{%
\pgf@decorate@inputsegments@@temp%
{\pgf@decorate@inputsegmentobject@endofinputsegments}%
{\pgf@decorate@inputsegmentobject@endofinputsegments}
}%
\expandafter\let\pgf@decorate@path@storein=\pgf@decorate@inputsegments@@temp%
\let\pgf@decorate@next=\relax%
\else%
\ifx#1\pgf@decorate@inputsegmentobject@moveto%
\let\pgf@decorate@next=\pgf@decorate@inputsegmentobjects@reverse@moveto%
\else%
\ifx#1\pgf@decorate@inputsegmentobject@lineto%
\let\pgf@decorate@next=\pgf@decorate@inputsegmentobjects@reverse@lineto%
\else%
\ifx#1\pgf@decorate@inputsegmentobject@curveto%
\let\pgf@decorate@next=\pgf@decorate@inputsegmentobjects@reverse@curveto%
\else%
\ifx#1\pgf@decorate@inputsegmentobject@closepath%
\let\pgf@decorate@next=\pgf@decorate@inputsegmentobjects@reverse@closepath%
\else%
\fi%
\fi%
\fi%
\fi%
\fi%
\pgf@decorate@next%
}%
\newif\ifpgf@decorate@inputsegmentobjects@reverse@moveto@waiting
\def\pgf@decorate@inputsegmentobjects@reverse@moveto#1{%
\ifpgf@decorate@inputsegmentobjects@reverse@closepath@waiting%
\edef\pgf@decorate@current@inputsegmentobject{%
{\noexpand\pgf@decorate@inputsegmentobject@closepath%
{\pgf@decorate@reverse@closepath@length}%
{\pgf@decorate@last}%
{#1}%
}%
}%
\pgf@decorate@inputsegmentobjects@reverse@closepath@waitingfalse%
\else%
\let\pgf@decorate@current@inputsegmentobject=\pgfutil@empty%
\fi%
\pgf@decorate@inputsegmentobjects@reverse@moveto@waitingtrue%
\pgf@decorate@path@@@reverse@pass@second%
}%
\newif\ifpgf@decorate@inputsegmentobjects@reverse@closepath@waiting
\def\pgf@decorate@inputsegmentobjects@reverse@closepath#1#2#3{%
\pgf@decorate@inputsegmentobjects@reverse@closepath@waitingtrue%
\def\pgf@decorate@reverse@closepath@length{#1}%
\def\pgf@decorate@current@inputsegmentobject{}%
\pgf@decorate@inputsegmentobjects@reverse@lineto{#1}{#2}{#3}%
}%
\def\pgf@decorate@inputsegmentobjects@reverse@lineto#1#2#3#4{%
\ifpgf@decorate@inputsegmentobjects@reverse@moveto@waiting%
\def\pgf@decorate@current@inputsegmentobject{{\pgf@decorate@inputsegmentobject@moveto{#3}}}%
\pgf@decorate@inputsegmentobjects@reverse@moveto@waitingfalse%
\else%
\let\pgf@decorate@current@inputsegmentobject=\pgfutil@empty%
\fi%
\def\pgf@decorate@append@inputsegmentobject{{\pgf@decorate@inputsegmentobject@lineto{#1}{#3}{#2}}}%
\ifx#4\pgf@decorate@inputsegmentobject@moveto%
\ifpgf@decorate@inputsegmentobjects@reverse@closepath@waiting%
\def\pgf@decorate@append@inputsegmentobject{{\pgf@decorate@inputsegmentobject@closepath{#1}{#3}{#2}}}%
\pgf@decorate@inputsegmentobjects@reverse@closepath@waitingfalse%
\else%
\def\pgf@decorate@append@inputsegmentobject{{\pgf@decorate@inputsegmentobject@lineto{#1}{#3}{#2}}}%
\fi%
\fi%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter%
\pgf@decorate@current@inputsegmentobject\expandafter\expandafter\expandafter%
{\expandafter\pgf@decorate@current@inputsegmentobject\pgf@decorate@append@inputsegmentobject}
\def\pgf@decorate@last{#2}%
\pgf@decorate@path@@@reverse@pass@second#4%
}%
\def\pgf@decorate@inputsegmentobjects@reverse@curveto#1#2#3#4#5{%
\ifpgf@decorate@inputsegmentobjects@reverse@moveto@waiting%
\def\pgf@decorate@current@inputsegmentobject{%
{\pgf@decorate@inputsegmentobject@moveto{#5}}%
{\pgf@decorate@inputsegmentobject@curveto{#1}{#5}{#4}{#3}{#2}}%
}%
\pgf@decorate@inputsegmentobjects@reverse@moveto@waitingfalse%
\else%
\def\pgf@decorate@current@inputsegmentobject{{\pgf@decorate@inputsegmentobject@curveto{#1}{#5}{#4}{#3}{#2}}}%
\fi%
\def\pgf@decorate@last{#2}%
\pgf@decorate@path@@@reverse@pass@second%
}%
\def\pgf@decorate@path@@@reverse@pass@second{%
\ifx\pgf@decorate@current@inputsegmentobject\pgfutil@empty%
\else%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter%
\pgf@decorate@inputsegments@@temp\expandafter\expandafter\expandafter%
{\expandafter\pgf@decorate@inputsegments@@temp\pgf@decorate@current@inputsegmentobject}%
\fi%
\pgf@decorate@path@@reverse@pass@second%
}%
\let\startpgfdecoration=\pgfdecoration
\let\stoppgfdecoration=\endpgfdecoration
\let\startpgfmetadecoration=\pgfmetadecoration
\let\stoppgfmetadecoration=\endpgfmetadecoration
\pgfdeclaredecoration{lineto}{initial}{%
\state{initial}[switch if input segment less than=\pgfdecoratedremainingdistance to input segment,
width=\pgfdecoratedremainingdistance]
{
}%
\state{input segment}[width=\pgfdecoratedinputsegmentlength,next state=initial]
{
\pgfpathlineto{\pgfpointdecoratedinputsegmentlast}
}%
\state{final}{\pgfpathlineto{\pgfpointdecoratedpathlast}}%
}%
\pgfdeclaredecoration{moveto}{initial}{%
\state{initial}[width=\pgfdecoratedremainingdistance]{}%
\state{final}{\pgfpathmoveto{\pgfpointdecoratedpathlast}}%
}%
\pgfdeclaredecoration{curveto}{initial}{%
\state{initial}[width=\pgfdecoratedinputsegmentlength/100]
{
\pgfpathlineto{\pgfpointorigin}
}%
\state{final}{\pgfpathlineto{\pgfpointdecoratedpathlast}}%
}%
\let\pgfsnakeremainingdistance=\pgfdecoratedremainingdistance
\let\pgfsnakecompleteddistance=\pgfdecoratedcompleteddistance
\def\pgfsnakeangle{\pgfdecoratedangle}%
\let\pgfdeclaresnake=\pgfdeclaredecoration
\let\pgfsetsnakesegmenttransformation=\pgfsetdecorationsegmenttransformation
\def\pgfpathsnakesto#1#2{%
\edef\pgf@temp{#1}%
\expandafter\pgfdecoration\expandafter{\pgf@temp}%
\pgfpathlineto{#2}%
\endpgfdecoration%
}%
\def\pgfpathsnaketo#1#2{\pgfpathsnakesto{{#1}{\pgfsnakeremainingdistance}}{#2}}%
\def\pgfpathsnakealongvector#1#2#3{%
\pgf@process{#3}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgfmathparse{#2}%
\pgf@xa=\pgfmathresult\pgf@xa%
\pgf@ya=\pgfmathresult\pgf@ya%
\advance\pgf@xa by\pgf@path@lastx%
\advance\pgf@ya by\pgf@path@lasty%
\edef\pgf@snake@lib@temp{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
\pgfpathsnaketo{#1}{\pgf@snake@lib@temp}%
}%
\let\pgfsnakesegmentamplitude=\pgfdecorationsegmentamplitude
\let\pgfsnakesegmentlength=\pgfdecorationsegmentlength
\def\pgfsnakesegmentangle{\pgfdecorationsegmentangle}%
\def\pgfsnakesegmentobjectlength{\pgfkeysvalueof{/pgf/decoration/shape start width}}%
\def\pgfsnakesegmentaspect{\pgfdecorationsegmentaspect}%
\pgfset{%
/pgf/segment amplitude/.style={/pgf/decoration={amplitude={#1},shape height={2*(#1)}}},
/pgf/segment length/.style={/pgf/decoration={segment length={#1}}},
/pgf/segment angle/.style={/pgf/decoration={angle={#1}}},
/pgf/segment aspect/.style={/pgf/decoration={aspect={#1}}},
/pgf/segment object length/.style={/pgf/decoration={shape width={#1},radius={#1}}}}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduledecorations.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulematrix.code.tex ====
\ProvidesFileRCS{pgfmodulematrix.code.tex}
\usepgfmodule{shapes}%
\newif\ifpgfmatrix
\newif\ifpgf@matrix@correct@call
\newif\ifpgf@matrix@fixed
\newcount\pgfmatrixcurrentrow
\newcount\pgfmatrixcurrentcolumn
\newcount\pgf@matrix@numberofcolumns
\let\pgf@matrix@cell=\pgfnodeparttextbox %
\let\pgf@matrix@box=\pgf@matrix@cell %
\long\def\pgfmatrixbeforeassemblenode#1{%
\long\def\pgf@matrix@before@assemnble@node{#1}}
\pgfmatrixbeforeassemblenode{}
\def\pgfsetmatrixrowsep#1{\def\pgfmatrixrowsep{#1}}%
\def\pgfsetmatrixcolumnsep#1{\def\pgfmatrixcolumnsep{#1}}%
\def\pgfmatrixrowsep{0pt}%
\def\pgfmatrixcolumnsep{0pt}%
\def\pgfmatrix#1#2#3#4#5#6{%
\ifpgfmatrix%
\pgferror{You cannot nest pgfmatrix environments, yet}
\fi%
\bgroup%
\everycr{}%
#6%
\def\pgf@matrix@par@shape{#1}%
\def\pgf@matrix@par@anchor{#2}%
\def\pgf@matrix@par@name{#3}%
\def\pgf@matrix@par@usage{#4}%
\def\pgf@matrix@par@shift{#5}%
\ifx\pgf@matrix@par@name\pgfutil@empty%
\def\pgf@matrix@par@name{pgf@matrix@internal}%
\fi%
\pgfmatrixcurrentrow=0\relax%
\pgfmatrixcurrentcolumn=0\relax%
\pgf@matrix@numberofcolumns=0\relax%
\let\\=\pgfmatrixendrow%
\tabskip=0pt%
\offinterlineskip%
\pgfmatrixtrue%
\let\pgf@matrix@node@list=\pgfutil@empty%
\expandafter\let\csname pgf@matrix@column@finish@1\endcsname=\pgfutil@empty%
\let\pgf@matrix@row@finish=\pgfutil@empty%
\afterassignment\pgf@matrix@cont\let\pgf@next=%
}%
\def\pgf@matrix@cont{%
\setbox\pgf@matrix@box=\hbox\bgroup\vbox\bgroup%
\halign\bgroup%
\pgf@matrix@init@row%
\pgf@matrix@step@column%
{%
\pgf@matrix@startcell%
##%
\pgf@matrix@endcell%
}%
&%
##\pgf@matrix@padding&&%
\pgf@matrix@step@column%
{%
\pgf@matrix@startcell%
##%
\pgf@matrix@endcell%
}&%
##\pgf@matrix@padding%
\cr%
}%
\def\pgf@end@matrix{%
\egroup\egroup%
\egroup%
\pgf@matrix@before@assemnble@node
\ifx\pgf@matrix@node@list\pgfutil@empty%
\else%
\pgf@matrix@compute@origin%
\pgf@matrix@shift@nodes@initial%
\fi%
\pgftransformresetnontranslations%
\pgftransformshift{\pgf@process{\pgftransformreset\pgf@matrix@par@shift\pgf@x=-\pgf@x\pgf@y=-\pgf@y}}%
\pgfmultipartnode{\pgf@matrix@par@shape}{\pgf@matrix@par@anchor}{\pgf@matrix@par@name}{\pgf@matrix@par@usage}%
\ifx\pgf@matrix@node@list\pgfutil@empty%
\else%
{%
\pgftransformreset%
\pgf@process{\pgfpointanchor{\pgf@matrix@par@name}{text}}%
\xdef\pgf@matrix@offset{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgf@matrix@shift@nodes@secondary{\pgf@matrix@offset}%
}%
\fi%
}%
\def\pgfmatrixnextcell{%
\let\pgf@matrix@signal@cell@end=\pgf@matrix@signal@cell@end%
\pgfutil@ifnextchar[{\pgf@matrix@cell@cont}{\pgf@matrix@cell@cont[0pt]}}%
\def\pgf@matrix@cell@cont[#1]{%
\xdef\pgf@matrix@last@nextcell@options{#1}%
&\pgf@matrix@correct@calltrue&%
}%
\def\pgf@matrix@fixed@text{between origins}%
\def\pgf@matrix@natural@text{between borders}%
\def\pgf@matrix@addtolength#1#2{\edef\pgf@temp{#2}\expandafter\pgf@matrix@addtolength@\expandafter#1#2,\pgf@stop}%
\def\pgf@matrix@addtolength@#1#2,#3\pgf@stop{%
\pgfkeys@spdef\pgf@temp{#2}%
\ifx\pgf@temp\pgfutil@empty%
\else%
\ifx\pgf@temp\pgf@matrix@fixed@text%
\global\pgf@matrix@fixedtrue%
\else%
\ifx\pgf@temp\pgf@matrix@natural@text%
\global\pgf@matrix@fixedfalse%
\else%
\pgfmathaddtolength{#1}{#2}%
\fi%
\fi%
\fi%
\def\pgf@temp{#3}%
\ifx\pgf@temp\pgfutil@empty%
\else%
\pgf@matrix@addtolength@#1#3\pgf@stop%
\fi%
}%
\def\pgf@matrix@init@row{%
\relax%
\global\advance\pgfmatrixcurrentrow by 1\relax%
\global\pgfmatrixcurrentcolumn=0\relax%
\expandafter\gdef\csname pgf@matrix@maxy\the\pgfmatrixcurrentrow\endcsname{0pt}%
\expandafter\gdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{0pt}%
}%
\def\pgf@matrix@step@column{%
\relax%
\global\advance\pgfmatrixcurrentcolumn by1\relax%
}%
\def\pgf@matrix@startcell{%
\let\pgf@nodecallback=\pgf@matrix@nodecallback%
\pgfinterruptboundingbox%
\pgftransformreset%
\setbox\pgf@matrix@cell=\hbox\bgroup\bgroup%
\pgf@relevantforpicturesizetrue
\pgfsys@beginpicture%
\normalbaselines%
\pgfutil@ifnextchar\let%
{%
\afterassignment\pgf@matrix@empty@check\let\pgf@matrix@temp=%
}%
{%
\pgf@matrix@empty@cell@false%
\pgfmatrixbegincode%
}%
}%
\def\pgf@matrix@empty@check{\futurelet\pgf@matrix@check@token\pgf@matrix@empty@check@cont}%
\def\pgf@matrix@empty@check@cont{%
\ifx\pgf@matrix@check@token\pgf@matrix@signal@cell@end%
\pgf@matrix@empty@cell@true%
\expandafter%
\pgfmatrixemptycode%
\expandafter%
\let%
\else%
\pgf@matrix@empty@cell@false%
\expandafter%
\pgfmatrixbegincode%
\expandafter
\let%
\fi%
}%
\newif\ifpgf@matrix@empty@cell@
\def\pgf@matrix@endcell{%
\ifpgf@matrix@empty@cell@%
\else%
\expandafter\expandafter\expandafter\pgfmatrixendcode%
\expandafter\ifpgf@matrix@last@cell@in@row\expandafter\pgf@matrix@last@cell@in@rowtrue\expandafter\fi%
\fi%
\pgfsys@endpicture%
\ifnum\pgfmatrixcurrentcolumn<\pgf@matrix@numberofcolumns%
\else%
\ifpgf@matrix@last@cell@in@row\else%
{%
\global\pgf@matrix@fixedfalse%
\pgf@x=0pt%
\pgf@matrix@addtolength{\pgf@x}{\pgfmatrixcolumnsep}%
\pgf@matrix@addtolength{\pgf@x}{\pgf@matrix@last@nextcell@options}%
\ifpgf@matrix@fixed%
\expandafter\pgfutil@g@addto@macro\csname pgf@matrix@column@finish@\the\pgfmatrixcurrentcolumn\endcsname%
{\global\pgf@picmaxx=0pt}%
\fi%
\advance\pgfmatrixcurrentcolumn by1\relax %
\expandafter\xdef\csname pgf@matrix@column@sep@\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@x}%
\ifpgf@matrix@fixed%
\expandafter\gdef\csname pgf@matrix@column@finish@\the\pgfmatrixcurrentcolumn\endcsname{\global\pgf@picminx=0pt}%
\else%
\expandafter\global\expandafter\let\csname pgf@matrix@column@finish@\the\pgfmatrixcurrentcolumn\endcsname=\pgfutil@empty%
\fi%
}%
\fi\fi%
\ifdim\pgf@picmaxx=-16000pt\relax%
\global\pgf@picmaxx=0pt\relax%
\global\pgf@picminx=0pt\relax%
\global\pgf@picmaxy=0pt\relax%
\global\pgf@picminy=0pt\relax%
\fi%
\csname pgf@matrix@column@finish@\the\pgfmatrixcurrentcolumn\endcsname%
\pgf@matrix@row@finish%
\egroup\egroup%
\ifnum\pgfmatrixcurrentcolumn>1\relax%
\pgf@y=\csname pgf@matrix@column@sep@\the\pgfmatrixcurrentcolumn\endcsname\relax%
\advance\pgf@picminx by-\pgf@y%
\fi%
\ifdim\pgf@picmaxy>\csname pgf@matrix@maxy\the\pgfmatrixcurrentrow\endcsname%
\expandafter\xdef\csname pgf@matrix@maxy\the\pgfmatrixcurrentrow\endcsname{\the\pgf@picmaxy}%
\fi%
\ifdim\pgf@picminy<\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname%
\expandafter\xdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{\the\pgf@picminy}%
\fi%
\ht\pgf@matrix@cell=\pgf@picmaxy%
\dp\pgf@matrix@cell=-\pgf@picminy%
\ifnum\pgfmatrixcurrentcolumn>\pgf@matrix@numberofcolumns\relax%
\expandafter\xdef\csname pgf@matrix@maxx\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@picmaxx}%
\expandafter\xdef\csname pgf@matrix@minx\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@picminx}%
\global\pgf@matrix@numberofcolumns=\pgfmatrixcurrentcolumn\relax%
\else%
\ifdim\pgf@picmaxx>\csname pgf@matrix@maxx\the\pgfmatrixcurrentcolumn\endcsname%
\expandafter\xdef\csname pgf@matrix@maxx\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@picmaxx}%
\fi%
\ifdim\pgf@picminx<\csname pgf@matrix@minx\the\pgfmatrixcurrentcolumn\endcsname%
\expandafter\xdef\csname pgf@matrix@minx\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@picminx}%
\fi%
\fi%
\xdef\pgf@matrix@paddingskip{\the\pgf@picmaxx}%
\hfil\hskip-\pgf@picminx%
\wd\pgf@matrix@cell=0pt%
\box\pgf@matrix@cell%
\endpgfinterruptboundingbox%
}%
\let\pgfmatrixbegincode=\relax
\let\pgfmatrixendcode=\relax
\let\pgfmatrixemptycode=\relax
\def\pgf@matrix@nodecallback#1{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgfutil@empty%
\else%
\xdef\pgf@matrix@node@list{\pgf@matrix@node@list,{#1}}%
\expandafter\xdef\csname pgf@matrix@node@location@#1\endcsname{{\the\pgfmatrixcurrentrow}{\the\pgfmatrixcurrentcolumn}}%
\fi%
}%
\def\pgf@matrix@padding{%
\ifpgf@matrix@correct@call%
\else%
\pgferror{Single ampersand used with wrong catcode}%
\fi%
\hskip\pgf@matrix@paddingskip\hfil%
}%
\def\pgf@matrix@compute@origin{%
{%
\ifnum\pgfmatrixcurrentrow>0\relax%
\expandafter\gdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{0pt}%
\fi
\c@pgf@counta=\pgfmatrixcurrentrow\relax%
\loop%
\ifnum\c@pgf@counta>1\relax%
\pgf@y=\csname pgf@matrix@miny\the\c@pgf@counta\endcsname\relax%
\advance\pgf@y by\csname pgf@matrix@maxy\the\c@pgf@counta\endcsname\relax
\advance\c@pgf@counta by-1\relax%
\pgf@ya=\csname pgf@matrix@miny\the\c@pgf@counta\endcsname\relax%
\advance\pgf@y by-\pgf@ya\relax%
\expandafter\xdef\csname pgf@matrix@miny\the\c@pgf@counta\endcsname{\the\pgf@y}%
\repeat%
}%
{%
\ifnum\pgf@matrix@numberofcolumns>0\relax%
\pgf@x=\csname pgf@matrix@minx1\endcsname\relax%
\pgf@x=-\pgf@x%
\expandafter\xdef\csname pgf@matrix@minx1\endcsname{\the\pgf@x}%
\fi
\c@pgf@counta=1\relax%
\loop%
\ifnum\c@pgf@counta<\pgf@matrix@numberofcolumns\relax%
\pgf@x=\csname pgf@matrix@minx\the\c@pgf@counta\endcsname\relax%
\advance\pgf@x by\csname pgf@matrix@maxx\the\c@pgf@counta\endcsname\relax%
\advance\c@pgf@counta by1\relax%
\pgf@xa=\csname pgf@matrix@minx\the\c@pgf@counta\endcsname\relax%
\advance\pgf@x by-\pgf@xa\relax%
\expandafter\xdef\csname pgf@matrix@minx\the\c@pgf@counta\endcsname{\the\pgf@x}%
\repeat%
}%
}%
\def\pgf@matrix@shift@nodes@initial{%
{%
\pgfutil@for\pgf@matrix@node@name:=\pgf@matrix@node@list\do{%
\ifx\pgf@matrix@node@name\pgfutil@empty%
\else%
\expandafter\ifx\csname pgf@matrix@node@visited@\pgf@matrix@node@name\endcsname\relax%
\pgf@shift@node{\pgf@matrix@node@name}{%
\pgf@x=\csname pgf@matrix@minx%
\expandafter\expandafter\expandafter\pgfutil@secondoftwo\csname pgf@matrix@node@location@\pgf@matrix@node@name\endcsname\endcsname%
\pgf@y=\csname pgf@matrix@miny%
\expandafter\expandafter\expandafter\pgfutil@firstoftwo\csname pgf@matrix@node@location@\pgf@matrix@node@name\endcsname\endcsname%
}%
\expandafter\let\csname pgf@matrix@node@visited@\pgf@matrix@node@name\endcsname=\pgfutil@empty%
\fi%
\fi%
}%
}%
}%
\def\pgf@matrix@shift@nodes@secondary#1{%
\pgfutil@for\pgf@matrix@node@name:=\pgf@matrix@node@list\do{%
\ifx\pgf@matrix@node@name\pgfutil@empty%
\else%
\expandafter\ifx\csname pgf@matrix@node@visited@\pgf@matrix@node@name\endcsname\relax%
\pgf@shift@node{\pgf@matrix@node@name}{#1}%
\expandafter\let\csname pgf@matrix@node@visited@\pgf@matrix@node@name\endcsname=\pgfutil@empty%
\fi%
\fi%
}%
}%
\def\pgfmatrixendrow{%
\let\pgf@matrix@signal@cell@end=\pgf@matrix@signal@cell@end
\pgf@matrix@last@cell@in@rowtrue%
\xdef\pgf@matrix@rowsep{\pgfmatrixrowsep}%
&\pgf@matrix@correct@calltrue%
\global\pgf@matrix@fixedfalse%
\pgf@y=0pt%
\pgf@matrix@addtolength\pgf@y{\pgf@matrix@rowsep}%
\pgfutil@ifnextchar[{\pgfmatrixendrow@skip}{\pgf@matrix@finish@line}%
}%
\newif\ifpgf@matrix@last@cell@in@row
\def\pgf@matrix@signal@cell@end{\pgf@matrix@signal@cell@end}%
\def\pgfmatrixendrow@skip[#1]{%
\pgf@matrix@addtolength\pgf@y{#1}%
\pgf@matrix@finish@line%
}%
\def\pgf@matrix@finish@line{%
\global\pgf@y=\pgf@y%
\pgf@ya=-\pgf@y%
\global\advance\pgf@ya by\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname%
\expandafter\xdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{\the\pgf@ya}%
\pgfutil@ifnextchar\egroup{\cr\pgf@end@matrix}{\pgf@matrix@no@eom@found}%
}%
\def\pgf@matrix@eom@found{%
\cr%
\pgf@end@matrix%
}%
\def\pgf@matrix@no@eom@found{%
\cr%
\noalign{\vskip\pgf@y%
\ifpgf@matrix@fixed%
\vskip\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname%
\vskip\pgf@y%
\pgf@y=-\pgf@y%
\expandafter\xdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{\the\pgf@y}%
\gdef\pgf@matrix@row@finish{\global\pgf@picmaxy=0pt}%
\else%
\global\let\pgf@matrix@row@finish=\pgfutil@empty%
\fi%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulematrix.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulenonlineartransformations.code.tex ====
\ProvidesFileRCS{pgfmodulenonlineartransformations.code.tex}
\def\pgfpointtransformednonlinear#1{%
\pgf@process{%
#1%
\pgf@pos@transform@glob%
\pgf@nlt@list%
}
}%
\def\pgfapproximatenonlineartranslation{%
\ifx\pgf@nlt@list\pgfutil@empty%
\else%
\pgfpointtransformednonlinear{\pgfpointorigin}%
\pgf@pt@x=\pgf@x%
\pgf@pt@y=\pgf@y%
\let\pgf@nlt@list\pgfutil@empty%
\let\pgf@nlt@moveto\pgf@lt@moveto%
\let\pgf@nlt@lineto\pgf@lt@lineto%
\let\pgf@nlt@curveto\pgf@lt@curveto%
\let\pgf@nlt@closepath\pgf@lt@closepath%
\fi%
}%
\def\pgfapproximatenonlineartransformation{%
\ifx\pgf@nlt@list\pgfutil@empty%
\else%
\pgfpointtransformednonlinear{\pgfpoint{1pt}{0pt}}%
\pgf@xa\pgf@x
\pgf@ya\pgf@y
\pgfpointtransformednonlinear{\pgfpoint{0pt}{1pt}}%
\pgf@xb\pgf@x
\pgf@yb\pgf@y
\pgfpointtransformednonlinear{\pgfpointorigin}%
\advance\pgf@xa by-\pgf@x
\advance\pgf@xb by-\pgf@x
\advance\pgf@ya by-\pgf@y
\advance\pgf@yb by-\pgf@y
\pgfsettransformentries{\pgf@sys@tonumber\pgf@xa}{\pgf@sys@tonumber\pgf@ya}{\pgf@sys@tonumber\pgf@xb}{\pgf@sys@tonumber\pgf@yb}{\pgf@x}{\pgf@y}%
\let\pgf@nlt@list\pgfutil@empty%
\let\pgf@nlt@moveto\pgf@lt@moveto%
\let\pgf@nlt@lineto\pgf@lt@lineto%
\let\pgf@nlt@curveto\pgf@lt@curveto%
\let\pgf@nlt@closepath\pgf@lt@closepath%
\fi%
}%
\def\pgftransformnonlinear#1{%
\expandafter\def\expandafter\pgf@nlt@list\expandafter{\pgf@nlt@list#1}%
\let\pgf@nlt@moveto\pgf@nlt@moveto@nlt
\let\pgf@nlt@lineto\pgf@nlt@lineto@nlt
\let\pgf@nlt@curveto\pgf@nlt@curveto@nlt
\let\pgf@nlt@closepath\pgf@nlt@closepath@nlt
}%
\def\pgf@nlt@moveto@nlt#1#2{%
{%
\pgfutil@tempdima#1%
\pgfutil@tempdimb#2%
\pgf@x\pgfutil@tempdima%
\pgf@y\pgfutil@tempdimb%
\xdef\pgf@nlt@last@moveto@orig{{\the\pgf@x}{\the\pgf@y}}%
\pgf@nlt@list%
\xdef\pgf@nlt@last@moveto@trans{{\the\pgf@x}{\the\pgf@y}}%
\xdef\pgf@nlt@last@moveto@xaxis{{\the\pgf@xa}{\the\pgf@ya}}%
\xdef\pgf@nlt@last@moveto@yaxis{{\the\pgf@xb}{\the\pgf@yb}}%
\pgf@protocolsizes{\pgf@x}{\pgf@y}%
\pgfsyssoftpath@moveto{\the\pgf@x}{\the\pgf@y}%
\global\let\pgf@nlt@last@coord@orig\pgf@nlt@last@moveto@orig%
\global\let\pgf@nlt@last@coord@trans\pgf@nlt@last@moveto@trans%
\global\let\pgf@nlt@last@coord@xaxis\pgf@nlt@last@moveto@xaxis%
\global\let\pgf@nlt@last@coord@yaxis\pgf@nlt@last@moveto@yaxis%
}%
}%
\def\pgf@nlt@lineto@nlt#1#2{%
{%
\edef\pgf@temp{\pgf@xc\the#1\pgf@yc\the#2}%
\pgf@temp%
\expandafter\pgfqpoint\pgf@nlt@last@coord@orig%
\expandafter\pgf@nlt@set@temps\pgf@nlt@last@coord@trans%
\pgf@xa\pgf@x\advance\pgf@xa by-\pgf@xc%
\pgf@ya\pgf@y\advance\pgf@ya by-\pgf@yc%
\pgfutil@tempswafalse%
\ifdim\pgf@xa<0.1pt\relax\ifdim\pgf@xa>-0.1pt\relax\ifdim\pgf@ya<0.1pt\relax\ifdim\pgf@ya>-0.1pt\relax\pgfutil@tempswatrue\fi\fi\fi\fi%
\ifpgfutil@tempswa%
\pgf@x\pgf@xc\pgf@y\pgf@yc%
\xdef\pgf@nlt@last@coord@orig{{\the\pgf@x}{\the\pgf@y}}%
\pgf@process{\pgf@nlt@list}%
\xdef\pgf@nlt@last@coord@trans{{\the\pgf@x}{\the\pgf@y}}%
\xdef\pgf@nlt@last@coord@xaxis{{\the\pgf@xa}{\the\pgf@ya}}%
\xdef\pgf@nlt@last@coord@yaxis{{\the\pgf@xb}{\the\pgf@yb}}%
\pgf@protocolsizes{\pgf@x}{\pgf@y}%
\pgfsyssoftpath@lineto{\the\pgf@x}{\the\pgf@y}%
\else%
\pgf@xb=.333333\pgf@x%
\advance\pgf@xb by.666666\pgf@xc%
\pgf@yb=.333333\pgf@y%
\advance\pgf@yb by.666666\pgf@yc%
\pgf@xa=.333333\pgf@xc%
\advance\pgf@xa by.666666\pgf@x%
\pgf@ya=.333333\pgf@yc%
\advance\pgf@ya by.666666\pgf@y%
\pgf@nlt@inner@curve%
\fi%
}%
}%
\def\pgf@nlt@set@temps#1#2{%
\pgfutil@tempdima#1\pgfutil@tempdimb#2%
}%
\def\pgf@nlt@curveto@nlt#1#2#3#4#5#6{%
{%
\edef\pgf@temp{\pgf@xa\the#1\pgf@ya\the#2\pgf@xb\the#3\pgf@yb\the#4\pgf@xc\the#5\pgf@yc\the#6}%
\pgf@temp%
\pgf@nlt@inner@curve%
}%
}%
\newdimen\pgftransformnonlinearflatness
\pgftransformnonlinearflatness=5pt
\def\pgfsettransformnonlinearflatness#1{\pgfmathsetlength\pgftransformnonlinearflatness{#1}}%
\def\pgf@nlt@inner@curve{%
\expandafter\pgfqpoint\pgf@nlt@last@coord@orig%
\pgfutil@tempdima\pgf@xa\advance\pgfutil@tempdima by-\pgf@xb
\pgfutil@tempdimb\pgf@ya\advance\pgfutil@tempdimb by-\pgf@yb
\begingroup
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\advance\pgf@xb by-\pgf@xc%
\advance\pgf@yb by-\pgf@yc%
\pgfutil@tempswafalse
\ifdim\pgfutil@tempdima>\pgftransformnonlinearflatness\pgfutil@tempswatrue\fi%
\ifdim\pgfutil@tempdima<-\pgftransformnonlinearflatness\pgfutil@tempswatrue\fi%
\ifdim\pgfutil@tempdimb>\pgftransformnonlinearflatness\pgfutil@tempswatrue\fi%
\ifdim\pgfutil@tempdimb<-\pgftransformnonlinearflatness\pgfutil@tempswatrue\fi%
\ifdim\pgf@xa>\pgftransformnonlinearflatness\pgfutil@tempswatrue\fi%
\ifdim\pgf@xa<-\pgftransformnonlinearflatness\pgfutil@tempswatrue\fi%
\ifdim\pgf@ya>\pgftransformnonlinearflatness\pgfutil@tempswatrue\fi%
\ifdim\pgf@ya<-\pgftransformnonlinearflatness\pgfutil@tempswatrue\fi%
\ifdim\pgf@xb>\pgftransformnonlinearflatness\pgfutil@tempswatrue\fi%
\ifdim\pgf@xb<-\pgftransformnonlinearflatness\pgfutil@tempswatrue\fi%
\ifdim\pgf@yb>\pgftransformnonlinearflatness\pgfutil@tempswatrue\fi%
\ifdim\pgf@yb<-\pgftransformnonlinearflatness\pgfutil@tempswatrue\fi%
\ifpgfutil@tempswa%
\endgroup%
{%
\edef\pgf@orig@xya{\pgf@xa\the\pgf@xa\pgf@ya\the\pgf@ya}
\edef\pgf@orig@xyb{\pgf@xb\the\pgf@xb\pgf@yb\the\pgf@yb}
\edef\pgf@orig@xyc{\pgf@xc\the\pgf@xc\pgf@yc\the\pgf@yc}
\pgfpointcurveattime{.5}%
{\expandafter\pgfqpoint\pgf@nlt@last@coord@orig}%
{\pgf@x\pgf@xa\pgf@y\pgf@ya}%
{\pgf@x\pgf@xb\pgf@y\pgf@yb}%
{\pgf@x\pgf@xc\pgf@y\pgf@yc}%
{%
\pgf@xc\pgf@x\pgf@yc\pgf@y
\expandafter\pgfqpoint\pgf@nlt@last@coord@orig%
\pgf@orig@xya%
\pgf@xa\pgf@time@s\pgf@xa\advance\pgf@xa by\pgf@time@t\pgf@x%
\pgf@ya\pgf@time@s\pgf@ya\advance\pgf@ya by\pgf@time@t\pgf@y%
\pgf@nlt@inner@curve%
}%
{%
\pgf@orig@xyb%
\pgf@orig@xyc%
\pgf@xb\pgf@time@t\pgf@xb\advance\pgf@xb by\pgf@time@s\pgf@xc%
\pgf@yb\pgf@time@t\pgf@yb\advance\pgf@yb by\pgf@time@s\pgf@yc%
\pgf@nlt@inner@curve%
}%
}%
\else%
\endgroup%
\pgf@nlt@do@inner@curve%
\fi%
}%
\def\pgf@nlt@do@inner@curve{%
\pgf@process{\pgf@x\pgf@xa\pgf@y\pgf@ya\pgf@nlt@list}%
\pgf@xa\pgf@x\pgf@ya\pgf@y%
\pgf@process{\pgf@x\pgf@xb\pgf@y\pgf@yb\pgf@nlt@list}%
\pgf@xb\pgf@x\pgf@yb\pgf@y%
\xdef\pgf@nlt@last@coord@orig{{\the\pgf@xc}{\the\pgf@yc}}%
\pgf@process{\pgf@x\pgf@xc\pgf@y\pgf@yc\pgf@nlt@list}%
\pgf@xc\pgf@x\pgf@yc\pgf@y%
\xdef\pgf@nlt@last@coord@trans{{\the\pgf@xc}{\the\pgf@yc}}%
\pgf@protocolsizes{\pgf@xa}{\pgf@ya}%
\pgf@protocolsizes{\pgf@xb}{\pgf@yb}%
\pgf@protocolsizes{\pgf@xc}{\pgf@yc}%
\pgfsyssoftpath@curveto{\the\pgf@xa}{\the\pgf@ya}{\the\pgf@xb}{\the\pgf@yb}{\the\pgf@xc}{\the\pgf@yc}%
}%
\def\pgf@nlt@closepath@nlt{%
{%
\expandafter\pgfqpoint\pgf@nlt@last@moveto@orig%
\expandafter\pgf@nlt@set@temps\pgf@nlt@last@coord@orig%
\advance\pgfutil@tempdima by-\pgf@x%
\advance\pgfutil@tempdimb by-\pgf@y%
\pgfutil@tempswatrue%
\ifdim\pgfutil@tempdima<0.01pt\relax\ifdim\pgfutil@tempdima>-0.01pt\relax\ifdim\pgfutil@tempdimb<0.01pt\relax\ifdim\pgfutil@tempdimb>-0.01pt\relax\pgfutil@tempswafalse\fi\fi\fi\fi%
\ifpgfutil@tempswa%
\pgf@nlt@lineto@nlt{\pgf@x}{\pgf@y}%
\fi%
\pgfsyssoftpath@closepath%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulenonlineartransformations.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleoo.code.tex ====
\def\pgfooclass{%
\pgfutil@ifnextchar ({%
\pgfooclass@
}{%
\pgfooclass@()
}%
}%
\long\def\pgfooclass@(#1)#2#3{%
\def\pgfoo@classname{#2}%
\expandafter\ifx\csname pgfooY\pgfoo@classname.@pgfooinit\endcsname\relax\else
\pgferror{class #2 is already defined}%
\fi
\pgfoo@ciii{#2}{#1}%
\expandafter\let\csname pgfooY#2@pgfoo@mro\endcsname\pgfoo@mro
\let\pgfoo@origmethod=\method%
\let\pgfoo@origattribute=\attribute%
\let\method=\pgfoo@declaremethod%
\let\attribute=\pgfoo@declareattribute%
\let\pgfoo@attributes=\pgfutil@empty%
\let\pgfoo@methods=\pgfutil@empty%
#3%
\def\pgfoo@temp@baseclasses{#1}%
\pgfoo@inherit@methods
\pgfoo@inherit@attributes
\expandafter\let\csname pgfooY\pgfoo@classname.get handle\endcsname\pgfoo@obj%
\expandafter\let\csname pgfooY\pgfoo@classname.get id\endcsname\pgfoo@id%
\expandafter\let\expandafter\pgfoo@init\csname pgfooY\pgfoo@classname.init\endcsname
\expandafter\let\csname pgfooY\pgfoo@classname.\pgfoo@classname\endcsname\pgfoo@init
\let\method=\pgfoo@origmethod%
\let\attribute=\pgfoo@origattribute%
}%
\def\pgfoo@emptyinit(){}%
\def\pgfoo@escapeif#1#2\fi{\fi#1}%
\def\pgfoo@ciii#1#2{%
\def\pgfoo@seq{[#1,].}%
\pgfutil@for\pgfoo@baseclass:={#2}\do{%
\edef\pgfoo@baseclass@mro{\csname pgfooY\pgfoo@baseclass @pgfoo@mro\endcsname}%
\expandafter\ifx\expandafter\relax\pgfoo@baseclass@mro\relax\else
\edef\pgfoo@seq{\pgfoo@seq[\pgfoo@baseclass@mro,].}%
\fi
}%
\ifx\relax#2\relax\else
\edef\pgfoo@seq{\pgfoo@seq[#2,].}%
\fi
\edef\pgfoo@temp{()(\pgfoo@seq)}%
\expandafter\pgfoo@ciii@merge\pgfoo@temp
}%
\def\pgfoo@ciii@merge(#1)(#2){%
\ifx\relax#2\relax
\pgfoo@ciii@done(#1)%
\else\pgfoo@escapeif{%
\pgfoo@ciii@merge@A(#1)(#2)%
}\fi%
}%
\def\pgfoo@ciii@merge@A(#1)(#2.#3){%
\ifx\relax#3\relax %
\pgfoo@ciii@mergeA@done(#1)(#2)%
\else\pgfoo@escapeif{%
\pgfoo@ciii@merge@checkHead(#1)()(#2)()(#3)%
}\fi
}%
\def\pgfoo@ciii@mergeA@done(#1)([#2]){%
\pgfoo@ciii@done(#1#2)%
}%
\def\pgfoo@ciii@merge@checkHead(#1)(#2)([#3,#4])(#5)(#6){%
\pgfutil@in@{[#3,}{#2}%
\ifpgfutil@in@\pgfoo@escapeif{%
\pgfoo@ciii@clean\pgfoo@ciii@merge@checkHead@P{(#1)(#2[#3,#4].)(#5#6)}%
}\else\pgfoo@escapeif{%
\ifx\relax#6\relax\pgfoo@escapeif{%
\pgfoo@ciii@goodHeadFound(#1)(#3)(#2[#4].#5)%
}\else\pgfoo@escapeif{%
\pgfoo@ciii@merge@checkHead@A(#1)(#2)([#3,#4])(#5)(#6)%
}\fi
}\fi
}%
\def\pgfoo@ciii@merge@checkHead@A(#1)(#2)([#3,#4])(#5)(#6.#7){%
\pgfoo@ciii@merge@checkHead@B(#1)(#2)([#3,#4])(#5)(#6)(#7)%
}%
\def\pgfoo@ciii@merge@checkHead@B(#1)(#2)([#3,#4])(#5)([#6,#7])(#8){%
\pgfutil@in@{,#3,}{,#7}%
\ifpgfutil@in@\pgfoo@escapeif{%
\pgfoo@ciii@clean\pgfoo@ciii@merge@checkHead@P{(#1)(#2[#3,#4].)(#5[#6,#7].#8)}%
}\else\pgfoo@escapeif{%
\ifx\relax#8\relax\pgfoo@escapeif{%
\pgfoo@ciii@goodHeadFound(#1)(#3)(#2[#4].#5[#6,#7].)%
}\else\pgfoo@escapeif{%
\pgfoo@ciii@clean\pgfoo@ciii@merge@checkHead{(#1)(#2)([#3,#4])(#5[#6,#7].)(#8)}%
}\fi
}\fi
}%
\def\pgfoo@ciii@goodHeadFound(#1)(#2)(#3){%
\pgfutil@in@{,#2,}{#3}%
\ifpgfutil@in@\pgfoo@escapeif{%
\def\pgfoo@ciii@removeGoodHead(##1)(##2)(##3,#2,##4){%
\pgfoo@ciii@goodHeadFound(##1)(##2)(##3,##4)}%
\pgfoo@ciii@removeGoodHead(#1)(#2)(#3)%
}\else\pgfoo@escapeif{%
\pgfutil@in@{[#2,}{#3}%
\ifpgfutil@in@\pgfoo@escapeif{%
\def\pgfoo@ciii@removeGoodHead(##1)(##2)(##3[#2,##4){%
\pgfoo@ciii@goodHeadFound(##1)(##2)(##3[##4)}%
\pgfoo@ciii@removeGoodHead(#1)(#2)(#3)%
}\else\pgfoo@escapeif{%
\pgfoo@ciii@clean\pgfoo@ciii@merge{(#1#2,)(#3)}%
}\fi
}\fi
}%
\def\pgfoo@ciii@merge@checkHead@P(#1)(#2)(#3){%
\if\relax#3\relax %
\pgferror{Bad MRO: There is no good (monotonic etc.)
Method Resolution Order for your class hierarchy}%
\else\pgfoo@escapeif{%
\pgfoo@ciii@merge@checkHead@Q(#1)(#2)(#3)%
}\fi
}%
\def\pgfoo@ciii@merge@checkHead@Q(#1)(#2)(#3.#4){%
\pgfoo@ciii@merge@checkHead(#1)(#2)(#3)()(#4)%
}%
\def\pgfoo@ciii@clean#1#2{%
\pgfutil@in@{[].}{#2}%
\ifpgfutil@in@\pgfoo@escapeif{%
\pgfoo@ciii@clean@dot#1#2\pgfoo@ciii@clean@END
}\else\pgfoo@escapeif{%
#1#2%
}\fi
}%
\def\pgfoo@ciii@clean@dot#1#2[].#3\pgfoo@ciii@clean@END{%
\pgfoo@ciii@clean#1{#2#3}%
}%
\def\pgfoo@ciii@done(#1,){%
\def\pgfoo@mro{#1}%
}%
\long\def\pgfoo@declaremethod#1(#2)#3{%
\def\pgfoo@method{#1}%
\ifx\pgfoo@classname\pgfoo@method
\def\pgfoo@method{init}%
\fi
\expandafter\long\expandafter\def\csname pgfooY\pgfoo@classname.\pgfoo@method\endcsname(#2){#3}%
\edef\pgfoo@methods{\pgfoo@methods,\pgfoo@method}%
}%
\def\pgfoo@inherit@methods{%
\expandafter\ifx\expandafter\relax\pgfoo@temp@baseclasses\relax
\expandafter\ifx\csname pgfooY\pgfoo@classname.init\endcsname\relax
\expandafter\let\csname pgfooY\pgfoo@classname.init\endcsname\pgfoo@emptyinit%
\edef\pgfoo@methods{,init\pgfoo@methods}%
\fi
\fi
\if\relax\pgfoo@methods\relax\else
\edef\pgfoo@methods{\expandafter\pgfutil@gobble\pgfoo@methods}%
\fi
\expandafter\let\csname pgfooY\pgfoo@classname @pgfoo@methods\endcsname\pgfoo@methods
\expandafter\let\expandafter\pgfoo@mro\csname pgfooY\pgfoo@classname @pgfoo@mro\endcsname
\pgfutil@for\pgfoo@baseclass:=\pgfoo@mro\do{%
\ifx\pgfoo@baseclass\pgfoo@classname %
\else\pgfoo@escapeif{%
\expandafter\let\expandafter\pgfoo@methods\csname pgfooY\pgfoo@baseclass @pgfoo@methods\endcsname
\pgfutil@for\pgfoo@method:=\pgfoo@methods\do{%
\expandafter\ifx\csname pgfooY\pgfoo@classname.\pgfoo@method\endcsname\relax
\edef\pgfoo@temp{\noexpand\let
\expandafter\noexpand\csname pgfooY\pgfoo@classname.\pgfoo@method\endcsname
\expandafter\noexpand\csname pgfooY\pgfoo@baseclass.\pgfoo@method\endcsname}%
\pgfoo@temp
\fi
}%
}\fi
}%
}%
\def\pgfoosuper(#1,#2).#3({%
#2.get id(\pgfoo@temp@id)%
\edef\pgfoo@classname{\csname pgfooX\pgfoo@temp@id @class\endcsname}%
\def\pgfoo@super@A##1,#1,##2.##3({%
\pgfoo@super@B##2.##3(%
}%
\expandafter\let\expandafter\pgfoo@mro\csname pgfooY\pgfoo@classname @pgfoo@mro\endcsname
\expandafter\pgfoo@super@A\expandafter,\pgfoo@mro,.#3(%
}%
\def\pgfoo@super@B#1,#2.#3({%
\expandafter\ifx\csname pgfooY#1.#3\endcsname\relax
\pgfoo@escapeif{\pgfoo@super@B#2.#3(}%
\else
\pgfoo@escapeif{\expandafter\pgfoo@caller\pgfoo@temp@id.#1.#3(}%
\fi
}%
\def\pgfoo@declareattribute#1;{%
\pgfutil@in@{ =}{#1}%
\ifpgfutil@in@%
\pgfoo@declareunpackspace#1;%
\else%
\pgfutil@in@={#1}%
\ifpgfutil@in@%
\pgfoo@declareunpack#1;%
\else%
\pgfoo@declareattribute@\let{#1}\pgfutil@empty
\fi%
\fi%
}%
\def\pgfoo@declareunpack#1=#2;{\pgfoo@declareattribute@\def{#1}{{#2}}}%
\def\pgfoo@declareunpackspace#1 =#2;{\pgfoo@declareattribute@\def{#1}{{#2}}}%
\def\pgfoo@declareattribute@#1#2#3{%
\expandafter#1\csname pgfooY\pgfoo@classname @#2\endcsname#3%
\expandafter\def\expandafter\pgfoo@attributes\expandafter{\pgfoo@attributes,#2}%
}%
\def\pgfoo@inherit@attributes{%
\if\relax\pgfoo@attributes\relax\else
\edef\pgfoo@attributes{\expandafter\pgfutil@gobble\pgfoo@attributes}%
\fi
\expandafter\let\csname pgfooY\pgfoo@classname.@pgfoo@attributes\endcsname\pgfoo@attributes%
\expandafter\let\expandafter\pgfoo@mro\csname pgfooY\pgfoo@classname @pgfoo@mro\endcsname
\def\pgfoo@allattributes{}%
\pgfutil@for\pgfoo@baseclass:=\pgfoo@mro\do{%
\expandafter\let\expandafter\pgfoo@attributes\csname pgfooY\pgfoo@baseclass.@pgfoo@attributes\endcsname
\pgfutil@for\pgfoo@attribute:=\pgfoo@attributes\do{%
\edef\pgfoo@temp{{,\pgfoo@attribute=}{\pgfoo@allattributes,}}%
\expandafter\pgfutil@in@\pgfoo@temp
\ifpgfutil@in@\else %
\edef\pgfoo@allattributes{\pgfoo@allattributes,\pgfoo@attribute=\pgfoo@baseclass}%
\fi
}%
}%
\if\relax\pgfoo@allattributes\relax\else
\edef\pgfoo@allattributes{\expandafter\pgfutil@gobble\pgfoo@allattributes}%
\fi
\def\pgfoo@process@attributes{}%
\pgfutil@for\pgfoo@attributeclass:=\pgfoo@allattributes\do{%
\expandafter\pgfoo@inherit@attributes@appendattribute\pgfoo@attributeclass.%
}%
\expandafter\let\csname pgfooY\pgfoo@classname .@pgfoo@process@attributes\endcsname\pgfoo@process@attributes
}%
\def\pgfoo@inherit@attributes@appendattribute#1=#2.{%
\def\pgfoo@tempA{\pgfoo@attribute@op{#1}}%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgfoo@tempB\expandafter\expandafter\expandafter{\expandafter\pgfoo@tempA\csname pgfooY#2@#1\endcsname}%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgfoo@process@attributes\expandafter\expandafter\expandafter{\expandafter\pgfoo@process@attributes\pgfoo@tempB}%
}%
\def\pgfoo@gc@attribute#1#2{\pgfoolet{#1}\relax}%
\newcount\pgfoo@objectcount
\newcount\pgfoothis@count
\def\pgfoovalueof#1{%
\csname pgfooX\the\pgfoothis@count @#1\endcsname%
}%
\def\pgfooget#1#2{%
\expandafter\let\expandafter#2\csname pgfooX\the\pgfoothis@count @#1\endcsname%
}%
\long\def\pgfooset#1#2{%
\expandafter\gdef\csname pgfooX\the\pgfoothis@count @#1\endcsname{#2}%
}%
\long\def\pgfooeset#1#2{%
\expandafter\xdef\csname pgfooX\the\pgfoothis@count @#1\endcsname{#2}%
}%
\def\pgfoolet#1#2{%
\expandafter\global\expandafter\let\csname pgfooX\the\pgfoothis@count @#1\endcsname#2%
}%
\def\pgfooappend#1#2{%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@oo@temp\expandafter\expandafter\expandafter{\csname pgfooX\the\pgfoothis@count @#1\endcsname#2}%
\expandafter\global\expandafter\let\csname pgfooX\the\pgfoothis@count @#1\endcsname\pgf@oo@temp%
}%
\def\pgfooprefix#1#2{%
\pgfooget{#1}\pgf@oo@temp%
\def\pgf@oo@@temp{#2}%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\pgf@oo@temp%
\expandafter\expandafter\expandafter{\expandafter\pgf@oo@@temp\pgf@oo@temp}%
\pgfoolet{#1}\pgf@oo@temp%
}%
\newtoks\pgfoo@toks
\def\pgfoo@collect@args{%
\pgfutil@ifnextchar\bgroup\pgfoo@collect@args@group\pgfoo@collect@args@nogroup%
}%
\def\pgfoo@collect@args@nogroup#1){%
\pgfoo@toks{#1}%
\pgfoo@continue%
}%
\def\pgfoo@collect@args@group#1{%
\pgfutil@ifnextchar){\pgfoo@toks{{#1}}\expandafter\pgfoo@continue\pgfutil@gobble}{\pgfoo@collect@args@nogroup{#1}}%
}%
\def\pgfoonew{%
\pgfutil@ifnextchar n{%
\pgfoo@new\pgfoo@dummy=%
}{%
\pgfutil@ifnextchar\bgroup{%
\pgfoo@new@attribute%
}{%
\pgfoo@new%
}%
}%
}%
\def\pgfoo@new#1={%
\def\pgfutil@reserved@a{#1}%
\let\pgfutil@next\pgfoo@@new
\futurelet\pgfutil@let@token\pgfutil@ignorespaces}%
\def\pgfoo@@new new #1({%
\expandafter\ifx\csname pgfooY#1.get id\endcsname\relax%
\pgferror{Unknown class '#1'}%
\else%
\expandafter\pgfoo@new@create\pgfutil@reserved@a{#1}%
{%
\pgfoothis@count\pgfoo@objectcount%
\let\pgfoo@attribute@op\pgfoolet
\csname pgfooY#1.@pgfoo@process@attributes\endcsname%
}%
\let\pgfoo@continue=\pgf@oo@new@cont%
\expandafter\pgfoo@collect@args%
\fi%
}%
\def\pgf@oo@new@cont{%
\expandafter\pgfoolastobj\expandafter.\expandafter i\expandafter n\expandafter i\expandafter t\expandafter(\the\pgfoo@toks)%
\aftergroup\pgfoogc%
}%
\def\pgfoo@new@attribute#1={%
\def\pgfutil@reserved@a{#1}%
\let\pgfutil@next\pgfoo@@new@attribute
\futurelet\pgfutil@let@token\pgfutil@ignorespaces}%
\def\pgfoo@@new@attribute new #1({%
\expandafter\ifx\csname pgfooY#1.get id\endcsname\relax%
\pgferror{Unknown class '#1'}%
\else%
\pgfoo@new@create\pgfoo@temp{#1}%
{%
\pgfoothis@count\pgfoo@objectcount%
\let\pgfoo@attribute@op\pgfoolet%
\csname pgfooY#1.@pgfoo@process@attributes\endcsname%
}%
\expandafter\pgfoolet\expandafter{\pgfutil@reserved@a}\pgfoo@temp%
\let\pgfoo@continue=\pgf@oo@new@cont%
\expandafter\pgfoo@collect@args%
\fi%
}%
\def\pgfoo@new@create#1#2{%
\advance\pgfoo@objectcount by 1\relax%
\edef\pgfoolastobj{\noexpand\pgfoo@caller{\the\pgfoo@objectcount}}%
\expandafter\gdef\csname pgfooX\the\pgfoo@objectcount @class\endcsname{#2}%
\let#1\pgfoolastobj%
}%
\def\pgfoo@caller#1.#2({%
\expandafter\let\expandafter\pgfoo@caller@temp\csname pgfooY\csname pgfooX#1@class\endcsname.#2\endcsname%
\ifx\pgfoo@caller@temp\relax%
\expandafter\let\expandafter\pgfoo@caller@temp\csname pgfooY#2\endcsname%
\ifx\pgfoo@caller@temp\relax%
\pgferror{Object #1 has no method '#2'}%
\fi%
\fi%
\def\pgf@marshal{%
\pgfoothis@count=#1\relax%
}%
\let\pgfoo@continue\pgfoo@caller@cont%
\pgfoo@collect@args%
}%
\def\pgfoo@caller@cont{%
\edef\pgf@marshal{%
\pgf@marshal%
\noexpand\pgfoo@caller@temp(\the\pgfoo@toks)%
}%
\expandafter\pgf@marshal\expandafter\pgfoothis@count\the\pgfoothis@count\relax%
}%
\let\pgfoo@orig@caller=\pgfoo@caller
\def\pgfoothis.#1({%
\expandafter\let\expandafter\pgfoo@caller@temp\csname pgfooY\csname pgfooX\the\pgfoothis@count @class\endcsname.#1\endcsname%
\ifx\pgfoo@caller@temp\relax%
\expandafter\let\expandafter\pgfoo@caller@temp\csname pgfooY#1\endcsname%
\fi%
\let\pgfoo@continue\pgfoothis@cont%
\pgfoo@collect@args%
}%
\def\pgfoothis@cont{%
\expandafter\pgfoo@caller@temp\expandafter(\the\pgfoo@toks)%
}%
\def\pgfoo@id(#1){%
\edef#1{\the\pgfoothis@count}%
}%
\def\pgfooobj#1{%
\pgfoo@caller{#1}%
}%
\def\pgfoo@obj(#1){%
\edef#1{\noexpand\pgfoo@caller{\the\pgfoothis@count}}%
}%
\def\pgfoogc{%
{%
\pgfoothis@count\pgfoo@objectcount%
\let\pgfoo@next=\pgfoo@dogc%
\pgfoo@next%
}%
}%
\def\pgfoo@dogc{%
\advance\pgfoothis@count by 1\relax%
\expandafter\ifx\csname pgfooX\the\pgfoothis@count @class\endcsname\relax%
\let\pgfoo@next=\relax%
\else%
\let\pgfoo@attribute@op\pgfoo@gc@attribute
\csname pgfooY\csname pgfooX\the\pgfoothis@count @class\endcsname.@pgfoo@process@attributes\endcsname%
\expandafter\global\expandafter\let\csname pgfooX\the\pgfoothis@count @class\endcsname\relax%
\fi%
\pgfoo@next%
}%
\pgfooclass{object}{%
\method copy(#1) {%
\edef\pgfoo@temp@classname{\csname pgfooX\the\pgfoothis@count @class\endcsname}%
\expandafter\pgfoo@new@create\expandafter#1\expandafter{\pgfoo@temp@classname}%
\def\pgfoo@copy@attributes##1##2{%
\pgfooget{##1}\pgfoo@attrvalue
\expandafter\let\csname pgfooX\the\pgfoo@objectcount @##1\endcsname\pgfoo@attrvalue
}%
\let\pgfoo@attribute@op\pgfoo@copy@attributes
\csname pgfooY\pgfoo@temp@classname .@pgfoo@process@attributes\endcsname
\aftergroup\pgfoogc%
}%
}%
\pgfooclass{signal}
{%
\attribute emitter;%
\method signal() {}%
\method connect(#1,#2) {%
{%
#1.get id(\pgf@tempid)%
\pgfooget{emitter}\pgf@temp%
\let\pgfoo@signal@call=\relax%
\edef\pgf@temp{\pgf@temp\pgfoo@signal@call{\pgf@tempid}{#2}}%
\pgfoolet{emitter}\pgf@temp%
}%
}%
\def\pgfoo@signal@call#1#2{%
\def\pgf@temp{\pgfooobj{#1}.#2}%
\expandafter\pgf@temp\expandafter(\pgfoo@signal@args)%
}%
\method emit(#1) {%
\def\pgfoo@signal@args{#1}%
\pgfoovalueof{emitter}
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleoo.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleparser.code.tex ====
\ProvidesFileRCS{pgfmoduleparser.code.tex}
\long\def\pgfparserset#1%
{%
\pgfqkeys{/pgfparser}{#1}%
}
\pgfparserset
{%
,silent/.is if=\pgfparser@ifname{every parser silent}%
,status/.is if=\pgfparser@ifname{pgfparser status}%
}
\long\def\pgfparser@fi@Bn\fi#1{\fi}
\long\def\pgfparser@fi@Bg\fi#1#2{\fi}
\long\def\pgfparser@fi@BTb\fi#1#2#3{\fi#2}
\long\def\pgfparser@fi@BTc\fi#1#2#3{\fi#3}
\long\def\pgfparserifmark#1%
{%
\ifx\pgfparser@mark#1%
\pgfparser@fi@BTb
\fi
\pgfutil@secondoftwo
}
\pgfutil@protected\long\def\pgfparser@oarg@oarg#1%
{%
\pgfutil@ifnextchar[{\pgfparser@oarg@oarg@{#1}}{#1{\pgfparser@mark}}%
}
\long\def\pgfparser@oarg@oarg@#1[#2]%
{%
#1{#2}%
}
\pgfutil@protected\long\def\pgfparser@oarg@Oarg#1#2%
{%
\pgfutil@ifnextchar[{\pgfparser@oarg@oarg@{#2}}{#2{#1}}%
}
\pgfutil@protected\long\def\pgfparser@oarg@darg#1#2#3%
{%
\long\def\pgfparser@oarg@darg@##1#1##2#2{##1{##2}}%
\pgfutil@ifnextchar#1{\pgfparser@oarg@darg@{#3}}{#3{\pgfparser@mark}}%
}
\pgfutil@protected\long\def\pgfparser@oarg@Darg#1#2#3#4%
{%
\long\def\pgfparser@oarg@darg@##1#1##2#2{##1{##2}}%
\pgfutil@ifnextchar#1{\pgfparser@oarg@darg@{#4}}{#4{#3}}%
}
\pgfutil@protected\long\def\pgfparser@oarg@targ@#1%
{%
\def\pgfparser@oarg@targ@next{#1}%
\afterassignment\pgfparser@oarg@targ@next
\let\pgfparser@ignored@token=%
}
\pgfutil@protected\long\def\pgfparser@oarg@targ#1#2%
{%
\pgfutil@ifnextchar#1%
{\pgfparser@oarg@targ@{#2{\pgfparser@mark}}}{#2{\pgfparser@stop}}%
}
\pgfutil@protected\def\pgfparser@msg#1%
{%
\immediate\write0{(pgfparser) #1}%
}
\pgfutil@protected\def\pgfparser@status@start#1%
{%
\pgfparser@if{pgfparser status}{\pgfparser@msg{parser '#1' started}}{}%
}
\pgfutil@protected\def\pgfparser@status@state#1%
{%
\pgfparser@if{pgfparser status}
{\pgfparser@msg{|= switched to state '#1'}}
{}%
}
\pgfutil@protected\def\pgfparser@status@rule
{%
\pgfparser@if{pgfparser status}
{\pgfparser@msg{| \space|= rule '\meaning\pgfparsertoken' executed}}
{}%
}
\pgfutil@protected\def\pgfparser@status@rule@all
{%
\pgfparser@if{pgfparser status}
{%
\pgfparser@msg
{| \space|= (all) rule '\meaning\pgfparsertoken' executed}%
}
{}%
}
\pgfutil@protected\def\pgfparser@status@rule@undefined
{%
\pgfparser@if{pgfparser status}
{%
\pgfparser@msg
{| \space|= unknown for '\meaning\pgfparsertoken' executed}%
}
{}%
}
\pgfutil@protected\def\pgfparser@status@rule@undefined@all
{%
\pgfparser@if{pgfparser status}
{%
\pgfparser@msg
{| \space|= (all) unknown for '\meaning\pgfparsertoken' executed}%
}
{}%
}
\begingroup
\lccode`\P=`\P \lccode`\G=`\G \lccode`\F=`\F
\lccode`\:=`\X \lccode`\;=`\r \lccode`\A=`\-
\lowercase
{%
\endgroup
\def\pgfparser@mark{APGFparse;:mark-}%
\def\pgfparser@stop{APGFparse;:stop-}%
}%
\def\pgfparser@final{final}
\def\pgfparser@noarg{noarg}
\def\pgfparser@blankspace{blank space}
\newcount\pgfparserdef@arg@count
\def\pgfparser@name#1%
{%
pgfparser #1%
}
\def\pgfparser@rule#1%
{%
\pgfparser@current\space #1\space \meaning\pgfparsertoken
}
\def\pgfparser@type#1%
{%
\pgfparser@rule{#1} type%
}
\def\pgfparser@code#1%
{%
\pgfparser@rule{#1} code%
}
\def\pgfparser@undefined#1%
{%
\pgfparser@current\space #1\space unknown%
}
\def\pgfparser@ifname#1%
{%
pgfparserconditional #1%
}
\def\pgfparser@if#1%
{%
\pgfutil@ifundefined{if\pgfparser@ifname{#1}}
{%
\pgferror{Undefined conditional '#1'. Falling back to false}%
\iffalse
}
{\csname if\pgfparser@ifname{#1}\endcsname}%
\pgfparser@fi@BTb
\fi
\pgfutil@secondoftwo
}
\def\pgfparser@newif#1%
{%
\csname newif\expandafter\endcsname
\csname if\pgfparser@ifname{#1}\endcsname
}
\pgfparser@newif{every parser silent}
\pgfparser@newif{pgfparserdef abort}
\pgfparser@newif{pgfparser status}
\pgfutil@protected\def\pgfparserdef#1#2%
{%
\def\pgfparserdef@twoargs{{#1}{#2}}%
\pgfparserdef@a
}
\pgfutil@protected\def\pgfparserdef@a
{%
\futurelet\pgfparserdef@arg\pgfparserdef@b
}
\def\pgfparserdef@b
{%
\ifx\pgfparserdef@arg\pgfutil@sptoken
\pgfparserdef@gobble@space
\fi
\pgfparserdef@c
}
\pgfutil@protected\def\pgfparserdef@gobble@space\fi#1%
{%
\fi
\afterassignment\pgfparserdef@a
\let\pgfparser@ignored@token= %
}
\pgfutil@protected\def\pgfparserdef@c#1%
{%
\ifx\pgfparserdef@arg\bgroup
\pgfparser@fi@BTb
\fi
\pgfutil@secondoftwo
{%
\def\pgfparserdef@arg{#1}%
\ifx\pgfparser@blankspace\pgfparserdef@arg
\pgfparser@fi@BTb
\fi
\pgfutil@secondoftwo
{\expandafter\pgfparserdef@d\pgfparserdef@twoargs{blank space \space}}
{\expandafter\pgfparserdef@d\pgfparserdef@twoargs{#1}}%
}
{%
\expandafter\pgfparserdef@d\pgfparserdef@twoargs
{\meaning\pgfparserdef@arg}%
}%
}
\long\def\pgfparserdef@d#1#2#3%
{%
\pgfparser@oarg@Oarg{}{\pgfparserdef@e{#1}{#2}{#3}}%
}
\pgfutil@protected\long\def\pgfparserdef@e#1#2#3#4#5%
{%
\pgfparser@initiate@parser{#1}%
\csname\pgfparser@ifname{pgfparserdef abort}false\endcsname
\pgfparserdef@arg@count=0
\pgfparserdef@argcount#4\pgfparser@mark
\ifnum\pgfparserdef@arg@count>9
\pgferror
{%
Too many arguments for parser rule. A maximum of 9 parameters is
supported.%
}%
\csname\pgfparser@ifname{pgfparserdef abort}true\endcsname
\fi
\pgfparser@if{pgfparserdef abort}{}
{%
\ifnum\pgfparserdef@arg@count=0
\pgfutil@namedef{\pgfparser@name{#1} #2 #3 type}{noarg}%
\pgfutil@namedef{\pgfparser@name{#1} #2 #3 code}%
{#5\pgfparser@getnexttoken}%
\else
\pgfutil@namedef{\pgfparser@name{#1} #2 #3 type}{#4}%
\expandafter\pgfparserdef@argstring@def\the\pgfparserdef@arg@count
\pgfutil@namedef{\pgfparser@name{#1} #2 #3 code\expandafter}%
\pgfparserdef@argstring##1##2##3##4##5##6##7##8##9%
{#5\pgfparser@getnexttoken}%
\fi
}%
}
\def\pgfparserdef@argstring@def#1%
{%
\def\pgfparserdef@argstring##1#1##2##{##1#1}%
}
\def\pgfparserdef@argcount#1%
{%
\ifx\pgfparser@mark#1%
\pgfparser@fi@Bg
\fi
\pgfutil@firstofone
{%
\pgfutil@IfUndefined{pgfparserdef@argcount@#1}
{%
\pgferror{Unknown argument type '#1'. Aborting rule definition}%
\pgfparserdef@argcount@abort
}
{\csname pgfparserdef@argcount@#1\endcsname}%
}%
}
\pgfutil@protected\long\def\pgfparserdef@argcount@abort#1\pgfparser@mark
{%
\csname\pgfparser@ifname{pgfparserdef abort}true\endcsname
}
\def\pgfparserdef@argcount@m
{%
\advance\pgfparserdef@arg@count1
\pgfparserdef@argcount
}
\let\pgfparserdef@argcount@o\pgfparserdef@argcount@m
\def\pgfparserdef@argcount@O#1%
{%
\advance\pgfparserdef@arg@count1
\pgfparserdef@argcount
}
\let\pgfparserdef@argcount@r\pgfparserdef@argcount@O
\let\pgfparserdef@argcount@t\pgfparserdef@argcount@O
\def\pgfparserdef@argcount@d#1#2%
{%
\advance\pgfparserdef@arg@count1
\pgfparserdef@argcount
}
\def\pgfparserdef@argcount@D#1#2#3%
{%
\advance\pgfparserdef@arg@count1
\pgfparserdef@argcount
}
\pgfutil@protected\def\pgfparser@initiate@parser#1%
{%
\pgfutil@IfUndefined{if\pgfparser@ifname{#1 silent}}%
{%
\pgfutil@namedef
{\pgfparser@name{#1} all blank space \space\space type}{noarg}%
\pgfutil@namedef
{\pgfparser@name{#1} all blank space \space\space code}%
{\pgfparser@getnexttoken}%
\pgfparser@newif{#1 silent}%
\pgfparserset
{%
#1/silent/.is if=\pgfparser@ifname{#1 silent}%
}%
}
{}%
}
\pgfutil@protected\def\pgfparserlet#1#2%
{%
\def\pgfparserlet@parser@a{#1}%
\def\pgfparserlet@state@a{#2}%
\pgfparserlet@a
}
\pgfutil@protected\def\pgfparserlet@a
{%
\futurelet\pgfparserlet@arga\pgfparserlet@b
}
\def\pgfparserlet@b
{%
\ifx\pgfparserlet@arga\pgfutil@sptoken
\pgfparserlet@gobble@space\pgfparserlet@a
\fi
\pgfparserlet@c
}
\pgfutil@protected\def\pgfparserlet@gobble@space#1\fi#2%
{%
\fi
\afterassignment#1%
\let\pgfparser@ignored@token= %
}
\pgfutil@protected\def\pgfparserlet@c#1%
{%
\ifx\pgfparserlet@arga\bgroup
\pgfparser@fi@BTb
\fi
\pgfutil@secondoftwo
{%
\def\pgfparserlet@arga{#1}%
\ifx\pgfparser@blankspace\pgfparserlet@arga
\def\pgfparserlet@arga{blank space \space}%
\fi
}
{\edef\pgfparserlet@arga{\meaning\pgfparserlet@arga}}%
\pgfparser@oarg@oarg\pgfparserlet@d
}
\pgfutil@protected\def\pgfparserlet@d#1%
{%
\pgfparserifmark{#1}
{%
\let\pgfparserlet@parser@b\pgfparserlet@parser@a
\let\pgfparserlet@state@b\pgfparserlet@state@a
\pgfparserlet@f
}
{\pgfparser@oarg@oarg{\pgfparserlet@e{#1}}}%
}
\pgfutil@protected\def\pgfparserlet@e#1#2%
{%
\pgfparserifmark{#2}
{%
\let\pgfparserlet@parser@b\pgfparserlet@parser@a
\def\pgfparserlet@state@b{#1}%
}
{%
\def\pgfparserlet@parser@b{#1}%
\def\pgfparserlet@state@b{#2}%
}
\pgfparserlet@f
}
\pgfutil@protected\def\pgfparserlet@f
{%
\futurelet\pgfparserlet@argb\pgfparserlet@g
}
\def\pgfparserlet@g
{%
\ifx\pgfparserlet@argb\pgfutil@sptoken
\pgfparserlet@gobble@space\pgfparserlet@f
\fi
\pgfparserlet@h
}
\pgfutil@protected\def\pgfparserlet@h#1%
{%
\ifx\pgfparserlet@argb\bgroup
\pgfparser@fi@BTb
\fi
\pgfutil@secondoftwo
{%
\def\pgfparserlet@argb{#1}%
\ifx\pgfparser@blankspace\pgfparserlet@argb
\def\pgfparserlet@argb{blank space \space}%
\fi
}
{\edef\pgfparserlet@argb{\meaning\pgfparserlet@argb}}%
\pgfparserlet@i
\pgfparserlet@parser@a
\pgfparserlet@state@a
\pgfparserlet@arga
\pgfparserlet@parser@b
\pgfparserlet@state@b
\pgfparserlet@argb
}
\def\pgfparserlet@i#1#2#3#4#5#6%
{%
\pgfutil@IfUndefined{\pgfparser@name{#4} #5 #6 type}
{%
\pgferror
{%
There is no rule defined for parser '#4' in state '#5' for '#6'.
Aborting \string\pgfparserlet
}%
}
{%
\pgfparser@initiate@parser{#1}%
\pgfparserlet@let{#1}{#2}{#3}{#4}{#5}{#6}{type}%
\pgfparserlet@let{#1}{#2}{#3}{#4}{#5}{#6}{code}%
}%
}
\def\pgfparserlet@let#1#2#3#4#5#6#7%
{%
\expandafter\let\csname\pgfparser@name{#1} #2 #3 #7\expandafter\endcsname
\csname\pgfparser@name{#4} #5 #6 #7\endcsname
}
\pgfutil@protected\long\def\pgfparserdefunknown#1#2#3%
{%
\pgfparser@initiate@parser{#1}%
\pgfutil@namedef{\pgfparser@name{#1} #2 unknown}{#3}%
}
\pgfutil@protected\long\def\pgfparserdeffinal#1#2%
{%
\pgfutil@namedef{\pgfparser@name{#1} final action}{#2}%
}
\pgfutil@protected\def\pgfparserswitch#1%
{%
\pgfparser@status@state{#1}%
\def\pgfparserstate{#1}%
}
\pgfutil@protected\def\pgfparserparse#1%
{%
\pgfutil@IfUndefined{if\pgfparser@ifname{#1 silent}}
{\pgferror{No parser named '#1' defined}}
{%
\edef\pgfparser@current{\pgfparser@name{#1}}%
\def\pgfparser@usersname{#1}%
\pgfparser@status@start{#1}%
\pgfparserswitch{initial}%
\pgfparser@getnexttoken
}%
}
\pgfutil@protected\def\pgfparser@getnexttoken
{%
\ifx\pgfparserstate\pgfparser@final
\pgfparser@fi@BTb
\fi
\pgfutil@secondoftwo
{%
\pgfutil@IfUndefined{\pgfparser@current\space final action}
{}
{\csname \pgfparser@current\space final action\endcsname}%
}
{\futurelet\pgfparsertoken\pgfparser@getnexttoken@a}%
}
\pgfutil@protected\def\pgfparser@getnexttoken@a
{%
\edef\pgfparser@tokencategory{\pgfparser@extractmeaning\pgfparsertoken}%
\pgfparser@getnexttoken@ifcategory\pgfparser@category@i\bgroup
{%
\pgfparser@getnexttoken@ifcategory\pgfparser@category@ii\egroup
{%
\pgfparser@getnexttoken@ifcategory\pgfparser@category@x{ }%
{%
\pgfparser@getnexttoken@ifcategory\pgfparser@category@vi{####}%
{\pgfparser@getnexttoken@defchar}%
}%
}%
}%
}
\begingroup
\def\pgfparser@extractmeaning#1%
{%
\endgroup
\def\pgfparser@extractmeaning##1%
{\expandafter\pgfparser@extractmeaning@\meaning##1#1#1\pgfparser@mark}%
\def\pgfparser@extractmeaning@##1#1##2#1##3\pgfparser@mark{##1#1##2}%
}
\catcode`\ =12\pgfparser@extractmeaning{ } %
\edef\pgfparser@category@i{\pgfparser@extractmeaning\bgroup}
\edef\pgfparser@category@ii{\pgfparser@extractmeaning\egroup}
\edef\pgfparser@category@vi{\pgfparser@extractmeaning#}
\edef\pgfparser@category@x{\pgfparser@extractmeaning\pgfutil@sptoken}
\pgfutil@protected\def\pgfparser@getnexttoken@ifcategory#1#2%
{%
\ifx\pgfparser@tokencategory#1%
\def\pgfparserletter{#2}%
\pgfparser@getnexttoken@gobble
\fi
\pgfutil@firstofone
}
\pgfutil@protected\def\pgfparser@getnexttoken@gobble\fi#1#2%
{%
\fi
\afterassignment\pgfparser@getnexttoken@b
\let\pgfparser@ignored@token= %
}
\pgfutil@protected\long\def\pgfparser@getnexttoken@defchar#1%
{%
\def\pgfparserletter{#1}%
\pgfparser@getnexttoken@b
}
\pgfutil@protected\def\pgfparser@getnexttoken@b
{%
\pgfutil@IfUndefined{\pgfparser@type{\pgfparserstate}}
{%
\pgfutil@IfUndefined{\pgfparser@type{all}}
{%
\pgfparser@if{every parser silent}{}
{%
\pgfparser@if{\pgfparser@usersname\space silent}{}
{%
\pgferror
{%
No rule for parser '\pgfparser@usersname' in state
'\pgfparserstate' for '\meaning\pgfparsertoken'.
Ignoring token%
}%
}%
}%
\pgfutil@IfUndefined{\pgfparser@undefined{\pgfparserstate}}
{%
\pgfutil@IfUndefined{\pgfparser@undefined{all}}
{}
{%
\pgfparser@status@rule@undefined@all
\csname\pgfparser@undefined{all}\endcsname
}%
}
{%
\pgfparser@status@rule@undefined
\csname\pgfparser@undefined{\pgfparserstate}\endcsname
}%
\pgfparser@getnexttoken
}
{%
\pgfparser@status@rule@all
\pgfparser@handle{all}%
}%
}
{%
\pgfparser@status@rule
\pgfparser@handle{\pgfparserstate}%
}%
}
\pgfutil@protected\def\pgfparser@handle#1%
{%
\expandafter\ifx\csname\pgfparser@type{#1}\endcsname\pgfparser@noarg
\pgfparser@fi@BTb
\fi
\pgfutil@secondoftwo
{\csname\pgfparser@code{#1}\endcsname}
{\pgfparser@handle@args{#1}}%
}
\pgfutil@protected\def\pgfparser@handle@args#1%
{%
\def\pgfparser@stateorall{#1}%
\expandafter\expandafter\expandafter\pgfparser@handle@args@a
\csname\pgfparser@type{#1}\endcsname\pgfparser@mark\pgfparser@stop
}
\def\pgfparser@handle@args@a
{%
\pgfparser@handle@args@b{}%
}
\pgfutil@protected\long\def\pgfparser@handle@args@b#1#2#3\pgfparser@stop
{%
\pgfparserifmark{#2}
{\csname\pgfparser@code{\pgfparser@stateorall}\endcsname#1}
{%
\pgfutil@IfUndefined{pgfparser@handle@args@#2}
{\pgferror{Unknown argument type '#2'}}
{\csname pgfparser@handle@args@#2\endcsname{#1}{#3}}%
}%
}
\long\def\pgfparser@handle@args@c#1#2%
{%
\pgfparserifmark{#2}
{\csname\pgfparser@code{\pgfparser@stateorall}\endcsname#1}
{\pgfparser@handle@args@b{#1}#2\pgfparser@stop}%
}
\long\def\pgfparser@handle@args@m#1#2#3%
{%
\pgfparser@handle@args@c{#1{#3}}{#2}%
}
\pgfutil@protected\long\def\pgfparser@handle@args@o#1#2%
{%
\pgfparser@oarg@oarg{\pgfparser@handle@args@m{#1}{#2}}%
}
\long\def\pgfparser@handle@args@O#1#2%
{%
\pgfparser@handle@args@O@{#1}#2\pgfparser@stop
}
\pgfutil@protected\long\def\pgfparser@handle@args@O@#1#2#3\pgfparser@stop
{%
\pgfparser@oarg@Oarg{#2}{\pgfparser@handle@args@m{#1}{#3}}%
}
\long\def\pgfparser@handle@args@d#1#2%
{%
\pgfparser@handle@args@d@{#1}#2\pgfparser@stop
}
\pgfutil@protected\long\def\pgfparser@handle@args@d@#1#2#3#4\pgfparser@stop
{%
\pgfparser@oarg@darg{#2}{#3}{\pgfparser@handle@args@m{#1}{#4}}%
}
\long\def\pgfparser@handle@args@D#1#2%
{%
\pgfparser@handle@args@D@{#1}#2\pgfparser@stop
}
\pgfutil@protected\long\def\pgfparser@handle@args@D@#1#2#3#4#5\pgfparser@stop
{%
\pgfparser@oarg@Darg{#2}{#3}{#4}{\pgfparser@handle@args@m{#1}{#5}}%
}
\long\def\pgfparser@handle@args@r#1#2%
{%
\pgfparser@handle@args@r@a{#1}#2\pgfparser@stop
}
\pgfutil@protected\long\def\pgfparser@handle@args@r@a#1#2#3\pgfparser@stop
{%
\def\pgfparser@handle@args@r@b##1#2%
{\pgfparser@handle@args@c{#1{##1}}{#3}}%
\pgfparser@handle@args@r@b
}
\long\def\pgfparser@handle@args@t#1#2%
{%
\pgfparser@handle@args@t@{#1}#2\pgfparser@stop
}
\pgfutil@protected\long\def\pgfparser@handle@args@t@#1#2#3\pgfparser@stop
{%
\pgfparser@oarg@targ{#2}{\pgfparser@handle@args@m{#1}{#3}}%
}
\pgfutil@protected\long\def\pgfparserreinsert#1%
{%
\ifx\pgfparser@getnexttoken#1%
\pgfparser@fi@BTb
\fi
\@secondoftwo
{\expandafter\pgfparser@getnexttoken\pgfparserletter}
{%
\pgferror
{%
Misuse of \string\pgfparserreinsert\space detected. You should only
use it at the the end of an action code%
}%
#1%
}%
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleparser.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleplot.code.tex ====
\ProvidesFileRCS{pgfmoduleplot.code.tex}
\def\pgfplotstreamstart{\pgf@plotstreamstart}%
\def\pgfplotstreampoint#1{\gdef\pgfplotlastpoint{#1}\pgf@plotstreampoint{#1}}%
\def\pgfplotstreampointoutlier#1{\pgfplot@outliers{}{\pgf@plotstreamjump}{\pgfplotstreampoint{#1}}}%
\def\pgfplotstreampointundefined{\pgfplot@outliers{}{\pgf@plotstreamjump}{}}%
\def\pgfplotstreamnewdataset{\pgfplot@outliers{}{\pgf@plotstreamjump}{}}%
\def\pgfplotstreamspecial{\pgf@plotstreamspecial}%
\def\pgfplotstreamend{\pgf@plotstreamend}%
\def\pgfplot@ignorer#1#2#3{#1}%
\def\pgfplot@jumper#1#2#3{#2}%
\def\pgfplot@plotter#1#2#3{#3}%
\let\pgfplot@outliers\pgfplot@jumper
\let\pgfplot@undefined\pgfplot@jumper
\let\pgfplot@newdata\pgfplot@jumper
\pgfset{
handle outlier points in plots/.is choice,
handle outlier points in plots/ignore/.code=\let\pgfplot@outliers\pgfplot@ignorer,
handle outlier points in plots/jump/.code=\let\pgfplot@outliers\pgfplot@jumper,
handle outlier points in plots/plot/.code=\let\pgfplot@outliers\pgfplot@plotter,
handle undefined points in plots/.is choice,
handle undefined points in plots/ignore/.code=\let\pgfplot@undefined\pgfplot@ignorer,
handle undefined points in plots/jump/.code=\let\pgfplot@undefined\pgfplot@jumper,
handle new data sets in plots/.is choice,
handle new data sets in plots/ignore/.code=\let\pgfplot@newdata\pgfplot@ignorer,
handle new data sets in plots/jump/.code=\let\pgfplot@newdata\pgfplot@jumper,
}%
\def\pgfdeclareplothandler#1#2#3{%
\def#1#2{%
\pgfkeys{%
/pgf/plots/@handler options/.cd,
start=\relax,
end macro=\relax,
point macro=\pgfutil@gobble,
jump macro=\relax,
special macro=\pgfutil@gobble,%
#3%
}%
}%
}%
\pgfkeys{%
/pgf/plots/@handler options/.cd,
start/.code=%
\gdef\pgf@plotstreamstart{%
\global\pgf@plot@startedfalse%
\global\let\pgf@plotstreamend\pgf@plotstreamend@init%
\global\let\pgf@plotstreampoint\pgf@plotstreampoint@init%
\global\let\pgf@plotstreamjump\pgf@plotstreamjump@init%
\global\let\pgf@plotstreamspecial\pgf@plotstreamspecial@init%
#1%
},%
start macro/.code=%
\gdef\pgf@plotstreamstart{%
\global\pgf@plot@startedfalse%
\global\let\pgf@plotstreamend\pgf@plotstreamend@init%
\global\let\pgf@plotstreampoint\pgf@plotstreampoint@init%
\global\let\pgf@plotstreamjump\pgf@plotstreamjump@init%
\global\let\pgf@plotstreamspecial\pgf@plotstreamspecial@init%
#1%
},%
end/.code=\gdef\pgf@plotstreamend@init{#1},
end macro/.code=\global\let\pgf@plotstreamend@init#1,
point/.code=\gdef\pgf@plotstreampoint@init##1{#1},
point macro/.code=\global\let\pgf@plotstreampoint@init#1,
jump/.code=\gdef\pgf@plotstreamjump@init{#1},
jump macro/.code=\global\let\pgf@plotstreamjump@init#1,
special/.code=\gdef\pgf@plotstreamspecial@init##1{#1},
special macro/.code=\global\let\pgf@plotstreamspecial@init#1,
}%
\newif\ifpgf@plot@started
\def\pgfsetlinetofirstplotpoint{\let\pgf@plot@first@action=\pgfpathlineto}%
\def\pgfsetmovetofirstplotpoint{\let\pgf@plot@first@action=\pgfpathmoveto}%
\let\pgf@plot@first@action=\pgfpathmoveto
\pgfdeclareplothandler{\pgfplothandlerlineto}{}{
point macro=\pgf@plot@line@handler,
jump=\global\let\pgf@plotstreampoint\pgf@plot@line@handler@move%
}%
\def\pgf@plot@line@handler#1{%
\pgf@plot@first@action{#1}%
\global\let\pgf@plotstreampoint=\pgfpathlineto%
}%
\def\pgf@plot@line@handler@move#1{%
\pgfpathmoveto{#1}%
\global\let\pgf@plotstreampoint=\pgfpathlineto%
}%
\pgfdeclareplothandler{\pgfplothandlerpolygon}{}{%
point macro=\pgf@plot@line@handler@close,
jump macro=\pgf@plot@next@close@and@moveto,
end macro=\pgf@plot@polygon@stop
}%
\def\pgf@plot@line@handler@close#1{%
\pgfpathmoveto{#1}%
\global\pgf@plot@startedtrue%
\global\let\pgf@plotstreampoint=\pgfpathlineto%
}%
\def\pgf@plot@polygon@stop{%
\ifpgf@plot@started%
\pgfpathclose%
\fi%
\global\pgf@plot@startedfalse%
}%
\def\pgf@plot@next@close@and@moveto{%
\ifpgf@plot@started%
\pgfpathclose%
\fi%
\global\let\pgf@plotstreampoint\pgf@plot@line@handler@close%
}%
\pgfdeclareplothandler{\pgfplothandlerdiscard}{}{}%
\pgfdeclareplothandler{\pgfplothandlerrecord}{#1}{%
start=\gdef#1{\pgfplotstreamstart},
point=\expandafter\gdef\expandafter#1\expandafter{#1\pgfplotstreampoint{##1}},
jump=\expandafter\gdef\expandafter#1\expandafter{#1\pgf@plotstreamjump},
special=\expandafter\gdef\expandafter#1\expandafter{#1\pgfplotstreamspecial{##1}},
end=\expandafter\gdef\expandafter#1\expandafter{#1\pgfplotstreamend},
}%
\def\pgfplotxyfile#1{%
\begingroup%
\def\b@pgfplotsxyfile@scanning@for@first{1}%
\pgfplotstreamstart%
\openin\r@pgf@reada=#1
\ifeof\r@pgf@reada
\pgfwarning{Plot data file `#1' not found.}
\else
\catcode`\#=14
\catcode`\^^M=5
\pgf@readxyfile%
\fi
\pgfplotstreamend%
\endgroup%
}%
\let\pgf@savedpar=\par
\def\pgf@partext{\par}%
\def\pgf@readxyfile{%
\pgfutil@read\r@pgf@reada to \pgf@temp%
\let\par=\pgf@savedpar%
\edef\pgf@temp{\pgf@temp}%
\ifx\pgf@temp\pgfutil@empty%
\if1\b@pgfplotsxyfile@scanning@for@first
\else
\ifeof\r@pgf@reada\else\pgfplotstreamnewdataset\fi%
\fi
\else\ifx\pgf@temp\pgf@partext%
\if1\b@pgfplotsxyfile@scanning@for@first
\else
\ifeof\r@pgf@reada\else\pgfplotstreamnewdataset\fi%
\fi
\else%
\expandafter\pgf@parsexyline\pgf@temp\pgf@stop%
\fi\fi%
\ifeof\r@pgf@reada\else\expandafter\pgf@readxyfile\fi%
}%
\def\pgf@parsexyline#1 #2 #3\pgf@stop{%
\def\b@pgfplotsxyfile@scanning@for@first{0}%
\edef\pgf@xyline@flag@val{#3}%
\ifx\pgf@xyline@flag@val\pgf@xyline@flag@undef%
\pgfplotstreampointundefined%
\else\ifx\pgf@xyline@flag@val\pgf@xyline@flag@out%
\pgfplotstreampointoutlier{\pgfpointxy{#1}{#2}}%
\else%
\pgfplotstreampoint{\pgfpointxy{#1}{#2}}%
\fi\fi%
}%
\edef\pgf@xyline@flag@out{o\space}%
\edef\pgf@xyline@flag@undef{u\space}%
\def\pgfplotxyzfile#1{%
\begingroup%
\pgfplotstreamstart%
\openin\r@pgf@reada=#1
\ifeof\r@pgf@reada
\pgfwarning{Plot data file `#1' not found.}
\else
\catcode`\#=14
\catcode`\^^M=5
\pgf@readxyzfile%
\fi
\pgfplotstreamend%
\endgroup%
}%
\def\pgf@readxyzfile{%
\pgfutil@read\r@pgf@reada to \pgf@temp%
\ifx\pgf@temp\pgfutil@empty%
\if1\b@pgfplotsxyfile@scanning@for@first
\else
\ifeof\r@pgf@reada\else\pgfplotstreamnewdataset\fi%
\fi
\else\ifx\pgf@temp\pgf@partext%
\if1\b@pgfplotsxyfile@scanning@for@first
\else
\ifeof\r@pgf@reada\else\pgfplotstreamnewdataset\fi%
\fi
\else%
\expandafter\pgf@parsexyzline\pgf@temp\pgf@stop%
\fi\fi%
\ifeof\r@pgf@reada\else\expandafter\pgf@readxyzfile\fi%
}%
\def\pgf@parsexyzline#1 #2 #3 #4\pgf@stop{%
\def\b@pgfplotsxyfile@scanning@for@first{0}%
\edef\pgf@xyline@flag@val{#4}%
\ifx\pgf@xyline@flag@val\pgf@xyline@flag@undef%
\pgfplotstreampointundefined%
\else\ifx\pgf@xyline@flag@val\pgf@xyline@flag@out%
\pgfplotstreampointoutlier{\pgfpointxyz{#1}{#2}{#3}}%
\else%
\pgfplotstreampoint{\pgfpointxyz{#1}{#2}{#3}}%
\fi\fi%
}%
{%
\catcode`\%=12
\catcode`\"=12
\xdef\pgf@gnuplot@head{set table \noexpand\pgf@plottablefile@quoted; set format "%.5f"}
}%
\let\pgf@plotwrite=\w@pgf@writea
\newif\ifpgf@resample@plot
\pgfkeys{%
/pgf/plot/gnuplot call/.initial={gnuplot}}%
\def\pgfplotgnuplot{\pgfutil@ifnextchar[{\pgf@plotgnuplot}{\pgf@plotgnuplot[\jobname]}}%
\def\pgf@plotgnuplot[#1]#2{%
\pgf@resample@plottrue%
\pgfutilpreparefilename{#1.gnuplot}%
\let\pgf@plotgnuplotfile=\pgfretval
\pgfutilpreparefilename{#1.table}%
\let\pgf@plottablefile=\pgfretval
\let\pgf@plottablefile@quoted=\pgfretvalquoted
\openin\pgfutil@inputcheck=\pgf@plotgnuplotfile\relax
\ifeof\pgfutil@inputcheck%
\else%
\pgfutil@read\pgfutil@inputcheck to\pgf@temp%
\pgfutil@read\pgfutil@inputcheck to\pgf@plot@line%
\closein\pgfutil@inputcheck
\edef\pgf@plot@code{#2\space}%
\ifx\pgf@plot@code\pgf@plot@line%
\openin\pgfutil@inputcheck=\pgfretval\relax
\ifeof\pgfutil@inputcheck%
\else%
\closein\pgfutil@inputcheck
\pgf@resample@plotfalse%
\fi%
\fi%
\fi
\ifpgf@resample@plot%
\immediate\openout\pgf@plotwrite=\pgf@plotgnuplotfile\relax
\immediate\pgfutil@write\pgf@plotwrite{\pgf@gnuplot@head}%
\immediate\pgfutil@write\pgf@plotwrite{#2}%
\immediate\closeout\pgf@plotwrite%
\pgfutil@shellescape{%
\pgfkeysvalueof{/pgf/plot/gnuplot call} \pgf@plotgnuplotfile}%
\fi%
\pgfplotxyfile{\pgf@plottablefile}%
}%
\def\pgfplotfunction#1#2#3{%
\pgfplotstreamstart%
\foreach#1in{#2}%
{%
\pgf@process{#3}%
\edef\pgf@marshal{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
\pgf@marshal%
}
\pgfplotstreamend%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleplot.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleshapes.code.tex ====
\ProvidesFileRCS{pgfmoduleshapes.code.tex}
\newbox\pgfnodeparttextbox
\def\pgfmultipartnode#1#2#3#4{%
\pgfutil@ifundefined{pgf@sh@s@#1}%
{\pgferror{Unknown shape ``#1''}}%
{%
{%
\ifpgflatenodepositioning%
\pgfsys@beginscope%
\fi%
\pgf@outer@adjust@hook%
\let\pgf@sh@savedmacros=\pgfutil@empty%
\let\pgf@sh@savedpoints=\pgfutil@empty%
\def\pgf@sm@shape@name{#1}%
\csname pgf@sh@s@#1\endcsname%
\pgf@sh@savedpoints%
\pgf@sh@savedmacros%
\pgftransformshift{%
\pgf@sh@reanchor{#1}{#2}%
\pgf@x=-\pgf@x%
\pgf@y=-\pgf@y%
}%
\expandafter\pgfsavepgf@process\csname pgf@sh@sa@#3\endcsname{%
\pgf@sh@reanchor{#1}{#2}%
}%
\edef\pgf@node@name{#3}%
\ifpgflatenodepositioning%
\pgf@shapes@late@pos@begin%
\fi%
\ifx\pgf@node@name\pgfutil@empty%
\else%
\expandafter\xdef\csname pgf@sh@ns@\pgf@node@name\endcsname{#1}%
\edef\pgf@sh@@temp{\noexpand\gdef\expandafter\noexpand\csname pgf@sh@np@\pgf@node@name\endcsname}%
\expandafter\pgf@sh@@temp\expandafter{\pgf@sh@savedpoints}%
\edef\pgf@sh@@temp{\noexpand\gdef\expandafter\noexpand\csname pgf@sh@ma@\pgf@node@name\endcsname}%
\expandafter\pgf@sh@@temp\expandafter{\pgf@sh@savedmacros}%
\pgfgettransform\pgf@temp%
\expandafter\xdef\csname pgf@sh@nt@\pgf@node@name\endcsname{\pgf@temp}%
\expandafter\xdef\csname pgf@sh@pi@\pgf@node@name\endcsname{\pgfpictureid}%
\fi%
\pgfutil@ifundefined{pgf@sh@bbg@#1}{}
{{\pgfusetype{.behind background}\pgfidscope\pgfscope\csname pgf@sh@bbg@#1\endcsname\endpgfscope\endpgfidscope}}%
\pgfutil@ifundefined{pgf@sh@bg@#1}{%
\global\let\pgfpositionnodelaterpath\pgfutil@empty%
}%
{\pgfpushtype%
\pgfusetype{.background}\csname pgf@sh@bg@#1\endcsname%
\ifpgflatenodepositioning%
\pgfsyssoftpath@getcurrentpath\pgfpositionnodelaterpath%
\pgfprocessround{\pgfpositionnodelaterpath}{\pgfpositionnodelaterpath}%
\global\let\pgfpositionnodelaterpath\pgfpositionnodelaterpath%
\fi%
#4\pgfpoptype}%
\pgfutil@ifundefined{pgf@sh@fbg@#1}{}
{{\pgfusetype{.before background}\pgfidscope\pgfscope\csname pgf@sh@fbg@#1\endcsname\endpgfscope\endpgfidscope}}%
{%
\expandafter\pgfutil@for\expandafter\pgf@shape@com\expandafter:\expandafter=\csname pgf@sh@boxes@#1\endcsname\do{%
{%
\pgfusetype{.\pgf@shape@com}%
\pgftransformshift{\pgf@sh@reanchor{#1}{\pgf@shape@com}}%
\pgfapproximatenonlineartransformation%
\expandafter\pgfqboxsynced\expandafter{\csname pgfnodepart\pgf@shape@com box\endcsname}%
}%
}%
}%
\pgfutil@ifundefined{pgf@sh@bfg@#1}{}%
{{\pgfusetype{.behind foreground}\pgfidscope\pgfscope\csname pgf@sh@bfg@#1\endcsname\endpgfscope\endpgfidscope}}%
\pgfutil@ifundefined{pgf@sh@fg@#1}{}%
{\pgfpushtype\pgfusetype{.foreground}\csname pgf@sh@fg@#1\endcsname#4\pgfpoptype}%
\pgfutil@ifundefined{pgf@sh@ffg@#1}{}%
{{\pgfusetype{.before foreground}\pgfidscope\pgfscope\csname pgf@sh@ffg@#1\endcsname\endpgfscope\endpgfidscope}}%
\ifpgflatenodepositioning%
\pgf@shapes@late@pos@end%
\pgfsys@endscope%
\else%
\expandafter\pgf@nodecallback\expandafter{\pgf@node@name}%
\fi%
}%
}%
}%
\let\pgf@outer@adjust@hook\relax
\def\pgf@shapes@late@pos@begin{%
\edef\pgf@node@name{not yet positionedPGFINTERNAL\pgf@node@name}%
\pgfinterruptboundingbox%
\pgf@relevantforpicturesizetrue%
\setbox\pgfpositionnodelaterbox=\hbox%
\bgroup%
\pgfsys@beginscope%
}%
\def\pgf@shapes@late@pos@end{%
\pgfsys@endscope%
\egroup%
\ifdim\pgf@picminx>\pgf@picmaxx\relax%
\def\pgfpositionnodelaterminx{0.0pt}%
\let\pgfpositionnodelaterminy\pgfpositionnodelaterminx%
\let\pgfpositionnodelatermaxx\pgfpositionnodelaterminx%
\let\pgfpositionnodelatermaxy\pgfpositionnodelaterminx%
\else%
\edef\pgfpositionnodelaterminx{\the\pgf@picminx}%
\edef\pgfpositionnodelaterminy{\the\pgf@picminy}%
\edef\pgfpositionnodelatermaxx{\the\pgf@picmaxx}%
\edef\pgfpositionnodelatermaxy{\the\pgf@picmaxy}%
\fi%
\let\pgfpositionnodelatername=\pgf@node@name%
\pgf@positionnodelater@macro%
\endpgfinterruptboundingbox%
}%
\def\pgf@shift@node#1#2{%
{%
\pgfsettransform{\csname pgf@sh@nt@#1\endcsname}%
\pgf@process{#2}%
\advance\pgf@pt@x by\pgf@x%
\advance\pgf@pt@y by\pgf@y%
\pgfgettransform{\pgf@temp}%
\expandafter\xdef\csname pgf@sh@nt@#1\endcsname{\pgf@temp}%
}%
}%
\def\pgfnode#1#2#3#4#5{%
{%
\setbox\pgfnodeparttextbox=\hbox%
{%
\pgfinterruptpicture%
{#3}%
\endpgfinterruptpicture%
}%
\pgfmultipartnode{#1}{#2}{#4}{#5}%
}
}%
\def\pgfpositionnodelater#1{%
\let\pgf@positionnodelater@macro=#1%
\ifx\pgf@positionnodelater@macro\relax%
\pgflatenodepositioningfalse%
\else%
\pgflatenodepositioningtrue%
\fi%
}%
\newif\ifpgflatenodepositioning
\pgfpositionnodelater{\relax}%
\def\pgfpositionnodelaterbox{0}%
\def\pgfpositionnodenow#1{%
\pgfinterruptpath%
{%
\pgfpointtransformed{#1}%
\edef\pgf@temp@shift{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\pgftransformreset%
\pgftransformshift{\pgf@temp@shift}%
\pgfsys@pictureboxsynced\pgfpositionnodelaterbox%
\pgf@shift@node{\pgfpositionnodelatername}{\pgf@temp@shift}%
\pgfpointtransformed{\pgfqpoint{\pgfpositionnodelaterminx}{\pgfpositionnodelaterminy}}%
\pgf@protocolsizes{\pgf@x}{\pgf@y}
\pgfpointtransformed{\pgfqpoint{\pgfpositionnodelatermaxx}{\pgfpositionnodelatermaxy}}%
\pgf@protocolsizes{\pgf@x}{\pgf@y}
\expandafter\pgfpositionnodenow@rename\pgfpositionnodelatername\relax%
}%
{%
\csname pgf@lns@\pgfpositionnodelatername\endcsname%
\expandafter\global\expandafter\let\csname pgf@lns@\pgfpositionnodelatername\endcsname\relax%
}%
\endpgfinterruptpath%
}%
\def\pgfpositionnodenow@rename not yet positionedPGFINTERNAL#1\relax{%
\pgfnoderename{#1}{not yet positionedPGFINTERNAL#1}
}%
\def\pgffakenode#1{%
\edef\pgf@temp{\ifpgflatenodepositioning not yet positionedPGFINTERNAL\fi#1}%
\expandafter\gdef\csname pgf@sh@ns@\pgf@temp\endcsname{coordinate}%
\expandafter\gdef\csname pgf@sh@np@\pgf@temp\endcsname{\def\centerpoint{\pgfpointorigin}}%
\expandafter\gdef\csname pgf@sh@nt@\pgf@temp\endcsname{{1}{0}{0}{1}{0pt}{0pt}}%
\expandafter\global\expandafter\let\csname pgf@sh@ma@\pgf@temp\endcsname\pgfutil@empty%
\expandafter\xdef\csname pgf@sh@pi@\pgf@temp\endcsname{\pgfpictureid}%
}%
\def\pgfnodepostsetupcode#1#2{%
\ifpgflatenodepositioning%
\expandafter\ifx\csname pgf@lns@not yet positionedPGFINTERNAL#1\endcsname\relax%
\expandafter\gdef\csname pgf@lns@not yet positionedPGFINTERNAL#1\endcsname{#2}%
\else%
\expandafter\pgfutil@g@addto@macro\csname pgf@lns@not yet positionedPGFINTERNAL#1\endcsname{#2}%
\fi%
\fi%
}%
\def\pgfnodealias#1#2{%
\pgf@node@gnamelet{pgf@sh@ns@#1}{pgf@sh@ns@#2}%
\pgf@node@gnamelet{pgf@sh@np@#1}{pgf@sh@np@#2}%
\pgf@node@gnamelet{pgf@sh@nt@#1}{pgf@sh@nt@#2}%
\pgf@node@gnamelet{pgf@sh@pi@#1}{pgf@sh@pi@#2}%
\pgf@node@gnamelet{pgf@sh@ma@#1}{pgf@sh@ma@#2}%
\pgf@nodecallback{#1}%
}%
\def\pgf@node@gnamelet#1#2{%
\expandafter\let\expandafter\pgf@temp\csname #2\endcsname%
\expandafter\global\expandafter\let\csname #1\endcsname=\pgf@temp%
}%
\def\pgfnoderename#1#2{%
\pgfnodealias{#1}{#2}%
\expandafter\global\expandafter\let\csname pgf@sh@ns@#2\endcsname\relax
\expandafter\global\expandafter\let\csname pgf@sh@np@#2\endcsname\relax
\expandafter\global\expandafter\let\csname pgf@sh@nt@#2\endcsname\relax
\expandafter\global\expandafter\let\csname pgf@sh@pi@#2\endcsname\relax
\expandafter\global\expandafter\let\csname pgf@sh@ma@#2\endcsname\relax
}%
\def\pgfcoordinate#1#2{%
\edef\pgf@temp{#1}%
\ifx\pgf@temp\pgfutil@empty%
\else%
\ifpgflatenodepositioning%
{\pgftransformshift{#2}\pgfnode{coordinate}{center}{}{#1}{}}%
\else%
\pgf@process{\pgfpointtransformed{#2}}%
\expandafter\gdef\csname pgf@sh@ns@#1\endcsname{coordinate}%
\expandafter\xdef\csname pgf@sh@np@#1\endcsname{%
\noexpand\def\noexpand\centerpoint{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
}
\expandafter\gdef\csname pgf@sh@nt@#1\endcsname{{1}{0}{0}{1}{0pt}{0pt}}%
\expandafter\global\expandafter\let\csname pgf@sh@ma@#1\endcsname\pgfutil@empty%
\expandafter\xdef\csname pgf@sh@pi@#1\endcsname{\pgfpictureid}%
\fi%
\fi%
}%
\def\pgf@sh@redeferredanchor#1#2{%
\expandafter\gdef\csname pgf@anchor@\pgf@sm@shape@name @#1\endcsname{#2}}%
\def\pgf@sh@resavedanchor#1#2{%
\pgf@process{#2}%
\edef\pgf@sh@marshal{%
\noexpand\pgfutil@g@addto@macro\noexpand\pgf@sh@savedpoints{%
\noexpand\def\noexpand#1{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
}}%
\pgf@sh@marshal%
}%
\def\pgf@sh@resaveddimen#1#2{%
{#2\global\pgf@x=\pgf@x}%
\edef\pgf@sh@marshal{%
\noexpand\pgfutil@g@addto@macro\noexpand\pgf@sh@savedpoints{%
\noexpand\def\noexpand#1{\the\pgf@x}%
}}%
\pgf@sh@marshal%
}%
\def\pgf@sh@resavedmacro#1#2{%
\let#1\pgfutil@empty%
\def\addtosavedmacro##1{%
\expandafter\def\expandafter\pgf@sh@addtomacro@temp\expandafter{#1\noexpand\def\noexpand##1{##1}}%
{\expandafter\pgfutil@toks@\expandafter{\pgf@sh@addtomacro@temp}\expandafter}%
\expandafter\def\expandafter#1\expandafter{\the\pgfutil@toks@}%
}%
#2\relax%
\edef\pgf@sh@marshal{%
\noexpand\pgfutil@g@addto@macro\noexpand\pgf@sh@savedmacros{%
\noexpand\def\noexpand#1{#1}%
}}%
\pgf@sh@marshal%
}%
\def\pgf@sh@reanchor#1#2{%
\pgfutil@ifundefined{pgf@anchor@#1@#2}%
{%
\pgfutil@ifundefined{pgf@anchor@generic@#2}{%
\pgfmathsetcounter{pgf@counta}{#2}%
\csname pgf@anchor@#1@border\endcsname{\pgfqpointpolar{\the\c@pgf@counta}{1pt}}%
}{%
\csname pgf@anchor@generic@#2\endcsname{#1}%
}%
}%
{\csname pgf@anchor@#1@#2\endcsname}%
}%
\def\pgfdeclaregenericanchor#1#2{%
\expandafter\def\csname pgf@anchor@generic@#1\endcsname##1{#2}%
}%
\def\pgfpointanchor#1#2{%
\pgfutil@ifundefined{pgf@sh@ns@#1}
{\pgfutil@ifundefined{pgf@sh@ns@not yet positionedPGFINTERNAL#1}{%
\pgferror{No shape named `#1' is known}}{
}%
\pgfpointorigin}%
{%
\pgf@process{%
\edef\pgfreferencednodename{#1}%
\csname pgf@sh@ma@#1\endcsname%
\csname pgf@sh@np@#1\endcsname
\pgf@sh@reanchor{\csname pgf@sh@ns@#1\endcsname}{#2}%
{%
\pgfsettransform{\csname pgf@sh@nt@#1\endcsname}%
\pgf@pos@transform@glob%
}%
\pgf@shape@interpictureshift{#1}%
\pgftransforminvert%
\pgf@pos@transform@glob%
}%
}%
}%
\def\pgf@shape@interpictureshift#1{%
\expandafter\ifx\csname pgf@sh@pi@#1\endcsname\pgfpictureid%
\else%
\pgfsys@getposition{\csname pgf@sh@pi@#1\endcsname}\pgf@shape@original@pos%
\pgfsys@getposition{\pgfpictureid}\pgf@shape@current@pos%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgfpointorigin\pgf@shape@current@pos}%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\pgf@process{\pgfpointorigin\pgf@shape@original@pos}%
\advance\pgf@xa by\pgf@x%
\advance\pgf@ya by\pgf@y%
\pgf@x=\pgf@xa%
\pgf@y=\pgf@ya%
\fi%
}%
\def\pgfpointshapeborder#1#2{%
\pgfutil@ifundefined{pgf@sh@ns@#1}
{\pgferror{No shape named `#1' is known}%
\pgfpointorigin}%
{%
\pgf@process{%
\edef\pgfreferencednodename{#1}%
\csname pgf@sh@ma@#1\endcsname%
\csname pgf@sh@np@#1\endcsname%
{%
\pgf@process{\pgfpointtransformed{#2}}%
\pgfsettransform{\csname pgf@sh@nt@#1\endcsname}%
\pgftransforminvert%
\pgf@pos@transform@glob%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\csname pgf@anchor@\csname pgf@sh@ns@#1\endcsname @center\endcsname}%
\pgf@process{\pgf@shape@interpictureshift{#1}}%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\pgf@xb=10pt
\ifdim\pgf@xa<1pt\ifdim\pgf@xa>-1pt
\pgf@xb=10\pgf@xa
\fi\fi
\pgf@yb=10pt
\ifdim\pgf@ya<1pt\ifdim\pgf@ya>-1pt
\pgf@yb=10\pgf@ya
\fi\fi
\ifdim\dimexpr\expandafter\Pgf@geT\the\pgf@xb\pgf@xb
+\expandafter\Pgf@geT\the\pgf@yb\pgf@yb\relax<0.04pt
\expandafter\pgfutil@firstoftwo
\else
\expandafter\pgfutil@secondoftwo
\fi
{%
\pgfwarning
{Returning node center instead of a point on node border. Did you
specify a point identical to the center of node
``\pgfreferencednodename''?}%
\pgf@sh@reanchor{\csname pgf@sh@ns@#1\endcsname}{center}%
}
{%
\csname pgf@anchor@\csname pgf@sh@ns@#1\endcsname @border\endcsname
{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
}%
\pgfsettransform{\csname pgf@sh@nt@#1\endcsname}%
\pgf@pos@transform@glob%
\global\pgf@x=\pgf@x%
\global\pgf@y=\pgf@y%
}%
\pgf@shape@interpictureshift{#1}%
\pgftransforminvert%
\pgf@pos@transform@glob%
}%
}%
}%
\def\pgfgetnodeparts#1#2{%
\expandafter\let\expandafter#1\csname pgf@sh@boxes@#2\endcsname%
}%
\long\def\pgfdeclareshape#1#2{%
{%
\def\pgf@sm@shape@name{#1}%
\let\savedanchor=\pgf@sh@savedanchor
\let\saveddimen=\pgf@sh@saveddimen
\let\savedmacro=\pgf@sh@savedmacro%
\let\deferredanchor=\pgf@sh@deferredanchor%
\let\anchor=\pgf@sh@anchor
\let\anchorborder=\pgf@sh@anchorborder
\let\behindbackgroundpath=\pgf@sh@behindbgpath
\let\backgroundpath=\pgf@sh@bgpath
\let\beforebackgroundpath=\pgf@sh@beforebgpath
\let\behindforegroundpath=\pgf@sh@behindfgpath
\let\foregroundpath=\pgf@sh@fgpath
\let\beforeforegroundpath=\pgf@sh@beforefgpath
\let\nodeparts=\pgf@sh@boxes
\let\inheritsavedanchors=\pgf@sh@inheritsavedanchors
\let\inheritanchor=\pgf@sh@inheritanchor
\let\inheritanchorborder=\pgf@sh@inheritanchorborder
\let\inheritbehindbackgroundpath=\pgf@sh@inheritbehindbgpath
\let\inheritbackgroundpath=\pgf@sh@inheritbgpath
\let\inheritbeforebackgroundpath=\pgf@sh@inheritbeforebgpath
\let\inheritbehindforegroundpath=\pgf@sh@inheritbehindfgpath
\let\inheritforegroundpath=\pgf@sh@inheritfgpath
\let\inheritbeforeforegroundpath=\pgf@sh@inheritbeforefgpath
\let\inheritnodeparts=\pgf@sh@inheritboxes
\anchorborder{\csname pgf@anchor@#1@center\endcsname}%
\anchor{text}{\pgfpointorigin}%
\nodeparts{text}%
\expandafter\global\expandafter\let\csname pgf@sh@s@\pgf@sm@shape@name\endcsname=\pgfutil@empty%
#2%
}%
}%
\def\pgf@sh@savedanchor#1#2{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@\pgf@sm@shape@name\endcsname{\pgf@sh@resavedanchor{#1}{#2}}}%
\def\pgf@sh@saveddimen#1#2{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@\pgf@sm@shape@name\endcsname{\pgf@sh@resaveddimen{#1}{#2}}}%
\def\pgf@sh@savedmacro#1#2{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@\pgf@sm@shape@name\endcsname{\pgf@sh@resavedmacro{#1}{#2}}}%
\def\pgf@sh@anchor#1#2{\expandafter\gdef\csname pgf@anchor@\pgf@sm@shape@name @#1\endcsname{#2}}%
\def\pgf@sh@deferredanchor#1#2{%
\expandafter\pgfutil@g@addto@macro
\csname pgf@sh@s@\pgf@sm@shape@name\endcsname{\pgf@sh@redeferredanchor{#1}{#2}}}%
\def\pgf@sh@anchorborder#1{\expandafter\gdef\csname pgf@anchor@\pgf@sm@shape@name @border\endcsname##1{\pgf@process{##1}#1}}%
\long\def\pgf@sh@behindbgpath#1{\expandafter\gdef\csname pgf@sh@bbg@\pgf@sm@shape@name\endcsname{#1}}%
\long\def\pgf@sh@bgpath#1{\expandafter\gdef\csname pgf@sh@bg@\pgf@sm@shape@name\endcsname{#1}}%
\long\def\pgf@sh@beforebgpath#1{\expandafter\gdef\csname pgf@sh@fbg@\pgf@sm@shape@name\endcsname{#1}}%
\long\def\pgf@sh@behindfgpath#1{\expandafter\gdef\csname pgf@sh@bfg@\pgf@sm@shape@name\endcsname{#1}}%
\long\def\pgf@sh@fgpath#1{\expandafter\gdef\csname pgf@sh@fg@\pgf@sm@shape@name\endcsname{#1}}%
\long\def\pgf@sh@beforefgpath#1{\expandafter\gdef\csname pgf@sh@ffg@\pgf@sm@shape@name\endcsname{#1}}%
\def\pgf@sh@boxes#1{\expandafter\gdef\csname pgf@sh@boxes@\pgf@sm@shape@name\endcsname{#1}}%
\def\pgf@sh@inheritsavedanchors[from=#1]{%
\expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@\pgf@sm@shape@name\endcsname{\csname pgf@sh@s@#1\endcsname}}%
\def\pgf@sh@inheritanchor[from=#1]#2{%
\edef\pgf@marshal{\global\let\expandafter\noexpand\csname
pgf@anchor@\pgf@sm@shape@name @#2\endcsname=\expandafter\noexpand\csname
pgf@anchor@#1@#2\endcsname}%
\pgf@marshal%
}%
\def\pgf@sh@inheritanchorborder[from=#1]{%
\edef\pgf@marshal{\global\let\expandafter\noexpand\csname
pgf@anchor@\pgf@sm@shape@name @border\endcsname=\expandafter\noexpand\csname
pgf@anchor@#1@border\endcsname}%
\pgf@marshal%
}%
\def\pgf@sh@inheritor#1#2{%
\edef\pgf@marshal{\global\let\expandafter\noexpand\csname
pgf@sh@#1@\pgf@sm@shape@name\endcsname=\expandafter\noexpand\csname
pgf@sh@#1@#2\endcsname}%
\pgf@marshal%
}%
\def\pgf@sh@inheritbehindbgpath[from=#1]{\pgf@sh@inheritor{bbg}{#1}}%
\def\pgf@sh@inheritbgpath[from=#1]{\pgf@sh@inheritor{bg}{#1}}%
\def\pgf@sh@inheritbeforebgpath[from=#1]{\pgf@sh@inheritor{fbg}{#1}}%
\def\pgf@sh@inheritbehindfgpath[from=#1]{\pgf@sh@inheritor{bfg}{#1}}%
\def\pgf@sh@inheritfgpath[from=#1]{\pgf@sh@inheritor{fg}{#1}}%
\def\pgf@sh@inheritbeforefgpath[from=#1]{\pgf@sh@inheritor{ffg}{#1}}%
\def\pgf@sh@inheritboxes[from=#1]{\pgf@sh@inheritor{boxes}{#1}}%
\pgfdeclareshape{coordinate}
{%
\savedanchor\centerpoint{%
\pgf@x=.5\wd\pgfnodeparttextbox%
\pgf@y=.5\ht\pgfnodeparttextbox%
\advance\pgf@y by -.5\dp\pgfnodeparttextbox%
}%
\anchor{center}{\centerpoint}%
\anchor{north}{\centerpoint}%
\anchor{north west}{\centerpoint}%
\anchor{north east}{\centerpoint}%
\anchor{west}{\centerpoint}%
\anchor{east}{\centerpoint}%
\anchor{mid}{\centerpoint}%
\anchor{mid west}{\centerpoint}%
\anchor{mid east}{\centerpoint}%
\anchor{base}{\centerpoint}%
\anchor{base west}{\centerpoint}%
\anchor{base east}{\centerpoint}%
\anchor{south}{\centerpoint}%
\anchor{south west}{\centerpoint}%
\anchor{south east}{\centerpoint}%
\anchorborder{\centerpoint}%
\nodeparts{}%
}%
\pgfset{
inner xsep/.initial =.3333em,
inner ysep/.initial =.3333em,
inner sep/.style ={/pgf/inner xsep={#1},/pgf/inner ysep={#1}},
outer xsep/.initial =.5\pgflinewidth,
outer ysep/.initial =.5\pgflinewidth,
outer sep/.code =\pgf@handle@outer@sep{#1},
minimum width/.initial =1pt,
minimum height/.initial =1pt,
minimum size/.style ={/pgf/minimum width={#1},/pgf/minimum height={#1}},
}%
\def\pgf@handle@outer@sep#1{%
\def\pgf@temp{#1}%
\ifx\pgf@temp\pgf@auto@text%
\def\pgf@outer@adjust@hook{%
\pgftransformationadjustments%
\pgfkeyssetvalue{/pgf/outer xsep}{.5\pgflinewidth*\pgfhorizontaltransformationadjustment}%
\pgfkeyssetvalue{/pgf/outer ysep}{.5\pgflinewidth*\pgfverticaltransformationadjustment}%
\pgf@outer@auto@adjust@hook%
}%
\else%
\pgfkeyssetvalue{/pgf/outer xsep}{#1}%
\pgfkeyssetvalue{/pgf/outer ysep}{#1}%
\fi%
}%
\def\pgf@auto@text{auto}%
\let\pgf@outer@auto@adjust@hook\relax
\newif\ifpgfshapeborderusesincircle
\pgfkeys{/pgf/shape border uses incircle/.is if=pgfshapeborderusesincircle}%
\pgfkeys{/pgf/shape border rotate/.initial=0}%
\pgfdeclareshape{rectangle}
{%
\savedanchor\northeast{%
\pgf@x=\the\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x by 2\pgf@xc%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@x<\pgf@xb%
\pgf@x=\pgf@xb%
\fi%
\pgf@x=.5\pgf@x%
\advance\pgf@x by.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\advance\pgf@x by\pgf@xa%
\pgf@y=\ht\pgfnodeparttextbox%
\advance\pgf@y by\dp\pgfnodeparttextbox%
\pgfmathsetlength\pgf@yc{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y by 2\pgf@yc%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@y<\pgf@yb%
\pgf@y=\pgf@yb%
\fi%
\pgf@y=.5\pgf@y%
\advance\pgf@y by-.5\dp\pgfnodeparttextbox%
\advance\pgf@y by.5\ht\pgfnodeparttextbox%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\advance\pgf@y by\pgf@ya%
}%
\savedanchor\southwest{%
\pgf@x=\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@x by 2\pgf@xc%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}%
\ifdim\pgf@x<\pgf@xb%
\pgf@x=\pgf@xb%
\fi%
\pgf@x=-.5\pgf@x%
\advance\pgf@x by.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}%
\advance\pgf@x by-\pgf@xa%
\pgf@y=\ht\pgfnodeparttextbox%
\advance\pgf@y by\dp\pgfnodeparttextbox%
\pgfmathsetlength\pgf@yc{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@y by 2\pgf@yc%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@y<\pgf@yb%
\pgf@y=\pgf@yb%
\fi%
\pgf@y=-.5\pgf@y%
\advance\pgf@y by-.5\dp\pgfnodeparttextbox%
\advance\pgf@y by.5\ht\pgfnodeparttextbox%
\pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}%
\advance\pgf@y by-\pgf@ya%
}%
\anchor{center}{
\pgf@process{\northeast}%
\pgf@xa=.5\pgf@x%
\pgf@ya=.5\pgf@y%
\pgf@process{\southwest}%
\pgf@x=.5\pgf@x%
\pgf@y=.5\pgf@y%
\advance\pgf@x by \pgf@xa%
\advance\pgf@y by \pgf@ya%
}%
\anchor{mid}{\pgf@anchor@rectangle@center\pgfmathsetlength\pgf@y{.5ex}}%
\anchor{base}{\pgf@anchor@rectangle@center\pgf@y=0pt}%
\anchor{north}{
\pgf@process{\southwest}%
\pgf@xa=.5\pgf@x%
\pgf@process{\northeast}%
\pgf@x=.5\pgf@x%
\advance\pgf@x by \pgf@xa%
}%
\anchor{south}{
\pgf@process{\northeast}%
\pgf@xa=.5\pgf@x%
\pgf@process{\southwest}%
\pgf@x=.5\pgf@x%
\advance\pgf@x by \pgf@xa%
}%
\anchor{west}{
\pgf@process{\northeast}%
\pgf@ya=.5\pgf@y%
\pgf@process{\southwest}%
\pgf@y=.5\pgf@y%
\advance\pgf@y by \pgf@ya%
}%
\anchor{mid west}{\southwest\pgfmathsetlength\pgf@y{.5ex}}%
\anchor{base west}{\southwest\pgf@y=0pt}%
\anchor{north west}{
\southwest
\pgf@xa=\pgf@x
\northeast
\pgf@x=\pgf@xa}%
\anchor{south west}{\southwest}%
\anchor{east}{%
\pgf@process{\southwest}%
\pgf@ya=.5\pgf@y%
\pgf@process{\northeast}%
\pgf@y=.5\pgf@y%
\advance\pgf@y by \pgf@ya%
}%
\anchor{mid east}{\northeast\pgfmathsetlength\pgf@y{.5ex}}%
\anchor{base east}{\northeast\pgf@y=0pt}%
\anchor{north east}{\northeast}%
\anchor{south east}{
\northeast
\pgf@xa=\pgf@x
\southwest
\pgf@x=\pgf@xa
}%
\anchorborder{%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\southwest%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\northeast%
\advance\pgf@x by-\pgf@xa%
\advance\pgf@y by-\pgf@ya%
\pgf@xc=.5\pgf@x%
\pgf@yc=.5\pgf@y%
\advance\pgf@xa by\pgf@xc%
\advance\pgf@ya by\pgf@yc%
\edef\pgf@marshal{%
\noexpand\pgfpointborderrectangle
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}
{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}%
}%
\pgf@process{\pgf@marshal}%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
}%
\backgroundpath{
\pgfpathrectanglecorners
{\pgfpointadd{\southwest}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}
{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfkeysvalueof{/pgf/outer xsep}}{\pgfkeysvalueof{/pgf/outer ysep}}}}}
}%
}%
\expandafter\def\csname pgf@sh@ns@current subpath start\endcsname{coordinate}%
\expandafter\def\csname pgf@sh@np@current subpath start\endcsname{%
\def\centerpoint{\expandafter\pgfqpoint\pgfsyssoftpath@lastmoveto}%
}%
\expandafter\def\csname pgf@sh@nt@current subpath start\endcsname{{1}{0}{0}{1}{0pt}{0pt}}%
\expandafter\def\csname pgf@sh@pi@current subpath start\endcsname{\pgfpictureid}%
\expandafter\def\csname pgf@sh@ns@current bounding box\endcsname{rectangle}%
\expandafter\def\csname pgf@sh@np@current bounding box\endcsname{%
\def\southwest{\pgfqpoint{\pgf@picminx}{\pgf@picminy}}%
\def\northeast{\pgfqpoint{\pgf@picmaxx}{\pgf@picmaxy}}%
}%
\expandafter\def\csname pgf@sh@nt@current bounding box\endcsname{{1}{0}{0}{1}{0pt}{0pt}}%
\expandafter\def\csname pgf@sh@pi@current bounding box\endcsname{\pgfpictureid}%
\expandafter\def\csname pgf@sh@ns@current path bounding box\endcsname{rectangle}%
\expandafter\def\csname pgf@sh@np@current path bounding box\endcsname{%
\def\southwest{\pgfqpoint{\pgf@pathminx}{\pgf@pathminy}}%
\def\northeast{\pgfqpoint{\pgf@pathmaxx}{\pgf@pathmaxy}}%
}%
\expandafter\def\csname pgf@sh@nt@current path bounding box\endcsname{{1}{0}{0}{1}{0pt}{0pt}}%
\expandafter\def\csname pgf@sh@pi@current path bounding box\endcsname{\pgfpictureid}%
\expandafter\def\csname pgf@sh@ns@current page\endcsname{rectangle}%
\expandafter\def\csname pgf@sh@np@current page\endcsname{%
\def\southwest{\pgfpointorigin}%
\def\northeast{\pgfpoint{\pgfsys@thepagewidth}{\pgfsys@thepageheight}}%
}%
\expandafter\def\csname pgf@sh@nt@current page\endcsname{{1}{0}{0}{1}{0pt}{0pt}}%
\expandafter\def\csname pgf@sh@pi@current page\endcsname{pgfpageorigin}%
\pgfkeys{/pgf/local bounding box/.code={%
\expandafter\gdef\csname pgf@sh@ns@#1\endcsname{rectangle}
\expandafter\gdef\csname pgf@sh@np@#1\endcsname{%
\def\southwest{\pgfqpoint{\csname pgf@lbb@minx@#1\endcsname}{\csname pgf@lbb@miny@#1\endcsname}}%
\def\northeast{\pgfqpoint{\csname pgf@lbb@maxx@#1\endcsname}{\csname pgf@lbb@maxy@#1\endcsname}}%
}
\expandafter\gdef\csname pgf@sh@nt@#1\endcsname{{1}{0}{0}{1}{0pt}{0pt}}
\expandafter\gdef\csname pgf@sh@pi@#1\endcsname{\pgfpictureid}
\expandafter\gdef\csname pgf@lbb@maxx@#1\endcsname{-16000pt}%
\expandafter\gdef\csname pgf@lbb@minx@#1\endcsname{16000pt}%
\expandafter\gdef\csname pgf@lbb@maxy@#1\endcsname{-16000pt}%
\expandafter\gdef\csname pgf@lbb@miny@#1\endcsname{16000pt}%
\pgf@size@hookedtrue%
\expandafter\def\expandafter\pgf@path@size@hook\expandafter{\pgf@path@size@hook\pgf@lbb@do{#1}}
},
/pgf/freeze local bounding box/.code={%
{%
\csname pgf@sh@np@#1\endcsname%
\southwest%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\northeast%
\expandafter\xdef\csname pgf@sh@np@#1\endcsname{%
\noexpand\def\noexpand\southwest{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}%
\noexpand\def\noexpand\northeast{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
}%
}%
},
}%
\def\pgf@lbb@do#1{%
\ifdim\pgf@size@hook@x<\csname pgf@lbb@minx@#1\endcsname\expandafter\xdef\csname pgf@lbb@minx@#1\endcsname{\the\pgf@size@hook@x}\fi%
\ifdim\pgf@size@hook@x>\csname pgf@lbb@maxx@#1\endcsname\expandafter\xdef\csname pgf@lbb@maxx@#1\endcsname{\the\pgf@size@hook@x}\fi%
\ifdim\pgf@size@hook@y<\csname pgf@lbb@miny@#1\endcsname\expandafter\xdef\csname pgf@lbb@miny@#1\endcsname{\the\pgf@size@hook@y}\fi%
\ifdim\pgf@size@hook@y>\csname pgf@lbb@maxy@#1\endcsname\expandafter\xdef\csname pgf@lbb@maxy@#1\endcsname{\the\pgf@size@hook@y}\fi%
}%
\pgfdeclareshape{circle}
{%
\savedanchor\centerpoint{%
\pgf@x=.5\wd\pgfnodeparttextbox%
\pgf@y=.5\ht\pgfnodeparttextbox%
\advance\pgf@y by-.5\dp\pgfnodeparttextbox%
}%
\saveddimen\radius{%
\pgf@ya=.5\ht\pgfnodeparttextbox%
\advance\pgf@ya by.5\dp\pgfnodeparttextbox%
\pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/inner ysep}}%
\advance\pgf@ya by\pgf@yb%
\pgf@xa=.5\wd\pgfnodeparttextbox%
\pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/inner xsep}}%
\advance\pgf@xa by\pgf@xb%
\pgf@process{\pgfpointnormalised{\pgfqpoint{\pgf@xa}{\pgf@ya}}}%
\ifdim\pgf@x>\pgf@y%
\c@pgf@counta=\pgf@x%
\ifnum\c@pgf@counta=0\relax%
\else%
\divide\c@pgf@counta by 255\relax%
\pgf@xa=16\pgf@xa\relax%
\divide\pgf@xa by\c@pgf@counta%
\pgf@xa=16\pgf@xa\relax%
\fi%
\else%
\c@pgf@counta=\pgf@y%
\ifnum\c@pgf@counta=0\relax%
\else%
\divide\c@pgf@counta by 255\relax%
\pgf@ya=16\pgf@ya\relax%
\divide\pgf@ya by\c@pgf@counta%
\pgf@xa=16\pgf@ya\relax%
\fi%
\fi%
\pgf@x=\pgf@xa%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/minimum width}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/minimum height}}%
\ifdim\pgf@x<.5\pgf@xb%
\pgf@x=.5\pgf@xb%
\fi%
\ifdim\pgf@x<.5\pgf@yb%
\pgf@x=.5\pgf@yb%
\fi%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xb<\pgf@yb%
\advance\pgf@x by\pgf@yb%
\else%
\advance\pgf@x by\pgf@xb%
\fi%
}%
\anchor{center}{\centerpoint}%
\anchor{mid}{\centerpoint\pgfmathsetlength\pgf@y{.5ex}}%
\anchor{base}{\centerpoint\pgf@y=0pt}%
\anchor{north}{\centerpoint\advance\pgf@y by\radius}%
\anchor{south}{\centerpoint\advance\pgf@y by-\radius}%
\anchor{west}{\centerpoint\advance\pgf@x by-\radius}%
\anchor{east}{\centerpoint\advance\pgf@x by\radius}%
\anchor{mid west}{\centerpoint\advance\pgf@x by-\radius\pgfmathsetlength\pgf@y{.5ex}}%
\anchor{mid east}{\centerpoint\advance\pgf@x by\radius\pgfmathsetlength\pgf@y{.5ex}}%
\anchor{base west}{\centerpoint\advance\pgf@x by-\radius\pgf@y=0pt}%
\anchor{base east}{\centerpoint\advance\pgf@x by\radius\pgf@y=0pt}%
\anchor{north west}{
\centerpoint
\pgf@xa=\radius
\advance\pgf@x by-0.707107\pgf@xa
\advance\pgf@y by0.707107\pgf@xa
}%
\anchor{south west}{
\centerpoint
\pgf@xa=\radius
\advance\pgf@x by-0.707107\pgf@xa
\advance\pgf@y by-0.707107\pgf@xa
}%
\anchor{north east}{
\centerpoint
\pgf@xa=\radius
\advance\pgf@x by0.707107\pgf@xa
\advance\pgf@y by0.707107\pgf@xa
}%
\anchor{south east}{
\centerpoint
\pgf@xa=\radius
\advance\pgf@x by0.707107\pgf@xa
\advance\pgf@y by-0.707107\pgf@xa
}%
\anchorborder{%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\edef\pgf@marshal{%
\noexpand\pgfpointborderellipse
{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}
{\noexpand\pgfqpoint{\radius}{\radius}}%
}%
\pgf@marshal%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\centerpoint%
\advance\pgf@x by\pgf@xa%
\advance\pgf@y by\pgf@ya%
}%
\backgroundpath{%
\pgfutil@tempdima=\radius%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\ifdim\pgf@xb<\pgf@yb%
\advance\pgfutil@tempdima by-\pgf@yb%
\else%
\advance\pgfutil@tempdima by-\pgf@xb%
\fi%
\pgfpathcircle{\centerpoint}{\pgfutil@tempdima}%
}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmoduleshapes.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulesnakes.code.tex ====
\ProvidesFileRCS{pgfmodulesnakes.code.tex}
\pgfwarning{Snakes have been superseded by decorations. Use the module decorations instead of snakes}
\usepgfmodule{decorations}%
\endinput
\newdimen\pgfsnakeremainingdistance
\newdimen\pgfsnakecompleteddistance
\long\def\pgfdeclaresnake#1#2#3{%
\def\pgf@snake@name{#1}%
\pgfutil@namedef{pgf@snake@@#1@initial}{#2}%
\let\pgf@orig@state=\state%
\let\state=\pgf@snake@state
#3
\let\state=\pgf@orig@state%
}%
\def\pgfsetsnakesegmenttransformation#1{\def\pgf@snakeadditionaltransform{#1}}%
\pgfsetsnakesegmenttransformation{}%
\def\pgf@snake@state#1{\pgfutil@ifnextchar[{\pgf@@snake@start#1}{\pgf@@snake@start#1[]}}%
\def\pgf@@snake@start#1[#2]#3{%
\pgfutil@namedef{pgf@snake@@\pgf@snake@name @#1@options}{#2}%
\pgfutil@namedef{pgf@snake@@\pgf@snake@name @#1@code}{#3}%
}%
\def\pgfpathsnakesto#1#2{%
\begingroup%
\pgfpointtransformed{#2}%
\advance\pgf@x by-\pgf@path@lastx%
\advance\pgf@y by-\pgf@path@lasty%
\edef\pgf@marshal{%
\noexpand\pgfmathanglebetweenpoints{\noexpand\pgfpointorigin}{%
\noexpand\pgf@x\the\pgf@x\noexpand\pgf@y\the\pgf@y}%
}%
\pgf@marshal%
\let\pgfsnakeangle\pgfmathresult%
\pgfmathveclen@{\pgfmath@tonumber{\pgf@x}}{\pgfmath@tonumber{\pgf@y}}%
\pgfsnakeremainingdistance\pgfmathresult pt\relax%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\pgfpointnormalised{}}%
\edef\pgf@list{#1}%
\pgfsnakecompleteddistance=0pt%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgfutil@for\pgf@temp:=\pgf@list\do{%
\ifx\pgf@temp\pgfutil@empty%
\else%
\expandafter\pgf@snake@invoke\pgf@temp%
\fi%
}%
\endgroup%
}%
\def\pgf@snake@invoke#1#2{%
\pgfmathsetlength\pgf@xa{#2}%
{%
\edef\pgf@marshal{\noexpand\pgfpathsnakealongvector{#1}{\the\pgf@xa}{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}}%
\pgf@marshal%
}%
\advance\pgfsnakecompleteddistance by\pgf@xa%
\advance\pgfsnakeremainingdistance by-\pgf@xa%
}%
\def\pgfpathsnaketo#1#2{\pgfpathsnakesto{{#1}{\pgfsnakeremainingdistance}}{#2}}%
\def\pgfpathsnakealongvector#1#2#3{%
\pgfutil@ifundefined{pgf@snake@@#1@initial}{\pgferror{Undefined snake ``#1''}}
{
\begingroup%
\pgftransformreset%
\pgf@pt@x=\pgf@path@lastx%
\pgf@pt@y=\pgf@path@lasty%
\pgf@process{#3}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@xb=-\pgf@y%
\pgf@yb=\pgf@x%
\pgftransformcm
{\pgf@sys@tonumber{\pgf@xa}}{\pgf@sys@tonumber{\pgf@ya}}
{\pgf@sys@tonumber{\pgf@xb}}{\pgf@sys@tonumber{\pgf@yb}}
{\pgfpointorigin}%
\expandafter\let\expandafter\pgf@snake@current@state\expandafter=\csname pgf@snake@@#1@initial\endcsname%
\def\pgf@snake@name{#1}%
\pgfsnakecompleteddistance=0pt%
\pgfmathsetlength\pgfsnakeremainingdistance{#2}%
\pgf@snake@run%
{%
\pgftransformxshift{\pgfsnakecompleteddistance}%
\pgf@snakeadditionaltransform%
\csname pgf@snake@@#1@final@code\endcsname%
}%
\endgroup%
}%
}%
\def\pgf@final@text{final}%
\def\pgf@snake@run{%
\let\pgf@snake@next=\pgf@snake@do@state%
\ifx\pgf@snake@current@state\pgf@final@text%
\let\pgf@snake@next=\relax%
\fi%
\pgf@snake@next%
}%
\def\pgf@snake@do@state{%
\let\pgf@snake@next=\relax%
\let\pgf@snake@next@state=\pgf@snake@current@state%
\expandafter\expandafter\expandafter\pgf@snakes@setter
\expandafter\expandafter\expandafter{\csname pgf@snake@@\pgf@snake@name @\pgf@snake@current@state @options\endcsname}%
\ifx\pgf@snake@next\relax%
\let\pgf@snake@next=\pgf@snake@do@code%
\fi%
\pgf@snake@next%
}%
\def\pgf@snakes@setter{%
\pgfqkeys{/pgf/snakes}%
}%
\def\pgf@snake@do@code{%
{%
\pgftransformxshift{\pgfsnakecompleteddistance}%
\pgf@snakeadditionaltransform%
\csname pgf@snake@@\pgf@snake@name @\pgf@snake@current@state @code\endcsname%
}%
\pgfmathsetlength{\pgf@xa}{\pgf@snake@width}%
\advance\pgfsnakeremainingdistance by-\pgf@xa%
\advance\pgfsnakecompleteddistance by\pgf@xa%
\let\pgf@snake@current@state=\pgf@snake@next@state%
\pgf@snake@run%
}%
\pgfkeys{
/pgf/snakes/width/.code=\def\pgf@snake@width{#1}\pgf@snake@switch@if#1 to final\pgf@stop,%
/pgf/snakes/switch if less than/.code=\pgf@snake@switch@if#1\pgf@stop,%
/pgf/snakes/next state/.store in=\pgf@snake@next@state%
}%
\def\pgf@snake@switch@if#1to #2\pgf@stop{%
\ifx\pgf@snake@next\relax%
\pgfmathsetlength\pgf@x{#1}%
\ifdim\pgfsnakeremainingdistance<\pgf@x%
\def\pgf@snake@current@state{#2}%
\let\pgf@snake@next=\pgf@snake@run%
\fi%
\fi%
}%
\pgfdeclaresnake{lineto}{final}
{%
\state{final}
{ \pgfpathlineto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} }
}%
\pgfdeclaresnake{moveto}{final}
{%
\state{final}
{ \pgfpathmoveto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} }
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulesnakes.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulesorting.code.tex ====
\ProvidesFileRCS{pgfmodulesorting.code.tex}
\newcount\pgfsortingbuckets
\def\pgfsortinginit#1{
\pgfsortingbuckets#1\relax%
\c@pgf@counta=0\relax
\pgfutil@loop
\ifnum\c@pgf@counta<\c@pgf@countb\relax%
\expandafter\global\expandafter\let\csname pgf@sort@\the\c@pgf@counta\endcsname\pgfutil@empty%
\advance\c@pgf@counta by1\relax%
\pgfutil@repeat
}%
\def\pgfsortinginsert#1#2{
\expandafter\let\expandafter\pgf@temp\csname pgf@lib@sort@#1\endcsname%
\expandafter\def\expandafter\pgf@temp\expandafter{\pgf@temp#2}%
\expandafter\global\expandafter\let\csname pgf@lib@sort@\the\c@pgf@counta\endcsname\pgf@temp%
}%
\def\pgfsortingexecute{
\c@pgf@countb=\pgfoovalueof{buckets}\relax
\c@pgf@counta=0\relax
\pgfutil@loop
\ifnum\c@pgf@counta<\c@pgf@countb\relax%
\csname pgf@lib@sort@\the\c@pgf@counta\endcsname%
\advance\c@pgf@counta by1\relax%
\pgfutil@repeat
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/modules/pgfmodulesorting.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/pgf.revision.tex ====
\def\pgfrevision{3.1.10}
\def\pgfversion{3.1.10}
\def\pgfrevisiondate{2023-01-15}
\def\pgfversiondate{2023-01-15}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/pgf.revision.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/systemlayer/pgfsys.code.tex ====
\ProvidesPackageRCS{pgfsys.code.tex}
\ifdefined\pgfkeysloaded\else
\input pgfkeys.code.tex
\fi
\pgfkeys{/pgf/.is family}
\def\pgfset{\pgfqkeys{/pgf}}
\newif\ifpgfpicture
{\catcode`\p=12\catcode`\t=12\gdef\Pgf@geT#1pt{#1}}
\def\pgf@sys@tonumber#1{\expandafter\Pgf@geT\the#1}
\def\pgf@sys@bp@correct#1{#1=0.99627#1}
\def\pgf@sys@bp#1{%
{%
\pgf@x=#1\relax%
\pgf@x=0.99627\pgf@x%
\edef\temp{\expandafter\Pgf@geT\the\pgf@x\space}%
\pgfutil@toks@\expandafter\expandafter\expandafter{\expandafter\pgfsysprotocol@currentprotocol\temp}%
\xdef\pgfsysprotocol@currentprotocol{\the\pgfutil@toks@}%
}%
}
\def\pgf@sys@pt#1{%
{%
\pgf@x=#1\relax%
\edef\temp{\expandafter\Pgf@geT\the\pgf@x\space}%
\pgfutil@toks@\expandafter\expandafter\expandafter{\expandafter\pgfsysprotocol@currentprotocol\temp}%
\xdef\pgfsysprotocol@currentprotocol{\the\pgfutil@toks@}%
}%
}
\newdimen\pgf@x
\newdimen\pgf@y
\newdimen\pgf@xa
\newdimen\pgf@ya
\newdimen\pgf@xb
\newdimen\pgf@yb
\newdimen\pgf@xc
\newdimen\pgf@yc
\newdimen\pgf@xd
\newdimen\pgf@yd
\newwrite\w@pgf@writea
\newread\r@pgf@reada
\let\pgfutil@inputcheck=\r@pgf@reada
\newcount\c@pgf@counta
\newcount\c@pgf@countb
\newcount\c@pgf@countc
\newcount\c@pgf@countd
\newtoks\t@pgf@toka
\newtoks\t@pgf@tokb
\newtoks\t@pgf@tokc
\let\pgfmath@x\pgf@x
\let\pgfmath@xa\pgf@xa
\let\pgfmath@xb\pgf@xb
\let\pgfmath@xc\pgf@xc
\let\pgfmath@y\pgf@y
\let\pgfmath@ya\pgf@ya
\let\pgfmath@yb\pgf@yb
\let\pgfmath@yc\pgf@yc
\let\c@pgfmath@counta\c@pgf@counta
\let\c@pgfmath@countb\c@pgf@countb
\let\c@pgfmath@countc\c@pgf@countc
\let\c@pgfmath@countd\c@pgf@countd
\def\pgf@sys@fail#1{%
\expandafter\ifx\csname pgf@sys@fail@#1\endcsname\pgfutil@empty%
\else%
\expandafter\global\expandafter\let\csname pgf@sys@fail@#1\endcsname=\pgfutil@empty%
\pgfwarning{Your graphic driver \pgfsysdriver\space does not support #1. This warning is given only once}%
\fi%
}
\def\pgfsys@invoke{\pgf@sys@fail{invoking specials}}
\def\pgfsys@outerinvoke{\pgfsys@invoke}
\def\pgfsys@moveto#1#2{\pgf@sys@fail{path constructions}}
\def\pgfsys@lineto#1#2{\pgf@sys@fail{path constructions}}
\def\pgfsys@curveto#1#2#3#4#5#6{\pgf@sys@fail{path constructions}}
\def\pgfsys@rect#1#2#3#4{\pgf@sys@fail{path constructions}}
\def\pgfsys@closepath{\pgf@sys@fail{path constructions}}
\def\pgfsys@stroke{\pgf@sys@fail{path usage}}
\def\pgfsys@fill{\pgf@sys@fail{path usage}}
\def\pgfsys@fillstroke{\pgf@sys@fail{path usage}}
\def\pgfsys@clipnext{\pgf@sys@fail{path usage}}
\def\pgfsys@discardpath{\pgf@sys@fail{path usage}}
\def\pgfsys@closestroke{\pgfsys@closepath\pgfsys@stroke}
\newif\ifpgfsys@eorule
\def\pgfsys@setlinewidth#1{\pgf@sys@fail{setting the line width}}
\def\pgfsys@buttcap{\pgf@sys@fail{setting the line cap}}
\def\pgfsys@roundcap{\pgf@sys@fail{setting the line cap}}
\def\pgfsys@rectcap{\pgf@sys@fail{setting the line cap}}
\def\pgfsys@miterjoin{\pgf@sys@fail{setting the line join}}
\def\pgfsys@setmiterlimit#1{\pgf@sys@fail{setting the line cap}}
\def\pgfsys@roundjoin{\pgf@sys@fail{setting the line cap}}
\def\pgfsys@beveljoin{\pgf@sys@fail{setting the line cap}}
\def\pgfsys@setdash#1#2{\pgf@sys@fail{setting the dashing pattern}}
\def\pgfsys@color@rgb@stroke#1#2#3{\pgf@sys@fail{color}}
\def\pgfsys@color@rgb@fill#1#2#3{\pgf@sys@fail{color}}
\def\pgfsys@color@rgb#1#2#3{\pgfsys@color@rgb@stroke{#1}{#2}{#3}\pgfsys@color@rgb@fill{#1}{#2}{#3}}
\def\pgfsys@color@cmyk@stroke#1#2#3#4{\pgf@sys@fail{color}}
\def\pgfsys@color@cmyk@fill#1#2#3#4{\pgf@sys@fail{color}}
\def\pgfsys@color@cmyk#1#2#3#4{\pgfsys@color@cmyk@stroke{#1}{#2}{#3}{#4}\pgfsys@color@cmyk@fill{#1}{#2}{#3}{#4}}
\def\pgfsys@color@cmy@stroke#1#2#3{\pgf@sys@fail{color}}
\def\pgfsys@color@cmy@fill#1#2#3{\pgf@sys@fail{color}}
\def\pgfsys@color@cmy#1#2#3{\pgfsys@color@cmy@stroke{#1}{#2}{#3}\pgfsys@color@cmy@fill{#1}{#2}{#3}}
\def\pgfsys@color@gray@stroke#1{\pgf@sys@fail{color}}
\def\pgfsys@color@gray@fill#1{\pgf@sys@fail{color}}
\def\pgfsys@color@gray#1{\pgfsys@color@gray@stroke{#1}\pgfsys@color@gray@fill{#1}}
\newif\ifpgfsys@color@reset@inorder
\pgfsys@color@reset@inordertrue
\def\pgfsys@color@reset{}
\def\pgfsys@color@unstacked#1{}
\def\pgfsys@text@to@black@hook{}
\def\pgfsys@transformcm#1#2#3#4#5#6{\pgf@sys@fail{transformations}}
\def\pgfsys@transformshift#1#2{\pgfsys@transformcm{1}{0}{0}{1}{#1}{#2}}
\def\pgfsys@transformxyscale#1#2{\pgfsys@transformcm{#1}{0}{0}{#2}{0bp}{0bp}}
\def\pgfsys@viewboxmeet#1#2#3#4#5#6#7#8{\pgfsys@beginscope\pgf@sys@default@viewbox@impl{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{<}}
\def\pgfsys@viewboxslice#1#2#3#4#5#6#7#8{\pgfsys@beginscope\pgf@sys@default@viewbox@impl{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{>}}
\def\pgfsys@endviewbox{\pgfsys@endscope}
\def\pgf@sys@default@viewbox@impl#1#2#3#4#5#6#7#8#9{{%
\pgf@x#1%
\pgf@y#2%
\pgf@xa#3%
\pgf@ya#4%
\advance\pgf@xa by-\pgf@x%
\advance\pgf@ya by-\pgf@y%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@xa}{\pgf@sys@tonumber\pgf@ya}%
\let\aspectr\pgfmathresult%
\pgf@xb#5%
\pgf@yb#6%
\pgf@xc#7%
\pgf@yc#8%
\advance\pgf@xc by-\pgf@xb%
\advance\pgf@yc by-\pgf@yb%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@xc}{\pgf@sys@tonumber\pgf@yc}%
\let\aspects\pgfmathresult%
\ifdim\aspectr pt#9\aspects pt%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@xa}{\pgf@sys@tonumber\pgf@xc}%
\else%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@ya}{\pgf@sys@tonumber\pgf@yc}%
\fi%
\advance\pgf@x by.5\pgf@xa%
\advance\pgf@xb by.5\pgf@xc%
\advance\pgf@y by.5\pgf@ya%
\advance\pgf@yb by.5\pgf@yc%
\pgfsys@transformcm{\pgfmathresult}{0}{0}{\pgfmathresult}{\pgf@x}{\pgf@y}%
\pgfsys@transformcm{1}{0}{0}{1}{-\pgf@xb}{-\pgf@yb}%
}%
}
\def\pgfsys@beginscope{\pgf@sys@fail{scoping}}
\def\pgfsys@endscope{\pgf@sys@fail{scoping}}
\def\pgfsys@begin@idscope{%
\begingroup%
\edef\pgf@sys@cacheref{\pgfsys@id@refcurrent}%
\expandafter\let\expandafter\pgfsys@beg@save\csname pgf@sys@att@beg@\pgf@sys@cacheref\endcsname%
\expandafter\let\expandafter\pgfsys@end@save\csname pgf@sys@att@end@\pgf@sys@cacheref\endcsname%
\ifx\pgfsys@beg@save\relax%
\ifx\pgfsys@end@save\relax%
\else%
\pgfsys@call@save%
\fi%
\else%
\pgfsys@call@save%
\fi%
\pgfsys@invalidate@currentid%
\begingroup%
}
\def\pgfsys@call@save{%
\pgfsys@beginscope%
\pgfsys@beg@save%
\expandafter\global\expandafter\let\csname pgf@sys@att@beg@\pgfsys@id@refcurrent\endcsname\relax%
\expandafter\global\expandafter\let\csname pgf@sys@att@end@\pgfsys@id@refcurrent\endcsname\relax%
}
\def\pgfsys@end@idscope{
\endgroup%
\ifx\pgfsys@beg@save\relax%
\ifx\pgfsys@end@save\relax%
\else%
\pgfsys@call@end%
\fi%
\else%
\pgfsys@call@end%
\fi%
\endgroup
}
\def\pgfsys@call@end{%
\pgfsys@end@save%
\pgfsys@endscope%
}
\def\pgfsys@begin@text{}
\def\pgfsys@end@text{}
\newcount\pgf@sys@id@count
\def\pgfsys@new@id#1{%
\edef#1{pgf\the\pgf@sys@id@count}%
\global\advance\pgf@sys@id@count by1\relax%
}
\def\pgfsys@use@id#1{%
\edef\pgf@sys@id@current@id{#1}%
\let\pgfsys@current@type\pgfutil@empty%
}
\let\pgf@sys@id@current@id\pgfutil@empty
\def\pgfsys@clear@id{%
\let\pgf@sys@id@current@id\pgfutil@empty%
}
\def\pgfsys@use@type#1{%
\edef\pgfsys@current@type{#1}%
\pgfsys@register@type\pgfsys@current@type%
}
\let\pgfsys@current@type\pgfutil@empty
\def\pgfsys@append@type#1{%
\ifx\pgfsys@current@type\pgfutil@empty%
\pgfsys@use@type{#1}%
\else%
\pgfsys@use@type{\pgfsys@current@type.#1}%
\fi%
}
\def\pgfsys@register@type#1{%
\expandafter\let\expandafter\pgf@sys@temp\csname pgf@sys@reg@type@#1\endcsname%
\ifx\pgf@sys@temp\relax%
{%
\c@pgf@counta\pgf@sys@type@count\relax%
\global\advance\c@pgf@counta by1\relax%
\edef\pgf@sys@type@count{\the\c@pgf@counta}%
\expandafter\xdef\csname pgf@sys@reg@type@#1\endcsname{y\the\c@pgf@counta}%
}%
\fi%
}
\def\pgf@sys@reg@type@{}
\def\pgf@sys@reg@type@background{b}
\def\pgf@sys@reg@type@path{p}
\def\pgf@sys@reg@type@text{t}
\expandafter\def\csname pgf@sys@reg@type@background.path\endcsname{bp}
\def\pgf@sys@type@count{0}
\def\pgfsys@push@type{%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgf@sys@typestack%
\expandafter\expandafter\expandafter{\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgfsys@current@type%
\expandafter\expandafter\expandafter{\expandafter\pgfsys@current@type\expandafter}%
\expandafter\def\expandafter\pgf@sys@typestack\expandafter{\pgf@sys@typestack}}%
}
\let\pgf@sys@typestack\pgfutil@empty
\def\pgfsys@pop@type{\pgf@sys@typestack}
\def\pgfsys@id@ref#1#2{#1\csname pgf@sys@reg@type@#2\endcsname}
\def\pgfsys@id@refcurrent{\pgfsys@id@ref{\pgf@sys@id@current@id}{\pgfsys@current@type}}
\def\pgfsys@invalidate@currentid{%
\expandafter\global\expandafter\let\csname pgf@sys@id@keylist@\pgfsys@id@refcurrent\endcsname\pgfutil@empty%
}
\def\pgfsys@attach@to@id#1#2#3#4{%
\pgfsys@register@type{#2}%
\expandafter\def\expandafter\pgf@sys@tempbeg\expandafter{\csname pgf@sys@att@beg@\pgfsys@id@ref{#1}{#2}\endcsname}%
\expandafter\def\expandafter\pgf@sys@tempend\expandafter{\csname pgf@sys@att@end@\pgfsys@id@ref{#1}{#2}\endcsname}%
\expandafter\ifx\pgf@sys@tempbeg\relax%
\expandafter\let\pgf@sys@tempbeg\pgfutil@empty%
\fi%
\expandafter\ifx\pgf@sys@tempend\relax%
\expandafter\let\pgf@sys@tempend\pgfutil@empty%
\fi%
\expandafter\let\expandafter\pgf@sys@tempbeg@cont\pgf@sys@tempbeg%
\expandafter\let\expandafter\pgf@sys@tempend@cont\pgf@sys@tempend%
\expandafter\expandafter\expandafter\gdef\expandafter\pgf@sys@tempbeg\expandafter{\pgf@sys@tempbeg@cont#3}%
\def\pgf@sys@temp{#4}%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\gdef\expandafter\expandafter\expandafter\pgf@sys@tempend\expandafter\expandafter\expandafter{\expandafter\pgf@sys@temp\pgf@sys@tempend@cont}%
}
\def\pgfsys@if@fresh@id#1#2#3#4{%
\edef\pgf@sys@temp{#1}%
\ifx\pgf@sys@temp\pgfutil@empty%
#4%
\else%
\pgfsys@register@type{#2}%
\expandafter\ifx\csname pgf@sys@id@keylist@\pgfsys@id@ref{#1}{#2}\endcsname\pgfutil@empty%
#4%
\else%
#3%
\fi%
\fi%
}
\def\pgfsys@if@fresh@currentid#1#2{%
\ifx\pgf@sys@id@current@id\pgfutil@empty%
#2%
\else%
\expandafter\ifx\csname pgf@sys@id@keylist@\pgfsys@id@refcurrent\endcsname\pgfutil@empty%
#2%
\else%
#1%
\fi%
\fi%
}
\def\pgfsys@imagesuffixlist{}
\def\pgfsys@opacity#1{\pgfsys@stroke@opacity{#1}\pgfsys@fill@opacity{#1}}
\def\pgfsys@stroke@opacity#1{\pgf@sys@fail{opacity}}
\def\pgfsys@fill@opacity#1{\pgf@sys@fail{opacity}}
\def\pgfsys@transparencygroupfrombox#1{\pgf@sys@fail{transparency groups}}
\newif\ifpgfsys@transparency@group@isolated
\newif\ifpgfsys@transparency@group@knockout
\def\pgfsys@blend@mode#1{\pgf@sys@fail{blend mode}}
\def\pgfsys@definemask{\pgf@sys@fail{image masks}}
\def\pgfsys@fadingfrombox#1#2{\pgf@sys@fail{fadings}}
\def\pgfsys@usefading#1#2#3#4#5#6#7{\pgf@sys@fail{fadings}}
\def\pgfsys@clipfading{}
\def\pgfsys@horishading#1#2#3{\pgf@sys@fail{shadings}\pgf@sys@noshading{#1}}
\def\pgfsys@vertshading#1#2#3{\pgf@sys@fail{shadings}\pgf@sys@noshading{#1}}
\def\pgfsys@radialshading#1#2#3{\pgf@sys@fail{shadings}\pgf@sys@noshading{#1}}
\def\pgfsys@functionalshading#1#2#3#4{\pgf@sys@fail{shadings (functional)}\pgf@sys@noshading{#1}}
\def\pgf@sys@noshading#1{\expandafter\global\expandafter\let\csname @pgfshading#1!\endcsname=\pgfutil@empty}
\def\pgfsys@declarepattern#1#2#3#4#5#6#7#8#9{\pgf@sys@fail{patterns}}
\def\pgfsys@setpatternuncolored#1#2#3#4{\pgf@sys@fail{patterns}}
\def\pgfsys@setpatterncolored#1{\pgf@sys@fail{patterns}}
\newif\ifpgfsysanimationsupported
\def\pgfsys@animate#1{\pgf@sys@fail{animations}}
\def\pgfsys@animation@restart@always{}
\def\pgfsys@animation@restart@never{}
\def\pgfsys@animation@restart@whennotactive{}
\def\pgfsys@animation@repeat#1{}
\def\pgfsys@animation@repeat@indefinite{}
\def\pgfsys@animation@repeat@dur#1{}
\def\pgfsys@animation@freezeatend{}
\def\pgfsys@animation@removeatend{}
\def\pgfsys@animation@time#1#2#3#4#5{}
\def\pgfsys@stay@text{{stay}{0}}
\def\pgfsys@jump@text{{jump}{1}}
\def\pgfsys@animation@base{}
\def\pgfsys@animation@offset#1#2{}
\def\pgfsys@animation@syncbegin#1#2#3#4{}
\def\pgfsys@animation@syncend#1#2#3#4{}
\def\pgfsys@animation@event#1#2#3#4#5{}
\def\pgfsys@animation@repeat@event#1#2#3#4#5{}
\def\pgfsys@animation@accesskey#1#2#3{}
\def\pgf@sys@begin@text{begin}
\def\pgfsys@animation@accumulate{}
\def\pgfsys@animation@noaccumulate{}
\def\pgfsys@animation@whom#1#2{}
\def\pgfsys@animation@rotatealong{}
\def\pgfsys@animation@norotatealong{}
\def\pgfsys@animation@movealong#1{}
\def\pgfsys@animation@tip@markers#1#2{}
\def\pgfsys@animation@canvas@transform#1#2{}
\def\pgfsys@animation@val@current{}
\def\pgfsys@animation@val@text#1{}
\def\pgfsys@animation@val@scalar#1{}
\def\pgfsys@animation@val@dimension#1{}
\def\pgfsys@animation@val@color@rgb#1#2#3{}
\def\pgfsys@animation@val@color@cmyk#1#2#3#4{}
\def\pgfsys@animation@val@color@cmy#1#2#3{}
\def\pgfsys@animation@val@color@gray#1{}
\def\pgfsys@animation@val@path#1{}
\def\pgfsys@animation@val@translate#1#2{}
\def\pgfsys@animation@val@scale#1#2{}
\def\pgfsys@animation@val@viewbox#1#2#3#4{}
\def\pgfsys@animation@val@dash#1#2{}
\def\pgfsys@marker@declare#1#2{%
{%
\pgfpicturetrue%
\pgfsysprotocol@getcurrentprotocol\pgfsys@marker@temp%
\pgfsysprotocol@setcurrentprotocol\pgfutil@empty%
\pgfsysprotocol@bufferedtrue%
\pgfsys@beginscope%
#2%
\pgfsys@endscope%
\xdef#1{\the\pgf@sys@id@count}%
\expandafter\expandafter\expandafter\global\expandafter\pgfsysprotocol@getcurrentprotocol\csname pgf@sys@marker@prot@#1\endcsname%
\pgfsys@marker@declare@%
\pgfsysprotocol@setcurrentprotocol\pgfsys@marker@temp%
\global\advance\pgf@sys@id@count by1\relax%
}%
}
\let\pgfsys@marker@declare@\relax
\def\pgfsys@marker@use#1{%
\pgfsysprotocol@literal{\csname pgf@sys@marker@prot@#1\endcsname}%
}
\def\pgfsys@rdf@about#1{\pgf@sys@fail{rdf}}
\def\pgfsys@rdf@content#1{\pgf@sys@fail{rdf}}
\def\pgfsys@rdf@datatype#1{\pgf@sys@fail{rdf}}
\def\pgfsys@rdf@href#1{\pgf@sys@fail{rdf}}
\def\pgfsys@rdf@inlist{\pgf@sys@fail{rdf}}
\def\pgfsys@rdf@prefix#1{\pgf@sys@fail{rdf}}
\def\pgfsys@rdf@property#1{\pgf@sys@fail{rdf}}
\def\pgfsys@rdf@rel#1{\pgf@sys@fail{rdf}}
\def\pgfsys@rdf@resource#1{\pgf@sys@fail{rdf}}
\def\pgfsys@rdf@rev#1{\pgf@sys@fail{rdf}}
\def\pgfsys@rdf@src#1{\pgf@sys@fail{rdf}}
\def\pgfsys@rdf@typeof#1{\pgf@sys@fail{rdf}}
\def\pgfsys@rdf@vocab#1{\pgf@sys@fail{rdf}}
\def\pgfsys@papersize#1#2{\pgf@sys@fail{papersize}}
\def\pgfsys@global@papersize#1#2{\pgfsys@papersize{#1}{#2}}
\def\pgfsys@prepare@papersize#1#2{\pgfsys@papersize{#1}{#2}}
\ifx\paperheight\@undefined
\def\pgfsys@thepageheight{\the\vsize} %
\def\pgfsys@thepagewidth{\the\hsize}
\else
\def\pgfsys@thepageheight{\paperheight}
\def\pgfsys@thepagewidth{\paperwidth}
\fi
\def\pgfsys@markposition#1{\pgf@sys@fail{marking the current position}}
\def\pgfsys@getposition#1#2{\let#2=\relax}
\def\pgfsys@shadingoutsidepgfpicture#1{%
#1%
}
\def\pgfsys@shadinginsidepgfpicture#1{%
\pgf@makehbox{#1}%
\setbox\pgf@hbox=\hbox{\hskip-.5\wd\pgf@hbox\lower.5\ht\pgf@hbox\hbox{\box\pgf@hbox}}%
\pgfqbox{\pgf@hbox}%
}
\def\pgfsys@hbox#1{%
\pgfsys@begin@idscope%
\pgfsys@beginscope%
\setbox#1=\hbox{\box#1}%
\wd#1=0pt%
\ht#1=0pt%
\dp#1=0pt%
\box#1%
\pgfsys@endscope%
\pgfsys@end@idscope%
}
\def\pgfsys@hboxsynced#1{%
\pgfsys@beginscope\pgflowlevelsynccm\pgfsys@hbox#1\pgfsys@endscope%
}%
\def\pgfsys@pictureboxsynced#1{%
{%
\setbox0=\hbox{\pgfsys@beginpicture\box#1\pgfsys@endpicture}%
\pgfsys@hboxsynced0%
}%
}
\def\pgfsys@beginpicture{}
\def\pgfsys@endpicture{}
\def\pgfsys@typesetpicturebox#1{%
\pgf@ya=\pgf@shift@baseline\relax%
\advance\pgf@ya by-\pgf@picminy\relax%
\advance\pgf@picmaxy by-\pgf@picminy\relax%
\advance\pgf@picmaxx by-\pgf@picminx\relax%
\setbox#1=\hbox{\hskip-\pgf@picminx\lower\pgf@picminy\box#1}%
\ht#1=\pgf@picmaxy%
\wd#1=\pgf@picmaxx%
\dp#1=0pt%
\leavevmode%
\pgf@xa=\pgf@trimleft@final\relax \ifdim\pgf@xa=0pt \else\kern\pgf@xa\fi
\raise-\pgf@ya\box#1%
\pgf@xa=\pgf@trimright@final\relax \ifdim\pgf@xa=0pt \else\kern\pgf@xa\fi
}
\def\pgfsys@beginpurepicture{\pgfsys@beginpicture}
\def\pgfsys@endpurepicture{\pgfsys@endpicture}
\def\pgfsys@defineimage{%
\ifx\pgf@imagewidth\pgfutil@empty\else\edef\pgf@imagewidth{width=\pgf@imagewidth,}\fi%
\ifx\pgf@imageheight\pgfutil@empty\else\edef\pgf@imageheight{height=\pgf@imageheight,}\fi%
\ifx\pgf@imagepage\pgfutil@empty\else\edef\pgf@imagepage{page=\pgf@imagepage,}\fi%
\edef\pgf@image{\noexpand\includegraphics[\pgf@imageheight\pgf@imagewidth]{\pgf@filename}}%
}
\def\pgfsys@defobject#1#2#3#4{%
\pgfsysprotocol@getcurrentprotocol\pgfsys@temp%
{%
\pgfpicturetrue%
\pgfsysprotocol@setcurrentprotocol\pgfutil@empty%
\pgfsysprotocol@bufferedtrue%
\pgfsys@beginscope%
#4%
\pgfsys@endscope%
\pgfsysprotocol@getcurrentprotocol\pgfsys@@temp%
\expandafter\global\expandafter\let\csname #1\endcsname=\pgfsys@@temp%
}%
\pgfsysprotocol@setcurrentprotocol\pgfsys@temp%
}
\def\pgfsys@useobject#1#2{%
\pgfsysprotocol@getcurrentprotocol\pgfsys@temp%
{%
\pgfsysprotocol@setcurrentprotocol\pgfutil@empty%
\pgfsysprotocol@bufferedfalse%
#2%
\expandafter\pgfsysprotocol@setcurrentprotocol\csname #1\endcsname%
\pgfsysprotocol@invokecurrentprotocol%
}%
\pgfsysprotocol@setcurrentprotocol\pgfsys@temp%
}
\def\pgfsys@begininvisible{\pgfsys@transformcm{1}{0}{0}{1}{2000bp}{2000bp}}
\def\pgfsys@endinvisible{\pgfsys@transformcm{1}{0}{0}{1}{-2000bp}{-2000bp}}
\def\pgfsys@begininvisiblescope{\pgfsys@beginscope\pgfsys@begininvisible}
\def\pgfsys@endinvisiblescope{\pgfsys@endinvisible\pgfsys@endscope}
\def\pgfsys@atbegindocument{}
\ifdefined\pdfstrcmp
\let\pgfsys@strcmp\pdfstrcmp
\else\ifdefined\strcmp
\let\pgfsys@strcmp\strcmp
\else\ifdefined\directlua
\directlua{
local lft = lua.get_functions_table()
lft[\string#lft+1] = function()
local lhs = token.scan_string()
local rhs = token.scan_string()
if lhs < rhs then
tex.sprint(-2, "-1")
elseif lhs == rhs then
tex.sprint(-2, "0")
else
tex.sprint(-2, "1")
end
end
token.set_lua("pgfsys@strcmp", \string#lft, "global")
}
\else
\def\pgfsys@strcmp#1#2{\pgf@sys@fail{string comparison}}%
\fi\fi\fi
\ifx\pgfsysdriver\@undefined
\pgfutil@guessdriver
\fi
\input pgf.cfg
\immediate\write-1{Driver file for pgf: \pgfsysdriver}
\pgfutil@InputIfFileExists{\pgfsysdriver}{}{%
\pgferror{Driver file ``\pgfsysdriver'' not found.}}
\AtBeginDocument{
\pgfsys@atbegindocument
\let\pgfsys@atbegindocument=\pgfutil@empty
}
\pgfutil@aux@read@hook
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/systemlayer/pgfsys.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/systemlayer/pgfsysanimations.code.tex ====
\ifx\pgfsysanimationsloaded\pgfutil@undefined
\let\pgfsysanimationsloaded=\relax
\else
\expandafter\endinput
\fi
\usepgfmodule{decorations}
\def\pgfsysanimsnapshot#1{%
\def\pgfsysanim@snaptime{#1}%
\pgfsysanim@snap@firsttrue%
\pgfsysanim@is@snaptrue%
}
\def\pgfsysanimsnapshotafter#1{%
\def\pgfsysanim@snaptime{#1}%
\pgfsysanim@snap@firstfalse%
\pgfsysanim@is@snaptrue%
}
\newif\ifpgfsysanim@is@snap
\newif\ifpgfsysanim@snap@first
\def\pgfsysanimate#1{%
\csname pgfsysanim@checks@#1\endcsname%
\ifpgfsysanim@is@snap%
\pgfsysanim@do@snap{#1}%
\else%
\pgfsys@animate{#1}%
\fi%
}
\def\pgfsysanim@do@snap#1{%
{%
\expandafter\ifx\csname pgfsysanim@prep@attr@#1\endcsname\pgfutil@undefined%
\else%
\pgfsysanim@compute@interval%
\let\pgfsysanim@code@begin\relax%
\let\pgfsysanim@code@end\pgfutil@empty%
\csname pgfsysanim@prep@attr@#1\endcsname%
\ifx\pgfsysanim@code@begin\relax%
\else%
\expandafter\expandafter\expandafter\pgfsysanim@call@attacher%
\expandafter\expandafter\expandafter{\expandafter\pgfsysanim@code@begin\expandafter}\expandafter{\pgfsysanim@code@end}{}%
\fi%
\fi%
}%
}
\def\pgfsysanim@call@attacher{\pgfsys@attach@to@id{\pgfsysanim@whom@id}{\pgfsysanim@whom@type}}
\def\pgfsysanim@checks@path{%
\expandafter\global\expandafter\let\csname pgfsysanim@path@is@animated@\pgfsysanim@whom@id @\pgfsysanim@whom@type\endcsname\pgfutil@empty%
}
\def\pgfsysanimkeyrestartalways{\pgfsys@animation@restart@always}
\def\pgfsysanimkeyrestartnever{\pgfsys@animation@restart@never}
\def\pgfsysanimkeyrestartwhennotactive{\pgfsys@animation@restart@whennotactive}
\def\pgfsysanimkeyrepeat#1{%
\pgfsys@animation@repeat{#1}%
\let\pgfsysanim@snap@repeat@kind\pgfsysanim@snap@repeat@normal%
{%
\pgf@x#1pt\relax%
\expandafter}%
\expandafter\def\expandafter\pgfsysanim@snap@repeat@arg\expandafter{\the\pgf@x}%
}
\def\pgfsysanimkeyrepeatindefinite{%
\pgfsys@animation@repeat@indefinite%
\let\pgfsysanim@snap@repeat@kind\pgfsysanim@snap@repeat@indefinite%
\let\pgfsysanim@snap@repeat@arg\pgfutil@empty%
}
\def\pgfsysanimkeyrepeatdur#1{%
\pgfsys@animation@repeat@dur{#1}%
\let\pgfsysanim@snap@repeat@kind\pgfsysanim@snap@repeat@dur%
{%
\pgf@x#1pt\relax%
\expandafter}%
\expandafter\def\expandafter\pgfsysanim@snap@repeat@arg\expandafter{\the\pgf@x}%
}
\def\pgfsysanim@snap@repeat@none{n}%
\def\pgfsysanim@snap@repeat@normal{m}%
\def\pgfsysanim@snap@repeat@indefinite{i}%
\def\pgfsysanim@snap@repeat@dur{d}%
\let\pgfsysanim@snap@repeat@kind\pgfsysanim@snap@repeat@none
\let\pgfsysanim@snap@repeat@arg\pgfutil@empty
\def\pgfsysanimkeyfreezeatend{\pgfsys@animation@freezeatend\pgfsysanim@freezeatendtrue}
\def\pgfsysanimkeyremoveatend{\pgfsys@animation@removeatend\pgfsysanim@freezeatendfalse}
\newif\ifpgfsysanim@freezeatend
\def\pgfsysanimkeytime#1#2#3#4#5{%
\pgfsys@animation@time{#1}{#2}{#3}{#4}{#5}%
\def\pgfsysanim@time{{#1}{#2}{#3}{#4}{#5}}%
}
\def\pgfsysanimkeybase{%
\pgfsys@animation@base%
\let\pgfsysanim@time\pgfsysanim@base@text%
}
\def\pgfsysanim@base@text{base}%
\def\pgfsysanimkeysnapshotstart#1{%
\def\pgfsysanim@snapshotstart{#1}%
}
\def\pgfsysanim@snapshotstart{0}
\def\pgfsysanimkeyoffset#1#2{%
\pgfsys@animation@offset{#1}{#2}%
}
\def\pgfsysanimkeysyncbegin#1#2#3#4{%
\pgfsys@animation@syncbegin{#1}{#2}{#3}{#4}%
}
\def\pgfsysanimkeysyncend#1#2#3#4{%
\pgfsys@animation@syncend{#1}{#2}{#3}{#4}%
}
\def\pgfsysanimkeyevent#1#2#3#4#5{%
\pgfsys@animation@event{#1}{#2}{#3}{#4}{#5}%
}
\def\pgfsysanimkeyrepeatevent#1#2#3#4#5{%
\pgfsys@animation@repeat@event{#1}{#2}{#3}{#4}{#5}%
}
\def\pgfsysanimkeyaccesskey#1#2#3{%
\pgfsys@animation@accesskey{#1}{#2}{#3}%
}
\def\pgfsysanimkeyaccumulate{\pgfsys@animation@accumulate\pgfsysanim@accumulatetrue}
\def\pgfsysanimkeynoaccumulate{\pgfsys@animation@noaccumulate\pgfsysanim@accumulatefalse}
\newif\ifpgfsysanim@accumulate
\def\pgfsysanimkeywhom#1#2{%
\pgfsys@register@type{#2}%
\pgfsys@animation@whom{#1}{#2}%
\def\pgfsysanim@whom@id{#1}%
\def\pgfsysanim@whom@type{#2}%
}
\def\pgfsysanimkeyrotatealong{\pgfsys@animation@rotatealong\pgfsysanim@rotatealongtrue}
\def\pgfsysanimkeynorotatealong{\pgfsys@animation@norotatealong\pgfsysanim@rotatealongfalse}
\newif\ifpgfsysanim@rotatealong
\def\pgfsysanimkeymovealong#1{%
\pgfsys@animation@movealong{#1}%
\def\pgfsysanim@snap@movealong{#1}%
}
\def\pgfsysanimkeytipmarkers#1#2{%
\pgfsys@animation@tip@markers{#1}{#2}%
\def\pgfsysanim@snap@tip@start{#1}%
\def\pgfsysanim@snap@tip@end{#2}%
}
\let\pgfsysanim@snap@tip@start\pgfutil@empty%
\let\pgfsysanim@snap@tip@end\pgfutil@empty%
\def\pgfsysanimkeycanvastransform#1#2{%
\pgfsys@animation@canvas@transform{#1}{#2}%
\def\pgfsysanim@snap@canvas@transform@pre{#1}%
\def\pgfsysanim@snap@canvas@transform@post{#2}%
}
\let\pgfsysanim@snap@canvas@transform@pre\relax
\let\pgfsysanim@snap@canvas@transform@post\relax
\def\pgfsysanimvalcurrent{%
\pgfsys@animation@val@current%
\ifpgfsysanim@is@snap%
\pgferror{You may not use "current value" with an animation snapshot}%
\fi%
}
\def\pgfsysanimvalnone{%
}
\def\pgfsysanimvaltext#1{%
\pgfsys@animation@val@text{#1}%
\ifpgfsysanim@is@snap%
\pgfsysanim@esnap@record{#1}%
\fi%
}
\def\pgfsysanimvalscalar#1{%
\pgfsys@animation@val@scalar{#1}%
\ifpgfsysanim@is@snap%
\pgfsysanim@esnap@record{#1}%
\fi%
}
\def\pgfsysanimvaldimension#1{%
\pgfsys@animation@val@dimension{#1}%
\ifpgfsysanim@is@snap%
\pgfsysanim@esnap@record{#1}%
\fi%
}
\def\pgfsysanimvalcolor#1{%
\pgfutil@colorlet{pgf@anim@temp}{#1}%
\pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{pgf@anim@temp}}%
\expandafter\let\expandafter\pgf@sys@temp\csname\string\color@pgf@anim@temp\endcsname
\expandafter\pgfanim@parse@type@color@\pgf@sys@temp%
}
\def\pgfanim@parse@type@color@#1#2#3#4#5{%
\expandafter\ifx\csname pgfsysanimvalcolor#4\endcsname\relax%
\pgferror{Unsupported color model `#4'}%
\else%
\edef\pgf@sys@colmarshal{\expandafter\noexpand\csname pgfsysanimvalcolor#4\endcsname}%
\pgf@sys@uncomma#5,,%
\pgf@sys@colmarshal%
\fi%
}
\def\pgf@sys@uncomma#1,{%
\def\pgf@sys@coltest{#1}%
\ifx\pgf@sys@coltest\pgfutil@empty%
\else%
\expandafter\def\expandafter\pgf@sys@colmarshal\expandafter{\pgf@sys@colmarshal{#1}}%
\expandafter\pgf@sys@uncomma%
\fi%
}
\def\pgfsysanimvalcolorrgb#1#2#3{%
\pgfsys@animation@val@color@rgb{#1}{#2}{#3}%
\ifpgfsysanim@is@snap%
\pgfsysanim@esnap@record{{#1}{#2}{#3}}%
\fi%
}
\def\pgfsysanimvalcolorcmyk#1#2#3#4{%
\pgfsys@animation@val@color@cmyk{#1}{#2}{#3}{#4}%
\ifpgfsysanim@is@snap%
{%
\pgf@xa=1pt%
\advance\pgf@xa by-#1pt%
\advance\pgf@xa by-#4pt\relax%
\ifdim\pgf@xa<0pt\pgf@xa0pt\fi%
\pgf@xb=1pt%
\advance\pgf@xb by-#1pt%
\advance\pgf@xb by-#4pt\relax%
\ifdim\pgf@xb<0pt\pgf@xb0pt\fi%
\pgf@xc=1pt%
\advance\pgf@xc by-#1pt%
\advance\pgf@xc by-#4pt\relax%
\ifdim\pgf@xc<0pt\pgf@xc0pt\fi%
\edef\pgfsys@temp{{\pgf@sys@tonumber\pgf@xa}{\pgf@sys@tonumber\pgf@xb}{\pgf@sys@tonumber\pgf@xc}}%
\expandafter}%
\expandafter\pgfsysanim@esnap@record\expandafter{\pgfsys@temp}%
\fi%
}
\def\pgfsysanimvalcolorcmy#1#2#3{%
\pgfsys@animation@val@color@cmy{#1}{#2}{#3}%
\ifpgfsysanim@is@snap%
{%
\pgf@xa=1pt%
\advance\pgf@xa by-#1pt%
\pgf@xb=1pt%
\advance\pgf@xb by-#1pt%
\pgf@xc=1pt%
\advance\pgf@xc by-#1pt%
\edef\pgfsys@temp{{\pgf@sys@tonumber\pgf@xa}{\pgf@sys@tonumber\pgf@xb}{\pgf@sys@tonumber\pgf@xc}}%
\expandafter}%
\expandafter\pgfsysanim@esnap@record\expandafter{\pgfsys@temp}%
\fi%
}
\def\pgfsysanimvalcolorgray#1{%
\pgfsys@animation@val@color@gray{#1}%
\ifpgfsysanim@is@snap%
\pgfsysanim@esnap@record{{#1}{#1}{#1}}%
\fi%
}
\def\pgfsysanimvalpath#1{%
\pgfsys@animation@val@path{#1}%
\ifpgfsysanim@is@snap%
\pgfsysanim@snap@record{#1}%
\fi%
}
\def\pgfsysanimvaltranslate#1#2{%
\pgfsys@animation@val@translate{#1}{#2}%
\ifpgfsysanim@is@snap%
\pgfsysanim@esnap@record{{#1}{#2}}%
\fi%
}
\def\pgfsysanimvalscale#1#2{%
\pgfsys@animation@val@scale{#1}{#2}%
\ifpgfsysanim@is@snap%
\pgfsysanim@esnap@record{{#1}{#2}}%
\fi%
}
\def\pgfsysanimvalviewbox#1#2#3#4{%
\pgfsys@animation@val@viewbox{#1}{#2}{#3}{#4}%
\ifpgfsysanim@is@snap%
\pgfsysanim@esnap@record{{#1}{#2}{#3}{#4}}%
\fi%
}
\def\pgfsysanimvaldash#1#2{%
\pgfsys@animation@val@dash{#1}{#2}%
\ifpgfsysanim@is@snap%
\pgfsysanim@esnap@record{{#1}{#2}}%
\fi%
}
\def\pgfsysanim@esnap@record#1{%
\edef\pgfsysanim@temp{#1}%
\expandafter\pgfsysanim@snap@record\expandafter{\pgfsysanim@temp}%
}
\def\pgfsysanim@snap@record#1{%
\ifx\pgfsysanim@time\pgfsysanim@base@text%
\def\pgfsysanim@base@value{#1}%
\else%
\advance\pgfsysanim@snap@count by1\relax%
\expandafter\def\expandafter\pgfsysanim@temp\expandafter{\pgfsysanim@time{#1}}%
\expandafter\let\csname pgfsysanim@snap@\the\pgfsysanim@snap@count\endcsname\pgfsysanim@temp%
\fi%
}
\newcount\pgfsysanim@snap@count
\let\pgfsysanim@base@value\pgfutil@empty%
\def\pgfsysanim@compute@interval{%
\let\pgfsysanim@prev@val\relax%
\let\pgfsysanim@prev@time\relax%
\let\pgfsysanim@prev@spline\pgfsysanim@default@spline%
\let\pgfsysanim@next@val\relax%
\let\pgfsysanim@next@time\relax%
\let\pgfsysanim@next@spline\pgfsysanim@default@spline%
\let\pgfsysanim@first@time\relax%
\let\pgfsysanim@last@time\relax%
\let\pgfsysanim@last@val\relax%
\ifnum\pgfsysanim@snap@count>0\relax%
\pgf@xc\pgfsysanim@snaptime pt\relax%
\pgf@x\pgfsysanim@snapshotstart pt\relax%
\advance\pgf@xc-\pgf@x\relax%
\pgfsysanim@compute@start@end%
\pgfsysanim@compute@value%
\fi%
\pgfsysanim@valid@snapshot@timefalse%
\ifx\pgfsysanim@prev@time\relax%
\else\ifx\pgfsysanim@next@time\relax%
\else\pgfsysanim@valid@snapshot@timetrue%
\fi\fi%
\ifpgfsysanim@valid@snapshot@time%
\else%
\ifx\pgfsysanim@base@value\pgfutil@empty%
\else%
\let\pgfsysanim@prev@val\pgfsysanim@base@value%
\def\pgfsysanim@prev@time{0}%
\let\pgfsysanim@prev@spline\pgfsysanim@default@spline%
\let\pgfsysanim@next@val\pgfsysanim@base@value%
\let\pgfsysanim@next@time\pgfsysanim@prev@time%
\let\pgfsysanim@next@spline\pgfsysanim@default@spline%
\def\pgfsysanim@first@time{-16382}%
\let\pgfsysanim@last@time\pgfsysanim@prev@time%
\let\pgfsysanim@last@val\pgfsysanim@base@value%
\def\pgfsysanim@frac@a{1}%
\def\pgfsysanim@frac@b{0}%
\pgfsysanim@valid@snapshot@timetrue%
\fi%
\fi%
}
\newif\ifpgfsysanim@cont%
\newif\ifpgfsysanim@valid@snapshot@time
\def\pgfsysanim@default@spline{{0}{0}{1}{1}}
\def\pgfsysanim@compute@start@end{%
\expandafter\expandafter\expandafter\pgfsysanim@compute@start\csname pgfsysanim@snap@1\endcsname%
\expandafter\expandafter\expandafter\pgfsysanim@compute@end\csname pgfsysanim@snap@\the\pgfsysanim@snap@count\endcsname%
}
\def\pgfsysanim@compute@start#1#2#3#4#5#6{%
\def\pgfsysanim@first@time{#1}%
}
\def\pgfsysanim@compute@end#1#2#3#4#5#6{%
\def\pgfsysanim@last@time{#1}%
\def\pgfsysanim@last@val{#6}%
}
\def\pgfsysanim@compute@value{%
\ifdim\pgf@xc<\pgfsysanim@first@time pt\relax%
\else%
\ifx\pgfsysanim@snap@repeat@kind\pgfsysanim@snap@repeat@none%
\pgfsysanim@handle@repeat@none%
\else\ifx\pgfsysanim@snap@repeat@kind\pgfsysanim@snap@repeat@normal%
\pgfsysanim@handle@repeat@normal%
\else\ifx\pgfsysanim@snap@repeat@kind\pgfsysanim@snap@repeat@indefinite%
\pgfsysanim@handle@repeat@indefinite%
\else\ifx\pgfsysanim@snap@repeat@kind\pgfsysanim@snap@repeat@dur%
\pgfsysanim@handle@repeat@dur%
\fi\fi\fi\fi%
\fi%
}
\def\pgfsysanim@handle@repeat@none{%
\ifdim\pgf@xc<\pgfsysanim@last@time pt\relax%
\pgfsysanim@compute@time%
\else%
\ifdim\pgf@xc=\pgfsysanim@last@time pt\relax%
\ifpgfsysanim@snap@first%
\pgfsysanim@compute@time%
\else%
\ifpgfsysanim@freezeatend%
\let\pgfsysanim@prev@val\pgfsysanim@last@val%
\let\pgfsysanim@prev@time\pgfsysanim@last@time%
\let\pgfsysanim@next@val\pgfsysanim@last@val%
\let\pgfsysanim@next@time\pgfsysanim@last@time%
\fi%
\fi%
\else%
\ifpgfsysanim@freezeatend%
\let\pgfsysanim@prev@val\pgfsysanim@last@val%
\let\pgfsysanim@prev@time\pgfsysanim@last@time%
\let\pgfsysanim@next@val\pgfsysanim@last@val%
\let\pgfsysanim@next@time\pgfsysanim@last@time%
\fi%
\fi%
\fi%
}
\def\pgfsysanim@handle@repeat@indefinite{%
\ifdim\pgf@xc<\pgfsysanim@last@time pt\relax%
\pgfsysanim@compute@time%
\else%
\pgf@xa=\pgfsysanim@last@time pt%
\pgf@xb=\pgfsysanim@first@time pt%
\advance\pgf@xa by-\pgf@xb%
\pgf@ya\pgf@xc%
\advance\pgf@ya by-\pgf@xb%
\ifdim\pgf@xa<0.01pt\relax%
\def\pgfmathresult{1.0}%
\else%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@ya}{\pgf@sys@tonumber\pgf@xa}%
\fi%
\pgf@x\pgfmathresult pt\relax%
\expandafter\pgfsysanim@splitter\the\pgf@x%
\pgf@xc=\pgfsysanim@repeat@frac\pgf@xa%
\advance\pgf@xc by\pgf@xb%
\pgfsysanim@compute@time%
\fi%
}
{\catcode`\p=12\catcode`\t=12\gdef\Pgfsysanim@sPliTTer#1.#2pt{\Pgfsysanim@seTTer{#1}{#2}}}
\let\pgfsysanim@splitter\Pgfsysanim@sPliTTer
\def\Pgfsysanim@seTTer#1#2{%
\def\pgfsysanim@repeat@decimal{#1}%
\def\pgfsysanim@repeat@frac{.#2}%
\ifdim\pgfsysanim@repeat@frac pt=0pt%
\c@pgf@counta\pgfsysanim@repeat@decimal%
\advance\c@pgf@counta by-1\relax%
\edef\pgfsysanim@repeat@decimal{\the\c@pgf@counta}%
\def\pgfsysanim@repeat@frac{1}%
\fi%
}
\def\pgfsysanim@repeat@decimal{0}%
\def\pgfsysanim@handle@repeat@normal{%
\pgf@xa=\pgfsysanim@last@time pt%
\pgf@xb=\pgfsysanim@first@time pt%
\advance\pgf@xa by-\pgf@xb%
\pgf@ya\pgf@xc%
\advance\pgf@ya by-\pgf@xb%
\ifdim\pgf@xa<0.01pt\relax%
\def\pgfmathresult{1.0}%
\else%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@ya}{\pgf@sys@tonumber\pgf@xa}%
\fi%
\pgf@x\pgfmathresult pt\relax%
\expandafter\pgfsysanim@splitter\the\pgf@x%
\ifdim\pgfmathresult pt<\pgfsysanim@snap@repeat@arg\relax%
\pgf@xc=\pgfsysanim@repeat@frac\pgf@xa%
\advance\pgf@xc by\pgf@xb%
\pgfsysanim@compute@time%
\else%
\ifpgfsysanim@freezeatend%
\expandafter\pgfsysanim@splitter\pgfsysanim@snap@repeat@arg%
\pgf@xc=\pgfsysanim@repeat@frac\pgf@xa%
\advance\pgf@xc by\pgf@xb%
\pgfsysanim@compute@time%
\else%
\ifdim\pgfmathresult pt=\pgfsysanim@snap@repeat@arg\relax%
\ifpgfsysanim@snap@first%
\expandafter\pgfsysanim@splitter\pgfsysanim@snap@repeat@arg%
\pgf@xc=\pgfsysanim@repeat@frac\pgf@xa%
\advance\pgf@xc by\pgf@xb%
\pgfsysanim@compute@time%
\fi%
\fi%
\fi%
\fi%
}
\def\pgfsysanim@handle@repeat@dur{%
\pgf@yb=\pgfsysanim@first@time pt%
\advance\pgf@yb by\pgfsysanim@snap@repeat@arg\relax%
\ifdim\pgf@xc<\pgf@yb%
\pgf@xa=\pgfsysanim@last@time pt%
\pgf@xb=\pgfsysanim@first@time pt%
\advance\pgf@xa by-\pgf@xb%
\pgf@ya\pgf@xc%
\advance\pgf@ya by-\pgf@xb%
\ifdim\pgf@xa<0.01pt\relax%
\def\pgfmathresult{1.0}%
\else%
\pgfmathdivide@{\pgf@sys@tonumber\pgf@ya}{\pgf@sys@tonumber\pgf@xa}%
\fi%
\pgf@x\pgfmathresult pt\relax%
\expandafter\pgfsysanim@splitter\the\pgf@x%
\pgf@xc=\pgfsysanim@repeat@frac\pgf@xa%
\advance\pgf@xc by\pgf@xb%
\pgfsysanim@compute@time%
\else%
\ifpgfsysanim@freezeatend%
\pgfsysanim@handle@repeat@dur@freeze%
\else%
\ifdim\pgf@xc=\pgf@yb%
\ifpgfsysanim@snap@first%
\pgfsysanim@handle@repeat@dur@freeze%
\fi%
\fi%
\fi%
\fi%
}
\def\pgfsysanim@handle@repeat@dur@freeze{%
\pgf@xa=\pgfsysanim@last@time pt%
\pgf@xb=\pgfsysanim@first@time pt%
\advance\pgf@xa by-\pgf@xb%
\ifdim\pgf@xa<0.01pt\relax%
\def\pgfmathresult{1.0}%
\else%
\pgfmathdivide@{\pgf@sys@tonumber\dimexpr\pgfsysanim@snap@repeat@arg}{\pgf@sys@tonumber\pgf@xa}%
\fi%
\pgf@x\pgfmathresult pt\relax%
\expandafter\pgfsysanim@splitter\the\pgf@x%
\pgf@xc=\pgfsysanim@repeat@frac\pgf@xa%
\advance\pgf@xc by\pgf@xb%
\pgfsysanim@compute@time%
}
\def\pgfsysanim@compute@time{%
\pgfutil@tempcnta=1\relax%
\pgfsysanim@conttrue%
\pgfutil@loop%
\ifnum\pgfutil@tempcnta>\pgfsysanim@snap@count%
\pgfsysanim@contfalse%
\else%
\expandafter\let\expandafter\pgfsys@temp\csname pgfsysanim@snap@\the\pgfutil@tempcnta\endcsname%
\expandafter\pgfsysanim@test@time\pgfsys@temp%
\fi%
\ifpgfsysanim@cont%
\advance\pgfutil@tempcnta by1\relax%
\pgfutil@repeat%
}
\def\pgfsysanim@test@time#1#2#3#4#5#6{%
\ifdim#1pt<\pgf@xc%
\def\pgfsysanim@prev@val{#6}%
\def\pgfsysanim@prev@time{#1}%
\def\pgfsysanim@prev@spline{{#2}{#3}{#4}{#5}}%
\else%
\ifdim#1pt=\pgf@xc%
\ifpgfsysanim@snap@first%
\ifx\pgfsysanim@next@val\relax%
\def\pgfsysanim@prev@val{#6}%
\def\pgfsysanim@prev@time{#1}%
\def\pgfsysanim@prev@spline{{#2}{#3}{#4}{#5}}%
\let\pgfsysanim@next@val\pgfsysanim@prev@val%
\let\pgfsysanim@next@time\pgfsysanim@prev@time%
\let\pgfsysanim@next@spline\pgfsysanim@prev@spline%
\pgfsysanim@contfalse%
\fi
\else%
\def\pgfsysanim@prev@val{#6}%
\def\pgfsysanim@prev@time{#1}%
\def\pgfsysanim@prev@spline{{#2}{#3}{#4}{#5}}%
\let\pgfsysanim@next@val\pgfsysanim@prev@val%
\let\pgfsysanim@next@time\pgfsysanim@prev@time%
\let\pgfsysanim@next@spline\pgfsysanim@prev@spline%
\fi%
\else%
\ifx\pgfsysanim@next@val\relax%
\def\pgfsysanim@next@val{#6}%
\def\pgfsysanim@next@time{#1}%
\def\pgfsysanim@next@spline{{#2}{#3}{#4}{#5}}%
\else%
\pgfsysanim@contfalse%
\fi%
\fi%
\fi%
}
\let\pgfsysanim@prev@val\relax%
\let\pgfsysanim@prev@time\relax%
\let\pgfsysanim@next@val\relax%
\let\pgfsysanim@next@time\relax%
\def\pgfsysanim@attach#1#2#3{%
\expandafter\pgfsysanim@prep@beg\expandafter{\pgfsysanim@first@time}{#2}{#3}%
\expandafter\def\expandafter\pgfsysanim@code@main\expandafter{\csname pgfsysanim@main@of@\pgfsysanim@whom@id @\pgfsysanim@whom@type @#1\endcsname}%
\expandafter\ifx\pgfsysanim@code@main\relax%
\edef\pgfsysanim@code@begin{%
\let\noexpand\pgfsysanim@c@begin\noexpand\pgfutil@empty%
\let\noexpand\pgfsysanim@c@end\noexpand\pgfutil@empty%
\pgfsysanim@lasttime-16383pt\relax%
\expandafter\noexpand\pgfsysanim@code@main%
\global\let\expandafter\noexpand\pgfsysanim@code@main\relax%
\noexpand\pgfsysanim@c@begin%
}%
\let\pgfsysanim@code@end\pgfsysanim@code@closer%
\expandafter\global\expandafter\let\pgfsysanim@code@main\pgfutil@empty%
\else%
\let\pgfsysanim@code@begin\relax%
\let\pgfsysanim@code@end\relax%
\fi%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\pgfsysanim@new@main%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter{\expandafter\pgfsysanim@code@main\pgfsysanim@add@main}
\expandafter\global\expandafter\let\pgfsysanim@code@main\pgfsysanim@new@main%
}
\def\pgfsysanim@code@closer{\pgfsysanim@c@end}
\def\pgfsysanim@prep@beg#1#2#3{%
\edef\pgfsysanim@add@main{%
\noexpand\ifdim\pgfsysanim@lasttime>#1pt%
\noexpand\else%
\pgfsysanim@lasttime#1pt%
\def\noexpand\pgfsysanim@c@begin{#2}%
\def\noexpand\pgfsysanim@c@end{#3}%
\noexpand\fi%
}
}
\def\pgfsysanim@prep@beg@special#1#2{%
\def\pgfsysanim@add@main{%
\ifdim\pgfsysanim@lasttime>#1pt%
\else%
\pgfsysanim@lasttime#1pt%
\def\pgfsysanim@c@begin{#2}%
\fi%
}
}
\def\pgfsysanim@attach@special#1#2{%
\expandafter\expandafter\expandafter\pgfsysanim@prep@beg@special\expandafter\expandafter\expandafter{\expandafter\pgfsysanim@first@time\expandafter}\expandafter{#2}%
\ifx#1\relax%
\def#1{%
\pgfsysanim@lasttime-16383pt\relax%
\let\pgfsysanim@c@begin\pgfutil@empty%
}%
\fi%
\expandafter\expandafter\expandafter\gdef\expandafter\expandafter\expandafter#1\expandafter\expandafter\expandafter{\expandafter#1\pgfsysanim@add@main}%
}
\newdimen\pgfsysanim@lasttime
\def\pgfsysanim@add@trans{%
\ifx\pgfsysanim@snap@canvas@transform@pre\relax%
\else%
\ifx\pgfsysanim@code@begin\relax%
\let\pgfsysanim@code@begin\pgfutil@empty%
\fi%
\pgfsysanim@add@trans@%
\fi%
}
\def\pgfsysanim@add@trans@{%
\toks0\expandafter{\pgfsysanim@snap@canvas@transform@pre}%
\toks1\expandafter{\pgfsysanim@code@begin}%
\toks2\expandafter{\pgfsysanim@snap@canvas@transform@post}%
\edef\pgfsysanim@code@begin{{\the\toks0 \the\toks1 \the\toks2}}%
}
\def\pgfsysanim@prep@attr@opacity{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@scalar%
\pgfsysanim@cap@scalar{\pgfsysanim@x@val}{0}{1}%
\pgfsysanim@attach{opacity}{\noexpand\pgfsys@opacity{\pgfsysanim@x@val}}{}%
\fi%
}
\def\pgfsysanim@prep@attr@fillopacity{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@scalar%
\pgfsysanim@cap@scalar{\pgfsysanim@x@val}{0}{1}%
\pgfsysanim@attach{fillopacity}{\noexpand\pgfsys@fill@opacity{\pgfsysanim@x@val}}{}%
\fi%
}
\def\pgfsysanim@prep@attr@strokeopacity{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@scalar%
\pgfsysanim@cap@scalar{\pgfsysanim@x@val}{0}{1}%
\pgfsysanim@attach{strokeopacity}{\noexpand\pgfsys@stroke@opacity{\pgfsysanim@x@val}}{}%
\fi%
}
\def\pgfsysanim@prep@attr@visibility{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@text%
\ifx\pgfsysanim@text@val\pgf@hidden@text%
\pgfsysanim@attach{visibility}{\noexpand\pgfsys@begininvisiblescope}{\noexpand\pgfsys@endinvisiblescope}%
\else%
\pgfsysanim@attach{visibility}{}{}%
\fi%
\fi%
}
\def\pgf@hidden@text{hidden}
\def\pgfsysanim@prep@attr@linewidth{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@dimension%
\pgfsysanim@cap@scalar{\pgfsysanim@x@val}{0}{16382}%
\pgfsysanim@attach{linewidth}{\noexpand\pgfsys@setlinewidth{\pgfsysanim@x@val pt}}{}%
\fi%
}
\def\pgfsysanim@prep@attr@dash{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@dash%
\pgfsysanim@attach{dash}{\noexpand\pgfsys@setdash{\pgfsysanim@dash@vals}{\pgfsysanim@x@val pt}}{}%
\fi%
}
\def\pgfsysanim@prep@attr@translate{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@translate%
\edef\pgfsysanim@code@begin{\noexpand\pgfsys@transformshift{\pgfsysanim@x@val pt}{\pgfsysanim@y@val pt}}%
\fi%
\pgfsysanim@add@trans%
}
\def\pgfsysanim@prep@attr@scale{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@scale%
\edef\pgfsysanim@code@begin{\noexpand\pgfsys@transformxyscale{\pgfsysanim@x@val}{\pgfsysanim@y@val}}%
\fi%
\pgfsysanim@add@trans%
}
\def\pgfsysanim@prep@attr@rotate{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@scalar%
{%
\pgfmathsin@{\pgfsysanim@x@val}%
\let\pgftransform@sin=\pgfmathresult%
\pgfmathcos@{\pgfsysanim@x@val}%
\let\pgftransform@cos=\pgfmathresult%
\pgf@x=\pgftransform@sin pt%
\pgf@xa=-\pgf@x%
\edef\pgfsysanim@code@begin{\noexpand\pgfsys@transformcm{\pgftransform@cos}{\pgftransform@sin}{\pgf@sys@tonumber{\pgf@xa}}{\pgftransform@cos}{0pt}{0pt}}%
\expandafter}%
\expandafter\def\expandafter\pgfsysanim@code@begin\expandafter{\pgfsysanim@code@begin}%
\fi%
\pgfsysanim@add@trans%
}
\def\pgfsysanim@prep@attr@skewx{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@scalar%
{%
\pgfmathtan@{\pgfsysanim@x@val}%
\edef\pgfsysanim@code@begin{\noexpand\pgfsys@transformcm{1}{0}{\pgfmathresult}{1}{0pt}{0pt}}%
\expandafter}%
\expandafter\def\expandafter\pgfsysanim@code@begin\expandafter{\pgfsysanim@code@begin}%
\fi%
\pgfsysanim@add@trans%
}
\def\pgfsysanim@prep@attr@skewy{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@scalar%
{%
\pgfmathtan@{\pgfsysanim@x@val}%
\edef\pgfsysanim@code@begin{\noexpand\pgfsys@transformcm{1}{\pgfmathresult}{0}{1}{0pt}{0pt}}%
\expandafter}%
\expandafter\def\expandafter\pgfsysanim@code@begin\expandafter{\pgfsysanim@code@begin}%
\fi%
\pgfsysanim@add@trans%
}
\def\pgfsysanim@prep@attr@motion{%
\ifx\pgfsysanim@base@value\pgfutil@empty%
\else%
\pgferror{You may not provide a base value for a motion}%
\let\pgfsysanim@base@value\pgfutil@empty%
\fi%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@motion%
\expandafter\pgfsysanim@prep@attr@motion@\pgfsysanim@motion@trans%
\fi%
\pgfsysanim@add@trans%
}
\def\pgfsysanim@prep@attr@motion@#1#2#3#4#5#6{%
\ifpgfsysanim@rotatealong%
\def\pgfsysanim@code@begin{\pgfsys@transformcm{#1}{#2}{#3}{#4}{#5}{#6}}%
\else%
\def\pgfsysanim@code@begin{\pgfsys@transformshift{#5}{#6}}%
\fi%
}
\def\pgfsysanim@prep@attr@strokecolor{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@color%
\pgfsysanim@cap@scalar{\pgfsysanim@x@val}{0}{1}%
\pgfsysanim@cap@scalar{\pgfsysanim@y@val}{0}{1}%
\pgfsysanim@cap@scalar{\pgfsysanim@z@val}{0}{1}%
\pgfsysanim@attach{strokecolor}{\noexpand\pgfsys@color@rgb@stroke{\pgfsysanim@x@val}{\pgfsysanim@y@val}{\pgfsysanim@z@val}}{}%
\fi%
}
\def\pgfsysanim@prep@attr@fillcolor{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@color%
\pgfsysanim@cap@scalar{\pgfsysanim@x@val}{0}{1}%
\pgfsysanim@cap@scalar{\pgfsysanim@y@val}{0}{1}%
\pgfsysanim@cap@scalar{\pgfsysanim@z@val}{0}{1}%
\pgfsysanim@attach{fillcolor}{\noexpand\pgfsys@color@rgb@fill{\pgfsysanim@x@val}{\pgfsysanim@y@val}{\pgfsysanim@z@val}}{}%
\fi%
}
\def\pgfsysanim@prep@attr@color{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@color%
\pgfsysanim@cap@scalar{\pgfsysanim@x@val}{0}{1}%
\pgfsysanim@cap@scalar{\pgfsysanim@y@val}{0}{1}%
\pgfsysanim@cap@scalar{\pgfsysanim@z@val}{0}{1}%
\pgfsysanim@attach{color}{\noexpand\pgfsys@color@rgb{\pgfsysanim@x@val}{\pgfsysanim@y@val}{\pgfsysanim@z@val}}{}%
\fi%
}
\newif\ifpgfsys@animation@view@hooked
\def\pgfsysanim@prep@attr@viewbox{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@viewbox%
\pgfsys@attach@to@id{\pgfsysanim@whom@id}{}{%
\ifpgfsys@animation@view@hooked%
\else%
\let\pgfsys@viewboxmeet@orig\pgfsys@viewboxmeet%
\let\pgfsys@viewboxmeet\pgfsysanim@hooked@viewboxmeet%
\let\pgfsys@viewboxslice@orig\pgfsys@viewboxslice%
\let\pgfsys@viewboxslice\pgfsysanim@hooked@viewboxslice%
\pgfsys@animation@view@hookedtrue%
\fi%
}{}{}%
\edef\pgfsysanim@temp{{\pgfsysanim@x@val}{\pgfsysanim@y@val}{\pgfsysanim@z@val}{\pgfsysanim@w@val}}%
\expandafter\pgfsysanim@attach@special\csname pgfsysanim@hook@for@\pgfsys@id@ref{\pgfsysanim@whom@id}{\pgfsysanim@whom@type}\endcsname\pgfsysanim@temp%
\fi%
}
\def\pgfsysanim@hooked@viewboxmeet#1#2#3#4#5#6#7#8{%
\expandafter\ifx\csname pgfsysanim@hook@for@\pgfsys@id@refcurrent\endcsname\relax%
\pgfsys@viewboxmeet@orig{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
\else%
\csname pgfsysanim@hook@for@\pgfsys@id@refcurrent\endcsname%
\ifx\pgfsysanim@c@begin\pgfutil@empty%
\else%
\expandafter\pgfsysanim@hooked@viewboxmeet@\pgfsysanim@c@begin{#1}{#2}{#3}{#4}%
\fi%
\expandafter\global\expandafter\let\csname pgfsysanim@hook@for@\pgfsys@id@refcurrent\endcsname\relax%
\fi%
}
\def\pgfsysanim@hooked@viewboxmeet@#1#2#3#4#5#6#7#8{%
\pgfsys@viewboxmeet@orig{#5}{#6}{#7}{#8}{#1}{#2}{#3}{#4}%
}
\def\pgfsysanim@hooked@viewboxslice#1#2#3#4#5#6#7#8{%
\expandafter\ifx\csname pgfsysanim@hook@for@\pgfsys@id@refcurrent\endcsname\relax%
\pgfsys@viewboxslice@orig{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
\else%
\csname pgfsysanim@hook@for@\pgfsys@id@refcurrent\endcsname%
\expandafter\pgfsysanim@hooked@viewboxslice@\pgfsysanim@c@begin{#1}{#2}{#3}{#4}%
\expandafter\global\expandafter\let\csname pgfsysanim@hook@for@\pgfsys@id@refcurrent\endcsname\relax%
\fi%
}
\def\pgfsysanim@hooked@viewboxslice@#1#2#3#4#5#6#7#8{%
\pgfsys@viewboxslice@orig{#5}{#6}{#7}{#8}{#1}{#2}{#3}{#4}%
}
\newif\ifpgfsys@animation@path@hooked
\def\pgfsysanim@prep@attr@path{%
\ifpgfsysanim@valid@snapshot@time%
\pgfsysanim@comp@path%
\pgfsys@attach@to@id{\pgfsysanim@whom@id}{}{%
\ifpgfsys@animation@path@hooked%
\else%
\let\pgfsys@discardpath@orig\pgfsys@discardpath%
\let\pgfsys@stroke@orig\pgfsys@stroke%
\let\pgfsys@fill@orig\pgfsys@fill%
\let\pgfsys@fillstroke@orig\pgfsys@fillstroke%
\let\pgfsys@closestroke@orig\pgfsys@closestroke%
\let\pgfsys@discardpath\pgfsys@discardpath@hook%
\let\pgfsys@stroke\pgfsys@stroke@hook%
\let\pgfsys@fill\pgfsys@fill@hook%
\let\pgfsys@fillstroke\pgfsys@fillstroke@hook%
\let\pgfsys@closestroke\pgfsys@closestroke@hook%
\pgfsys@animation@path@hookedtrue%
\fi%
}{}{}%
\expandafter\pgfsysanim@attach@special\csname pgfsysanim@phook@for@\pgfsys@id@ref{\pgfsysanim@whom@id}{\pgfsysanim@whom@type}\endcsname\pgfsysanim@path@all%
\fi%
}
\def\pgfsys@stroke@hook{\pgfsysanim@with@tipstrue\pgfsysanim@path@hooks\pgfsys@stroke@orig}
\def\pgfsys@fill@hook{\pgfsysanim@with@tipsfalse\pgfsysanim@path@hooks\pgfsys@fill@orig}
\def\pgfsys@fillstroke@hook{\pgfsysanim@with@tipstrue\pgfsysanim@path@hooks\pgfsys@fillstroke@orig}
\def\pgfsys@closestroke@hook{\pgfsysanim@with@tipsfalse\pgfsysanim@path@hooks\pgfsys@closestroke@orig}
\def\pgfsys@discardpath@hook{\pgfsysanim@with@tipsfalse\pgfsysanim@path@hooks\pgfsys@discardpath@orig}
\newif\ifpgfsysanim@with@tips
\def\pgfsysanim@path@hooks#1{%
{%
\expandafter\ifx\csname pgfsysanim@phook@for@\pgfsys@id@refcurrent\endcsname\relax%
#1%
\else%
\pgfsys@discardpath@orig%
\csname pgfsysanim@phook@for@\pgfsys@id@refcurrent\endcsname%
\pgfsysanim@c@begin%
\pgfsysanim@path@val%
#1%
\ifpgfsysanim@with@tips%
\ifx\pgfsysanim@path@val\pgfutil@empty\else%
\pgfsysanim@prepare@end@of@path%
\begingroup%
\pgfsysanim@prepare@start@of@path%
\pgfsysanim@add@marker@at@start%
\endgroup%
\pgfsysanim@add@marker@at@end%
\fi%
\fi%
\expandafter\global\expandafter\let\csname pgfsysanim@phook@for@\pgfsys@id@refcurrent\endcsname\relax%
\fi%
}%
}
\def\pgfsysanim@prepare@start@of@path{%
\ifx\pgfsysanim@snap@tip@start\pgfutil@empty\else
\ifx\pgfprocessresultpathsuffix\relax%
\pgfprocesssplitpath{\pgf@arrowpath}%
\fi%
\expandafter\pgf@parse@start\pgfprocessresultpathsuffix\pgf@stop\pgf@stop\pgf@stop%
\pgf@prep@start%
\fi%
}
\def\pgfsysanim@add@marker@at@start{%
\ifx\pgfsysanim@snap@tip@start\pgfutil@empty\else
{%
\pgftransformreset%
\pgftransformarrow{\pgfqpoint{\pgf@xc}{\pgf@yc}}{\pgfqpoint{\pgf@xb}{\pgf@yb}}%
\pgfsys@beginscope%
\pgflowlevelsynccm%
\pgfsys@marker@use{\pgfsysanim@snap@tip@start}%
\pgfsys@endscope%
}%
\fi%
}
\def\pgfsysanim@prepare@end@of@path{%
\let\pgfprocessresultpathsuffix\relax%
\let\pgfprocessresultsubpathsuffix\relax%
\pgf@precise@shorteningfalse%
\edef\pgf@path@shortening@distance{0pt}%
\ifx\pgfsysanim@snap@tip@end\pgfutil@empty\else
\pgfprocesssplitpath{\pgfsysanim@path@val}%
\pgfprocesssplitsubpath{\pgfprocessresultpathsuffix}%
\expandafter\pgf@parse@end\pgfprocessresultsubpathsuffix\pgf@stop\pgf@stop\pgf@stop%
\pgf@prep@end%
\fi%
}
\def\pgfsysanim@add@marker@at@end{%
\ifx\pgfsysanim@snap@tip@end\pgfutil@empty\else
{%
\pgftransformreset%
\pgftransformarrow{\pgfqpoint{\pgf@xc}{\pgf@yc}}{\pgfqpoint{\pgf@xb}{\pgf@yb}}%
\pgfsys@beginscope%
\pgflowlevelsynccm%
\pgfsys@marker@use{\pgfsysanim@snap@tip@end}%
\pgfsys@endscope%
}%
\fi%
}
\def\pgfsysanim@comp@scalar{%
\pgfsysanim@compute@fractions%
\pgfsysanim@mix@scalar%
\ifpgfsysanim@accumulate%
\ifnum\pgfsysanim@repeat@decimal=0\else%
\let\pgfsysanim@frac@b\pgfsysanim@one%
\let\pgfsysanim@prev@val\pgfsysanim@x@val%
\let\pgfsysanim@frac@a\pgfsysanim@repeat@decimal%
\let\pgfsysanim@next@val\pgfsysanim@last@val%
\pgfsysanim@mix@scalar%
\fi%
\fi%
}
\def\pgfsysanim@one{1}
\def\pgfsysanim@mix@scalar{%
\pgf@x\pgfsysanim@prev@val pt%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y\pgfsysanim@next@val pt%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@x@val{\pgf@sys@tonumber\pgf@x}%
}
\def\pgfsysanim@cap@scalar#1#2#3{%
\ifdim#1 pt<#2 pt%
\def#1{#2}%
\else\ifdim#1 pt>#3 pt%
\def#1{#3}%
\fi\fi%
}
\def\pgfsysanim@comp@scale{%
\pgfsysanim@compute@fractions%
\expandafter\expandafter\expandafter\pgfsysanim@mix@scale\expandafter\pgfsysanim@prev@val\pgfsysanim@next@val%
\ifpgfsysanim@accumulate%
\ifnum\pgfsysanim@repeat@decimal=0\else%
\let\pgfsysanim@frac@b\pgfsysanim@one%
\let\pgfsysanim@frac@a\pgfsysanim@repeat@decimal%
\expandafter\pgfsysanim@mix@scale\expandafter\pgfsysanim@x@val\expandafter\pgfsysanim@y@val\pgfsysanim@last@val%
\fi%
\fi%
}
\def\pgfsysanim@mix@scale#1#2#3#4{%
\pgf@x#1pt%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#3pt%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@x@val{\pgf@sys@tonumber\pgf@x}%
\pgf@x#2pt%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#4pt%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@y@val{\pgf@sys@tonumber\pgf@x}%
}
\def\pgfsysanim@comp@dimension{%
\pgfsysanim@compute@fractions%
\pgfsysanim@mix@dimension%
\ifpgfsysanim@accumulate%
\ifnum\pgfsysanim@repeat@decimal=0\else%
\let\pgfsysanim@frac@b\pgfsysanim@one%
\def\pgfsysanim@prev@val{\pgfsysanim@x@val pt}%
\let\pgfsysanim@frac@a\pgfsysanim@repeat@decimal%
\let\pgfsysanim@next@val\pgfsysanim@last@val%
\pgfsysanim@mix@dimension%
\fi%
\fi%
}
\def\pgfsysanim@mix@dimension{%
\pgf@x\pgfsysanim@prev@val%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y\pgfsysanim@next@val%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@x@val{\pgf@sys@tonumber\pgf@x}%
}
\def\pgfsysanim@comp@translate{%
\pgfsysanim@compute@fractions%
\expandafter\expandafter\expandafter\pgfsysanim@mix@translate\expandafter\pgfsysanim@prev@val\pgfsysanim@next@val%
\ifpgfsysanim@accumulate%
\ifnum\pgfsysanim@repeat@decimal=0\else%
\let\pgfsysanim@frac@b\pgfsysanim@one%
\let\pgfsysanim@frac@a\pgfsysanim@repeat@decimal%
\edef\pgfsysanim@prev@val{{\pgfsysanim@x@val pt}{\pgfsysanim@y@val pt}}
\expandafter\expandafter\expandafter\pgfsysanim@mix@translate\expandafter\pgfsysanim@prev@val\pgfsysanim@last@val%
\fi%
\fi%
}
\def\pgfsysanim@mix@translate#1#2#3#4{%
\pgf@x#1%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#3%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@x@val{\pgf@sys@tonumber\pgf@x}%
\pgf@x#2%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#4%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@y@val{\pgf@sys@tonumber\pgf@x}%
}
\def\pgfsysanim@comp@color{%
\pgfsysanim@compute@fractions%
\expandafter\expandafter\expandafter\pgfsysanim@mix@color\expandafter\pgfsysanim@prev@val\pgfsysanim@next@val%
\ifpgfsysanim@accumulate%
\ifnum\pgfsysanim@repeat@decimal=0\else%
\let\pgfsysanim@frac@b\pgfsysanim@one%
\let\pgfsysanim@frac@a\pgfsysanim@repeat@decimal%
\expandafter\pgfsysanim@mix@color\expandafter\pgfsysanim@x@val\expandafter\pgfsysanim@y@val\expandafter\pgfsysanim@z@val\pgfsysanim@last@val%
\fi%
\fi%
}
\def\pgfsysanim@mix@color#1#2#3#4#5#6{%
\pgf@x#1pt%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#4pt%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@x@val{\pgf@sys@tonumber\pgf@x}%
\pgf@x#2pt%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#5pt%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@y@val{\pgf@sys@tonumber\pgf@x}%
\pgf@x#3pt%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#6pt%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@z@val{\pgf@sys@tonumber\pgf@x}%
}
\def\pgfsysanim@comp@text{%
\let\pgfsysanim@text@val\pgfsysanim@prev@val%
}
\def\pgfsysanim@comp@dash{%
\pgfsysanim@compute@fractions%
\expandafter\expandafter\expandafter\pgfsysanim@mix@dash\expandafter\pgfsysanim@prev@val\pgfsysanim@next@val%
\ifpgfsysanim@accumulate%
\ifnum\pgfsysanim@repeat@decimal=0\else%
\let\pgfsysanim@frac@b\pgfsysanim@one%
\let\pgfsysanim@frac@a\pgfsysanim@repeat@decimal%
\edef\pgfsysanim@prev@val{{\pgfsysanim@dash@vals}{\pgfsysanim@x@val pt}}%
\expandafter\expandafter\expandafter\pgfsysanim@mix@dash\expandafter\pgfsysanim@prev@val\pgfsysanim@last@val%
\fi%
\fi%
}
\def\pgfsysanim@mix@dash#1#2#3#4{%
\pgf@x#2\relax%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#4\relax%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@x@val{\pgf@sys@tonumber\pgf@x}%
\let\pgfsysanim@dash@vals\pgfutil@empty%
\pgfsysanim@parse@dash#1,\pgf@stop#3,\pgf@stop%
}
\def\pgfsysanim@parse@dash{\pgfutil@ifnextchar\pgf@stop\pgfsysanim@parse@dash@done\pgfsysanim@parse@dash@first}
\def\pgfsysanim@parse@dash@done\pgf@stop\pgf@stop{}%
\def\pgfsysanim@parse@dash@first#1,#2\pgf@stop#3\pgf@stop{%
\pgf@x#1\relax%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgfsysanim@parse@dash@second#3\pgf@stop{#2}%
}
\def\pgfsysanim@parse@dash@second#1,#2\pgf@stop#3{%
\pgf@y#1\relax%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\def\pgfsys@temp{#2}%
\edef\pgfsysanim@dash@vals{\pgfsysanim@dash@vals\the\pgf@x\ifx\pgfsys@temp\pgfutil@empty\else,\fi}%
\pgfsysanim@parse@dash#3\pgf@stop#2\pgf@stop%
}
\def\pgfsysanim@comp@viewbox{%
\pgfsysanim@compute@fractions%
\expandafter\expandafter\expandafter\pgfsysanim@mix@viewbox\expandafter\pgfsysanim@prev@val\pgfsysanim@next@val%
\ifpgfsysanim@accumulate%
\pgferror{viewbox animations cannot accumulate / add}%
\fi%
}
\def\pgfsysanim@mix@viewbox#1#2#3#4#5#6#7#8{%
\pgf@x#1%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#5%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@x@val{\the\pgf@x}%
\pgf@x#2%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#6%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@y@val{\the\pgf@x}%
\pgf@x#3%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#7%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@z@val{\the\pgf@x}%
\pgf@x#4%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#8%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@w@val{\the\pgf@x}%
}
\def\pgfsysanim@comp@path{%
\pgfsysanim@compute@fractions%
\edef\pgfsysanim@path@tips{%
\def\noexpand\pgfsysanim@snap@tip@start{\pgfsysanim@snap@tip@start}%
\def\noexpand\pgfsysanim@snap@tip@end{\pgfsysanim@snap@tip@end}%
}%
\let\pgfsysanim@path@val\pgfutil@empty%
\expandafter\expandafter\expandafter\pgfsysanim@parse@path\expandafter\pgfsysanim@prev@val\expandafter\pgf@stop\expandafter\relax\pgfsysanim@next@val\pgf@stop\relax%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgfsysanim@path@all\expandafter\expandafter\expandafter{\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgfsysanim@path@val\expandafter\expandafter\expandafter{\expandafter\pgfsysanim@path@val\expandafter}\pgfsysanim@path@tips}%
\ifpgfsysanim@accumulate%
\pgferror{path animations cannot accumulate / add}%
\fi%
}
\def\pgfsysanim@parse@path{\pgfutil@ifnextchar\pgf@stop\pgfsysanim@parse@path@done\pgfsysanim@parse@path@first}
\def\pgfsysanim@parse@path@done\pgf@stop\relax\pgf@stop\relax{}%
\def\pgfsysanim@parse@path@first{\pgfutil@ifnextchar\bgroup\pgfsysanim@parse@path@first@num\pgfsysanim@parse@path@token}
\def\pgfsysanim@parse@path@token#1#2\relax#3#4\relax{%
\expandafter\def\expandafter\pgfsysanim@path@val\expandafter{\pgfsysanim@path@val#1}%
\pgfsysanim@parse@path#2\relax#4\relax%
}
\def\pgfsysanim@parse@path@first@num#1#2\relax#3#4\relax{%
\pgf@x#1%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y#3%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgfsysanim@path@val\expandafter\expandafter\expandafter{\expandafter\pgfsysanim@path@val\expandafter{\the\pgf@x}}%
\pgfsysanim@parse@path#2\relax#4\relax%
}
\def\pgfsysanim@comp@motion{%
\pgfsysanim@compute@fractions%
\pgf@x\pgfsysanim@prev@val pt%
\pgf@x\pgfsysanim@frac@b\pgf@x%
\pgf@y\pgfsysanim@next@val pt%
\advance\pgf@x by\pgfsysanim@frac@a\pgf@y%
\edef\pgfsysanim@x@val{\pgf@sys@tonumber\pgf@x}%
\ifdim\pgfsysanim@x@val pt=1pt%
\def\pgfsysanim@x@val{0.9999}%
\fi%
\pgf@relevantforpicturesizefalse%
\pgfdecoratepath{pgfsysanim@motion}{%
\pgfsyssoftpath@setcurrentpath\pgfsysanim@snap@movealong%
}%
\ifpgfsysanim@accumulate%
\pgferror{motion animations cannot accumulate / add}%
\fi%
}
\pgfdeclaredecoration{pgfsysanim@motion}{s}{%
\state{s}[width=\pgfsysanim@x@val\pgfdecoratedremainingdistance,next state=final]{}%
\state{final}{\pgfgettransform\pgfsysanim@motion@trans\global\let\pgfsysanim@motion@trans\pgfsysanim@motion@trans}%
}
\def\pgfsysanim@compute@fractions{%
\ifdim\pgf@xc=\pgfsysanim@prev@time pt%
\def\pgfsysanim@frac@a{0}%
\def\pgfsysanim@frac@b{1}%
\else%
\pgfmathsubtract@{\pgfsysanim@next@time}{\pgfsysanim@prev@time}%
\ifdim\pgfmathresult pt<0.01pt%
\def\pgfsysanim@frac@a{0}%
\def\pgfsysanim@frac@b{1}%
\else%
\let\pgfsysanim@divby\pgfmathresult%
\pgfmathsubtract@{\pgf@sys@tonumber\pgf@xc}{\pgfsysanim@prev@time}%
\pgfmathdivide@{\pgfmathresult}{\pgfsysanim@divby}%
\ifdim\pgfmathresult pt<0pt\def\pgfmathresult{0}\fi%
\ifdim\pgfmathresult pt>1pt\def\pgfmathresult{1}\fi%
\let\pgfsysanim@frac@a\pgfmathresult%
\pgfmathsubtract@{1}{\pgfmathresult}%
\let\pgfsysanim@frac@b\pgfmathresult%
\fi%
\fi%
\ifdim\pgfsysanim@frac@a pt=0pt%
\else\ifdim\pgfsysanim@frac@b pt=0pt%
\else%
\expandafter\expandafter\expandafter\pgfsysanim@apply@spline\expandafter\pgfsysanim@prev@spline\pgfsysanim@next@spline%
\fi\fi%
}
\def\pgfsysanim@apply@spline#1#2#3#4#5#6#7#8{%
\edef\pgfsys@temp{#3,#5,#4,#6}%
\ifx\pgfsys@temp\pgfsysanim@id@spline%
\else%
\def\pgfsysanim@prev@out@time{{#3}{#4}}%
\def\pgfsysanim@next@in@time{{#5}{#6}}%
\ifx\pgfsysanim@prev@out@time\pgfsys@stay@text%
\pgfsysanim@jump@splines%
\else\ifx\pgfsysanim@next@in@time\pgfsys@jump@text%
\pgfsysanim@jump@splines%
\else%
\pgf@xa#3pt%
\pgf@xb#5pt%
\let\pgfsysanim@t\pgfsysanim@frac@a%
\let\pgfsysanim@s\pgfsysanim@frac@b%
\pgfsysanim@eval@spline%
\edef\pgfsysanim@ft{\the\pgf@x}%
\pgf@x\pgfsysanim@t pt%
\advance\pgf@x by256sp%
\pgf@y1pt%
\advance\pgf@y by-\pgf@x%
\edef\pgfsysanim@t{\pgf@sys@tonumber\pgf@x}%
\edef\pgfsysanim@s{\pgf@sys@tonumber\pgf@y}%
\pgfsysanim@eval@spline%
\advance\pgf@x by-\pgfsysanim@ft%
\pgf@x256\pgf@x%
\pgf@ya\pgfsysanim@ft%
\advance\pgf@ya by-\pgfsysanim@frac@a pt%
\pgf@yb\pgf@x
\pgfmathreciprocal@{\pgf@sys@tonumber\pgf@yb}%
\ifdim\pgfmathresult pt>2.5pt%
\def\pgfmathresult{2.5}%
\fi%
\ifdim\pgfmathresult pt<-2.5pt%
\def\pgfmathresult{-2.5}%
\fi%
\pgf@x\pgfsysanim@t pt%
\advance\pgf@x by-\pgfmathresult\pgf@ya%
\pgf@y1pt%
\advance\pgf@y by-\pgf@x%
\edef\pgfsysanim@t{\pgf@sys@tonumber\pgf@x}%
\edef\pgfsysanim@s{\pgf@sys@tonumber\pgf@y}%
\pgfsysanim@eval@spline%
\edef\pgfsysanim@ft{\the\pgf@x}%
\pgf@x\pgfsysanim@t pt%
\advance\pgf@x by256sp%
\pgf@y1pt%
\advance\pgf@y by-\pgf@x%
\edef\pgfsysanim@t{\pgf@sys@tonumber\pgf@x}%
\edef\pgfsysanim@s{\pgf@sys@tonumber\pgf@y}%
\pgfsysanim@eval@spline%
\advance\pgf@x by-\pgfsysanim@ft%
\pgf@x256\pgf@x%
\pgf@ya\pgfsysanim@ft%
\advance\pgf@ya by-\pgfsysanim@frac@a pt%
\pgf@yb\pgf@x
\pgfmathreciprocal@{\pgf@sys@tonumber\pgf@yb}%
\ifdim\pgfmathresult pt>2.5pt%
\def\pgfmathresult{2.5}%
\fi%
\ifdim\pgfmathresult pt<-2.5pt%
\def\pgfmathresult{-2.5}%
\fi%
\pgf@x\pgfsysanim@t pt%
\advance\pgf@x by-\pgfmathresult\pgf@ya%
\pgf@y1pt%
\advance\pgf@y by-\pgf@x%
\edef\pgfsysanim@t{\pgf@sys@tonumber\pgf@x}%
\edef\pgfsysanim@s{\pgf@sys@tonumber\pgf@y}%
\pgfsysanim@eval@spline%
\edef\pgfsysanim@ft{\the\pgf@x}%
\pgf@x\pgfsysanim@t pt%
\advance\pgf@x by256sp%
\pgf@y1pt%
\advance\pgf@y by-\pgf@x%
\edef\pgfsysanim@t{\pgf@sys@tonumber\pgf@x}%
\edef\pgfsysanim@s{\pgf@sys@tonumber\pgf@y}%
\pgfsysanim@eval@spline%
\advance\pgf@x by-\pgfsysanim@ft%
\pgf@x256\pgf@x%
\pgf@ya\pgfsysanim@ft%
\advance\pgf@ya by-\pgfsysanim@frac@a pt%
\pgf@yb\pgf@x
\pgfmathreciprocal@{\pgf@sys@tonumber\pgf@yb}%
\ifdim\pgfmathresult pt>2.5pt%
\def\pgfmathresult{2.5}%
\fi%
\ifdim\pgfmathresult pt<-2.5pt%
\def\pgfmathresult{-2.5}%
\fi%
\pgf@x\pgfsysanim@t pt%
\advance\pgf@x by-\pgfmathresult\pgf@ya%
\pgf@y1pt%
\advance\pgf@y by-\pgf@x%
\edef\pgfsysanim@t{\pgf@sys@tonumber\pgf@x}%
\edef\pgfsysanim@s{\pgf@sys@tonumber\pgf@y}%
\pgf@xa#4pt%
\pgf@xb#6pt%
\pgfsysanim@eval@spline%
\pgf@y1pt%
\advance\pgf@y by-\pgf@x%
\edef\pgfsysanim@frac@a{\pgf@sys@tonumber\pgf@x}%
\edef\pgfsysanim@frac@b{\pgf@sys@tonumber\pgf@y}%
\fi\fi%
\fi%
}
\def\pgfsysanim@id@spline{0,1,0,1}
\def\pgfsysanim@eval@spline{%
\pgf@ya\pgfsysanim@t\pgf@xa%
\pgf@yb\pgfsysanim@t\pgf@xb%
\advance\pgf@yb by\pgfsysanim@s\pgf@xa%
\pgf@yc\pgfsysanim@t pt%
\advance\pgf@yc by\pgfsysanim@s\pgf@xb%
\pgf@y\pgfsysanim@t\pgf@yb%
\advance\pgf@y by\pgfsysanim@s\pgf@ya%
\pgf@xc\pgfsysanim@t\pgf@yc%
\advance\pgf@xc by\pgfsysanim@s\pgf@yb%
\pgf@x\pgfsysanim@t\pgf@xc%
\advance\pgf@x by\pgfsysanim@s\pgf@y%
}
\def\pgfsysanim@jump@splines{%
\ifx\pgfsysanim@prev@out@time\pgfsys@stay@text%
\ifx\pgfsysanim@next@in@time\pgfsys@jump@text%
\ifdim\pgfsysanim@frac@a pt<0.5pt%
\def\pgfsysanim@frac@a{0}%
\def\pgfsysanim@frac@b{1}%
\else%
\def\pgfsysanim@frac@a{1}%
\def\pgfsysanim@frac@b{0}%
\fi%
\else%
\def\pgfsysanim@frac@a{0}%
\def\pgfsysanim@frac@b{1}%
\fi%
\else
\def\pgfsysanim@frac@a{1}%
\def\pgfsysanim@frac@b{0}%
\fi%
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/systemlayer/pgfsysanimations.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex ====
\ProvidesFileRCS{pgfsysprotocol.code.tex}
\let\pgfsysprotocol@currentprotocol=\pgfutil@empty
\newif\ifpgfsysprotocol@buffered
\def\pgfsysprotocol@literalbuffered#1{%
\edef\pgfsysprotocol@temp{{#1\space}}%
\expandafter\pgfutil@g@addto@macro\expandafter\pgfsysprotocol@currentprotocol\pgfsysprotocol@temp%
}
\def\pgfsysprotocol@literal#1{%
\pgfsysprotocol@literalbuffered{#1}%
\ifpgfsysprotocol@buffered%
\else%
\pgfsysprotocol@flushcurrentprotocol%
\fi%
}
\def\pgfsysprotocol@getcurrentprotocol#1{%
\let#1=\pgfsysprotocol@currentprotocol%
}
\def\pgfsysprotocol@setcurrentprotocol#1{%
\global\let\pgfsysprotocol@currentprotocol=#1%
}
\def\pgfsysprotocol@invokecurrentprotocol{%
\ifx\pgfsysprotocol@currentprotocol\pgfutil@empty%
\else%
\expandafter\pgfsys@invoke\expandafter{\pgfsysprotocol@currentprotocol}%
\fi%
}
\def\pgfsysprotocol@flushcurrentprotocol{%
\pgfsysprotocol@invokecurrentprotocol%
\pgfsysprotocol@setcurrentprotocol\pgfutil@empty%
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex ====
\ProvidesFileRCS{pgfsyssoftpath.code.tex}
\let\pgfsyssoftpath@thepath=\pgfutil@empty
\let\pgfsyssoftpath@bigbuffer=\pgfutil@empty
\let\pgfsyssoftpath@smallbuffer=\pgfutil@empty
\newcount\pgfsyssoftpath@smallbuffer@items
\newcount\pgfsyssoftpath@bigbuffer@items
\def\pgfsyssoftpath@flushbuffers{%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\gdef%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\pgfsyssoftpath@thepath%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter{%
\expandafter\expandafter\expandafter\pgfsyssoftpath@thepath%
\expandafter\pgfsyssoftpath@bigbuffer\pgfsyssoftpath@smallbuffer}%
\global\let\pgfsyssoftpath@smallbuffer=\pgfutil@empty
\global\let\pgfsyssoftpath@bigbuffer=\pgfutil@empty
\global\pgfsyssoftpath@bigbuffer@items0\relax%
\global\pgfsyssoftpath@smallbuffer@items0\relax%
}
\def\pgfsyssoftpath@getcurrentpath#1{%
\pgfsyssoftpath@flushbuffers%
\let#1=\pgfsyssoftpath@thepath%
}
\def\pgfsyssoftpath@setcurrentpath#1{%
\global\let\pgfsyssoftpath@thepath=#1%
\global\let\pgfsyssoftpath@smallbuffer=\pgfutil@empty
\global\let\pgfsyssoftpath@bigbuffer=\pgfutil@empty
\global\pgfsyssoftpath@bigbuffer@items0\relax%
\global\pgfsyssoftpath@smallbuffer@items0\relax%
}
\def\pgfsyssoftpath@invokecurrentpath{%
\pgfsyssoftpath@thepath%
\pgfsyssoftpath@bigbuffer%
\pgfsyssoftpath@smallbuffer%
}
\def\pgfsyssoftpath@flushcurrentpath{%
\pgfsyssoftpath@invokecurrentpath%
\pgfsyssoftpath@setcurrentpath\pgfutil@empty%
}
\def\pgfsyssoftpath@addtocurrentpath#1{%
\global\advance\pgfsyssoftpath@smallbuffer@items by1\relax%
\ifnum\pgfsyssoftpath@smallbuffer@items<40\relax%
\expandafter\gdef\expandafter\pgfsyssoftpath@smallbuffer\expandafter{\pgfsyssoftpath@smallbuffer#1}%
\else%
\pgfsyssoftpath@smalloverflow{#1}%
\fi%
}
\def\pgfsyssoftpath@smalloverflow#1{%
\global\advance\pgfsyssoftpath@bigbuffer@items by1\relax%
\ifnum\pgfsyssoftpath@bigbuffer@items<30\relax%
\expandafter\expandafter\expandafter\gdef%
\expandafter\expandafter\expandafter\pgfsyssoftpath@bigbuffer%
\expandafter\expandafter\expandafter{\expandafter\pgfsyssoftpath@bigbuffer\pgfsyssoftpath@smallbuffer#1}%
\global\let\pgfsyssoftpath@smallbuffer=\pgfutil@empty%
\global\pgfsyssoftpath@smallbuffer@items0\relax%
\else%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\gdef%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\pgfsyssoftpath@thepath%
\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter{%
\expandafter\expandafter\expandafter\pgfsyssoftpath@thepath
\expandafter\pgfsyssoftpath@bigbuffer\pgfsyssoftpath@smallbuffer#1}%
\global\let\pgfsyssoftpath@smallbuffer=\pgfutil@empty
\global\let\pgfsyssoftpath@bigbuffer=\pgfutil@empty
\global\pgfsyssoftpath@bigbuffer@items0\relax%
\global\pgfsyssoftpath@smallbuffer@items0\relax%
\fi%
}
\def\pgfsyssoftpath@lastmoveto{{0pt}{0pt}}
\newif\ifpgfsyssoftpathmovetorelevant
\pgfsyssoftpathmovetorelevanttrue
\def\pgfsyssoftpath@moveto#1#2{%
\edef\pgfsyssoftpath@coord{{#1}{#2}}%
\expandafter\pgfsyssoftpath@addtocurrentpath\expandafter{\expandafter\pgfsyssoftpath@movetotoken\pgfsyssoftpath@coord}%
\ifpgfsyssoftpathmovetorelevant%
\global\let\pgfsyssoftpath@lastmoveto\pgfsyssoftpath@coord%
\fi%
}
\def\pgfsyssoftpath@lineto#1#2{%
\edef\pgfsyssoftpath@coord{{#1}{#2}}%
\expandafter\pgfsyssoftpath@addtocurrentpath\expandafter{\expandafter\pgfsyssoftpath@linetotoken\pgfsyssoftpath@coord}%
}
\def\pgfsyssoftpath@curveto#1#2#3#4#5#6{%
\edef\pgfsyssoftpath@temp{{%
\noexpand\pgfsyssoftpath@curvetosupportatoken{#1}{#2}%
\noexpand\pgfsyssoftpath@curvetosupportbtoken{#3}{#4}%
\noexpand\pgfsyssoftpath@curvetotoken{#5}{#6}%
}}%
\expandafter\pgfsyssoftpath@addtocurrentpath\pgfsyssoftpath@temp%
}
\def\pgfsyssoftpath@rect#1#2#3#4{%
\edef\pgfsyssoftpath@temp{{%
\noexpand\pgfsyssoftpath@rectcornertoken{#1}{#2}%
\noexpand\pgfsyssoftpath@rectsizetoken{#3}{#4}%
}}%
\expandafter\pgfsyssoftpath@addtocurrentpath\pgfsyssoftpath@temp%
}
\def\pgfsyssoftpath@closepath{%
\expandafter\pgfsyssoftpath@addtocurrentpath\expandafter{\expandafter\pgfsyssoftpath@closepathtoken\pgfsyssoftpath@lastmoveto}%
}
\def\pgfsyssoftpath@specialround#1#2{%
\edef\pgfsyssoftpath@temp{{#1}{#2}}%
\expandafter\pgfsyssoftpath@addtocurrentpath\expandafter{\expandafter\pgfsyssoftpath@specialroundtoken\pgfsyssoftpath@temp}%
}
\def\pgfsyssoftpath@movetotoken#1#2{\pgfsys@moveto{#1}{#2}}
\def\pgfsyssoftpath@linetotoken#1#2{\pgfsys@lineto{#1}{#2}}
\def\pgfsyssoftpath@rectcornertoken#1#2#3#4#5{\pgfsys@rect{#1}{#2}{#4}{#5}} %
\def\pgfsyssoftpath@curvetosupportatoken#1#2#3#4#5#6#7#8{\pgfsys@curveto{#1}{#2}{#4}{#5}{#7}{#8}}
\def\pgfsyssoftpath@closepathtoken#1#2{\pgfsys@closepath}
\let\pgfsyssoftpath@specialroundtoken=\pgfutil@gobbletwo
\def\pgfsyssoftpath@curvetosupportbtoken#1#2{curvetotokenb} %
\def\pgfsyssoftpath@curvetotoken#1#2{curvetotoken}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfcalendar.code.tex ====
\ProvidesFileRCS{pgfcalendar.code.tex}
\ifdefined\pgfintloaded\else
\input pgfint.code.tex
\fi
\ifx\translate\@undefined
\def\translate#1{#1}
\fi
\ifx\usedictionary\@undefined
\else
\usedictionary{translator-months-dictionary}
\fi
\long\def\pgfcalendar#1#2#3#4{%
\begingroup%
\let\ifdate=\pgfcalendar@local@ifdate%
\def\pgfcalendarprefix{#1}%
\pgfcalendardatetojulian{#2}{\pgfcalendarcurrentjulian}%
\edef\pgfcalendarbeginjulian{\the\pgfcalendarcurrentjulian}%
\edef\pgfcalendarbeginiso{#2}%
\pgfcalendardatetojulian{#3}{\pgfutil@tempcnta}%
\edef\pgfcalendarendjulian{\the\pgfutil@tempcnta}%
\advance\pgfutil@tempcnta by1\relax%
\edef\pgfcalendarendjulianplus{\the\pgfutil@tempcnta}%
\edef\pgfcalendarendiso{#3}%
\loop%
\ifnum\pgfcalendarcurrentjulian<\pgfcalendarendjulianplus\relax%
\pgfcalendarjuliantodate{\pgfcalendarcurrentjulian}%
{\pgfcalendarcurrentyear}{\pgfcalendarcurrentmonth}{\pgfcalendarcurrentday}%
\pgfcalendarjuliantoweekday{\pgfcalendarcurrentjulian}{\pgfutil@tempcntb}%
\edef\pgfcalendarcurrentweekday{\the\pgfutil@tempcntb}%
#4%
\advance\pgfcalendarcurrentjulian by1\relax%
\repeat%
\endgroup%
}
\newcount\pgfcalendarcurrentjulian
\def\pgfcalendar@local@ifdate{%
\let\pgfcalendarifdatejulian=\pgfcalendarcurrentjulian%
\let\pgfcalendarifdateyear=\pgfcalendarcurrentyear%
\let\pgfcalendarifdatemonth=\pgfcalendarcurrentmonth%
\let\pgfcalendarifdateday=\pgfcalendarcurrentday%
\let\pgfcalendarifdateweekday=\pgfcalendarcurrentweekday%
\pgfcalendar@launch@ifdate%
}
\def\pgfcalendarifdate#1#2#3#4{%
\pgfcalendardatetojulian{#1}{\pgfutil@tempcnta}%
\pgfcalendarjuliantodate{\pgfutil@tempcnta}
{\pgfcalendarifdateyear}{\pgfcalendarifdatemonth}{\pgfcalendarifdateday}%
\edef\pgfcalendarifdatejulian{\the\pgfutil@tempcnta}%
\pgfcalendarjuliantoweekday{\pgfutil@tempcnta}{\pgfutil@tempcntb}%
\edef\pgfcalendarifdateweekday{\the\pgfutil@tempcntb}%
\pgfcalendar@launch@ifdate{#2}{#3}{#4}%
}
\long\def\pgfcalendar@launch@ifdate#1{%
\pgfcalendarmatchesfalse%
\pgfqkeys{/pgf/calendar}{#1}%
\ifpgfcalendarmatches%
\expandafter\pgfutil@firstoftwo
\else%
\expandafter\pgfutil@secondoftwo
\fi%
}
\newif\ifpgfcalendarmatches
\pgfkeys{/pgf/calendar/all/.code=\pgfcalendarmatchestrue}
\pgfkeys{/pgf/calendar/Monday/.code={\ifnum\pgfcalendarifdateweekday=0\relax\pgfcalendarmatchestrue\fi}}
\pgfkeys{/pgf/calendar/Tuesday/.code={\ifnum\pgfcalendarifdateweekday=1\relax\pgfcalendarmatchestrue\fi}}
\pgfkeys{/pgf/calendar/Wednesday/.code={\ifnum\pgfcalendarifdateweekday=2\relax\pgfcalendarmatchestrue\fi}}
\pgfkeys{/pgf/calendar/Thursday/.code={\ifnum\pgfcalendarifdateweekday=3\relax\pgfcalendarmatchestrue\fi}}
\pgfkeys{/pgf/calendar/Friday/.code={\ifnum\pgfcalendarifdateweekday=4\relax\pgfcalendarmatchestrue\fi}}
\pgfkeys{/pgf/calendar/Saturday/.code={\ifnum\pgfcalendarifdateweekday=5\relax\pgfcalendarmatchestrue\fi}}
\pgfkeys{/pgf/calendar/Sunday/.code={\ifnum\pgfcalendarifdateweekday=6\relax\pgfcalendarmatchestrue\fi}}
\pgfkeys{/pgf/calendar/workday/.code={\ifnum\pgfcalendarifdateweekday<5\relax\pgfcalendarmatchestrue\fi}}
\pgfkeys{/pgf/calendar/weekend/.code={\ifnum\pgfcalendarifdateweekday>4\relax\pgfcalendarmatchestrue\fi}}
\pgfkeys{/pgf/calendar/equals/.cd,.value required,.code={%
\pgfcalendar@special@datetojulian{#1}%
\ifnum\pgfcalendarifdatejulian=\pgfutil@tempcnta\relax%
\pgfcalendarmatchestrue%
\fi}%
}
\pgfkeys{/pgf/calendar/day of month/.cd,.value required,.code={\ifnum#1=\pgfcalendarifdateday\relax\pgfcalendarmatchestrue\fi}}
\pgfkeys{/pgf/calendar/end of month/.cd,.default=1,.code={%
\ifpgfcalendarmatches%
\else%
{%
\pgfutil@tempcnta=\pgfcalendarifdatejulian\relax%
\advance\pgfutil@tempcnta by#1\relax%
\pgfcalendarjuliantodate{\pgfutil@tempcnta}{\pgf@dummy}{\pgf@dummy}{\pgf@cal@temp}%
\global\let\pgf@cal@temp=\pgf@cal@temp%
}%
\ifnum\pgf@cal@temp=1\relax\pgfcalendarmatchestrue\fi%
\fi}%
}
\pgfkeys{/pgf/calendar/at least/.cd,.value required,.code={%
\pgfcalendar@special@datetojulian{#1}%
\ifnum\pgfcalendarifdatejulian<\pgfutil@tempcnta\relax%
\else%
\pgfcalendarmatchestrue%
\fi%
}}
\pgfkeys{/pgf/calendar/at most/.cd,.value required,.code={%
\pgfcalendar@special@datetojulian{#1}%
\ifnum\pgfcalendarifdatejulian>\pgfutil@tempcnta\relax%
\else%
\pgfcalendarmatchestrue%
\fi%
}}
\pgfkeys{/pgf/calendar/between/.cd,.value required,.code args={#1and#2}{%
\pgfcalendar@special@datetojulian{#1}%
\ifnum\pgfcalendarifdatejulian<\pgfutil@tempcnta\relax%
\else%
\pgfcalendar@special@datetojulian{#2}%
\ifnum\pgfcalendarifdatejulian>\pgfutil@tempcnta\relax%
\else%
\pgfcalendarmatchestrue%
\fi%
\fi%
}}
\def\pgfcalendar@special@datetojulian#1{%
\edef\pgf@temp{#1}%
\expandafter\pgfcalendar@special@split@test\pgf@temp-\relax{#1}%
}
\def\pgfcalendar@special@split@test#1-#2-#3\relax#4{%
\def\pgf@temp{#3}%
\ifx\pgf@temp\pgfutil@empty%
\def\pgf@temp{\pgfcalendarifdateyear-#1-#2}%
\else%
\def\pgf@temp{#4}%
\fi%
\pgfcalendardatetojulian{\pgf@temp}{\pgfutil@tempcnta}%
}
\def\pgfcalendarsuggestedname{%
\ifx\pgfcalendarprefix\pgfutil@empty\else\pgfcalendarprefix-%
\pgfcalendarcurrentyear-\pgfcalendarcurrentmonth-\pgfcalendarcurrentday\fi%
}
\def\pgfcalendardatetojulian#1#2{\edef\pgf@temp{#1}\expandafter\pgfcalendar@datetojulian\pgf@temp+/{#2}}
\def\pgfcalendar@datetojulian#1-#2-#3+#4/#5{%
{%
\count1=#1\relax%
\count2=#2\relax%
\edef\pgf@temp{#3}%
\ifx\pgf@temp\pgfcalendar@last@text%
\advance\count2 by1\relax%
\count3=1\relax%
\else%
\count3=#3\relax%
\fi%
\edef\pgf@@temp{#4}%
\ifx\pgf@@temp\pgfutil@empty%
\count8=0\relax%
\else%
\pgfcalendar@unpack#4%
\fi%
\ifnum\count2<3\relax%
\count4=1\relax%
\else%
\count4=0\relax%
\fi%
\count5=\count1\relax%
\advance\count5 by 4800\relax%
\advance\count5 by-\count4\relax%
\count6=\count2\relax%
\count0=\count4\relax%
\multiply\count0 by12\relax
\advance\count6 by\count0\relax%
\advance\count6 by-3\relax%
\count7=\count3\relax%
\count0=\count6\relax%
\multiply\count0 by 153\relax%
\advance\count0 by 2\relax%
\divide\count0 by 5\relax%
\advance\count7 by \count0\relax%
\count0=\count5%
\multiply\count0by365\relax%
\advance\count7 by\count0\relax%
\count0=\count5\relax%
\divide\count0 by 4\relax%
\advance\count7 by\count0%
\count0=\count5\relax%
\divide\count0 by 100\relax%
\advance\count7 by-\count0\relax%
\count0=\count5\relax%
\divide\count0 by 400\relax%
\advance\count7 by\count0%
\advance\count7 by-32045\relax%
\ifx\pgf@temp\pgfcalendar@last@text%
\advance\count7by-1\relax%
\fi%
\advance\count7by\count8\relax%
\expandafter%
}%
\expandafter#5\the\count7\relax%
}
\def\pgfcalendar@last@text{last}
\def\pgfcalendar@unpack#1+{%
\count8=#1\relax%
}
\def\pgfcalendarjuliantodate#1#2#3#4{%
{%
\count1=#1\relax%
\count2=\count1\relax%
\advance\count2 by 32044\relax%
\count3=\count2\relax%
\divide\count3 by 146097\relax%
\count4=\count3\relax%
\multiply\count4 by-146097\relax%
\advance\count4 by\count2\relax%
\count5=\count4\relax%
\divide\count5 by36524\relax%
\advance\count5 by1\relax%
\multiply\count5 by3\relax%
\divide\count5 by4\relax%
\count6=\count4\relax%
\count0=\count5\relax%
\multiply\count0 by-36524\relax%
\advance\count6 by\count0\relax%
\count7=\count6\relax%
\divide\count7 by1461\relax%
\count8=\count7\relax%
\multiply\count8 by-1461\relax%
\advance\count8 by\count6\relax%
\count9=\count8\relax%
\divide\count9 by 365\relax%
\advance\count9 by 1\relax%
\multiply\count9 by3\relax%
\divide\count9 by4\relax%
\count10=\count8\relax%
\count0=\count9\relax%
\multiply\count0 by-365\relax%
\advance\count10 by\count0\relax%
\count11=\count3\relax%
\multiply\count11 by400\relax%
\count0=\count5\relax%
\multiply\count0 by100\relax%
\advance\count11 by\count0\relax%
\count0=\count7\relax%
\multiply\count0 by4\relax%
\advance\count11 by\count0\relax%
\advance\count11 by\count9\relax%
\count12=\count10\relax%
\multiply\count12 by5\relax%
\advance\count12 by 308\relax%
\divide\count12 by 153\relax%
\advance\count12 by -2\relax%
\count13=\count12\relax%
\advance\count13 by 4\relax%
\multiply\count13 by153\relax%
\divide\count13 by5\relax%
\count13=-\count13\relax%
\advance\count13 by 122\relax%
\advance\count13 by \count10\relax%
\count14=\count12\relax%
\advance\count14 by 2\relax%
\divide\count14 by12\relax%
\advance\count14 by\count11\relax%
\advance\count14 by-4800\relax%
\count15=\count12\relax%
\advance\count15 by2\relax%
\count0=\count15\relax%
\divide\count0 by12\relax%
\multiply\count0 by12\relax%
\advance\count15 by-\count0\relax%
\advance\count15 by1\relax%
\count16=\count13%
\advance\count16by 1\relax%
\xdef\pgf@temp@year{\the\count14}%
\xdef\pgf@temp@month{\ifnum\count15<10 0\fi\the\count15}%
\xdef\pgf@temp@day{\ifnum\count16<10 0\fi\the\count16}%
}%
\let#2=\pgf@temp@year%
\let#3=\pgf@temp@month%
\let#4=\pgf@temp@day%
}
\def\pgfcalendarjuliantoweekday#1#2{%
{%
\pgfutil@tempcnta=#1\relax%
#2=\pgfutil@tempcnta%
\divide#2by7\relax%
\multiply#2by-7\relax%
\advance#2by\pgfutil@tempcnta\relax%
\expandafter%
}%
\expandafter#2\the#2\relax%
}
\def\pgfcalendarweekdayname#1{%
\pgfutil@translate{\ifcase#1Monday\or Tuesday\or Wednesday\or Thursday\or Friday\or Saturday\or Sunday\fi}%
}
\def\pgfcalendarweekdayshortname#1{%
\pgfutil@translate{\ifcase#1Mon\or Tue\or Wed\or Thu\or Fri\or Sat\or Sun\fi}%
}
\def\pgfcalendarmonthname#1{%
\pgfutil@translate{\ifcase#1\or January\or February\or March\or April\or
May\or June\or July\or August\or September\or October\or
November\or December\fi}%
}
\def\pgfcalendarmonthshortname#1{%
\pgfutil@translate{\ifcase#1\or Jan\or Feb\or Mar\or Apr\or
May\or Jun\or Jul\or Aug\or Sep\or Oct\or
Nov\or Dec\fi}%
}
\def\pgfcalendarshorthand#1#2{\csname pgfcalendar@shorthand@#1#2\endcsname}
\expandafter\def\csname pgfcalendar@shorthand@d-\endcsname{%
{\pgfutil@tempcnta=\pgfcalendarcurrentday\relax\the\pgfutil@tempcnta}}
\expandafter\def\csname pgfcalendar@shorthand@d=\endcsname{%
{\pgfutil@tempcnta=\pgfcalendarcurrentday\relax\ifnum\pgfutil@tempcnta<10\relax\setbox0=\hbox{1}\kern\wd0\relax\fi\the\pgfutil@tempcnta}}
\expandafter\def\csname pgfcalendar@shorthand@d0\endcsname{%
\pgfcalendarcurrentday}
\expandafter\def\csname pgfcalendar@shorthand@m-\endcsname{%
{\pgfutil@tempcnta=\pgfcalendarcurrentmonth\relax\the\pgfutil@tempcnta}}
\expandafter\def\csname pgfcalendar@shorthand@m=\endcsname{%
{\pgfutil@tempcnta=\pgfcalendarcurrentmonth\relax\ifnum\pgfutil@tempcnta<10\relax\setbox0=\hbox{1}\kern\wd0\relax\fi\the\pgfutil@tempcnta}}
\expandafter\def\csname pgfcalendar@shorthand@m0\endcsname{%
\pgfcalendarcurrentmonth}
\expandafter\def\csname pgfcalendar@shorthand@y-\endcsname{%
\pgfcalendarcurrentyear}
\expandafter\def\csname pgfcalendar@shorthand@y=\endcsname{%
\pgfcalendarcurrentyear}
\expandafter\def\csname pgfcalendar@shorthand@y0\endcsname{%
\pgfcalendarcurrentyear}
\expandafter\def\csname pgfcalendar@shorthand@w.\endcsname{%
\pgfcalendarweekdayshortname{\pgfcalendarcurrentweekday}}
\expandafter\def\csname pgfcalendar@shorthand@wt\endcsname{%
\pgfcalendarweekdayname{\pgfcalendarcurrentweekday}}
\expandafter\def\csname pgfcalendar@shorthand@m.\endcsname{%
\pgfcalendarmonthshortname{\pgfcalendarcurrentmonth}}
\expandafter\def\csname pgfcalendar@shorthand@mt\endcsname{%
\pgfcalendarmonthname{\pgfcalendarcurrentmonth}}
\newcount\pgf@cal@easter@Y
\newcount\pgf@cal@easter@G
\newcount\pgf@cal@easter@C
\newcount\pgf@cal@easter@X
\newcount\pgf@cal@easter@Z
\newcount\pgf@cal@easter@D
\newcount\pgf@cal@easter@E
\newcount\pgf@cal@easter@N
\newcount\pgf@cal@easter@M
\newcount\pgf@cal@easter@julianday
\pgfutil@protected\def\pgfcalendareastersunday#1#2{%
\pgfintset\pgf@cal@easter@Y{#1}%
\pgfintset\pgf@cal@easter@G{%
\pgfintmod{\pgf@cal@easter@Y}{19}+1
}%
\pgfintset\pgf@cal@easter@C{%
\pgfintdivfloor{\pgf@cal@easter@Y}{100}+1
}%
\pgfintset\pgf@cal@easter@X{%
\pgfintdivfloor{3*\pgf@cal@easter@C}{4}-12
}%
\pgfintset\pgf@cal@easter@Z{%
\pgfintdivfloor{8*\pgf@cal@easter@C+5}{25}-5
}%
\pgfintset\pgf@cal@easter@D{%
\pgfintdivfloor{5*\pgf@cal@easter@Y}{4}-\pgf@cal@easter@X-10
}%
\pgfintset\pgf@cal@easter@E{%
\pgfintmod{11*\pgf@cal@easter@G+20+\pgf@cal@easter@Z-\pgf@cal@easter@X}{30}
}%
\ifnum\pgf@cal@easter@E<0
\pgfintset\pgf@cal@easter@E{\pgf@cal@easter@E+30}%
\fi
\ifnum\pgf@cal@easter@E=25
\ifnum\pgf@cal@easter@G>11
\pgfintset\pgf@cal@easter@E{\pgf@cal@easter@E+1}%
\fi
\else
\ifnum\pgf@cal@easter@E=24
\pgfintset\pgf@cal@easter@E{\pgf@cal@easter@E+1}%
\fi
\fi
\pgfintset\pgf@cal@easter@N{44-\pgf@cal@easter@E}%
\ifnum\pgf@cal@easter@N<21
\pgfintset\pgf@cal@easter@N{\pgf@cal@easter@N+30}%
\fi
\pgfintset\pgf@cal@easter@N{%
\pgf@cal@easter@N+7-\pgfintmod{\pgf@cal@easter@D+\pgf@cal@easter@N}{7}
}%
\ifnum\pgf@cal@easter@N>31
\pgfintset\pgf@cal@easter@N{\pgf@cal@easter@N-31}%
\pgfintset\pgf@cal@easter@M{4}%
\else
\pgfintset\pgf@cal@easter@M{3}%
\fi
\pgfcalendardatetojulian
{\pgf@cal@easter@Y-\pgf@cal@easter@M-\pgf@cal@easter@N}%
{#2}%
}
\pgfkeys{/pgf/calendar/Easter/.cd,.default=0,.code={%
\pgfcalendareastersunday{\pgfcalendarifdateyear}{\pgf@cal@easter@julianday}%
\ifnum\pgfcalendarifdatejulian=\pgfinteval{\pgf@cal@easter@julianday+#1}
\expandafter\pgfcalendarmatchestrue
\fi}%
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfcalendar.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfexternal.tex ====
\long\def\beginpgfgraphicnamed#1#2\endpgfgraphicnamed{\includegraphics{#1}}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfexternal.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfexternalwithdepth.tex ====
\long\def\beginpgfgraphicnamed#1#2\endpgfgraphicnamed{%
\begingroup
\setbox1=\hbox{\includegraphics{#1}}%
\openin1=#1.dpth
\ifeof1 \box1
\else
\read1 to\pgfincludeexternalgraphicsdp \closein1
\dimen0=\pgfincludeexternalgraphicsdp\relax
\hbox{\lower\dimen0 \box1 }%
\fi
\endgroup
}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfexternalwithdepth.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgffor.code.tex ====
\ProvidesPackageRCS{pgffor.code.tex}
\ifdefined\pgfmathloaded\else
\input pgfmath.code.tex
\fi
\newdimen\pgffor@iter
\newdimen\pgffor@skip
\newif\ifpgffor@continue
\def\pgffor@reset@hooks{%
\let\pgffor@beginhook=\relax%
\let\pgffor@endhook=\relax%
\let\pgffor@afterhook=\relax%
}
\pgffor@reset@hooks
\newtoks\pgffor@stack
\pgffor@stack={{}{}{}}
\def\pgffor@stackpush#1{%
\def\pgffor@stacktemp{#1}%
\expandafter\expandafter\expandafter\pgffor@stack\expandafter\expandafter\expandafter=%
\expandafter\expandafter\expandafter{\expandafter\expandafter\expandafter%
{\expandafter\pgffor@stacktemp\expandafter}\the\pgffor@stack}%
}
\def\pgffor@stackpop{\expandafter\pgffor@@stackpop\the\pgffor@stack\pgffor@stackstop}
\def\pgffor@@stackpop#1#2\pgffor@stackstop{\pgffor@stack{#2}#1}
\def\pgffor@emptyvalues{, \pgffor@stop,}%
\def\pgffor@foreach{%
\pgffor@atbeginforeach%
\let\pgffor@assign@before@code=\pgfutil@empty%
\let\pgffor@assign@after@code=\pgfutil@empty%
\let\pgffor@assign@once@code=\pgfutil@empty%
\let\pgffor@remember@code=\pgfutil@empty%
\let\pgffor@remember@once@code=\pgfutil@empty%
\pgffor@alphabeticsequencefalse%
\pgffor@contextfalse%
\let\pgffor@var=\pgfutil@empty
\pgffor@vars%
}
\let\foreach=\pgffor@foreach
\def\pgffor@vars{%
\pgfutil@ifnextchar i{\pgffor@@vars@end}{%
\pgfutil@ifnextchar[{\pgffor@@vars@opt}{%
\pgfutil@ifnextchar/{\pgffor@@vars@slash@gobble}{%
\pgffor@@vars}}}}%
\def\pgffor@@vars@end in{\pgfutil@ifnextchar\bgroup{\pgffor@normal@list}{\pgffor@macro@list}}
\def\pgffor@@vars@opt[#1]{\pgfkeys{/pgf/foreach/.cd,#1}\pgffor@vars}
\def\pgffor@@vars#1{\pgffor@var@add#1\pgffor@stop\pgffor@vars}
\def\pgffor@@vars@slash@gobble/{\pgffor@@vars}
\def\pgffor@var@add#1#2\pgffor@stop{%
\ifx\pgffor@var\pgfutil@empty%
\def\pgffor@var{#1}%
\def\pgffor@mainvar{#1}%
\else%
\expandafter\def\expandafter\pgffor@var\expandafter{\pgffor@var/#1}%
\fi%
}
\def\pgffor@expand@list@true{\let\pgffor@expand@list\edef}
\def\pgffor@expand@list@false{\let\pgffor@expand@list\def}
\def\pgffor@macro@list#1{%
\expandafter\pgffor@normal@list\expandafter{#1}}
\def\pgffor@normal@list#1{%
\pgffor@expand@list\pgffor@values{#1}%
\expandafter\def\expandafter\pgffor@values\expandafter{\pgffor@values, \pgffor@stop,}%
\ifx\pgffor@values\pgffor@emptyvalues
\def\pgffor@values{\pgffor@stop,}%
\fi%
\let\pgffor@body=\pgfutil@empty%
\global\pgffor@continuetrue%
\pgffor@collectbody}
\def\pgffor@collectbody{%
\pgfutil@ifnextchar\foreach{\pgffor@collectforeach}{%
\pgfutil@ifnextchar\bgroup{\pgffor@collectargument}{\pgffor@collectsemicolon}}%
}
\def\pgffor@collectforeach\foreach#1in{%
\pgfutil@ifnextchar\bgroup{\pgffor@collectforeach@normal{#1}}{\pgffor@collectforeach@macro{#1}}}
\def\pgffor@collectforeach@macro#1#2{%
\expandafter\long\expandafter\def\expandafter\pgffor@body\expandafter{\pgffor@body\foreach#1in#2}%
\pgffor@collectbody%
}
\def\pgffor@collectforeach@normal#1#2{%
\expandafter\long\expandafter\def\expandafter\pgffor@body\expandafter{\pgffor@body\foreach#1in{#2}}%
\pgffor@collectbody%
}
\long\def\pgffor@collectargument#1{%
\expandafter\pgfutil@in@\expandafter\foreach\expandafter{\pgffor@body}%
\ifpgfutil@in@%
\expandafter\long\expandafter\def\expandafter\pgffor@body\expandafter%
{\pgffor@body{#1}}%
\else%
\expandafter\long\expandafter\def\expandafter\pgffor@body\expandafter%
{\pgffor@body#1}%
\fi%
\pgffor@iterate%
}
\def\pgffor@collectsemicolon{%
\let\pgffor@next=\pgffor@collectnormalsemicolon%
\ifnum\the\catcode`\;=\active\relax%
\let\pgffor@next=\pgffor@collectactivesemicolon%
\fi%
\pgffor@next%
}
\def\pgffor@collectnormalsemicolon#1;{%
\expandafter\long\expandafter\def\expandafter\pgffor@body\expandafter{\pgffor@body#1;}%
\pgffor@iterate%
}
{
\catcode`\;=\active
\gdef\pgffor@collectactivesemicolon#1;{%
\expandafter\long\expandafter\def\expandafter\pgffor@body\expandafter{\pgffor@body#1;}%
\pgffor@iterate%
}
}
\def\pgffor@iterate{%
\let\pgffor@last=\pgfutil@empty%
\let\pgffor@prevlast=\pgfutil@empty%
\let\pgffor@dotsend=\pgfutil@empty%
\let\pgffor@dots@pre=\pgfutil@empty%
\let\pgffor@dots@post=\pgfutil@empty%
\expandafter\pgffor@scan\pgffor@values}
\def\pgffor@stop{\pgffor@stop}%
\def\pgffor@dots{...}%
\def\pgffor@scan{\pgfutil@ifnextchar({\pgffor@scanround}{\pgffor@scanone}}
\def\pgffor@scanround(#1)#2,{\def\pgffor@value{(#1)#2}\pgffor@scanned}
\def\pgffor@scanone#1,{\def\pgffor@value{#1}\pgffor@scanned}
\newif\ifpgffor@dots@in@
\def\pgffor@dots@in@#1...#2#3\pgffor@stop{%
\ifx\pgffor@dots@@#2%
\pgffor@dots@in@false%
\else%
\pgffor@dots@in@true%
\fi%
}
\def\pgffor@dots@@{\pgffor@dots@@}
\def\pgffor@scanned{%
\ifx\pgffor@value\pgffor@stop%
\let\pgffor@next=\pgffor@after%
\else%
\expandafter\pgffor@dots@in@\pgffor@value\pgffor@dots@...\pgffor@dots@@\pgffor@stop%
\ifpgffor@dots@in@%
\let\pgffor@next=\pgffor@handledots%
\else%
\let\pgffor@next=\pgffor@handlevalue%
\fi%
\ifpgffor@continue%
\else%
\let\pgffor@next=\pgffor@scan%
\fi%
\fi%
\pgffor@next}
\def\pgffor@after{%
\global\pgffor@continuetrue%
\pgffor@atendforeach%
\pgffor@afterhook}
\def\pgffor@handlevalue{%
\let\pgffor@prevlast=\pgffor@last%
\let\pgffor@last=\pgffor@value%
\pgffor@invokebody%
\pgffor@scan%
}
\def\pgffor@invokebody{%
\pgffor@begingroup%
\expandafter\pgfutil@in@\expandafter/\expandafter{\pgffor@var}%
\ifpgfutil@in@%
\expandafter\def\expandafter\pgffor@valuerest\expandafter{\pgffor@value//\relax}%
\expandafter\pgffor@multiassign\pgffor@var/\pgffor@stop/\pgffor@stop/\relax%
\else%
\expandafter\expandafter\expandafter\def\expandafter\pgffor@var\expandafter{\pgffor@value}%
\fi%
\ifx\pgffor@assign@once@code\pgfutil@empty%
\else%
\pgffor@assign@once@code%
\fi%
\ifx\pgffor@assign@before@code\pgfutil@empty%
\else%
\pgffor@assign@before@code%
\fi%
\expandafter\expandafter\expandafter\pgffor@reset@hooks\expandafter\pgffor@beginhook\expandafter\pgffor@body\pgffor@endhook%
\ifx\pgffor@assign@after@code\pgfutil@empty%
\else%
\pgffor@assign@after@code%
\fi%
\pgffor@endgroup%
}
\def\pgffor@multiassign#1/#2/\relax{%
\def\pgffor@currentvar{#1}%
\def\pgffor@rest{#2}%
\ifx\pgffor@currentvar\pgffor@stop%
\let\pgffor@next=\relax%
\else%
\let\pgffor@next=\pgffor@multiassignrest%
\fi%
\pgffor@next%
}
\def\pgffor@multiassignrest{\expandafter\pgffor@multiassignfinal\pgffor@valuerest}
\def\pgffor@multiassignfinal#1/#2/\relax{%
\def\pgffor@temp{#1}%
\ifx\pgffor@currentvar\pgffor@mainvar%
\ifpgffor@alphabeticsequence%
\pgffor@makealphabetic\pgffor@temp%
\fi%
\fi%
\def\pgffor@test{#2}%
\ifx\pgffor@test\pgfutil@empty%
\expandafter\def\expandafter\pgffor@valuerest\expandafter{\pgffor@temp//\relax}%
\else%
\def\pgffor@valuerest{#2/\relax}%
\fi%
\expandafter\expandafter\expandafter\def\expandafter\pgffor@currentvar\expandafter{\pgffor@temp}%
\expandafter\pgffor@multiassign\pgffor@rest/\relax%
}
\def\pgffor@gobblespaces#1{\pgfutil@ifnextchar x{#1}{#1}}
\def\pgffor@handledots{%
\pgffor@gobblespaces{\expandafter\pgffor@@handledots\pgffor@value\pgffor@@stop}%
}
\newif\ifpgffor@context
\def\pgffor@@handledots#1...#2\pgffor@@stop{%
\def\pgffor@dots@pre{#1}%
\def\pgffor@dots@post{#2}%
\def\pgffor@dots@stripcontext#1##1#2\pgffor@@stop{\def\pgffor@dotsvalue{##1}}%
\pgffor@contexttrue%
\ifx\pgffor@dots@pre\pgfutil@empty%
\ifx\pgffor@dots@post\pgfutil@empty%
\pgffor@contextfalse%
\def\pgffor@dots@stripcontext##1\pgffor@@stop{\def\pgffor@dotsvalue{##1}}%
\fi%
\fi%
\pgffor@gobblespaces{\pgffor@dotsscanend}%
}
\def\pgffor@dots@value@process#1{%
\expandafter\pgffor@dots@stripcontext#1\pgffor@@stop%
\expandafter\pgffor@dots@charcheck\pgffor@dotsvalue\pgffor@@stop%
\ifpgffor@alphabeticsequence
\else
\ifpgffor@assign@parse
\begingroup
\pgfkeys{/pgf/fpu/false/.try}%
\pgfmathparse{\pgffor@dotsvalue}%
\pgfmath@smuggleone\pgfmathresult
\endgroup
\let\pgffor@dotsvalue=\pgfmathresult
\fi
\fi
\let#1=\pgffor@dotsvalue%
}
\def\pgffor@dotsscanend#1,{%
\pgffor@alphabeticsequencefalse%
\def\pgffor@dotsend{#1}%
\pgffor@dots@value@process{\pgffor@dotsend}%
\pgffor@dots@value@process{\pgffor@last}%
\ifx\pgffor@prevlast\pgfutil@empty%
\ifdim\pgffor@dotsend pt>\pgffor@last pt%
\pgffor@skip=1pt%
\else%
\pgffor@skip=-1pt%
\fi%
\else%
\pgffor@dots@value@process{\pgffor@prevlast}%
\pgffor@skip=\pgffor@last pt%
\pgffor@iter=\pgffor@prevlast pt%
\advance\pgffor@skip by-\pgffor@iter%
\fi%
\pgffor@iter=\pgffor@last pt%
\pgffor@loop%
}
\def\pgffor@loop{%
\advance\pgffor@iter by\pgffor@skip%
\let\pgffor@next=\pgffor@doloop%
\ifdim\pgffor@skip<0pt%
\ifdim\pgffor@iter<\pgffor@dotsend pt%
\let\pgffor@next=\pgffor@endloop%
\fi%
\else%
\ifdim\pgffor@iter>\pgffor@dotsend pt%
\let\pgffor@next=\pgffor@endloop%
\fi%
\fi%
\ifpgffor@continue%
\else%
\let\pgffor@next=\pgffor@endloop%
\fi%
\pgffor@next%
}
\def\pgffor@endloop{%
\pgffor@alphabeticsequencefalse%
\pgffor@scan%
}
{\catcode`\p=12\catcode`\t=12\gdef\Pgffor@geT#1pt{#1}}
\def\pgffor@doloop{%
\pgffor@begingroup
\edef\pgffor@temp{\expandafter\Pgffor@geT\the\pgffor@iter}%
\edef\pgffor@incheck{{.0/}{\pgffor@temp/}}%
\expandafter\pgfutil@in@\pgffor@incheck%
\ifpgfutil@in@%
\expandafter\pgffor@strip\pgffor@temp%
\fi%
\expandafter\pgfutil@in@\expandafter/\expandafter{\pgffor@var}%
\ifpgfutil@in@%
\expandafter\def\expandafter\pgffor@valuerest\expandafter{\pgffor@temp//\relax}%
\expandafter\pgffor@multiassign\pgffor@var/\pgffor@stop/\pgffor@stop/\relax%
\else%
\ifpgffor@alphabeticsequence%
\pgffor@makealphabetic\pgffor@temp%
\expandafter\let\pgffor@var=\pgffor@temp%
\else%
\expandafter\expandafter\expandafter\def\expandafter\pgffor@var\expandafter{\pgffor@temp}%
\fi%
\fi%
\ifpgffor@context%
\let\pgffor@temp=\pgffor@dots@pre%
\expandafter\pgfutil@append@macrotomacro\expandafter%
{\expandafter\pgffor@temp\expandafter}\expandafter{\pgffor@var}%
\expandafter\pgfutil@append@macrotomacro\expandafter%
{\expandafter\pgffor@temp\expandafter}\expandafter{\pgffor@dots@post}%
\expandafter\let\pgffor@var=\pgffor@temp%
\fi%
\ifx\pgffor@assign@before@code\pgfutil@empty%
\else%
\pgffor@assign@before@code%
\fi%
\expandafter\expandafter\expandafter\pgffor@reset@hooks\expandafter\pgffor@beginhook\expandafter\pgffor@body\pgffor@endhook%
\ifx\pgffor@assign@after@code\pgfutil@empty%
\else%
\pgffor@assign@after@code%
\fi%
\pgffor@endgroup%
\pgffor@loop%
}
\def\pgffor@strip#1.0{\def\pgffor@temp{#1}}
\def\breakforeach{\global\pgffor@continuefalse}
\def\pgffor@gobbletil@pgffor@@stop#1\pgffor@@stop{}
\newif\ifpgffor@registeriscount
\def\pgffor@ifcsregister#1{%
\expandafter\pgffor@@ifcsregister\meaning#1\pgffor@stop}
\def\pgffor@@ifcsregister#1#2#3#4#5\pgffor@stop{%
\if#1m%
\pgffor@registeriscountfalse%
\let\pgffor@csnext=\pgfutil@secondoftwo%
\else%
\if#1u%
\let\pgffor@csnext=\pgfutil@secondoftwo%
\pgffor@registeriscountfalse%
\else%
\let\pgffor@csnext=\pgfutil@firstoftwo%
\if#4u%
\pgffor@registeriscounttrue%
\else%
\pgffor@registeriscountfalse%
\let\pgffor@csnext=\pgfutil@firstoftwo%
\fi%
\fi%
\fi%
\pgffor@csnext}
\newif\ifpgffor@alphabeticsequence
\def\pgffor@dots@charcheck#1\pgffor@@stop{%
\edef\pgffor@dots@charcheck@temp{#1}%
\expandafter\expandafter\expandafter\pgffor@@dotscharcheck\expandafter\meaning\pgffor@dots@charcheck@temp\pgffor@@stop%
}
\def\pgffor@@dotscharcheck#1#2\pgffor@@stop{%
\if#1t%
\afterassignment\pgffor@gobbletil@pgffor@@stop%
\expandafter\chardef\expandafter\pgffor@char\expandafter=\expandafter`\pgffor@dots@charcheck@temp\relax\pgffor@@stop%
\edef\pgffor@char{\the\pgffor@char}%
\ifnum\pgffor@char>64\relax%
\ifnum\pgffor@char<91\relax%
\let\pgffor@dotsvalue=\pgffor@char%
\pgffor@alphabeticsequencetrue%
\else%
\ifnum\pgffor@char>96\relax%
\ifnum\pgffor@char<123\relax%
\let\pgffor@dotsvalue=\pgffor@char%
\pgffor@alphabeticsequencetrue%
\fi%
\fi%
\fi%
\fi%
\fi%
}
\def\pgffor@makealphabetic#1{%
\pgfutil@tempcnta=#1\relax%
\ifnum\pgfutil@tempcnta>95\relax%
\advance\pgfutil@tempcnta by-96\relax%
\edef#1{\pgffor@alpha\pgfutil@tempcnta}%
\else%
\advance\pgfutil@tempcnta by-64 %
\edef#1{\pgffor@Alpha\pgfutil@tempcnta}%
\fi%
}
\def\pgffor@Alpha#1{%
\ifcase#1\relax\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or K\or L\or M%
\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or Z\else?\fi%
}
\def\pgffor@alpha#1{%
\ifcase#1\relax\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m%
\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\else?\fi%
}
\newtoks\pgffor@toks
\def\pgffor@addcstotoks#1{%
\expandafter\def\expandafter\pgffor@tokstemp\expandafter{\expandafter\def\expandafter#1\expandafter{#1}}%
\pgffor@@addcstotoks}
\def\pgffor@addregtotoks#1{%
\expandafter\def\expandafter\pgffor@tokstemp\expandafter{\expandafter#1\expandafter=\the#1}%
\pgffor@@addcstotoks}
\def\pgffor@addiftotoks#1{%
\begingroup%
\escapechar=-1\relax%
\expandafter\pgffor@@addiftotoks\string#1\pgffor@stop}
\def\pgffor@@addiftotoks#1#2#3#4\pgffor@stop{%
\endgroup
\csname if#3#4\endcsname%
\expandafter\def\expandafter\pgffor@tokstemp\expandafter{\csname#3#4true\endcsname}%
\else%
\expandafter\def\expandafter\pgffor@tokstemp\expandafter{\csname#3#4false\endcsname}%
\fi%
\pgffor@@addcstotoks%
}
\def\pgffor@@addcstotoks{%
\expandafter\expandafter\expandafter\pgffor@toks\expandafter\expandafter\expandafter=%
\expandafter\expandafter\expandafter{\expandafter\pgffor@tokstemp\the\pgffor@toks}%
}
\def\pgffor@atbeginforeach{%
\begingroup%
}
\def\pgffor@atendforeach{%
\global\edef\pgffor@remember@expanded{\pgffor@remember@code}%
\ifx\pgffor@remember@expanded\pgfutil@empty%
\else%
\pgffor@remember@expanded%
\global\let\pgffor@remember@expanded=\pgfutil@empty%
\fi%
\endgroup%
}
\def\pgffor@default@begingroup{%
\begingroup%
}
\let\pgffor@remember@once@expanded=\pgfutil@empty
\let\pgffor@remember@expanded=\pgfutil@empty
\def\pgffor@default@endgroup{%
\ifx\pgffor@remember@once@code\pgfutil@empty
\else
\xdef\pgffor@remember@once@expanded{\pgffor@remember@once@code}%
\fi
\ifx\pgffor@remember@code\pgfutil@empty
\else
\xdef\pgffor@remember@expanded{\pgffor@remember@code}%
\fi
\endgroup
\ifx\pgffor@remember@once@expanded\pgfutil@empty
\else
\pgffor@remember@once@expanded%
\global\let\pgffor@remember@once@expanded=\pgfutil@empty
\fi
\ifx\pgffor@assign@once@code\pgfutil@empty
\else
\global\let\pgffor@assign@once@code=\pgfutil@empty
\fi
\ifx\pgffor@remember@expanded\pgfutil@empty
\else
\pgffor@remember@expanded%
\global\let\pgffor@remember@expanded=\pgfutil@empty
\fi
}
\let\pgffor@begingroup=\pgffor@default@begingroup
\let\pgffor@endgroup=\pgffor@default@endgroup
\def\pgffor@stack@begingroup{%
\pgffor@toks={}%
\pgffor@addcstotoks{\pgffor@mainvar}%
\pgffor@addcstotoks{\pgffor@var}%
\pgffor@addcstotoks{\pgffor@body}%
\pgffor@addcstotoks{\pgffor@last}%
\pgffor@addcstotoks{\pgffor@prevlast}%
\pgffor@addcstotoks{\pgffor@dotsend}%
\pgffor@addcstotoks{\pgffor@assign@before@code}%
\pgffor@addcstotoks{\pgffor@assign@after@code}%
\pgffor@addcstotoks{\pgffor@remember@code}%
\pgffor@addcstotoks{\pgffor@remember@once@code}%
\pgffor@addcstotoks{\pgffor@dots@pre}%
\pgffor@addcstotoks{\pgffor@dots@post}%
\pgffor@addregtotoks{\pgffor@iter}%
\pgffor@addregtotoks{\pgffor@skip}%
\pgffor@addiftotoks{\ifpgffor@alphabeticsequence}%
\pgffor@addiftotoks{\ifpgffor@context}%
\expandafter\pgffor@stackpush\expandafter{\the\pgffor@toks}%
}
\def\pgffor@stack@endgroup{\pgffor@stackpop}
\newif\ifpgffor@assign@evaluate
\newif\ifpgffor@assign@once
\newif\ifpgffor@assign@parse
\pgfkeys{/pgf/foreach/.cd,
var/.code=\pgffor@var@add#1\pgffor@stop,
scope iterations/.code={
\csname if#1\endcsname%
\let\pgffor@begingroup=\pgffor@default@begingroup%
\let\pgffor@endgroup=\pgffor@default@endgroup%
\else%
\let\pgffor@begingroup=\pgffor@stack@begingroup%
\let\pgffor@endgroup=\pgffor@stack@endgroup%
\fi%
},
evaluate/.code=\pgffor@assign@evaluatetrue\pgffor@assign@oncefalse\pgffor@assign@parse{#1},%
assign/.code=\pgffor@assign@evaluatefalse\pgffor@assign@oncefalse\pgffor@assign@parse{#1},%
evaluate once/.code=\pgffor@assign@evaluatetrue\pgffor@assign@oncetrue\pgffor@assign@parse{#1},%
assign once/.code=\pgffor@assign@evaluatefalse\pgffor@assign@oncetrue\pgffor@assign@parse{#1},%
remember/.code=\pgffor@remember@parse{#1},%
count/.code=\pgffor@count@parse#1\pgffor@stop,
parse/.is if=pgffor@assign@parse,
parse/.default=false,
expand list/.is if=pgffor@expand@list@,
expand list/.default=true,
expand list=false,
}
\def\pgffor@assign@parse#1{%
\pgfutil@in@;{#1}%
\ifpgfutil@in@%
\else%
\pgfutil@in@={#1}%
\fi%
\ifpgfutil@in@%
\pgffor@assign@@parse#1;\pgffor@stop;%
\else%
\pgffor@assign@parse@old#1\pgffor@stop%
\fi%
}
\def\pgffor@stop{\pgffor@stop}
\def\pgffor@assign@@parse#1;{%
\def\pgffor@test{#1}%
\ifx\pgffor@test\pgffor@stop%
\let\pgffor@next=\relax%
\else%
\let\pgffor@next=\pgffor@assign@@parse%
\ifx\pgffor@test\pgfutil@empty%
\else%
\pgfutil@in@={#1}%
\ifpgfutil@in@%
\pgffor@assign@@@parse#1\pgffor@stop%
\else%
\pgffor@assign@@@parse#1=#1\pgffor@stop%
\fi%
\fi%
\fi%
\pgffor@next}
\def\pgffor@assign@@@parse#1=#2\pgffor@stop{%
\ifpgffor@assign@evaluate%
\ifpgffor@assign@once%
\pgfutil@append@tomacro{\pgffor@assign@once@code}{\pgfmathparse{#2}\let#1=\pgfmathresult}%
\pgfutil@append@tomacro{\pgffor@remember@once@code}{\noexpand\def\noexpand#1{#2}}%
\else
\pgfutil@append@tomacro{\pgffor@assign@before@code}{\pgfmathparse{#2}\let#1=\pgfmathresult}%
\fi%
\else%
\ifpgffor@assign@once%
\pgfutil@append@tomacro{\pgffor@assign@once@code}{\def#1{#2}}%
\pgfutil@append@tomacro{\pgffor@remember@once@code}{\noexpand\def\noexpand#1{#2}}%
\else
\pgfutil@append@tomacro{\pgffor@assign@before@code}{\def#1{#2}}%
\fi%
\fi%
}
\def\pgffor@assign@parse@old#1#2\pgffor@stop{%
\pgffor@assign@@parse@old#2\pgffor@stop as#1using #1\pgffor@@stop}
\def\pgffor@assign@@parse@old#1as#2#3\pgffor@@stop{%
\pgffor@assign@@@parse@old{#2}#1#3\pgffor@stop\pgffor@@stop}
\def\pgffor@assign@@@parse@old#1#2using #3\pgffor@stop#4\pgffor@@stop{%
\pgffor@assign@@@parse#1=#3\pgffor@stop}
\def\pgffor@remember@parse#1{%
\pgfutil@in@ a{#1}%
\ifpgfutil@in@%
\pgffor@remember@parse@old#1\pgffor@stop%
\else%
\pgffor@remember@@parse#1;\pgffor@stop;%
\fi%
}
\def\pgffor@remember@@parse#1;{%
\def\pgffor@test{#1}%
\ifx\pgffor@test\pgffor@stop%
\let\pgffor@next=\relax%
\else%
\let\pgffor@next=\pgffor@remember@@parse%
\ifx\pgffor@test\pgfutil@empty%
\else%
\pgfutil@in@={#1}%
\ifpgfutil@in@%
\pgffor@remember@@@parse#1\pgffor@stop%
\else%
\pgffor@ifcsregister{#1}{%
\pgfutil@append@tomacro{\pgffor@remember@code}{\noexpand#1=\the#1\noexpand\relax}%
}%
{%
\pgfutil@append@tomacro{\pgffor@remember@code}{\noexpand\def\noexpand#1{#1}}%
}%
\fi%
\fi%
\fi%
\pgffor@next%
}
\def\pgffor@remember@@@parse#1=#2\pgffor@stop{%
\pgffor@ifcsregister{#2}{%
\pgfutil@append@tomacro{\pgffor@assign@after@code}{\expandafter\def\expandafter#1\expandafter{\the#2}}%
\pgfutil@append@tomacro{\pgffor@remember@code}{\noexpand\def\noexpand#1{#1}}%
}%
{%
\pgfutil@append@tomacro{\pgffor@assign@after@code}{\expandafter\def\expandafter#1\expandafter{#2}}%
\pgfutil@append@tomacro{\pgffor@remember@code}{\noexpand\def\noexpand#1{#1}}%
}%
}
\def\pgffor@remember@parse@old#1#2\pgffor@stop{%
\pgffor@remember@@parse@old#1#2\pgffor@stop as#1(initially 0)\pgffor@@stop}
\def\pgffor@remember@@parse@old#1#2as#3#4\pgffor@@stop{%
\pgffor@remember@@@parse@old{#1}{#3}#2#4\pgffor@stop\pgffor@@stop}
\def\pgffor@remember@@@parse@old#1#2#3(initially #4)#5\pgffor@stop#6\pgffor@@stop{%
\pgfutil@append@tomacro{\pgffor@assign@after@code}{\edef#2{#1}}%
\pgfutil@append@tomacro{\pgffor@remember@code}{\noexpand\def\noexpand#2{#2}}%
\pgfutil@append@tomacro{\pgffor@assign@once@code}{\def#2{#4}}%
}
\def\pgffor@count@parse#1#2\pgffor@stop{%
\pgffor@count@@parse#1#2\pgffor@stop from 1\pgffor@stop\pgffor@@stop}
\def\pgffor@count@@parse#1#2from#3\pgffor@stop#4\pgffor@@stop{%
\pgfutil@append@tomacro\pgffor@remember@code{\noexpand\def\noexpand#1{#1}}%
\pgfutil@append@tomacro\pgffor@assign@before@code{\pgfmathparse{int(#1+1)}\let#1=\pgfmathresult}%
\pgfmathparse{int(#3-1)}\let#1=\pgfmathresult%
}
\def\pgfutil@append@macrotomacro#1#2{%
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter%
#1\expandafter\expandafter\expandafter{\expandafter#1#2}}
\def\pgfutil@append@tomacro#1#2{%
\expandafter\def\expandafter#1\expandafter{#1#2}}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgffor.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfkeys.code.tex ====
\ifx\pgfkeysloaded\undefined
\let\pgfkeysloaded=\relax
\else
\expandafter\endinput
\fi
\def\pgfkeys@empty{}
\long\def\pgfkeys@firstoftwo#1#2{#1}
\long\def\pgfkeys@secondoftwo#1#2{#2}
\long\def\pgfkeys@ifcsname#1{%
\ifcsname#1\endcsname
\expandafter\pgfkeys@firstoftwo
\else
\expandafter\pgfkeys@secondoftwo
\fi
}
\ifx\PackageError\undefined
\def\pgfkeys@error#1{\errmessage{Package pgfkeys Error: #1}}%
\else
\def\pgfkeys@error#1{\PackageError{pgfkeys}{#1}{}}%
\fi
\ifx\eTeXrevision\undefined%
\pgfkeys@error{PGF requires etex in extended mode}%
\csname @@end\expandafter\endcsname\expandafter\end%
\fi
\ifnum\eTeXversion<2
\pgfkeys@error{PGF requires etex version 2}%
\csname @@end\expandafter\endcsname\expandafter\end%
\fi
\ifx\contextversion\undefined
\let\pgfkeys@expanded \expanded
\let\pgfkeys@unexpanded \unexpanded
\else
\let\pgfkeys@expanded \normalexpanded
\let\pgfkeys@unexpanded \normalunexpanded
\fi
\begingroup
\edef\pgfkeys@tmpa{\string\expanded}
\edef\pgfkeys@tmpb{\meaning\pgfkeys@expanded}
\expandafter
\endgroup
\ifx\pgfkeys@tmpa\pgfkeys@tmpb
\else
\pgfkeys@error{PGF requires the \noexpand\expanded primitive}
\csname @@end\expandafter\endcsname\expandafter\end%
\fi
\long\def\pgfkeyssetvalue#1#2{%
\pgfkeys@temptoks{#2}\expandafter\edef\csname pgfk@#1\endcsname{\the\pgfkeys@temptoks}%
}
\long\def\pgfkeyssetevalue#1#2{%
\expandafter\edef\csname pgfk@#1\endcsname
{\pgfkeys@unexpanded\expandafter{\pgfkeys@expanded{#2}}}%
}
\long\def\pgfkeysaddvalue#1#2#3{%
{%
\toks0{#2}%
\pgfkeysifdefined{#1}
{\pgfkeys@temptoks\expandafter\expandafter\expandafter{\csname pgfk@#1\endcsname}}%
{\pgfkeys@temptoks{}}%
\toks1{#3}%
\xdef\pgfkeys@global@temp{\the\toks0 \the\pgfkeys@temptoks \the\toks1}%
}%
\pgfkeyslet{#1}\pgfkeys@global@temp%
}
\long\def\pgfkeyslet#1#2{%
\expandafter\let\csname pgfk@#1\endcsname#2%
}
\long\def\pgfkeysgetvalue#1#2{%
\pgfkeys@ifcsname{pgfk@#1}%
{\expandafter\let\expandafter#2\csname pgfk@#1\endcsname}%
{\let#2\relax}}
\let\pgfkeys@relax\relax
\long\def\pgfkeysvalueof#1{\csname\pgfkeys@ifcsname{pgfk@#1}{pgfk@#1}{pgfkeys@relax}\endcsname}
\long\def\pgfkeysifdefined#1{%
\ifcsname pgfk@#1\endcsname
\expandafter\pgfkeys@firstoftwo
\else
\expandafter\pgfkeys@secondoftwo
\fi
}
\long\def\pgfkeysifassignable#1#2#3{%
\pgfkeysifdefined{#1}%
{#2}
{\pgfkeysifdefined{#1/.@cmd}%
{#2}%
{#3}}%
}%
\newtoks\pgfkeys@pathtoks
\def\pgfkeyscurrentpath{\the\pgfkeys@pathtoks}
\newtoks\pgfkeys@temptoks
\def\pgfkeys@root{/}
\let\pgfkeysdefaultpath\pgfkeys@root
\def\pgfkeys{\expandafter\pgfkeys@@set\expandafter{\pgfkeysdefaultpath}}%
\long\def\pgfkeys@@set#1#2{%
\let\pgfkeysdefaultpath\pgfkeys@root%
\pgfkeys@parse#2,\pgfkeys@mainstop%
\def\pgfkeysdefaultpath{#1}}
\def\pgfkeys@parse{\futurelet\pgfkeys@possiblerelax\pgfkeys@parse@main}
\def\pgfkeys@parse@main{%
\ifx\pgfkeys@possiblerelax\pgfkeys@mainstop%
\expandafter\pgfkeys@cleanup%
\else%
\expandafter\pgfkeys@normal%
\fi%
}
\newif\ifpgfkeys@syntax@handlers
\def\pgfkeys@normal{%
\ifpgfkeys@syntax@handlers%
\expandafter\pgfkeys@syntax@handlers%
\else%
\expandafter\pgfkeys@@normal%
\fi%
}
\def\pgfkeys@syntax@handlers{\pgf@keys@utilifnextchar\relax\pgfkeys@syntax@@handlers\pgfkeys@syntax@@handlers}%
\def\pgfkeys@syntax@@handlers{\futurelet\pgfkeys@first@char\pgfkeys@syntax@handlers@test}
\def\pgfkeys@syntax@handlers@test{%
\pgfkeysgetvalue{/handlers/first char syntax/\meaning\pgfkeys@first@char}\pgfkeys@the@handler%
\ifx\pgfkeys@the@handler\relax%
\expandafter\pgfkeys@@normal%
\else%
\expandafter\pgfkeys@use@handler%
\fi%
}
\long\def\pgfkeys@use@handler#1,{%
\pgfkeys@the@handler{#1}%
\pgfkeys@parse%
}
\long\def\pgfkeys@@normal#1,{%
\pgfkeys@unpack#1=\pgfkeysnovalue=\pgfkeys@stop%
\pgfkeys@parse%
}
\def\pgfkeys@cleanup\pgfkeys@mainstop{}
\def\pgfkeys@mainstop{\pgfkeys@mainstop} %
\def\pgfkeys@novalue{}
\def\pgfkeysnovalue{\pgfkeys@novalue} %
\def\pgfkeysnovalue@text{\pgfkeysnovalue}
\def\pgfkeysvaluerequired{\pgfkeysvaluerequired} %
\long\def\pgfkeys@unpack#1=#2=#3\pgfkeys@stop{%
\pgfkeys@spdef\pgfkeyscurrentkey{#1}%
\edef\pgfkeyscurrentkey{\pgfkeyscurrentkey}%
\ifx\pgfkeyscurrentkey\pgfkeys@empty%
\else%
\pgfkeys@add@path@as@needed%
\pgfkeys@spdef\pgfkeyscurrentvalue{#2}%
\ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text%
\pgfkeysifdefined{\pgfkeyscurrentkey/.@def}%
{\pgfkeysgetvalue{\pgfkeyscurrentkey/.@def}{\pgfkeyscurrentvalue}}
{}%
\fi%
\ifx\pgfkeyscurrentvalue\pgfkeysvaluerequired%
\def\pgf@marshal{\pgfkeysvalueof{/errors/value required/.@cmd}}%
\expandafter\pgf@marshal\expandafter{\pgfkeyscurrentkey}{}\pgfeov%
\else%
\pgfkeys@case@one%
\fi%
\fi}
\def\pgfkeys@case@one{%
\pgfkeysifdefined{\pgfkeyscurrentkey/.@cmd}%
{\pgfkeysgetvalue{\pgfkeyscurrentkey/.@cmd}{\pgfkeys@code}%
\ifx\pgfkeys@code\relax\expandafter\pgfkeys@firstoftwo\else\expandafter\pgfkeys@secondoftwo\fi
{\pgfkeys@unknown}%
{\expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov}}
{\pgfkeys@case@two}%
}
\def\pgfkeys@case@two{%
\pgfkeysifdefined{\pgfkeyscurrentkey}%
{\pgfkeys@case@two@extern}%
{\pgfkeys@case@three}%
}
\def\pgfkeys@case@two@extern{%
\ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text%
\pgfkeysvalueof{\pgfkeyscurrentkey}%
\else%
\pgfkeyslet{\pgfkeyscurrentkey}\pgfkeyscurrentvalue%
\fi%
}
\def\pgfkeys@case@three{%
\pgfkeys@split@path%
\pgfkeysifdefined{/handlers/\pgfkeyscurrentname/.@cmd}%
{\pgfkeysgetvalue{/handlers/\pgfkeyscurrentname/.@cmd}{\pgfkeys@code}%
\expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov}
{\pgfkeys@unknown}%
}
\let\pgfkeys@case@three@handleall=\pgfkeys@case@three
\def\pgfkeys@case@three@handle@restricted{%
\pgfkeys@split@path%
\pgfkeysifdefined{/handlers/\pgfkeyscurrentname/.@cmd}{%
\pgfkeys@ifexecutehandler{%
\pgfkeysgetvalue{/handlers/\pgfkeyscurrentname/.@cmd}{\pgfkeys@code}%
\expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov
}{%
\let\pgfkeys@tempa=\pgfkeyscurrentkey
\let\pgfkeys@tempb=\pgfkeyscurrentname
\edef\pgfkeyscurrentkey{\pgfkeyscurrentpath}%
\pgfkeys@split@path%
\let\pgfkeyscurrentkey=\pgfkeys@tempa
\edef\pgfkeyscurrentname{\pgfkeyscurrentname/\pgfkeys@tempb}%
\pgfkeys@unknown
}%
}{%
\pgfkeys@unknown
}%
}
\def\pgfkeys@ifexecutehandler#1#2{#1}%
\let\pgfkeys@ifexecutehandler@handleall=\pgfkeys@ifexecutehandler
\def\pgfkeys@ifexecutehandler@handleonlyexisting#1#2{%
\pgfkeys@ifcsname{pgfk@excpt@\pgfkeyscurrentname}{%
#1%
}{%
\pgfkeysifdefined{\pgfkeyscurrentpath}{#1}{%
\pgfkeysifdefined{\pgfkeyscurrentpath/.@cmd}{#1}{#2}%
}{}%
}%
}%
\def\pgfkeys@ifexecutehandler@handlefullorexisting#1#2{%
\ifpgfkeysaddeddefaultpath
\pgfkeys@ifcsname{pgfk@excpt@\pgfkeyscurrentname}{%
#1%
}{%
\pgfkeysifdefined{\pgfkeyscurrentpath}{%
#1%
}{%
\pgfkeysifdefined{\pgfkeyscurrentpath/.@cmd}{%
#1%
}{%
#2%
}%
}%
}%
\else
#1%
\fi
}%
\def\pgfkeysaddhandleonlyexistingexception#1{\expandafter\def\csname pgfk@excpt@#1\endcsname{1}}%
\def\pgfkeys@unknown{%
\pgfkeysifdefined{\pgfkeyscurrentpath/.unknown/.@cmd}%
{%
\pgfkeysgetvalue{\pgfkeyscurrentpath/.unknown/.@cmd}{\pgfkeys@code}%
\expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov}
{%
\pgfkeysgetvalue{/handlers/.unknown/.@cmd}{\pgfkeys@code}%
\expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov%
}%
}
\long\def\pgfkey@argumentisspace#1{%
\long\def\pgfkeys@spdef##1##2{%
\futurelet\pgfkeys@possiblespace\pgfkeys@sp@a##2\pgfkeys@stop\pgfkeys@stop#1\pgfkeys@stop\relax##1}%
\def\pgfkeys@sp@a{%
\ifx\pgfkeys@possiblespace\pgfkeys@sptoken%
\expandafter\pgfkeys@sp@b%
\else%
\expandafter\pgfkeys@sp@b\expandafter#1%
\fi}%
\long\def\pgfkeys@sp@b#1##1 \pgfkeys@stop{\pgfkeys@sp@c##1}%
}
\pgfkey@argumentisspace{ }
\long\def\pgfkeys@sp@c#1\pgfkeys@stop#2\relax#3{\pgfkeys@temptoks{#1}\edef#3{\the\pgfkeys@temptoks}}
{\def\:{\global\let\pgfkeys@sptoken= } \: }
\def\pgfkeys@add@path@as@needed{%
\expandafter\futurelet\expandafter\pgfkeys@possibleslash\expandafter\pgfkeys@check@slash\pgfkeyscurrentkey\relax%
}
\newif\ifpgfkeysaddeddefaultpath
\def\pgfkeys@check@slash{%
\ifx\pgfkeys@possibleslash/%
\expandafter\pgfkeys@nevermind%
\else%
\expandafter\pgfkeys@addpath%
\fi%
}
\def\pgfkeys@nevermind#1\relax{%
\pgfkeysaddeddefaultpathfalse
\let\pgfkeyscurrentkeyRAW\pgfkeyscurrentkey
}
\def\pgfkeys@addpath#1\relax{%
\pgfkeysaddeddefaultpathtrue
\def\pgfkeyscurrentkeyRAW{#1}%
\edef\pgfkeyscurrentkey{\pgfkeysdefaultpath#1}%
}
\def\pgfkeys@split@path{%
\pgfkeys@pathtoks{}%
\expandafter\pgfkeys@splitter\pgfkeyscurrentkey//%
}
\def\pgfkeys@splitter#1/#2/{%
\def\pgfkeys@temp{#2}%
\ifx\pgfkeys@temp\pgfkeys@empty%
\def\pgfkeyscurrentname{#1}%
\expandafter\pgfkeys@gobbletoslash%
\else%
\expandafter\pgfkeys@pathtoks\expandafter{\the\pgfkeys@pathtoks#1/}%
\fi%
\pgfkeys@splitter#2/%
}
\def\pgfkeys@gobbletoslash\pgfkeys@splitter/{%
\if\relax\detokenize\expandafter{\the\pgfkeys@pathtoks}\relax\else
\expandafter\pgfkeys@remove@slash\the\pgfkeys@pathtoks\relax
\fi
}%
\def\pgfkeys@remove@slash#1/\relax{\pgfkeys@pathtoks{#1}}
\def\pgfqkeys{\expandafter\pgfkeys@@qset\expandafter{\pgfkeysdefaultpath}}%
\long\def\pgfkeys@@qset#1#2#3{\def\pgfkeysdefaultpath{#2/}\pgfkeys@parse#3,\pgfkeys@mainstop\def\pgfkeysdefaultpath{#1}}
\long\def\pgfkeysalso#1{\pgfkeys@parse#1,\pgfkeys@mainstop}
\long\def\pgfqkeysalso#1#2{\def\pgfkeysdefaultpath{#1/}\pgfkeys@parse#2,\pgfkeys@mainstop}
\long\def\pgfkeysdef#1#2{%
\long\def\pgfkeys@temp##1\pgfeov{#2}%
\pgfkeyslet{#1/.@cmd}{\pgfkeys@temp}%
\pgfkeyssetvalue{#1/.@body}{#2}%
}
\long\def\pgfkeysedef#1#2{%
\long\edef\pgfkeys@temp##1\pgfeov{#2}%
\pgfkeyslet{#1/.@cmd}{\pgfkeys@temp}%
\pgfkeyssetevalue{#1/.@body}{#2}%
}
\long\def\pgfkeysdefargs#1#2#3{%
\long\def\pgfkeys@temp#2\pgfeov{#3}%
\pgfkeyslet{#1/.@cmd}{\pgfkeys@temp}%
\pgfkeyssetvalue{#1/.@args}{#2\pgfeov}%
\pgfkeyssetvalue{#1/.@body}{#3}%
}
\long\def\pgfkeysedefargs#1#2#3{%
\long\edef\pgfkeys@temp#2\pgfeov{#3}%
\pgfkeyslet{#1/.@cmd}{\pgfkeys@temp}%
\pgfkeyssetvalue{#1/.@args}{#2\pgfeov}%
\pgfkeyssetevalue{#1/.@body}{#3}%
}
\long\def\pgfkeysdefnargs#1#2#3{\pgfkeysdefnargs@{#1}{#2}{#3}{\def}{\pgfkeyssetvalue}}%
\long\def\pgfkeysedefnargs#1#2#3{\pgfkeysdefnargs@{#1}{#2}{#3}{\edef}{\pgfkeyssetevalue}}%
\long\def\pgfkeysdefnargs@#1#2#3#4#5{%
\ifcase#2\relax
\pgfkeyssetvalue{#1/.@args}{}%
\or
\pgfkeyssetvalue{#1/.@args}{##1}%
\or
\pgfkeyssetvalue{#1/.@args}{##1##2}%
\or
\pgfkeyssetvalue{#1/.@args}{##1##2##3}%
\or
\pgfkeyssetvalue{#1/.@args}{##1##2##3##4}%
\or
\pgfkeyssetvalue{#1/.@args}{##1##2##3##4##5}%
\or
\pgfkeyssetvalue{#1/.@args}{##1##2##3##4##5##6}%
\or
\pgfkeyssetvalue{#1/.@args}{##1##2##3##4##5##6##7}%
\or
\pgfkeyssetvalue{#1/.@args}{##1##2##3##4##5##6##7##8}%
\or
\pgfkeyssetvalue{#1/.@args}{##1##2##3##4##5##6##7##8##9}%
\else
\pgfkeys@error{\string\pgfkeysdefnargs: expected <= 9 arguments, got #2}%
\fi
\pgfkeysgetvalue{#1/.@args}\pgfkeys@tempargs
\def\pgfkeys@temp{\expandafter\long\expandafter#4\csname pgfk@#1/.@@body\endcsname}%
\expandafter\pgfkeys@temp\pgfkeys@tempargs{#3}%
\edef\pgfkeys@tempargs{\noexpand\pgfkeysvalueof{#1/.@@body}}%
\def\pgfkeys@temp{\pgfkeysdef{#1}}%
\ifnum#2=1\relax
\expandafter\pgfkeys@temp\expandafter{\pgfkeys@tempargs{##1}}%
\else
\expandafter\pgfkeys@temp\expandafter{\pgfkeys@tempargs##1}%
\fi
#5{#1/.@body}{#3}%
}
\pgfkeysdef{/handlers/.code}{\pgfkeysdef{\pgfkeyscurrentpath}{#1}}
\pgfkeysdef{/handlers/.code 2 args}{\pgfkeysdefargs{\pgfkeyscurrentpath}{##1##2}{#1}}
\pgfkeysdef{/handlers/.ecode}{\pgfkeysedef{\pgfkeyscurrentpath}{#1}}
\pgfkeysdef{/handlers/.ecode 2 args}{\pgfkeysedefargs{\pgfkeyscurrentpath}{##1##2}{#1}}
\pgfkeysdefnargs{/handlers/.code args}{2}{\pgfkeysdefargs{\pgfkeyscurrentpath}{#1}{#2}}
\pgfkeysdefnargs{/handlers/.ecode args}{2}{\pgfkeysedefargs{\pgfkeyscurrentpath}{#1}{#2}}
\pgfkeysdefnargs{/handlers/.code n args}{2}{\pgfkeysdefnargs{\pgfkeyscurrentpath}{#1}{#2}}
\pgfkeysdefnargs{/handlers/.ecode n args}{2}{\pgfkeysedefnargs{\pgfkeyscurrentpath}{#1}{#2}}
\pgfkeys{/handlers/.add code/.code 2 args=%
\pgfkeysifdefined{\pgfkeyscurrentpath/.@args}%
{%
\pgfkeysaddvalue{\pgfkeyscurrentpath/.@body}{#1}{#2}%
{%
\pgfkeysgetvalue{\pgfkeyscurrentpath/.@args}{\pgfkeys@tempargs}%
\pgfkeysgetvalue{\pgfkeyscurrentpath/.@body}{\pgfkeys@tempbody}%
\def\pgfkeys@marshal{\expandafter\long\expandafter\gdef\expandafter\pgfkeys@global@temp\pgfkeys@tempargs}%
\expandafter\pgfkeys@marshal\expandafter{\pgfkeys@tempbody}%
}%
\pgfkeysifdefined{\pgfkeyscurrentpath/.@@body}{%
\pgfkeyslet{\pgfkeyscurrentpath/.@@body}{\pgfkeys@global@temp}%
}{%
\pgfkeyslet{\pgfkeyscurrentpath/.@cmd}{\pgfkeys@global@temp}%
}%
}%
{%
\edef\pgf@expanded@path{\pgfkeyscurrentpath}%
{%
\toks0{#1}%
\pgfkeysifdefined{\pgf@expanded@path/.@cmd}%
{\expandafter\expandafter\expandafter\pgfkeys@temptoks\expandafter\expandafter\expandafter{\csname pgfk@\pgf@expanded@path/.@body\endcsname}}%
{\expandafter\pgfkeys@temptoks\expandafter{\expandafter\pgfkeyssetvalue\expandafter{\pgf@expanded@path}{##1}}}%
\toks1{#2}%
\xdef\pgfkeys@global@temp{\the\toks0 \the\pgfkeys@temptoks \the\toks1 }%
}%
\def\pgf@temp{\pgfkeyssetvalue{\pgf@expanded@path/.@body}}%
\expandafter\pgf@temp\expandafter{\pgfkeys@global@temp}%
\expandafter\long\expandafter\def\expandafter\pgfkeys@temp\expandafter##\expandafter1\expandafter\pgfeov\expandafter{\pgfkeys@global@temp}%
\pgfkeyslet{\pgf@expanded@path/.@cmd}\pgfkeys@temp%
}%
}
\pgfkeys{/handlers/.prefix code/.code=\pgfkeys{\pgfkeyscurrentpath/.add code={#1}{}}}%
\pgfkeys{/handlers/.append code/.code=\pgfkeys{\pgfkeyscurrentpath/.add code={}{#1}}}%
\pgfkeys{/handlers/.style/.code=\pgfkeys{\pgfkeyscurrentpath/.code=\pgfkeysalso{#1}}}
\pgfkeys{/handlers/.estyle/.code=\pgfkeys{\pgfkeyscurrentpath/.ecode=\noexpand\pgfkeysalso{#1}}}
\pgfkeys{/handlers/.style args/.code 2 args=\pgfkeys{\pgfkeyscurrentpath/.code args={#1}{\pgfkeysalso{#2}}}}
\pgfkeys{/handlers/.estyle args/.code 2 args=\pgfkeys{\pgfkeyscurrentpath/.ecode args={#1}{\noexpand\pgfkeysalso{#2}}}}
\pgfkeys{/handlers/.style 2 args/.code=\pgfkeys{\pgfkeyscurrentpath/.code 2 args=\pgfkeysalso{#1}}}
\pgfkeys{/handlers/.style n args/.code 2 args=\pgfkeys{\pgfkeyscurrentpath/.code n args={#1}{\pgfkeysalso{#2}}}}
\pgfkeys{/handlers/.add style/.code 2 args=\pgfkeys{\pgfkeyscurrentpath/.add code={\pgfkeysalso{#1}}{\pgfkeysalso{#2}}}}%
\pgfkeys{/handlers/.prefix style/.code=\pgfkeys{\pgfkeyscurrentpath/.add code={\pgfkeysalso{#1}}{}}}%
\pgfkeys{/handlers/.append style/.code=\pgfkeys{\pgfkeyscurrentpath/.add code={}{\pgfkeysalso{#1}}}}%
\pgfkeys{/handlers/.initial/.code=\pgfkeyssetvalue{\pgfkeyscurrentpath}{#1}}
\pgfkeys{/handlers/.add/.code 2 args=\pgfkeysaddvalue{\pgfkeyscurrentpath}{#1}{#2}}
\pgfkeys{/handlers/.prefix/.code=\pgfkeysaddvalue{\pgfkeyscurrentpath}{#1}{}}
\pgfkeys{/handlers/.append/.code=\pgfkeysaddvalue{\pgfkeyscurrentpath}{}{#1}}
\pgfkeys{/handlers/.get/.code=\pgfkeysgetvalue{\pgfkeyscurrentpath}{#1}}
\pgfkeys{/handlers/.link/.code=\pgfkeyssetvalue{\pgfkeyscurrentpath}{\pgfkeysvalueof{#1}}}
\pgfkeys{/handlers/.default/.code=\pgfkeyssetvalue{\pgfkeyscurrentpath/.@def}{#1}}
\pgfkeys{/handlers/.value required/.code=\pgfkeyssetvalue{\pgfkeyscurrentpath/.@def}{\pgfkeysvaluerequired}}
\pgfkeys{/handlers/.value forbidden/.code=\pgfkeys{\pgfkeyscurrentpath/.add code=%
{%
\ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text%
\else%
\def\pgf@marshal{\pgfkeysvalueof{/errors/value forbidden/.@cmd}}%
\expandafter\expandafter\expandafter\pgf@marshal\expandafter\expandafter\expandafter{\expandafter\pgfkeyscurrentkey\expandafter}\expandafter{\pgfkeyscurrentvalue}\pgfeov%
\fi%
}{}}}
\pgfkeys{/handlers/.store in/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\def#1{##1}}}
\pgfkeys{/handlers/.estore in/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\edef#1{##1}}}
\pgfkeys{/handlers/.is if/.code=\pgfkeysalso{%
\pgfkeyscurrentpath/.code=\pgfkeys@handle@boolean{#1}{##1},
\pgfkeyscurrentpath/.default=true%
}%
}
\def\pgfkeys@handle@boolean#1#2{%
\pgfkeys@ifcsname{#1#2}{%
\csname#1#2\endcsname%
}{%
\def\pgf@marshal{\pgfkeysvalueof{/errors/boolean expected/.@cmd}}%
\expandafter\pgf@marshal\expandafter{\pgfkeyscurrentkey}{#2}\pgfeov%
}%
}
\pgfkeys{/handlers/.is choice/.code=%
\pgfkeys{%
\pgfkeyscurrentpath/.cd,%
.code=\def\pgfkeys@was@choice{##1}\expandafter\pgfkeysalso\expandafter{\pgfkeyscurrentkey/##1},
.unknown/.code={%
\def\pgf@marshal{\pgfkeysvalueof{/errors/unknown choice value/.@cmd}}%
{\expandafter\expandafter\expandafter\pgf@marshal\expandafter\expandafter\expandafter{\expandafter\the\expandafter\pgfkeys@pathtoks\expandafter}\expandafter{\pgfkeys@was@choice}\pgfeov}%
}%
}%
}
\pgfkeys{/handlers/.list/.code=%
{%
\ifx\foreach\@undefined%
\pgfkeys@error{You need to load the pgffor package to use the .list key syntax.}%
\fi%
\def\pgf@keys@temp{}%
\foreach \pgf@keys@key in{#1}%
{\expandafter\expandafter\expandafter\gdef%
\expandafter\expandafter\expandafter\pgf@keys@temp%
\expandafter\expandafter\expandafter{\expandafter\pgf@keys@temp\expandafter{\pgf@keys@key}}}%
\edef\pgf@keys@list@path{\pgfkeyscurrentpath}%
\expandafter\expandafter\expandafter\pgf@keys@do@list%
\expandafter\expandafter\expandafter{\expandafter\pgf@keys@list@path\expandafter}\pgf@keys@temp\pgf@stop%
}%
}
\def\pgf@keys@do@list#1{\pgf@keys@utilifnextchar\bgroup{\pgf@keys@do@list@item{#1}}\pgf@keys@gobble}
\def\pgf@keys@do@list@item#1#2{\pgfkeysalso{#1={#2}}\pgf@keys@do@list{#1}}
\pgfkeys{/handlers/.forward to/.code=%
\pgfkeys{\pgfkeyscurrentpath/.add code={}{\pgfkeys{#1={##1}}}}
}
\pgfkeys{/handlers/.show value/.code=\pgfkeysgetvalue{\pgfkeyscurrentpath}{\pgfkeysshower}\show\pgfkeysshower} %
\pgfkeys{/handlers/.show code/.code=\pgfkeysgetvalue{\pgfkeyscurrentpath/.@cmd}{\pgfkeysshower}\show\pgfkeysshower} %
\pgfkeys{/handlers/first char syntax/.is if=pgfkeys@syntax@handlers}
\def\pgfkeys@searchalso@prepare@unknown@handler#1{%
\global\def\pgfkeys@global@temp##1\pgfeov{}%
\pgfkeys@searchalso@parse#1,\pgfkeys@mainstop
{%
\toks0=\expandafter{\pgfkeys@global@temp##1\pgfeov}%
\toks1={%
\pgfkeysgetvalue{/handlers/.unknown/.@cmd}{\pgfkeys@code}%
\expandafter\pgfkeys@code\pgfkeys@searchalso@temp@value\pgfeov
}%
\xdef\pgfkeys@global@temp{%
\noexpand\def\noexpand\pgfkeys@searchalso@temp@value{####1}%
\noexpand\ifpgfkeysaddeddefaultpath
\noexpand\expandafter\noexpand\pgfkeys@firstoftwo
\noexpand\else
\noexpand\expandafter\noexpand\pgfkeys@secondoftwo
\noexpand\fi{%
\noexpand\pgfkeyssuccessfalse
\noexpand\let\noexpand\pgfkeys@searchalso@name=\noexpand\pgfkeyscurrentkeyRAW
\the\toks0 %
}{%
\the\toks1 %
}%
}%
\expandafter\gdef\expandafter\pgfkeys@global@temp\expandafter##\expandafter1\expandafter\pgfeov\expandafter{\pgfkeys@global@temp}%
}%
}%
\def\pgfkeys@searchalso@parse{\futurelet\pgfkeys@possiblerelax\pgfkeys@searchalso@parse@main}
\def\pgfkeys@searchalso@parse@main{%
\ifx\pgfkeys@possiblerelax\pgfkeys@mainstop%
\expandafter\pgfkeys@cleanup%
\else%
\expandafter\pgfkeys@searchalso@appendentry%
\fi%
}
\def\pgfkeys@searchalso@appendentry#1,#2{%
\def\pgfkeys@searchalso@nexttok{#2}%
\pgfkeys@spdef\pgfkeys@temp{#1}%
{%
\toks0=\expandafter{\pgfkeys@global@temp##1\pgfeov}%
\toks1=\expandafter{\pgfkeys@temp}%
\xdef\pgfkeys@global@temp{%
\the\toks0 %
\noexpand\ifpgfkeyssuccess\noexpand\else
\noexpand\pgfqkeys{\the\toks1 }{\noexpand\pgfkeys@searchalso@name
\ifx\pgfkeys@searchalso@nexttok\pgfkeys@mainstop\else/.try\fi /.expand once=\noexpand\pgfkeys@searchalso@temp@value}%
\noexpand\fi}%
\expandafter\gdef\expandafter\pgfkeys@global@temp\expandafter##\expandafter1\expandafter\pgfeov\expandafter{\pgfkeys@global@temp}%
}%
\pgfkeys@searchalso@parse#2%
}
\pgfkeys{%
/handlers/.is family/.code=\pgfkeys{\pgfkeyscurrentpath/.ecode=\edef\noexpand\pgfkeysdefaultpath{\pgfkeyscurrentpath/}},%
/handlers/.cd/.code=\edef\pgfkeysdefaultpath{\pgfkeyscurrentpath/},%
/handlers/.search also/.code={%
\pgfkeys@searchalso@prepare@unknown@handler{#1}%
\pgfkeyslet{\pgfkeyscurrentpath/.unknown/.@cmd}{\pgfkeys@global@temp}%
}
}%
\pgfkeys{/handlers/.expand once/.code=\expandafter\pgfkeys@exp@call\expandafter{#1}}
\pgfkeys{/handlers/.expand twice/.code=\expandafter\expandafter\expandafter\pgfkeys@exp@call\expandafter\expandafter\expandafter{#1}}
\pgfkeys{/handlers/.expanded/.code=\edef\pgfkeys@temp{#1}\expandafter\pgfkeys@exp@call\expandafter{\pgfkeys@temp}}
\long\def\pgfkeys@exp@call#1{\pgfkeysalso{\pgfkeyscurrentpath={#1}}}
\def\pgfkeys@mathparse{%
\pgfkeys@ifcsname{pgfmathparse}{%
\pgfmathparse
}{%
\pgfkeys@error{You have to load `pgfmath' to use \string\pgfmathparse}%
\def\pgfmathresult
}%
}
\pgfkeys{/handlers/.evaluated/.code=\pgfkeys@mathparse{#1}\expandafter\pgfkeys@exp@call\expandafter{\pgfmathresult}}
\newif\ifpgfkeyssuccess
\pgfkeys{/handlers/.try/.code=\pgfkeys@try}
\pgfkeys{/handlers/.retry/.code=\ifpgfkeyssuccess\else\pgfkeys@try\fi}
\def\pgfkeys@try{%
\edef\pgfkeyscurrentkey{\pgfkeyscurrentpath}%
\ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text%
\pgfkeysifdefined{\pgfkeyscurrentpath/.@def}%
{\pgfkeysgetvalue{\pgfkeyscurrentpath/.@def}{\pgfkeyscurrentvalue}}
{}%
\fi%
\pgfkeysifdefined{\pgfkeyscurrentpath/.@cmd}%
{%
\pgfkeysgetvalue{\pgfkeyscurrentpath/.@cmd}{\pgfkeys@code}%
\expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov%
\pgfkeyssuccesstrue%
}%
{%
\pgfkeysifdefined{\pgfkeyscurrentpath}%
{%
\ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text%
\pgfkeysvalueof{\pgfkeyscurrentpath}%
\else%
\pgfkeyslet{\pgfkeyscurrentpath}\pgfkeyscurrentvalue%
\fi%
\pgfkeyssuccesstrue%
}%
{%
\pgfkeys@split@path%
\pgfkeysifdefined{/handlers/\pgfkeyscurrentname/.@cmd}{%
\pgfkeys@ifexecutehandler{%
\pgfkeysgetvalue{/handlers/\pgfkeyscurrentname/.@cmd}{\pgfkeys@code}%
\expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov
\pgfkeyssuccesstrue%
}{%
\pgfkeyssuccessfalse
}%
}{%
\pgfkeyssuccessfalse
}%
}%
}%
}
\pgfkeys{/utils/exec/.code={#1}} %
\pgfkeys{
/errors/boolean expected/.code 2 args=%
{%
\toks1={#1}%
\toks2={#2}%
\pgfkeys@error{%
Boolean parameter of key '\the\toks1' must be 'true' or 'false', not
'\the\toks2'. I am going to ignore it%
}%
},
/errors/value required/.code 2 args=%
{%
\toks1={#1}%
\pgfkeys@error{%
The key '\the\toks1' requires a value. I am going to ignore this
key%
}%
},
/errors/value forbidden/.code 2 args=%
{%
\toks1={#1}%
\toks2={#2}%
\pgfkeys@error{%
You may not specify a value for the key '\the\toks1'. I am going to ignore
the value '\the\toks2' that you provided%
}%
},
/errors/unknown choice value/.code 2 args=%
{%
\toks1={#1}%
\toks2={#2}%
\pgfkeys@error{%
Choice '\the\toks2' unknown in choice key '\the\toks1'. I am
going to ignore this key%
}%
},
/errors/unknown key/.code 2 args=%
{%
\toks1={#1}%
\toks2={#2}%
\def\pgf@temp{#2}%
\pgfkeys@error{%
I do not know the key '\the\toks1'\ifx\pgf@temp\pgfkeysnovalue@text\space\else, to which you passed
'\the\toks2', \fi and I am going to ignore it. Perhaps you
misspelled it%
}%
}
}
\pgfkeys{/handlers/.unknown/.code=%
{%
\def\pgf@marshal{\pgfkeysvalueof{/errors/unknown key/.@cmd}}%
{\expandafter\expandafter\expandafter\pgf@marshal\expandafter\expandafter\expandafter{\expandafter\pgfkeyscurrentkey\expandafter}\expandafter{\pgfkeyscurrentvalue}\pgfeov}%
}%
}
\pgfkeys{
/handler config/.is choice,
/handler config/all/.code={%
\let\pgfkeys@case@three=\pgfkeys@case@three@handleall
\let\pgfkeys@ifexecutehandler=\pgfkeys@ifexecutehandler@handleall
},
/handler config/only existing/.code={%
\let\pgfkeys@case@three=\pgfkeys@case@three@handle@restricted
\let\pgfkeys@ifexecutehandler=\pgfkeys@ifexecutehandler@handleonlyexisting
},
/handler config/full or existing/.code={%
\let\pgfkeys@case@three=\pgfkeys@case@three@handle@restricted
\let\pgfkeys@ifexecutehandler=\pgfkeys@ifexecutehandler@handlefullorexisting
},
/handler config/only existing/add exception/.code={\pgfkeysaddhandleonlyexistingexception{#1}},
}%
\pgfkeysaddhandleonlyexistingexception{.cd}%
\pgfkeysaddhandleonlyexistingexception{.try}%
\pgfkeysaddhandleonlyexistingexception{.retry}%
\pgfkeysaddhandleonlyexistingexception{.lastretry}%
\pgfkeysaddhandleonlyexistingexception{.unknown}%
\pgfkeysaddhandleonlyexistingexception{.expand once}%
\pgfkeysaddhandleonlyexistingexception{.expand twice}%
\pgfkeysaddhandleonlyexistingexception{.expanded}%
\def\pgf@keys@gobble#1{}
\long\def\pgf@keys@utilifnextchar#1#2#3{%
\let\pgf@keys@utilreserved@d=#1%
\def\pgf@keys@utilreserved@a{#2}%
\def\pgf@keys@utilreserved@b{#3}%
\futurelet\pgf@keys@utillet@token\pgf@keys@utilifnch}
\def\pgf@keys@utilifnch{%
\ifx\pgf@keys@utillet@token\pgf@keys@utilsptoken
\let\pgf@keys@utilreserved@c\pgf@keys@utilxifnch
\else
\ifx\pgf@keys@utillet@token\pgf@keys@utilreserved@d
\let\pgf@keys@utilreserved@c\pgf@keys@utilreserved@a
\else
\let\pgf@keys@utilreserved@c\pgf@keys@utilreserved@b
\fi
\fi
\pgf@keys@utilreserved@c}
{%
\def\:{\global\let\pgf@keys@utilsptoken= } \:
\def\:{\pgf@keys@utilxifnch} \expandafter\gdef\: {\futurelet\pgf@keys@utillet@token\pgf@keys@utilifnch}
}
\chardef\pgfkeys@inputcheck0
\def\pgfkeys@IfFileExists#1{%
\openin\pgfkeys@inputcheck=#1
\ifeof\pgfkeys@inputcheck
\expandafter\closein\expandafter\pgfkeys@inputcheck
\expandafter\pgfkeys@secondoftwo
\else
\expandafter\closein\expandafter\pgfkeys@inputcheck
\expandafter\pgfkeys@firstoftwo
\fi
}
\def\usepgfkeyslibrary{\pgf@keys@utilifnextchar[{\pgfkeys@@uselibrary}{\pgfkeys@uselibrary}}
\def\pgfkeys@@uselibrary[#1]{\pgfkeys@uselibrary{#1}}
\def\pgfkeys@uselibrary#1{\pgfkeys@uselibrary@parse#1,\pgfkeys@mainstop}
\def\pgfkeys@uselibrary@parse{%
\pgf@keys@utilifnextchar\pgfkeys@mainstop{\pgfkeys@cleanup}{\pgfkeys@uselibrary@normal}%
}%
\def\pgfkeys@uselibrary@normal#1,{%
\pgfkeys@uselibrary@load{#1}%
\pgfkeys@uselibrary@parse
}
\def\pgfkeys@uselibrary@load#1{%
\expandafter\pgfkeys@spdef\expandafter\pgf@temp\expandafter{#1}%
\ifx\pgf@temp\pgfkeys@empty\expandafter\pgfkeys@firstoftwo\else\expandafter\pgfkeys@secondoftwo\fi{}{%
\pgfkeys@ifcsname{pgfkeys@library@\pgf@temp @loaded}{}{%
\expandafter\let\csname pgfkeys@library@\pgf@temp @loaded\endcsname=\pgfkeys@empty
\expandafter\edef\csname pgfkeys@library@#1@atcode\endcsname{\the\catcode`\@}%
\expandafter\edef\csname pgfkeys@library@#1@barcode\endcsname{\the\catcode`\|}%
\expandafter\edef\csname pgfkeys@library@#1@dollarcode\endcsname{\the\catcode`\$}%
\catcode`\@=11
\catcode`\|=12
\catcode`\$=3
\pgfkeys@IfFileExists{pgfkeyslibrary\pgf@temp.code.tex}{%
\input pgfkeyslibrary\pgf@temp.code.tex
}{%
\pgfkeys@error{I did not find the pgfkeys library '\pgf@temp'. I looked for the
file named pgfkeyslibrary\pgf@temp.code.tex, but could not find it in the
current texmf trees.}%
}%
\catcode`\@=\csname pgfkeys@library@#1@atcode\endcsname
\catcode`\|=\csname pgfkeys@library@#1@barcode\endcsname
\catcode`\$=\csname pgfkeys@library@#1@dollarcode\endcsname
}%
}%
}
\let\pgfkeys@library@filtered@loaded\pgfkeys@empty
\input pgfkeyslibraryfiltered.code.tex
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfkeys.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex ====
\let\pgfkeys@orig@case@one=\pgfkeys@case@one
\let\pgfkeys@orig@@set=\pgfkeys@@set
\let\pgfkeys@orig@@qset=\pgfkeys@@qset
\let\pgfkeys@orig@try=\pgfkeys@try
\let\pgfkeys@orig@unknown=\pgfkeys@unknown
\newif\ifpgfkeysfilteringisactive
\newif\ifpgfkeysfiltercontinue
\let\pgfkeys@key@predicate=\pgfkeys@empty
\let\pgfkeys@filtered@handler=\pgfkeys@empty
\newtoks\pgfkeys@tmptoks
\def\pgfkeysfiltered{%
\expandafter\pgfkeysfiltered@@install\expandafter{\pgfkeysdefaultpath}%
}
\long\def\pgfkeysfiltered@@install#1#2{%
\pgfkeys@install@filter@and@invoke{%
\let\pgfkeysdefaultpath\pgfkeys@root%
\pgfkeys@parse#2,\pgfkeys@mainstop%
\def\pgfkeysdefaultpath{#1}%
}%
}
\long\def\pgfkeysalsofrom#1{%
\expandafter\pgfkeysalso\expandafter{#1}%
}
\long\def\pgfkeysalsofilteredfrom#1{%
\expandafter\pgfkeysalsofiltered\expandafter{#1}%
}
\long\def\pgfkeysalsofiltered#1{%
\pgfkeys@install@filter@and@invoke{\pgfkeysalso{#1}}%
}%
\long\def\pgfqkeysfiltered#1{%
\expandafter\pgfqkeysfiltered@@install\expandafter{\pgfkeysdefaultpath}{#1}%
}
\long\def\pgfqkeysfiltered@@install#1#2#3{%
\pgfkeys@install@filter@and@invoke{%
\def\pgfkeysdefaultpath{#2/}\pgfkeys@parse#3,\pgfkeys@mainstop\def\pgfkeysdefaultpath{#1}%
}%
}
\def\pgfkeysactivatefamily#1{%
\pgfkeysiffamilydefined
{#1}%
{\csname pgfk@#1/familyactivetrue\endcsname}%
{\pgfkeysvalueof{/errors/family unknown/.@cmd}{#1}\pgfeov}%
}
\def\pgfkeysdeactivatefamily#1{%
\pgfkeysiffamilydefined
{#1}%
{\csname pgfk@#1/familyactivefalse\endcsname}%
{\pgfkeysvalueof{/errors/family unknown/.@cmd}{#1}\pgfeov}%
}
\def\pgfkeysactivatefamilies#1#2{%
\pgfkeyssavekeyfilterstateto\pgfkeys@cur@state
\expandafter\pgfkeysactivatefamilies@impl\expandafter{\pgfkeys@cur@state}{#1}{#2}%
}
\def\pgfkeysactivatefamilies@impl#1#2#3{%
\pgfkeysinstallkeyfilter{/pgf/key filters/false}{}%
\let#3=\pgfkeys@empty%
\def\pgfkeys@filtered@handler{\pgfkeys@family@activate@handler{#3}}%
\pgfkeysalsofiltered{#2}%
#1%
}
\def\pgfkeys@family@activate@handler#1{%
\pgfkeysactivatefamily{\pgfkeyscurrentkey}%
\pgfkeys@tmptoks=\expandafter\expandafter\expandafter{\expandafter#1\expandafter\pgfkeysdeactivatefamily\expandafter{\pgfkeyscurrentkey}}%
\edef#1{\the\pgfkeys@tmptoks}%
}
\long\def\pgfkeysiffamilydefined#1#2#3{\ifcsname ifpgfk@#1/familyactive\endcsname#2\else#3\fi}
\def\pgfkeysisfamilyactive#1{%
\pgfkeysiffamilydefined{#1}{%
\expandafter\let\expandafter\ifpgfkeysfiltercontinue\csname ifpgfk@#1/familyactive\endcsname
}{%
\pgfkeysvalueof{/errors/family unknown/.@cmd}{#1}\pgfeov%
\expandafter\expandafter\expandafter\let\csname ifpgfkeysfiltercontinue\endcsname\csname iffalse\endcsname
}%
}%
\def\pgfkeysgetfamily#1#2{%
\pgfkeysifdefined{#1/family}{\pgfkeysgetvalue{#1/family}{#2}\pgfkeyssuccesstrue}{\pgfkeyssuccessfalse}%
}
\def\pgfkeyssetfamily#1#2{%
\pgfkeysiffamilydefined{#2}{%
\pgfkeyssetvalue{#1/family}{#2}%
}{%
\pgfkeysalso{/errors/family unknown={#2}}%
}%
}%
\long\def\pgfkeys@cur@is@descendant@of@errors{%
\expandafter\pgfkeys@cur@is@descendant@of@errors@impl\pgfkeyscurrentkey/errors\pgf@@eov
}%
\long\def\pgfkeys@cur@is@descendant@of@errors@impl#1/errors#2\pgf@@eov{%
\def\pgfkeyspred@TMP{#1}%
\ifx\pgfkeyspred@TMP\pgfkeys@empty
\pgfkeysfiltercontinuetrue
\else
\pgfkeysfiltercontinuefalse
\fi
}%
\def\pgfkeysinterruptkeyfilter{%
\ifpgfkeysfilteringisactive
\let\pgfkeys@case@one=\pgfkeys@orig@case@one
\let\pgfkeys@try=\pgfkeys@orig@try
\let\pgfkeys@unknown=\pgfkeys@orig@unknown
\fi
}
\def\endpgfkeysinterruptkeyfilter{%
\ifpgfkeysfilteringisactive
\let\pgfkeys@case@one=\pgfkeys@case@one@filtered
\let\pgfkeys@try=\pgfkeys@try@filtered
\let\pgfkeys@unknown=\pgfkeys@unknown@filtered
\fi
}
\def\pgfkeysactivatefamiliesandfilteroptions#1#2{%
\pgfkeysactivatefamilies{#1}{\pgfkeys@family@deactivation}%
\pgfkeysfiltered{#2}%
\pgfkeys@family@deactivation
}
\def\pgfqkeysactivatefamiliesandfilteroptions#1#2#3{%
\pgfkeysactivatefamilies{#1}{\pgfkeys@family@deactivation}%
\pgfqkeysfiltered{#2}{#3}%
\pgfkeys@family@deactivation
}
\def\pgfkeyssplitpath{\pgfkeys@split@path}%
\def\pgfkeysactivatesinglefamilyandfilteroptions#1#2{%
\pgfkeysactivatefamily{#1}%
\pgfkeysfiltered{#2}%
\pgfkeysdeactivatefamily{#1}%
}
\def\pgfqkeysactivatesinglefamilyandfilteroptions#1#2#3{%
\pgfkeysactivatefamily{#1}%
\pgfqkeysfiltered{#2}{#3}%
\pgfkeysdeactivatefamily{#1}%
}
\def\pgfkeysinstallkeyfilter#1#2{%
\pgfkeysifdefined{#1/.@cmd}{%
\edef\pgfkeyscurrentkeyfilter{#1}%
\def\pgfkeyscurrentkeyfilterargs{#2}%
\pgfkeysgetvalue{#1/.@cmd}{\pgfkeys@key@predicate@}%
\def\pgfkeys@key@predicate{\pgfkeys@key@predicate@#2\pgfeov}%
}{%
\pgfkeysvalueof{/errors/no such key filter/.@cmd}{#1}{#2}\pgfeov%
}%
}
\def\pgfkeysinstallkeyfilterhandler#1#2{%
\pgfkeysifdefined{#1/.@cmd}{%
\edef\pgfkeyscurrentkeyfilterhandler{#1}%
\def\pgfkeyscurrentkeyfilterhandlerargs{#2}%
\pgfkeysgetvalue{#1/.@cmd}{\pgfkeys@filtered@handler@}%
\def\pgfkeys@filtered@handler{\pgfkeys@filtered@handler@#2\pgfeov}%
}{%
\pgfkeysvalueof{/errors/no such key filter handler/.@cmd}{#1}{#2}\pgfeov%
}%
}
\def\pgfkeyssavekeyfilterstateto#1{%
\pgfkeys@tmptoks={\pgfkeysinstallkeyfilter}%
\pgfkeys@tmptoks=\expandafter\expandafter\expandafter{\expandafter\the\expandafter\pgfkeys@tmptoks\expandafter{\pgfkeyscurrentkeyfilter}}%
\pgfkeys@tmptoks=\expandafter\expandafter\expandafter{\expandafter\the\expandafter\pgfkeys@tmptoks\expandafter{\pgfkeyscurrentkeyfilterargs}\pgfkeysinstallkeyfilterhandler}%
\pgfkeys@tmptoks=\expandafter\expandafter\expandafter{\expandafter\the\expandafter\pgfkeys@tmptoks\expandafter{\pgfkeyscurrentkeyfilterhandler}}%
\pgfkeys@tmptoks=\expandafter\expandafter\expandafter{\expandafter\the\expandafter\pgfkeys@tmptoks\expandafter{\pgfkeyscurrentkeyfilterhandlerargs}}%
\edef#1{%
\the\pgfkeys@tmptoks
}%
}
\pgfkeys{%
/errors/family unknown/.code=\pgfkeys@error{%
Sorry, I do not know family '#1' and can't work with any assoicated family handling. Perhaps you misspelled it?},
/errors/no such key filter/.code 2 args=\pgfkeys@error{Sorry, there is no such key filter '#1'.},
/errors/no such key filter handler/.code 2 args=\pgfkeys@error{Sorry, there is no such key filter handler '#1'.},
/handlers/.is family/.append code={%
\edef\pgfkeyspred@TMP{pgfk@\pgfkeyscurrentpath/familyactive}%
\expandafter\pgfkeys@non@outer@newif\expandafter{\pgfkeyspred@TMP}%
\edef\pgfkeyspred@TMP{\pgfkeyscurrentpath/.belongs to family=\pgfkeyscurrentpath}%
\expandafter\pgfkeysalso\expandafter{\pgfkeyspred@TMP}%
},%
/handlers/.activate family/.code=\pgfkeysactivatefamily{\pgfkeyscurrentpath},
/handlers/.deactivate family/.code=\pgfkeysdeactivatefamily{\pgfkeyscurrentpath},
/handlers/.belongs to family/.code={\pgfkeyssetfamily{\pgfkeyscurrentpath}{#1}},%
/handlers/.lastretry/.code={%
\ifpgfkeyssuccess\else
\pgfkeys@try
\ifpgfkeyssuccess\else
\pgfkeys@split@path%
\pgfkeys@unknown
\fi
\fi
},
/handlers/.install key filter/.code={%
\pgfkeysinstallkeyfilter{\pgfkeyscurrentpath}{#1}%
},%
/handlers/.install key filter handler/.code={%
\pgfkeysinstallkeyfilterhandler{\pgfkeyscurrentpath}{#1}%
},%
/pgf/key filter handlers/append filtered to/.code={%
\pgfkeys@tmptoks=\expandafter\expandafter\expandafter{\expandafter\pgfkeyscurrentkeyRAW\expandafter=\expandafter{\pgfkeyscurrentvalue}}%
\ifx#1\pgfkeys@empty
\else
\pgfkeys@tmptoks=\expandafter\expandafter\expandafter{\expandafter#1\expandafter,\the\pgfkeys@tmptoks}%
\fi
\edef#1{\the\pgfkeys@tmptoks}%
},%
/pgf/key filter handlers/ignore/.code={},
/pgf/key filter handlers/ignore/.install key filter handler,
/pgf/key filter handlers/log/.code={%
\pgf@typeout{LOG: the option '\pgfkeyscurrentkey' (was originally '\pgfkeyscurrentkeyRAW') (case \pgfkeyscasenumber) has not been processed due to pgfkeysfiltered.}%
},
/pgf/key filters/active families/.code={%
\if\pgfkeyscasenumber0%
\pgfkeysfiltercontinuetrue
\else
\if\pgfkeyscasenumber3%
\pgfkeysgetfamily\pgfkeyscurrentpath\pgfkeyspred@TMP
\else
\pgfkeysgetfamily\pgfkeyscurrentkey\pgfkeyspred@TMP
\fi
\ifpgfkeyssuccess
\pgfkeysisfamilyactive{\pgfkeyspred@TMP}%
\else%
\pgfkeysfiltercontinuefalse
\fi
\fi
},%
/pgf/key filters/active families or no family/.code 2 args={%
\if\pgfkeyscasenumber0%
\pgfkeysevalkeyfilterwith{#2}%
\else
\if\pgfkeyscasenumber3%
\pgfkeysgetfamily\pgfkeyscurrentpath\pgfkeyspred@TMP
\else
\pgfkeysgetfamily\pgfkeyscurrentkey\pgfkeyspred@TMP
\fi
\ifpgfkeyssuccess
\pgfkeysisfamilyactive{\pgfkeyspred@TMP}%
\else%
\pgfkeysevalkeyfilterwith{#1}%
\fi
\fi
},
/pgf/key filters/active families or no family DEBUG/.code 2 args={%
\if\pgfkeyscasenumber0%
\pgf@typeout{[pgfkeyshasactivefamilyornofamily(\pgfkeyscurrentkey, \pgfkeyscasenumber) invoking unknown handler '#2']}%
\pgfkeysevalkeyfilterwith{#2}%
\else
\if\pgfkeyscasenumber3%
\pgfkeysgetfamily\pgfkeyscurrentpath\pgfkeyspred@TMP
\else
\pgfkeysgetfamily\pgfkeyscurrentkey\pgfkeyspred@TMP
\fi
\ifpgfkeyssuccess
\pgfkeysisfamilyactive{\pgfkeyspred@TMP}%
\ifpgfkeysfiltercontinue
\pgf@typeout{[pgfkeyshasactivefamilyornofamily(\pgfkeyscurrentkey, \pgfkeyscasenumber) family is ACTIVE]}%
\else
\pgf@typeout{[pgfkeyshasactivefamilyornofamily(\pgfkeyscurrentkey, \pgfkeyscasenumber) family is NOT active.]}%
\fi
\else%
\pgf@typeout{[pgfkeyshasactivefamilyornofamily(\pgfkeyscurrentkey, \pgfkeyscasenumber) invoking has-no-family-handler '#1']}%
\pgfkeysevalkeyfilterwith{#1}%
\fi
\fi
},
/pgf/key filters/active families and known/.code={%
\if\pgfkeyscasenumber0%
\pgfkeysfiltercontinuefalse
\else
\if\pgfkeyscasenumber3%
\pgfkeysgetfamily\pgfkeyscurrentpath\pgfkeyspred@TMP
\else
\pgfkeysgetfamily\pgfkeyscurrentkey\pgfkeyspred@TMP
\fi
\ifpgfkeyssuccess
\pgfkeysisfamilyactive{\pgfkeyspred@TMP}%
\else%
\pgfkeysfiltercontinuefalse
\fi
\fi
},
/pgf/key filters/active families or descendants of/.code={%
\if\pgfkeyscasenumber0%
\pgfkeysfiltercontinuefalse
\else
\if\pgfkeyscasenumber3%
\pgfkeysgetfamily\pgfkeyscurrentpath\pgfkeyspred@TMP
\else
\pgfkeysgetfamily\pgfkeyscurrentkey\pgfkeyspred@TMP
\fi
\ifpgfkeyssuccess
\pgfkeysisfamilyactive{\pgfkeyspred@TMP}%
\else%
\def\pgfkeysisdescendantof@impl##1#1##2\pgf@@eov{%
\def\pgfkeyspred@TMP{##1}%
\ifx\pgfkeyspred@TMP\pgfkeys@empty
\pgfkeysfiltercontinuetrue
\else
\pgfkeysfiltercontinuefalse
\fi
}%
\expandafter\pgfkeysisdescendantof@impl\pgfkeyscurrentkey#1\pgf@@eov
\fi
\fi
},
/pgf/key filters/is descendant of/.code={%
\if\pgfkeyscasenumber0%
\pgfkeysfiltercontinuetrue
\else
\def\pgfkeysisdescendantof@impl##1#1##2\pgf@@eov{%
\def\pgfkeyspred@TMP{##1}%
\ifx\pgfkeyspred@TMP\pgfkeys@empty
\pgfkeysfiltercontinuetrue
\else
\pgfkeysfiltercontinuefalse
\fi
}%
\expandafter\pgfkeysisdescendantof@impl\pgfkeyscurrentkey#1\pgf@@eov
\fi
},%
/pgf/key filters/equals/.code={%
\if\pgfkeyscasenumber0%
\pgfkeysfiltercontinuetrue
\else
\def\pgfkeyspred@TMP{#1}%
\ifx\pgfkeyscurrentkey\pgfkeyspred@TMP
\pgfkeysfiltercontinuetrue
\else
\pgfkeysfiltercontinuefalse
\fi
\fi
},%
/pgf/key filters/not/.code={%
\pgfkeysevalkeyfilterwith{#1}%
\ifpgfkeysfiltercontinue
\pgfkeysfiltercontinuefalse
\else
\pgfkeysfiltercontinuetrue
\fi
},%
/pgf/key filters/and/.code 2 args={%
\pgfkeysevalkeyfilterwith{#1}%
\ifpgfkeysfiltercontinue
\pgfkeysevalkeyfilterwith{#2}%
\fi
},%
/pgf/key filters/or/.code 2 args={%
\pgfkeysevalkeyfilterwith{#1}%
\ifpgfkeysfiltercontinue
\else
\pgfkeysevalkeyfilterwith{#2}%
\fi
},%
/pgf/key filters/true/.code={\pgfkeysfiltercontinuetrue},%
/pgf/key filters/true/.install key filter,
/pgf/key filters/false/.code={%
\pgfkeysfiltercontinuefalse
},%
/pgf/key filters/defined/.code={%
\if\pgfkeyscasenumber0%
\pgfkeysfiltercontinuefalse
\else
\pgfkeysfiltercontinuetrue
\fi
},
}%
\def\pgfkeys@case@one@filtered{%
\pgfkeys@cur@is@descendant@of@errors
\ifpgfkeysfiltercontinue
\pgfkeys@orig@case@one
\else
\pgfkeysfiltercontinuetrue
\pgfkeysifdefined{\pgfkeyscurrentkey/.@cmd}{%
\def\pgfkeyscasenumber{1}%
\pgfkeys@key@predicate%
\ifpgfkeysfiltercontinue
\pgfkeysgetvalue{\pgfkeyscurrentkey/.@cmd}{\pgfkeys@code}%
\expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov
\else
\pgfkeys@filtered@handler%
\fi
}{%
\pgfkeysifdefined{\pgfkeyscurrentkey}{%
\def\pgfkeyscasenumber{2}%
\pgfkeys@key@predicate%
\ifpgfkeysfiltercontinue
\pgfkeys@case@two@extern
\else
\pgfkeys@filtered@handler%
\fi
}{%
\pgfkeys@split@path
\pgfkeysifdefined{/handlers/\pgfkeyscurrentname/.@cmd}{%
\pgfkeys@ifexecutehandler{%
\def\pgfkeyscasenumber{3}%
\pgfkeys@key@predicate%
\ifpgfkeysfiltercontinue
\pgfkeysgetvalue{/handlers/\pgfkeyscurrentname/.@cmd}{\pgfkeys@code}%
\expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov
\else
\pgfkeys@filtered@handler%
\fi
}{%
\pgfkeys@unknown
}%
}{%
\pgfkeys@unknown
}%
}%
}%
\fi
}%
\def\pgfkeys@unknown@filtered{%
\def\pgfkeyscasenumber{0}%
\pgfkeys@key@predicate%
\ifpgfkeysfiltercontinue
\pgfkeys@orig@unknown
\else
\pgfkeys@filtered@handler%
\fi
}
\def\pgfkeys@try@filtered{%
\ifpgfkeysfiltercontinue
\pgfkeys@orig@try
\else
\pgfkeysfiltercontinuetrue
\edef\pgfkeyscurrentkey{\pgfkeyscurrentpath}%
\ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text%
\pgfkeysifdefined{\pgfkeyscurrentpath/.@def}%
{\pgfkeysgetvalue{\pgfkeyscurrentpath/.@def}{\pgfkeyscurrentvalue}}
{}%
\fi%
\pgfkeysifdefined{\pgfkeyscurrentpath/.@cmd}%
{%
\def\pgfkeyscasenumber{1}%
\pgfkeys@key@predicate%
\ifpgfkeysfiltercontinue
\pgfkeysgetvalue{\pgfkeyscurrentkey/.@cmd}{\pgfkeys@code}%
\expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov%
\else
\pgfkeys@filtered@handler%
\fi
\pgfkeyssuccesstrue%
}%
{%
\pgfkeysifdefined{\pgfkeyscurrentpath}%
{%
\def\pgfkeyscasenumber{2}%
\pgfkeys@key@predicate%
\ifpgfkeysfiltercontinue
\ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text%
\pgfkeysvalueof{\pgfkeyscurrentpath}%
\else%
\pgfkeyslet{\pgfkeyscurrentpath}\pgfkeyscurrentvalue%
\fi%
\else
\pgfkeys@filtered@handler%
\fi
\pgfkeyssuccesstrue%
}%
{%
\pgfkeys@split@path%
\pgfkeysifdefined{/handlers/\pgfkeyscurrentname/.@cmd}{%
\pgfkeys@ifexecutehandler{%
\def\pgfkeyscasenumber{3}%
\pgfkeys@key@predicate%
\ifpgfkeysfiltercontinue
\pgfkeysgetvalue{/handlers/\pgfkeyscurrentname/.@cmd}{\pgfkeys@code}%
\expandafter\pgfkeys@code\pgfkeyscurrentvalue\pgfeov
\else
\pgfkeys@filtered@handler%
\fi
\pgfkeyssuccesstrue%
}{%
\pgfkeyssuccessfalse
}%
}{%
\pgfkeyssuccessfalse
}%
}%
}%
\fi
}
\long\def\pgfkeys@install@filter@and@invoke#1{%
\ifpgfkeysfilteringisactive
\pgfkeys@error{Sorry, nested calls to key filtering routines are not allowed. (reason: It is not possible to properly restore the previous filtering state after returning from the nested call)}%
\fi
\pgfkeysfilteringisactivetrue
\let\pgfkeys@case@one=\pgfkeys@case@one@filtered
\let\pgfkeys@try=\pgfkeys@try@filtered
\let\pgfkeys@unknown=\pgfkeys@unknown@filtered
#1%
\let\pgfkeys@case@one=\pgfkeys@orig@case@one
\let\pgfkeys@try=\pgfkeys@orig@try
\let\pgfkeys@unknown=\pgfkeys@orig@unknown
\pgfkeysfilteringisactivefalse
}
\long\def\pgfkeysevalkeyfilterwith#1{%
\pgfkeys@eval@key@filter@subroutine@unpack#1=\pgfkeysnovalue=\pgfkeys@stop
}%
\long\def\pgfkeys@eval@key@filter@subroutine@unpack#1=#2=#3\pgfkeys@stop{%
\pgfkeys@spdef\pgfkeyspred@TMP{#1}%
\edef\pgfkeyspred@TMP{\pgfkeyspred@TMP}%
\pgfkeys@spdef\pgfkeyspred@TMPB{#2}%
\ifx\pgfkeyspred@TMPB\pgfkeysnovalue@text%
\pgfkeysifdefined{\pgfkeyspred@TMP/.@def}%
{\pgfkeysgetvalue{\pgfkeyspred@TMP/.@def}{\pgfkeyspred@TMPB}}
{}%
\fi%
\ifx\pgfkeyspred@TMPB\pgfkeysvaluerequired%
\pgfkeysvalueof{/errors/value required/.@cmd}\pgfkeyspred@TMP\pgfkeyspred@TMPB\pgfeov%
\else%
\pgfkeysifdefined{\pgfkeyspred@TMP/.@cmd}{%
\pgfkeysgetvalue{\pgfkeyspred@TMP/.@cmd}{\pgfkeys@code}%
\expandafter\pgfkeys@code\pgfkeyspred@TMPB\pgfeov
}{%
\pgfkeysvalueof{/errors/no such key filter/.@cmd}\pgfkeyspred@TMP\pgfkeyspred@TMPB\pgfeov%
}%
\fi%
}
\def\pgfkeys@non@outer@newif@#1#2{%
\expandafter\edef\csname #2true\endcsname{\noexpand\let\noexpand#1=\noexpand\iftrue}%
\expandafter\edef\csname #2false\endcsname{\noexpand\let\noexpand#1=\noexpand\iffalse}%
\csname #2false\endcsname
}%
\def\pgfkeys@non@outer@newif#1{%
\expandafter\pgfkeys@non@outer@newif@\csname if#1\endcsname{#1}%
}
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfrcs.code.tex ====
\ifx\eTeXrevision\undefined%
\pgfutil@packageerror{PGF}{PGF requires etex in extended mode}{}%
\csname @@end\expandafter\endcsname\expandafter\end%
\fi
\ifnum\eTeXversion<2
\pgfutil@packageerror{PGF}{PGF requires etex version 2}{}%
\csname @@end\expandafter\endcsname\expandafter\end%
\fi
\pgfutil@IfFileExists{pgf.revision.tex}{\input pgf.revision.tex } {%
\def\pgfrevision{0.0}%
\def\pgfversion{0.0}%
\def\pgfversiondate{2014-07-01}%
\def\pgfrevisiondate{2014-07-01}%
}
\begingroup
\catcode`\"=12
\pgfutil@IfUndefined{directlua}{}{%
\directlua{pgf = {}; pgf.pgfversion = "\pgfversion"}%
}%
\endgroup
\let\pgftypesetversion=\pgfrevision
\ifx\pgfrcsloaded\undefined
\def\pgfrcsloaded{}
\edef\pgfrcsatcode{\the\catcode`\@}
\catcode`\@=11
\def\ProvidesFileRCS{%
\let\pgfrcs@final=\ProvidesFileRCS@
^I\pgfrcs@parseinput
}
\def\ProvidesFileRCS@#1{%
\ProvidesFile{#1}[\pgfversiondate\space v\pgfversion\space(\pgfrevision)]%
}
\def\pgf@remove@ext#1.#2\relax{%
\def\pgfretval{#1}%
}%
\def\ProvidesPackageRCS{%
^I\let\pgfrcs@final=\ProvidesPackageRCS@
^I\pgfrcs@parseinput
}
\def\ProvidesPackageRCS@#1{%
\pgf@remove@ext#1.\relax
\edef\pgfrcs@marshal{{\pgfretval}[\pgfversiondate\space v\pgfversion\space(\pgfrevision)]}%
\expandafter\ProvidesPackage\pgfrcs@marshal
}
\def\ProvidesClassRCS{%
^I\let\pgfrcs@final=\ProvidesClassRCS@
^I\pgfrcs@parseinput
}
\def\ProvidesClassRCS@#1{%
\pgf@remove@ext#1.\relax
\edef\pgfrcs@marshal{{\pgfretval}[\pgfversiondate\space v\pgfversion\space(\pgfrevision)]}%
\expandafter\ProvidesClass\pgfrcs@marshal
}
\def\pgfrcs@parseinput@bracket{[}%
\def\pgfrcs@parseinput@dollarsign{$}%
\def\pgfrcs@parseinput#1{%
^I\def\pgfrcs@parseinput@{#1}%
^I\ifx\pgfrcs@parseinput@\pgfrcs@parseinput@bracket%
^I^I\let\next=\pgfrcs@parseinput@opt
^I\else
^I^I\ifx\pgfrcs@parseinput@\pgfrcs@parseinput@dollarsign
^I^I^I\let\next\pgfrcs@parseinput@dollar
^I^I\else
^I^I^I\def\next{\pgfrcs@final{#1}}%
^I^I\fi
^I\fi
^I\next
}
\def\pgfrcs@parseinput@opt#1] ${%
^I\pgfrcs@parseinput@dollar
}%
\def\pgfrcs@parseinput@dollar#1${%
^I\pgf@parseid $#1$%
^I\edef\pgfrcs@parseinput@{\pgf@rcsfile.\pgf@rcssuffix}%
^I\expandafter\pgfrcs@final\expandafter{\pgfrcs@parseinput@}%
}%
\def\pgf@parseid $#1: #2.#3,v #4 #5/#6/#7 #8${%
\pgf@parsercsfile$#2/$
\def\pgf@rcssuffix{#3}
\def\pgf@rcsrevision{#4}
\def\pgf@rcsdate{#5/#6/#7}
}
\def\pgf@parsercsfile$#1/#2${
\def\pgf@temp{#2}
\ifx\pgf@temp\pgfutil@empty
\def\pgf@rcsfile{#1}
\else
\pgf@parsercsfile$#2$
\fi}
\ifx\ProvidesPackage\@undefined
\def\ProvidesPackage#1[#2]{\wlog{Loading package #1 version #2.}}
\fi
\ifx\ProvidesFile\@undefined
\def\ProvidesFile#1[#2]{\wlog{Loading file #1 version #2.}}
\fi
\ProvidesPackageRCS{pgfrcs.code.tex}
\catcode`\@=\pgfrcsatcode
\fi
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfrcs.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfutil-common-lists.tex ====
\pgfutil@packagewarning
{pgfutil-common-lists}%
{This package is deprecated and will be removed by the end of 2022}
\def\pgfapplistnewempty#1{%
\expandafter\let\csname pgfapp@#1\endcsname=\pgfutil@empty
\expandafter\let\csname pgfapp@#1@smallbuf\endcsname=\pgfutil@empty
\expandafter\let\csname pgfapp@#1@bigbuf\endcsname=\pgfutil@empty
\expandafter\def\csname pgfapp@#1@smallbuf@c\endcsname{0}%
\expandafter\def\csname pgfapp@#1@bigbuf@c\endcsname{0}%
}%
\long\def\pgfapplistpushback#1\to#2{%
\begingroup
\c@pgf@counta=\csname pgfapp@#2@smallbuf@c\endcsname\relax
\advance\c@pgf@counta by1
\xdef\pgf@glob@TMPa{\the\c@pgf@counta}%
\endgroup
\expandafter\let\csname pgfapp@#2@smallbuf@c\endcsname=\pgf@glob@TMPa
\ifnum\csname pgfapp@#2@smallbuf@c\endcsname<40
\t@pgf@toka=\expandafter\expandafter\expandafter{\csname pgfapp@#2@smallbuf\endcsname#1}%
\expandafter\edef\csname pgfapp@#2@smallbuf\endcsname{\the\t@pgf@toka}%
\else
\pgfapplistpushback@smallbufoverfl{#1}{#2}%
\fi
}%
\long\def\pgfapplistpushback@smallbufoverfl#1#2{%
\begingroup
\c@pgf@counta=\csname pgfapp@#2@bigbuf@c\endcsname\relax
\advance\c@pgf@counta by1
\xdef\pgf@glob@TMPa{\the\c@pgf@counta}%
\endgroup
\expandafter\let\csname pgfapp@#2@bigbuf@c\endcsname=\pgf@glob@TMPa
\ifnum\csname pgfapp@#2@bigbuf@c\endcsname<30
\t@pgf@toka=\expandafter\expandafter\expandafter{\csname pgfapp@#2@bigbuf\endcsname}%
\t@pgf@tokb=\expandafter\expandafter\expandafter{\csname pgfapp@#2@smallbuf\endcsname#1}%
\expandafter\edef\csname pgfapp@#2@bigbuf\endcsname{\the\t@pgf@toka\the\t@pgf@tokb}%
\expandafter\let\csname pgfapp@#2@smallbuf\endcsname=\pgfutil@empty
\expandafter\def\csname pgfapp@#2@smallbuf@c\endcsname{0}%
\else%
\t@pgf@toka=\expandafter\expandafter\expandafter{\csname pgfapp@#2\endcsname}%
\t@pgf@tokb=\expandafter\expandafter\expandafter{\csname pgfapp@#2@bigbuf\endcsname}%
\t@pgf@tokc=\expandafter\expandafter\expandafter{\csname pgfapp@#2@smallbuf\endcsname#1}%
\expandafter\edef\csname pgfapp@#2\endcsname{\the\t@pgf@toka\the\t@pgf@tokb\the\t@pgf@tokc}%
\expandafter\let\csname pgfapp@#2@smallbuf\endcsname=\pgfutil@empty
\expandafter\def\csname pgfapp@#2@smallbuf@c\endcsname{0}%
\expandafter\let\csname pgfapp@#2@bigbuf\endcsname=\pgfutil@empty
\expandafter\def\csname pgfapp@#2@bigbuf@c\endcsname{0}%
\fi%
}%
\def\pgfapplist@flushbuffers#1{%
\t@pgf@toka=\expandafter\expandafter\expandafter{\csname pgfapp@#1\endcsname}%
\t@pgf@tokb=\expandafter\expandafter\expandafter{\csname pgfapp@#1@bigbuf\endcsname}%
\t@pgf@tokc=\expandafter\expandafter\expandafter{\csname pgfapp@#1@smallbuf\endcsname}%
\expandafter\edef\csname pgfapp@#1\endcsname{\the\t@pgf@toka\the\t@pgf@tokb\the\t@pgf@tokc}%
\expandafter\let\csname pgfapp@#1@smallbuf\endcsname=\pgfutil@empty
\expandafter\def\csname pgfapp@#1@smallbuf@c\endcsname{0}%
\expandafter\let\csname pgfapp@#1@bigbuf\endcsname=\pgfutil@empty
\expandafter\def\csname pgfapp@#1@bigbuf@c\endcsname{0}%
}%
\def\pgfapplistlet#1=#2{%
\pgfapplist@flushbuffers{#2}%
\expandafter\let\expandafter#1\csname pgfapp@#2\endcsname
}%
\def\pgfprependlistnewempty#1{%
\expandafter\let\csname pgfpPRP@#1\endcsname=\pgfutil@empty
\expandafter\let\csname pgfpPRP@#1@smallbuf\endcsname=\pgfutil@empty
\expandafter\let\csname pgfpPRP@#1@bigbuf\endcsname=\pgfutil@empty
\expandafter\def\csname pgfpPRP@#1@smallbuf@c\endcsname{0}%
\expandafter\def\csname pgfpPRP@#1@bigbuf@c\endcsname{0}%
}%
\long\def\pgfprependlistpushfront#1\to#2{%
\begingroup
\c@pgf@counta=\csname pgfpPRP@#2@smallbuf@c\endcsname\relax
\advance\c@pgf@counta by1
\xdef\pgf@glob@TMPa{\the\c@pgf@counta}%
\endgroup
\expandafter\let\csname pgfpPRP@#2@smallbuf@c\endcsname=\pgf@glob@TMPa
\ifnum\csname pgfpPRP@#2@smallbuf@c\endcsname<40
\t@pgf@toka=\expandafter\expandafter\expandafter{\csname pgfpPRP@#2@smallbuf\endcsname}%
\t@pgf@tokb={#1}%
\expandafter\edef\csname pgfpPRP@#2@smallbuf\endcsname{\the\t@pgf@tokb\the\t@pgf@toka}%
\else
\pgfprependlistpushfront@smallbufoverfl{#1}{#2}%
\fi
}%
\long\def\pgfprependlistpushfront@smallbufoverfl#1#2{%
\begingroup
\c@pgf@counta=\csname pgfpPRP@#2@bigbuf@c\endcsname\relax
\advance\c@pgf@counta by1
\xdef\pgf@glob@TMPa{\the\c@pgf@counta}%
\endgroup
\expandafter\let\csname pgfpPRP@#2@bigbuf@c\endcsname=\pgf@glob@TMPa
\ifnum\csname pgfpPRP@#2@bigbuf@c\endcsname<30
\t@pgf@toka=\expandafter\expandafter\expandafter{\csname pgfpPRP@#2@bigbuf\endcsname}%
\t@pgf@tokb=\expandafter\expandafter\expandafter{\csname pgfpPRP@#2@smallbuf\endcsname}%
\t@pgf@tokc={#1}%
\expandafter\edef\csname pgfpPRP@#2@bigbuf\endcsname{\the\t@pgf@tokc\the\t@pgf@tokb\the\t@pgf@toka}%
\expandafter\let\csname pgfpPRP@#2@smallbuf\endcsname=\pgfutil@empty
\expandafter\def\csname pgfpPRP@#2@smallbuf@c\endcsname{0}%
\else%
\pgfprependlist@flushbuffers{#2}%
\t@pgf@toka=\expandafter\expandafter\expandafter{\csname pgfpPRP@#2\endcsname}%
\t@pgf@tokb={#1}%
\expandafter\edef\csname pgfpPRP@#2\endcsname{\the\t@pgf@tokb\the\t@pgf@toka}%
\fi%
}%
\def\pgfprependlist@flushbuffers#1{%
\t@pgf@toka=\expandafter\expandafter\expandafter{\csname pgfpPRP@#1\endcsname}%
\t@pgf@tokb=\expandafter\expandafter\expandafter{\csname pgfpPRP@#1@bigbuf\endcsname}%
\t@pgf@tokc=\expandafter\expandafter\expandafter{\csname pgfpPRP@#1@smallbuf\endcsname}%
\expandafter\edef\csname pgfpPRP@#1\endcsname{\the\t@pgf@tokc\the\t@pgf@tokb\the\t@pgf@toka}%
\expandafter\let\csname pgfpPRP@#1@smallbuf\endcsname=\pgfutil@empty
\expandafter\def\csname pgfpPRP@#1@smallbuf@c\endcsname{0}%
\expandafter\let\csname pgfpPRP@#1@bigbuf\endcsname=\pgfutil@empty
\expandafter\def\csname pgfpPRP@#1@bigbuf@c\endcsname{0}%
}%
\def\pgfprependlistlet#1=#2{%
\pgfprependlist@flushbuffers{#2}%
\expandafter\let\expandafter#1\csname pgfpPRP@#2\endcsname
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfutil-common-lists.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfutil-common.tex ====
\catcode`\@=11\relax
\newif\ifpgfutil@format@is@latex
\newif\ifpgfutil@format@is@plain
\newif\ifpgfutil@format@is@context
\let\pgfutil@exp\romannumeral
\chardef\pgfutil@exp@end=0
\catcode`\Q=3
\def\pgfutil@trimspaces#1{%
\romannumeral-`0\pgfutil@trimspaces@\noexpand#1Q Q}
\def\pgfutil@trimspaces@#1 Q{\pgfutil@trimspaces@@#1Q}
\def\pgfutil@trimspaces@@#1Q#2{#1}
\catcode`\Q=11
\long\def\pgfutil@ifx#1#2{%
\ifx#1#2%
\expandafter\pgfutil@firstoftwo
\else
\expandafter\pgfutil@secondoftwo
\fi}
\long\def\pgfutil@ifstrequal#1#2{%
\ifnum\pgfsys@strcmp{\pgfutil@unexpanded{#1}}{\pgfutil@unexpanded{#2}}=0
\expandafter\pgfutil@firstoftwo
\else
\expandafter\pgfutil@secondoftwo
\fi
}
\def\pgfutil@ifxempty{\pgfutil@ifx\pgfutil@empty}
\long\def\pgfutil@ifempty#1{%
\if\relax\detokenize{#1}\relax
\expandafter\pgfutil@firstoftwo
\else
\expandafter\pgfutil@secondoftwo
\fi}
\def\pgfutil@ifundefined#1{%
\expandafter\pgfutil@ifx\csname#1\endcsname\relax}
\def\pgfutil@IfUndefined#1{%
\ifcsname#1\endcsname
\expandafter\pgfutil@secondoftwo
\else
\expandafter\pgfutil@firstoftwo
\fi
}
\long\def\pgfutil@firstofone#1{#1}
\long\def\pgfutil@firstoftwo#1#2{#1}
\long\def\pgfutil@secondoftwo#1#2{#2}
\def\pgfutil@empty{}
\long\def\pgfutil@gobble@until@relax#1\relax{}
\long\def\pgfutil@gobble#1{}
\long\def\pgfutil@gobbletwo#1#2{}
\def\pgfutil@namedef#1{\expandafter\def\csname #1\endcsname}
\def\pgfutil@namelet#1{\expandafter\pgfutil@@namelet\csname#1\endcsname}
\def\pgfutil@@namelet#1#2{\expandafter\let\expandafter#1\csname#2\endcsname}
\long\def\pgfutil@g@addto@macro#1#2{%
\begingroup
\pgfutil@toks@\expandafter{#1#2}%
\xdef#1{\the\pgfutil@toks@}%
\endgroup}
\newif\ifpgfutil@tempswa
\newif\ifpgfutil@tempswb
\let\pgfutil@pushmacro@string\pgfutil@empty
\def\pgfutil@pushmacro#1{%
\xdef\pgfutil@pushmacro@string{\string#1}%
\ifcsname pgfutil@pushedmacro@\pgfutil@pushmacro@string\endcsname\else
\csname newcount\expandafter\endcsname\csname pgfutil@pushedmacro@\pgfutil@pushmacro@string\endcsname
\fi
\global\advance\csname pgfutil@pushedmacro@\pgfutil@pushmacro@string\endcsname 1\relax
\global\expandafter\let\csname\the\csname pgfutil@pushedmacro@\pgfutil@pushmacro@string\endcsname\pgfutil@pushmacro@string\endcsname#1%
}
\def\pgfutil@popmacro#1{%
\xdef\pgfutil@pushmacro@string{\string#1}%
\expandafter\let\expandafter#1\csname\the\csname pgfutil@pushedmacro@\pgfutil@pushmacro@string\endcsname\pgfutil@pushmacro@string\endcsname
\global\advance\csname pgfutil@pushedmacro@\pgfutil@pushmacro@string\endcsname -1\relax
}
\long\def\pgfutil@ifnextchar#1#2#3{%
\let\pgfutil@reserved@d=#1%
\def\pgfutil@reserved@a{#2}%
\def\pgfutil@reserved@b{#3}%
\futurelet\pgfutil@let@token\pgfutil@ifnch}
\def\pgfutil@ifnch{%
\ifx\pgfutil@let@token\pgfutil@sptoken
\let\pgfutil@reserved@c\pgfutil@xifnch
\else
\ifx\pgfutil@let@token\pgfutil@reserved@d
\let\pgfutil@reserved@c\pgfutil@reserved@a
\else
\let\pgfutil@reserved@c\pgfutil@reserved@b
\fi
\fi
\pgfutil@reserved@c}
{%
\def\:{\global\let\pgfutil@sptoken= } \:
\def\:{\pgfutil@xifnch} \expandafter\gdef\: {\futurelet\pgfutil@let@token\pgfutil@ifnch}
}
\def\pgfutil@ignorespaces
{\ifx\pgfutil@let@token\pgfutil@sptoken
\expandafter\pgfutil@ignorespaces@helper
\else
\expandafter\pgfutil@next
\fi}
{
\def\:{\pgfutil@ignorespaces@helper}
\expandafter\gdef\: {\futurelet\pgfutil@let@token\pgfutil@ignorespaces}
}
\newif\ifpgfutil@in@
\def\pgfutil@in@#1#2{%
\def\pgfutil@in@@##1#1##2##3\pgfutil@in@@{%
\ifx\pgfutil@in@##2\pgfutil@in@false\else\pgfutil@in@true\fi}%
\pgfutil@in@@#2#1\pgfutil@in@\pgfutil@in@@}
\def\pgfutil@nnil{\pgfutil@nil}
\def\pgfutil@fornoop#1\@@#2#3{}
\long\def\pgfutil@for#1:=#2\do#3{%
\expandafter\def\expandafter\pgfutil@fortmp\expandafter{#2}%
\ifx\pgfutil@fortmp\pgfutil@empty \else
\expandafter\pgfutil@forloop#2,\pgfutil@nil,\pgfutil@nil\@@#1{#3}\fi}
\long\def\pgfutil@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\pgfutil@nnil \else
#5\def#4{#2}\ifx #4\pgfutil@nnil \else#5\pgfutil@iforloop #3\@@#4{#5}\fi\fi}
\long\def\pgfutil@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\pgfutil@nnil
\expandafter\pgfutil@fornoop \else
#4\relax\expandafter\pgfutil@iforloop\fi#2\@@#3{#4}}
\def\pgfutil@tfor#1:={\pgfutil@tf@r#1 }
\long\def\pgfutil@tf@r#1#2\do#3{\def\pgfutil@fortmp{#2}\ifx\pgfutil@fortmp\pgfutil@space\else
\pgfutil@tforloop#2\pgfutil@nil\pgfutil@nil\@@#1{#3}\fi}
\long\def\pgfutil@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\pgfutil@nnil
\expandafter\pgfutil@fornoop \else
#4\relax\expandafter\pgfutil@tforloop\fi#2\@@#3{#4}}
\def\pgfutil@space{ }
\chardef\pgfutil@inputcheck0
\def\pgfutil@IfFileExists#1#2#3{%
\openin\pgfutil@inputcheck=#1 %
\ifeof\pgfutil@inputcheck
#3\relax
\else
#2\relax
\fi
\closein\pgfutil@inputcheck}
\def\pgfutil@InputIfFileExists#1#2#3{\pgfutil@IfFileExists{#1}{\input #1\relax#2}{#3}}%
\def\pgfutil@loop#1\pgfutil@repeat{\def\pgfutil@body{#1}\pgfutil@iterate}
\def\pgfutil@iterate{\pgfutil@body \let\pgfutil@next\pgfutil@iterate \else\let\pgfutil@next\relax\fi \pgfutil@next}
\let\pgfutil@repeat=\fi %
\let\pgfutil@scan@mark\relax
\let\pgfutil@scan@stop\relax
\long\def\pgfutil@switch#1#2#3#4#5{%
\pgfutil@exp
\pgfutil@switch@@{#1}%
{#2}#3%
{#2}{}%
\pgfutil@scan@mark{#4}%
\pgfutil@scan@mark{#5}%
\pgfutil@scan@stop
}
\long\def\pgfutil@switch@@#1#2#3#4{%
#1{#2}{#3}%
{\pgfutil@switch@end{#4}}%
{\pgfutil@switch@@{#1}{#2}}%
}
\long\def\pgfutil@switch@end#1#2#3\pgfutil@scan@mark#4#5\pgfutil@scan@stop{\pgfutil@exp@end#1#4}
\let\pgfutil@aux@read@hook=\relax
\newtoks\pgfutil@everybye
\def\pgfutil@addpdfresource@extgs#1{\pgf@sys@addpdfresource@extgs@plain{#1}}
\def\pgfutil@addpdfresource@colorspaces#1{\pgf@sys@addpdfresource@colorspaces@plain{#1}}
\def\pgfutil@addpdfresource@patterns#1{\pgf@sys@addpdfresource@patterns@plain{#1}}
\def\pgfutil@setuppdfresources{\pgf@sys@setuppdfresources@plain}
\let\pgfutil@insertatbegincurrentpage=\relax
\def\pgfutil@raggedright{\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax}
\def\pgfutil@raggedleft{\leftskip\z@ plus2em \rightskip\z@ \spaceskip.3333em \xspaceskip.5em\parfillskip0pt\relax}
\def\pgfutil@packageerror#1#2#3{\errhelp{#3}\errmessage{Package #1 Error: #2}}
\def\pgfutil@packagewarning#1#2{\immediate\write17{Package #1: Warning! #2.}}
\def\pgferror#1{\pgfutil@packageerror{pgf}{#1}{}}
\def\pgfwarning#1{\pgfutil@packagewarning{pgf}{#1}}
\def\usepgflibrary{\pgfutil@ifnextchar[{\use@pgflibrary}{\use@@pgflibrary}}%
\def\use@pgflibrary[#1]{\use@@pgflibrary{#1}}
\def\use@@pgflibrary#1{%
\edef\pgf@list{#1}%
\pgfutil@for\pgf@temp:=\pgf@list\do{%
\expandafter\pgfkeys@spdef\expandafter\pgf@temp\expandafter{\pgf@temp}%
\ifx\pgf@temp\pgfutil@empty
\else
\expandafter\ifx\csname pgf@library@\pgf@temp @loaded\endcsname\relax%
\expandafter\let\csname pgf@library@\pgf@temp @loaded\endcsname=\pgfutil@empty%
\expandafter\edef\csname pgf@library@#1@atcode\endcsname{\the\catcode`\@}
\expandafter\edef\csname pgf@library@#1@barcode\endcsname{\the\catcode`\|}
\expandafter\edef\csname pgf@library@#1@dollarcode\endcsname{\the\catcode`\$}
\catcode`\@=11
\catcode`\|=12
\catcode`\$=3
\pgfutil@InputIfFileExists{pgflibrary\pgf@temp.code.tex}{}{%
\pgferror{I did not find the pgf library
'\pgf@temp'. I looked for the file named
pgflibrary\pgf@temp.code.tex, but could not find it in
the current texmf trees.}
}%
\catcode`\@=\csname pgf@library@#1@atcode\endcsname
\catcode`\|=\csname pgf@library@#1@barcode\endcsname
\catcode`\$=\csname pgf@library@#1@dollarcode\endcsname
\fi%
\fi
}%
}
\def\usepgfmodule{\pgfutil@ifnextchar[{\use@pgfmodule}{\use@@pgfmodule}}%
\def\use@pgfmodule[#1]{\use@@pgfmodule{#1}}
\def\use@@pgfmodule#1{%
\edef\pgf@list{#1}%
\pgfutil@for\pgf@temp:=\pgf@list\do{%
\expandafter\ifx\csname pgf@module@\pgf@temp @loaded\endcsname\relax%
\expandafter\let\csname pgf@module@\pgf@temp @loaded\endcsname=\pgfutil@empty%
\expandafter\edef\csname pgf@module@#1@atcode\endcsname{\the\catcode`\@}
\expandafter\edef\csname pgf@module@#1@barcode\endcsname{\the\catcode`\|}
\expandafter\edef\csname pgf@module@#1@dollarcode\endcsname{\the\catcode`\$}
\catcode`\@=11
\catcode`\|=12
\catcode`\$=3
\input pgfmodule\pgf@temp.code.tex
\catcode`\@=\csname pgf@module@#1@atcode\endcsname
\catcode`\|=\csname pgf@module@#1@barcode\endcsname
\catcode`\$=\csname pgf@module@#1@dollarcode\endcsname
\fi%
}%
}
\def\pgfutilensuremath#1{%
\ifmmode#1\else$#1$\fi
}
\begingroup
\catcode`\"=12
\edef\pgf@loc@TMPa{"}%
\gdef\pgfutilpreparefilename#1{%
\begingroup
\ifnum\the\catcode`\"=13
\pgfutilconvertdcolon
\fi
\xdef\pgf@temp{#1}%
\endgroup
\expandafter\pgfutil@in@\expandafter"\expandafter{\pgf@temp}%
\ifpgfutil@in@
\def\pgf@loc@TMPa{\pgfutilstrreplace{"}{}}%
\expandafter\pgf@loc@TMPa\expandafter{\pgf@temp}%
\edef\pgfretval{"\pgfretval"}%
\let\pgfretvalquoted=\pgfretval
\else
\let\pgfretval=\pgf@temp
\edef\pgfretvalquoted{"\pgfretval"}%
\fi
}%
\catcode`\"=13
\xdef\pgfutilconvertdcolon{%
\noexpand\def\noexpand"{\pgf@loc@TMPa}%
}%
\endgroup
\def\pgfutil@command@to@string#1#2{%
\expandafter\pgfutil@command@to@string@@\meaning#1\pgfutil@EOI{#2}%
}%
\xdef\pgfutil@glob@TMPa{\meaning\pgfutil@empty}%
\expandafter\def\expandafter\pgfutil@command@to@string@@\pgfutil@glob@TMPa#1\pgfutil@EOI#2{%
\def#2{#1}%
}%
\begingroup
\catcode`\|=0
\catcode`\\=12
|gdef|pgfutil@backslash@as@other{\}%
|endgroup
\def\pgfutilifcontainsmacro#1#2#3{%
\def\pgf@marshal{#1}%
\pgfutil@command@to@string\pgf@marshal\pgf@marshal
\edef\pgf@marshal{\noexpand\pgfutil@in@{\pgfutil@backslash@as@other}{\pgf@marshal}}%
\pgf@marshal
\ifpgfutil@in@
\def\pgf@marshal{#2}%
\else
\def\pgf@marshal{#3}%
\fi
\pgf@marshal
}%
\def\pgfutilifstartswith#1#2#3#4{%
\def\pgfutilifstartswith@ ##1#1##2\pgf@EOI{%
\def\pgfutil@tmp{##1}%
\ifx\pgfutil@tmp\pgfutil@empty
\def\pgfutil@tmp#1####1\pgf@EOI{%
\def\pgfretval{####1}%
}%
\pgfutil@tmp#2\pgf@EOI%
#3\relax%
\else
#4\relax%
\fi
}%
\pgfutilifstartswith@#2--#1\pgf@EOI%
}%
\long\def\pgfutilstrreplace#1#2#3{%
\def\pgfretval{}%
\long\def\pgfutil@search@and@replace@@##1#1##2\pgf@EOI{%
\expandafter\def\expandafter\pgfretval\expandafter{\pgfretval ##1#2}%
\pgfutil@search@and@replace@loop{#1}{##2}%
}%
\pgfutil@search@and@replace@loop{#1}{#3}%
}
\long\def\pgfutil@search@and@replace@loop#1#2{%
\pgfutil@in@{#1}{#2}%
\ifpgfutil@in@
\def\pgf@loc@TMPa{\pgfutil@search@and@replace@@ #2\pgf@EOI}%
\else
\expandafter\def\expandafter\pgfretval\expandafter{\pgfretval #2}%
\let\pgf@loc@TMPa=\relax
\fi
\pgf@loc@TMPa
}%
\def\pgfutilsolvetwotwoleq#1#2{%
\begingroup
\dimendef\aa=0
\dimendef\ab=1
\dimendef\ba=2
\dimendef\bb=3
\dimendef\ra=4
\dimendef\rb=5
\dimendef\tmpa=6
\dimendef\tmpb=7
\edef\pgf@temp{#1}%
\expandafter\pgfutilsolvetwotwoleq@A\pgf@temp
\edef\pgf@temp{#2}%
\expandafter\pgfutilsolvetwotwoleq@r\pgf@temp
\pgfutilsolvetwotwoleq@ifislarger\aa\ba{%
\def\Pa{a}%
\def\Pb{b}%
}{%
\def\Pa{b}%
\def\Pb{a}%
}%
\tmpa=\csname m\Pa a\endcsname pt %
\ifdim\tmpa<0pt \tmpa=-\tmpa\fi
\ifdim\tmpa<0.0001pt
\let\pgfmathresult=\pgfutil@empty
\else
\pgfmathreciprocal@
{\csname m\Pa a\endcsname}%
\let\pivot=\pgfmathresult
\csname \Pb a\endcsname=\pivot\csname \Pb a\endcsname
\edef\factor{\expandafter\pgf@sys@tonumber\csname \Pb a\endcsname}%
\tmpa=-\factor\csname \Pa b\endcsname
\advance\csname \Pb b\endcsname by\tmpa
\tmpa=-\factor\csname r\Pa\endcsname
\advance\csname r\Pb\endcsname by\tmpa
\tmpa=\csname \Pb b\endcsname%
\ifdim\tmpa<0pt \tmpa=-\tmpa\fi
\ifdim\tmpa<0.0001pt
\let\pgfmathresult=\pgfutil@empty
\else
\pgfmathdivide@
{\expandafter\pgf@sys@tonumber\csname r\Pb\endcsname}
{\expandafter\pgf@sys@tonumber\csname \Pb b\endcsname}%
\expandafter\let\csname pgfmathresult\Pb\endcsname=\pgfmathresult
\tmpa=\csname pgfmathresult\Pb\endcsname\csname \Pa b\endcsname
\advance\csname r\Pa\endcsname by-\tmpa
\tmpa=\pivot\csname r\Pa\endcsname
\expandafter\edef\csname pgfmathresult\Pa\endcsname{\pgf@sys@tonumber\tmpa}%
\edef\pgfmathresult{%
{\csname pgfmathresult\Pa\endcsname}%
{\csname pgfmathresult\Pb\endcsname}%
}%
\fi
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfutilsolvetwotwoleq@ifislarger#1#2#3#4{%
\tmpa=#1
\ifdim\tmpa<0pt
\multiply\tmpa by-1
\fi
\tmpb=#2
\ifdim\tmpb<0pt
\multiply\tmpb by-1
\fi
\ifdim\tmpa>\tmpb
#3%
\else
#4%
\fi
}%
\def\pgfutilsolvetwotwoleqfloat@ifislarger#1#2#3#4{%
\pgfmathfloatabs@{#1}\let\tmpa=\pgfmathresult
\pgfmathfloatabs@{#2}\let\tmpb=\pgfmathresult
\pgfmathfloatlessthan@{\tmpb}{\tmpa}%
\ifpgfmathfloatcomparison
#3%
\else
#4%
\fi
}%
\def\pgfutilsolvetwotwoleq@A#1#2#3#4{%
\def\maa{#1}\def\mab{#2}%
\def\mba{#3}\def\mbb{#3}%
\aa=#1pt \ab=#2pt
\ba=#3pt \bb=#4pt
}
\def\pgfutilsolvetwotwoleq@r#1#2{%
\ra=#1pt \rb=#2pt
}%
\def\pgfutilsolvetwotwoleqfloat@A#1#2#3#4{%
\pgfmathfloatparsenumber{#1}\let\maa=\pgfmathresult
\pgfmathfloatparsenumber{#2}\let\mab=\pgfmathresult
\pgfmathfloatparsenumber{#3}\let\mba=\pgfmathresult
\pgfmathfloatparsenumber{#4}\let\mbb=\pgfmathresult
}
\def\pgfutilsolvetwotwoleqfloat@r#1#2{%
\pgfmathfloatparsenumber{#1}\let\ra=\pgfmathresult
\pgfmathfloatparsenumber{#2}\let\rb=\pgfmathresult
}%
\def\pgfutilsolvetwotwoleqfloat#1#2{%
\begingroup
\pgfmathfloatcreate{1}{1.0}{-4}%
\let\thresh=\pgfmathresult
\edef\pgf@temp{#1}%
\expandafter\pgfutilsolvetwotwoleqfloat@A\pgf@temp
\edef\pgf@temp{#2}%
\expandafter\pgfutilsolvetwotwoleqfloat@r\pgf@temp
\pgfutilsolvetwotwoleqfloat@ifislarger\maa\mba{%
\def\Pa{a}%
\def\Pb{b}%
}{%
\def\Pa{b}%
\def\Pb{a}%
}%
\expandafter\pgfmathfloatabs@\expandafter{\csname m\Pa a\endcsname}%
\let\tmpa=\pgfmathresult
\pgfmathfloatlessthan@{\tmpa}{\thresh}%
\ifpgfmathfloatcomparison
\let\pgfmathresult=\pgfutil@empty
\else
\expandafter\pgfmathfloatreciprocal@\expandafter{\csname m\Pa a\endcsname}%
\let\pivot=\pgfmathresult
\expandafter\pgfmathfloatmultiply@\expandafter{\csname m\Pb a\endcsname}{\pivot}%
\let\factor=\pgfmathresult
\expandafter\let\csname m\Pb a\endcsname=\factor
\expandafter\pgfmathfloatmultiply@\expandafter{\csname m\Pa b\endcsname}{\factor}%
\let\tmpa=\pgfmathresult
\expandafter\pgfmathfloatsubtract@\expandafter{\csname m\Pb b\endcsname}{\tmpa}%
\expandafter\let\csname m\Pb b\endcsname=\pgfmathresult
\expandafter\pgfmathfloatmultiply@\expandafter{\csname r\Pa\endcsname}{\factor}%
\let\tmpa=\pgfmathresult
\expandafter\pgfmathfloatsubtract@\expandafter{\csname r\Pb\endcsname}{\tmpa}%
\expandafter\let\csname r\Pb\endcsname=\pgfmathresult
\expandafter\pgfmathfloatabs@\expandafter{\csname m\Pb b\endcsname}%
\let\tmpa=\pgfmathresult
\pgfmathfloatlessthan@{\tmpa}{\thresh}%
\ifpgfmathfloatcomparison
\let\pgfmathresult=\pgfutil@empty
\else
\edef\pgf@marshal{%
\noexpand\pgfmathfloatdivide@
{\csname r\Pb\endcsname}
{\csname m\Pb b\endcsname}%
}%
\pgf@marshal
\expandafter\let\csname pgfmathresult\Pb\endcsname=\pgfmathresult
\let\tmpa=\pgfmathresult
\expandafter\pgfmathfloatmultiply@\expandafter{\csname m\Pa b\endcsname}{\tmpa}%
\let\tmpa=\pgfmathresult
\expandafter\pgfmathfloatsubtract@\expandafter{\csname r\Pa\endcsname}{\tmpa}%
\expandafter\let\csname r\Pa\endcsname=\pgfmathresult
\expandafter\pgfmathfloatmultiply@\expandafter{\csname r\Pa\endcsname}{\pivot}%
\expandafter\let\csname pgfmathresult\Pa\endcsname=\pgfmathresult
\edef\pgfmathresult{%
{\csname pgfmathresult\Pa\endcsname}%
{\csname pgfmathresult\Pb\endcsname}%
}%
\expandafter\pgfutilsolvetwotwoleqfloat@to@pgf@range\pgfmathresult
\fi
\fi
\pgfmath@smuggleone\pgfmathresult
\endgroup
}%
\def\pgfutilsolvetwotwoleqfloat@to@pgf@range#1#2{%
\pgfmathfloatcreate{1}{1.6}{4}\let\pgfutilsolvetwotwoleqfloat@to@pgf@range@max=\pgfmathresult
\pgfmathfloatabs@{#1}%
\expandafter\pgfmathfloatlessthan@\expandafter{\pgfmathresult}{\pgfutilsolvetwotwoleqfloat@to@pgf@range@max}%
\ifpgfmathfloatcomparison
\pgfmathfloatabs@{#2}%
\expandafter\pgfmathfloatlessthan@\expandafter{\pgfmathresult}{\pgfutilsolvetwotwoleqfloat@to@pgf@range@max}%
\ifpgfmathfloatcomparison
\pgfmathfloattofixed{#1}\let\tmpa=\pgfmathresult
\pgfmathfloattofixed{#2}%
\edef\pgfmathresult{{\tmpa}{\pgfmathresult}}%
\else
\let\pgfmathresult=\pgfutil@empty
\fi
\else
\let\pgfmathresult=\pgfutil@empty
\fi
}%
\let\pgfutil@write=\write
\let\pgfutil@read=\read
\let\pgfutil@protect\relax
\def\pgfutil@check@rerun#1#2{}
\newdimen\pgfutil@tempdima
\newdimen\pgfutil@tempdimb
\let\pgfutil@ifluatex\iffalse
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname directlua\endcsname\relax
\else
\expandafter\let\csname pgfutil@ifluatex\expandafter\endcsname
\csname iftrue\endcsname
\fi
\pgfutil@ifluatex
\let\pgfutil@directlua\directlua
\pgfutil@directlua{%
tex.enableprimitives('pgfutil@',{'luaescapestring'})}
\else
\def\pgfutil@directlua#1{}
\def\pgfutil@luaescapestring#1{}
\fi
\def\pgfutil@shellescape@lua@eightseven#1{%
\pgfutil@directlua{os.execute("\pgfutil@luaescapestring{#1}")}%
}%
\def\pgfutil@shellescape#1{%
\immediate\write18{#1}%
}%
\pgfutil@IfUndefined{directlua}{%
}{%
\pgfutil@IfUndefined{lastsavedimageresourcepages}{%
}{%
\let\pgfutil@shellescape=\pgfutil@shellescape@lua@eightseven
}%
}%
\def\pgfutil@advancestringcounter#1{%
\begingroup
\c@pgf@counta=#1\relax
\advance\c@pgf@counta by1
\edef#1{\the\c@pgf@counta}%
\pgfmath@smuggleone#1%
\endgroup
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/generic/pgf/utilities/pgfutil-common.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/doc/pgfmanual-en-macros.tex ====
\newcount\pgfmanualtargetcount
\colorlet{examplefill}{yellow!80!black}
\definecolor{graphicbackground}{rgb}{0.96,0.96,0.8}
\definecolor{codebackground}{rgb}{0.9,0.9,1}
\definecolor{animationgraphicbackground}{rgb}{0.96,0.96,0.8}
\newenvironment{pgfmanualentry}{\list{}{\leftmargin=2em\itemindent-\leftmargin\def\makelabel##1{\hss##1}}}{\endlist}
\newcounter{pgfmanualentry}
\newcommand\pgfmanualentryheadline[1]{%
\itemsep=0pt\parskip=0pt{\raggedright\item\refstepcounter{pgfmanualentry}\strut{#1}\par}\topsep=0pt}
\newcommand\pgfmanualbody{\parskip3pt}
\let\origtexttt=\texttt
\def\texttt#1{{\def\textunderscore{\char`\_}\def\textbraceleft{\char`\{}\def\textbraceright{\char`\}}\origtexttt{#1}}}
\def\exclamationmarktext{!}
\def\atmarktext{@}
{
\catcode`\|=12
\gdef\pgfmanualnormalbar{|}
\catcode`\|=13
\AtBeginDocument{\gdef|{\ifmmode\pgfmanualnormalbar\else\expandafter\verb\expandafter|\fi}}
}
\newenvironment{pgflayout}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\texttt{\string\pgfpagesuselayout\char`\{\declare{#1}\char`\}}\oarg{options}%
}
\index{#1@\protect\texttt{#1} layout}%
\index{Page layouts!#1@\protect\texttt{#1}}%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{sysanimateattribute}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\texttt{\string\pgfsysanimate\char`\{\declare{#1}\char`\}}%
}
\index{#1@\protect\texttt{#1} system layer animation attribute}%
\index{Animation attributes (system layer)!#1@\protect\texttt{#1}}%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{animateattribute}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\texttt{\string\pgfanimateattribute\char`\{\declare{#1}\char`\}\marg{options}}%
}
\index{#1@\protect\texttt{#1} basic layer animation attribute}%
\index{Animation attributes (basic layer)!#1@\protect\texttt{#1}}%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{tikzanimateattribute}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\foreach \attr in{#1} {\expandafter\pgfmanualpdflabel\expandafter{\attr}{}}%
\textbf{Animation attribute} \foreach \attr[count=\i]
in{#1}{{\ifnum\i>1 \textbf,\fi} \texttt{:\declare{\attr}}}%
}
\foreach\attr in{#1}{%
\edef\indexcall{%
\noexpand\index{\attr@\noexpand\protect\noexpand\texttt{\attr} animation attribute}%
\noexpand\index{Animation attributes!\attr@\noexpand\protect\noexpand\texttt{\attr}}%
}%
\indexcall%
}%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{command}[1]{
\begin{pgfmanualentry}
\extractcommand#1\@@
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\makeatletter
\def\includeluadocumentationof#1{
\directlua{require 'pgf.manual.DocumentParser'}
\directlua{pgf.manual.DocumentParser.include '#1'}
}
\newenvironment{luageneric}[4]{
\pgfmanualentry
\pgfmanualentryheadline{#4 \texttt{#1\declare{#2}}#3}
\index{#2@\protect\texttt{#2} (Lua)}%
\def\temp{#1}
\ifx\temp\pgfutil@empty\else
\index{#1@\protect\texttt{#1}!#2@\protect\texttt{#2} (Lua)}%
\fi
\pgfmanualbody
}{\endpgfmanualentry}
\newenvironment{luatable}[3]{
\medskip
\luageneric{#1}{#2}{ (declared in \texttt{#3})}{\textbf{Lua table}}
}{\endluageneric}
\newenvironment{luafield}[1]{
\pgfmanualentry
\pgfmanualentryheadline{Field \texttt{\declare{#1}}}
\pgfmanualbody
}{\endpgfmanualentry}
\newenvironment{lualibrary}[1]{
\pgfmanualentry
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{Graph Drawing Library} \texttt{\declare{#1}}%
}
\index{#1@\protect\texttt{#1} graph drawing library}%
\index{Libraries!#1@\protect\texttt{#1}}%
\index{Graph drawing libraries!#1@\protect\texttt{#1}}%
\vskip.25em
{\ttfamily\char`\\usegdlibrary\char`\{\declare{#1}\char`\}\space\space \char`\%\space\space \LaTeX\space and plain \TeX}\\
{\ttfamily\char`\\usegdlibrary[\declare{#1}]\space \char`\%\space\space Con\TeX t}\smallskip\par
\pgfmanualbody
}{\endpgfmanualentry}
\newenvironment{luadeclare}[4]{
\pgfmanualentry
\def\manual@temp@default{#3}%
\def\manual@temp@initial{#4}%
\def\manual@temp@{#3#4}%
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
{\ttfamily/graph
drawing/\declare{#1}\opt{=}}\opt{#2}\hfill%
\ifx\manual@temp@\pgfutil@empty\else%
(\ifx\manual@temp@default\pgfutil@empty\else%
default {\ttfamily #3}\ifx\manual@temp@initial\pgfutil@empty\else, \fi%
\fi%
\ifx\manual@temp@initial\pgfutil@empty\else%
initially {\ttfamily #4}%
\fi%
)\fi%
}%
\index{#1@\protect\texttt{#1} key}%
\pgfmanualbody
\gdef\myname{#1}%
}{\endpgfmanualentry}
\newenvironment{luadeclarestyle}[4]{
\pgfmanualentry
\def\manual@temp@para{#2}%
\def\manual@temp@default{#3}%
\def\manual@temp@initial{#4}%
\def\manual@temp@{#3#4}%
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
{\ttfamily/graph drawing/\declare{#1}}\ifx\manual@temp@para\pgfutil@empty\else\opt{\texttt=}\opt{#2}\fi\hfill%
(style\ifx\manual@temp@\pgfutil@empty\else, %
\ifx\manual@temp@default\pgfutil@empty\else%
default {\ttfamily #3}\ifx\manual@temp@initial\pgfutil@empty\else, \fi%
\fi%
\ifx\manual@temp@initial\pgfutil@empty\else%
initially {\ttfamily #4}%
\fi%
\fi)%
}%
\index{#1@\protect\texttt{#1} key}%
\pgfmanualbody%
\gdef\myname{#1}%
}{\endpgfmanualentry}
\newenvironment{luanamespace}[2]{
\luageneric{#1}{#2}{}{\textbf{Lua namespace}}
}{\endluageneric}
\newenvironment{luafiledescription}[1]{}{}
\newenvironment{luacommand}[4]{
\hypertarget{pgf/lua/#1}{\luageneric{#2}{#3}{\texttt{(#4)}}{\texttt{function}}}
}{\endluageneric}
\newenvironment{luaparameters}{\par\emph{Parameters:}%
\parametercount=0\relax%
\let\item=\parameteritem%
\let\list=\restorelist%
}
{\par
}
\newenvironment{luareturns}{\par\emph{Returns:}%
\parametercount=0\relax%
\let\item=\parameteritem%
\let\list=\restorelist%
}
{\par
}
\newcount\parametercount
\newenvironment{parameterdescription}{\unskip%
\parametercount=0\relax%
\let\item=\parameteritem%
\let\list=\restorelist%
}
{\par
}
\let\saveditemcommand=\item
\let\savedlistcommand=\list
\def\denselist#1#2{\savedlistcommand{#1}{#2}\parskip0pt\itemsep0pt}
\def\restorelist{\let\item=\saveditemcommand\denselist}
\def\parameteritem{\pgfutil@ifnextchar[\parameteritem@{}}%
\def\parameteritem@[#1]{\advance\parametercount by1\relax\hskip0.15em plus 1em\emph{\the\parametercount.}\kern1ex\def\test{#1}\ifx\test\pgfutil@empty\else#1\kern.5em\fi}
\newenvironment{commandlist}[1]{%
\begin{pgfmanualentry}
\foreach \xx in {#1} {%
\expandafter\extractcommand\xx\@@
}%
\pgfmanualbody
}{%
\end{pgfmanualentry}
}%
\newenvironment{internallist}[2][register]{%
\begin{pgfmanualentry}
\foreach \xx in {#2} {%
\expandafter\extractinternalcommand\expandafter{\xx}{#1}%
}%
\pgfmanualbody
}{%
\end{pgfmanualentry}
}%
\def\extractinternalcommand#1#2{%
\removeats{#1}%
\pgfmanualentryheadline{%
\pgfmanualpdflabel{\textbackslash\strippedat}{}%
Internal #2 \declare{\texttt{\string#1}}}%
\index{Internals!\strippedat @\protect\myprintocmmand{\strippedat}}%
\index{\strippedat @\protect\myprintocmmand{\strippedat}}%
}
\def\mvar#1{{\ifmmode\textrm{\textit{#1}}\else\rmfamily\textit{#1}\fi}}
\makeatletter
\def\extractmathfunctionname#1{\extractmathfunctionname@#1(,)\tmpa\tmpb}
\def\extractmathfunctionname@#1(#2)#3\tmpb{\def\mathname{#1}}
\makeatother
\newenvironment{math-function}[1]{
\def\mathdefaultname{#1}
\extractmathfunctionname{#1}
\edef\mathurl{{math:\mathname}}\expandafter\hypertarget\expandafter{\mathurl}{}%
\begin{pgfmanualentry}
\pgfmanualentryheadline{\texttt{#1}}%
\index{\mathname @\protect\texttt{\mathname} math function}%
\index{Math functions!\mathname @\protect\texttt{\mathname}}%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\pgfmanualemptytext{}
\def\pgfmanualvbarvbar{\char`\|\char`\|}
\newenvironment{math-operator}[4][]{%
\begin{pgfmanualentry}
\csname math#3operator\endcsname{#2}{#4}
\def\mathtest{#4}%
\ifx\mathtest\pgfmanualemptytext%
\def\mathtype{(#3 operator)}
\else%
\def\mathtype{(#3 operator; uses the \texttt{#4} function)}
\fi%
\pgfmanualentryheadline{\mathexample\hfill\mathtype}%
\def\mathtest{#1}%
\ifx\mathtest\pgfmanualemptytext%
\index{#2@\protect\texttt{#2} #3 math operator}%
\index{Math operators!#2@\protect\texttt{#2}}%
\fi%
\pgfmanualbody
}
{\end{pgfmanualentry}}
\newenvironment{math-operators}[5][]{%
\begin{pgfmanualentry}
\csname math#4operator\endcsname{#2}{#3}
\def\mathtest{#5}%
\ifx\mathtest\pgfmanualemptytext%
\def\mathtype{(#4 operators)}
\else%
\def\mathtype{(#4 operators; use the \texttt{#5} function)}
\fi%
\pgfmanualentryheadline{\mathexample\hfill\mathtype}%
\def\mathtest{#1}%
\ifx\mathtest\pgfmanualemptytext%
\index{#2#3@\protect\texttt{#2\protect\ #3} #4 math operators}%
\index{Math operators!#2#3@\protect\texttt{#2\protect\ #3}}%
\fi%
\pgfmanualbody
}
{\end{pgfmanualentry}}
\def\mathinfixoperator#1#2{%
\def\mathoperator{\texttt{#1}}%
\def\mathexample{\mvar{x}\space\texttt{#1}\space\mvar{y}}%
}
\def\mathprefixoperator#1#2{%
\def\mathoperator{\texttt{#1}}%
\def\mathexample{\texttt{#1}\mvar{x}}%
}
\def\mathpostfixoperator#1#2{%
\def\mathoperator{\texttt{#1}}
\def\mathexample{\mvar{x}\texttt{#1}}%
}
\def\mathgroupoperator#1#2{%
\def\mathoperator{\texttt{#1\ #2}}%
\def\mathexample{\texttt{#1}\mvar{x}\texttt{#2}}%
}
\expandafter\let\csname matharray accessoperator\endcsname=\mathgroupoperator
\expandafter\let\csname matharrayoperator\endcsname=\mathgroupoperator
\def\mathconditionaloperator#1#2{%
\def\mathoperator{#1\space#2}
\def\mathexample{\mvar{x}\ \texttt{#1}\ \mvar{y}\ {\texttt{#2}}\ \mvar{z}}
}
\newcommand\mathcommand[1][\mathdefaultname]{%
\expandafter\makemathcommand#1(\empty)\stop%
\expandafter\extractcommand\mathcommandname\@@%
\medskip
}
\makeatletter
\def\makemathcommand#1(#2)#3\stop{%
\expandafter\def\expandafter\mathcommandname\expandafter{\csname pgfmath#1\endcsname}%
\ifx#2\empty%
\else%
\@makemathcommand#2,\stop,
\fi}
\def\@makemathcommand#1,{%
\ifx#1\stop%
\else%
\expandafter\def\expandafter\mathcommandname\expandafter{\mathcommandname{\ttfamily\char`\{#1\char`\}}}%
\expandafter\@makemathcommand%
\fi}
\makeatother
\def\calcname{\textsc{calc}}
\newenvironment{math-keyword}[1]{
\extracttikzmathkeyword#1@
\begin{pgfmanualentry}
\pgfmanualentryheadline{\texttt{\color{red}\mathname}\mathrest}%
\index{\mathname @\protect\texttt{\mathname} tikz math function}%
\index{TikZ math functions!\mathname @\protect\texttt{\mathname}}%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\extracttikzmathkeyword#1#2@{%
\def\mathname{#1}%
\def\mathrest{#2}%
}
\def\extractcommand#1#2\@@{%
\removeats{#1}%
\pgfmanualentryheadline{%
\pgfmanualpdflabel{\textbackslash\strippedat}{}%
\declare{\expandafter\texttt\expandafter{\string#1}}#2%
}%
\index{\strippedat @\protect\myprintocmmand{\strippedat}}
}
\def\luaextractcommand#1#2\relax{%
\declare{\texttt{\string#1}}#2\par%
}
\renewenvironment{environment}[1]{
\begin{pgfmanualentry}
\extractenvironement#1\@@
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\extractenvironement#1#2\@@{%
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
{\ttfamily\char`\\begin\char`\{\declare{#1}\char`\}}#2%
}%
\pgfmanualentryheadline{{\ttfamily\ \ }\meta{environment contents}}%
\pgfmanualentryheadline{{\ttfamily\char`\\end\char`\{\declare{#1}\char`\}}}%
\index{#1@\protect\texttt{#1} environment}%
\index{Environments!#1@\protect\texttt{#1}}
}
\newenvironment{plainenvironment}[1]{
\begin{pgfmanualentry}
\extractplainenvironement#1\@@
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\extractplainenvironement#1#2\@@{%
\pgfmanualentryheadline{{\ttfamily\declare{\char`\\#1}}#2}%
\pgfmanualentryheadline{{\ttfamily\ \ }\meta{environment contents}}%
\pgfmanualentryheadline{{\ttfamily\declare{\char`\\end#1}}}%
\index{#1@\protect\texttt{#1} environment}%
\index{Environments!#1@\protect\texttt{#1}}%
}
\newenvironment{contextenvironment}[1]{
\begin{pgfmanualentry}
\extractcontextenvironement#1\@@
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\extractcontextenvironement#1#2\@@{%
\pgfmanualentryheadline{{\ttfamily\declare{\char`\\start#1}}#2}%
\pgfmanualentryheadline{{\ttfamily\ \ }\meta{environment contents}}%
\pgfmanualentryheadline{{\ttfamily\declare{\char`\\stop#1}}}%
\index{#1@\protect\texttt{#1} environment}%
\index{Environments!#1@\protect\texttt{#1}}}
\newenvironment{shape}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{Shape} {\ttfamily\declare{#1}}%
}%
\index{#1@\protect\texttt{#1} shape}%
\index{Shapes!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{pictype}[2]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{Pic type} {\ttfamily\declare{#1}#2}%
}%
\index{#1@\protect\texttt{#1} pic type}%
\index{Pic Types!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{shading}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{Shading} {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} shading}%
\index{Shadings!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{graph}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{Graph} {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} graph}%
\index{Graphs!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{gdalgorithm}[2]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{Layout} {\ttfamily/graph drawing/\declare{#1}\opt{=}}\opt{\meta{options}}}%
\index{#1@\protect\texttt{#1} layout}%
\index{Layouts!#1@\protect\texttt{#1}}%
\foreach \algo in {#2}
{\edef\marshal{\noexpand\index{#2@\noexpand\protect\noexpand\texttt{#2} algorithm}}\marshal}%
\index{Graph drawing layouts!#1@\protect\texttt{#1}}
\item{\small alias {\ttfamily/tikz/#1}}\par
\item{\small alias {\ttfamily/tikz/graphs/#1}}\par
\item{\small Employs {\ttfamily algorithm=#2}}\par
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{dataformat}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{Format} {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} format}%
\index{Formats!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{stylesheet}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{Style sheet} {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} style sheet}%
\index{Style sheets!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{handler}[1]{
\begin{pgfmanualentry}
\extracthandler#1\@nil%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\gobble#1{}
\def\extracthandler#1#2\@nil{%
\pgfmanualentryheadline{%
\pgfmanualpdflabel{/handlers/#1}{}%
\textbf{Key handler} \meta{key}{\ttfamily/\declare{#1}}#2}%
\index{\gobble#1@\protect\texttt{#1} handler}%
\index{Key handlers!#1@\protect\texttt{#1}}
}
\makeatletter
\newenvironment{stylekey}[1]{
\begin{pgfmanualentry}
\def\extrakeytext{style, }
\extractkey#1\@nil%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\choicesep{$\vert$}%
\def\choicearg#1{\texttt{#1}}
\newif\iffirstchoice
\newcommand\mchoice[1]{%
\begingroup
\firstchoicetrue
\foreach \mchoice@ in {#1} {%
\iffirstchoice
\global\firstchoicefalse
\else
\choicesep
\fi
\choicearg{\mchoice@}%
}%
\endgroup
}%
\newenvironment{key}[1]{
\begin{pgfmanualentry}
\def\extrakeytext{}
\extractkey#1\@nil%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\insertpathifneeded#1#2{%
\def\insertpathifneeded@@{#2}%
\ifx\insertpathifneeded@@\empty
\def\mykey{#1}%
\else
\insertpathifneeded@#2\@nil
\ifpgfutil@in@
\def\mykey{#2/#1}%
\else
\def\mykey{#1}%
\fi
\fi
}%
\def\insertpathifneeded@#1#2\@nil{%
\def\insertpathifneeded@@{#1}%
\def\insertpathifneeded@@@{/}%
\ifx\insertpathifneeded@@\insertpathifneeded@@@
\pgfutil@in@true
\else
\pgfutil@in@false
\fi
}%
\newenvironment{keylist}[2][]{%
\begin{pgfmanualentry}
\def\extrakeytext{}%
\foreach \xx in {#2} {%
\expandafter\insertpathifneeded\expandafter{\xx}{#1}%
\expandafter\extractkey\mykey\@nil%
}%
\pgfmanualbody
}{%
\end{pgfmanualentry}
}%
\def\extractkey#1\@nil{%
\pgfutil@in@={#1}%
\ifpgfutil@in@%
\extractkeyequal#1\@nil
\else%
\pgfutil@in@{(initial}{#1}%
\ifpgfutil@in@%
\extractequalinitial#1\@nil%
\else
\pgfmanualentryheadline{%
\def\mykey{#1}%
\def\mypath{}%
\gdef\myname{}%
\firsttimetrue%
\pgfmanualdecomposecount=0\relax%
\decompose#1/\nil%
{\ttfamily\declare{#1}}\hfill(\extrakeytext no value)}%
\fi
\fi%
}
\def\extractkeyequal#1=#2\@nil{%
\pgfutil@in@{(default}{#2}%
\ifpgfutil@in@%
\extractdefault{#1}#2\@nil%
\else%
\pgfutil@in@{(initial}{#2}%
\ifpgfutil@in@%
\extractinitial{#1}#2\@nil%
\else
\pgfmanualentryheadline{%
\def\mykey{#1}%
\def\mypath{}%
\gdef\myname{}%
\firsttimetrue%
\pgfmanualdecomposecount=0\relax%
\decompose#1/\nil%
{\ttfamily\declare{#1}=}#2\hfill(\extrakeytext no default)}%
\fi%
\fi%
}
\def\extractdefault#1#2(default #3)\@nil{%
\pgfmanualentryheadline{%
\def\mykey{#1}%
\def\mypath{}%
\gdef\myname{}%
\firsttimetrue%
\pgfmanualdecomposecount=0\relax%
\decompose#1/\nil%
{\ttfamily\declare{#1}\opt{=}}\opt{#2}\hfill (\extrakeytext default {\ttfamily#3})}%
}
\def\extractinitial#1#2(initially #3)\@nil{%
\pgfmanualentryheadline{%
\def\mykey{#1}%
\def\mypath{}%
\gdef\myname{}%
\firsttimetrue%
\pgfmanualdecomposecount=0\relax%
\decompose#1/\nil%
{\ttfamily\declare{#1}=}#2\hfill (\extrakeytext no default, initially {\ttfamily#3})}%
}
\def\extractequalinitial#1 (initially #2)\@nil{%
\pgfmanualentryheadline{%
\def\mykey{#1}%
\def\mypath{}%
\gdef\myname{}%
\firsttimetrue%
\pgfmanualdecomposecount=0\relax%
\decompose#1/\nil%
{\ttfamily\declare{#1}}\hfill (\extrakeytext initially {\ttfamily#2})}%
}
\def\keyalias#1{\vspace{-3pt}\item{\small alias {\ttfamily/#1/\myname}}\vspace{-2pt}\par
\pgfmanualpdflabel{/#1/\myname}{}%
}
\newif\iffirsttime
\newcount\pgfmanualdecomposecount
\makeatother
\def\decompose/#1/#2\nil{%
\def\test{#2}%
\ifx\test\empty%
\index{#1@\protect\texttt{#1} key}%
\index{\mypath#1@\protect\texttt{#1}}%
\gdef\myname{#1}%
\pgfmanualpdflabel{#1}{}
\else%
\advance\pgfmanualdecomposecount by1\relax%
\ifnum\pgfmanualdecomposecount>2\relax%
\decomposetoodeep#1/#2\nil%
\else%
\iffirsttime%
\begingroup%
\def\hyperlabelwithoutslash##1/\nil{%
\pgfmanualpdflabel{##1}{}%
}%
\hyperlabelwithoutslash/#1/#2\nil%
\endgroup%
\def\mypath{#1@\protect\texttt{/#1/}!}%
\firsttimefalse%
\else%
\expandafter\def\expandafter\mypath\expandafter{\mypath#1@\protect\texttt{#1/}!}%
\fi%
\def\firsttime{}%
\decompose/#2\nil%
\fi%
\fi%
}
\def\decomposetoodeep#1/#2/\nil{%
\index{#1/#2@\protect\texttt{#1/#2} key}%
\index{\mypath#1/#2@\protect\texttt{#1/#2}}%
\decomposefindlast/#1/#2/\nil%
}
\makeatletter
\def\decomposefindlast/#1/#2\nil{%
\def\test{#2}%
\ifx\test\pgfutil@empty%
\gdef\myname{#1}%
\else%
\decomposefindlast/#2\nil%
\fi%
}
\makeatother
\def\indexkey#1{%
\def\mypath{}%
\decompose#1/\nil%
}
\newenvironment{predefinedmethod}[1]{
\begin{pgfmanualentry}
\extractpredefinedmethod#1\@nil
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\extractpredefinedmethod#1(#2)\@nil{%
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
Method \declare{\ttfamily #1}\texttt(#2\texttt) \hfill(predefined for all classes)}
\index{#1@\protect\texttt{#1} method}%
\index{Methods!#1@\protect\texttt{#1}}
}
\newenvironment{ooclass}[1]{
\begin{pgfmanualentry}
\def\currentclass{#1}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{Class} \declare{\texttt{#1}}}
\index{#1@\protect\texttt{#1} class}%
\index{Class #1@Class \protect\texttt{#1}}%
\index{Classes!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{method}[1]{
\begin{pgfmanualentry}
\extractmethod#1\@nil
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\extractmethod#1(#2)\@nil{%
\def\test{#1}
\ifx\test\currentclass
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
Constructor \declare{\ttfamily #1}\texttt(#2\texttt)}
\else
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
Method \declare{\ttfamily #1}\texttt(#2\texttt)}
\fi
\index{#1@\protect\texttt{#1} method}%
\index{Methods!#1@\protect\texttt{#1}}
\index{Class \currentclass!#1@\protect\texttt{#1}}%
}
\newenvironment{classattribute}[1]{
\begin{pgfmanualentry}
\extractattribute#1\@nil
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\extractattribute#1=#2;\@nil{%
\def\test{#2}%
\ifx\test\@empty
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
Private attribute \declare{\ttfamily #1} \hfill (initially empty)}
\else
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
Private attribute \declare{\ttfamily #1} \hfill (initially {\ttfamily #2})}
\fi
\index{#1@\protect\texttt{#1} attribute}%
\index{Attributes!#1@\protect\texttt{#1}}
\index{Class \currentclass!#1@\protect\texttt{#1}}%
}
\newenvironment{predefinednode}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{Predefined node} {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} node}%
\index{Predefined node!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{coordinatesystem}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{Coordinate system} {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} coordinate system}%
\index{Coordinate systems!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{snake}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{\textbf{Snake} {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} snake}%
\index{Snakes!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{decoration}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{\textbf{Decoration} {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} decoration}%
\index{Decorations!#1@\protect\texttt{#1}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\pgfmanualbar{\char`\|}
\makeatletter
\newenvironment{pathoperation}[3][]{
\begin{pgfmanualentry}
\def\pgfmanualtest{#1}%
\pgfmanualentryheadline{%
\ifx\pgfmanualtest\@empty%
\pgfmanualpdflabel{#2}{}%
\fi%
\textcolor{gray}{{\ttfamily\char`\\path}\
\ \dots}
\declare{\texttt{\noligs{#2}}}#3\ \textcolor{gray}{\dots\texttt{;}}}%
\ifx\pgfmanualtest\@empty%
\index{#2@\protect\texttt{#2} path operation}%
\index{Path operations!#2@\protect\texttt{#2}}%
\fi%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{datavisualizationoperation}[3][]{
\begin{pgfmanualentry}
\def\pgfmanualtest{#1}%
\pgfmanualentryheadline{%
\ifx\pgfmanualtest\@empty%
\pgfmanualpdflabel{#2}{}%
\fi%
\textcolor{gray}{{\ttfamily\char`\\datavisualization}\
\ \dots}
\declare{\texttt{\noligs{#2}}}#3\ \textcolor{gray}{\dots\texttt{;}}}%
\ifx\pgfmanualtest\@empty%
\index{#2@\protect\texttt{#2} (data visualization)}%
\index{Data visualization!#2@\protect\texttt{#2}}%
\fi%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\makeatother
\def\doublebs{\texttt{\char`\\\char`\\}}
\newenvironment{package}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
{\ttfamily\char`\\usepackage\char`\{\declare{#1}\char`\}\space\space \char`\%\space\space \LaTeX}}
\index{#1@\protect\texttt{#1} package}%
\index{Packages and files!#1@\protect\texttt{#1}}%
\pgfmanualentryheadline{{\ttfamily\char`\\input \declare{#1}.tex\space\space\space \char`\%\space\space plain \TeX}}
\pgfmanualentryheadline{{\ttfamily\char`\\usemodule[\declare{#1}]\space\space \char`\%\space\space Con\TeX t}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{pgfmodule}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
{\ttfamily\char`\\usepgfmodule\char`\{\declare{#1}\char`\}\space\space\space
\char`\%\space\space \LaTeX\space and plain \TeX\space and pure pgf}}
\index{#1@\protect\texttt{#1} module}%
\index{Modules!#1@\protect\texttt{#1}}%
\pgfmanualentryheadline{{\ttfamily\char`\\usepgfmodule[\declare{#1}]\space\space \char`\%\space\space Con\TeX t\space and pure pgf}}
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{pgflibrary}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{\tikzname\ Library} \texttt{\declare{#1}}}
\index{#1@\protect\texttt{#1} library}%
\index{Libraries!#1@\protect\texttt{#1}}%
\vskip.25em%
{{\ttfamily\char`\\usepgflibrary\char`\{\declare{#1}\char`\}\space\space\space
\char`\%\space\space \LaTeX\space and plain \TeX\space and pure pgf}}\\
{{\ttfamily\char`\\usepgflibrary[\declare{#1}]\space\space \char`\%\space\space Con\TeX t\space and pure pgf}}\\
{{\ttfamily\char`\\usetikzlibrary\char`\{\declare{#1}\char`\}\space\space
\char`\%\space\space \LaTeX\space and plain \TeX\space when using \tikzname}}\\
{{\ttfamily\char`\\usetikzlibrary[\declare{#1}]\space
\char`\%\space\space Con\TeX t\space when using \tikzname}}\\[.5em]
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{purepgflibrary}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{{\small PGF} Library} \texttt{\declare{#1}}}
\index{#1@\protect\texttt{#1} library}%
\index{Libraries!#1@\protect\texttt{#1}}%
\vskip.25em%
{{\ttfamily\char`\\usepgflibrary\char`\{\declare{#1}\char`\}\space\space\space
\char`\%\space\space \LaTeX\space and plain \TeX}}\\
{{\ttfamily\char`\\usepgflibrary[\declare{#1}]\space\space \char`\%\space\space Con\TeX t}}\\[.5em]
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{tikzlibrary}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{\tikzname\ Library} \texttt{\declare{#1}}}
\index{#1@\protect\texttt{#1} library}%
\index{Libraries!#1@\protect\texttt{#1}}%
\vskip.25em%
{{\ttfamily\char`\\usetikzlibrary\char`\{\declare{#1}\char`\}\space\space \char`\%\space\space \LaTeX\space and plain \TeX}}\\
{{\ttfamily\char`\\usetikzlibrary[\declare{#1}]\space \char`\%\space\space Con\TeX t}}\\[.5em]
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{pgfkeyslibrary}[1]{%
\begin{pgfmanualentry}%
\pgfmanualentryheadline{%
\pgfmanualpdflabel{#1}{}%
\textbf{pgfkeys Library} \texttt{\declare{#1}}}%
\index{#1@\protect\texttt{#1} pgfkeys library}%
\index{pgfkeys Libraries!#1@\protect\texttt{#1}}%
\vskip.25em
{{\ttfamily\char`\\usepgfkeyslibrary\char`\{\declare{#1}\char`\}\space\space \char`\%\space\space \LaTeX\space and plain \TeX}}\\
{{\ttfamily\char`\\usepgfkeyslibrary[\declare{#1}]\space \char`\%\space\space Con\TeX t}}\\[.5em]%
\pgfmanualbody
}%
{%
\end{pgfmanualentry}%
}
\newenvironment{filedescription}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{File {\ttfamily\declare{#1}}}%
\index{#1@\protect\texttt{#1} file}%
\index{Packages and files!#1@\protect\texttt{#1}}%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newenvironment{packageoption}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{{\ttfamily\char`\\usepackage[\declare{#1}]\char`\{pgf\char`\}}}
\index{#1@\protect\texttt{#1} package option}%
\index{Package options for \textsc{pgf}!#1@\protect\texttt{#1}}%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\newcommand\opt[1]{{\color{black!50!green}#1}}
\newcommand\ooarg[1]{{\ttfamily[}\meta{#1}{\ttfamily]}}
\def\opt{\afterassignment\pgfmanualopt\let\next=}
\def\pgfmanualopt{\ifx\next\bgroup\bgroup\color{black!50!green}\else{\color{black!50!green}\next}\fi}
\def\beamer{\textsc{beamer}}
\def\pdf{\textsc{pdf}}
\def\eps{\texttt{eps}}
\def\pgfname{\textsc{pgf}}
\def\tikzname{Ti\emph{k}Z}
\def\pstricks{\textsc{pstricks}}
\def\prosper{\textsc{prosper}}
\def\seminar{\textsc{seminar}}
\def\texpower{\textsc{texpower}}
\def\foils{\textsc{foils}}
{
\makeatletter
\global\let\myempty=\@empty
\global\let\mygobble=\@gobble
\catcode`\@=12
\gdef\getridofats#1@#2\relax{%
\def\getridtest{#2}%
\ifx\getridtest\myempty%
\expandafter\def\expandafter\strippedat\expandafter{\strippedat#1}
\else%
\expandafter\def\expandafter\strippedat\expandafter{\strippedat#1\protect\printanat}
\getridofats#2\relax%
\fi%
}
\gdef\removeats#1{%
\let\strippedat\myempty%
\edef\strippedtext{\stripcommand#1}%
\expandafter\getridofats\strippedtext @\relax%
}
\gdef\stripcommand#1{\expandafter\mygobble\string#1}
}
\def\printanat{\char`\@}
\def\declare{\afterassignment\pgfmanualdeclare\let\next=}
\def\pgfmanualdeclare{\ifx\next\bgroup\bgroup\color{red!75!black}\else{\color{red!75!black}\next}\fi}
\let\textoken=\command
\let\endtextoken=\endcommand
\def\myprintocmmand#1{\texttt{\char`\\#1}}
\def\example{\par\smallskip\noindent\textit{Example: }}
\def\themeauthor{\par\smallskip\noindent\textit{Theme author: }}
\def\indexoption#1{%
\index{#1@\protect\texttt{#1} option}%
\index{Graphic options and styles!#1@\protect\texttt{#1}}%
}
\def\itemcalendaroption#1{\item \declare{\texttt{#1}}%
\index{#1@\protect\texttt{#1} date test}%
\index{Date tests!#1@\protect\texttt{#1}}%
}
\def\class#1{\list{}{\leftmargin=2em\itemindent-\leftmargin\def\makelabel##1{\hss##1}}%
\extractclass#1@\par\topsep=0pt}
\def\endclass{\endlist}
\def\extractclass#1#2@{%
\item{{{\ttfamily\char`\\documentclass}#2{\ttfamily\char`\{\declare{#1}\char`\}}}}%
\index{#1@\protect\texttt{#1} class}%
\index{Classes!#1@\protect\texttt{#1}}}
\def\partname{Part}
\makeatletter
\def\index@prologue{\section*{Index}\addcontentsline{toc}{section}{Index}
This index only contains automatically generated entries. A good
index should also contain carefully selected keywords. This index is
not a good index.
\bigskip
}
\c@IndexColumns=2
\def\theindex{\@restonecoltrue
\columnseprule \z@ \columnsep 29\p@
\twocolumn[\index@prologue]%
\parindent -30pt
\columnsep 15pt
\parskip 0pt plus 1pt
\leftskip 30pt
\rightskip 0pt plus 2cm
\small
\def\@idxitem{\par}%
\let\item\@idxitem \ignorespaces}
\def\endtheindex{\onecolumn}
\def\noindexing{\let\index=\@gobble}
\newenvironment{arrowtipsimple}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{\textbf{Arrow Tip Kind} {\ttfamily#1}}
\index{#1@\protect\texttt{#1} arrow tip}%
\index{Arrow tips!#1@\protect\texttt{#1}}%
\def\currentarrowtype{#1}
\pgfmanualbody}
{
\end{pgfmanualentry}
}
\newenvironment{arrowtip}[4]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{\textbf{Arrow Tip Kind} {\ttfamily#1}}
\index{#1@\protect\texttt{#1} arrow tip}%
\index{Arrow tips!#1@\protect\texttt{#1}}%
\pgfmanualbody
\def\currentarrowtype{#1}
\begin{minipage}[t]{10.25cm}
#2
\end{minipage}\hskip5mm\begin{minipage}[t]{4.75cm}
\leavevmode\vskip-2em
\tikz{
\draw [black!50,line width=5mm,-{#1[#3,color=black]}] (-4,0) -- (0,0);
\foreach \action in {#4}
{ \expandafter\processaction\action\relax }
}
\end{minipage}\par\smallskip
}
{
\end{pgfmanualentry}
}
\newenvironment{arrowcap}[5]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{\textbf{Arrow Tip Kind} {\ttfamily#1}}
\index{#1@\protect\texttt{#1} arrow tip}%
\index{Arrow tips!#1@\protect\texttt{#1}}%
\pgfmanualbody
\def\currentarrowtype{#1}
\begin{minipage}[t]{10.25cm}
#2
\end{minipage}\hskip5mm\begin{minipage}[t]{4.75cm}
\leavevmode\vskip-2em
\tikz{
\path [tips, line width=10mm,-{#1[#3,color=black]}] (-4,0) -- (0,0);
\draw [line width=10mm,black!50] (-3,0) -- (#5,0);
\foreach \action in {#4}
{ \expandafter\processaction\action\relax }
}
\end{minipage}\par\smallskip
}
{
\end{pgfmanualentry}
}
\newenvironment{pattern}[1]{
\begin{pgfmanualentry}
\pgfmanualentryheadline{\textbf{Pattern} {\ttfamily#1}}
\index{#1@\protect\texttt{#1} pattern}%
\index{Patterns!#1@\protect\texttt{#1}}%
\pgfmanualbody
}
{
\end{pgfmanualentry}
}
\def\processaction#1=#2\relax{
\expandafter\let\expandafter\pgf@temp\csname manual@action@#1\endcsname
\ifx\pgf@temp\relax\else
\pgf@temp#2/0/\relax
\fi
}
\def\manual@action@length#1/#2/#3\relax{%
\draw [red,|<->|,semithick,xshift=#2] ([yshift=4pt]current bounding
box.north -| -#1,0) coordinate (last length) -- node
[above=-2pt] {|length|} ++(#1,0);
}
\def\manual@action@width#1/#2/#3\relax{%
\draw [overlay, red,|<->|,semithick] (.5,-#1/2) -- node [below,sloped] {|width|} (.5,#1/2);
}
\def\manual@action@inset#1/#2/#3\relax{%
\draw [red,|<->|,semithick,xshift=#2] ([yshift=-4pt]current bounding
box.south -| last length) -- node [below] {|inset|} ++(#1,0);
}
\newenvironment{arrowexamples}
{\begin{tabbing}
\hbox to \dimexpr\linewidth-5.5cm\relax{\emph{Appearance of the below at line width} \hfil} \=
\hbox to 1.9cm{\emph{0.4pt}\hfil} \= \hbox to 2cm{\emph{0.8pt}\hfil} \= \emph{1.6pt} \\
}
{\end{tabbing}\vskip-1em}
\newenvironment{arrowcapexamples}
{\begin{tabbing}
\hbox to \dimexpr\linewidth-5.5cm\relax{\emph{Appearance of the below at line width} \hfil} \=
\hbox to 1.9cm{\emph{1ex}\hfil} \= \hbox to 2cm{\emph{1em}\hfil} \\
}
{\end{tabbing}\vskip-1em}
\def\arrowcapexample#1[#2]{\def\temp{#1}\ifx\temp\pgfutil@empty\arrowcapexample@\currentarrowtype[{#2}]\else\arrowcapexample@#1[{#2}]\fi}
\def\arrowcapexample@#1[#2]{%
{\sfcode`\.1000\small\texttt{#1[#2]}} \>
\kern-.5ex\tikz [baseline,>={#1[#2]}] \draw [line
width=1ex,->] (0,.5ex) -- (2em,.5ex); \>
\kern-.5em\tikz [baseline,>={#1[#2]}] \draw [line
width=1em,->] (0,.5ex) -- (2em,.5ex); \\
}
\def\arrowexample#1[#2]{\def\temp{#1}\ifx\temp\pgfutil@empty\arrowexample@\currentarrowtype[{#2}]\else\arrowexample@#1[{#2}]\fi}
\def\arrowexample@#1[#2]{%
{\sfcode`\.1000\small\texttt{#1[#2]}} \>
\tikz [baseline,>={#1[#2]}] \draw [line
width=0.4pt,->] (0,.5ex) -- (2em,.5ex); thin \>
\tikz [baseline,>={#1[#2]}] \draw [line
width=0.8pt,->] (0,.5ex) -- (2em,.5ex); \textbf{thick} \>
\tikz [baseline,>={#1[#2]}] \draw [line
width=1.6pt,->] (0,.5ex) -- (3em,.5ex); \\
}
\def\arrowexampledup[#1]{\arrowexample[{#1] \currentarrowtype[}]}
\def\arrowexampledupdot[#1]{\arrowexample[{#1] . \currentarrowtype[}]}
\def\arrowexampledouble#1[#2]{\def\temp{#1}\ifx\temp\pgfutil@empty\arrowexampledouble@\currentarrowtype[{#2}]\else\arrowexampledouble@#1[{#2}]\fi}
\def\arrowexampledouble@#1[#2]{%
{\sfcode`\.1000\small\texttt{#1[#2]} on double line} \>
\tikz [baseline,>={#1[#2]}]
\draw [double equal sign distance,line width=0.4pt,->] (0,.5ex) -- (2em,.5ex); thin \>
\tikz [baseline,>={#1[#2]}]
\draw [double equal sign distance,line width=0.8pt,->] (0,.5ex) -- (2em,.5ex); \textbf{thick} \>
\tikz [baseline,>={#1[#2]}]
\draw [double equal sign distance, line width=1.6pt,->] (0,.5ex) -- (3em,.5ex); \\
}
\newcommand\symarrow[1]{%
\index{#1@\protect\texttt{#1} arrow tip}%
\index{Arrow tips!#1@\protect\texttt{#1}}%
\texttt{#1}& yields thick
\begin{tikzpicture}[arrows={#1-#1},thick,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
\fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw (0pt,.5ex) -- (1cm,.5ex);
\end{tikzpicture} and thin
\begin{tikzpicture}[arrows={#1-#1},thin,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
\fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw (0pt,.5ex) -- (1cm,.5ex);
\end{tikzpicture}
}
\newcommand\symarrowdouble[1]{%
\index{#1@\protect\texttt{#1} arrow tip}%
\index{Arrow tips!#1@\protect\texttt{#1}}%
\texttt{#1}& yields thick
\begin{tikzpicture}[arrows={#1-#1},thick,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
\fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw (0pt,.5ex) -- (1cm,.5ex);
\end{tikzpicture}
and thin
\begin{tikzpicture}[arrows={#1-#1},thin,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
\fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw (0pt,.5ex) -- (1cm,.5ex);
\end{tikzpicture}, double
\begin{tikzpicture}[arrows={#1-#1},thick,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
\fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw[double,double equal sign distance] (0pt,.5ex) -- (1cm,.5ex);
\end{tikzpicture} and
\begin{tikzpicture}[arrows={#1-#1},thin,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
\fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw[double,double equal sign distance] (0pt,.5ex) -- (1cm,.5ex);
\end{tikzpicture}
}
\newcommand\sarrow[2]{%
\index{#1@\protect\texttt{#1} arrow tip}%
\index{Arrow tips!#1@\protect\texttt{#1}}%
\index{#2@\protect\texttt{#2} arrow tip}%
\index{Arrow tips!#2@\protect\texttt{#2}}%
\texttt{#1-#2}& yields thick
\begin{tikzpicture}[arrows={#1-#2},thick,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
\fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw (0pt,.5ex) -- (1cm,.5ex);
\end{tikzpicture} and thin
\begin{tikzpicture}[arrows={#1-#2},thin,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
\fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw (0pt,.5ex) -- (1cm,.5ex);
\end{tikzpicture}
}
\newcommand\sarrowdouble[2]{%
\index{#1@\protect\texttt{#1} arrow tip}%
\index{Arrow tips!#1@\protect\texttt{#1}}%
\index{#2@\protect\texttt{#2} arrow tip}%
\index{Arrow tips!#2@\protect\texttt{#2}}%
\texttt{#1-#2}& yields thick
\begin{tikzpicture}[arrows={#1-#2},thick,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
\fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw (0pt,.5ex) -- (1cm,.5ex);
\end{tikzpicture} and thin
\begin{tikzpicture}[arrows={#1-#2},thin,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
\fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw (0pt,.5ex) -- (1cm,.5ex);
\end{tikzpicture}, double
\begin{tikzpicture}[arrows={#1-#2},thick,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
\fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw[double,double equal sign distance] (0pt,.5ex) -- (1cm,.5ex);
\end{tikzpicture} and
\begin{tikzpicture}[arrows={#1-#2},thin,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
\fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw[double,double equal sign distance] (0pt,.5ex) -- (1cm,.5ex);
\end{tikzpicture}
}
\newcommand\carrow[1]{%
\index{#1@\protect\texttt{#1} arrow tip}%
\index{Arrow tips!#1@\protect\texttt{#1}}%
\texttt{#1}& yields for line width 1ex
\begin{tikzpicture}[arrows={#1-#1},line width=1ex,baseline]
\useasboundingbox (-1mm,-0.5ex) rectangle (1.6cm,2ex);
\fill [black!15] (1.5cm,-.5ex) rectangle (1.6cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
\draw (0pt,.5ex) -- (1.5cm,.5ex);
\end{tikzpicture}
}
\def\myvbar{\char`\|}
\newcommand\plotmarkentry[1]{%
\index{#1@\protect\texttt{#1} plot mark}%
\index{Plot marks!#1@\protect\texttt{#1}}
\texttt{\char`\\pgfuseplotmark\char`\{\declare{\noligs{#1}}\char`\}} &
\tikz\draw[color=black!25] plot[mark=#1,mark options={fill=examplefill,draw=black}] coordinates{(0,0) (.5,0.2) (1,0) (1.5,0.2)};\\
}
\newcommand\plotmarkentrytikz[1]{%
\index{#1@\protect\texttt{#1} plot mark}%
\index{Plot marks!#1@\protect\texttt{#1}}
\texttt{mark=\declare{\noligs{#1}}} & \tikz\draw[color=black!25]
plot[mark=#1,mark options={fill=examplefill,draw=black}]
coordinates {(0,0) (.5,0.2) (1,0) (1.5,0.2)};\\
}
\ifx\scantokens\@undefined
\PackageError{pgfmanual-macros}{You need to use extended latex
(elatex) or (pdfelatex) to process this document}{}
\fi
\begingroup
\catcode`|=0
\catcode`[= 1
\catcode`]=2
\catcode`\{=12
\catcode `\}=12
\catcode`\\=12 |gdef|find@example#1\end{codeexample}[|endofcodeexample[#1]]
|endgroup
\begingroup
\catcode`\^=7
\catcode`\^^M=13
\catcode`\^^I=13
\catcode`\ =13%
\gdef\returntospace{\catcode`\ =13\def {\space}\catcode`\^^I=13\def^^I{\space}}
\gdef\showreturn{\show^^M}
\endgroup
\begingroup
\catcode`\%=13
\catcode`\^^M=13
\gdef\commenthandler{\catcode`\%=13\def%{\@gobble@till@return}}
\gdef\@gobble@till@return#1^^M{}
\gdef\@gobble@till@return@ignore#1^^M{\ignorespaces}
\gdef\typesetcomment{\catcode`\%=13\def%{\@typeset@till@return}}
\gdef\@typeset@till@return#1^^M{{\def%{\char`\%}\textsl{\char`\%#1}}\par}
\endgroup
{
\catcode`\^^I=13
\gdef\codeexample@tabinit@replacementchars@{%
\begingroup
\count0=\pgfkeysvalueof{/codeexample/tabsize}\relax
\toks0={}%
\loop
\ifnum\count0>0
\advance\count0 by-1
\toks0=\expandafter{\the\toks0\ }%
\repeat
\xdef\codeexample@tabinit@replacementchars@@{\the\toks0}%
\endgroup
\let^^I=\codeexample@tabinit@replacementchars@@
}%
\gdef\codeexample@tabinit@catcode@{\catcode`\^^I=13}%
}%
\def\codeexample@tabinit{%
\ifnum\pgfkeysvalueof{/codeexample/tabsize}=0\relax
\let\codeexample@tabinit@replacementchars=\relax
\let\codeexample@tabinit@catcode=\relax
\else
\let\codeexample@tabinit@catcode=\codeexample@tabinit@catcode@
\let\codeexample@tabinit@replacementchars=\codeexample@tabinit@replacementchars@
\fi
}
\newif\ifpgfmanualtikzsyntaxhilighting
\pgfqkeys{/codeexample}{%
width/.code= {\setlength\codeexamplewidth{#1}},
graphic/.code= {\colorlet{graphicbackground}{#1}},
code/.code= {\colorlet{codebackground}{#1}},
execute code/.is if=code@execute,
hidden/.is if=code@hidden,
code only/.code= {\code@executefalse},
setup code/.code= {\pgfmanual@setup@codetrue\code@executefalse},
multipage/.code= {\code@executefalse\pgfmanual@multipage@codetrue},
pre/.store in=\code@pre,
post/.store in=\code@post,
typeset listing/.code= {#1},
render instead/.store in=\code@render,
vbox/.code= {\def\code@pre{\vbox\bgroup\setlength{\hsize}{\linewidth-6pt}}\def\code@post{\egroup}},
ignorespaces/.code= {\let\@gobble@till@return=\@gobble@till@return@ignore},
leave comments/.code= {\def\code@catcode@hook{\catcode`\%=12}\let\commenthandler=\relax\let\typesetcomment=\relax},
tabsize/.initial=0,%
every codeexample/.style={width=4cm+7pt, tikz syntax=true},
from file/.code={\codeexamplefromfiletrue\def\codeexamplesource{#1}},
tikz syntax/.is if=pgfmanualtikzsyntaxhilighting,
animation list/.store in=\code@animation@list,
animation pre/.store in=\code@animation@pre,
animation post/.store in=\code@animation@post,
animation scale/.store in=\pgfmanualanimscale,
animation bb/.style={
animation pre={
\tikzset{
every picture/.style={
execute at begin picture={
\useasboundingbox[clip] #1;}
}
}
}
},
preamble/.store in=\code@preamble,
}
\def\pgfmanualanimscale{.5}
\newread\examplesource
\def\opensource#1{
\immediate\openin\examplesource=#1
}
\def\do@codeexamplefromfile{%
\immediate\openin\examplesource\expandafter{\codeexamplesource}%
\def\examplelines{}%
\readexamplelines
\closein\examplesource
\expandafter\endofcodeexample\expandafter{\examplelines}%
}
\def\readexamplelines{
\ifeof\examplesource%
\else
\immediate\read\examplesource to \exampleline
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\examplelines\expandafter\expandafter\expandafter{\expandafter\examplelines\exampleline}
\expandafter\readexamplelines%
\fi
}
\let\code@animation@pre\pgfutil@empty
\let\code@animation@post\pgfutil@empty
\let\code@animation@list\pgfutil@empty
\let\code@pre\pgfutil@empty
\let\code@post\pgfutil@empty
\let\code@render\pgfutil@empty
\let\code@preamble\pgfutil@empty
\def\code@catcode@hook{}
\newif\ifpgfmanual@multipage@code
\newif\ifpgfmanual@setup@code
\newif\ifcodeexamplefromfile
\newdimen\codeexamplewidth
\newif\ifcode@execute
\newif\ifcode@hidden
\newbox\codeexamplebox
\def\codeexample[#1]{%
\global\let\pgfmanual@do@this\relax%
\aftergroup\pgfmanual@do@this%
\begingroup%
\code@executetrue
\pgfqkeys{/codeexample}{every codeexample,#1}%
\pgfmanualswitchoncolors%
\ifcodeexamplefromfile\begingroup\fi
\codeexample@tabinit%
\parindent0pt
\begingroup%
\par%
\ifcode@hidden\else
\medskip%
\fi
\let\do\@makeother%
\dospecials%
\obeylines%
\@vobeyspaces%
\catcode`\%=13%
\catcode`\^^M=13%
\code@catcode@hook%
\codeexample@tabinit@catcode
\relax%
\ifcodeexamplefromfile%
\expandafter\do@codeexamplefromfile%
\else%
\expandafter\find@example%
\fi}
\def\endofcodeexample#1{%
\endgroup%
\ifpgfmanual@setup@code%
\gdef\pgfmanual@do@this{%
{%
\returntospace%
\commenthandler%
\obeylines%
\xdef\code@temp{#1}%
}%
\edef\pgfmanualmcatcode{\the\catcode`\^^M}%
\catcode`\^^M=9\relax%
\expandafter\scantokens\expandafter{\code@temp}%
\catcode`\^^M=\pgfmanualmcatcode%
}%
\fi%
\ifcode@hidden\else
\ifcode@execute%
\setbox\codeexamplebox=\hbox{%
\ifx\code@render\pgfutil@empty%
{%
{%
\returntospace%
\commenthandler%
\obeylines%
\xdef\code@temp{#1}%
}%
\catcode`\^^M=9%
\colorbox{graphicbackground}{\color{black}\ignorespaces%
\code@pre\expandafter\scantokens\expandafter{\code@temp\ignorespaces}\code@post\ignorespaces}%
}%
\else%
\global\let\code@temp\code@render%
\colorbox{graphicbackground}{\color{black}\ignorespaces%
\code@render}%
\fi%
}%
\ifx\code@animation@list\pgfutil@empty%
\else%
\setbox\codeexampleboxanim=\vbox{%
\rightskip0pt\leftskip0pt plus1filll%
\ifdim\wd\codeexamplebox>\codeexamplewidth%
\else%
\hsize\codeexamplewidth%
\advance\hsize by2cm%
\fi%
\leavevmode\catcode`\^^M=9%
\foreach \pgfmanualtime/\pgfmanualtimehow in\code@animation@list{%
\setbox\codeexampleboxanim=\hbox{\colorbox{animationgraphicbackground}{%
\tikzset{make snapshot of=\pgfmanualtime}%
\scalebox{\pgfmanualanimscale}{\color{black}\ignorespaces%
\code@animation@pre\expandafter\scantokens\expandafter{\code@temp\ignorespaces}\code@animation@post\ignorespaces}%
}}%
\space\raise4pt\hbox to0pt{\vrule width0pt height1em\hbox
to\wd\codeexampleboxanim{\hfil\scriptsize$t{=}\pgfmanualtimehow \mathrm s$\hfil}\hss}%
\lower\ht\codeexampleboxanim\box\codeexampleboxanim\hfil\penalty0\hskip0ptplus-1fil%
}%
}%
\setbox\codeexampleboxanim=\hbox{\hbox{}\hskip-2cm\box\codeexampleboxanim}%
\fi%
\ifdim\wd\codeexamplebox>\codeexamplewidth%
\def\code@start{\par}%
\def\code@flushstart{}\def\code@flushend{}%
\def\code@mid{\parskip2pt\par\noindent}%
\def\code@width{\linewidth-6pt}%
\def\code@end{}%
\else%
\def\code@start{%
\linewidth=\textwidth%
\parshape \@ne 0pt \linewidth
\leavevmode%
\hbox\bgroup}%
\def\code@flushstart{\hfill}%
\def\code@flushend{\hbox{}}%
\def\code@mid{\hskip6pt}%
\def\code@width{\linewidth-12pt-\codeexamplewidth}%
\def\code@end{\egroup}%
\fi%
\code@start%
\noindent%
\begin{minipage}[t]{\codeexamplewidth}\raggedright
\hrule width0pt%
\footnotesize\vskip-1em%
\code@flushstart\box\codeexamplebox\code@flushend%
\vskip0pt%
\leavevmode%
\box\codeexampleboxanim%
\vskip-1ex
\leavevmode%
\end{minipage}%
\else%
\def\code@mid{\par}
\def\code@width{\linewidth-6pt}
\def\code@end{}
\fi%
\code@mid%
\ifpgfmanual@multipage@code%
{%
\pgfkeysvalueof{/codeexample/prettyprint/base color}%
\pgfmanualdolisting{#1}%
}%
\else%
\colorbox{codebackground}{%
\pgfkeysvalueof{/codeexample/prettyprint/base color}%
\begin{minipage}[t]{\code@width}%
\pgfmanualdolisting{#1}%
\end{minipage}}%
\fi%
\code@end%
\par%
\medskip
\fi
\endcodeexample\endgroup%
}
\def\endcodeexample{\endgroup}
\newbox\codeexampleboxanim
\def\pgfmanualdolisting#1{%
{%
\let\do\@makeother
\dospecials
\frenchspacing\@vobeyspaces
\normalfont\ttfamily\footnotesize
\typesetcomment%
\codeexample@tabinit@replacementchars
\@tempswafalse
\def\par{%
\if@tempswa
\leavevmode \null \@@par\penalty\interlinepenalty
\else
\@tempswatrue
\ifhmode\@@par\penalty\interlinepenalty\fi
\fi}%
\obeylines
\everypar \expandafter{\the\everypar \unpenalty}%
\ifx\code@preamble\pgfutil@empty\else
\pgfutil@tempdima=\hsize
\vbox{\hsize=\pgfutil@tempdima
\raggedright\scriptsize\detokenize\expandafter{\code@preamble}}%
\fi
\pgfkeysvalueof{/codeexample/typeset listing/.@cmd}{#1}\pgfeov
}%
}
\makeatother
\usepackage{pgfmanual}
\newdimen\pgfmanualcslinkpreskip
\pgfkeys{
/codeexample/syntax hilighting/.style={
/codeexample/prettyprint/key name/.code={\textcolor{keycolor}{\pgfmanualpdfref{##1}{\noligs{##1}}}},
/codeexample/prettyprint/key name with handler/.code 2 args={\textcolor{keycolor}{\pgfmanualpdfref{##1}{\noligs{##1}}}/\textcolor{blue!70!black}{\pgfmanualpdfref{/handlers/##2}{\noligs{##2}}}},
/codeexample/prettyprint/key value display only/.code={\textcolor{keycolor}{{\itshape{\let\pgfmanualwordstartup\relax\pgfmanualprettyprintcode{##1}}}}},
/codeexample/prettyprint/cs/.code={\textcolor{cscolor}{\pgfmanualcslinkpreskip4.25pt\pgfmanualpdfref{##1}{\noligs{##1}}}},
/codeexample/prettyprint/cs with args/.code 2 args={\textcolor{black}{\pgfmanualcslinkpreskip4.25pt\pgfmanualpdfref{##1}{\noligs{##1}}}\{\textcolor{black}{\pgfmanualprettyprintcode{##2}}\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/pgfkeys/.initial=1,
/codeexample/prettyprint/cs/pgfkeys/.code 2 args={\textcolor{black}{\pgfmanualcslinkpreskip4.25pt\pgfmanualpdfref{##1}{\noligs{##1}}}\{\textcolor{black}{\pgfmanualprettyprintpgfkeys{##2}}\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/begin/.initial=1,
/codeexample/prettyprint/cs/begin/.code 2 args={\textcolor{black}{##1}\{\textcolor{cscolor}{\pgfmanualpdfref{##2}{\noligs{##2}}}\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/end/.initial=1,
/codeexample/prettyprint/cs/end/.code 2 args={\textcolor{black}{##1}\{\textcolor{cscolor}{\pgfmanualpdfref{##2}{\noligs{##2}}}\pgfmanualclosebrace},
/codeexample/prettyprint/word/.code={\pgfmanualwordstartup{\begingroup\pgfkeyssetvalue{/pdflinks/search key prefixes in}{}\pgfmanualpdfref{##1}{\noligs{##1}}\endgroup}},
/codeexample/prettyprint/point/.code={\textcolor{pointcolor}{\noligs{##1}}},%
/codeexample/prettyprint/point with cs/.code 2 args={\textcolor{pointcolor}{(\pgfmanualpdfref{##1}{\noligs{##1}}:\noligs{##2}}},%
/codeexample/prettyprint/comment font=\itshape,
/codeexample/prettyprint/base color/.initial=\color{basecolor},
/pdflinks/render hyperlink/.code={%
{\setbox0=\hbox{##1}%
\rlap{{\color{linkcolor}\dimen0\wd0\advance\dimen0by-\pgfmanualcslinkpreskip\hskip\pgfmanualcslinkpreskip\vrule width\dimen0 height-1pt depth1.6pt}}%
\box0%
}%
}
},/codeexample/syntax hilighting
}
\colorlet{keycolor}{black}
\colorlet{cscolor}{black}
\colorlet{pointcolor}{black}
\colorlet{basecolor}{black}
\colorlet{linkcolor}{black!8}
\def\pgfmanualswitchoncolors{%
\colorlet{keycolor}{green!50!black}%
\colorlet{cscolor}{blue!70!black}
\colorlet{pointcolor}{violet}
\colorlet{basecolor}{black!55}
\colorlet{linkcolor}{white}
}
\makeatletter
\def\pgfmanualwordstartup{\textcolor{black}}
\def\noligs#1{\pgfmanualnoligs#1\kern0pt--\pgf@stop}%
\def\pgfmanualnoligs#1--{%
\pgfutil@ifnextchar\pgf@stop{#1\pgfutil@gobble}{#1-\kern0pt-\kern0pt\pgfmanualnoligs}%
}
\makeatother
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/doc/pgfmanual-en-macros.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/doc/pgfmanual.code.tex ====
\input pgfmanual.prettyprinter.code.tex
\input pgfmanual.pdflinks.code.tex
\def\pgfmanual@warning#1{\pgf@typeout{! Package pgfmanual Warning: #1}}%
\pgfkeys{
/pdflinks/codeexample links=true,
/codeexample/prettyprint/cs arguments/tikzset/.initial=1,
/codeexample/prettyprint/cs/tikzset/.code 2 args={\pgfmanualpdfref{#1}{#1}\{\pgfmanualprettyprintpgfkeys{#2}\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/usetikzlibrary/.initial=1,
/codeexample/prettyprint/cs/usetikzlibrary/.code 2 args={\pgfmanualpdfref{#1}{#1}\{\pgfmanualpdfref{#2}{#2}\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/usepgflibrary/.initial=1,
/codeexample/prettyprint/cs/usepgflibrary/.code 2 args={\pgfmanualpdfref{#1}{#1}\{\pgfmanualpdfref{#2}{#2}\pgfmanualclosebrace},
/pdflinks/search key prefixes in={/tikz/,/pgf/},
/pdflinks/internal link prefix=pgf,
/pdflinks/warnings=false,
/pdflinks/show labels=false,
}%
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/doc/pgfmanual.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/doc/pgfmanual.pdflinks.code.tex ====
\newif\ifpgfmanualpdfwarnings
\pgfmanualpdfwarningstrue
\newif\ifpgfmanualshowlabels
\pgfkeys{%
/codeexample/prettyprint/cs arguments/pgfkeys/.initial=1,
/codeexample/prettyprint/cs/pgfkeys/.code 2 args={\pgfmanualpdfref{#1}{#1}\{\pgfmanualprettyprintpgfkeys{#2}\pgfmanualclosebrace},
/codeexample/prettyprint/autolinks/.style={%
/codeexample/prettyprint/key name/.code={\pgfmanualpdfref{##1}{##1}},
/codeexample/prettyprint/key name with handler/.code 2 args={\pgfmanualpdfref{##1}{##1}/\pgfmanualpdfref{/handlers/##2}{##2}},
/codeexample/prettyprint/key value display only/.code={\pgfmanualprettyprintcode{##1}},
/codeexample/prettyprint/cs/.code={\pgfmanualpdfref{##1}{##1}},
/codeexample/prettyprint/cs with args/.code 2 args={\pgfmanualpdfref{##1}{##1}\{\pgfmanualprettyprintcode{##2}\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/pgfkeys/.initial=1,
/codeexample/prettyprint/cs/pgfkeys/.code 2 args={\pgfmanualpdfref{##1}{##1}\{\pgfmanualprettyprintpgfkeys{##2}\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/begin/.initial=1,
/codeexample/prettyprint/cs/begin/.code 2 args={##1\{\pgfmanualpdfref{##2}{##2}\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/end/.initial=1,
/codeexample/prettyprint/cs/end/.code 2 args={##1\{\pgfmanualpdfref{##2}{##2}\pgfmanualclosebrace},
/codeexample/prettyprint/word/.code={\begingroup\pgfkeyssetvalue{/pdflinks/search key prefixes in}{}\pgfmanualpdfref{##1}{##1}\endgroup},
/codeexample/prettyprint/point/.code={##1},%
/codeexample/prettyprint/point with cs/.code 2 args={(\pgfmanualpdfref{##1}{##1}:##2},%
},%
/codeexample/prettyprint/autolinks,
}%
\pgfkeys{
/pdflinks/codeexample links/.is if=pgfmanualprettyenabled,
/pdflinks/codeexample links/.default=true,
/pdflinks/render hyperlink/.code={#1},
/pdflinks/search key prefixes in/.initial={/tikz/,/pgf/},
/pdflinks/warnings/.is if=pgfmanualpdfwarnings,
/pdflinks/warnings/.default=true,
/pdflinks/show labels/.is if=pgfmanualshowlabels,
/pdflinks/show labels/.default=true,
/pdflinks/show labels=false,
/pdflinks/show labels code/.code={
\hbox to 0pt{%
\vbox to 0pt{\hsize=0pt
\vskip-\baselineskip
\hbox to \hsize{%
\hss
{\footnotesize\ttfamily\textcolor{red}{#1}}%
\hss
}%
\vss
}%
\vbox to 0pt{\hsize=0pt
\vss
\hbox to \hsize{%
\hss
{\footnotesize\ttfamily\textcolor{red}{$\vert$}}%
\hss
}%
}%
\vsize=0pt
}%
},
/pdflinks/internal link prefix/.initial=pgf,
}
\begingroup
\catcode`\_=12
\gdef\pgfmanualpdf@underscore{_}%
\catcode`\ =13\relax\gdef\pgfmanualpdf@install@active@space{\def {\space}}%
\endgroup
\gdef\pgfmanualpdf@installreplacements{%
\def\marg##1{{##1}}%
\def\oarg##1{[##1]}%
\def\meta##1{meta(##1)}%
\def\x{x}%
\def\textbackslash{back/}%
\def\\{\textbackslash}%
\def\space{:}%
\edef\ {\space}%
\edef\SPACE{\` \relax}%
\ifnum\the\catcode`\ =13 %
\pgfmanualpdf@install@active@space
\fi
\edef\#{}%
\def\printanat{@}%
\def\protect{}%
\def\textasciicircum{o}%
\def\_{\pgfmanualpdf@underscore}%
\expandafter\edef\pgfmanual@verb@activebar{\pgfmanual@verb@bar}%
}%
\def\pgfmanualpdflabel{\pgfutil@ifnextchar[{\pgfmanualpdflabel@opt}{\pgfmanualpdflabel@opt[]}}%
\def\pgfmanualpdflabel@opt[#1]#2#3{%
\begingroup
\def\pgfmanualpdf@catcode{#1}%
\pgfmanualpdf@catcode
\pgfmanualpdflabel@generate{#2}{#3}%
\pgfutil@in@\x{#2}%
\ifpgfutil@in@
\def\x{y}%
\pgfmanualpdflabel@generate{#2}{#3}%
\def\x{z}%
\pgfmanualpdflabel@generate{#2}{#3}%
\fi
\endgroup
}%
\def\pgfmanualpdflabel@generate#1#2{%
\pgfmanual@handlespeciallabeltokens@in{#1}%
\def\pgfmanualpdflabel@generateone{0}%
\pgfutil@ifundefined{pgfd@lbl@\pgfmanualpdflabel@@}{%
\def\pgfmanualpdflabel@generateone{1}%
}{%
\if\csname pgfd@lbl@\pgfmanualpdflabel@@\endcsname a%
\def\pgfmanualpdflabel@generateone{1}%
\else
\fi
}%
\if\pgfmanualpdflabel@generateone1%
\ifpgfmanualshowlabels
\pgfkeysvalueof{/pdflinks/show labels code/.@cmd}{\pgfmanualpdflabel@@}\pgfeov
\fi
\if@filesw
\ifx\pgfmanualpdf@catcode\pgfutil@empty
\else
\toks0=\expandafter{\pgfmanualpdf@catcode}%
\immediate\write\@auxout{%
\noexpand\begingroup
\the\toks0
}%
\fi
\immediate\write\@auxout{%
\noexpand\expandafter\noexpand\gdef
\noexpand\csname pgfd@lbl@\pgfmanualpdflabel@@\noexpand\endcsname{a}%
}%
\ifx\pgfmanualpdf@catcode\pgfutil@empty
\else
\immediate\write\@auxout{\noexpand\endgroup}%
\fi
\fi
\expandafter\gdef\csname pgfd@lbl@\pgfmanualpdflabel@@\endcsname{w}%
\edef\pgfmanualpdflabel@@{\pgfkeysvalueof{/pdflinks/internal link prefix}.\pgfmanualpdflabel@@}%
\ifvmode%
\expandafter\hypertarget\expandafter{\pgfmanualpdflabel@@}{#2}%
\else%
{\setbox0=\hbox{\raise1em\hbox{\expandafter\hypertarget\expandafter{\pgfmanualpdflabel@@}{}}}\ht0=0pt\box0}#2%
\fi%
\else
#2%
\fi
}%
\def\pgfmanualpdfref#1#2{%
\begingroup
\pgfmanual@handlespeciallabeltokens@in{#1}%
\ifcsname pgfd@lbl@\pgfmanualpdflabel@@\endcsname
\else
\global\let\pgfmanual@glob=\pgfmanualpdflabel@@
\def\pgfmanual@tempa{\foreach \prefix in }%
\pgfkeysgetvalue{/pdflinks/search key prefixes in}\pgfmanual@tempb
\expandafter\pgfmanual@tempa\expandafter{\pgfmanual@tempb}{%
\edef\pgfmanualpdflabel@@{\prefix\pgfmanualpdflabel@@}%
\expandafter\pgfmanual@handlespeciallabeltokens@in\expandafter{\pgfmanualpdflabel@@}%
\ifcsname pgfd@lbl@\pgfmanualpdflabel@@\endcsname
\xdef\pgfmanual@glob{\pgfmanualpdflabel@@}%
\breakforeach
\fi
}%
\let\pgfmanualpdflabel@@=\pgfmanual@glob
\ifcsname pgfd@lbl@\pgfmanualpdflabel@@\endcsname
\else
\ifpgfmanualpdfwarnings
\begingroup
\toks0={#1}%
\pgfmanual@warning{pgfmanualpdfref{\the\toks0 }: target label does not exist.}%
\endgroup
\fi
#2%
\let\pgfmanualpdflabel@@=\pgfutil@empty
\fi
\fi
\ifx\pgfmanualpdflabel@@\pgfutil@empty
\else
\expandafter\pgfmanualpdfref@\expandafter{\pgfmanualpdflabel@@}{#2}%
\fi
\endgroup
}%
\def\pgfmanualpdfref@#1#2{%
\pgfkeysgetvalue{/pdflinks/internal link prefix}\pgfmanual@temp
\expandafter\hyperlink\expandafter{\pgfmanual@temp.#1}{\pgfkeysvalueof{/pdflinks/render hyperlink/.@cmd}{#2}\pgfeov}%
\ifpgfmanualshowlabels
\pgfkeysvalueof{/pdflinks/show labels code/.@cmd}{#1}\pgfeov
\fi
}%
\def\pgfmanual@handlespeciallabeltokens@in#1{%
\begingroup
\pgfmanualpdf@installreplacements
\expandafter\pgfutil@in@\pgfmanual@pretty@backslash{#1}%
\ifpgfutil@in@
\pgfmanualpdfref@substitute@backslash#1\relax
\else
\edef\pgfmanualpdflabel@@{#1}%
\fi
\def\pgfmanual@tmp{\pgfutilstrreplace{ }{\space}}%
\expandafter\pgfmanual@tmp\expandafter{\pgfmanualpdflabel@@}%
\edef\pgfmanualpdflabel@@{\pgfretval}%
\pgfmath@smuggleone\pgfmanualpdflabel@@
\endgroup
}%
\expandafter\def\expandafter\pgfmanualpdfref@substitute@backslash\expandafter#\expandafter1\pgfmanual@pretty@backslash#2\relax{%
\edef\pgfmanualpdflabel@@{#1\textbackslash #2}%
}%
\def\declareandlabel{%
\begingroup
\pgfmanual@verb@preparecatcodes@
\def\pgfmanualprettyprinterhandlecollectedargs##1{%
\pgfmanualpdflabel##1{\texttt{\declare##1}}%
\endgroup
}%
\pgfmanualprettyprintercollectargcount1{\relax}%
}
\def\verbpdfref{%
\begingroup
\pgfmanual@verb@preparecatcodes@
\def\pgfmanualprettyprinterhandlecollectedargs##1{%
\pgfmanualpdfref##1{\texttt{##1}}%
\endgroup
}%
\pgfmanualprettyprintercollectargcount1{\relax}%
}
{
\catcode`\|=12
\gdef\pgfmanual@verb@bar{|}%
\catcode`\|=13
\gdef\pgfmanual@verb@activebar{|}%
}
\def\pgfmanual@verb{%
\begingroup
\pgfmanual@verb@preparecatcodes@
\toksdef\t@pgfmanual@verb=0
\t@pgfmanual@verb={}%
\pgfmanual@verb@collect
}
\def\pgfmanual@verb@collect#1{%
\def\pgfmanual@temp{#1}%
\ifx\pgfmanual@temp\pgfmanual@verb@bar
\edef\pgfmanual@verb@collect@next{%
\noexpand\endgroup
\noexpand\texttt{\noexpand\pgfmanualprettyprintpgfkeys{\the\t@pgfmanual@verb}}%
}%
\else
\ifx\pgfmanual@temp\pgfmanual@verb@activebar
\edef\pgfmanual@verb@collect@next{%
\noexpand\endgroup
\noexpand\texttt{\the\t@pgfmanual@verb}%
}%
\else
\t@pgfmanual@verb=\expandafter{\the\t@pgfmanual@verb #1}%
\let\pgfmanual@verb@collect@next=\pgfmanual@verb@collect
\fi
\fi
\pgfmanual@verb@collect@next
}%
\AtBeginDocument{%
\ifpgfmanualprettyenabled
\catcode`\|=13
\expandafter\let\pgfmanual@verb@activebar=\pgfmanual@verb
\fi
}%
\def\pgfmanual@verb@preparecatcodes@{%
\let\do\@makeother%
\dospecials%
\catcode`\%=12 %
\catcode`\ =13
\catcode`\^^I=13
\expandafter\def\pgfmanual@pretty@activespace{\space}%
\expandafter\def\pgfmanual@pretty@activetab{\space\space\space\space}%
}%
\endinput
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/doc/pgfmanual.pdflinks.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/doc/pgfmanual.prettyprinter.code.tex ====
\pgfkeys{%
/codeexample/typeset listing/.code= {\pgfmanualprettyprintcode{#1}},
/codeexample/prettyprint/key name/.code={#1},
/codeexample/prettyprint/key name with handler/.code 2 args={#1/#2},
/codeexample/prettyprint/key value/.code 2 args={%
\pgfkeysifdefined{/codeexample/prettyprint/key value/#1}{%
\pgfkeysalso{/codeexample/prettyprint/key value/#1={#1}{#2}}%
}{%
\pgfkeysalso{/codeexample/prettyprint/key value with style detection={#1}{#2}}%
}%
},
/codeexample/prettyprint/key value with style detection/.code 2 args={%
\pgfutil@in@{style}{#1}%
\ifpgfutil@in@
\pgfmanualprettyprintpgfkeys{#2}%
\else
\pgfkeysalso{/codeexample/prettyprint/key value display only={#2}}%
\fi
},%
/codeexample/prettyprint/key value display only/.code={#1},
/codeexample/prettyprint/word/.code={#1},
/codeexample/prettyprint/if space is word delim/.code 2 args={%
#1%
},%
/codeexample/prettyprint/if is word delim/.code args={#1#2#3}{%
\edef\pgfmanual@check{,;().;\pgfmanual@pretty@lbrace\pgfmanual@pretty@rbrace}%
\def\pgfmanual@check@{\pgfutil@in@{#1}}%
\expandafter\pgfmanual@check@\expandafter{\pgfmanual@check}%
\ifpgfutil@in@ #2\else #3\fi
},%
/codeexample/prettyprint/cs/.code={#1},
/codeexample/prettyprint/cs with args/.code 2 args={#1\{#2\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/pgfkeys/.initial=1,
/codeexample/prettyprint/cs/pgfkeys/.code 2 args={#1\{\pgfmanualprettyprintpgfkeys{#2}\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/begin/.initial=1,
/codeexample/prettyprint/cs/begin/.code 2 args={#1\{#2\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/end/.initial=1,
/codeexample/prettyprint/cs/end/.code 2 args={#1\{#2\pgfmanualclosebrace},
/codeexample/prettyprint/point/.code={#1},%
/codeexample/prettyprint/point with cs/.code 2 args={(#1:#2},%
/codeexample/prettyprint/comment font/.initial=,%
/codeexample/prettyprint/colored/.style={%
/codeexample/prettyprint/key name/.code={\textcolor{red!75!black}{##1}},
/codeexample/prettyprint/key name with handler/.code 2 args={\textcolor{red!75!black}{##1}/\textcolor{red!90!black}{##2}},
/codeexample/prettyprint/key value display only/.code={\textcolor{yellow}{##1}},
/codeexample/prettyprint/cs/.code={\textcolor{green}{##1}},
/codeexample/prettyprint/cs with args/.code 2 args={\textcolor{green}{##1}\{\textcolor{orange}{##2}\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/pgfkeys/.initial=1,
/codeexample/prettyprint/cs/pgfkeys/.code 2 args={\textcolor{green}{##1}\{\pgfmanualprettyprintpgfkeys{##2}\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/begin/.initial=1,
/codeexample/prettyprint/cs/begin/.code 2 args={\textcolor{green}{##1}\{\textcolor{orange}{##2}\pgfmanualclosebrace},
/codeexample/prettyprint/cs arguments/end/.initial=1,
/codeexample/prettyprint/cs/end/.code 2 args={\textcolor{green}{##1}\{\textcolor{orange}{##2}\pgfmanualclosebrace},
/codeexample/prettyprint/word/.code={\textcolor{brown}{##1}},
/codeexample/prettyprint/point/.code={\textcolor{red}{##1}},%
/codeexample/prettyprint/point with cs/.code 2 args={(\textcolor{green}{##1}:\textcolor{red}{##2}},%
},%
/codeexample/prettyprint/colored and verbose/.style={%
/codeexample/prettyprint/colored,
/codeexample/prettyprint/key name/.code={\message{[key name=##1]}\textcolor{red!75!black}{##1}},
/codeexample/prettyprint/key name with handler/.code 2 args={\message{[key name with handler=##1/##2]}\textcolor{red!75!black}{##1}/\textcolor{red!90!black}{##2}},
/codeexample/prettyprint/key value display only/.code={\def\temp{##1}\message{[key value=\meaning\temp]}\textcolor{yellow}{##1}},
/codeexample/prettyprint/cs/.code={\message{[cs=##1]}\textcolor{green}{##1}},
/codeexample/prettyprint/cs with args/.code 2 args={\def\temp{##2}\message{[cs with args={##1}{\meaning\temp}]}\textcolor{green}{##1}\{\textcolor{orange}{##2}\pgfmanualclosebrace},
/codeexample/prettyprint/word/.code={\message{[word=##1]}\textcolor{brown}{##1}},
/codeexample/prettyprint/point/.code={\message{[point=##1]}\textcolor{red}{##1}},%
/codeexample/prettyprint/point with cs/.code 2 args={\message{[point with cs={##1}{##2}]}(\textcolor{green}{##1}:\textcolor{red}{##2}},%
},%
}%
\newif\ifpgfmanualprettyenabled
\pgfmanualprettyenabledtrue
\def\pgfmanualclosebrace{%
\ifpgfmanualprettyprinterarghasunmatchedbraces
\else
\}%
\fi
}%
\long\def\pgfmanualprettyprintcode#1{%
\ifpgfmanualprettyenabled
\begingroup
\pgfmanualprettyprintstyles
\pgfmanual@pretty@mainloop#1\pgfmanual@EOI
\endgroup
\else
#1%
\fi
}%
\def\pgfmanualprettyprintstyles{%
\def\{{\pgfmanual@pretty@lbrace}%
\def\}{\pgfmanual@pretty@rbrace}%
\pgfmanual@pretty@installcommenthandler
\let\pgfmanualprettyprintstyles=\relax
}%
\newif\ifpgfmanualprettycommentactive
\def\pgfmanual@pretty@installcommenthandler{%
\expandafter\def\pgfmanual@pretty@activepercent{%
\begingroup%
\pgfmanualprettycommentactivetrue
\expandafter\let\pgfmanual@pretty@activenl=\pgfmanual@pretty@recoveraftercomment
\expandafter\def\pgfmanual@pretty@activepercent{\%}%
\pgfkeysvalueof{/codeexample/prettyprint/comment font}%
\%%
}%
}%
\def\pgfmanual@pretty@recoveraftercomment{%
\endgroup
\pgfmanual@pretty@activenl
}%
\def\pgfmanual@EOI{\pgfmanual@EOI}%
{
\catcode`\[=0
\catcode`\\=12
[gdef[pgfmanual@pretty@backslash{\}%
}
\begingroup
\catcode`\:=12
\catcode`\(=12
\catcode`\)=12
\gdef\pgfmanual@pretty@colon{:}%
\gdef\pgfmanual@pretty@lroundbrace{(}%
\gdef\pgfmanual@pretty@rroundbrace{)}%
\catcode`\[=1
\catcode`\]=2
\catcode`\{=12
\catcode`\}=12
\gdef\pgfmanual@pretty@lbrace[{]%
\gdef\pgfmanual@pretty@rbrace[}]%
\catcode`\{=1
\catcode`\}=2
\catcode`\[=12
\catcode`\]=12
\catcode`\,=12
\catcode`\ =10\relax\gdef\pgfmanual@pretty@space{ }%
\gdef\pgfmanual@pretty@lbracket{[}%
\gdef\pgfmanual@pretty@rbracket{]}%
\gdef\pgfmanual@pretty@comma{,}%
\catcode`\==12
\gdef\pgfmanual@pretty@eq{=}%
\endgroup
\begingroup
\catcode`\%=12
\gdef\pgfmanual@pretty@percent{%}
\catcode`\%=13
\gdef\pgfmanual@pretty@activepercent{%}
\catcode`\^^M=13
\gdef\pgfmanual@pretty@activenl{^^M}\endgroup
\begingroup
\catcode`\^^I=13\relax\gdef\pgfmanual@pretty@activetab{^^I}%
\catcode`\ =13\relax\gdef\pgfmanual@pretty@activespace{ }\endgroup
\def\pgfmanual@pretty@mainloop{%
\def\pgfmanual@pretty@mainloop@currentword{}%
\pgfmanual@pretty@mainloop@
}%
\long\def\pgfmanual@pretty@mainloop@#1{%
\def\pgfmanual@loc@TMPa{#1}%
\let\pgfmanual@pretty@mainloop@NEXT=\pgfmanual@pretty@mainloop@
\ifx\pgfmanual@loc@TMPa\pgfmanual@EOI
\pgfmanual@pretty@mainloop@finishword
\let\pgfmanual@pretty@mainloop@NEXT=\relax
\else
\ifpgfmanualprettycommentactive
#1\kern0pt%
\else
\ifx\pgfmanual@loc@TMPa\pgfmanual@pretty@lbracket%
\pgfmanual@pretty@mainloop@finishword
\let\pgfmanual@pretty@mainloop@NEXT=\pgfmanual@pretty@pgfkeys
\else
\ifx\pgfmanual@loc@TMPa\pgfmanual@pretty@backslash
\pgfmanual@pretty@mainloop@finishword
\let\pgfmanual@loc@TMPa=\pgfutil@empty
\let\pgfmanual@pretty@mainloop@NEXT=\pgfmanual@pretty@collectcs@loop
\else
\ifx\pgfmanual@loc@TMPa\pgfmanual@pretty@lroundbrace%
\pgfmanual@pretty@mainloop@finishword
\let\pgfmanual@pretty@mainloop@NEXT=\pgfmanual@pretty@collectpoint
\else
\def\pgfmanual@isspace{0}%
\ifnum13=\catcode`#1
\def\pgfmanual@isspace{1}%
\else
\ifnum10=\catcode`#1
\def\pgfmanual@isspace{1}%
\fi
\fi
\if\pgfmanual@isspace1%
\pgfkeysvalueof{/codeexample/prettyprint/if space is word delim/.@cmd}{%
\pgfmanual@pretty@mainloop@finishword
#1%
}{%
\expandafter\def\expandafter\pgfmanual@pretty@mainloop@currentword\expandafter{\pgfmanual@pretty@mainloop@currentword #1}%
}%
\else
\pgfkeysvalueof{/codeexample/prettyprint/if is word delim/.@cmd}{#1}{%
\pgfmanual@pretty@mainloop@finishword
#1%
}{%
\expandafter\def\expandafter\pgfmanual@pretty@mainloop@currentword\expandafter{\pgfmanual@pretty@mainloop@currentword #1}%
}\pgfeov%
\fi
\fi
\fi
\fi
\fi
\fi
\pgfmanual@pretty@mainloop@NEXT
}%
\def\pgfmanual@pretty@mainloop@finishword{%
\ifx\pgfmanual@pretty@mainloop@currentword\pgfutil@empty
\else
\def\pgfmanual@loc@TMPa{\pgfkeysvalueof{/codeexample/prettyprint/word/.@cmd}}%
\expandafter\pgfmanual@loc@TMPa\pgfmanual@pretty@mainloop@currentword\pgfeov
\let\pgfmanual@pretty@mainloop@currentword=\pgfutil@empty
\fi
}%
\def\pgfmanual@pretty@collectpoint{%
\let\pgfmanualprettyprinterhandlecollectedargsVtwo=\pgfmanual@pretty@collectargs@finish@collectpoint
\expandafter\pgfmanualprettyprintercollectupto\pgfmanual@pretty@rroundbrace
{\afterpgfmanual@pretty@collectpoint}%
}
{
\catcode`\:=12
\gdef\pgfmanual@pretty@collectargs@finish@collectpoint#1#2{%
\expandafter\pgfutil@in@\pgfmanual@pretty@colon{#1}%
\ifpgfutil@in@
\def\pgfmanual@pretty@collectpoint@getcoordsystem##1:##2\relax{%
\begingroup
\pgfmanual@pretty@restorespaces
\xdef\pgfmanual@pretty@glob@TMPa{##1}%
\endgroup
\pgfkeysifdefined{/codeexample/prettyprint/point with cs/\pgfmanual@pretty@glob@TMPa/.@cmd}{%
\def\pgfmanual@loc@TMPb{\pgfkeysvalueof{/codeexample/prettyprint/point with cs/\pgfmanual@pretty@glob@TMPa/.@cmd}}%
}{%
\def\pgfmanual@loc@TMPb{\pgfkeysvalueof{/codeexample/prettyprint/point with cs/.@cmd}}%
}%
\expandafter\def\expandafter\pgfmanual@loc@TMPa\expandafter{\expandafter{\pgfmanual@pretty@glob@TMPa}{##2}}%
\expandafter\pgfmanual@loc@TMPb\pgfmanual@loc@TMPa\pgfeov
}%
\if1#2%
\pgfmanual@pretty@collectpoint@getcoordsystem#1)\relax
\else
\pgfmanual@pretty@collectpoint@getcoordsystem#1\relax
\fi
\else
\def\pgfmanual@loc@TMPb{\pgfkeysvalueof{/codeexample/prettyprint/point/.@cmd}}%
\if1#2%
\pgfmanual@loc@TMPb(#1)\pgfeov
\else
\pgfmanual@loc@TMPb(#1\pgfeov
\fi
\fi
}%
}
\def\afterpgfmanual@pretty@collectpoint{\pgfmanual@pretty@mainloop}%
\def\pgfmanual@pretty@collectcs@loop#1{%
\let\pgfmanual@pretty@collectcs@loop@NEXT=\pgfmanual@pretty@collectcs@loop
\def\pgfmanual@loc@TMPb{#1}%
\ifx\pgfmanual@loc@TMPb\pgfmanual@EOI
\def\pgfmanual@pretty@collectcs@loop@NEXT{\pgfmanual@pretty@collectcs@loop@END #1}%
\else
\ifnum\lccode`#1=0
\ifx\pgfmanual@loc@TMPb\pgfmanual@attext%
\edef\pgfmanual@loc@TMPa{\pgfmanual@loc@TMPa #1}%
\else
\def\pgfmanual@pretty@collectcs@loop@NEXT{\pgfmanual@pretty@collectcs@loop@END #1}%
\fi
\else
\edef\pgfmanual@loc@TMPa{\pgfmanual@loc@TMPa #1}%
\fi
\fi
\pgfmanual@pretty@collectcs@loop@NEXT
}%
\def\afterpgfmanual@pretty@cs{\pgfmanual@pretty@mainloop}%
\def\pgfmanual@attext{@}
\def\pgfmanual@pretty@collectcs@loop@END{%
\pgfkeysifdefined{/codeexample/prettyprint/cs arguments/\pgfmanual@loc@TMPa}{%
\let\pgfmanualprettyprinterhandlecollectedargs=\pgfmanual@pretty@collectargs@finish@cs
\def\pgfmanual@pretty@collectcs@loop@END@next{%
\pgfmanualprettyprintercollectargcount
{\pgfkeysvalueof{/codeexample/prettyprint/cs arguments/\pgfmanual@loc@TMPa}}%
{\afterpgfmanual@pretty@cs}%
}%
}{%
\edef\pgfmanual@loc@TMPa{\pgfmanual@pretty@backslash \pgfmanual@loc@TMPa}%
\def\pgfmanual@loc@TMPb{\pgfkeysvalueof{/codeexample/prettyprint/cs/.@cmd}}%
\expandafter\pgfmanual@loc@TMPb\pgfmanual@loc@TMPa\pgfeov
\let\pgfmanual@pretty@collectcs@loop@END@next=\afterpgfmanual@pretty@cs
}%
\pgfmanual@pretty@collectcs@loop@END@next
}%
\newif\ifpgfmanualprettyprinterarghasunmatchedbraces
\def\pgfmanualprettyprintercollectargcount#1#2{%
\pgfmanualprettyprinterarghasunmatchedbracesfalse
\begingroup
\edef\pgfmanual@loc@csargcount{#1}%
\toksdef\t@afterpgfmanualprettyprinterhandlecollected=10
\t@afterpgfmanualprettyprinterhandlecollected={#2}%
\let\c@pgfmanual@pretty@openbracecount=\c@pgf@counta
\let\c@pgfmanual@pretty@curargcount=\c@pgf@countb
\c@pgfmanual@pretty@openbracecount=0
\c@pgfmanual@pretty@curargcount=0
\toksdef\t@pgfmanual@currentarg=0
\toksdef\t@pgfmanual@allargs=1
\t@pgfmanual@currentarg={}%
\t@pgfmanual@allargs={}%
\pgfmanual@pretty@collectargs@loop
}%
\def\pgfmanual@pretty@collectargs@loop#1{%
\let\pgfmanual@pretty@collectargs@loop@NEXT=\pgfmanual@pretty@collectargs@loop
\def\pgfmanual@loc@TMPc{#1}%
\ifx\pgfmanual@loc@TMPc\pgfmanual@EOI
\ifnum\c@pgfmanual@pretty@openbracecount>0
\ifpgfmanualpdfwarnings
\pgfplots@warning{The pretty printer did not found the closing curly brace!? This will potentially lead to display errors}%
\fi
\fi
\edef\pgfmanual@pretty@collectargs@loop@NEXT{%
\noexpand\endgroup
\ifnum\c@pgfmanual@pretty@openbracecount>0
\noexpand\pgfmanualprettyprinterarghasunmatchedbracestrue
\fi
\noexpand\def\noexpand\pgfmanualprettyprinternumcollectedargs{\the\c@pgfmanual@pretty@curargcount}%
\noexpand\pgfmanualprettyprinterhandlecollectedargs{\the\t@pgfmanual@allargs\the\t@pgfmanual@currentarg}%
\the\t@afterpgfmanualprettyprinterhandlecollected
\noexpand\pgfmanual@EOI%
}%
\else
\ifpgfmanualprettycommentactive
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\ifx\pgfmanual@loc@TMPc\pgfmanual@pretty@activenl
\pgfmanualprettycommentactivefalse
\fi
\else
\ifx\pgfmanual@loc@TMPc\pgfmanual@pretty@activepercent
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\pgfmanualprettycommentactivetrue
\else
\ifx\pgfmanual@loc@TMPc\pgfmanual@pretty@lbrace
\advance\c@pgfmanual@pretty@openbracecount by1
\ifnum\c@pgfmanual@pretty@openbracecount>1
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\fi
\else
\ifx\pgfmanual@loc@TMPc\pgfmanual@pretty@rbrace
\advance\c@pgfmanual@pretty@openbracecount by-1
\ifnum\c@pgfmanual@pretty@openbracecount=0
\edef\pgfmanual@loc@TMPc{\the\t@pgfmanual@allargs{\the\t@pgfmanual@currentarg}}%
\t@pgfmanual@allargs=\expandafter{\pgfmanual@loc@TMPc}%
\t@pgfmanual@currentarg={}%
\advance\c@pgfmanual@pretty@curargcount by1
\ifnum\c@pgfmanual@pretty@curargcount=\pgfmanual@loc@csargcount\relax
\edef\pgfmanual@pretty@collectargs@loop@NEXT{%
\noexpand\endgroup
\noexpand\def\noexpand\pgfmanualprettyprinternumcollectedargs{\the\c@pgfmanual@pretty@curargcount}%
\noexpand\pgfmanualprettyprinterhandlecollectedargs{\the\t@pgfmanual@allargs}%
\the\t@afterpgfmanualprettyprinterhandlecollected
}%
\fi
\else
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\fi
\else
\ifnum13=\catcode`#1
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\else
\ifnum10=\catcode`#1
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\else
\ifnum\c@pgfmanual@pretty@openbracecount=0
\ifpgfmanualpdfwarnings
\begingroup
\toks4{#1}%
\pgfplots@warning{The pretty printer did not find the expected \pgfmanual@loc@csargcount\space arguments (only token \the\toks4 )}%
\endgroup
\fi
\edef\pgfmanual@pretty@collectargs@loop@NEXT{%
\noexpand\endgroup
\noexpand\def\noexpand\pgfmanualprettyprinternumcollectedargs{\the\c@pgfmanual@pretty@curargcount}%
\noexpand\pgfmanualprettyprinterhandlecollectedargs{\the\t@pgfmanual@allargs\the\t@pgfmanual@currentarg}%
\the\t@afterpgfmanualprettyprinterhandlecollected
\noexpand#1%
}%
\else
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\pgfmanual@pretty@collectargs@loop@NEXT
}%
\newif\ifpgfmanualprettyprinterfoundterminator
\def\pgfmanualprettyprinterhandlecollectedargsVtwo@default#1#2{%
\if1#2%
\pgfmanualprettyprinterfoundterminatortrue
\else
\pgfmanualprettyprinterfoundterminatorfalse
\fi
\pgfmanualprettyprinterhandlecollectedargs{#1}%
}%
\def\pgfmanualprettyprintercollectupto@restore@callback{%
\let\pgfmanualprettyprinterhandlecollectedargsVtwo=\pgfmanualprettyprinterhandlecollectedargsVtwo@default
}%
\pgfmanualprettyprintercollectupto@restore@callback
\def\pgfmanualprettyprintercollectupto#1#2{%
\pgfmanualprettyprinterarghasunmatchedbracesfalse
\def\pgfmanualprettyprinterterminator{}%
\begingroup
\def\pgfmanual@loc@delimittokens{#1}%
\toksdef\t@afterpgfmanualprettyprinterhandlecollected=10
\t@afterpgfmanualprettyprinterhandlecollected={#2}%
\let\c@pgfmanual@pretty@openbracecount=\c@pgf@counta
\c@pgfmanual@pretty@openbracecount=0
\toksdef\t@pgfmanual@currentarg=0
\t@pgfmanual@currentarg={}%
\pgfmanual@pretty@collectupto@loop
}%
\def\pgfmanualprettyprinterterminator{}
\def\pgfmanual@pretty@collectupto@loop#1{%
\let\pgfmanual@pretty@collectupto@loop@NEXT=\pgfmanual@pretty@collectupto@loop
\def\pgfmanual@loc@TMPc{#1}%
\ifx\pgfmanual@loc@TMPc\pgfmanual@EOI
\edef\pgfmanual@pretty@collectupto@loop@NEXT{%
\noexpand\endgroup
\ifnum\c@pgfmanual@pretty@openbracecount>0
\noexpand\pgfmanualprettyprinterarghasunmatchedbracestrue
\fi
\noexpand\pgfmanualprettyprinterhandlecollectedargsVtwo{\the\t@pgfmanual@currentarg}{0}%
\noexpand\pgfmanualprettyprintercollectupto@restore@callback
\the\t@afterpgfmanualprettyprinterhandlecollected
\noexpand\pgfmanual@EOI%
}%
\else
\ifpgfmanualprettycommentactive
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\ifx\pgfmanual@loc@TMPc\pgfmanual@pretty@activenl
\pgfmanualprettycommentactivefalse
\fi
\else
\ifx\pgfmanual@loc@TMPc\pgfmanual@pretty@activepercent
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\pgfmanualprettycommentactivetrue
\else
\ifx\pgfmanual@loc@TMPc\pgfmanual@pretty@lbrace
\advance\c@pgfmanual@pretty@openbracecount by1
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\else
\ifx\pgfmanual@loc@TMPc\pgfmanual@pretty@rbrace
\advance\c@pgfmanual@pretty@openbracecount by-1
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\else
\expandafter\expandafter\expandafter\pgfutil@in@\expandafter\pgfmanual@loc@TMPc\expandafter{\pgfmanual@loc@delimittokens}%
\ifpgfutil@in@
\ifnum\c@pgfmanual@pretty@openbracecount=0
\edef\pgfmanual@pretty@collectupto@loop@NEXT{%
\noexpand\endgroup
\noexpand\def\noexpand\pgfmanualprettyprinterterminator{\pgfmanual@loc@TMPc}%
\noexpand\pgfmanualprettyprinterhandlecollectedargsVtwo{\the\t@pgfmanual@currentarg}{1}%
\noexpand\pgfmanualprettyprintercollectupto@restore@callback
\the\t@afterpgfmanualprettyprinterhandlecollected
}%
\else
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\fi
\else
\t@pgfmanual@currentarg=\expandafter{\the\t@pgfmanual@currentarg#1}%
\fi
\fi
\fi
\fi
\fi
\fi
\pgfmanual@pretty@collectupto@loop@NEXT
}%
\def\pgfmanual@pretty@collectargs@finish@cs#1{%
\def\pgfmanual@pretty@collectargs@finish@cs@hasargs{1}%
\ifnum\pgfmanualprettyprinternumcollectedargs=0
\ifpgfmanualprettyprinterarghasunmatchedbraces
\else
\def\pgfmanual@pretty@collectargs@finish@cs@hasargs{0}%
\fi
\fi
\if\pgfmanual@pretty@collectargs@finish@cs@hasargs1%
\pgfkeysifdefined{/codeexample/prettyprint/cs/\pgfmanual@loc@TMPa/.@cmd}{%
\edef\pgfmanual@loc@TMPb{\noexpand\pgfkeysvalueof{/codeexample/prettyprint/cs/\pgfmanual@loc@TMPa/.@cmd}}%
}{%
\edef\pgfmanual@loc@TMPb{\noexpand\pgfkeysvalueof{/codeexample/prettyprint/cs with args/.@cmd}}%
}%
\edef\pgfmanual@loc@TMPa{{\pgfmanual@pretty@backslash\pgfmanual@loc@TMPa}}%
\expandafter\pgfmanual@loc@TMPb\pgfmanual@loc@TMPa #1\pgfeov
\else
\edef\pgfmanual@loc@TMPa{{\pgfmanual@pretty@backslash\pgfmanual@loc@TMPa}}%
\edef\pgfmanual@loc@TMPb{\noexpand\pgfkeysvalueof{/codeexample/prettyprint/cs/.@cmd}}%
\expandafter\pgfmanual@loc@TMPb\pgfmanual@loc@TMPa\pgfeov
#1\relax%
\fi
}%
\long\def\pgfmanualprettyprintpgfkeys#1{%
\ifpgfmanualprettyenabled
\begingroup
\pgfmanualprettyprintstyles
\pgfmanual@pretty@pgfkeys@loop#1\pgfmanual@EOI
\endgroup
\else
#1%
\fi
}
\def\pgfmanual@pretty@pgfkeys{%
\let\pgfmanualprettyprinterhandlecollectedargsVtwo=\pgfmanual@pretty@pgfkeys@start
\pgfmanualprettyprintercollectupto]{\pgfmanual@pretty@mainloop}%
}%
\long\def\pgfmanual@pretty@pgfkeys@start#1#2{%
[%
\pgfmanual@pretty@pgfkeys@loop#1\pgfmanual@EOI
\if1#2%
]%
\fi
}%
\long\def\pgfmanual@pretty@pgfkeys@loop#1{%
\def\pgfmanual@loc@TMPa{#1}%
\ifx\pgfmanual@loc@TMPa\pgfmanual@EOI
\def\pgfmanual@pretty@pgfkeys@loop@NEXT{\relax}%
\else
\def\pgfmanual@pretty@pgfkeys@loop@NEXT{\pgfmanual@pretty@pgfkeys@loop}%
\ifpgfmanualprettycommentactive
#1\kern0pt%
\else
\ifnum13=\catcode`#1
#1%
\else
\ifx\pgfmanual@loc@TMPa\pgfmanual@pretty@comma%
,%
\else
\ifnum10=\catcode`#1
#1%
\else
\ifx\pgfmanual@loc@TMPa\pgfmanual@pretty@lbrace
#1%
\else
\ifx\pgfmanual@loc@TMPa\pgfmanual@pretty@rbrace
#1%
\else
\toks0={}%
\def\pgfmanual@pretty@pgfkeys@loop@NEXT{\pgfmanual@pretty@pgfkeys@collectkey #1}%
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\pgfmanual@pretty@pgfkeys@loop@NEXT
}%
\def\pgfmanual@pretty@pgfkeys@collectkey#1{%
\def\pgfmanual@loc@TMPb{#1}%
\def\pgfmanual@pretty@pgfkeys@collectkey@next{\pgfmanual@pretty@pgfkeys@collectkey}%
\ifx\pgfmanual@loc@TMPb\pgfmanual@EOI
\edef\pgfmanual@loc@TMPb{\the\toks0 }%
\ifx\pgfmanual@loc@TMPb\pgfutil@empty
\else
\expandafter\pgfmanual@pretty@pgfkeys@processkey\expandafter{\the\toks0 }%
\fi
\def\pgfmanual@pretty@pgfkeys@collectkey@next{\relax}%
\else
\ifx\pgfmanual@loc@TMPb\pgfmanual@pretty@eq
\expandafter\pgfmanual@pretty@pgfkeys@processkey\expandafter{\the\toks0 }%
#1%
\toks0={}%
\def\pgfmanual@pretty@pgfkeys@collectvalue@hasconsumedspaces{0}%
\def\pgfmanual@pretty@pgfkeys@collectkey@next{\pgfmanual@pretty@pgfkeys@collectvalue}%
\else
\ifx\pgfmanual@loc@TMPb\pgfmanual@pretty@comma
\expandafter\pgfmanual@pretty@pgfkeys@processkey\expandafter{\the\toks0 }%
#1%
\def\pgfmanual@pretty@pgfkeys@collectkey@next{\pgfmanual@pretty@pgfkeys@loop}%
\else
\ifx\pgfmanual@loc@TMPb\pgfmanual@pretty@activenl
\expandafter\pgfmanual@pretty@pgfkeys@processkey\expandafter{\the\toks0 }%
#1%
\def\pgfmanual@pretty@pgfkeys@collectkey@next{\pgfmanual@pretty@pgfkeys@loop}%
\else
\ifx\pgfmanual@loc@TMPb\pgfmanual@pretty@backslash
\edef\pgfmanual@loc@TMPb{\the\toks0 }%
\ifx\pgfmanual@loc@TMPb\pgfutil@empty
\else
\expandafter\pgfmanual@pretty@pgfkeys@processkey\expandafter{\the\toks0 }%
\fi
\begingroup
\let\pgfmanual@loc@TMPa=\pgfutil@empty
\def\afterpgfmanual@pretty@cs{%
\endgroup
\pgfmanual@pretty@pgfkeys@loop
}%
\def\pgfmanual@pretty@pgfkeys@collectkey@next{\pgfmanual@pretty@collectcs@loop}%
\else
\ifx\pgfmanual@loc@TMPb\pgfmanual@pretty@lbrace
\def\pgfmanualprettyprinterhandlecollectedargs##1{%
\toks1={##1}%
\edef\pgfmanual@loc@TMPc{%
\the\toks0 \pgfmanual@pretty@lbrace \the\toks1
\ifpgfmanualprettyprinterarghasunmatchedbraces
\else
\pgfmanual@pretty@rbrace
\fi
}%
\toks0=\expandafter{\pgfmanual@loc@TMPc}%
}%
\def\pgfmanual@pretty@pgfkeys@collectkey@next{%
\pgfmanualprettyprintercollectargcount{1}{\pgfmanual@pretty@pgfkeys@collectkey}%
#1%
}%
\else
\ifx\pgfmanual@loc@TMPb\pgfmanual@pretty@rbrace
\expandafter\pgfmanual@pretty@pgfkeys@processkey\expandafter{\the\toks0 }%
#1%
\def\pgfmanual@pretty@pgfkeys@collectkey@next{\pgfmanual@pretty@pgfkeys@loop}%
\else
\toks0=\expandafter{\the\toks0 #1}%
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\pgfmanual@pretty@pgfkeys@collectkey@next
}%
\def\pgfmanual@pretty@pgfkeys@collectvalue#1{%
\def\pgfmanual@loc@TMPb{#1}%
\let\pgfmanual@pretty@pgfkeys@collectvalue@next=\pgfmanual@pretty@pgfkeys@collectvalue
\ifx\pgfmanual@loc@TMPb\pgfmanual@EOI
\let\pgfmanual@pretty@pgfkeys@collectvalue@next=\relax
\else
\def\pgfmanual@pretty@isconsumed{0}%
\if\pgfmanual@pretty@pgfkeys@collectvalue@hasconsumedspaces0%
\ifnum13=\catcode`#1
#1%
\def\pgfmanual@pretty@isconsumed{1}%
\else
\ifnum10=\catcode`#1
\def\pgfmanual@pretty@isconsumed{1}%
#1%
\fi
\fi
\fi
\if\pgfmanual@pretty@isconsumed0%
\def\pgfmanualprettyprinterhandlecollectedargsVtwo##1##2{\pgfmanual@pretty@pgfkeys@processvalue{##1}}%
\def\pgfmanual@pretty@pgfkeys@collectvalue@next{%
\pgfmanualprettyprintercollectupto{,]}{\afterpgfmanual@pretty@collectargs@finish@value}#1%
}%
\fi
\fi
\pgfmanual@pretty@pgfkeys@collectvalue@next
}%
\def\afterpgfmanual@pretty@collectargs@finish@value{%
\expandafter\pgfmanual@pretty@pgfkeys@loop\pgfmanualprettyprinterterminator%
}%
{\catcode`\^^M=13 \catcode`\ =13\relax\catcode`\%=13\relax\gdef\pgfmanual@pretty@restorespaces{\def%{\pgfmanual@pretty@percent}\def^^M{\pgfmanual@pretty@space}\def {\pgfmanual@pretty@space}}}
\def\pgfmanual@pretty@pgfkeys@processkey#1{%
\begingroup
\pgfmanual@pretty@restorespaces
\xdef\pgfmanual@pretty@pgfkeys@collectkey@keyname{#1}%
\endgroup
\def\pgfmanual@loc@TMPa{\pgfutil@in@{/.}}%
\expandafter\pgfmanual@loc@TMPa\expandafter{\pgfmanual@pretty@pgfkeys@collectkey@keyname}%
\ifpgfutil@in@
\def\pgfmanual@pretty@splitit##1/.##2\relax{%
\def\pgfmanual@loc@TMPb{{##1}{.##2}}%
}%
\expandafter\pgfmanual@pretty@splitit\pgfmanual@pretty@pgfkeys@collectkey@keyname\relax
\def\pgfmanual@loc@TMPa{\pgfkeysvalueof{/codeexample/prettyprint/key name with handler/.@cmd}}%
\expandafter\pgfmanual@loc@TMPa\pgfmanual@loc@TMPb\pgfeov
\else
\def\pgfmanual@loc@TMPa{\pgfkeysvalueof{/codeexample/prettyprint/key name/.@cmd}}%
\expandafter\pgfmanual@loc@TMPa\pgfmanual@pretty@pgfkeys@collectkey@keyname\pgfeov
\fi
}
\def\pgfmanual@pretty@pgfkeys@processvalue#1{%
\pgfkeysifdefined{/codeexample/prettyprint/key value/\pgfmanual@pretty@pgfkeys@collectkey@keyname/.@cmd}{%
\edef\pgfmanual@loc@TMPb{\noexpand\pgfkeysvalueof{/codeexample/prettyprint/key value/\pgfmanual@pretty@pgfkeys@collectkey@keyname/.@cmd}}%
}{%
\edef\pgfmanual@loc@TMPb{\noexpand\pgfkeysvalueof{/codeexample/prettyprint/key value/.@cmd}}%
}%
\edef\pgfmanual@loc@TMPa{{\pgfmanual@pretty@pgfkeys@collectkey@keyname}}%
\expandafter\pgfmanual@loc@TMPb\pgfmanual@loc@TMPa{#1}\pgfeov
}
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/doc/pgfmanual.prettyprinter.code.tex ====
==== BEGIN Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/frontendlayer/libraries/tikzlibraryexternal.code.tex ====
\usepackage{pdftexcmds}
\pgfutil@IfFileExists{atveryend.sty}{%
^I\usepackage{atveryend}%
}{%
^I\message{! Package tikz Warning: \string\usepackage{atveryend} impossible. Automatic resolving of references within external files impossible.}%
}%
\input tikzexternalshared.code.tex
\pgfutil@IfUndefined{pdf@mdfivesum}{}{%
^I\let\tikzexternal@mdfivesum=\pdf@mdfivesum
}%
\def\tikzexternal@TEXDIALECT@begpicture{\begin{tikzpicture}}
\def\tikzexternal@TEXDIALECT@endpicture{\end{tikzpicture}}%
\def\tikzexternal@TEXDIALECT@collectpicture#1{%
^I\begingroup
^I\t@tikzexternal@tmpa={}%
^I\tikzexternal@laTeX@collect@until@end@tikzpicture{#1}%
}
\long\def\tikzexternal@laTeX@collect@until@end@tikzpicture#1#2\end#3{%
^I\def\tikzexternal@laTeX@collect@until@end@tikzpicture@{#3}%
^I\ifx\tikzexternal@laTeX@collect@until@end@tikzpicture@\tikzexternal@laTeX@collect@until@end@tikzpicturetikzpicturestring
^I^I\t@tikzexternal@tmpa=\expandafter{\the\t@tikzexternal@tmpa #2}%
^I^I\edef\tikzexternal@TEXDIALECT@collectpicture@next{%
^I^I^I\noexpand\endgroup
^I^I^I\noexpand#1{\the\t@tikzexternal@tmpa}%
^I^I}%
^I^I\t@tikzexternal@tmpa={}%
^I\else
^I^I\t@tikzexternal@tmpa=\expandafter{\the\t@tikzexternal@tmpa #2\end{#3}}%
^I^I\def\tikzexternal@TEXDIALECT@collectpicture@next{%
^I^I^I\tikzexternal@laTeX@collect@until@end@tikzpicture{#1}}%
^I\fi
^I\tikzexternal@TEXDIALECT@collectpicture@next
}%
\def\tikzexternal@laTeX@collect@until@end@tikzpicturetikzpicturestring{tikzpicture}%
\def\tikzexternal@handle@landscape{%
^I\ltx@ifpackageloaded{pdflscape}{%
^I^I\tikzset{
^I^I^Iexternal/.cd,
^I^I^Ioptimize command away=\landscape,
^I^I^Ioptimize command away=\endlandscape
^I^I}%
^I}{%
^I}%
}%
\let\tikzexternal@currname\@currname
\def\@currname{tikzlibraryexternal}
\AtBeginDocument{%
^I\pgfutil@ifundefined{tikzexternalrealjob}{%
^I^I\global\let\tikzexternalrealjob=\jobname
^I}{}%
^I\tikzexternal@handle@landscape
}%
\let\@currname\tikzexternal@currname
==== END Uniform-Stability-of-the-Spherical-Laughlin-Gap//tools/tex/latex/pgf/frontendlayer/libraries/tikzlibraryexternal.code.tex ====