MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Posting for MathGroup

  • To: mathgroup at smc.vnet.net
  • Subject: [mg39230] Posting for MathGroup
  • From: Tom Wickham-Jones <twj at wolfram.com>
  • Date: Tue, 4 Feb 2003 02:23:40 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

One of the new features of Mathematica 4.2 are the
XML tools and I have written an example of their use
based on SVG (an XML application for vector graphics).

Tom Wickham-Jones


(************** Content-type: application/mathematica **************
                     CreatedBy='Mathematica 4.2'

                    Mathematica-Compatible Notebook

This notebook can be used with any Mathematica-compatible
application, such as Mathematica, MathReader or Publicon. The data
for the notebook starts with the line containing stars above.

To get the notebook into a Mathematica-compatible application, do
one of the following:

* Save the data starting with the line of stars above into a file
  with a name ending in .nb, then open the file inside the
  application;

* Copy the data starting with the line of stars above to the
  clipboard, then use the Paste menu command inside the application.

Data for notebooks contains only printable 7-bit ASCII and can be
sent directly in email or through ftp in text mode.  Newlines can be
CR, LF or CRLF (Unix, Macintosh or MS-DOS style).

NOTE: If you modify the data for this notebook not in a Mathematica-
compatible application, you must delete the line below containing
the word CacheID, otherwise Mathematica-compatible applications may
try to use invalid cache data.

For more information on notebooks and Mathematica-compatible 
applications, contact Wolfram Research:
  web: http://www.wolfram.com
  email: info at wolfram.com
  phone: +1-217-398-0700 (U.S.)

Notebook reader applications are available free of charge from 
Wolfram Research.
*******************************************************************)

(*CacheID: 232*)


(*NotebookFileLineBreakTest
NotebookFileLineBreakTest*)
(*NotebookOptionsPosition[     52820,       1633]*)
(*NotebookOutlinePosition[     53608,       1662]*)
(*  CellTagsIndexPosition[     53538,       1656]*)
(*WindowFrame->Normal*)



