(*********************************************************************** Mathematica-Compatible Notebook This notebook can be used on any computer system with Mathematica 4.0, MathReader 4.0, or any compatible application. 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@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[ 46556, 819]*) (*NotebookOutlinePosition[ 47400, 846]*) (* CellTagsIndexPosition[ 47356, 842]*) (*WindowFrame->Normal*) Notebook[{ Cell[BoxData[ \(\(\( (*\ rigid\ body\ dynamics\ *) \)\(\[IndentingNewLine]\)\( (*\ uses\ omega\ cross\ rotation\ matrix\ columns\ for\ orientation - dot\ *) \)\(\[IndentingNewLine]\)\( (*\ this\ normalizes\ the\ orient\ matrix\ after\ update\ *) \)\(\ \[IndentingNewLine]\)\(<< Calculus`VectorAnalysis`\)\)\)], "Input"], Cell[BoxData[ \(\(\( (*\ object\ data\ structure\ *) \)\(\[IndentingNewLine]\)\( (*\ constants : \ mass, \ inertia\ tensor, \ inverse\ of\ inertia\ tensor; \ state\ \(variables : \ position\), \ orientation, \ momentum, \ angular\ momentum; \ auxiliary\ \(variables : \ velocity\), \ angular\ velocity, \ \[IndentingNewLine]velocity, \ rotation - dot, \ force, \ torque\ *) \)\(\[IndentingNewLine]\)\(object\ = {\ \[IndentingNewLine] (*\ geometry\ definition\ *) \[IndentingNewLine]{{\(-4\), 4}, {\(-2\), 2}, {\(-1\), 1}}, \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ min/max\ in\ x, y, z*) \[IndentingNewLine] (*\ constants\ *) \[IndentingNewLine]20, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ mass\ *) \[IndentingNewLine]{{40, 0, 0}, {0, 20, 0}, {0, 0, 10}}, \ (*\ I\ *) \[IndentingNewLine]{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, \ (*\ I\ inverse\ *) \[IndentingNewLine] (*\ state\ variables\ *) \[IndentingNewLine]{0, 0, 0}, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ position\ *) \[IndentingNewLine]{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, (*\ orientation\ *) \[IndentingNewLine]{0, 0, 0}, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ momentum\ *) \[IndentingNewLine]{0, 0, 0}, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ angular\ momentum\ *) \[IndentingNewLine] (*\ auxiliary\ variables\ *) \[IndentingNewLine]{0, 0, 0}, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ velocity\ *) \[IndentingNewLine]{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, \ (*\ I\ inverse\ \((time)\)\ *) \[IndentingNewLine]{0, 0, 0}, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ angular\ velocity\ *) \[IndentingNewLine] (*\ derivative\ variables\ *) \[IndentingNewLine]{0, 0, 0}, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ velocity\ *) \[IndentingNewLine]{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, \ (*\ orientation\ dot\ *) \[IndentingNewLine]{0, 0, 0}, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ force\ *) \[IndentingNewLine]{0, 0, 0}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ torque\ *) \[IndentingNewLine]};\)\)\)], "Input"], Cell[BoxData[ \(\(object\ = ReplacePart[object, Inverse[object[\([3]\)]], 4];\)\)], "Input"], Cell[BoxData[{ \( (*\ define\ access\ functions\ *) \[IndentingNewLine]mass[obj_]\ := \ obj[\([2]\)]\), "\[IndentingNewLine]", \(inertia[obj_] := obj[\([3]\)]\), "\[IndentingNewLine]", \(inertiaInv[obj_] := obj[\([4]\)]\), "\[IndentingNewLine]", \(position[obj_]\ := \ obj[\([5]\)]\), "\[IndentingNewLine]", \(orient[obj_]\ := \ obj[\([6]\)]\), "\[IndentingNewLine]", \(momentum[obj_]\ := \ obj[\([7]\)]\), "\[IndentingNewLine]", \(angularMomentum[obj_]\ := \ obj[\([8]\)]\), "\[IndentingNewLine]", \(velocityAux[obj_]\ := \ obj[\([9]\)]\), "\[IndentingNewLine]", \(Iinv[obj_]\ := \ obj[\([10]\)]\), "\[IndentingNewLine]", \(omega[obj_] := obj[\([11]\)]\), "\[IndentingNewLine]", \(velocity[obj_]\ := \ obj[\([12]\)]\), "\[IndentingNewLine]", \(orientDot[obj_] := obj[\([13]\)]\), "\[IndentingNewLine]", \(force[obj_] := obj[\([14]\)]\), "\[IndentingNewLine]", \(torque[obj_] := obj[\([15]\)]\), "\[IndentingNewLine]", \(setPosition[obj_, value_] := ReplacePart[obj, value, 5]\), "\[IndentingNewLine]", \(setOrient[obj_, value_]\ := \ ReplacePart[obj, value, 6]\), "\[IndentingNewLine]", \(setMomentum[obj_, value_]\ := \ ReplacePart[obj, value, 7]\), "\[IndentingNewLine]", \(setAngularMomentum[obj_, value_] := ReplacePart[obj, value, 8]\), "\[IndentingNewLine]", \(setVelocityAux[obj_, value_] := ReplacePart[obj, value, 9]\), "\[IndentingNewLine]", \(setIinverse[obj_, value_]\ := ReplacePart[obj, value, 10]\), "\[IndentingNewLine]", \(setOmega[obj_, value_]\ := ReplacePart[obj, value, 11]\), "\[IndentingNewLine]", \(setVelocity[obj_, value_] := ReplacePart[obj, value, 12]\), "\[IndentingNewLine]", \(setOrientDot[obj_, value_] := ReplacePart[obj, value, 13]\), "\[IndentingNewLine]", \(\(setForce[obj_, value_]\ := \ ReplacePart[obj, value, 14];\)\), "\[IndentingNewLine]", \(setTorque[obj_, value_]\ := ReplacePart[obj, value, 15]\), "\[IndentingNewLine]", \(addForce[obj_, value_] := \ setForce[obj, force[obj] + value]\), "\[IndentingNewLine]", \(addTorque[obj_, value_] := setTorque[obj, torque[obj] + value]\[IndentingNewLine]\ \)}], "Input"], Cell[BoxData[ \(\(\( (*\ compute\ auxiliary\ variables\ *) \)\(\[IndentingNewLine]\)\(computeAux[ obj_]\ := \ \((\[IndentingNewLine]a1 = setVelocityAux[obj, momentum[obj]/mass[obj]]; \[IndentingNewLine]a2 = setIinverse[a1, orient[a1] . inertiaInv[a1] . Inverse[orient[a1]]]; \[IndentingNewLine]setOmega[a2, inertiaInv[a2] . angularMomentum[a2]]\[IndentingNewLine])\)\)\)\)], "Input"], Cell[BoxData[ \(\(\( (*\ compute\ additional\ derivative\ information\ *) \ \)\(\(computeDerivative[ obj_]\)\(:=\)\(\ \)\((\[IndentingNewLine]d1 = setVelocity[obj, velocityAux[obj]]; \[IndentingNewLine]dw = omega[d1]; \[IndentingNewLine]d2 = Transpose[orient[d1]]; \[IndentingNewLine]setOrientDot[d1, Transpose[{CrossProduct[dw, d2[\([1]\)]], CrossProduct[dw, d2[\([2]\)]], CrossProduct[dw, d2[\([3]\)]]}]]\[IndentingNewLine])\)\(\[IndentingNewLine]\)\)\ \)\)], "Input"], Cell[BoxData[ \(\(\( (*\ update\ orientation\ matrix\ and\ renormalize\ the\ rows\ *) \)\(\ \[IndentingNewLine]\)\(updateObject[obj_, dt_] := \((\[IndentingNewLine]u1 = \ setPosition[obj, position[obj] + velocity[obj]*dt]; \[IndentingNewLine]u2 = setOrient[u1, orient[u1] + orientDot[u1]*dt]; \[IndentingNewLine]u3 = setMomentum[u2, momentum[u2] + force[u2]*dt]; \[IndentingNewLine]u4\ = \ setAngularMomentum[u3, angularMomentum[u3] + torque[u3]*dt]; \[IndentingNewLine]u5\ = \ setForce[u4, {0, 0, 0}]; \[IndentingNewLine]u6\ = \ setTorque[u5, {0, 0, 0}]; \[IndentingNewLine] (*\ normalize\ orient\ matrix\ *) \[IndentingNewLine]u7 = orient[u6]; \[IndentingNewLine]u8 = u7[\([1]\)]; \[IndentingNewLine]len = Sqrt[u8[\([1]\)]*u8[\([1]\)] + u8[\([2]\)]*u8[\([2]\)] + u8[\([3]\)]*u8[\([3]\)]]; \[IndentingNewLine]u91 = u8/len; \[IndentingNewLine]u8 = u7[\([2]\)]; \[IndentingNewLine]len = Sqrt[u8[\([1]\)]*u8[\([1]\)] + u8[\([2]\)]*u8[\([2]\)] + u8[\([3]\)]*u8[\([3]\)]]; \[IndentingNewLine]u92 = u8/len; \[IndentingNewLine]u8 = u7[\([3]\)]; \[IndentingNewLine]len = Sqrt[u8[\([1]\)]*u8[\([1]\)] + u8[\([2]\)]*u8[\([2]\)] + u8[\([3]\)]*u8[\([3]\)]]; \[IndentingNewLine]u93 = u8/len; \[IndentingNewLine]u10 = setOrient[u6, {u91, u92, u93}]\[IndentingNewLine])\)\)\)\)], "Input"], Cell[BoxData[ \(display[ obj_] := \ \((\[IndentingNewLine]x0 = \ \(\(obj[\([1]\)]\)[\([1]\)]\)[\([1]\)]; \[IndentingNewLine]x1\ = \ \(\(obj[\([1]\)]\)[\([1]\)]\)[\([2]\)]; \[IndentingNewLine]y0\ = \ \(\(obj[\([1]\)]\)[\([2]\)]\)[\([1]\)]; \[IndentingNewLine]y1\ = \ \(\(obj[\([1]\)]\)[\([2]\)]\)[\([2]\)]; \[IndentingNewLine]z0 = \(\(obj[\([1]\ \)]\)[\([3]\)]\)[\([1]\)]; \[IndentingNewLine]z1\ = \(\(obj[\([1]\)]\)[\([3]\ \)]\)[\([2]\)]; \[IndentingNewLine]m = orient[object]; \[IndentingNewLine]pos = position[object]; \[IndentingNewLine]\[IndentingNewLine]p000\ = m . {x0, y0, z0} + pos; \[IndentingNewLine]p001 = m . {x0, y0, z1} + pos; \[IndentingNewLine]p010 = m . {x0, y1, z0} + pos; \[IndentingNewLine]p011 = m . {x0, y1, z1} + pos; \[IndentingNewLine]p100 = m . {x1, y0, z0} + pos; \[IndentingNewLine]p101 = m . {x1, y0, z1} + pos; \[IndentingNewLine]p110 = m . {x1, y1, z0} + pos; \[IndentingNewLine]p111 = m . {x1, y1, z1} + pos; \[IndentingNewLine]\[IndentingNewLine]polys = {\ \[IndentingNewLine]Polygon[{p000, p100, p110, p010}], Polygon[{p001, p101, p111, p011}], Polygon[{p000, p001, p101, p100}], Polygon[{p010, p011, p111, p110}], Polygon[{p000, p010, p011, p001}], Polygon[{p100, p110, p111, p101}]}; \[IndentingNewLine]Show[ Graphics3D[polys], PlotRange \[Rule] {{\(-10\), 10}, {\(-10\), 10}, {\(-10\), 10}}]\[IndentingNewLine])\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(display[object]\)], "Input"], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: 1.0855 MathPictureStart /Mabs { Mgmatrix idtransform Mtmatrix dtransform } bind def /Mabsadd { Mabs 3 -1 roll add 3 1 roll add exch } bind def %% Graphics3D %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10 scalefont setfont % Scaling calculations -0.0567234 1.16608 1.11022e-16 1.16608 [ [ 0 0 0 0 ] [ 1 1.0855 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath 0 g .25 Mabswid [ ] 0 setdash .08846 .24555 m 0 .80374 L s 0 .80374 m .40037 1.0855 L s .40037 1.0855 m .41799 .58158 L s .41799 .58158 m .08846 .24555 L s .67245 0 m .92713 .41497 L s .92713 .41497 m 1 .94814 L s 1 .94814 m .70644 .58546 L s .70644 .58546 m .67245 0 L s .08846 .24555 m 0 .80374 L s 0 .80374 m .70644 .58546 L s .70644 .58546 m .67245 0 L s .67245 0 m .08846 .24555 L s .41799 .58158 m .92713 .41497 L s .92713 .41497 m 1 .94814 L s 1 .94814 m .40037 1.0855 L s .40037 1.0855 m .41799 .58158 L s 0 0 m 1 0 L 1 1.0855 L 0 1.0855 L closepath clip newpath .5 Mabswid .37782 .55912 m .44451 .62638 L .44313 .67944 L p .955 .688 .489 r F P 0 g s .67795 .60747 m .67532 .55326 L .44451 .62638 L p .551 .334 .539 r F P 0 g s .44451 .62638 m .44313 .67944 L .67795 .60747 L p .551 .334 .539 r F P 0 g s .67532 .55326 m .44451 .62638 L .37782 .55912 L p .658 .749 .917 r F P 0 g s .44313 .67944 m .37521 .61324 L .37782 .55912 L p .955 .688 .489 r F P 0 g s .67795 .60747 m .44313 .67944 L .37521 .61324 L p .653 .754 .924 r F P 0 g s .37782 .55912 m .61553 .47965 L .67532 .55326 L p .658 .749 .917 r F P 0 g s .61717 .5349 m .61553 .47965 L .37782 .55912 L p .536 .313 .523 r F P 0 g s .37782 .55912 m .37521 .61324 L .61717 .5349 L p .536 .313 .523 r F P 0 g s .61553 .47965 m .67532 .55326 L .67795 .60747 L p .975 .683 .403 r F P 0 g s .37521 .61324 m .61717 .5349 L .67795 .60747 L p .653 .754 .924 r F P 0 g s .67795 .60747 m .61717 .5349 L .61553 .47965 L p .975 .683 .403 r F P 0 g s .25 Mabswid .67245 0 m .92713 .41497 L s .92713 .41497 m 1 .94814 L s 1 .94814 m .70644 .58546 L s .70644 .58546 m .67245 0 L s .08846 .24555 m 0 .80374 L s 0 .80374 m .70644 .58546 L s .70644 .58546 m .67245 0 L s .67245 0 m .08846 .24555 L s % End of Graphics MathPictureEnd \ \>"], "Graphics", ImageSize->{265.312, 287.938}, ImageMargins->{{43, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}, ImageCache->GraphicsData["Bitmap", "\<\ CF5dJ6E]HGAYHf4PAg9QL6QYHg0?ooo`<000008@3oool00`000000oooo0?ooo`040?ooo`030000003oool0oooo 04d0oooo002<0?ooo`800000903oool00`000000oooo0?ooo`050?ooo`030000003oool0oooo04`0 oooo00290?ooo`<000009P3oool00`000000oooo0?ooo`060?ooo`030000003oool0oooo04/0oooo 00270?ooo`800000:@3oool00`000000oooo0?ooo`060?ooo`030000003oool0oooo04/0oooo0024 0?ooo`<00000:`3oool00`000000oooo0?ooo`070?ooo`030000003oool0oooo04X0oooo00220?oo o`800000;P3oool00`000000oooo0?ooo`080?ooo`030000003oool0oooo04T0oooo00200?ooo`80 0000<03oool00`000000oooo0?ooo`080?ooo`030000003oool0oooo04T0oooo001m0?ooo`<00000 P3oool00`00 0000oooo0?ooo`0;0?ooo`030000003oool0oooo04H0oooo001d0?ooo`800000?03oool00`000000 oooo0?ooo`0;0?ooo`030000003oool0oooo04H0oooo001a0?ooo`<00000?P3oool00`000000oooo 0?ooo`0<0?ooo`030000003oool0oooo04D0oooo001_0?ooo`800000@P3oool00`000000oooo0?oo o`0<0?ooo`030000003oool0oooo04@0oooo001/0?ooo`<00000A03oool00`000000oooo0?ooo`0< 0?ooo`030000003oool0oooo04@0oooo001Z0?ooo`800000A`3oool00`000000oooo0?ooo`0=0?oo o`030000003oool0oooo04<0oooo001X0?ooo`800000B@3oool00`000000oooo0?ooo`0=0?ooo`03 0000003oool0oooo04<0oooo001U0?ooo`<00000B`3oool00`000000oooo0?ooo`0>0?ooo`030000 003oool0oooo0480oooo001S0?ooo`800000CP3oool00`000000oooo0?ooo`0?0?ooo`030000003o ool0oooo0440oooo001P0?ooo`<00000D03oool00`000000oooo0?ooo`0?0?ooo`030000003oool0 oooo0440oooo001N0?ooo`800000D`3oool00`000000oooo0?ooo`0@0?ooo`030000003oool0oooo 0400oooo001L0?ooo`800000E@3oool00`000000oooo0?ooo`0A0?ooo`030000003oool0oooo03l0 oooo001I0?ooo`<00000E`3oool00`000000oooo0?ooo`0A0?ooo`030000003oool0oooo03l0oooo 001G0?ooo`800000FP3oool00`000000oooo0?ooo`0B0?ooo`030000003oool0oooo03h0oooo001D 0?ooo`<00000G03oool00`000000oooo0?ooo`0B0?ooo`030000003oool0oooo03h0oooo001B0?oo o`800000G`3oool00`000000oooo0?ooo`0C0?ooo`030000003oool0oooo03d0oooo001@0?ooo`80 0000H@3oool00`000000oooo0?ooo`0D0?ooo`030000003oool0oooo03`0oooo001=0?ooo`<00000 H`3oool00`000000oooo0?ooo`0D0?ooo`030000003oool0oooo03`0oooo001;0?ooo`800000IP3o ool00`000000oooo0?ooo`0E0?ooo`030000003oool0oooo03/0oooo00180?ooo`<00000J03oool0 0`000000oooo0?ooo`0F0?ooo`030000003oool0oooo03X0oooo00160?ooo`800000K03oool00`00 0000oooo0?ooo`0E0?ooo`030000003oool0oooo03X0oooo00140?ooo`800000KP3oool00`000000 oooo0?ooo`0F0?ooo`030000003oool0oooo03T0oooo00110?ooo`<00000L03oool00`000000oooo 0?ooo`0F0?ooo`030000003oool0oooo03T0oooo000o0?ooo`800000L`3oool00`000000oooo0?oo o`0G0?ooo`030000003oool0oooo03P0oooo000l0?ooo`<00000M@3oool00`000000oooo0?ooo`0H 0?ooo`030000003oool0oooo03L0oooo000j0?ooo`800000N03oool00`000000oooo0?ooo`0H0?oo o`030000003oool0oooo03L0oooo000g0?ooo`<00000NP3oool00`000000oooo0?ooo`0I0?ooo`03 0000003oool0oooo03H0oooo000e0?ooo`800000O@3oool00`000000oooo0?ooo`0J0?ooo`030000 003oool0oooo03D0oooo000c0?ooo`800000O`3oool00`000000oooo0?ooo`0J0?ooo`030000003o ool0oooo03D0oooo000`0?ooo`<00000P@3oool00`000000oooo0?ooo`0K0?ooo`030000003oool0 oooo03@0oooo000^0?ooo`800000Q03oool00`000000oooo0?ooo`0K0?ooo`030000003oool0oooo 03@0oooo000[0?ooo`<00000QP3oool00`000000oooo0?ooo`0L0?ooo`030000003oool0oooo03<0 oooo000Y0?ooo`800000R@3oool00`000000oooo0?ooo`0M0?ooo`030000003oool0oooo0380oooo 000W0?ooo`800000R`3oool00`000000oooo0?ooo`0M0?ooo`030000003oool0oooo0380oooo000T 0?ooo`<00000S@3oool00`000000oooo0?ooo`0N0?ooo`030000003oool0oooo0340oooo000R0?oo o`800000T03oool00`000000oooo0?ooo`0N0?ooo`030000003oool0oooo0340oooo000O0?ooo`<0 0000TP3oool00`000000oooo0?ooo`0O0?ooo`030000003oool0oooo0300oooo000M0?ooo`800000 UP3oool00`000000oooo0?ooo`0O0?ooo`030000003oool0oooo02l0oooo000K0?ooo`800000V03o ool00`000000oooo0?ooo`0O0?ooo`030000003oool0oooo02l0oooo000H0?ooo`<00000VP3oool0 0`000000oooo0?ooo`0P0?ooo`030000003oool0oooo02h0oooo000G0?ooo`030000003oool0oooo 09/0oooo00<000000?ooo`3oool08@3oool00`000000oooo0?ooo`0]0?ooo`005`3oool00`000000 oooo0?ooo`2K0?ooo`030000003oool0oooo0240oooo00<000000?ooo`3oool0;@3oool001L0oooo 0P00002L0?ooo`030000003oool0oooo0280oooo00<000000?ooo`3oool0;03oool001L0oooo00<0 00000?ooo`000000V`3oool00`000000oooo0?ooo`0R0?ooo`030000003oool0oooo02`0oooo000F 0?ooo`050000003oool0oooo0?ooo`000000VP3oool00`000000oooo0?ooo`0S0?ooo`030000003o ool0oooo02/0oooo000F0?ooo`030000003oool0oooo0080oooo00<000000?ooo`3oool0U`3oool0 0`000000oooo0?ooo`0T0?ooo`030000003oool0oooo02X0oooo000F0?ooo`030000003oool0oooo 00<0oooo00<000000?ooo`3oool0UP3oool00`000000oooo0?ooo`0T0?ooo`030000003oool0oooo 02X0oooo000F0?ooo`030000003oool0oooo00@0oooo00<000000?ooo`3oool0U@3oool00`000000 oooo0?ooo`0U0?ooo`030000003oool0oooo02T0oooo000F0?ooo`030000003oool0oooo00D0oooo 00<000000?ooo`3oool0U03oool00`000000oooo0?ooo`0V0?ooo`030000003oool0oooo02P0oooo 000F0?ooo`030000003oool0oooo00H0oooo00<000000?ooo`3oool0T`3oool00`000000oooo0?oo o`0V0?ooo`030000003oool0oooo02P0oooo000F0?ooo`030000003oool0oooo00L0oooo00<00000 0?ooo`3oool0TP3oool00`000000oooo0?ooo`0W0?ooo`030000003oool0oooo02L0oooo000E0?oo o`030000003oool0oooo00T0oooo00<000000?ooo`3oool0T@3oool00`000000oooo0?ooo`0W0?oo o`030000003oool0oooo02L0oooo000E0?ooo`030000003oool0oooo00X0oooo00<000000?ooo`3o ool0T03oool00`000000oooo0?ooo`0X0?ooo`030000003oool0oooo02H0oooo000E0?ooo`030000 003oool0oooo00/0oooo00<000000?ooo`3oool0S`3oool00`000000oooo0?ooo`0Y0?ooo`030000 003oool0oooo02D0oooo000E0?ooo`030000003oool0oooo00`0oooo00<000000?ooo`3oool0S`3o ool00`000000oooo0?ooo`0X0?ooo`030000003oool0oooo02D0oooo000E0?ooo`030000003oool0 oooo00d0oooo00<000000?ooo`3oool0SP3oool00`000000oooo0?ooo`0Y0?ooo`030000003oool0 oooo02@0oooo000E0?ooo`030000003oool0oooo00h0oooo00<000000?ooo`3oool0S@3oool00`00 0000oooo0?ooo`0Z0?ooo`030000003oool0oooo02<0oooo000D0?ooo`030000003oool0oooo0100 oooo00<000000?ooo`3oool0S03oool00`000000oooo0?ooo`0Z0?ooo`030000003oool0oooo02<0 oooo000D0?ooo`030000003oool0oooo0140oooo00<000000?ooo`3oool0R`3oool00`000000oooo 0?ooo`0[0?ooo`030000003oool0oooo0280oooo000D0?ooo`030000003oool0oooo0180oooo00<0 00000?ooo`3oool0RP3oool00`000000oooo0?ooo`0[0?ooo`030000003oool0oooo0280oooo000D 0?ooo`030000003oool0oooo01<0oooo00<000000?ooo`3oool0R@3oool00`000000oooo0?ooo`0/ 0?ooo`030000003oool0oooo0240oooo000D0?ooo`030000003oool0oooo01@0oooo00<000000?oo o`3oool0R03oool00`000000oooo0?ooo`0]0?ooo`030000003oool0oooo0200oooo000D0?ooo`03 0000003oool0oooo01D0oooo00<000000?ooo`3oool0Q`3oool00`000000oooo0?ooo`0]0?ooo`03 0000003oool0oooo0200oooo000D0?ooo`030000003oool0oooo01H0oooo00<000000?ooo`3oool0 QP3oool00`000000oooo0?ooo`0^0?ooo`030000003oool0oooo01l0oooo000C0?ooo`030000003o ool0oooo01P0oooo00<000000?ooo`3oool0Q@3oool00`000000oooo0?ooo`0_0?ooo`030000003o ool0oooo01h0oooo000C0?ooo`030000003oool0oooo01T0oooo00<000000?ooo`3oool0Q03oool0 0`000000oooo0?ooo`0_0?ooo`030000003oool0oooo01h0oooo000C0?ooo`030000003oool0oooo 01X0oooo00<000000?ooo`3oool0P`3oool00`000000oooo0?ooo`0`0?ooo`030000003oool0oooo 01d0oooo000C0?ooo`030000003oool0oooo01/0oooo00<000000?ooo`3oool0PP3oool00`000000 oooo0?ooo`0`0?ooo`030000003oool0oooo01d0oooo000C0?ooo`030000003oool0oooo01`0oooo 00<000000?ooo`3oool0P@3oool00`000000oooo0?ooo`0a0?ooo`030000003oool0oooo01`0oooo 000C0?ooo`030000003oool0oooo01d0oooo00<000000?ooo`3oool0P03oool00`000000oooo0?oo o`0b0?ooo`030000003oool0oooo01/0oooo000B0?ooo`030000003oool0oooo01l0oooo00<00000 0?ooo`3oool0O`3oool00`000000oooo0?ooo`0b0?ooo`030000003oool0oooo01/0oooo000B0?oo o`030000003oool0oooo0200oooo00<000000?ooo`3oool0O`3oool00`000000oooo0?ooo`0b0?oo o`030000003oool0oooo01X0oooo000B0?ooo`030000003oool0oooo0240oooo00<000000?ooo`3o ool0OP3oool00`000000oooo0?ooo`0c0?ooo`030000003oool0oooo01T0oooo000B0?ooo`030000 003oool0oooo0280oooo00<000000?ooo`3oool0O@3oool00`000000oooo0?ooo`0c0?ooo`030000 003oool0oooo01T0oooo000B0?ooo`030000003oool0oooo02<0oooo00<000000?ooo`3oool0O03o ool00`000000oooo0?ooo`0d0?ooo`030000003oool0oooo01P0oooo000B0?ooo`030000003oool0 oooo02@0oooo00<000000?ooo`3oool0N`3oool00`000000oooo0?ooo`0d0?ooo`030000003oool0 oooo01P0oooo000A0?ooo`030000003oool0oooo02H0oooo00<000000?ooo`3oool0NP3oool00`00 0000oooo0?ooo`0e0?ooo`030000003oool0oooo01L0oooo000A0?ooo`030000003oool0oooo02L0 oooo00<000000?ooo`3oool0N@3oool00`000000oooo0?ooo`0f0?ooo`030000003oool0oooo01H0 oooo000A0?ooo`030000003oool0oooo02P0oooo00<000000?ooo`3oool0N03oool00`000000oooo 0?ooo`0f0?ooo`030000003oool0oooo01H0oooo000A0?ooo`030000003oool0oooo02T0oooo00<0 00000?ooo`3oool0M`3oool00`000000oooo0?ooo`0g0?ooo`030000003oool0oooo01D0oooo000A 0?ooo`030000003oool0oooo02X0oooo00<000000?ooo`3oool0MP3oool00`000000oooo0?ooo`0h 0?ooo`030000003oool0oooo01@0oooo000A0?ooo`030000003oool0oooo02/0oooo00<000000?oo o`3oool0M@3oool00`000000oooo0?ooo`0h0?ooo`030000003oool0oooo01@0oooo000A0?ooo`03 0000003oool0oooo02`0oooo00<000000?ooo`3oool0M03oool00`000000oooo0?ooo`0i0?ooo`03 0000003oool0oooo01<0oooo000@0?ooo`030000003oool0oooo02h0oooo00<000000?ooo`3oool0 L`3oool00`000000oooo0?ooo`0i0?ooo`030000003oool0oooo01<0oooo000@0?ooo`030000003o ool0oooo02l0oooo00<000000?ooo`3oool0LP3oool00`000000oooo0?ooo`0j0?ooo`030000003o ool0oooo0180oooo000@0?ooo`030000003oool0oooo0300oooo00<000000?ooo`3oool0L@3oool0 0`000000oooo0?ooo`0i0?ooo`<000004`3oool00100oooo00<000000?ooo`3oool0<03oool00`00 0000oooo0?ooo`1a0?ooo`030000003oool0oooo03H0oooo0`0000020?ooo`030000003oool0oooo 0140oooo000@0?ooo`030000003oool0oooo0340oooo00<000000?ooo`3oool0L03oool00`000000 oooo0?ooo`0c0?ooo`<000001@3oool00`000000oooo0?ooo`0A0?ooo`00403oool00`000000oooo 0?ooo`0b0?ooo`030000003oool0oooo0700oooo00<000000?ooo`3oool0;`3oool3000000P0oooo 00<000000?ooo`3oool04@3oool000l0oooo00<000000?ooo`3oool0=03oool00`000000oooo0?oo o`1_0?ooo`030000003oool0oooo02`0oooo0`00000;0?ooo`030000003oool0oooo0140oooo000? 0?ooo`030000003oool0oooo03D0oooo00<000000?ooo`3oool0KP3oool00`000000oooo0?ooo`0Y 0?ooo`<000003`3oool00`000000oooo0?ooo`0@0?ooo`003`3oool00`000000oooo0?ooo`0f0?oo o`030000003oool0oooo06d0oooo00<000000?ooo`3oool09P3oool300000180oooo00<000000?oo o`3oool0403oool000l0oooo00<000000?ooo`3oool0=`3oool00`000000oooo0?ooo`1/0?ooo`03 0000003oool0oooo02<0oooo0`00000E0?ooo`030000003oool0oooo0100oooo000?0?ooo`030000 003oool0oooo03P0oooo00<000000?ooo`3oool0J`3oool00`000000oooo0?ooo`0P0?ooo`<00000 603oool00`000000oooo0?ooo`0@0?ooo`003`3oool00`000000oooo0?ooo`0i0?ooo`030000003o ool0oooo06X0oooo00<000000?ooo`3oool07@3oool3000001/0oooo00<000000?ooo`3oool0403o ool000l0oooo00<000000?ooo`3oool0>P3oool00`000000oooo0?ooo`1Y0?ooo`030000003oool0 oooo01X0oooo0`00000N0?ooo`030000003oool0oooo0100oooo000>0?ooo`030000003oool0oooo 03`0oooo00<000000?ooo`3oool0J03oool00`000000oooo0?ooo`0G0?ooo`<000008@3oool00`00 0000oooo0?ooo`0@0?ooo`003P3oool00`000000oooo0?ooo`0m0?ooo`030000003oool0oooo06L0 oooo00<000000?ooo`3oool0503oool3000002D0oooo00<000000?ooo`3oool03`3oool000h0oooo 00<000000?ooo`3oool0?P3oool00`000000oooo0?ooo`1V0?ooo`030000003oool0oooo0140oooo 0`00000X0?ooo`030000003oool0oooo00l0oooo000>0?ooo`030000003oool0oooo03l0oooo00<0 00000?ooo`3oool0I@3oool00`000000oooo0?ooo`0>0?ooo`<00000:`3oool00`000000oooo0?oo o`0?0?ooo`003P3oool00`000000oooo0?ooo`100?ooo`030000003oool0oooo06@0oooo00<00000 0?ooo`3oool02P3oool4000002h0oooo00<000000?ooo`3oool03`3oool000h0oooo00<000000?oo o`3oool0@@3oool00`000000oooo0?ooo`1S0?ooo`030000003oool0oooo00L0oooo0`00000b0?oo o`030000003oool0oooo00l0oooo000=0?ooo`030000003oool0oooo04<0oooo00<000000?ooo`3o ool0B`3oool2000001D0oooo00<000000?ooo`3oool0103oool3000003D0oooo00<000000?ooo`3o ool03`3oool000d0oooo00<000000?ooo`3oool0A03oool00`000000oooo0?ooo`170?ooo`<00000 00<0RE250000003oool0503oool010000000oooo0?ooo`3oool3000003P0oooo00<000000?ooo`3o ool03`3oool000d0oooo00<000000?ooo`3oool0A@3oool00`000000oooo0?ooo`130?ooo`<00000 1029D8D2000001@0oooo1000000k0?ooo`030000003oool0oooo00l0oooo000=0?ooo`030000003o ool0oooo04H0oooo00<000000?ooo`3oool0?`3oool3000000L0RE2500<000000?V^I`0000004@3o ool4000003h0oooo00<000000?ooo`3oool03P3oool000d0oooo00<000000?ooo`3oool0A`3oool0 0`000000oooo0?ooo`0k0?ooo`<000002P29D8D010000000nJiW0?V^I`00000=0?ooo`<000000`3o ool00`000000oooo0?ooo`0l0?ooo`030000003oool0oooo00h0oooo000=0?ooo`030000003oool0 oooo04P0oooo00<000000?ooo`3oool0=`3oool3000000d0RE2500D000000?V^I`3i[VL0nJiW0000 00090?ooo`<000001P3oool00`000000oooo0?ooo`0l0?ooo`030000003oool0oooo00h0oooo000= 0?ooo`030000003oool0oooo04T0oooo00<000000?ooo`3oool0<`3oool300000100RE2500D00000 0?V^I`3i[VL0nJiW000000060?ooo`<000002@3oool00`000000oooo0?ooo`0l0?ooo`030000003o ool0oooo00h0oooo000<0?ooo`030000003oool0oooo04/0oooo00<000000?ooo`3oool0;`3oool3 000001<0RE2500<000000?V^I`3i[VL00P3i[VL00`000000oooo0?ooo`03000000`0oooo00<00000 0?ooo`3oool0?03oool00`000000oooo0?ooo`0>0?ooo`00303oool00`000000oooo0?ooo`1<0?oo o`030000003oool0oooo02/0oooo0`00000G08U@Q@030000003i[VL0nJiW0080nJiW0P00000?0?oo o`030000003oool0oooo03`0oooo00<000000?ooo`3oool03P3oool000`0oooo00<000000?ooo`3o ool0C@3oool00`000000oooo0?ooo`0W0?ooo`<000006P29D8D00`000000nJiW0?V^I`030?V^I`03 0000003oool0oooo00d0oooo00<000000?ooo`3oool0?03oool00`000000oooo0?ooo`0>0?ooo`00 303oool00`000000oooo0?ooo`1>0?ooo`030000003oool0oooo02<0oooo0`00000M08U@Q@030000 003i[VL0nJiW00@0nJiW00<000000?ooo`3oool0303oool00`000000oooo0?ooo`0m0?ooo`030000 003oool0oooo00d0oooo000<0?ooo`030000003oool0oooo04l0oooo00<000000?ooo`3oool07`3o ool300000200RE2500<000000?V^I`3i[VL0103i[VL00`000000oooo0?ooo`0<0?ooo`030000003o ool0oooo03d0oooo00<000000?ooo`3oool03@3oool000`0oooo00<000000?ooo`3oool0D03oool0 0`000000oooo0?ooo`0K0?ooo`<000008`29D8D00`000000nJiW0?V^I`050?V^I`030000003oool0 oooo00/0oooo00<000000?ooo`3oool0?@3oool00`000000oooo0?ooo`0=0?ooo`002`3oool00`00 0000oooo0?ooo`1B0?ooo`030000003oool0oooo01L0oooo0`00000V08U@Q@030000003i[VL0nJiW 00H0nJiW00<000000?ooo`3oool02P3oool00`000000oooo0?ooo`0m0?ooo`030000003oool0oooo 00d0oooo000;0?ooo`030000003oool0oooo05<0oooo00<000000?ooo`3oool04`3oool3000002T0 RE2500<000000?V^I`3i[VL01`3i[VL00`000000oooo0?ooo`090?ooo`030000003oool0oooo03d0 oooo00<000000?ooo`3oool03@3oool000/0oooo00<000000?ooo`3oool0E03oool00`000000oooo 0?ooo`0?0?ooo`<00000:P29D8D3000000X0nJiW00<000000?ooo`3oool0203oool00`000000oooo 0?ooo`0m0?ooo`030000003oool0oooo00d0oooo000;0?ooo`030000003oool0oooo05D0oooo00<0 00000?ooo`3oool02`3oool3000002X0RE250`0000020:O1k0030000003i[VL0nJiW00P0nJiW00<0 00000?ooo`3oool0203oool00`000000oooo0?ooo`0m0?ooo`030000003oool0oooo00d0oooo000; 0?ooo`030000003oool0oooo05H0oooo00<000000?ooo`3oool01`3oool3000002X0RE250`000006 0:O1k0030000003i[VL0nJiW00P0nJiW00<000000?ooo`3oool01`3oool00`000000oooo0?ooo`0n 0?ooo`030000003oool0oooo00`0oooo000;0?ooo`030000003oool0oooo05L0oooo00<000000?oo o`3oool00`3oool3000002X0RE250`00000:0:O1k0030000003i[VL0nJiW00P0nJiW00<000000?oo o`3oool01P3oool00`000000oooo0?ooo`0n0?ooo`030000003oool0oooo00`0oooo000:0?ooo`03 0000003oool0oooo05T0oooo00<000000?ooo`0000000P00000Z08U@Q@<000003P2W`N`00`000000 nJiW0?V^I`080?V^I`030000003oool0oooo00D0oooo00<000000?ooo`3oool0?P3oool00`000000 oooo0?ooo`0<0?ooo`002P3oool00`000000oooo0?ooo`1H0?ooo`<00000:P29D8D300000180Yl7/ 00<000000?V^I`3i[VL0203i[VL00`000000oooo0?ooo`050?ooo`030000003oool0oooo03d0oooo 00<000000?ooo`3oool0303oool000X0oooo00<000000?ooo`3oool0EP3oool2000002X0RE250`00 000F0:O1k0030000003i[VL0nJiW00L0nJiW00<000000?ooo`3oool01@3oool00`000000oooo0?oo o`0m0?ooo`030000003oool0oooo00`0oooo000:0?ooo`030000003oool0oooo05H0oooo00<00000 08U@Q@29D8D09P29D8D3000001T0Yl7/00<000000?V^I`3i[VL01`3i[VL00`000000oooo0?ooo`05 0?ooo`030000003oool0oooo03d0oooo00<000000?ooo`3oool0303oool000X0oooo00<000000?oo o`3oool0EP3oool00`000000RE2508U@Q@0S08U@Q@<000007@2W`N`00`000000nJiW0?V^I`060?V^ I`030000003oool0oooo00D0oooo00<000000?ooo`3oool0?@3oool00`000000oooo0?ooo`0<0?oo o`002P3oool00`000000oooo0?ooo`1F0?ooo`0300000029D8D0RE250200RE250`00000Q0:O1k003 0000003i[VL0nJiW00D0nJiW00<000000?ooo`3oool01@3oool00`000000oooo0?ooo`0m0?ooo`03 0000003oool0oooo00`0oooo000:0?ooo`030000003oool0oooo05H0oooo00<0000008U@Q@29D8D0 7@29D8D3000002D0Yl7/00<000000?V^I`3i[VL0103i[VL00`000000oooo0?ooo`050?ooo`030000 003oool0oooo03h0oooo00<000000?ooo`3oool02`3oool000T0oooo00<000000?ooo`3oool0E`3o ool00`000000RE2508U@Q@0J08U@Q@<00000:@2W`N`00`000000nJiW0?V^I`030?V^I`030000003o ool0oooo00D0oooo00<000000?ooo`3oool0?P3oool00`000000oooo0?ooo`0;0?ooo`002@3oool0 0`000000oooo0?ooo`1G0?ooo`0300000029D8D0RE2501L0RE250`00000]0:O1k0030000003i[VL0 nJiW0080nJiW00<000000?ooo`3oool01@3oool00`000000oooo0?ooo`0n0?ooo`030000003oool0 oooo00/0oooo00090?ooo`030000003oool0oooo05L0oooo00<0000008U@Q@29D8D05029D8D30000 0340Yl7/00<000000?V^I`3i[VL00P3i[VL00`000000oooo0?ooo`020?ooo`<00000@03oool00`00 0000oooo0?ooo`0;0?ooo`002@3oool00`000000oooo0?ooo`1G0?ooo`0300000029D8D0RE250140 RE250`00000d0:O1k0030000003i[VL0nJiW0080nJiW00<000000?ooo`0000000P0000020?ooo`03 0000003oool0oooo03h0oooo00<000000?ooo`3oool02`3oool000T0oooo00<000000?ooo`3oool0 E`3oool00`000000RE2508U@Q@0>08U@Q@<00000>02W`N`00`000000nJiW0?V^I`03000000H0oooo 00<000000?ooo`3oool0?@3oool00`000000oooo0?ooo`0;0?ooo`002@3oool00`000000oooo0?oo o`1G0?ooo`0300000029D8D0RE2500/0RE250`00000k0:O1k0<0000000<0nJiW0000003oool01`3o ool00`000000oooo0?ooo`0l0?ooo`030000003oool0oooo00/0oooo00080?ooo`030000003oool0 oooo05P0oooo00<0000008U@Q@29D8D02029D8D3000003/0Yl7/0`0000020:O1k0030000003i[VL0 000000T0oooo00<000000?ooo`3oool0?03oool00`000000oooo0?ooo`0:0?ooo`00203oool00`00 0000oooo0?ooo`1H0?ooo`0300000029D8D0RE2500D0RE250`00000j0:O1k0@000001P2W`N`20000 00X0oooo00<000000?ooo`3oool0>`3oool00`000000oooo0?ooo`0:0?ooo`00203oool00`000000 oooo0?ooo`1H0?ooo`0300000029D8D0RE250080RE250`00000j0:O1k0<000002`2W`N`00`000000 oooo0?ooo`080?ooo`030000003oool0oooo03/0oooo00<000000?ooo`3oool02P3oool000P0oooo 00<000000?ooo`3oool0F03oool00`000000RE2500000002000003X0Yl7/0`0000090:O1k0<00000 3P3oool00`000000oooo0?ooo`0j0?ooo`030000003oool0oooo00X0oooo00080?ooo`030000003o ool0oooo05P0oooo0P00000j0:O1k0<000002@2W`N`300000180oooo00<000000?ooo`3oool0>@3o ool00`000000oooo0?ooo`0:0?ooo`00203oool00`000000oooo0?ooo`1J0?ooo`030000002W`N`0 Yl7/03@0Yl7/0`0000090:O1k0<000005P3oool00`000000oooo0?ooo`0h0?ooo`030000003oool0 oooo00X0oooo00080?ooo`030000003oool0oooo05/0oooo00<000000:O1k02W`N`0;`2W`N`40000 00P0Yl7/1000000J0?ooo`030000003oool0oooo03L0oooo00<000000?ooo`3oool02P3oool000L0 oooo00<000000?ooo`3oool0G@3oool00`000000Yl7/0:O1k00[0:O1k0<000002@2W`N`3000001l0 oooo00<000000?ooo`3oool0=P3oool00`000000oooo0?ooo`0:0?ooo`001`3oool00`000000oooo 0?ooo`1N0?ooo`030000002W`N`0Yl7/02L0Yl7/0`0000090:O1k0<000008P3oool00`000000oooo 0?ooo`0g0?ooo`030000003oool0oooo00T0oooo00070?ooo`030000003oool0oooo05l0oooo00<0 00000:O1k02W`N`08`2W`N`3000000T0Yl7/0`00000V0?ooo`030000003oool0oooo03H0oooo00<0 00000?ooo`3oool02@3oool000L0oooo00<000000?ooo`3oool0H03oool00`000000Yl7/0:O1k00N 0:O1k0@00000202W`N`4000002X0oooo00<000000?ooo`3oool0=@3oool00`000000oooo0?ooo`09 0?ooo`001`3oool00`000000oooo0?ooo`1Q0?ooo`030000002W`N`0Yl7/01X0Yl7/0`0000090:O1 k0<00000;`3oool00`000000oooo0?ooo`0d0?ooo`030000003oool0oooo00T0oooo00070?ooo`03 0000003oool0oooo0680oooo00<000000:O1k02W`N`05P2W`N`3000000T0Yl7/0`00000c0?ooo`03 0000003oool0oooo03<0oooo00<000000?ooo`3oool02@3oool000H0oooo00<000000?ooo`3oool0 I03oool00`000000Yl7/0:O1k00B0:O1k0<00000202W`N`4000003H0oooo00<000000?ooo`3oool0 <`3oool00`000000oooo0?ooo`090?ooo`001P3oool00`000000oooo0?ooo`1T0?ooo`800000402W `N`3000000P0Yl7/0`00000k0?ooo`030000003oool0oooo0380oooo00<000000?ooo`3oool02@3o ool000H0oooo00<000000?ooo`3oool0I03oool00`000000oooo0000000;0:O1k0@00000202W`N`3 000003l0oooo00<000000?ooo`3oool00?ooo`<000005@3oool00`000000oooo0?ooo`1S0?ooo`030000003oool0 oooo02T0oooo00<000000?ooo`3oool01`3oool000@0oooo00<000000?ooo`3oool0B`3oool30000 01P0oooo00<000000?ooo`3oool0I03oool00`000000oooo0?ooo`0X0?ooo`030000003oool0oooo 00L0oooo00040?ooo`030000003oool0oooo04P0oooo0`00000K0?ooo`030000003oool0oooo06@0 oooo00<000000?ooo`3oool0:03oool00`000000oooo0?ooo`070?ooo`00103oool00`000000oooo 0?ooo`140?ooo`@000007P3oool00`000000oooo0?ooo`1U0?ooo`030000003oool0oooo02P0oooo 00<000000?ooo`3oool01P3oool000@0oooo00<000000?ooo`3oool0@@3oool300000280oooo00<0 00000?ooo`3oool0IP3oool00`000000oooo0?ooo`0W0?ooo`030000003oool0oooo00H0oooo0003 0?ooo`030000003oool0oooo03l0oooo0`00000U0?ooo`030000003oool0oooo06L0oooo00<00000 0?ooo`3oool09P3oool00`000000oooo0?ooo`060?ooo`000`3oool00`000000oooo0?ooo`0l0?oo o`<00000:03oool00`000000oooo0?ooo`1X0?ooo`030000003oool0oooo02D0oooo00<000000?oo o`3oool01P3oool000<0oooo00<000000?ooo`3oool0>@3oool3000002/0oooo00<000000?ooo`3o ool0J03oool00`000000oooo0?ooo`0U0?ooo`030000003oool0oooo00H0oooo00030?ooo`030000 003oool0oooo03D0oooo1000000^0?ooo`030000003oool0oooo06T0oooo00<000000?ooo`3oool0 903oool00`000000oooo0?ooo`060?ooo`000`3oool00`000000oooo0?ooo`0b0?ooo`<00000<@3o ool00`000000oooo0?ooo`1[0?ooo`030000003oool0oooo02<0oooo00<000000?ooo`3oool01P3o ool000<0oooo00<000000?ooo`3oool0;`3oool3000003@0oooo00<000000?ooo`3oool0K03oool0 0`000000oooo0?ooo`0S0?ooo`030000003oool0oooo00D0oooo00030?ooo`030000003oool0oooo 02`0oooo0`00000g0?ooo`030000003oool0oooo06d0oooo00<000000?ooo`3oool08P3oool00`00 0000oooo0?ooo`050?ooo`000P3oool00`000000oooo0?ooo`0Y0?ooo`@00000>P3oool00`000000 oooo0?ooo`1^0?ooo`030000003oool0oooo0240oooo00<000000?ooo`3oool01@3oool00080oooo 00<000000?ooo`3oool09P3oool3000003h0oooo00<000000?ooo`3oool0KP3oool00`000000oooo 0?ooo`0Q0?ooo`030000003oool0oooo00D0oooo00020?ooo`030000003oool0oooo02<0oooo0`00 00110?ooo`030000003oool0oooo06l0oooo00<000000?ooo`3oool0803oool00`000000oooo0?oo o`050?ooo`000P3oool00`000000oooo0?ooo`0P0?ooo`<00000A03oool00`000000oooo0?ooo`1` 0?ooo`030000003oool0oooo01l0oooo00<000000?ooo`3oool01@3oool00080oooo00<000000?oo o`3oool07@3oool3000004L0oooo00<000000?ooo`3oool0L@3oool00`000000oooo0?ooo`0N0?oo o`030000003oool0oooo00D0oooo00020?ooo`030000003oool0oooo01T0oooo1000001:0?ooo`03 0000003oool0oooo0780oooo00<000000?ooo`3oool07@3oool00`000000oooo0?ooo`050?ooo`00 00<0oooo0000003oool0603oool3000004h0oooo00<000000?ooo`3oool0LP3oool00`000000oooo 0?ooo`0N0?ooo`030000003oool0oooo00@0oooo00000`3oool000000?ooo`0E0?ooo`<00000D@3o ool00`000000oooo0?ooo`1c0?ooo`030000003oool0oooo01d0oooo00<000000?ooo`3oool0103o ool000030?ooo`000000oooo0180oooo0`00001D0?ooo`030000003oool0oooo07@0oooo00<00000 0?ooo`3oool0703oool00`000000oooo0?ooo`040?ooo`0000<0oooo0000003oool03`3oool30000 05L0oooo00<000000?ooo`3oool0M@3oool00`000000oooo0?ooo`0K0?ooo`030000003oool0oooo 00@0oooo00000`3oool000000?ooo`0;0?ooo`@00000FP3oool00`000000oooo0?ooo`1f0?ooo`03 0000003oool0oooo01X0oooo00<000000?ooo`3oool0103oool000030?ooo`000000oooo00P0oooo 0`00001N0?ooo`030000003oool0oooo07H0oooo00<000000?ooo`3oool06P3oool00`000000oooo 0?ooo`040?ooo`0000<0oooo0000003oool01@3oool300000640oooo00<000000?ooo`3oool0M`3o ool00`000000oooo0?ooo`0I0?ooo`030000003oool0oooo00@0oooo00000`000000oooo0?ooo`02 0?ooo`<00000I03oool00`000000oooo0?ooo`1h0?ooo`030000003oool0oooo01T0oooo00<00000 0?ooo`3oool00`3oool000030000003oool0000000800000I`3oool00`000000oooo0?ooo`1i0?oo o`030000003oool0oooo01P0oooo00<000000?ooo`3oool00`3oool000800000JP3oool00`000000 oooo0?ooo`1j0?ooo`030000003oool0oooo01L0oooo00<000000?ooo`3oool00`3oool00080oooo 00<000000?ooo`3oool0I`3oool00`000000oooo0?ooo`1k0?ooo`030000003oool0oooo01H0oooo 00<000000?ooo`3oool00`3oool000<0oooo0P00001W0?ooo`030000003oool0oooo07/0oooo00<0 00000?ooo`3oool05P3oool00`000000oooo0?ooo`030?ooo`001@3oool00`000000oooo0?ooo`1T 0?ooo`030000003oool0oooo07`0oooo00<000000?ooo`3oool05@3oool00`000000oooo0?ooo`03 0?ooo`001P3oool00`000000oooo0?ooo`1S0?ooo`030000003oool0oooo07d0oooo00<000000?oo o`3oool0503oool00`000000oooo0?ooo`030?ooo`001`3oool2000006<0oooo00<000000?ooo`3o ool0OP3oool00`000000oooo0?ooo`0C0?ooo`030000003oool0oooo00<0oooo00090?ooo`030000 003oool0oooo0600oooo00<000000?ooo`3oool0O`3oool00`000000oooo0?ooo`0C0?ooo`030000 003oool0oooo0080oooo000:0?ooo`800000H03oool00`000000oooo0?ooo`1o0?ooo`030000003o ool0oooo01<0oooo00<000000?ooo`3oool00P3oool000`0oooo00<000000?ooo`3oool0G03oool0 0`000000oooo0?ooo`210?ooo`030000003oool0oooo0180oooo00<000000?ooo`3oool00P3oool0 00d0oooo00<000000?ooo`3oool0F`3oool00`000000oooo0?ooo`220?ooo`030000003oool0oooo 0140oooo00<000000?ooo`3oool00P3oool000h0oooo0P00001K0?ooo`030000003oool0oooo08<0 oooo00<000000?ooo`3oool0403oool00`000000oooo0?ooo`020?ooo`00403oool00`000000oooo 0?ooo`1H0?ooo`030000003oool0oooo08@0oooo00<000000?ooo`3oool03`3oool00`000000oooo 0?ooo`020?ooo`004@3oool2000005P0oooo00<000000?ooo`3oool0Q03oool00`000000oooo0?oo o`0?0?ooo`030000003oool0oooo0080oooo000C0?ooo`030000003oool0oooo05D0oooo00<00000 0?ooo`3oool0Q@3oool00`000000oooo0?ooo`0?0?ooo`030000003oool0oooo0040oooo000D0?oo o`800000E@3oool00`000000oooo0?ooo`260?ooo`030000003oool0oooo00h0oooo00<000000?oo o`3oool00@3oool001H0oooo00<000000?ooo`3oool0DP3oool00`000000oooo0?ooo`270?ooo`03 0000003oool0oooo00d0oooo00<000000?ooo`3oool00@3oool001L0oooo00<000000?ooo`3oool0 D@3oool00`000000oooo0?ooo`280?ooo`030000003oool0oooo00`0oooo00<000000?ooo`3oool0 0@3oool001P0oooo0P00001A0?ooo`030000003oool0oooo08T0oooo00<000000?ooo`3oool02`3o ool00`000000oooo0?ooo`010?ooo`006P3oool00`000000oooo0?ooo`1>0?ooo`030000003oool0 oooo08T0oooo00<000000?ooo`3oool02`3oool00`000000oooo0?ooo`010?ooo`006`3oool20000 04h0oooo00<000000?ooo`3oool0RP3oool00`000000oooo0?ooo`0:0?ooo`030000003oool0oooo 0040oooo000M0?ooo`030000003oool0oooo04/0oooo00<000000?ooo`3oool0R`3oool00`000000 oooo0?ooo`0:0?ooo`4000000@3oool10?ooo`007P3oool2000004/0oooo00<000000?ooo`3oool0 S03oool00`000000oooo0?ooo`090?ooo`4000000@3oool10?ooo`00803oool00`000000oooo0?oo o`180?ooo`030000003oool0oooo08d0oooo00<000000?ooo`3oool0203oool100000040oooo0@3o ool00240oooo00<000000?ooo`3oool0A`3oool00`000000oooo0?ooo`2=0?ooo`030000003oool0 oooo00P0oooo0@0000010?ooo`40oooo000R0?ooo`800000A`3oool00`000000oooo0?ooo`2>0?oo o`030000003oool0oooo00L0oooo0@0000010?ooo`40oooo000T0?ooo`030000003oool0oooo04@0 oooo00<000000?ooo`3oool0S`3oool00`000000oooo0?ooo`060?ooo`4000000@3oool10?ooo`00 9@3oool2000004@0oooo00<000000?ooo`3oool0T03oool00`000000oooo0?ooo`050?ooo`400000 0@3oool10?ooo`009`3oool00`000000oooo0?ooo`110?ooo`030000003oool0oooo0940oooo00<0 00000?ooo`3oool0103oool100000040oooo0@3oool002P0oooo00<000000?ooo`3oool0@03oool0 0`000000oooo0?ooo`2A0?ooo`030000003oool0oooo00D0oooo0@0000010?ooo`00:@3oool20000 0400oooo00<000000?ooo`3oool0TP3oool00`000000oooo0?ooo`040?ooo`4000000@3oool002/0 oooo00<000000?ooo`3oool0?@3oool00`000000oooo0?ooo`2C0?ooo`030000003oool0oooo00<0 oooo0@0000010?ooo`00;03oool2000003d0oooo00<000000?ooo`3oool0U03oool00`000000oooo 0?ooo`020?ooo`4000000@3oool002h0oooo00<000000?ooo`3oool0>P3oool00`000000oooo0?oo o`2E0?ooo`050000003oool0oooo0?ooo`0000000@3oool002l0oooo0P00000j0?ooo`030000003o ool0oooo09H0oooo00@000000?ooo`3oool000000@3oool00340oooo00<000000?ooo`3oool0=`3o ool00`000000oooo0?ooo`2F0?ooo`040000003oool0oooo00000040oooo000b0?ooo`030000003o ool0oooo03D0oooo00<000000?ooo`3oool0V03oool00`000000oooo0?ooo`0100000000<`3oool2 000003D0oooo00<000000?ooo`3oool0V@3oool100000040oooo0@00000003D0oooo00<000000?oo o`3oool00?ooo`8000006P3oool00`000000oooo0?oo o`1>0?ooo`@00000BP3oool00500oooo00<000000?ooo`3oool05`3oool00`000000oooo0?ooo`19 0?ooo`D00000CP3oool00540oooo0P00000G0?ooo`030000003oool0oooo04D0oooo1000001C0?oo o`00D`3oool00`000000oooo0?ooo`0D0?ooo`030000003oool0oooo0400oooo1@00001G0?ooo`00 E03oool00`000000oooo0?ooo`0C0?ooo`030000003oool0oooo03`0oooo1000001L0?ooo`00E@3o ool2000001<0oooo00<000000?ooo`3oool0>03oool400000600oooo001G0?ooo`030000003oool0 oooo0100oooo00<000000?ooo`3oool0<`3oool5000006@0oooo001H0?ooo`8000003`3oool00`00 0000oooo0?ooo`0`0?ooo`@00000J@3oool005X0oooo00<000000?ooo`3oool0303oool00`000000 oooo0?ooo`0[0?ooo`D00000K@3oool005/0oooo0P00000<0?ooo`030000003oool0oooo02L0oooo 1000001b0?ooo`00G@3oool00`000000oooo0?ooo`090?ooo`030000003oool0oooo02<0oooo1000 001f0?ooo`00GP3oool00`000000oooo0?ooo`080?ooo`030000003oool0oooo01h0oooo1@00001j 0?ooo`00G`3oool2000000P0oooo00<000000?ooo`3oool06P3oool4000007l0oooo001Q0?ooo`03 0000003oool0oooo00D0oooo00<000000?ooo`3oool05@3oool5000008<0oooo001R0?ooo`800000 1@3oool00`000000oooo0?ooo`0A0?ooo`@00000R03oool006@0oooo00<000000?ooo`3oool00P3o ool00`000000oooo0?ooo`0<0?ooo`D00000S03oool006D0oooo00D000000?ooo`3oool0oooo0000 000:0?ooo`@00000T@3oool006H0oooo0P0000000`3oool000000?ooo`050?ooo`@00000U@3oool0 06P0oooo0P0000000`3oool0000000000003000009T0oooo001Y0?ooo`800000WP3oool00001\ \>"], ImageRangeCache->{{{0, 264.312}, {286.938, 0}} -> {0.0486402, -4.72903*^-5, \ 0.00324458, 0.00324458}}], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics3D \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[BoxData[ \(applyForce[obj_, p_, f_] := \((\[IndentingNewLine]af1 = addForce[obj, f]; \[IndentingNewLine]addTorque[af1, CrossProduct[p, f]]\[IndentingNewLine])\)\)], "Input"] }, FrontEndVersion->"4.0 for Macintosh", ScreenRectangle->{{0, 1024}, {0, 748}}, WindowSize->{677, 628}, WindowMargins->{{2, Automatic}, {Automatic, 39}}, MacintoshSystemPageSetup->"\<\ 02P0001804P000000^L2D_ogooL33`9K8085:0?l0000005X0FP000003X<;VP5d 038;VTRX04/00@4100000BL?00400@000000000000000000000000000040I0<0 00000000000@XP404@000000000eDflP\>" ] (*********************************************************************** 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->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[1717, 49, 346, 5, 75, "Input"], Cell[2066, 56, 3138, 49, 443, "Input"], Cell[5207, 107, 106, 2, 27, "Input"], Cell[5316, 111, 2304, 41, 475, "Input"], Cell[7623, 154, 490, 10, 107, "Input"], Cell[8116, 166, 580, 12, 171, "Input"], Cell[8699, 180, 1592, 29, 347, "Input"], Cell[10294, 211, 1606, 28, 411, "Input"], Cell[CellGroupData[{ Cell[11925, 243, 48, 1, 27, "Input"], Cell[11976, 246, 34213, 559, 296, 2290, 161, "GraphicsData", "PostScript", \ "Graphics"], Cell[46192, 807, 132, 3, 26, "Output"] }, Open ]], Cell[46339, 813, 213, 4, 75, "Input"] } ] *) (*********************************************************************** End of Mathematica Notebook file. ***********************************************************************)