Notebook[{
Cell[TextData[{
  "Generating SVG with ",
  StyleBox["Mathematica",
    FontSlant->"Italic"]
}], "Title"],

Cell["An example of the use of SymbolicXML", "Subtitle"],

Cell["\<\
Tom Wickham-Jones Wolfram Research Inc.
27-Jan-2003\
\>", "Subsubtitle"],

Cell[CellGroupData[{

Cell["What is SVG?", "Section"],

Cell[TextData[{
  "SVG is an XML language for describing two-dimensional graphics. Since it \
is based on XML any XML aware application can work with SVG. ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " has some good tools for working with XML and some specific functions that \
support SVG, thus it is a good environment for some interesting SVG \
applications. SVG contains some interesting features including a variety of \
dynamic features such as animations."
}], "Text"],

Cell[TextData[{
  "SVG can be rendered with a browser plug-in from Adobe,  ",
  ButtonBox["http://www.adobe.com/svg";,
    ButtonData:>{
      URL[ "http://www.adobe.com/svg";], None},
    ButtonStyle->"Hyperlink"],
  ". which provides strong support including the animation functions. More \
information about SVG can be found at the W3C site: ",
  ButtonBox["http://www.w3.org/Graphics/SVG/";,
    ButtonData:>{
      URL[ "http://www.w3.org/Graphics/SVG/";], None},
    ButtonStyle->"Hyperlink"],
  "."
}], "Text"]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[{
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " Commands for Generating SVG"
}], "Section"],

Cell[TextData[{
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " has a rich graphics language for representing graphics as ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " expressions."
}], "Text"],

Cell[CellGroupData[{

Cell[BoxData[
    \(p = Graphics[Line[\ {{0, 0}, {1, 1}}]]\)], "Input"],

Cell[BoxData[
    TagBox[\(\[SkeletonIndicator]  Graphics  \[SkeletonIndicator]\),
      False,
      Editable->False]], "Output"]
}, Open  ]],

Cell[TextData[{
  "These print as expressions, if you want to see a graphical expression you \
use a command such as ",
  StyleBox["Show", "InlineInput"],
  "."
}], "Text"],

Cell[CellGroupData[{

Cell[BoxData[
    \(Show[p]\)], "Input"],

Cell[GraphicsData["PostScript", "\<\
%!
%%Creator: Mathematica
%%AspectRatio: .61803 
MathPictureStart
/Mabs {
Mgmatrix idtransform
Mtmatrix dtransform
} bind def
/Mabsadd { Mabs
3 -1 roll add
3 1 roll add
exch } bind def
%% Graphics
%%IncludeResource: font Courier
%%IncludeFont: Courier
/Courier findfont 10  scalefont  setfont
% Scaling calculations
0.0238095 0.952381 0.0147151 0.588604 [
[ 0 0 0 0 ]
[ 1 .61803 0 0 ]
] MathScale
% Start of Graphics
1 setlinecap
1 setlinejoin
newpath
0 0 m
1 0 L
1 .61803 L
0 .61803 L
closepath
clip
newpath
0 g
.5 Mabswid
[ ] 0 setdash
.02381 .01472 m
.97619 .60332 L
s
% End of Graphics
MathPictureEnd
\
\>"], "Graphics",
  ImageSize->{288, 177.938},
  ImageMargins->{{43, 0}, {0, 0}},
  ImageRegion->{{0, 1}, {0, 1}},
  ImageCache->GraphicsData["Bitmap", "\<\
CF5dJ6E]HGAYHf4PAg9QL6QYHg<PAVmbKF5d0`40004P0000/A000`40O003h00Oogoo8Goo003oOolQ
Ool00?moob5oo`00ogoo8Goo0007Ool00`00Oomoo`3oOolGOol000Qoo`800?mooaMoo`002Woo0P00
ogoo5Goo000<Ool00`00Oomoo`3oOolBOol000eoo`800?mooa9oo`003goo00<007ooOol0ogoo3goo
000@Ool2003oOol?Ool0019oo`800?moo`eoo`0057oo00<007ooOol0ogoo2Woo000EOol2003oOol:
Ool001Moo`800?moo`Qoo`006Goo00<007ooOol0ogoo1Goo000JOol2003oOol5Ool001aoo`03001o
ogoo0?moo`9oo`007Goo0P00ogoo0Woo000OOol2003oOol0025oo`03001oogoo0?aoo`008Woo0P00
o7oo000TOol00`00Oomoo`3iOol002Eoo`800?Uoo`009goo0P00mgoo000YOol00`00Oomoo`3dOol0
02Yoo`800?Aoo`00;7oo0P00lWoo000^Ool00`00Oomoo`3_Ool002moo`800>moo`00<Goo00<007oo
Ool0k7oo000bOol2003/Ool003Aoo`800>Yoo`00=Woo00<007ooOol0igoo000gOol2003WOol003Uo
o`800>Eoo`00>goo00<007ooOol0hWoo000lOol2003ROol003ioo`03001oogoo0=moo`00?goo0P00
ggoo0011Ool2003MOol004=oo`03001oogoo0=Yoo`00A7oo0P00fWoo0016Ool00`00Oomoo`3GOol0
04Moo`800=Moo`00BGoo0P00eGoo001;Ool00`00Oomoo`3BOol004aoo`800=9oo`00CWoo0P00d7oo
001@Ool00`00Oomoo`3=Ool0055oo`800<eoo`00Dgoo00<007ooOol0bWoo001DOol2003:Ool005Io
o`800<Qoo`00F7oo00<007ooOol0aGoo001IOol20035Ool005]oo`800<=oo`00GGoo00<007ooOol0
`7oo001NOol20030Ool0061oo`03001oogoo0;eoo`00HGoo0P00_Goo001SOol2002kOol006Eoo`03
001oogoo0;Qoo`00IWoo0P00^7oo001XOol00`00Oomoo`2eOol006Uoo`800;Eoo`00Jgoo0P00/goo
001]Ool00`00Oomoo`2`Ool006ioo`800;1oo`00L7oo0P00[Woo001bOol00`00Oomoo`2[Ool007=o
o`800:]oo`00MGoo00<007ooOol0Z7oo001fOol2002XOol007Qoo`800:Ioo`00NWoo00<007ooOol0
Xgoo001kOol2002SOol007eoo`800:5oo`00Ogoo00<007ooOol0WWoo0020Ool2002NOol0089oo`03
001oogoo09]oo`00Pgoo0P00Vgoo0025Ool2002IOol008Moo`03001oogoo09Ioo`00R7oo0P00UWoo
002:Ool00`00Oomoo`2COol008]oo`8009=oo`00SGoo0P00TGoo002?Ool00`00Oomoo`2>Ool0091o
o`8008ioo`00TWoo0P00S7oo002DOol00`00Oomoo`29Ool009Eoo`8008Uoo`00Ugoo00<007ooOol0
QWoo002HOol20026Ool009Yoo`8008Aoo`00W7oo00<007ooOol0PGoo002MOol20021Ool009moo`80
07moo`00XGoo00<007ooOol0O7oo002ROol2001lOol00:Aoo`03001oogoo07Uoo`00YGoo0P00NGoo
002WOol2001gOol00:Uoo`03001oogoo07Aoo`00ZWoo0P00M7oo002/Ool00`00Oomoo`1aOol00:eo
o`80075oo`00[goo0P00Kgoo002aOol00`00Oomoo`1/Ool00;9oo`8006aoo`00]7oo0P00JWoo002f
Ool00`00Oomoo`1WOol00;Moo`8006Moo`00^Goo00<007ooOol0I7oo002jOol2001TOol00;aoo`80
069oo`00_Woo00<007ooOol0Ggoo002oOol2001OOol00<5oo`8005eoo`00`goo00<007ooOol0FWoo
0034Ool2001JOol00<Ioo`03001oogoo05Moo`00agoo0P00Egoo0039Ool2001EOol00<]oo`03001o
ogoo059oo`00c7oo0P00DWoo003>Ool00`00Oomoo`1?Ool00<moo`8004moo`00dGoo0P00CGoo003C
Ool00`00Oomoo`1:Ool00=Aoo`8004Yoo`00eWoo0P00B7oo003HOol00`00Oomoo`15Ool00=Uoo`80
04Eoo`00fgoo00<007ooOol0@Woo003LOol20012Ool00=ioo`80041oo`00h7oo00<007ooOol0?Goo
003QOol2000mOol00>=oo`8003]oo`00iGoo00<007ooOol0>7oo003VOol2000hOol00>Qoo`03001o
ogoo03Eoo`00jGoo0P00=Goo003[Ool2000cOol00>eoo`03001oogoo031oo`00kWoo0P00<7oo003`
Ool00`00Oomoo`0]Ool00?5oo`8002eoo`00lgoo0P00:goo003eOol00`00Oomoo`0XOol00?Ioo`80
02Qoo`00n7oo0P009Woo003jOol00`00Oomoo`0SOol00?]oo`8002=oo`00oGoo00<007ooOol087oo
003nOol2000POol00?moo`5oo`8001ioo`00ogoo0goo00<007ooOol06goo003oOol4Ool2000KOol0
0?moo`Ioo`8001Uoo`00ogoo27oo00<007ooOol05Woo003oOol9Ool2000FOol00?moo`]oo`03001o
ogoo01=oo`00ogoo37oo0P004goo003oOol>Ool2000AOol00?mooa1oo`03001oogoo00ioo`00ogoo
4Goo0P003Woo003oOolCOol00`00Oomoo`0;Ool00?mooaAoo`8000]oo`00ogoo5Woo0P002Goo003o
OolHOol00`00Oomoo`06Ool00?moob5oo`00ogoo8Goo003oOolQOol00?moob5oo`00\
\>"],
  ImageRangeCache->{{{0, 287}, {176.938, 0}} -> {-0.0263022, -0.0250052, \
0.00366761, 0.00593432}}],

Cell[BoxData[
    TagBox[\(\[SkeletonIndicator]  Graphics  \[SkeletonIndicator]\),
      False,
      Editable->False]], "Output"]
}, Open  ]],

Cell[TextData[{
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " can write an XML representation of a ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " graphics expression into a string with ",
  StyleBox["ExportString", "InlineInput"],
  " and into a file with ",
  StyleBox["Export", "InlineInput"],
  "."
}], "Text"],

Cell[CellGroupData[{

Cell[BoxData[
    \(str = ExportString[p, "\<SVG\>"]\)], "Input"],

Cell[BoxData[
    \("<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE svg PUBLIC \
'-//W3C//DTD SVG 1.0//EN' \
'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>\n<svg \
xmlns='http://www.w3.org/2000/svg'\n    width='288.0pt'\n    \
height='177.994pt'\n    viewBox='-0.025 -0.0154508 1.05 0.648936'\n    \
preserveAspectRatio='xMidYMid meet'>\n <g transform='scale(1, -1) \
translate(0,-0.618034)'\n     style='fill:black; font-family:&apos;Courier \
New&apos;, Courier, Symbol, monospace; font-size:0.021875pt; stroke:black; \
stroke-width:0.000911458pt'>\n  <line fill='none'\n      x1='0.0'\n      \
y1='0.0'\n      x2='1.0'\n      y2='0.618034'/>\n </g>\n</svg>"\)], "Output"]
}, Open  ]],

Cell[TextData[{
  "A string of XML can be read back into ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " with the command ",
  StyleBox["ImportString", "InlineInput"],
  " with a format of ",
  StyleBox["XML", "InlineInput"],
  ". This returns a symbolic XML expression that is an isomorphic \
representation of the original XML. The symbolic XML version of the XML can \
be worked with by standard ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " programming techniques. This is demonstrated in the ",
  ButtonBox["next section",
    ButtonData:>"t:1",
    ButtonStyle->"Hyperlink"],
  "."
}], "Text"],

Cell[CellGroupData[{

Cell[BoxData[
    \(ImportString[str, \ "\<XML\>"]\)], "Input"],

Cell[BoxData[
    \(\(XMLObject[
        "Document"]\)[{\(XMLObject["Declaration"]\)["Version" \[Rule] "1.0", 
          "Encoding" \[Rule] "UTF-8"], \(XMLObject["Doctype"]\)["svg", 
          "Public" \[Rule] "-//W3C//DTD SVG 1.0//EN", 
          "System" \[Rule] 
            "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"]}, 
      XMLElement[
        "svg", {{"http://www.w3.org/2000/xmlns/";, "xmlns"} \[Rule] 
            "http://www.w3.org/2000/svg";, "width" \[Rule] "288.0pt", 
          "height" \[Rule] "177.994pt", 
          "viewBox" \[Rule] "-0.025 -0.0154508 1.05 0.648936", 
          "preserveAspectRatio" \[Rule] "xMidYMid meet"}, {XMLElement[
            "g", {"transform" \[Rule] "scale(1, -1) translate(0,-0.618034)", 
              "style" \[Rule] 
                "fill:black; font-family:'Courier New', Courier, Symbol, \
monospace; font-size:0.021875pt; stroke:black; stroke-width:0.000911458pt"}, \
{XMLElement["line", {"fill" \[Rule] "none", "x1" \[Rule] "0.0", 
                  "y1" \[Rule] "0.0", "x2" \[Rule] "1.0", 
                  "y2" \[Rule] "0.618034"}, {}]}]}], {}, 
      "Valid" \[Rule] True]\)], "Output"]
}, Open  ]],

Cell[TextData[{
  "The command ",
  StyleBox["XML`SVG`GraphicsToSymbolicSVG", "InlineInput"],
  " goes directly from a ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " graphics expression directly to the symbolic XML representation of the \
SVG."
}], "Text"],

Cell[CellGroupData[{

Cell[BoxData[
    \(XML`SVG`GraphicsToSymbolicSVG[p]\)], "Input"],

Cell[BoxData[
    \(\(XMLObject[
        "Document"]\)[{\(XMLObject["Declaration"]\)["Version" \[Rule] "1.0", 
          "Encoding" \[Rule] "UTF-8"], \(XMLObject["Doctype"]\)["svg", 
          "Public" \[Rule] "-//W3C//DTD SVG 1.0//EN", 
          "System" \[Rule] 
            "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"]}, 
      XMLElement[
        "svg", {"xmlns" \[Rule] "http://www.w3.org/2000/svg";, 
          "width" \[Rule] "288.0pt", "height" \[Rule] "177.994pt", 
          "viewBox" \[Rule] "-0.025 -0.0154508 1.05 0.648936", 
          "preserveAspectRatio" \[Rule] "xMidYMid meet"}, {XMLElement[
            "g", {"transform" \[Rule] "scale(1, -1) translate(0,-0.618034)", 
              "style" \[Rule] 
                "fill:black; font-family:'Courier New', Courier, Symbol, \
monospace; font-size:0.021875pt; stroke:black; stroke-width:0.000911458pt"}, \
{XMLElement["line", {"fill" \[Rule] "none", "x1" \[Rule] "0.0", 
                  "y1" \[Rule] "0.0", "x2" \[Rule] "1.0", 
                  "y2" \[Rule] "0.618034"}, {}]}]}], {}]\)], "Output"]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Generating an SVG Animation", "Section",
  CellTags->"t:1"],

Cell[TextData[{
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " can solve a differential equation:"
}], "Text"],

Cell[CellGroupData[{

Cell[BoxData[
    \(sol = 
      NDSolve[{\ \(x''\)[t] + 0.15\ \(x'\)[t] - x[t] + x[t]^3 \[Equal] 
            5  Cos[t], \[IndentingNewLine]x[0] \[Equal] 1, \(x'\)[0] \[Equal] 
            2}, x, {t, 0, 20}]\)], "Input"],

Cell[BoxData[
    RowBox[{"{", 
      RowBox[{"{", 
        RowBox[{"x", "\[Rule]", 
          TagBox[\(InterpolatingFunction[{{0.`, 20.`}}, "<>"]\),
            False,
            Editable->False]}], "}"}], "}"}]], "Output"]
}, Open  ]],

Cell["and then the solution can be plotted.", "Text"],

Cell[CellGroupData[{

Cell[BoxData[
    \(\(p = 
        ParametricPlot[
          Evaluate[{x[t], \(x'\)[t]} /. sol], {t, 0, 20}];\)\)], "Input"],

Cell[GraphicsData["PostScript", "\<\
%!
%%Creator: Mathematica
%%AspectRatio: .61803 
MathPictureStart
/Mabs {
Mgmatrix idtransform
Mtmatrix dtransform
} bind def
/Mabsadd { Mabs
3 -1 roll add
3 1 roll add
exch } bind def
%% Graphics
%%IncludeResource: font Courier
%%IncludeFont: Courier
/Courier findfont 10  scalefont  setfont
% Scaling calculations
0.477803 0.15697 0.306151 0.0573087 [
[.00689 .29365 -6 -9 ]
[.00689 .29365 6 0 ]
[.16386 .29365 -6 -9 ]
[.16386 .29365 6 0 ]
[.32083 .29365 -6 -9 ]
[.32083 .29365 6 0 ]
[.63477 .29365 -3 -9 ]
[.63477 .29365 3 0 ]
[.79174 .29365 -3 -9 ]
[.79174 .29365 3 0 ]
[.94871 .29365 -3 -9 ]
[.94871 .29365 3 0 ]
[.4653 .07692 -12 -4.5 ]
[.4653 .07692 0 4.5 ]
[.4653 .19153 -12 -4.5 ]
[.4653 .19153 0 4.5 ]
[.4653 .42077 -6 -4.5 ]
[.4653 .42077 0 4.5 ]
[.4653 .53539 -6 -4.5 ]
[.4653 .53539 0 4.5 ]
[ 0 0 0 0 ]
[ 1 .61803 0 0 ]
] MathScale
% Start of Graphics
1 setlinecap
1 setlinejoin
newpath
0 g
.25 Mabswid
[ ] 0 setdash
.00689 .30615 m
.00689 .3124 L
s
[(-3)] .00689 .29365 0 1 Mshowa
.16386 .30615 m
.16386 .3124 L
s
[(-2)] .16386 .29365 0 1 Mshowa
.32083 .30615 m
.32083 .3124 L
s
[(-1)] .32083 .29365 0 1 Mshowa
.63477 .30615 m
.63477 .3124 L
s
[(1)] .63477 .29365 0 1 Mshowa
.79174 .30615 m
.79174 .3124 L
s
[(2)] .79174 .29365 0 1 Mshowa
.94871 .30615 m
.94871 .3124 L
s
[(3)] .94871 .29365 0 1 Mshowa
.125 Mabswid
.03829 .30615 m
.03829 .3099 L
s
.06968 .30615 m
.06968 .3099 L
s
.10108 .30615 m
.10108 .3099 L
s
.13247 .30615 m
.13247 .3099 L
s
.19526 .30615 m
.19526 .3099 L
s
.22665 .30615 m
.22665 .3099 L
s
.25805 .30615 m
.25805 .3099 L
s
.28944 .30615 m
.28944 .3099 L
s
.35223 .30615 m
.35223 .3099 L
s
.38362 .30615 m
.38362 .3099 L
s
.41501 .30615 m
.41501 .3099 L
s
.44641 .30615 m
.44641 .3099 L
s
.5092 .30615 m
.5092 .3099 L
s
.54059 .30615 m
.54059 .3099 L
s
.57198 .30615 m
.57198 .3099 L
s
.60338 .30615 m
.60338 .3099 L
s
.66617 .30615 m
.66617 .3099 L
s
.69756 .30615 m
.69756 .3099 L
s
.72895 .30615 m
.72895 .3099 L
s
.76035 .30615 m
.76035 .3099 L
s
.82314 .30615 m
.82314 .3099 L
s
.85453 .30615 m
.85453 .3099 L
s
.88592 .30615 m
.88592 .3099 L
s
.91732 .30615 m
.91732 .3099 L
s
.98011 .30615 m
.98011 .3099 L
s
.25 Mabswid
0 .30615 m
1 .30615 L
s
.4778 .07692 m
.48405 .07692 L
s
[(-4)] .4653 .07692 1 0 Mshowa
.4778 .19153 m
.48405 .19153 L
s
[(-2)] .4653 .19153 1 0 Mshowa
.4778 .42077 m
.48405 .42077 L
s
[(2)] .4653 .42077 1 0 Mshowa
.4778 .53539 m
.48405 .53539 L
s
[(4)] .4653 .53539 1 0 Mshowa
.125 Mabswid
.4778 .10557 m
.48155 .10557 L
s
.4778 .13423 m
.48155 .13423 L
s
.4778 .16288 m
.48155 .16288 L
s
.4778 .22019 m
.48155 .22019 L
s
.4778 .24884 m
.48155 .24884 L
s
.4778 .2775 m
.48155 .2775 L
s
.4778 .33481 m
.48155 .33481 L
s
.4778 .36346 m
.48155 .36346 L
s
.4778 .39211 m
.48155 .39211 L
s
.4778 .44942 m
.48155 .44942 L
s
.4778 .47808 m
.48155 .47808 L
s
.4778 .50673 m
.48155 .50673 L
s
.4778 .04826 m
.48155 .04826 L
s
.4778 .01961 m
.48155 .01961 L
s
.4778 .56404 m
.48155 .56404 L
s
.4778 .59269 m
.48155 .59269 L
s
.25 Mabswid
.4778 0 m
.4778 .61803 L
s
0 0 m
1 0 L
1 .61803 L
0 .61803 L
closepath
clip
newpath
.5 Mabswid
.63477 .42077 m
.65038 .43313 L
.66878 .44539 L
.68599 .45489 L
.70585 .46366 L
.7185 .46803 L
.73045 .47128 L
.74207 .4736 L
.75453 .47509 L
.76573 .4755 L
.77622 .47503 L
.78766 .47348 L
.79981 .47051 L
.81209 .46593 L
.82312 .46025 L
.83472 .45238 L
.84633 .44206 L
.85653 .43038 L
.86525 .41779 L
.87232 .40508 L
.87883 .39045 L
.88384 .37607 L
.88824 .35938 L
.89118 .34355 L
.89299 .32834 L
.89392 .31008 L
.89363 .29332 L
.89194 .27411 L
.88902 .25628 L
.88482 .23893 L
.87977 .22338 L
.87306 .2073 L
.86455 .19131 L
.85491 .17697 L
.8436 .16361 L
.833 .15354 L
.82092 .14431 L
.80895 .13702 L
.79765 .13152 L
.78596 .12703 L
.77468 .12368 L
.76129 .12076 L
.74879 .11894 L
.73496 .11779 L
.72796 .11751 L
.72025 .11741 L
.71264 .1175 L
.70435 .1178 L
.69654 .11826 L
.68931 .11881 L
Mistroke
.67573 .12013 L
.66139 .12186 L
.60063 .13087 L
.57204 .13483 L
.55824 .13642 L
.54567 .13763 L
.53426 .1385 L
.52229 .13916 L
.5103 .13954 L
.50351 .13962 L
.49719 .13961 L
.48504 .13935 L
.47891 .13909 L
.47213 .13872 L
.46011 .13783 L
.44878 .13673 L
.42293 .13332 L
.39442 .12841 L
.34361 .11798 L
.31465 .11204 L
.28696 .10706 L
.27369 .10509 L
.26106 .10354 L
.2464 .10224 L
.23303 .10159 L
.21814 .10159 L
.20446 .10237 L
.18953 .1042 L
.18207 .10556 L
.17394 .10741 L
.16083 .11131 L
.14913 .11587 L
.13601 .12241 L
.12404 .12994 L
.10417 .14661 L
.0939 .15793 L
.08509 .16961 L
.07634 .18363 L
.06819 .19973 L
.0621 .21464 L
.05663 .23146 L
.052 .25043 L
.04892 .26864 L
.04763 .27996 L
.04684 .29071 L
.04645 .31085 L
.0473 .32841 L
.0494 .34662 L
.05213 .36166 L
.05611 .37753 L
Mistroke
.06146 .39359 L
.06837 .40956 L
.08357 .43449 L
.09417 .44687 L
.10481 .45651 L
.11722 .46505 L
.12381 .46862 L
.13109 .47186 L
.13818 .4744 L
.14478 .47626 L
.15115 .47762 L
.15793 .47864 L
.16975 .47944 L
.18273 .479 L
.19546 .47735 L
.20691 .47492 L
.2199 .47112 L
.23188 .46668 L
.25229 .45715 L
.27292 .44495 L
.30794 .4177 L
.33361 .39052 L
.34441 .37598 L
.35359 .36093 L
.35751 .35318 L
.36113 .34485 L
.36364 .33796 L
.3658 .33062 L
.36676 .32664 L
.36749 .32301 L
.36804 .31964 L
.36852 .31599 L
.36899 .30975 L
.36901 .30331 L
.36882 .29972 L
.36851 .29649 L
.368 .29282 L
.36736 .2894 L
.36589 .28346 L
.36378 .27721 L
.35875 .26655 L
.35176 .2561 L
.34373 .24715 L
.33538 .23988 L
.32603 .23342 L
.31487 .22747 L
.30893 .22496 L
.30238 .22266 L
.29659 .22101 L
.29019 .21961 L
Mistroke
.28371 .21863 L
.27768 .21811 L
.2719 .21798 L
.26577 .21824 L
.26032 .21884 L
.25526 .21973 L
.24977 .22108 L
.24398 .22297 L
.23747 .22574 L
.23165 .22888 L
.22505 .23333 L
.21943 .23804 L
.21012 .24842 L
.2057 .255 L
.20205 .26173 L
.19918 .26828 L
.19666 .27559 L
.19495 .28213 L
.19354 .28958 L
.19262 .29787 L
.19237 .30261 L
.19232 .307 L
.1927 .31563 L
.19365 .32391 L
.19507 .33169 L
.19717 .34008 L
.20246 .35511 L
.2064 .36364 L
.21122 .37243 L
.22152 .38753 L
.23448 .40233 L
.24842 .4151 L
.28604 .44064 L
.32474 .45991 L
.36425 .47637 L
.46796 .51632 L
.5932 .56481 L
.62766 .57685 L
.66638 .58859 L
.68927 .59431 L
.71056 .59859 L
.73223 .60171 L
.75298 .60332 L
.77522 .60327 L
.78762 .60232 L
.7988 .60083 L
.82038 .59603 L
.84028 .58898 L
.85136 .58377 L
.86282 .57728 L
Mistroke
.88256 .56298 L
.90246 .54359 L
.92228 .51748 L
.93718 .49136 L
.94894 .46464 L
.95463 .44876 L
.96012 .43071 L
.96814 .39609 L
.97324 .36207 L
.97602 .32492 L
.97619 .29292 L
.97404 .25795 L
.96945 .22373 L
.96307 .19333 L
.95386 .16205 L
.94166 .1316 L
.92645 .10325 L
.91016 .08025 L
.89416 .06278 L
.87562 .04723 L
.85863 .03643 L
.83926 .02733 L
.81845 .02068 L
.79864 .01681 L
.77994 .01502 L
.7628 .01472 L
.74305 .01573 L
.72442 .01782 L
.70472 .02104 L
.68325 .02551 L
.64093 .03651 L
.56944 .05825 L
.49726 .0793 L
.46033 .08833 L
.42715 .09512 L
.37011 .10405 L
.31008 .11165 L
.28463 .11534 L
.26107 .11964 L
.23467 .1261 L
.21159 .1339 L
.18738 .14523 L
.16377 .16082 L
.14573 .17727 L
.1286 .19873 L
.12043 .21218 L
.11394 .22528 L
.10769 .24118 L
.10304 .2569 L
.09991 .27172 L
Mistroke
.098 .28562 L
.09734 .29364 L
.09702 .30088 L
.09697 .30918 L
.09725 .31692 L
.0984 .3298 L
.10057 .34313 L
.10348 .35513 L
.10683 .3655 L
.11154 .37685 L
.11755 .38811 L
.13055 .40538 L
.13786 .41235 L
.14645 .41876 L
.15589 .42403 L
.16035 .42596 L
.1651 .42768 L
.1739 .43 L
.18207 .43124 L
.19093 .43169 L
.19595 .43155 L
.20061 .43118 L
.20889 .42997 L
.21774 .42792 L
.22594 .42533 L
.23332 .42243 L
.24676 .41574 L
.26002 .40719 L
.28372 .38584 L
.29455 .37216 L
.3028 .3587 L
.30633 .35154 L
.30951 .34381 L
.31178 .33706 L
.31373 .32971 L
.31467 .32518 L
.31535 .32101 L
.31585 .31701 L
.31621 .3128 L
.31642 .30548 L
.31631 .30134 L
.31606 .29749 L
.31514 .28992 L
.31376 .28282 L
.31209 .27649 L
.30984 .2697 L
.30313 .25483 L
.29495 .24169 L
.27645 .22073 L
.26374 .21033 L
Mistroke
.2506 .2019 L
.24308 .19798 L
.23569 .19472 L
.2288 .19219 L
.22129 .18997 L
.21304 .18819 L
.20527 .18714 L
.20049 .18681 L
.19598 .18672 L
.18755 .18717 L
.17966 .18835 L
.1713 .19048 L
.16358 .19334 L
.15673 .19669 L
.149 .20152 L
.14103 .20791 L
.12799 .22247 L
.12235 .23104 L
.11687 .24147 L
.11206 .25334 L
.10846 .26526 L
.10595 .27693 L
.10439 .288 L
.10353 .30046 L
.1036 .31376 L
.1045 .32546 L
.10598 .33602 L
.10849 .34803 L
.11161 .3591 L
.11894 .37784 L
.12401 .38775 L
.12926 .3964 L
.14192 .41287 L
.15811 .42812 L
.16701 .43462 L
.17707 .44077 L
.1963 .44972 L
.20747 .4536 L
.21782 .4565 L
.22999 .4592 L
.24162 .46118 L
.25255 .46259 L
.26267 .46357 L
.27384 .46437 L
.28568 .46496 L
.29771 .46534 L
.30446 .46549 L
.31062 .4656 L
.33394 .4659 L
.347 .46608 L
Mistroke
.35439 .46623 L
.36123 .4664 L
.3738 .46683 L
.38016 .46711 L
.38718 .46749 L
.39899 .46827 L
.41148 .46933 L
.43405 .47192 L
.45882 .47578 L
.48665 .48137 L
.59226 .5106 L
.6228 .51958 L
.65734 .5288 L
.67366 .53257 L
.6912 .53606 L
.70637 .5385 L
.72321 .54046 L
.73965 .5415 L
.7547 .54156 L
.77204 .54041 L
.78836 .53794 L
.8032 .53433 L
.81671 .52973 L
.83117 .52319 L
.84602 .51441 L
.86254 .50162 L
.8767 .48741 L
.89091 .46912 L
.90412 .4469 L
.91398 .42525 L
.92163 .40342 L
.92818 .37794 L
.93098 .36312 L
.93295 .34938 L
.93518 .32343 L
.93553 .29934 L
.93405 .27316 L
.93257 .2602 L
.93038 .24621 L
.92544 .22364 L
.91844 .20085 L
.91033 .18105 L
.90174 .16456 L
.89063 .1477 L
.87909 .13395 L
.86783 .12329 L
.85527 .11392 L
.84091 .10585 L
.82724 .10033 L
.81219 .09631 L
Mistroke
.80354 .09485 L
.79542 .094 L
.78094 .0936 L
.76724 .09443 L
.75501 .09607 L
.74185 .0987 L
.72776 .10243 L
.71311 .10725 L
.68776 .11762 L
.63666 .14562 L
.59649 .17388 L
.56147 .20358 L
.53286 .23297 L
.51587 .25449 L
.50375 .27425 L
.49937 .28373 L
.49666 .29146 L
.49574 .2949 L
.49536 .29662 L
.49501 .2984 L
.49457 .30149 L
.49435 .30417 L
.4943 .30665 L
.49439 .30876 L
.49465 .31103 L
.49504 .31302 L
.49551 .31471 L
.49604 .31615 L
.4967 .31759 L
.4975 .31897 L
.49848 .3203 L
.49963 .32152 L
.50081 .32246 L
.50194 .32315 L
.503 .32364 L
.50419 .32401 L
.50546 .32422 L
.50664 .32425 L
.50796 .32411 L
.50862 .32396 L
.50933 .32375 L
.51058 .32322 L
.5117 .32257 L
.51296 .32159 L
.51404 .32051 L
.51512 .31911 L
.51613 .3174 L
.51685 .31582 L
.51749 .31396 L
.51796 .31204 L
Mistroke
.51827 .31015 L
.51848 .30777 L
.51851 .30634 L
.51849 .30498 L
.51832 .30234 L
.51793 .29938 L
.51739 .29658 L
.51673 .2939 L
.51462 .28744 L
.51186 .28093 L
.50845 .27429 L
.49777 .25784 L
.48078 .23743 L
.43207 .19295 L
.3479 .13631 L
.29286 .10916 L
.27643 .10271 L
.25857 .09667 L
.24274 .09226 L
.23391 .09021 L
.22549 .08855 L
.20891 .08617 L
.19372 .08515 L
.17944 .0853 L
.16401 .08684 L
.15597 .08826 L
.1472 .09035 L
.13813 .09316 L
.12977 .09637 L
.11518 .10364 L
.10014 .11369 L
.08586 .12626 L
.07383 .13977 L
.0612 .15785 L
.05072 .17718 L
.04237 .19695 L
.03596 .2165 L
.03041 .23923 L
.02634 .26432 L
.02416 .29041 L
.02381 .30518 L
.02403 .31865 L
.02595 .34457 L
.02953 .36847 L
.03229 .38154 L
.03579 .39501 L
.04347 .41794 L
.0536 .4405 L
.06681 .46249 L
.07879 .47781 L
Mistroke
.09252 .49158 L
.105 .50143 L
.11933 .51025 L
.13544 .51759 L
.14468 .52076 L
.15318 .52309 L
.1612 .52482 L
.16995 .52624 L
.18593 .52767 L
.20087 .52783 L
.21726 .52686 L
.22548 .52598 L
.23426 .52478 L
.24999 .52201 L
.27979 .51496 L
.30606 .50728 L
.40373 .47409 L
.45045 .46018 L
.47204 .45509 L
.49129 .45146 L
.50207 .44985 L
.51375 .44843 L
.52539 .44738 L
.53171 .44696 L
.53758 .44665 L
.54802 .44632 L
.55751 .44624 L
.56276 .44628 L
.56846 .44639 L
.57884 .44674 L
.58854 .44724 L
.59928 .44794 L
.62118 .4497 L
.64181 .45152 L
.66121 .45308 L
.67138 .45374 L
.68227 .45426 L
.68851 .45446 L
.69439 .45456 L
.70539 .45449 L
.71591 .45408 L
.72556 .45334 L
.73607 .45207 L
.74707 .45016 L
.75614 .44805 L
.76569 .44525 L
.78238 .43859 L
.79211 .43346 L
.80096 .42781 L
.81634 .41513 L
Mistroke
.83093 .3983 L
.83732 .38867 L
.84353 .37726 L
.84805 .367 L
.85213 .35545 L
.85518 .34419 L
.85728 .33365 L
.85888 .32111 L
.85952 .30943 L
.85951 .30276 L
.85928 .29676 L
.85874 .28991 L
.85796 .28355 L
.85696 .27749 L
.85565 .27121 L
.85267 .26042 L
.8486 .24957 L
.84316 .23868 L
.83783 .23039 L
.83237 .22354 L
.8253 .21649 L
.81843 .21116 L
.81154 .20702 L
.80481 .20394 L
.79751 .20156 L
.79334 .20059 L
.78948 .19993 L
.78264 .19931 L
.77625 .1993 L
.76926 .19989 L
.76184 .20119 L
.75417 .20322 L
.74708 .20574 L
.73433 .2118 L
.72123 .22027 L
.7088 .23082 L
.69954 .24076 L
.69089 .25242 L
.68354 .26542 L
.68031 .27286 L
.67792 .27969 L
.67626 .28571 L
.67494 .29225 L
.67446 .29553 L
.6741 .29901 L
.67379 .30522 L
.67389 .3103 L
.67437 .31579 L
.67526 .32139 L
.67644 .3265 L
Mistroke
.67786 .33115 L
.6794 .33527 L
.68371 .34407 L
.68952 .35266 L
.6971 .36088 L
.70531 .36736 L
.70924 .3698 L
.71365 .3721 L
.71785 .3739 L
.72179 .37527 L
.72563 .37631 L
.72972 .3771 L
.73427 .37761 L
.73852 .37774 L
.74317 .37747 L
.74812 .3767 L
.75285 .37547 L
.75786 .37359 L
.76245 .37128 L
.76652 .36869 L
.77373 .3626 L
.77707 .35895 L
.78047 .35449 L
Mfstroke
% End of Graphics
MathPictureEnd
\
\>"], "Graphics",
  ImageSize->{288, 177.938},
  ImageMargins->{{43, 0}, {0, 0}},
  ImageRegion->{{0, 1}, {0, 1}},
  ImageCache->GraphicsData["Bitmap", "\<\
CF5dJ6E]HGAYHf4PAg9QL6QYHg<PAVmbKF5d0`40004P0000/A000`40O003h00Oogoo8Goo002;Ool0
0`00Oomoo`2BOol008]oo`03001oogoo099oo`00Rgoo00<007ooOol0TWoo002;Ool00`00Oomoo`2B
Ool008]oo`03001oogoo04IooaD003Moo`00Rgoo0P00@Woo1@005Goo1000<goo002;Ool00`00Oomo
o`0kOol6000NOol3000`Ool008]oo`03001oogoo03Ioo`D002Moo`8002ioo`00Rgoo00<007ooOol0
<Woo1000;Woo0P00;7oo002;Ool00`00Oomoo`0^Ool4000dOol2000ZOol008]oo`03001oogoo02Yo
o`@003Yoo`8002Qoo`00Rgoo00<007ooOol09goo0`00@7oo00<007ooOol09Goo002;Ool00`00Oomo
o`0SOol40014Ool2000UOol008]oo`80025oo`<004Yoo`03001oogoo029oo`00Rgoo00<007ooOol0
7Goo0`00CWoo0P008Woo002;Ool00`00Oomoo`0IOol4001COol00`00Oomoo`0OOol008]oo`03001o
ogoo01Ioo`<005Qoo`8001moo`00Rgoo00<007ooOol04Woo1000GGoo00<007ooOol077oo002;Ool0
0`00Oomoo`0?Ool3001ROol00`00Oomoo`0KOol008Aoo`<000Aoo`03001oogoo00]oo`@006Ioo`03
001oogoo01Yoo`00QGoo00<007ooOol00goo00<007ooOol027oo0`00JWoo00<007ooOol06Woo0022
Ool50004Ool30004Ool4001^Ool00`00Oomoo`0IOol007aoo`@0009oo`04001oogoo0005Ool01000
Oomoogoo0`00Lgoo00<007ooOol067oo0023Ool00`00Ool00005Ool4001gOol00`00Oomoo`0GOol0
039oo`l004=oo`80009oo`@007Yoo`03001oogoo01Moo`00;Goo1@003goo1P00?Goo10000goo00<0
07ooOol0NGoo00<007ooOol05Woo000ZOol3000JOol4000dOol50007Ool00`00Oomoo`1>Ool<000P
Ool00`00Oomoo`0EOol002Qoo`80025oo`@002Yoo`H000aoo`03001oogoo04Yoo`@000aoo`@001eo
o`03001oogoo01Aoo`009Woo0P0067oo1`0027oo0P0087oo20004Woo00<007ooOol0AWoo100057oo
0`006Woo00<007ooOol057oo000TOol2000AOol90007Ool=000DOol9000JOol20013Ool4000KOol2
000IOol00`00Oomoo`0COol002=oo`03001oogoo00ioo`<001aoo`H000Moo`P002=oo`03001oogoo
03ioo`@0025oo`8001Moo`03001oogoo01=oo`008Goo0P003Goo10008goo2@00:goo00<007ooOol0
?7oo0P009goo0P005Woo00<007ooOol04Woo000POol00`00Oomoo`0;Ool2000QOol700000goo0000
0004Ool4000XOol00`00Oomoo`0jOol2000[Ool2000DOol00`00Oomoo`0BOol001moo`03001oogoo
00Yoo`8001ioo`D000Yoo`8000Ioo`D002=oo`03001oogoo03Qooa<001ioo`8001=oo`03001oogoo
015oo`007Goo0P002goo0P0077oo10004Goo0P002Goo10007goo00<007ooOol0;goo2@004goo1000
77oo00<007ooOol047oo00<007ooOol04Goo000LOol00`00Oomoo`09Ool2000KOol3000GOol2000;
Ool5000JOol00`00Oomoo`0YOol60005Ool2000IOol4000IOol00`00Oomoo`0@Ool00`00Oomoo`0@
Ool001]oo`03001oogoo00Uoo`03001oogoo01Moo`@001aoo`8000ioo`H001Aoo`03001oogoo02=o
o`H000Uoo`8001moo`<001Moo`03001oogoo00moo`03001oogoo011oo`006Woo00<007ooOol02Goo
00<007ooOol05Woo0P008Woo0P004Woo200037oo00<007ooOol077oo1`003Woo00<007ooOol08Woo
0`005Goo00<007ooOol03goo00<007ooOol03goo000IOol00`00Oomoo`09Ool00`00Oomoo`0EOol2
000VOol2000HOol60006Ool2000DOol9000COol2000XOol2000DOol00`00Oomoo`0>Ool00`00Oomo
o`0?Ool001Qoo`03001oogoo00Qoo`8001Moo`03001oogoo02Qoo`8001aooa`001Yoo`8002aoo`80
01=oo`03001oogoo00ioo`03001oogoo00ioo`005goo00<007ooOol027oo00<007ooOol05Goo0P00
;Goo00<007ooOol07goo00<007ooOol0:goo0P00<7oo0P004Woo00<007ooOol03Goo00<007ooOol0
3Woo000GOol00`00Oomoo`07Ool00`00Oomoo`0EOol00`00Oomoo`0^Ool2000OOol00`00Oomoo`0Z
Ool00`00Oomoo`0bOol00`00Oomoo`0@Ool00`00Oomoo`0<Ool00`00Oomoo`0>Ool001Ioo`03001o
ogoo00Moo`03001oogoo01Aoo`8003=oo`03001oogoo01aoo`03001oogoo02Qoo`8003Ioo`03001o
ogoo011oo`03001oogoo00aoo`03001oogoo00eoo`005Woo00<007ooOol01Woo00<007ooOol04goo
0P00=Woo0P0077oo00<007ooOol09goo00<007ooOol0=goo00<007ooOol03goo00<007ooOol037oo
00<007ooOol03Goo000EOol00`00Oomoo`06Ool00`00Oomoo`0BOol2000jOol00`00Oomoo`0IOol0
0`00Oomoo`0UOol2000kOol00`00Oomoo`0?Ool00`00Oomoo`0<Ool00`00Oomoo`0<Ool001Aoo`03
001oogoo00Ioo`03001oogoo019oo`03001oogoo03]oo`8001Uoo`03001oogoo02Aoo`03001oogoo
03aoo`03001oogoo00ioo`03001oogoo00aoo`03001oogoo00aoo`0057oo00<007ooOol01Woo00<0
07ooOol04Goo00<007ooOol0?Woo00<007ooOol05Woo0P008goo0P00@7oo00<007ooOol03Woo00<0
07ooOol02goo00<007ooOol037oo000COol00`00Oomoo`06Ool00`00Oomoo`0AOol00`00Oomoo`10
Ool2000FOol00`00Oomoo`0QOol00`00Oomoo`11Ool00`00Oomoo`0=Ool00`00Oomoo`0<Ool00`00
Oomoo`0;Ool001=oo`03001oogoo00Ioo`03001oogoo011oo`03001oogoo04=oo`03001oogoo01=o
o`03001oogoo01moo`8004Aoo`03001oogoo00ioo`03001oogoo00]oo`03001oogoo00]oo`004Woo
00<007ooOol01Woo00<007ooOol047oo00<007ooOol0AGoo0P004goo00<007ooOol07Woo00<007oo
Ool0AGoo00<007ooOol03Goo00<007ooOol02goo00<007ooOol02goo000BOol00`00Oomoo`05Ool0
0`00Oomoo`0@Ool00`00Oomoo`18Ool00`00Oomoo`0@Ool00`00Oomoo`0MOol00`00Oomoo`17Ool0
0`00Oomoo`0=Ool00`00Oomoo`0;Ool00`00Oomoo`0:Ool0019oo`03001oogoo00Eoo`03001oogoo
00moo`03001oogoo04Yoo`80011oo`03001oogoo01]oo`8004]oo`03001oogoo00aoo`03001oogoo
00]oo`03001oogoo00Yoo`004Goo00<007ooOol01Goo00<007ooOol03goo00<007ooOol03Goo0P00
?Woo00<007ooOol017oo10001Goo00<007ooOol06Woo00<007ooOol0Bgoo00<007ooOol037oo00<0
07ooOol02goo00<007ooOol02Woo000AOol00`00Oomoo`04Ool00`00Oomoo`0?Ool00`00Oomoo`07
Ool70002Ool6000iOol20004Ool00`00Oomoo`06Ool00`00Oomoo`0IOol00`00Oomoo`1=Ool00`00
Oomoo`0<Ool00`00Oomoo`0;Ool00`00Oomoo`09Ool0011oo`03001oogoo00Eoo`03001oogoo00mo
o`03001oogoo00Eoo`8000moo`8003Uoo`03001oogoo009oo`03001oogoo00Eoo`<001Qoo`03001o
ogoo04moo`03001oogoo00]oo`03001oogoo00]oo`03001oogoo00Uoo`0047oo00<007ooOol017oo
00<007ooOol03goo00<007ooOol017oo0P004goo0P00=Goo100017oo00<007ooOol017oo00<007oo
Ool05Woo0P00Dgoo00<007ooOol02goo00<007ooOol02Woo00<007ooOol02Goo000@Ool00`00Oomo
o`04Ool00`00Oomoo`0>Ool00`00Oomoo`04Ool00`00Oomoo`0EOol2000gOol00`00Ool00002Ool0
0`00Oomoo`03Ool00`00Oomoo`0EOol00`00Oomoo`0gOol8000DOol00`00Oomoo`0;Ool00`00Oomo
o`0:Ool00`00Oomoo`09Ool000moo`03001oogoo00Aoo`03001oogoo00ioo`03001oogoo00=oo`80
01Yoo`8003Ioo`04001oo`000006Ool00`00Oomoo`0DOol00`00Oomoo`0dOol40008Ool3000BOol0
0`00Oomoo`0:Ool00`00Oomoo`0;Ool00`00Oomoo`08Ool000moo`03001oogoo00Aoo`03001oogoo
00ioo`04001oogooOol2000NOol2000eOol00`00Oomoo`06Ool00`00Oomoo`0COol00`00Oomoo`0c
Ool2000?Ool2000AOol00`00Oomoo`0:Ool00`00Oomoo`0:Ool00`00Oomoo`08Ool000moo`03001o
ogoo00=oo`03001oogoo00ioo`05001oogooOol0000ROol2000dOol00`00Oomoo`05Ool00`00Oomo
o`0BOol00`00Oomoo`0bOol2000COol2000?Ool00`00Oomoo`0:Ool00`00Oomoo`0:Ool00`00Oomo
o`08Ool000ioo`03001oogoo00Aoo`03001oogoo00ioo`05001oogooOol0000TOol00`00Oomoo`0b
Ool00`00Oomoo`04Ool00`00Oomoo`0AOol00`00Oomoo`0aOol2000GOol00`00Oomoo`0<Ool00`00
Oomoo`0:Ool00`00Oomoo`0:Ool00`00Oomoo`08Ool000ioo`03001oogoo00Aoo`03001oogoo00eo
o`05001oogooOol0000UOol6000`Ool20004Ool00`00Oomoo`0@Ool00`00Oomoo`0`Ool2000JOol0
0`00Oomoo`0<Ool00`00Oomoo`09Ool00`00Oomoo`0;Ool00`00Oomoo`07Ool000ioo`03001oogoo
00Aoo`03001oogoo00eoo`05001oogooOol0000POol50003Ool00`00Oomoo`03000_Ool01000Oomo
ogoo0P004Goo00<007ooOol0;goo00<007ooOol06goo00<007ooOol02goo00<007ooOol02Woo00<0
07ooOol02Woo00<007ooOol01goo000=Ool00`00Oomoo`04Ool00`00Oomoo`0=Ool01@00Oomoogoo
00007Woo0`002Goo00<007ooOol00Woo1000;7oo00@007ooOol0015oo`03001oogoo02moo`03001o
ogoo01eoo`03001oogoo00Yoo`03001oogoo00Yoo`03001oogoo00Yoo`03001oogoo00Moo`003Goo
00<007ooOol017oo00<007ooOol03Goo00@007ooOol001eoo`8000eoo`03001oogoo00Eoo`8002]o
o`03001oo`00011oo`03001oogoo02ioo`80025oo`03001oogoo00Uoo`03001oogoo00Yoo`03001o
ogoo00Yoo`03001oogoo00Moo`003Goo00<007ooOol017oo00<007ooOol037oo00@007ooOol001eo
o`03001oogoo00eoo`03001oogoo00Moo`8002Yoo`8000moo`03001oogoo02ioo`03001oogoo029o
o`03001oogoo00Uoo`03001oogoo00Yoo`03001oogoo00Uoo`03001oogoo00Moo`0037oo00<007oo
Ool01Goo00<007ooOol037oo00@007ooOol001aoo`03001oogoo00moo`03001oogoo00Qoo`03001o
ogoo02Qoo`03001oogoo00aoo`03001oogoo02ioo`03001oogoo02=oo`03001oogoo00Uoo`03001o
ogoo00Yoo`03001oogoo00Uoo`03001oogoo00Moo`0037oo00<007ooOol017oo00<007ooOol037oo
00@007ooOol001aoo`03001oogoo015oo`03001oogoo00Qoo`8002Qoo`8000aoo`03001oogoo02io
o`03001oogoo02Eoo`03001oogoo00Uoo`03001oogoo00Uoo`03001oogoo00Uoo`03001oogoo00Mo
o`0037oo00<007ooOol017oo00<007ooOol037oo00@007ooOol001]oo`03001oogoo01=oo`03001o
ogoo00Uoo`03001oogoo02Eoo`03001oo`0000]oo`03001oogoo02eoo`03001oogoo02Moo`03001o
ogoo00Qoo`03001oogoo00Yoo`03001oogoo00Qoo`03001oogoo00Moo`0037oo00<007ooOol00goo
00<007ooOol03Goo00<007oo00006goo00<007ooOol057oo00<007ooOol02Woo00<007ooOol097oo
00<007oo00002Woo00<007ooOol0;Goo00<007ooOol0:7oo00<007ooOol027oo00<007ooOol02Woo
00<007ooOol02Goo00<007ooOol01Woo000<Ool00`00Oomoo`03Ool00`00Oomoo`0<Ool01000Oomo
o`006Woo00<007ooOol05Woo00<007ooOol02Woo00<007ooOol08goo0P0000=oo`00Ool01goo00<0
07ooOol0;Woo00<007ooOol0:Goo00<007ooOol027oo00<007ooOol02Goo00<007ooOol02Goo00<0
07ooOol01Woo000;Ool00`00Oomoo`04Ool00`00Oomoo`0<Ool00`00Ool0000JOol00`00Oomoo`0G
Ool00`00Oomoo`0;Ool00`00Oomoo`0ROol01@00Oomoogoo00001goo00<007ooOol0;Goo00<007oo
Ool0:Woo00<007ooOol027oo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol01Woo000;Ool0
0`00Oomoo`04Ool00`00Oomoo`0<Ool00`00Ool0000JOol00`00Oomoo`0HOol00`00Oomoo`0;Ool0
0`00Oomoo`0QOol01@00Oomoogoo00001Woo00<007ooOol0;Goo00<007ooOol0;7oo00<007ooOol0
1goo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol01Woo000;Ool00`00Oomoo`03Ool00`00
Oomoo`0=Ool2000JOol00`00Oomoo`0IOol00`00Oomoo`0<Ool00`00Oomoo`0POol00`00Oomoo`02
Ool00`00Oomoo`02Ool00`00Oomoo`0^Ool00`00Oomoo`0/Ool00`00Oomoo`07Ool00`00Oomoo`09
Ool00`00Oomoo`09Ool00`00Oomoo`06Ool000]oo`03001oogoo00=oo`03001oogoo00aoo`03001o
o`0001Yoo`03001oogoo01Yoo`03001oogoo00]oo`03001oogoo021oo`03001oogoo00=oo`04001o
ogoo000`Ool00`00Oomoo`0]Ool00`00Oomoo`07Ool00`00Oomoo`09Ool00`00Oomoo`09Ool00`00
Oomoo`06Ool000Qoo`800003Ool007oo00Aoo`03001oogoo00aoo`03001oo`00011oo`@000Eoo`03
001oogoo01]oo`03001oogoo009oo`D000Eoo`03001oogoo01moo`03001oogoo00=oo`04001oogoo
000POol5000;Ool00`00Oomoo`0JOol4000@Ool00`00Oomoo`07Ool00`00Oomoo`08Ool01000Oomo
ogoo0P001Woo00<007ooOol01Woo0007Ool00`00Oomoo`020005Ool00`00Oomoo`0<Ool00`00Ool0
000@Ool00`00Oomoo`06Ool00`00Oomoo`0LOol00`00Oomoo`03Ool00`00Oomoo`05Ool00`00Oomo
o`0OOol00`00Oomoo`04Ool2000SOol00`00Oomoo`0:Ool00`00Oomoo`0KOol00`00Oomoo`0AOol0
0`00Oomoo`07Ool00`00Oomoo`09Ool00`00Ool00002Ool00`00Oomoo`03Ool00`00Oomoo`06Ool0
00Uoo`03001oo`0000Eoo`03001oogoo00aoo`03001oo`00015oo`03001oogoo00Aoo`03001oogoo
01eoo`03001oogoo00=oo`03001oogoo00Ioo`03001oogoo01ioo`03001oogoo00Aoo`8002=oo`03
001oogoo00Yoo`03001oogoo01aoo`03001oogoo011oo`03001oogoo00Moo`03001oogoo00Uoo`05
001oogooOol00006Ool00`00Oomoo`06Ool00003Ool00000008000Eoo`03001oogoo00Aoo`03001o
ogoo00]oo`04001oogoo000:Ool40004Ool00`00Oomoo`03Ool00`00Oomoo`0KOol40004Ool00`00
Oomoo`06Ool00`00Oomoo`0NOol20005Ool2000SOol00`00Oomoo`09Ool00`00Oomoo`0NOol00`00
Oomoo`0?Ool00`00Oomoo`07Ool00`00Oomoo`09Ool00`00Oomoo`02Ool00`00Oomoo`04Ool00`00
Oomoo`05Ool000Moo`04001oogoo0006Ool00`00Oomoo`0;Ool01000Oomoo`0047oo00@007ooOol0
00Aoo`03001oogoo01ioo`03001oogoo009oo`03001oogoo00Ioo`03001oogoo01ioo`03001oogoo
00=oo`04001oogoo000ROol00`00Oomoo`09Ool00`00Oomoo`0LOol01000Oomoo`0047oo00<007oo
Ool01goo00<007ooOol02Goo00<007oo00000Woo00<007ooOol017oo00<007ooOol01Goo0008Ool3
0006Ool00`00Oomoo`0;Ool00`00Ool0000BOol20005Ool00`00Oomoo`0NOol01000Oomoogoo0P00
2Goo00<007ooOol07Goo00<007ooOol00goo00@007ooOol0025oo`8000]oo`03001oogoo01eoo`80
015oo`03001oogoo00Moo`03001oogoo00Uoo`03001oogoo008000Moo`03001oogoo00Eoo`002Woo
00<007ooOol017oo00<007ooOol02goo00<007oo000067oo00<007ooOol07goo00<007ooOol037oo
00<007ooOol07Goo00<007ooOol00Woo00<007ooOol00Woo00<007ooOol0:goo00<007ooOol0<7oo
00<007ooOol01goo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol01Goo000:Ool00`00Oomo
o`04Ool00`00Oomoo`0;Ool00`00Ool0000HOol00`00Oomoo`0POol00`00Oomoo`0<Ool00`00Oomo
o`0LOol00`00Oomoo`02Ool00`00Oomoo`02Ool00`00Oomoo`0[Ool00`00Oomoo`0aOol00`00Oomo
o`06Ool00`00Oomoo`09Ool00`00Oomoo`09Ool00`00Oomoo`05Ool000Yoo`03001oogoo00Aoo`03
001oogoo00]oo`03001oo`0001Qoo`03001oogoo021oo`03001oogoo00aoo`03001oogoo01aoo`03
001oogoo009oo`03001oogoo00=oo`03001oogoo02Uoo`03001oogoo039oo`03001oogoo00Ioo`03
001oogoo00Uoo`03001oogoo00Uoo`03001oogoo00Eoo`002Woo00<007ooOol017oo00<007ooOol0
2goo00<007oo000067oo00<007ooOol087oo00<007ooOol037oo00<007ooOol077oo00<007ooOol0
0Woo00<007ooOol00goo00<007ooOol0:Goo00<007ooOol0<Woo00<007ooOol01Woo00<007ooOol0
2Goo00<007ooOol02Goo00<007ooOol01Goo000:Ool00`00Oomoo`04Ool00`00Oomoo`0;Ool00`00
Ool0000HOol00`00Oomoo`0POol00`00Oomoo`0<Ool00`00Oomoo`0LOol01@00Oomoogoo00001Woo
00<007ooOol0:Goo00<007ooOol0<Woo00<007ooOol01Woo00<007ooOol02Goo00<007ooOol02Goo
00<007ooOol01Goo0004Oooo000M000000Ioo`05001oogooOol00003Ool01000Oomoo`001Goo00<0
07ooOol01Goo0`001goo00<007ooOol01Woo00<007ooOol01Goo0P0027oo00<007ooOol01Woo00<0
07ooOol01Goo00<007ooOol01Goo0P0027oo00<007ooOol00Woo00D007ooOomoo`0000Qoo`03001o
ogoo00Ioo`03001oogoo00Ioo`05001oogooOol00004Ool00`00Ool00006Ool00`00Oomoo`05Ool0
0`00Oomoo`06Ool00`00Oomoo`06Ool00`00Oomoo`06Ool00`00Ool00006Ool00`00Oomoo`06Ool0
0`00Oomoo`06Ool00`00Oomoo`06Ool00`00Oomoo`05Ool00`00Oomoo`06Ool00`00Ool00006Ool0
0`00Ool00006Ool00`00Oomoo`02Ool01@00Oomoogoo00001goo0P001Woo0006Ool01@00Oomoogoo
00001Woo00<007ooOol02goo00<007oo000047oo00<007ooOol01Goo00<007ooOol087oo0P003Goo
00<007ooOol077oo00<007ooOol00Woo00<007ooOol00goo00<007ooOol07Woo00<007ooOol027oo
00<007ooOol07goo00<007ooOol047oo00<007ooOol01Woo00<007ooOol02Goo00D007ooOomoo`00
00Moo`03001oogoo00Eoo`002Woo00<007ooOol017oo00<007ooOol02goo00<007oo000067oo00<0
07ooOol087oo00<007ooOol037oo00<007ooOol077oo00<007ooOol00Woo00<007ooOol00goo00<0
07ooOol0:Goo00<007ooOol0<Woo00<007ooOol01Woo00<007ooOol02Goo00<007ooOol02Goo00<0
07ooOol01Goo000:Ool00`00Oomoo`04Ool00`00Oomoo`0;Ool00`00Ool0000HOol00`00Oomoo`0P
Ool00`00Oomoo`0<Ool00`00Oomoo`0LOol00`00Oomoo`02Ool20003Ool00`00Oomoo`0ZOol00`00
Oomoo`0bOol00`00Oomoo`06Ool00`00Oomoo`09Ool00`00Oomoo`09Ool00`00Oomoo`05Ool000Yo
o`03001oogoo00Aoo`03001oogoo00]oo`03001oo`0001Qoo`03001oogoo021oo`03001oogoo00ao
o`03001oogoo01aoo`03001oogoo00=oo`D002eoo`03001oogoo035oo`03001oogoo00Ioo`03001o
ogoo00Uoo`03001oogoo00Uoo`03001oogoo00Eoo`002Woo00<007ooOol017oo00<007ooOol02goo
00<007oo000067oo00<007ooOol087oo00<007ooOol02goo00<007ooOol07Goo00<007ooOol0=Goo
00<007ooOol0<7oo00<007ooOol01goo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol01Goo
000:Ool00`00Oomoo`04Ool00`00Oomoo`0;Ool00`00Ool0000IOol00`00Oomoo`0NOol00`00Oomo
o`0<Ool00`00Oomoo`0MOol00`00Oomoo`0eOol00`00Oomoo`0`Ool00`00Oomoo`07Ool00`00Oomo
o`09Ool00`00Oomoo`09Ool00`00Oomoo`05Ool000]oo`03001oogoo00=oo`03001oogoo00]oo`04
001oogoo000HOol00`00Oomoo`0NOol00`00Oomoo`0;Ool00`00Oomoo`0NOol2000gOol00`00Oomo
o`0_Ool00`00Oomoo`07Ool00`00Oomoo`09Ool00`00Oomoo`09Ool00`00Oomoo`05Ool000]oo`03
001oogoo00=oo`03001oogoo00]oo`04001oogoo000HOol00`00Oomoo`0NOol00`00Oomoo`0;Ool0
0`00Oomoo`0NOol00`00Oomoo`0fOol00`00Oomoo`0_Ool00`00Oomoo`07Ool00`00Oomoo`09Ool0
0`00Oomoo`09Ool00`00Oomoo`05Ool000]oo`03001oogoo00Aoo`03001oogoo00]oo`03001oo`00
01Qoo`03001oogoo01eoo`03001oogoo00aoo`03001oogoo01ioo`03001oogoo03Moo`03001oogoo
02ioo`03001oogoo00Moo`03001oogoo00Uoo`03001oogoo00Uoo`03001oogoo00Eoo`002goo00<0
07ooOol017oo00<007ooOol02goo00<007oo000067oo00<007ooOol07Goo00<007ooOol037oo00<0
07ooOol07Woo00<007ooOol0=goo00<007ooOol0;Woo00<007ooOol01goo00<007ooOol02Goo00<0
07ooOol027oo00<007ooOol01Woo000;Ool00`00Oomoo`04Ool00`00Oomoo`0;Ool00`00Ool0000I
Ool00`00Oomoo`0KOol00`00Oomoo`0=Ool00`00Oomoo`0NOol00`00Oomoo`0hOol00`00Oomoo`0]
Ool00`00Oomoo`07Ool00`00Oomoo`09Ool00`00Oomoo`08Ool00`00Oomoo`06Ool000]oo`03001o
ogoo00Aoo`03001oogoo00aoo`8001Uoo`03001oogoo01]oo`03001oogoo00aoo`03001oogoo01mo
o`03001oogoo03Uoo`03001oogoo02]oo`03001oogoo00Moo`03001oogoo00Yoo`03001oogoo00Qo
o`03001oogoo00Ioo`002goo00<007ooOol017oo00<007ooOol037oo00<007oo00006Goo00<007oo
Ool06Goo00<007ooOol03Goo00<007ooOol07goo00<007ooOol0>Woo00<007ooOol05Goo00<007oo
Ool04Woo00<007ooOol01goo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol01Woo000<Ool0
0`00Oomoo`03Ool00`00Oomoo`0<Ool00`00Ool0000IOol00`00Oomoo`0IOol00`00Oomoo`0<Ool0
0`00Oomoo`0POol00`00Oomoo`0jOol00`00Oomoo`0DOol00`00Oomoo`0COol00`00Oomoo`07Ool0
0`00Oomoo`09Ool00`00Oomoo`09Ool00`00Oomoo`06Ool000aoo`03001oogoo00=oo`03001oogoo
00eoo`8001Yoo`03001oogoo01Moo`03001oogoo00eoo`03001oogoo021oo`8003aoo`03001oogoo
019oo`03001oogoo01=oo`03001oogoo00Qoo`03001oogoo00Uoo`03001oogoo00Uoo`03001oogoo
00Ioo`0037oo00<007ooOol00goo00<007ooOol03Goo00<007oo00006Goo00<007ooOol05goo00<0
07ooOol037oo00<007ooOol08Goo00<007ooOol0?7oo00<007ooOol047oo00<007ooOol057oo00<0
07ooOol027oo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol01Woo000<Ool00`00Oomoo`03
Ool00`00Oomoo`0=Ool00`00Ool0000JOol00`00Oomoo`0EOol00`00Oomoo`0<Ool00`00Oomoo`0R
Ool00`00Oomoo`0mOol2000?Ool00`00Oomoo`0DOol00`00Oomoo`08Ool00`00Oomoo`0:Ool00`00
Oomoo`09Ool00`00Oomoo`06Ool000aoo`03001oogoo00Aoo`03001oogoo00eoo`8001Yoo`03001o
ogoo01Eoo`03001oogoo00aoo`03001oogoo029oo`03001oogoo03moo`<000Yoo`8001Moo`03001o
ogoo00Qoo`03001oogoo00Uoo`03001oogoo00Uoo`03001oogoo00Moo`0037oo00<007ooOol017oo
00<007ooOol03Goo00<007oo00006Woo00<007ooOol04goo00<007ooOol037oo00<007ooOol08goo
00<007ooOol0@Woo2P0067oo00<007ooOol02Goo00<007ooOol02Goo00<007ooOol02Goo00<007oo
Ool01goo000=Ool00`00Oomoo`03Ool00`00Oomoo`0>Ool2000JOol00`00Oomoo`0BOol00`00Oomo
o`0<Ool00`00Oomoo`0TOol00`00Oomoo`1SOol00`00Oomoo`09Ool00`00Oomoo`0:Ool00`00Oomo
o`09Ool00`00Oomoo`07Ool000eoo`03001oogoo00Aoo`03001oogoo00eoo`03001oo`0001Yoo`03
001oogoo015oo`03001oogoo00]oo`03001oogoo02Eoo`03001oogoo06=oo`03001oogoo00Uoo`03
001oogoo00Yoo`03001oogoo00Uoo`03001oogoo00Moo`003Goo00<007ooOol017oo00<007ooOol0
3Woo00<007oo00006Woo00<007ooOol03goo00<007ooOol037oo00<007ooOol09Goo00<007ooOol0
HWoo00<007ooOol02Goo00<007ooOol02Woo00<007ooOol02Woo00<007ooOol01goo000>Ool00`00
Oomoo`04Ool00`00Oomoo`0>Ool2000KOol00`00Oomoo`0=Ool00`00Oomoo`0<Ool00`00Oomoo`0V
Ool00`00Oomoo`1ROol00`00Oomoo`09Ool00`00Oomoo`0:Ool00`00Oomoo`09Ool00`00Oomoo`08
Ool000ioo`03001oogoo00Aoo`03001oogoo00ioo`03001oo`0001]oo`03001oogoo00]oo`03001o
ogoo00aoo`03001oogoo02Moo`80069oo`03001oogoo00Uoo`03001oogoo00]oo`03001oogoo00Uo
o`03001oogoo00Qoo`003Woo00<007ooOol017oo00<007ooOol03goo0P0077oo00<007ooOol027oo
0P003Woo00<007ooOol0:7oo00<007ooOol0HGoo00<007ooOol02Goo00<007ooOol02goo00<007oo
Ool02Goo00<007ooOol027oo000?Ool00`00Oomoo`04Ool00`00Oomoo`0>Ool00`00Ool0000LOol0
0`00Oomoo`06Ool00`00Oomoo`0=Ool00`00Oomoo`0YOol00`00Oomoo`1POol00`00Oomoo`09Ool0
0`00Oomoo`0;Ool00`00Oomoo`0:Ool00`00Oomoo`08Ool000moo`03001oogoo00Aoo`03001oogoo
00moo`03001oo`0001aoo`03001oogoo00Aoo`03001oogoo00eoo`03001oogoo02Yoo`03001oogoo
05moo`03001oogoo00Yoo`03001oogoo00]oo`03001oogoo00Yoo`03001oogoo00Qoo`003goo00<0
07ooOol01Goo00<007ooOol03goo0`0077oo00<007ooOol00Woo00<007ooOol03Woo00<007ooOol0
:Woo00<007ooOol0Ggoo00<007ooOol02Goo00<007ooOol037oo00<007ooOol02Goo00<007ooOol0
2Goo000?Ool00`00Oomoo`05Ool00`00Oomoo`0AOol2000LOol01000Ool0000047oo00<007ooOol0
:goo00<007ooOol0GWoo00<007ooOol02Woo00<007ooOol02goo00<007ooOol02Woo00<007ooOol0
2Goo000@Ool00`00Oomoo`05Ool00`00Oomoo`0AOol2000KOol2000AOol00`00Oomoo`0SOol40005
Ool00`00Oomoo`1MOol00`00Oomoo`0:Ool00`00Oomoo`0<Ool00`00Oomoo`0:Ool00`00Oomoo`09
Ool0011oo`03001oogoo00Eoo`03001oogoo019oo`8001Qoo`80009oo`8000ioo`03001oogoo02Ao
o`03001oogoo00Ioo`03001oogoo05aoo`03001oogoo00]oo`03001oogoo00aoo`03001oogoo00Yo
o`03001oogoo00Uoo`0047oo00<007ooOol01Woo00<007ooOol04Woo0P005Goo0P001Woo00<007oo
Ool02Goo0P00:7oo00<007ooOol01Goo0`00:Goo00<007ooOol0;Woo0P003Goo00<007ooOol037oo
00<007ooOol02Woo00<007ooOol02Woo000AOol00`00Oomoo`05Ool00`00Oomoo`0COol3000AOol2
0009Ool00`00Oomoo`07Ool00`00Oomoo`0YOol00`00Oomoo`04Ool00`00Oomoo`0ZOol2000]Ool0
0`00Oomoo`0=Ool00`00Oomoo`0<Ool00`00Oomoo`0:Ool00`00Oomoo`0:Ool0015oo`03001oogoo
00Ioo`03001oogoo01=oo`03001oo`0000<000Qoo`D000aoo`8000Ioo`03001oogoo02Qoo`04001o
ogoo0005Ool00`00Oomoo`0/Ool2000ZOol00`00Oomoo`0=Ool00`00Oomoo`0<Ool00`00Oomoo`0;
Ool00`00Oomoo`0:Ool0019oo`03001oogoo00Eoo`03001oogoo01Aoo`8000=oo`P001=oo`04001o
ogooOol2000/Ool20006Ool00`00Oomoo`0^Ool00`00Oomoo`0UOol2000?Ool00`00Oomoo`0=Ool0
0`00Oomoo`0;Ool00`00Oomoo`0:Ool0019oo`03001oogoo00Ioo`03001oogoo01Eoo`8001eoo`<0
03Ioo`03001oogoo02moo`03001oogoo029oo`80011oo`03001oogoo00eoo`03001oogoo00aoo`03
001oogoo00Yoo`004goo00<007ooOol01Woo00<007ooOol05Woo0P006goo0`00=Woo00<007ooOol0
<7oo0P0087oo0P004Woo00<007ooOol03Goo00<007ooOol02goo00<007ooOol02goo000COol00`00
Oomoo`07Ool00`00Oomoo`0GOol2000HOol01000Oomoogoo0P00=7oo00<007ooOol0<Woo00<007oo
Ool06goo0P004goo00<007ooOol03Goo00<007ooOol037oo00<007ooOol02goo000DOol00`00Oomo
o`07Ool00`00Oomoo`0HOol2000DOol20006Ool2000bOol00`00Oomoo`06OolL000AOol2000FOol5
000DOol00`00Oomoo`0>Ool00`00Oomoo`0<Ool00`00Oomoo`0;Ool001Aoo`03001oogoo00Qoo`03
001oogoo01Uoo`80015oo`03001oogoo00Qoo`80031oo`T001aoo``000Moo`80015oo`<001Qoo`03
001oogoo00ioo`03001oogoo00eoo`03001oogoo00]oo`005Goo00<007ooOol027oo00<007ooOol0
6Woo0`0037oo0P003Goo0P00:goo1@00;goo6P006Woo00<007ooOol03goo00<007ooOol037oo00<0
07ooOol037oo000EOol00`00Oomoo`09Ool00`00Oomoo`0LOol30008Ool00`00Oomoo`0?Ool2000V
Ool30003Ool00`00Oomoo`0iOol2000UOol2000AOol00`00Oomoo`0=Ool00`00Oomoo`0<Ool001Io
o`03001oogoo00Uoo`8001moo`X0019oo`80025oo`<000Ioo`03001oogoo03]oo`80021oo`<001=o
o`03001oogoo00aoo`03001oogoo00eoo`005goo00<007ooOol02Woo0P008Goo0P0017oo6P0067oo
0`002Goo00<007ooOol0?Goo0P0077oo0P005Goo00<007ooOol03Goo00<007ooOol03Goo000HOol0
0`00Oomoo`0;Ool2000LOol3000MOolK000<Ool00`00Oomoo`0oOol4000FOol2000GOol00`00Oomo
o`0=Ool00`00Oomoo`0=Ool001Qoo`03001oogoo00eoo`8001Moo`<002=oo`<000ioo`X000Uoo`03
001oogoo04=oo`<0015oo`8001Qoo`03001oogoo00eoo`03001oogoo00ioo`006Goo00<007ooOol0
3Woo10003goo1000:Goo0`0027oo0`002Woo1@0017oo00<007ooOol0AWoo4@006Woo00<007ooOol0
3Goo00<007ooOol03Woo000JOol00`00Oomoo`0AOol?000`Ool20003Ool3000BOol6001aOol00`00
Oomoo`0=Ool00`00Oomoo`0?Ool001]oo`03001oogoo055oo`<001Uoo`@006ioo`03001oogoo00io
o`03001oogoo00moo`0077oo00<007ooOol0CGoo0`000goo0P005goo00@007ooOomoo`@006Yoo`03
001oogoo00ioo`03001oogoo00moo`007Goo00<007ooOol0BGoo0`0027oo0P005Goo00<007ooOol0
1Goo1000IGoo00<007ooOol03Woo00<007ooOol047oo000NOol00`00Oomoo`14Ool4000=Ool3000B
Ool00`00Oomoo`09Ool4001POol00`00Oomoo`0?Ool00`00Oomoo`0@Ool001moo`80045oo`<001Ao
o`80011oo`03001oogoo00eoo`<005aoo`03001oogoo00moo`03001oogoo015oo`008Goo00<007oo
Ool0>goo0`006Goo0`003Goo00<007ooOol047oo1000Egoo00<007ooOol047oo00<007ooOol04Goo
000ROol00`00Oomoo`0gOol3000OOol2000;Ool00`00Oomoo`0DOol4001BOol00`00Oomoo`0@Ool0
0`00Oomoo`0BOol002=oo`8003Aoo`<002Aoo`8000Uoo`8001Uoo`@004aoo`8001=oo`03001oogoo
019oo`009Goo0P00;Woo1000:Goo0`001Woo00<007ooOol077oo0`00Agoo0P0057oo00<007ooOol0
4goo000WOol2000XOol4000`Ool20004Ool00`00Oomoo`0OOol30013Ool00`00Oomoo`0DOol00`00
Oomoo`0COol002Uoo`80029oo`@003Ioo`<00003Ool007oo02=oo`<003moo`03001oogoo01Aoo`03
001oogoo01Aoo`00:goo0`006goo1000?Goo0`009Woo1000>Goo0P005Woo00<007ooOol05Goo000^
Ool8000=Ool60012Ool01000Ool00000:7oo1@00<Woo0P005goo00<007ooOol05Woo000fOol=0011
Ool30004Ool01000Oomoogoo0`00:Woo1000:goo0`0067oo00<007ooOol05goo0025Ool00`00Oomo
o`03Ool00`00Oomoo`04Ool3000[Ool5000TOol2000KOol00`00Oomoo`0GOol0089oo`D000Aoo`<0
00Moo`8002ioo`@001eoo`<001aoo`03001oogoo01Qoo`00PWoo00@007ooOol000Eoo`03001oogoo
00Uoo`<002moo`D001=oo`D001ioo`03001oogoo01Uoo`00Pgoo00<007oo00001Goo00<007ooOol0
37oo0`00<Goo4`008Woo00<007ooOol06Woo0024Ool20005Ool00`00Oomoo`0?Ool2001SOol00`00
Oomoo`0KOol008]oo`03001oogoo015oo`<005moo`03001oogoo01aoo`00Rgoo00<007ooOol057oo
0`00Fgoo00<007ooOol07Goo002;Ool00`00Oomoo`0GOol2001HOol00`00Oomoo`0NOol008]oo`03
001oogoo01Uoo`<005Aoo`03001oogoo01moo`00Rgoo0P007Goo0`00D7oo00<007ooOol087oo002;
Ool00`00Oomoo`0OOol2001=Ool00`00Oomoo`0QOol008]oo`03001oogoo025oo`<004Qoo`8002Ao
o`00Rgoo00<007ooOol097oo0P00AGoo00<007ooOol097oo002;Ool00`00Oomoo`0VOol30011Ool0
0`00Oomoo`0UOol008]oo`03001oogoo02Uoo`@003]oo`8002Qoo`00Rgoo00<007ooOol0;Goo1000
=7oo0`00:Woo002;Ool00`00Oomoo`0aOol3000^Ool3000]Ool008]oo`8003Eoo`@002Qoo`80031o
o`00Rgoo00<007ooOol0>7oo10008Goo0`00<Woo002;Ool00`00Oomoo`0lOol6000HOol3000eOol0
08]oo`03001oogoo049ooaP003Qoo`00Rgoo00<007ooOol0TWoo002;Ool00`00Oomoo`2BOol008]o
o`03001oogoo099oo`00Rgoo00<007ooOol0TWoo003oOolQOol00001\
\>"],
  ImageRangeCache->{{{0, 287}, {176.938, 0}} -> {-3.13514, -5.4059, \
0.0225154, 0.0616701}}]
}, Open  ]],

Cell["\<\
The graphics object returned by the plot command can be converted to a \
SymbolXML view of the SVG.\
\>", "Text"],

Cell[BoxData[
    \(\(\(\ \)\(xml\  = \ 
        XML`SVG`GraphicsToSymbolicSVG[p];\)\)\)], "InputOnly"],

Cell[TextData[{
  "The SVG is larger than the ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " graphics language representation, "
}], "Text"],

Cell[CellGroupData[{

Cell[BoxData[
    \(ByteCount /@ {ExportString[xml, \ "\<XML\>"], ToString[p, InputForm], 
        ExportString[p, "\<JPG\>"]}\)], "Input"],

Cell[BoxData[
    \({20832, 27104, 13936}\)], "Output"]
}, Open  ]],

Cell[TextData[{
  "Find the XML fragment that holds the line for the solution, it will be the \
first instance of ",
  StyleBox["<polyline points=pts> </polyline>", "InlineInput"],
  "."
}], "Text"],

Cell[BoxData[
    \(\(\(\ \ \ \ \ \ \ \ \ \)\(pts = "\<M\>" <> \n\ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ First[
            Cases[\ xml, \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
XMLElement["\<polyline\>", {"\<fill\>"\  -> \ _, "\<points\>"\  -> \ x_}, _] -> 
                x, \ Infinity]];\)\)\)], "InputOnly"],

Cell[TextData[{
  "Generate a new fragment of symbolic XML that holds an SVG animation, this \
has the form \n",
  StyleBox["<circle> <animateMotion path=pts/>  </circle>", "InlineInput"],
  "."
}], "Text"],

Cell[BoxData[
    \(\(\(\ \ \ \ \ \ \)\(newElem = 
        XMLElement["\<circle\>", \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ {"\<cx\>" -> "\<0\>", "\<cy\>" -> "\<0\>", "\<r\>" -> "\<.1\>", "\<fill\
\>" -> "\<red\>", \ \[IndentingNewLine]\t\t"\<stroke\>" -> "\<blue\>", \ \
"\<stroke-width\>" -> "\<0.01\>"}, \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ {XMLElement[\ \ "\<animateMotion\>", \[IndentingNewLine]\ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ {"\<dur\>" -> "\<6s\>", "\<repeatCount\>" -> \
"\<indefinite\>", \ \[IndentingNewLine]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ "\<rotate\>" -> "\<auto\>", \ "\<path\>"\  -> \ 
                  pts}, {}]}];\)\)\)], "InputOnly"],

Cell["Now we add this new fragment back into the original SVG", "Text"],

Cell[BoxData[
    \(\(newXML = 
        xml /. x : XMLElement["\<polyline\>", ___]\  -> \ 
            Sequence[x, newElem]\ ;\)\)], "InputOnly"],

Cell["Export the SymbolicXML out to a file", "Text"],

Cell[CellGroupData[{

Cell[BoxData[
    \(\(\(Export["\<file.svg\>", newXML, "\<XML\>"]\)\(\ \)\)\)], "Input"],

Cell[BoxData[
    \("file.svg"\)], "Output"]
}, Open  ]],

Cell["\<\
Open the file in IE with the Adobe plug-in and you'll see a nice animation.\
\>", "Text"]
}, Open  ]]
},
FrontEndVersion->"4.2 for Microsoft Windows",
ScreenRectangle->{{0, 1280}, {0, 934}},
WindowSize->{839, 690},
WindowMargins->{{Automatic, 146}, {Automatic, 23}},
StyleDefinitions -> "DemoText.nb"
]

(*******************************************************************
Cached data follows.  If you edit this Notebook file directly, not
using Mathematica, you must remove the line containing CacheID at
the top of  the file.  The cache data will then be recreated when
you save this file from within Mathematica.
*******************************************************************)

(*CellTagsOutline
CellTagsIndex->{
  "t:1"->{
    Cell[12796, 351, 65, 1, 54, "Section",
      CellTags->"t:1"]}
  }
*)

(*CellTagsIndex
CellTagsIndex->{
  {"t:1", 53445, 1649}
  }
*)

(*NotebookFileOutline
Notebook[{
Cell[1754, 51, 105, 4, 70, "Title"],
Cell[1862, 57, 56, 0, 41, "Subtitle"],
Cell[1921, 59, 82, 3, 76, "Subsubtitle"],

Cell[CellGroupData[{
Cell[2028, 66, 31, 0, 54, "Section"],
Cell[2062, 68, 487, 9, 67, "Text"],
Cell[2552, 79, 513, 13, 48, "Text"]
}, Open  ]],

Cell[CellGroupData[{
Cell[3102, 97, 115, 4, 54, "Section"],
Cell[3220, 103, 214, 7, 29, "Text"],

Cell[CellGroupData[{
Cell[3459, 114, 71, 1, 40, "Input"],
Cell[3533, 117, 130, 3, 49, "Output"]
}, Open  ]],
Cell[3678, 123, 172, 5, 30, "Text"],

Cell[CellGroupData[{
Cell[3875, 132, 40, 1, 40, "Input"],
Cell[3918, 135, 4217, 90, 194, 661, 42, "GraphicsData", "PostScript", \
"Graphics"],
Cell[8138, 227, 130, 3, 49, "Output"]
}, Open  ]],
Cell[8283, 233, 335, 11, 50, "Text"],

Cell[CellGroupData[{
Cell[8643, 248, 65, 1, 40, "Input"],
Cell[8711, 251, 690, 10, 372, "Output"]
}, Open  ]],
Cell[9416, 264, 623, 18, 68, "Text"],

Cell[CellGroupData[{
Cell[10064, 286, 63, 1, 40, "Input"],
Cell[10130, 289, 1159, 20, 201, "Output"]
}, Open  ]],
Cell[11304, 312, 268, 8, 49, "Text"],

Cell[CellGroupData[{
Cell[11597, 324, 65, 1, 40, "Input"],
Cell[11665, 327, 1082, 18, 182, "Output"]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{
Cell[12796, 351, 65, 1, 54, "Section",
  CellTags->"t:1"],
Cell[12864, 354, 119, 4, 29, "Text"],

Cell[CellGroupData[{
Cell[13008, 362, 221, 4, 60, "Input"],
Cell[13232, 368, 225, 6, 49, "Output"]
}, Open  ]],
Cell[13472, 377, 53, 0, 29, "Text"],

Cell[CellGroupData[{
Cell[13550, 381, 124, 3, 40, "Input"],
Cell[13677, 386, 36505, 1162, 194, 13123, 869, "GraphicsData", "PostScript", \
"Graphics"]
}, Open  ]],
Cell[50197, 1551, 123, 3, 29, "Text"],
Cell[50323, 1556, 103, 2, 48, "InputOnly"],
Cell[50429, 1560, 152, 5, 29, "Text"],

Cell[CellGroupData[{
Cell[50606, 1569, 139, 2, 40, "Input"],
Cell[50748, 1573, 55, 1, 49, "Output"]
}, Open  ]],
Cell[50818, 1577, 198, 5, 30, "Text"],
Cell[51019, 1584, 325, 5, 88, "InputOnly"],
Cell[51347, 1591, 206, 5, 61, "Text"],
Cell[51556, 1598, 697, 10, 148, "InputOnly"],
Cell[52256, 1610, 71, 0, 29, "Text"],
Cell[52330, 1612, 145, 3, 48, "InputOnly"],
Cell[52478, 1617, 52, 0, 29, "Text"],

Cell[CellGroupData[{
Cell[52555, 1621, 88, 1, 40, "Input"],
Cell[52646, 1624, 44, 1, 49, "Output"]
}, Open  ]],
Cell[52705, 1628, 99, 2, 29, "Text"]
}, Open  ]]
}
]
*)



(*******************************************************************
End of Mathematica Notebook file.
*******************************************************************)


  • Prev by Date: Re: RE: To verify Cauchy-Riemann relations in complex variable graphically
  • Next by Date: Re: Complex root finding
  • Previous by thread: Re: Defining and Programming Graphical Directives
  • Next by thread: Formatted output