Merge lp:esys-particle/esys-particle-win into lp:esys-particle

Proposed by Li Zhiyong
Status: Rejected
Rejected by: Dion Weatherley
Proposed branch: lp:esys-particle/esys-particle-win
Merge into: lp:esys-particle
Diff against target: 154343 lines (+148681/-0)
1113 files modified
trunk/AUTHORS (+33/-0)
trunk/CMakeLists.txt (+89/-0)
trunk/COPYING (+11/-0)
trunk/COPYRIGHT (+11/-0)
trunk/ChangeLog (+15/-0)
trunk/Config/Cpp.am (+14/-0)
trunk/Config/Python.am (+45/-0)
trunk/Config/ax_boost_base.m4 (+219/-0)
trunk/Config/ax_boost_filesystem.m4 (+112/-0)
trunk/Config/ax_boost_python.m4 (+91/-0)
trunk/Config/cppunit.m4 (+80/-0)
trunk/Config/pkg.m4 (+58/-0)
trunk/Config/python.m4 (+193/-0)
trunk/Config/rules.am (+58/-0)
trunk/Doc/FileFormat.ps (+2861/-0)
trunk/Doc/FileFormat.tex (+144/-0)
trunk/Doc/FileFormat.txt (+11/-0)
trunk/Doc/Manual/distutils.sty (+33/-0)
trunk/Doc/Manual/dump-file.tex (+2/-0)
trunk/Doc/Manual/fancyhdr.sty (+329/-0)
trunk/Doc/Manual/fncychap.sty (+433/-0)
trunk/Doc/Manual/geo-file.tex (+135/-0)
trunk/Doc/Manual/howto.cls (+107/-0)
trunk/Doc/Manual/ltxmarkup.sty (+40/-0)
trunk/Doc/Manual/manual.cls (+153/-0)
trunk/Doc/Manual/pypaper.sty (+18/-0)
trunk/Doc/Manual/python.ist (+11/-0)
trunk/Doc/Manual/python.sty (+1309/-0)
trunk/Doc/Manual/underscore.sty (+232/-0)
trunk/Doc/Manual/userman.tex (+1009/-0)
trunk/Doc/Refman/refman.tex (+676/-0)
trunk/Doxyfile (+1428/-0)
trunk/Fields/CMakeLists.txt (+158/-0)
trunk/Fields/CheckedScalarInteractionFieldSlave.h (+49/-0)
trunk/Fields/CheckedScalarInteractionFieldSlave.hpp (+186/-0)
trunk/Fields/CheckedScalarInteractionFieldSlaveTagged.h (+48/-0)
trunk/Fields/CheckedScalarInteractionFieldSlaveTagged.hpp (+120/-0)
trunk/Fields/CheckedVectorInteractionFieldSlave.h (+48/-0)
trunk/Fields/FieldMaster.cpp (+154/-0)
trunk/Fields/FieldMaster.h (+79/-0)
trunk/Fields/FieldSlave.cpp (+18/-0)
trunk/Fields/FieldSlave.h (+40/-0)
trunk/Fields/Fields_dll.h (+14/-0)
trunk/Fields/InteractionFieldMaster.cpp (+513/-0)
trunk/Fields/InteractionFieldMaster.h (+75/-0)
trunk/Fields/InteractionFieldSlave.h (+52/-0)
trunk/Fields/InteractionFieldSlave.hpp (+49/-0)
trunk/Fields/Makefile.am (+81/-0)
trunk/Fields/MaxTrigger.cpp (+51/-0)
trunk/Fields/MaxTrigger.h (+45/-0)
trunk/Fields/ParticleFieldMaster.cpp (+621/-0)
trunk/Fields/ParticleFieldMaster.h (+90/-0)
trunk/Fields/ScalarInteractionFieldSlave.h (+49/-0)
trunk/Fields/ScalarInteractionFieldSlave.hpp (+137/-0)
trunk/Fields/ScalarInteractionFieldSlaveTagged.h (+48/-0)
trunk/Fields/ScalarInteractionFieldSlaveTagged.hpp (+104/-0)
trunk/Fields/ScalarParticleDistributionMaster.cpp (+119/-0)
trunk/Fields/ScalarParticleDistributionMaster.h (+49/-0)
trunk/Fields/ScalarParticleFieldSlave.h (+50/-0)
trunk/Fields/ScalarParticleFieldSlave.hpp (+125/-0)
trunk/Fields/ScalarParticleFieldSlaveTagged.h (+48/-0)
trunk/Fields/ScalarParticleFieldSlaveTagged.hpp (+129/-0)
trunk/Fields/ScalarTriangleFieldMaster.cpp (+156/-0)
trunk/Fields/ScalarTriangleFieldMaster.h (+53/-0)
trunk/Fields/ScalarTriangleFieldSlave.cpp (+72/-0)
trunk/Fields/ScalarTriangleFieldSlave.h (+56/-0)
trunk/Fields/TriggeredVectorParticleFieldMaster.cpp (+122/-0)
trunk/Fields/TriggeredVectorParticleFieldMaster.h (+50/-0)
trunk/Fields/VectorEdge2DFieldSlave.cpp (+78/-0)
trunk/Fields/VectorEdge2DFieldSlave.h (+54/-0)
trunk/Fields/VectorInteractionFieldMaster.cpp (+414/-0)
trunk/Fields/VectorInteractionFieldMaster.h (+74/-0)
trunk/Fields/VectorInteractionFieldSlave.h (+50/-0)
trunk/Fields/VectorInteractionFieldSlave.hpp (+127/-0)
trunk/Fields/VectorParticleFieldSlave.h (+46/-0)
trunk/Fields/VectorParticleFieldSlave.hpp (+55/-0)
trunk/Fields/VectorParticleFieldSlaveTagged.h (+45/-0)
trunk/Fields/VectorParticleFieldSlaveTagged.hpp (+64/-0)
trunk/Fields/VectorTriangleFieldMaster.cpp (+156/-0)
trunk/Fields/VectorTriangleFieldMaster.h (+54/-0)
trunk/Fields/VectorTriangleFieldSlave.cpp (+72/-0)
trunk/Fields/VectorTriangleFieldSlave.h (+55/-0)
trunk/Fields/VectorWallFieldSlave.h (+40/-0)
trunk/Fields/VectorWallFieldSlave.hpp (+50/-0)
trunk/Fields/WallFieldMaster.cpp (+177/-0)
trunk/Fields/WallFieldMaster.h (+50/-0)
trunk/Fields/WallFieldSlave.cpp (+35/-0)
trunk/Fields/WallFieldSlave.h (+44/-0)
trunk/Fields/field_const.h (+39/-0)
trunk/Foundation/BoundingBox.cpp (+14/-0)
trunk/Foundation/BoundingBox.h (+58/-0)
trunk/Foundation/BoundingBox.hpp (+89/-0)
trunk/Foundation/BoundingSphere.cpp (+15/-0)
trunk/Foundation/BoundingSphere.h (+63/-0)
trunk/Foundation/BoundingSphere.hpp (+92/-0)
trunk/Foundation/CMakeLists.txt (+139/-0)
trunk/Foundation/Counter.cpp (+134/-0)
trunk/Foundation/Counter.h (+82/-0)
trunk/Foundation/Error.h (+35/-0)
trunk/Foundation/Foundation_dll.h (+14/-0)
trunk/Foundation/Functional.h (+83/-0)
trunk/Foundation/Makefile.am (+68/-0)
trunk/Foundation/Matrix3.cpp (+236/-0)
trunk/Foundation/Matrix3.h (+103/-0)
trunk/Foundation/Matrix3.hpp (+326/-0)
trunk/Foundation/PathSearcher.cpp (+60/-0)
trunk/Foundation/PathSearcher.h (+42/-0)
trunk/Foundation/PathUtil.cpp (+63/-0)
trunk/Foundation/PathUtil.h (+24/-0)
trunk/Foundation/Quaternion.cpp (+320/-0)
trunk/Foundation/Quaternion.h (+112/-0)
trunk/Foundation/Quaternion.hpp (+322/-0)
trunk/Foundation/RingBuffer.h (+42/-0)
trunk/Foundation/RingBuffer.hpp (+40/-0)
trunk/Foundation/Rng.cpp (+25/-0)
trunk/Foundation/Rng.h (+86/-0)
trunk/Foundation/Rng.hpp (+52/-0)
trunk/Foundation/Runnable.cpp (+22/-0)
trunk/Foundation/Runnable.h (+32/-0)
trunk/Foundation/StlIterator.h (+126/-0)
trunk/Foundation/StringUtil.cpp (+14/-0)
trunk/Foundation/StringUtil.h (+200/-0)
trunk/Foundation/Timer.cpp (+285/-0)
trunk/Foundation/Timer.h (+125/-0)
trunk/Foundation/console.cpp (+425/-0)
trunk/Foundation/console.h (+158/-0)
trunk/Foundation/cube_eq.cpp (+96/-0)
trunk/Foundation/cube_eq.h (+44/-0)
trunk/Foundation/quadtuple.h (+51/-0)
trunk/Foundation/quintuple.h (+51/-0)
trunk/Foundation/realdist.cpp (+94/-0)
trunk/Foundation/realdist.h (+40/-0)
trunk/Foundation/t_list.h (+118/-0)
trunk/Foundation/t_list.hpp (+338/-0)
trunk/Foundation/triplet.h (+50/-0)
trunk/Foundation/vec3.cpp (+33/-0)
trunk/Foundation/vec3.h (+145/-0)
trunk/Foundation/vec3.hpp (+326/-0)
trunk/Geometry/AEdge.cpp (+92/-0)
trunk/Geometry/AEdge.h (+43/-0)
trunk/Geometry/ARandomAssembly.cpp (+244/-0)
trunk/Geometry/ARandomAssembly.h (+73/-0)
trunk/Geometry/BasicInteraction.cpp (+39/-0)
trunk/Geometry/BasicInteraction.h (+86/-0)
trunk/Geometry/BlockGenerator.cpp (+154/-0)
trunk/Geometry/BlockGenerator.h (+94/-0)
trunk/Geometry/BoxPacker.cpp (+14/-0)
trunk/Geometry/BoxPacker.h (+79/-0)
trunk/Geometry/BoxPacker.hpp (+158/-0)
trunk/Geometry/CMakeLists.txt (+256/-0)
trunk/Geometry/CMakeLists.txt.bk08202011 (+258/-0)
trunk/Geometry/CircleBoxVolCalculator.cpp (+21/-0)
trunk/Geometry/CircleBoxVolCalculator.h (+49/-0)
trunk/Geometry/CircularNeighbourTable.cpp (+21/-0)
trunk/Geometry/CircularNeighbourTable.h (+118/-0)
trunk/Geometry/CircularNeighbourTable.hpp (+322/-0)
trunk/Geometry/ClosePackBlock.cpp (+15/-0)
trunk/Geometry/ClosePackBlock.h (+89/-0)
trunk/Geometry/ClosePackBlock.hpp (+119/-0)
trunk/Geometry/ClosePackIterator.cpp (+35/-0)
trunk/Geometry/ClosePackIterator.h (+129/-0)
trunk/Geometry/ClosePackIterator.hpp (+196/-0)
trunk/Geometry/ClosePackOrientation.h (+38/-0)
trunk/Geometry/Corner.cpp (+122/-0)
trunk/Geometry/Corner.h (+64/-0)
trunk/Geometry/Corner2D.cpp (+130/-0)
trunk/Geometry/Corner2D.h (+57/-0)
trunk/Geometry/CubicBlock.cpp (+15/-0)
trunk/Geometry/CubicBlock.h (+44/-0)
trunk/Geometry/CubicBlock.hpp (+35/-0)
trunk/Geometry/CubicBlockIterator.cpp (+21/-0)
trunk/Geometry/CubicBlockIterator.h (+62/-0)
trunk/Geometry/CubicBlockIterator.hpp (+109/-0)
trunk/Geometry/CubicBoxPacker.cpp (+14/-0)
trunk/Geometry/CubicBoxPacker.h (+81/-0)
trunk/Geometry/CubicBoxPacker.hpp (+126/-0)
trunk/Geometry/DistConnections.cpp (+14/-0)
trunk/Geometry/DistConnections.h (+165/-0)
trunk/Geometry/DistConnections.hpp (+275/-0)
trunk/Geometry/Edge.cpp (+189/-0)
trunk/Geometry/Edge.h (+58/-0)
trunk/Geometry/Edge2D.cpp (+164/-0)
trunk/Geometry/Edge2D.h (+79/-0)
trunk/Geometry/FaultedBlock2d.cpp (+251/-0)
trunk/Geometry/FaultedBlock2d.h (+55/-0)
trunk/Geometry/GeometryInfo.cpp (+333/-0)
trunk/Geometry/GeometryInfo.h (+128/-0)
trunk/Geometry/Geometry_dll.h (+14/-0)
trunk/Geometry/GougeBlock3D.cpp (+888/-0)
trunk/Geometry/GougeBlock3D.h (+288/-0)
trunk/Geometry/GougeConfig.cpp (+14/-0)
trunk/Geometry/GougeConfig.h (+520/-0)
trunk/Geometry/GougeConfig.hpp (+1153/-0)
trunk/Geometry/Grain.cpp (+14/-0)
trunk/Geometry/Grain.h (+64/-0)
trunk/Geometry/Grain.hpp (+90/-0)
trunk/Geometry/GrainCollection.cpp (+14/-0)
trunk/Geometry/GrainCollection.h (+162/-0)
trunk/Geometry/GrainCollection.hpp (+154/-0)
trunk/Geometry/GrainRandomBoxPacker.cpp (+14/-0)
trunk/Geometry/GrainRandomBoxPacker.h (+121/-0)
trunk/Geometry/GrainRandomBoxPacker.hpp (+217/-0)
trunk/Geometry/GranularGougeBlock3D.cpp (+193/-0)
trunk/Geometry/GranularGougeBlock3D.h (+68/-0)
trunk/Geometry/GridIterator.cpp (+52/-0)
trunk/Geometry/GridIterator.h (+286/-0)
trunk/Geometry/HexagBlock.cpp (+15/-0)
trunk/Geometry/HexagBlock.h (+43/-0)
trunk/Geometry/HexagBlock.hpp (+35/-0)
trunk/Geometry/HexagBlockIterator.cpp (+21/-0)
trunk/Geometry/HexagBlockIterator.h (+62/-0)
trunk/Geometry/HexagBlockIterator.hpp (+79/-0)
trunk/Geometry/IntersectionVolCalculator.cpp (+22/-0)
trunk/Geometry/IntersectionVolCalculator.h (+238/-0)
trunk/Geometry/IntersectionVolCalculator.hpp (+1188/-0)
trunk/Geometry/LayeredBlock.cpp (+45/-0)
trunk/Geometry/LayeredBlock.h (+45/-0)
trunk/Geometry/Line.cpp (+33/-0)
trunk/Geometry/Line.h (+41/-0)
trunk/Geometry/LineSegment.cpp (+84/-0)
trunk/Geometry/LineSegment.h (+43/-0)
trunk/Geometry/Makefile.am (+75/-0)
trunk/Geometry/NeighbourTable.cpp (+21/-0)
trunk/Geometry/NeighbourTable.h (+118/-0)
trunk/Geometry/NeighbourTable.hpp (+327/-0)
trunk/Geometry/Packer.cpp (+14/-0)
trunk/Geometry/Packer.h (+98/-0)
trunk/Geometry/Packer.hpp (+156/-0)
trunk/Geometry/PackerGenerators.cpp (+14/-0)
trunk/Geometry/PackerGenerators.h (+180/-0)
trunk/Geometry/PackerGenerators.hpp (+209/-0)
trunk/Geometry/PaddedBlock3D.cpp (+247/-0)
trunk/Geometry/PaddedBlock3D.h (+44/-0)
trunk/Geometry/ParticleCollection.cpp (+15/-0)
trunk/Geometry/ParticleCollection.h (+169/-0)
trunk/Geometry/ParticleCollection.hpp (+154/-0)
trunk/Geometry/ParticleComparer.cpp (+14/-0)
trunk/Geometry/ParticleComparer.h (+40/-0)
trunk/Geometry/ParticleComparer.hpp (+47/-0)
trunk/Geometry/ParticleFitter.cpp (+22/-0)
trunk/Geometry/ParticleFitter.h (+514/-0)
trunk/Geometry/ParticleGenerator.cpp (+60/-0)
trunk/Geometry/ParticleGenerator.h (+56/-0)
trunk/Geometry/Plane.cpp (+100/-0)
trunk/Geometry/Plane.h (+66/-0)
trunk/Geometry/PointCloud.cpp (+109/-0)
trunk/Geometry/PointCloud.h (+48/-0)
trunk/Geometry/RandomAssembly2D.cpp (+230/-0)
trunk/Geometry/RandomAssembly2D.h (+62/-0)
trunk/Geometry/RandomAssembly3D.cpp (+247/-0)
trunk/Geometry/RandomAssembly3D.h (+62/-0)
trunk/Geometry/RandomBlock.cpp (+247/-0)
trunk/Geometry/RandomBlock.h (+62/-0)
trunk/Geometry/RandomBlock3D.cpp (+269/-0)
trunk/Geometry/RandomBlock3D.h (+66/-0)
trunk/Geometry/RandomBlockGenerator.cpp (+229/-0)
trunk/Geometry/RandomBlockGenerator.h (+86/-0)
trunk/Geometry/RandomBoxPacker.cpp (+14/-0)
trunk/Geometry/RandomBoxPacker.h (+190/-0)
trunk/Geometry/RandomBoxPacker.hpp (+501/-0)
trunk/Geometry/RandomSpherePacker.cpp (+14/-0)
trunk/Geometry/RandomSpherePacker.h (+179/-0)
trunk/Geometry/RandomSpherePacker.hpp (+412/-0)
trunk/Geometry/RectPatch.cpp (+103/-0)
trunk/Geometry/RectPatch.h (+39/-0)
trunk/Geometry/RegularBlockGenerator.cpp (+53/-0)
trunk/Geometry/RegularBlockGenerator.h (+53/-0)
trunk/Geometry/RoughPaddedBlock3d.cpp (+229/-0)
trunk/Geometry/RoughPaddedBlock3d.h (+56/-0)
trunk/Geometry/SimpleBlock.cpp (+15/-0)
trunk/Geometry/SimpleBlock.h (+95/-0)
trunk/Geometry/SimpleBlock.hpp (+134/-0)
trunk/Geometry/SimpleNTable.cpp (+250/-0)
trunk/Geometry/SimpleNTable.h (+86/-0)
trunk/Geometry/SimpleNTable3D.cpp (+248/-0)
trunk/Geometry/SimpleNTable3D.h (+81/-0)
trunk/Geometry/SimpleParticle.cpp (+17/-0)
trunk/Geometry/SimpleParticle.h (+79/-0)
trunk/Geometry/SimpleParticle.hpp (+128/-0)
trunk/Geometry/SimpleParticleData.cpp (+180/-0)
trunk/Geometry/SimpleParticleData.h (+92/-0)
trunk/Geometry/SimpleParticleData.hpp (+195/-0)
trunk/Geometry/SphAggGougeBlock.cpp (+266/-0)
trunk/Geometry/SphAggGougeBlock.h (+86/-0)
trunk/Geometry/SphAggGougeBlock.hpp (+50/-0)
trunk/Geometry/Sphere.h (+40/-0)
trunk/Geometry/Sphere2d.cpp (+239/-0)
trunk/Geometry/Sphere2d.h (+43/-0)
trunk/Geometry/Sphere3d.cpp (+210/-0)
trunk/Geometry/Sphere3d.h (+39/-0)
trunk/Geometry/SphereBlockGenerator.cpp (+351/-0)
trunk/Geometry/SphereBlockGenerator.h (+75/-0)
trunk/Geometry/SphereBoxVolCalculator.cpp (+21/-0)
trunk/Geometry/SphereBoxVolCalculator.h (+49/-0)
trunk/Geometry/SphereFitter.cpp (+14/-0)
trunk/Geometry/SphereFitter.h (+749/-0)
trunk/Geometry/SphereFitter.hpp (+19/-0)
trunk/Geometry/SphereNeighbours.cpp (+14/-0)
trunk/Geometry/SphereNeighbours.h (+153/-0)
trunk/Geometry/SphereNeighbours.hpp (+276/-0)
trunk/Geometry/SplitBlock.cpp (+94/-0)
trunk/Geometry/SplitBlock.h (+40/-0)
trunk/Geometry/SplitBlock3D.cpp (+158/-0)
trunk/Geometry/SplitBlock3D.h (+42/-0)
trunk/Geometry/Triangle.cpp (+317/-0)
trunk/Geometry/Triangle.h (+98/-0)
trunk/Geometry/Vec3L.cpp (+21/-0)
trunk/Geometry/Vec3L.h (+165/-0)
trunk/Geometry/VtkXmlWriter.cpp (+346/-0)
trunk/Geometry/vtkxmlwriter.h (+100/-0)
trunk/INSTALL (+15/-0)
trunk/MainBE/CMakeLists.txt (+54/-0)
trunk/MainBE/Makefile.am (+36/-0)
trunk/MainBE/Worker.cpp (+83/-0)
trunk/MainBE/version.h (+21/-0)
trunk/Makefile.am (+22/-0)
trunk/Model/ABCDamping.h (+50/-0)
trunk/Model/ABCDamping.hpp (+96/-0)
trunk/Model/ABCDampingIGP.cpp (+63/-0)
trunk/Model/ABCDampingIGP.h (+45/-0)
trunk/Model/AdhesiveFriction.cpp (+124/-0)
trunk/Model/AdhesiveFriction.h (+66/-0)
trunk/Model/BCorner2DInteraction.cpp (+140/-0)
trunk/Model/BCorner2DInteraction.h (+63/-0)
trunk/Model/BEdge2DInteraction.cpp (+116/-0)
trunk/Model/BEdge2DInteraction.h (+68/-0)
trunk/Model/BMesh2DIP.h (+74/-0)
trunk/Model/BMesh2DInteraction.h (+35/-0)
trunk/Model/BMesh2DInteractionCpData.cpp (+63/-0)
trunk/Model/BMesh2DInteractionCpData.h (+57/-0)
trunk/Model/BTriMeshIP.cpp (+91/-0)
trunk/Model/BTriMeshIP.h (+89/-0)
trunk/Model/BTriMeshInteraction.h (+32/-0)
trunk/Model/BTriMeshInteractionCpData.cpp (+80/-0)
trunk/Model/BTriMeshInteractionCpData.h (+43/-0)
trunk/Model/BTriangleInteraction.cpp (+116/-0)
trunk/Model/BTriangleInteraction.h (+69/-0)
trunk/Model/BWallInteraction.cpp (+15/-0)
trunk/Model/BWallInteraction.h (+46/-0)
trunk/Model/BWallInteraction.hpp (+62/-0)
trunk/Model/BWallInteractionGroup.cpp (+67/-0)
trunk/Model/BWallInteractionGroup.h (+91/-0)
trunk/Model/BWallInteractionGroup.hpp (+197/-0)
trunk/Model/BasicParticle.cpp (+46/-0)
trunk/Model/BasicParticle.h (+81/-0)
trunk/Model/BodyForceGroup.cpp (+63/-0)
trunk/Model/BodyForceGroup.h (+119/-0)
trunk/Model/BodyForceGroup.hpp (+66/-0)
trunk/Model/BondedInteraction.cpp (+311/-0)
trunk/Model/BondedInteraction.h (+128/-0)
trunk/Model/BondedInteractionCpData.cpp (+100/-0)
trunk/Model/BondedInteractionCpData.h (+69/-0)
trunk/Model/CMakeLists.txt (+360/-0)
trunk/Model/CMakeLists.txt.bk (+397/-0)
trunk/Model/CappedBondedInteraction.cpp (+189/-0)
trunk/Model/CappedBondedInteraction.h (+93/-0)
trunk/Model/Damping.h (+88/-0)
trunk/Model/Damping.hpp (+225/-0)
trunk/Model/DampingIGP.cpp (+75/-0)
trunk/Model/DampingIGP.h (+63/-0)
trunk/Model/ECorner2DInteraction.cpp (+60/-0)
trunk/Model/ECorner2DInteraction.h (+50/-0)
trunk/Model/ECornerInteraction.cpp (+67/-0)
trunk/Model/ECornerInteraction.h (+51/-0)
trunk/Model/EEdge2DInteraction.cpp (+65/-0)
trunk/Model/EEdge2DInteraction.h (+49/-0)
trunk/Model/EEdgeInteraction.cpp (+74/-0)
trunk/Model/EEdgeInteraction.h (+49/-0)
trunk/Model/EMesh2DInteraction.h (+27/-0)
trunk/Model/ETriMeshIP.h (+72/-0)
trunk/Model/ETriMeshInteraction.h (+30/-0)
trunk/Model/ETriangleInteraction.cpp (+69/-0)
trunk/Model/ETriangleInteraction.h (+52/-0)
trunk/Model/EWallInteraction.cpp (+15/-0)
trunk/Model/EWallInteraction.h (+47/-0)
trunk/Model/EWallInteraction.hpp (+112/-0)
trunk/Model/EWallInteractionGroup.cpp (+62/-0)
trunk/Model/EWallInteractionGroup.h (+84/-0)
trunk/Model/EWallInteractionGroup.hpp (+165/-0)
trunk/Model/ElasticInteraction.cpp (+171/-0)
trunk/Model/ElasticInteraction.h (+86/-0)
trunk/Model/ElasticInteractionGroup.cpp (+33/-0)
trunk/Model/ElasticInteractionGroup.h (+60/-0)
trunk/Model/ElasticInteractionGroup.hpp (+139/-0)
trunk/Model/FractalFriction.cpp (+218/-0)
trunk/Model/FractalFriction.h (+78/-0)
trunk/Model/FrictionInteraction.cpp (+669/-0)
trunk/Model/FrictionInteraction.h (+123/-0)
trunk/Model/HertzianElasticInteraction.cpp (+137/-0)
trunk/Model/HertzianElasticInteraction.h (+74/-0)
trunk/Model/HertzianViscoElasticFrictionInteraction.cpp (+745/-0)
trunk/Model/HertzianViscoElasticFrictionInteraction.h (+154/-0)
trunk/Model/HertzianViscoElasticInteraction.cpp (+182/-0)
trunk/Model/HertzianViscoElasticInteraction.h (+86/-0)
trunk/Model/IGParam.cpp (+31/-0)
trunk/Model/IGParam.h (+53/-0)
trunk/Model/Interaction.cpp (+97/-0)
trunk/Model/Interaction.h (+118/-0)
trunk/Model/InteractionGroup.h (+73/-0)
trunk/Model/InteractionGroup.hpp (+17/-0)
trunk/Model/InteractionParam.cpp (+35/-0)
trunk/Model/InteractionParam.h (+46/-0)
trunk/Model/LinearDashpotInteraction.cpp (+133/-0)
trunk/Model/LinearDashpotInteraction.h (+74/-0)
trunk/Model/LocalDamping.h (+81/-0)
trunk/Model/LocalDamping.hpp (+218/-0)
trunk/Model/LocalDampingIGP.cpp (+66/-0)
trunk/Model/LocalDampingIGP.h (+55/-0)
trunk/Model/Makefile.am (+185/-0)
trunk/Model/Mesh2D.cpp (+251/-0)
trunk/Model/Mesh2D.h (+85/-0)
trunk/Model/Mesh2D.hpp (+51/-0)
trunk/Model/MeshData.cpp (+119/-0)
trunk/Model/MeshData.h (+54/-0)
trunk/Model/MeshData2D.cpp (+95/-0)
trunk/Model/MeshData2D.h (+53/-0)
trunk/Model/Particle.cpp (+499/-0)
trunk/Model/Particle.h (+193/-0)
trunk/Model/RotBondedInteraction.cpp (+684/-0)
trunk/Model/RotBondedInteraction.h (+174/-0)
trunk/Model/RotDamping.h (+84/-0)
trunk/Model/RotDamping.hpp (+185/-0)
trunk/Model/RotElasticInteraction.cpp (+188/-0)
trunk/Model/RotElasticInteraction.h (+91/-0)
trunk/Model/RotElasticInteractionGroup.cpp (+50/-0)
trunk/Model/RotElasticInteractionGroup.h (+59/-0)
trunk/Model/RotElasticInteractionGroup.hpp (+131/-0)
trunk/Model/RotFricInteraction.cpp (+580/-0)
trunk/Model/RotFricInteraction.h (+154/-0)
trunk/Model/RotLocalDamping.h (+81/-0)
trunk/Model/RotLocalDamping.hpp (+218/-0)
trunk/Model/RotPairInteraction.cpp (+70/-0)
trunk/Model/RotPairInteraction.h (+73/-0)
trunk/Model/RotParticle.cpp (+502/-0)
trunk/Model/RotParticle.h (+241/-0)
trunk/Model/RotParticleVi.cpp (+598/-0)
trunk/Model/RotParticleVi.h (+246/-0)
trunk/Model/RotThermBondedInteraction.cpp (+1005/-0)
trunk/Model/RotThermBondedInteraction.h (+160/-0)
trunk/Model/RotThermElasticInteraction.cpp (+244/-0)
trunk/Model/RotThermElasticInteraction.h (+106/-0)
trunk/Model/RotThermElasticInteractionGroup.cpp (+55/-0)
trunk/Model/RotThermElasticInteractionGroup.h (+54/-0)
trunk/Model/RotThermElasticInteractionGroup.hpp (+139/-0)
trunk/Model/RotThermFricInteraction.cpp (+541/-0)
trunk/Model/RotThermFricInteraction.h (+139/-0)
trunk/Model/RotThermPairInteraction.cpp (+69/-0)
trunk/Model/RotThermPairInteraction.h (+64/-0)
trunk/Model/RotThermParticle.cpp (+579/-0)
trunk/Model/RotThermParticle.h (+242/-0)
trunk/Model/ShortBondedInteraction.cpp (+139/-0)
trunk/Model/ShortBondedInteraction.h (+68/-0)
trunk/Model/ShortBondedInteractionCpData.cpp (+74/-0)
trunk/Model/ShortBondedInteractionCpData.h (+45/-0)
trunk/Model/SoftBWallInteraction.cpp (+15/-0)
trunk/Model/SoftBWallInteraction.h (+44/-0)
trunk/Model/SoftBWallInteraction.hpp (+73/-0)
trunk/Model/SoftBWallInteractionGroup.cpp (+84/-0)
trunk/Model/SoftBWallInteractionGroup.h (+86/-0)
trunk/Model/SoftBWallInteractionGroup.hpp (+88/-0)
trunk/Model/TempPartStore.h (+72/-0)
trunk/Model/TempPartStore.hpp (+109/-0)
trunk/Model/ThermParticle.cpp (+76/-0)
trunk/Model/ThermParticle.h (+110/-0)
trunk/Model/TriMesh.cpp (+322/-0)
trunk/Model/TriMesh.h (+99/-0)
trunk/Model/TriMesh.hpp (+51/-0)
trunk/Model/VWFrictionInteraction.cpp (+230/-0)
trunk/Model/VWFrictionInteraction.h (+64/-0)
trunk/Model/ViscWallIG.cpp (+65/-0)
trunk/Model/ViscWallIG.h (+90/-0)
trunk/Model/ViscWallIG.hpp (+183/-0)
trunk/Model/ViscWallInteraction.cpp (+15/-0)
trunk/Model/ViscWallInteraction.h (+45/-0)
trunk/Model/ViscWallInteraction.hpp (+68/-0)
trunk/Model/Wall.cpp (+144/-0)
trunk/Model/Wall.h (+88/-0)
trunk/Model/WallIG.h (+77/-0)
trunk/Model/WallInteraction.cpp (+15/-0)
trunk/Model/WallInteraction.h (+56/-0)
trunk/Model/WallInteraction.hpp (+39/-0)
trunk/Model/brokenEWallInteractionGroup.h (+83/-0)
trunk/Model/brokenEWallInteractionGroup.hpp (+143/-0)
trunk/NEWS (+15/-0)
trunk/Parallel/ASubLattice.cpp (+42/-0)
trunk/Parallel/ASubLattice.h (+166/-0)
trunk/Parallel/BMesh2D_cmd.cpp (+32/-0)
trunk/Parallel/BMesh2D_cmd.h (+35/-0)
trunk/Parallel/BroadCast_cmd.cpp (+48/-0)
trunk/Parallel/BroadCast_cmd.h (+86/-0)
trunk/Parallel/BroadCast_cmd.hpp (+30/-0)
trunk/Parallel/CMakeLists.txt (+200/-0)
trunk/Parallel/CMakeLists.txt.bk (+235/-0)
trunk/Parallel/CheckPointController.cpp (+434/-0)
trunk/Parallel/CheckPointController.h (+215/-0)
trunk/Parallel/CheckPointInfo.cpp (+167/-0)
trunk/Parallel/CheckPointInfo.h (+67/-0)
trunk/Parallel/CheckPointLoader.cpp (+21/-0)
trunk/Parallel/CheckPointLoader.h (+131/-0)
trunk/Parallel/CheckPointParams.cpp (+63/-0)
trunk/Parallel/CheckPointParams.h (+65/-0)
trunk/Parallel/CheckPointable.cpp (+33/-0)
trunk/Parallel/CheckPointable.h (+43/-0)
trunk/Parallel/CheckPointer.cpp (+117/-0)
trunk/Parallel/CheckPointer.h (+71/-0)
trunk/Parallel/GeometryReader.cpp (+291/-0)
trunk/Parallel/GeometryReader.h (+232/-0)
trunk/Parallel/GetRef_cmd.cpp (+38/-0)
trunk/Parallel/GetRef_cmd.h (+46/-0)
trunk/Parallel/IterativeReader.h (+130/-0)
trunk/Parallel/IterativeReader.hpp (+122/-0)
trunk/Parallel/LatticeMaster.cpp (+3303/-0)
trunk/Parallel/LatticeMaster.h (+605/-0)
trunk/Parallel/LatticeMaster.hpp (+317/-0)
trunk/Parallel/LatticeParam.cpp (+69/-0)
trunk/Parallel/LatticeParam.h (+59/-0)
trunk/Parallel/Makefile.am (+113/-0)
trunk/Parallel/Mesh2DReader.cpp (+138/-0)
trunk/Parallel/Mesh2DReader.h (+89/-0)
trunk/Parallel/Mesh2DReaderImpl.cpp (+60/-0)
trunk/Parallel/Mesh2DReaderImpl.h (+63/-0)
trunk/Parallel/MeshReader.cpp (+127/-0)
trunk/Parallel/MeshReader.h (+89/-0)
trunk/Parallel/MeshReaderImpl.cpp (+61/-0)
trunk/Parallel/MeshReaderImpl.h (+63/-0)
trunk/Parallel/MpiInfo.cpp (+39/-0)
trunk/Parallel/MpiInfo.h (+47/-0)
trunk/Parallel/MpiWrap.h (+30/-0)
trunk/Parallel/ParallelModel_dll.h (+14/-0)
trunk/Parallel/RankAndComm.h (+43/-0)
trunk/Parallel/RotSubLattice.h (+46/-0)
trunk/Parallel/RotSubLattice.hpp (+252/-0)
trunk/Parallel/SubLattice.cpp (+13/-0)
trunk/Parallel/SubLattice.h (+260/-0)
trunk/Parallel/SubLattice.hpp (+3166/-0)
trunk/Parallel/SubLatticeControler.cpp (+661/-0)
trunk/Parallel/SubLatticeControler.h (+96/-0)
trunk/Parallel/mpi_tag_defs.h (+35/-0)
trunk/Parallel/mpia2abuf.cpp (+111/-0)
trunk/Parallel/mpia2abuf.h (+52/-0)
trunk/Parallel/mpibarrier.cpp (+48/-0)
trunk/Parallel/mpibarrier.h (+46/-0)
trunk/Parallel/mpibuf.cpp (+205/-0)
trunk/Parallel/mpibuf.h (+115/-0)
trunk/Parallel/mpicmdbuf.cpp (+55/-0)
trunk/Parallel/mpicmdbuf.h (+47/-0)
trunk/Parallel/mpisgbuf.cpp (+318/-0)
trunk/Parallel/mpisgbuf.h (+147/-0)
trunk/Parallel/mpisgvbuf.cpp (+414/-0)
trunk/Parallel/mpisgvbuf.h (+98/-0)
trunk/Parallel/mpivbuf.cpp (+270/-0)
trunk/Parallel/mpivbuf.h (+70/-0)
trunk/Parallel/shake_mpi_defs.h (+18/-0)
trunk/Parallel/slave_main.cpp (+26/-0)
trunk/Parallel/sublattice_cmd.h (+113/-0)
trunk/Parallel/vec3_mpi.cpp (+27/-0)
trunk/Parallel/vec3_mpi.h (+29/-0)
trunk/Parallel/vecpack.cpp (+45/-0)
trunk/ParallelModel/CMakeLists.txt (+234/-0)
trunk/Python/BoostPythonUtil/CMakeLists.txt (+47/-0)
trunk/Python/BoostPythonUtil/ListConverter.cpp (+15/-0)
trunk/Python/BoostPythonUtil/ListConverter.h (+100/-0)
trunk/Python/BoostPythonUtil/Makefile.am (+23/-0)
trunk/Python/BoostPythonUtil/PythonIterIterator.h (+49/-0)
trunk/Python/BoostPythonUtil/PythonIterIterator.hpp (+64/-0)
trunk/Python/BoostPythonUtil/Util.h (+38/-0)
trunk/Python/CMakeLists.txt (+117/-0)
trunk/Python/Makefile.am (+60/-0)
trunk/Python/MpiPython/CMakeLists.txt (+61/-0)
trunk/Python/MpiPython/Makefile.am (+40/-0)
trunk/Python/MpiPython/MpiPythonMain.cpp (+67/-0)
trunk/Python/MpiPython/lamexecLsm (+33/-0)
trunk/Python/MpiPython/lsmpython (+24/-0)
trunk/Python/MpiPython/mptrunLsm (+24/-0)
trunk/Python/MpiPython/mptrunLsmFile (+22/-0)
trunk/Python/epydoc/CMakeLists.txt (+73/-0)
trunk/Python/epydoc/Makefile.am (+62/-0)
trunk/Python/epydoc/accessBlue.css (+99/-0)
trunk/Python/esys/CMakeLists.txt (+29/-0)
trunk/Python/esys/Makefile.am (+19/-0)
trunk/Python/esys/__init__.py (+13/-0)
trunk/Python/esys/lsm/BondInteractionGroupPy.cpp (+125/-0)
trunk/Python/esys/lsm/BondInteractionGroupPy.h (+71/-0)
trunk/Python/esys/lsm/BondedMesh2DPrmsPy.cpp (+129/-0)
trunk/Python/esys/lsm/BondedMesh2DPrmsPy.h (+64/-0)
trunk/Python/esys/lsm/BondedTriMeshPrmsPy.cpp (+127/-0)
trunk/Python/esys/lsm/BondedTriMeshPrmsPy.h (+70/-0)
trunk/Python/esys/lsm/CMakeLists.txt (+187/-0)
trunk/Python/esys/lsm/CMakeLists.txt.bk08202011 (+182/-0)
trunk/Python/esys/lsm/CheckPointParamsPy.cpp (+118/-0)
trunk/Python/esys/lsm/CheckPointParamsPy.h (+58/-0)
trunk/Python/esys/lsm/ElasticMesh2DPrmsPy.cpp (+99/-0)
trunk/Python/esys/lsm/ElasticMesh2DPrmsPy.h (+57/-0)
trunk/Python/esys/lsm/ElasticTriMeshPrmsPy.cpp (+67/-0)
trunk/Python/esys/lsm/ElasticTriMeshPrmsPy.h (+44/-0)
trunk/Python/esys/lsm/ExportModuleLsm.cpp (+46/-0)
trunk/Python/esys/lsm/FieldSaverPrmsPy.cpp (+138/-0)
trunk/Python/esys/lsm/FieldSaverPrmsPy.h (+83/-0)
trunk/Python/esys/lsm/InteractionFieldSaverPrmsPy.cpp (+383/-0)
trunk/Python/esys/lsm/InteractionFieldSaverPrmsPy.h (+133/-0)
trunk/Python/esys/lsm/InteractionGroupPy.cpp (+62/-0)
trunk/Python/esys/lsm/InteractionGroupPy.h (+64/-0)
trunk/Python/esys/lsm/InteractionParamsPy.cpp (+1697/-0)
trunk/Python/esys/lsm/InteractionParamsPy.h (+486/-0)
trunk/Python/esys/lsm/LmParticleAdder.cpp (+14/-0)
trunk/Python/esys/lsm/LmParticleAdder.h (+39/-0)
trunk/Python/esys/lsm/LmParticleAdder.hpp (+150/-0)
trunk/Python/esys/lsm/Logging.py (+30/-0)
trunk/Python/esys/lsm/LsmMpiPy.cpp (+2705/-0)
trunk/Python/esys/lsm/LsmMpiPy.h (+364/-0)
trunk/Python/esys/lsm/Makefile.am (+101/-0)
trunk/Python/esys/lsm/MeshBuildParamsPy.cpp (+84/-0)
trunk/Python/esys/lsm/MeshBuildParamsPy.h (+54/-0)
trunk/Python/esys/lsm/ParticleFieldSaverPrmsPy.cpp (+281/-0)
trunk/Python/esys/lsm/ParticleFieldSaverPrmsPy.h (+118/-0)
trunk/Python/esys/lsm/ParticleIdPairPy.cpp (+136/-0)
trunk/Python/esys/lsm/ParticleIdPairPy.h (+58/-0)
trunk/Python/esys/lsm/ParticleIdPairSetPy.cpp (+39/-0)
trunk/Python/esys/lsm/ParticleIdPairSetPy.h (+29/-0)
trunk/Python/esys/lsm/ParticleIdPairVectorPy.cpp (+39/-0)
trunk/Python/esys/lsm/ParticleIdPairVectorPy.h (+29/-0)
trunk/Python/esys/lsm/ParticlePy.cpp (+146/-0)
trunk/Python/esys/lsm/ParticlePy.h (+55/-0)
trunk/Python/esys/lsm/RotParticlePy.cpp (+197/-0)
trunk/Python/esys/lsm/RotParticlePy.h (+79/-0)
trunk/Python/esys/lsm/RotParticleViPy.cpp (+255/-0)
trunk/Python/esys/lsm/RotParticleViPy.h (+93/-0)
trunk/Python/esys/lsm/RotThermalParticlePy.cpp (+273/-0)
trunk/Python/esys/lsm/RotThermalParticlePy.h (+89/-0)
trunk/Python/esys/lsm/RunnablePy.cpp (+71/-0)
trunk/Python/esys/lsm/RunnablePy.h (+32/-0)
trunk/Python/esys/lsm/TriggerPrmsPy.cpp (+47/-0)
trunk/Python/esys/lsm/TriggerPrmsPy.h (+39/-0)
trunk/Python/esys/lsm/WallFieldSaverPrmsPy.cpp (+362/-0)
trunk/Python/esys/lsm/WallFieldSaverPrmsPy.h (+115/-0)
trunk/Python/esys/lsm/WallPrmsPy.cpp (+212/-0)
trunk/Python/esys/lsm/WallPrmsPy.h (+86/-0)
trunk/Python/esys/lsm/__init__.py (+61/-0)
trunk/Python/esys/lsm/benchmarks/BondedBlock.py (+143/-0)
trunk/Python/esys/lsm/benchmarks/CMakeLists.txt (+37/-0)
trunk/Python/esys/lsm/benchmarks/Gravity.py (+141/-0)
trunk/Python/esys/lsm/benchmarks/Makefile.am (+23/-0)
trunk/Python/esys/lsm/benchmarks/Util.py (+211/-0)
trunk/Python/esys/lsm/benchmarks/__init__.py (+18/-0)
trunk/Python/esys/lsm/benchmarks/compress/CMakeLists.txt (+30/-0)
trunk/Python/esys/lsm/benchmarks/compress/Makefile.am (+19/-0)
trunk/Python/esys/lsm/benchmarks/compress/__init__.py (+15/-0)
trunk/Python/esys/lsm/benchmarks/compress/compbench.py (+89/-0)
trunk/Python/esys/lsm/benchmarks/gouge2d/CMakeLists.txt (+30/-0)
trunk/Python/esys/lsm/benchmarks/gouge2d/Makefile.am (+19/-0)
trunk/Python/esys/lsm/benchmarks/gouge2d/__init__.py (+12/-0)
trunk/Python/esys/lsm/benchmarks/gouge2d/gengouge.sh (+8/-0)
trunk/Python/esys/lsm/benchmarks/gouge2d/gouge2dbench.py (+122/-0)
trunk/Python/esys/lsm/doc/CMakeLists.txt (+35/-0)
trunk/Python/esys/lsm/doc/GravityTut.py (+314/-0)
trunk/Python/esys/lsm/doc/InitialConfigTut.py (+380/-0)
trunk/Python/esys/lsm/doc/Installation.py (+110/-0)
trunk/Python/esys/lsm/doc/Makefile.am (+24/-0)
trunk/Python/esys/lsm/doc/Overview.py (+155/-0)
trunk/Python/esys/lsm/doc/Util.py (+46/-0)
trunk/Python/esys/lsm/doc/VisualisationTut.py (+210/-0)
trunk/Python/esys/lsm/doc/__init__.py (+17/-0)
trunk/Python/esys/lsm/examples/CMakeLists.txt (+36/-0)
trunk/Python/esys/lsm/examples/DisplacementPlotter.py (+206/-0)
trunk/Python/esys/lsm/examples/Makefile.am (+22/-0)
trunk/Python/esys/lsm/examples/Wave2d.py (+328/-0)
trunk/Python/esys/lsm/examples/__init__.py (+253/-0)
trunk/Python/esys/lsm/examples/simple/CMakeLists.txt (+29/-0)
trunk/Python/esys/lsm/examples/simple/Makefile.am (+18/-0)
trunk/Python/esys/lsm/examples/simple/__init__.py (+15/-0)
trunk/Python/esys/lsm/examples/simple/compress3d.py (+98/-0)
trunk/Python/esys/lsm/examples/waveprop/CMakeLists.txt (+32/-0)
trunk/Python/esys/lsm/examples/waveprop/FixedLidWaveSim.py (+59/-0)
trunk/Python/esys/lsm/examples/waveprop/Makefile.am (+21/-0)
trunk/Python/esys/lsm/examples/waveprop/OptionParser.py (+291/-0)
trunk/Python/esys/lsm/examples/waveprop/WaveSim.py (+590/-0)
trunk/Python/esys/lsm/examples/waveprop/__init__.py (+17/-0)
trunk/Python/esys/lsm/geometry/CMakeLists.txt (+78/-0)
trunk/Python/esys/lsm/geometry/CubicBlockPy.cpp (+121/-0)
trunk/Python/esys/lsm/geometry/CubicBlockPy.h (+49/-0)
trunk/Python/esys/lsm/geometry/DistConnectionsPy.cpp (+295/-0)
trunk/Python/esys/lsm/geometry/DistConnectionsPy.h (+27/-0)
trunk/Python/esys/lsm/geometry/ExportModuleGeometry.cpp (+49/-0)
trunk/Python/esys/lsm/geometry/GeometryPy_dll.h (+14/-0)
trunk/Python/esys/lsm/geometry/GougeConfigPrmsPy.cpp (+129/-0)
trunk/Python/esys/lsm/geometry/GougeConfigPrmsPy.h (+76/-0)
trunk/Python/esys/lsm/geometry/GougeConfigPy.cpp (+147/-0)
trunk/Python/esys/lsm/geometry/GougeConfigPy.h (+71/-0)
trunk/Python/esys/lsm/geometry/GrainCollectionPy.cpp (+99/-0)
trunk/Python/esys/lsm/geometry/GrainCollectionPy.h (+57/-0)
trunk/Python/esys/lsm/geometry/GrainPy.cpp (+100/-0)
trunk/Python/esys/lsm/geometry/GrainPy.h (+56/-0)
trunk/Python/esys/lsm/geometry/HexagBlockPy.cpp (+98/-0)
trunk/Python/esys/lsm/geometry/HexagBlockPy.h (+49/-0)
trunk/Python/esys/lsm/geometry/IteratorPy.cpp (+16/-0)
trunk/Python/esys/lsm/geometry/IteratorPy.h (+54/-0)
trunk/Python/esys/lsm/geometry/IteratorPy.hpp (+67/-0)
trunk/Python/esys/lsm/geometry/Makefile.am (+45/-0)
trunk/Python/esys/lsm/geometry/MiscPy.cpp (+190/-0)
trunk/Python/esys/lsm/geometry/MiscPy.h (+27/-0)
trunk/Python/esys/lsm/geometry/PackerPy.cpp (+753/-0)
trunk/Python/esys/lsm/geometry/PackerPy.h (+223/-0)
trunk/Python/esys/lsm/geometry/ParticleCollectionPy.cpp (+218/-0)
trunk/Python/esys/lsm/geometry/ParticleCollectionPy.h (+63/-0)
trunk/Python/esys/lsm/geometry/SimpleBlockPy.cpp (+84/-0)
trunk/Python/esys/lsm/geometry/SimpleBlockPy.h (+43/-0)
trunk/Python/esys/lsm/geometry/SimpleSphereCollectionPy.cpp (+217/-0)
trunk/Python/esys/lsm/geometry/SimpleSphereCollectionPy.h (+62/-0)
trunk/Python/esys/lsm/geometry/SimpleSphereNeighboursPy.cpp (+155/-0)
trunk/Python/esys/lsm/geometry/SimpleSphereNeighboursPy.h (+26/-0)
trunk/Python/esys/lsm/geometry/SimpleSpherePy.cpp (+347/-0)
trunk/Python/esys/lsm/geometry/SimpleSpherePy.h (+63/-0)
trunk/Python/esys/lsm/geometry/SingleParticleGrainGen.py (+54/-0)
trunk/Python/esys/lsm/geometry/SphericalGrainGen.py (+272/-0)
trunk/Python/esys/lsm/geometry/TaggedIdConnectionPy.cpp (+71/-0)
trunk/Python/esys/lsm/geometry/TaggedIdConnectionPy.h (+36/-0)
trunk/Python/esys/lsm/geometry/__init__.py (+27/-0)
trunk/Python/esys/lsm/lsm_dll.h (+14/-0)
trunk/Python/esys/lsm/sim/CMakeLists.txt (+57/-0)
trunk/Python/esys/lsm/sim/ExportModuleWavePropagation.cpp (+20/-0)
trunk/Python/esys/lsm/sim/Makefile.am (+45/-0)
trunk/Python/esys/lsm/sim/WavePropagation.py (+785/-0)
trunk/Python/esys/lsm/sim/WavePropagationPy.cpp (+146/-0)
trunk/Python/esys/lsm/sim/WavePropagationPy.h (+25/-0)
trunk/Python/esys/lsm/sim/__init__.py (+14/-0)
trunk/Python/esys/lsm/sim/coupled/CMakeLists.txt (+51/-0)
trunk/Python/esys/lsm/sim/coupled/DxToVtkConverter.py (+91/-0)
trunk/Python/esys/lsm/sim/coupled/ExportModuleLsmEscript.cpp (+20/-0)
trunk/Python/esys/lsm/sim/coupled/LsmMpiEscriptPy.cpp (+50/-0)
trunk/Python/esys/lsm/sim/coupled/LsmMpiEscriptPy.h (+25/-0)
trunk/Python/esys/lsm/sim/coupled/Makefile.am (+40/-0)
trunk/Python/esys/lsm/sim/coupled/MeshToVtkConverter.py (+320/-0)
trunk/Python/esys/lsm/sim/coupled/SimpleGouge.py (+356/-0)
trunk/Python/esys/lsm/sim/coupled/SimpleGougeConfig.py (+174/-0)
trunk/Python/esys/lsm/sim/coupled/__init__.py (+16/-0)
trunk/Python/esys/lsm/tools/CMakeLists.txt (+44/-0)
trunk/Python/esys/lsm/tools/ExportModuleTools.cpp (+20/-0)
trunk/Python/esys/lsm/tools/MacroFrictionCalculatorPy.cpp (+287/-0)
trunk/Python/esys/lsm/tools/MacroFrictionCalculatorPy.h (+25/-0)
trunk/Python/esys/lsm/tools/Makefile.am (+33/-0)
trunk/Python/esys/lsm/tools/__init__.py (+14/-0)
trunk/Python/esys/lsm/util/BoundingBoxPy.cpp (+198/-0)
trunk/Python/esys/lsm/util/BoundingBoxPy.h (+66/-0)
trunk/Python/esys/lsm/util/BoundingSpherePy.cpp (+161/-0)
trunk/Python/esys/lsm/util/BoundingSpherePy.h (+57/-0)
trunk/Python/esys/lsm/util/CMakeLists.txt (+134/-0)
trunk/Python/esys/lsm/util/CMakeLists.txt.08202011 (+129/-0)
trunk/Python/esys/lsm/util/ExportModuleUtil.cpp (+26/-0)
trunk/Python/esys/lsm/util/FileUtil.py (+27/-0)
trunk/Python/esys/lsm/util/InstallInfo.tmpl (+50/-0)
trunk/Python/esys/lsm/util/Makefile.am (+94/-0)
trunk/Python/esys/lsm/util/OptParse.py (+195/-0)
trunk/Python/esys/lsm/util/PathSearcher.py (+39/-0)
trunk/Python/esys/lsm/util/Process.py (+170/-0)
trunk/Python/esys/lsm/util/QuaternionPy.cpp (+254/-0)
trunk/Python/esys/lsm/util/QuaternionPy.h (+79/-0)
trunk/Python/esys/lsm/util/RngPy.cpp (+55/-0)
trunk/Python/esys/lsm/util/RngPy.h (+27/-0)
trunk/Python/esys/lsm/util/SetPy.cpp (+15/-0)
trunk/Python/esys/lsm/util/SetPy.h (+66/-0)
trunk/Python/esys/lsm/util/SetPy.hpp (+184/-0)
trunk/Python/esys/lsm/util/Vec3Py.cpp (+278/-0)
trunk/Python/esys/lsm/util/Vec3Py.h (+80/-0)
trunk/Python/esys/lsm/util/VectorPy.cpp (+15/-0)
trunk/Python/esys/lsm/util/VectorPy.h (+67/-0)
trunk/Python/esys/lsm/util/VectorPy.hpp (+156/-0)
trunk/Python/esys/lsm/util/__init__.py (+18/-0)
trunk/Python/esys/lsm/util/util_dll.h (+14/-0)
trunk/Python/esys/lsm/vis/CMakeLists.txt (+43/-0)
trunk/Python/esys/lsm/vis/Makefile.am (+28/-0)
trunk/Python/esys/lsm/vis/__init__.py (+22/-0)
trunk/Python/esys/lsm/vis/core/Arrow.py (+76/-0)
trunk/Python/esys/lsm/vis/core/ArrowExtractor.py (+64/-0)
trunk/Python/esys/lsm/vis/core/Box.py (+42/-0)
trunk/Python/esys/lsm/vis/core/CMakeLists.txt (+52/-0)
trunk/Python/esys/lsm/vis/core/Camera.py (+100/-0)
trunk/Python/esys/lsm/vis/core/Capsule.py (+140/-0)
trunk/Python/esys/lsm/vis/core/Color.py (+247/-0)
trunk/Python/esys/lsm/vis/core/Cone.py (+112/-0)
trunk/Python/esys/lsm/vis/core/Cylinder.py (+91/-0)
trunk/Python/esys/lsm/vis/core/CylinderExtractor.py (+123/-0)
trunk/Python/esys/lsm/vis/core/EdgeData.py (+51/-0)
trunk/Python/esys/lsm/vis/core/EdgeExtractor.py (+84/-0)
trunk/Python/esys/lsm/vis/core/Exception.py (+71/-0)
trunk/Python/esys/lsm/vis/core/Extractor.py (+23/-0)
trunk/Python/esys/lsm/vis/core/GlyphData.py (+45/-0)
trunk/Python/esys/lsm/vis/core/ImageFormat.py (+95/-0)
trunk/Python/esys/lsm/vis/core/Makefile.am (+41/-0)
trunk/Python/esys/lsm/vis/core/Modifier.py (+44/-0)
trunk/Python/esys/lsm/vis/core/PointExtractor.py (+39/-0)
trunk/Python/esys/lsm/vis/core/Scene.py (+142/-0)
trunk/Python/esys/lsm/vis/core/Sphere.py (+39/-0)
trunk/Python/esys/lsm/vis/core/SphereExtractor.py (+61/-0)
trunk/Python/esys/lsm/vis/core/SurfaceData.py (+49/-0)
trunk/Python/esys/lsm/vis/core/TriangulatedSurface.py (+31/-0)
trunk/Python/esys/lsm/vis/core/__init__.py (+40/-0)
trunk/Python/esys/lsm/vis/povray/Arrow.py (+53/-0)
trunk/Python/esys/lsm/vis/povray/ArrowExtractor.py (+56/-0)
trunk/Python/esys/lsm/vis/povray/Box.py (+44/-0)
trunk/Python/esys/lsm/vis/povray/CMakeLists.txt (+50/-0)
trunk/Python/esys/lsm/vis/povray/Camera.py (+97/-0)
trunk/Python/esys/lsm/vis/povray/Capsule.py (+94/-0)
trunk/Python/esys/lsm/vis/povray/Color.py (+49/-0)
trunk/Python/esys/lsm/vis/povray/Cone.py (+90/-0)
trunk/Python/esys/lsm/vis/povray/Csg.py (+51/-0)
trunk/Python/esys/lsm/vis/povray/Cylinder.py (+78/-0)
trunk/Python/esys/lsm/vis/povray/CylinderExtractor.py (+88/-0)
trunk/Python/esys/lsm/vis/povray/EdgeData.py (+19/-0)
trunk/Python/esys/lsm/vis/povray/EdgeExtractor.py (+65/-0)
trunk/Python/esys/lsm/vis/povray/GlyphData.py (+43/-0)
trunk/Python/esys/lsm/vis/povray/Makefile.am (+39/-0)
trunk/Python/esys/lsm/vis/povray/Modifier.py (+134/-0)
trunk/Python/esys/lsm/vis/povray/Object.py (+76/-0)
trunk/Python/esys/lsm/vis/povray/PovRenderer.py (+256/-0)
trunk/Python/esys/lsm/vis/povray/Scene.py (+142/-0)
trunk/Python/esys/lsm/vis/povray/Sphere.py (+30/-0)
trunk/Python/esys/lsm/vis/povray/SphereExtractor.py (+51/-0)
trunk/Python/esys/lsm/vis/povray/TriangulatedSurface.py (+37/-0)
trunk/Python/esys/lsm/vis/povray/__init__.py (+39/-0)
trunk/Python/esys/lsm/vis/vtk/Arrow.py (+78/-0)
trunk/Python/esys/lsm/vis/vtk/ArrowExtractor.py (+52/-0)
trunk/Python/esys/lsm/vis/vtk/Box.py (+72/-0)
trunk/Python/esys/lsm/vis/vtk/CMakeLists.txt (+50/-0)
trunk/Python/esys/lsm/vis/vtk/Camera.py (+51/-0)
trunk/Python/esys/lsm/vis/vtk/Color.py (+46/-0)
trunk/Python/esys/lsm/vis/vtk/Cone.py (+52/-0)
trunk/Python/esys/lsm/vis/vtk/Cylinder.py (+82/-0)
trunk/Python/esys/lsm/vis/vtk/CylinderExtractor.py (+81/-0)
trunk/Python/esys/lsm/vis/vtk/EdgeData.py (+61/-0)
trunk/Python/esys/lsm/vis/vtk/EdgeExtractor.py (+93/-0)
trunk/Python/esys/lsm/vis/vtk/GlyphData.py (+22/-0)
trunk/Python/esys/lsm/vis/vtk/GlyphExtractor.py (+79/-0)
trunk/Python/esys/lsm/vis/vtk/Makefile.am (+39/-0)
trunk/Python/esys/lsm/vis/vtk/Modifier.py (+35/-0)
trunk/Python/esys/lsm/vis/vtk/PointExtractor.py (+27/-0)
trunk/Python/esys/lsm/vis/vtk/Scene.py (+180/-0)
trunk/Python/esys/lsm/vis/vtk/Sphere.py (+52/-0)
trunk/Python/esys/lsm/vis/vtk/SphereExtractor.py (+44/-0)
trunk/Python/esys/lsm/vis/vtk/SurfaceData.py (+51/-0)
trunk/Python/esys/lsm/vis/vtk/TriangulatedSurface.py (+59/-0)
trunk/Python/esys/lsm/vis/vtk/Util.py (+35/-0)
trunk/Python/esys/lsm/vis/vtk/__init__.py (+35/-0)
trunk/README (+40/-0)
trunk/Tools/CMakeLists.txt (+45/-0)
trunk/Tools/ExtractFractures/CMakeLists.txt (+64/-0)
trunk/Tools/ExtractFractures/FitPlane.cpp (+29/-0)
trunk/Tools/ExtractFractures/FitPlane.h (+27/-0)
trunk/Tools/ExtractFractures/Makefile.am (+36/-0)
trunk/Tools/ExtractFractures/frac_dist.cpp (+65/-0)
trunk/Tools/ExtractFractures/frac_dist.h (+40/-0)
trunk/Tools/ExtractFractures/fracframe.cpp (+504/-0)
trunk/Tools/ExtractFractures/fracframe.h (+62/-0)
trunk/Tools/ExtractFractures/fracwriter.cpp (+284/-0)
trunk/Tools/ExtractFractures/fracwriter.h (+60/-0)
trunk/Tools/ExtractFractures/main.cpp (+231/-0)
trunk/Tools/ExtractGrains/CMakeLists.txt (+71/-0)
trunk/Tools/ExtractGrains/Frac.cpp (+424/-0)
trunk/Tools/ExtractGrains/Frac.h (+50/-0)
trunk/Tools/ExtractGrains/Makefile.am (+40/-0)
trunk/Tools/ExtractGrains/Triangle2d.cpp (+70/-0)
trunk/Tools/ExtractGrains/Triangle2d.h (+32/-0)
trunk/Tools/ExtractGrains/Tritest.cpp (+26/-0)
trunk/Tools/ExtractGrains/graph.cpp (+1274/-0)
trunk/Tools/ExtractGrains/graph.h (+126/-0)
trunk/Tools/ExtractGrains/main.cpp (+537/-0)
trunk/Tools/ExtractGrains/probdist.cpp (+160/-0)
trunk/Tools/ExtractGrains/probdist.h (+40/-0)
trunk/Tools/ExtractGrains/readSnap.cpp (+412/-0)
trunk/Tools/ExtractGrains/readSnap.h (+30/-0)
trunk/Tools/ExtractProfile/CMakeLists.txt (+50/-0)
trunk/Tools/ExtractProfile/Makefile.am (+31/-0)
trunk/Tools/ExtractProfile/main.cpp (+173/-0)
trunk/Tools/ExtractProfile/read.cpp (+644/-0)
trunk/Tools/ExtractProfile/read.h (+26/-0)
trunk/Tools/ExtractStrain/CMakeLists.txt (+59/-0)
trunk/Tools/ExtractStrain/DataExtractor.cpp (+253/-0)
trunk/Tools/ExtractStrain/DataExtractor.h (+37/-0)
trunk/Tools/ExtractStrain/DataParticle.cpp (+24/-0)
trunk/Tools/ExtractStrain/DataParticle.h (+49/-0)
trunk/Tools/ExtractStrain/Makefile.am (+34/-0)
trunk/Tools/ExtractStrain/SnapFileHelp.cpp (+84/-0)
trunk/Tools/ExtractStrain/SnapFileHelp.h (+21/-0)
trunk/Tools/ExtractStrain/main.cpp (+98/-0)
trunk/Tools/ForceChains/CMakeLists.txt (+59/-0)
trunk/Tools/ForceChains/Makefile.am (+34/-0)
trunk/Tools/ForceChains/main.cpp (+76/-0)
trunk/Tools/ForceChains/vtk.cpp (+160/-0)
trunk/Tools/ForceChains/vtk.h (+18/-0)
trunk/Tools/ForceChains/vvf.cpp (+96/-0)
trunk/Tools/ForceChains/vvf.h (+18/-0)
trunk/Tools/MacroFrictionCalculator/CMakeLists.txt (+73/-0)
trunk/Tools/MacroFrictionCalculator/LinearWindowAverager.cpp (+21/-0)
trunk/Tools/MacroFrictionCalculator/LinearWindowAverager.h (+87/-0)
trunk/Tools/MacroFrictionCalculator/MacroFrictionCalculator.cpp (+21/-0)
trunk/Tools/MacroFrictionCalculator/MacroFrictionCalculator.h (+75/-0)
trunk/Tools/MacroFrictionCalculator/Main.cpp (+81/-0)
trunk/Tools/MacroFrictionCalculator/Makefile.am (+33/-0)
trunk/Tools/MacroFrictionCalculator/WallForceReader.cpp (+21/-0)
trunk/Tools/MacroFrictionCalculator/WallForceReader.h (+171/-0)
trunk/Tools/MacroFrictionCalculator/WallForcesToFrictionConverter.cpp (+121/-0)
trunk/Tools/MacroFrictionCalculator/WallForcesToFrictionConverter.h (+48/-0)
trunk/Tools/Makefile.am (+22/-0)
trunk/Tools/StressCalculator/CMakeLists.txt (+96/-0)
trunk/Tools/StressCalculator/CartesianGrid.cpp (+15/-0)
trunk/Tools/StressCalculator/CartesianGrid.h (+516/-0)
trunk/Tools/StressCalculator/Contact.cpp (+25/-0)
trunk/Tools/StressCalculator/Contact.h (+242/-0)
trunk/Tools/StressCalculator/ContactCollection.cpp (+14/-0)
trunk/Tools/StressCalculator/ContactCollection.h (+138/-0)
trunk/Tools/StressCalculator/EigenvalueCalculator.cpp (+23/-0)
trunk/Tools/StressCalculator/EigenvalueCalculator.h (+215/-0)
trunk/Tools/StressCalculator/GaussianGridder.cpp (+22/-0)
trunk/Tools/StressCalculator/GaussianGridder.h (+75/-0)
trunk/Tools/StressCalculator/InteractionToStressConverter.cpp (+543/-0)
trunk/Tools/StressCalculator/InteractionToStressConverter.h (+168/-0)
trunk/Tools/StressCalculator/Main.cpp (+145/-0)
trunk/Tools/StressCalculator/Makefile.am (+32/-0)
trunk/Tools/StressCalculator/Raw2InteractionReader.cpp (+14/-0)
trunk/Tools/StressCalculator/Raw2InteractionReader.h (+58/-0)
trunk/Tools/StressCalculator/StressCalculator_dll.h (+14/-0)
trunk/Tools/StressCalculator/StressTensor.h (+104/-0)
trunk/Tools/StressCalculator/StressTensorCalculator.cpp (+14/-0)
trunk/Tools/StressCalculator/StressTensorCalculator.h (+107/-0)
trunk/Tools/StressCalculator/StressTensorCollection.cpp (+14/-0)
trunk/Tools/StressCalculator/StressTensorCollection.h (+75/-0)
trunk/Tools/StressCalculator/Vec3Comparer.h (+76/-0)
trunk/Tools/StressCalculator/VtkDataArray.h (+80/-0)
trunk/Tools/StressCalculator/VtkDataType.h (+187/-0)
trunk/Tools/StressCalculator/VtkDataTypeTuple.cpp (+14/-0)
trunk/Tools/StressCalculator/VtkDataTypeTuple.h (+151/-0)
trunk/Tools/StressCalculator/VtkPiece.cpp (+14/-0)
trunk/Tools/StressCalculator/VtkPiece.h (+135/-0)
trunk/Tools/StressCalculator/VtkStructuredGrid.cpp (+14/-0)
trunk/Tools/StressCalculator/VtkStructuredGrid.h (+157/-0)
trunk/Tools/StressCalculator/VtkUnstructuredGrid.cpp (+14/-0)
trunk/Tools/StressCalculator/VtkUnstructuredGrid.h (+108/-0)
trunk/Tools/dump2geo/CMakeLists.txt (+50/-0)
trunk/Tools/dump2geo/Makefile.am (+30/-0)
trunk/Tools/dump2geo/frame_geo.cpp (+411/-0)
trunk/Tools/dump2geo/frame_geo.h (+31/-0)
trunk/Tools/dump2geo/main.cpp (+138/-0)
trunk/Tools/dump2pov/CMakeLists.txt (+72/-0)
trunk/Tools/dump2pov/Makefile.am (+39/-0)
trunk/Tools/dump2pov/README (+38/-0)
trunk/Tools/dump2pov/campos.cpp (+68/-0)
trunk/Tools/dump2pov/campos.h (+39/-0)
trunk/Tools/dump2pov/colormap.cpp (+36/-0)
trunk/Tools/dump2pov/colormap.h (+30/-0)
trunk/Tools/dump2pov/colormap3.cpp (+41/-0)
trunk/Tools/dump2pov/colormap3.h (+34/-0)
trunk/Tools/dump2pov/frame.cpp (+574/-0)
trunk/Tools/dump2pov/frame.h (+32/-0)
trunk/Tools/dump2pov/geocolormap.cpp (+66/-0)
trunk/Tools/dump2pov/geocolormap.h (+35/-0)
trunk/Tools/dump2pov/main.cpp (+261/-0)
trunk/Tools/dump2pov/mesh.cpp (+76/-0)
trunk/Tools/dump2pov/mesh.h (+21/-0)
trunk/Tools/dump2silo/CMakeLists.txt (+52/-0)
trunk/Tools/dump2silo/Makefile.am (+30/-0)
trunk/Tools/dump2silo/frame_silo.cpp (+514/-0)
trunk/Tools/dump2silo/frame_silo.h (+25/-0)
trunk/Tools/dump2silo/main.cpp (+128/-0)
trunk/Tools/dump2vtk/CMakeLists.txt (+50/-0)
trunk/Tools/dump2vtk/Makefile.am (+30/-0)
trunk/Tools/dump2vtk/frame_vtk.cpp (+1000/-0)
trunk/Tools/dump2vtk/frame_vtk.h (+28/-0)
trunk/Tools/dump2vtk/main.cpp (+181/-0)
trunk/Tools/mesh2pov/CMakeLists.txt (+46/-0)
trunk/Tools/mesh2pov/Makefile.am (+27/-0)
trunk/Tools/mesh2pov/main.cpp (+123/-0)
trunk/Tools/pfcconvert/CMakeLists.txt (+50/-0)
trunk/Tools/pfcconvert/Makefile.am (+30/-0)
trunk/Tools/pfcconvert/main.cpp (+100/-0)
trunk/Tools/pfcconvert/pfcc.cpp (+153/-0)
trunk/Tools/pfcconvert/pfcc.h (+26/-0)
trunk/Tools/rotextract/CMakeLists.txt (+57/-0)
trunk/Tools/rotextract/Makefile.am (+32/-0)
trunk/Tools/rotextract/gvmap.cpp (+129/-0)
trunk/Tools/rotextract/gvmap.h (+64/-0)
trunk/Tools/rotextract/main.cpp (+128/-0)
trunk/Tools/rotextract/rextract.cpp (+162/-0)
trunk/Tools/rotextract/rextract.h (+52/-0)
trunk/Tools/slip2vtk/CMakeLists.txt (+50/-0)
trunk/Tools/slip2vtk/Makefile.am (+30/-0)
trunk/Tools/slip2vtk/main.cpp (+245/-0)
trunk/Tools/slip2vtk/slip2vtk2d.cpp (+1196/-0)
trunk/Tools/slip2vtk/slip2vtk2d.h (+43/-0)
trunk/am2cmake.ru (+1091/-0)
trunk/autogen.sh (+10/-0)
trunk/buildvs2005/mkvs8.bat (+1/-0)
trunk/buildvs2008/mkvs9.bat (+1/-0)
trunk/buildvs2010/mkvs10.bat (+1/-0)
trunk/configure.ac (+411/-0)
trunk/example/bingle.py (+98/-0)
trunk/example/hosts.txt (+1/-0)
trunk/example/testrun.bat (+2/-0)
trunk/ntable/CMakeLists.txt (+30/-0)
trunk/ntable/Makefile.am (+18/-0)
trunk/ntable/src/CMakeLists.txt (+70/-0)
trunk/ntable/src/Makefile.am (+36/-0)
trunk/ntable/src/dslice.cpp (+41/-0)
trunk/ntable/src/dslice.h (+43/-0)
trunk/ntable/src/handle.h (+45/-0)
trunk/ntable/src/handle.hpp (+55/-0)
trunk/ntable/src/handle_exception.h (+23/-0)
trunk/ntable/src/nt_block.h (+74/-0)
trunk/ntable/src/nt_block.hpp (+211/-0)
trunk/ntable/src/nt_slab.h (+83/-0)
trunk/ntable/src/nt_slab.hpp (+235/-0)
trunk/ntable/src/ntable.h (+182/-0)
trunk/ntable/src/ntable.hpp (+760/-0)
trunk/ntable/src/ntb_iter.h (+71/-0)
trunk/ntable/src/ntb_iter.hpp (+143/-0)
trunk/ntable/src/nts_iter.h (+76/-0)
trunk/ntable/src/nts_iter.hpp (+144/-0)
trunk/ntable/test/test_main2.cpp (+145/-0)
trunk/ntable/util/BasicParticle.cpp (+27/-0)
trunk/ntable/util/BasicParticle.h (+51/-0)
trunk/ntable/util/Error.h (+33/-0)
trunk/ntable/util/vec3.cpp (+246/-0)
trunk/ntable/util/vec3.h (+139/-0)
trunk/pis/CMakeLists.txt (+71/-0)
trunk/pis/Makefile.am (+27/-0)
trunk/pis/mesh2d_pis.h (+57/-0)
trunk/pis/mesh2d_pis.hpp (+68/-0)
trunk/pis/mesh2d_pis_eb.h (+93/-0)
trunk/pis/mesh2d_pis_eb.hpp (+493/-0)
trunk/pis/mesh2d_pis_ne.h (+61/-0)
trunk/pis/mesh2d_pis_ne.hpp (+148/-0)
trunk/pis/pi_storage.cpp (+15/-0)
trunk/pis/pi_storage.h (+151/-0)
trunk/pis/pi_storage.hpp (+338/-0)
trunk/pis/pi_storage_e.h (+72/-0)
trunk/pis/pi_storage_e.hpp (+268/-0)
trunk/pis/pi_storage_eb.h (+50/-0)
trunk/pis/pi_storage_eb.hpp (+171/-0)
trunk/pis/pi_storage_ed.h (+57/-0)
trunk/pis/pi_storage_ed.hpp (+250/-0)
trunk/pis/pi_storage_ed_t.h (+45/-0)
trunk/pis/pi_storage_ed_t.hpp (+143/-0)
trunk/pis/pi_storage_ne.h (+54/-0)
trunk/pis/pi_storage_ne.hpp (+147/-0)
trunk/pis/pi_storage_ne_t.h (+45/-0)
trunk/pis/pi_storage_ne_t.hpp (+123/-0)
trunk/pis/pi_storage_single.h (+46/-0)
trunk/pis/pi_storage_single.hpp (+82/-0)
trunk/pis/pis_dll.h (+14/-0)
trunk/pis/trimesh_pis.h (+46/-0)
trunk/pis/trimesh_pis.hpp (+57/-0)
trunk/pis/trimesh_pis_eb.h (+62/-0)
trunk/pis/trimesh_pis_eb.hpp (+342/-0)
trunk/pis/trimesh_pis_ne.h (+64/-0)
trunk/pis/trimesh_pis_ne.hpp (+180/-0)
trunk/ppa/CMakeLists.txt (+32/-0)
trunk/ppa/Makefile.am (+18/-0)
trunk/ppa/ppa_lst (+16/-0)
trunk/ppa/src/CMakeLists.txt (+44/-0)
trunk/ppa/src/Makefile.am (+25/-0)
trunk/ppa/src/app_array.cpp (+33/-0)
trunk/ppa/src/float_cast.h (+107/-0)
trunk/ppa/src/fp_cast_test.c (+264/-0)
trunk/ppa/src/pp_array.h (+225/-0)
trunk/ppa/src/pp_array.hpp (+1100/-0)
trunk/ppa/test/test.cpp (+60/-0)
trunk/ppa/util/partpack.cpp (+37/-0)
trunk/tml/CMakeLists.txt (+34/-0)
trunk/tml/Doxyfile (+1101/-0)
trunk/tml/Makefile.am (+18/-0)
trunk/tml/comm/CMakeLists.txt (+54/-0)
trunk/tml/comm/Makefile.am (+24/-0)
trunk/tml/comm/cart_comm.cpp (+214/-0)
trunk/tml/comm/cart_comm.h (+67/-0)
trunk/tml/comm/cart_comm.hpp (+137/-0)
trunk/tml/comm/comm.cpp (+180/-0)
trunk/tml/comm/comm.h (+139/-0)
trunk/tml/comm/comm.hpp (+463/-0)
trunk/tml/comm/comm_coll.hpp (+587/-0)
trunk/tml/comm/comm_dll.h (+14/-0)
trunk/tml/comm/comm_world.cpp (+19/-0)
trunk/tml/comm/comm_world.h (+38/-0)
trunk/tml/message/CMakeLists.txt (+49/-0)
trunk/tml/message/Makefile.am (+21/-0)
trunk/tml/message/message.h (+41/-0)
trunk/tml/message/message_dll.h (+14/-0)
trunk/tml/message/multi_message_slab.cpp (+148/-0)
trunk/tml/message/multi_message_slab.h (+58/-0)
trunk/tml/message/pack.cpp (+73/-0)
trunk/tml/message/pack.h (+48/-0)
trunk/tml/message/pack.hpp (+26/-0)
trunk/tml/message/packed_message.cpp (+221/-0)
trunk/tml/message/packed_message.h (+69/-0)
trunk/tml/message/packed_message_interface.h (+52/-0)
trunk/tml/message/packed_multi_message.cpp (+266/-0)
trunk/tml/message/packed_multi_message.h (+79/-0)
trunk/tml/test/tesp_sc.cpp (+51/-0)
trunk/tml/test/test.cpp (+99/-0)
trunk/tml/test/test.rpo (+130/-0)
trunk/tml/test/test_cart.cpp (+156/-0)
trunk/tml/test/test_cart.h (+22/-0)
trunk/tml/test/test_cart_old.cpp (+60/-0)
trunk/tml/test/test_comm.cpp (+453/-0)
trunk/tml/test/test_comm.h (+21/-0)
trunk/tml/test/test_pack.cpp (+316/-0)
trunk/tml/test/test_pack.h (+22/-0)
trunk/tml/test/test_sc.cpp (+232/-0)
trunk/tml/test/test_sc.h (+21/-0)
trunk/tml/tml_list (+19/-0)
trunk/tml/type/CMakeLists.txt (+41/-0)
trunk/tml/type/Makefile.am (+20/-0)
trunk/tml/type/gettype.cpp (+62/-0)
trunk/tml/type/gettype.h (+124/-0)
trunk/tml/type/gettype.hpp (+124/-0)
trunk/tml/type/type_dll.h (+14/-0)
To merge this branch: bzr merge lp:esys-particle/esys-particle-win
Reviewer Review Type Date Requested Status
Dion Weatherley Disapprove
Review via email: mp+162941@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Dion Weatherley (d-weatherley) wrote :

The Windows port of ESyS-Particle is still experimental and not yet approved for merging with the main development trunk. Further benchmarking and validation testing is required prior to consideration for incorporation in the trunk.

review: Disapprove
Revision history for this message
Anton Gladky (gladky-anton) wrote :

Hi Dion,

is it possible to merge CMakeLists.txt files from windows-branch? I
started to write it myself, but then found windows-port with the same
files. I think it would be good, if we merge only those files.

But it is up to you, of course.

Anton

PS Actually, esys-particle is available in main archive of new released
Debian Wheezy.
http://packages.qa.debian.org/e/esys-particle.html

2013/5/8 Dion Weatherley <email address hidden>:
> The proposal to merge lp:esys-particle/esys-particle-win into lp:esys-particle has been updated.
>
> Status: Needs review => Rejected
>
> For more details, see:
> https://code.launchpad.net/~esys-p-dev/esys-particle/esys-particle-win/+merge/162941
> --
> https://code.launchpad.net/~esys-p-dev/esys-particle/esys-particle-win/+merge/162941
> You are subscribed to branch lp:esys-particle.

Revision history for this message
Feng Chen (fchen3-gmail) wrote :

Hi, All:

0. Personally I do not think there will be much difference between the windows and Linux version, the major differences are some platform dependent calls.
1. Can we call for volunteers to make comparisons of results between the windows version and Linux version?
2. Parallel version in windows version might work..., at least for the direct shear test in ESyS-Particle manual
3. We might start to work on this merge-migration since this will quickly benefit entire group of ESyS-Particle users/developers
4. Can we make a list-to-do for necessary steps in order to do the migration?

Feng

Revision history for this message
Anton Gladky (gladky-anton) wrote :

Hi

2013/5/8 Feng Chen <email address hidden>:
> 0. Personally I do not think there will be much difference between the windows and Linux version, the major differences are some platform dependent calls.

Linux version is not functional yet. I did not finish that. So, if
Windows-one works, we can use it.

Anton

Revision history for this message
Feng Chen (fchen3-gmail) wrote :

Hi, Anton:

Do you mean CMake only? I believe use CMake in the Linux version should not be very different from the windows version.

Feng

Revision history for this message
Anton Gladky (gladky-anton) wrote :

2013/5/8 Feng Chen <email address hidden>

> Do you mean CMake only? I believe use CMake in the Linux version should
> not be very different from the windows version.
>
Yes, but linux-version of cmake for esys-particle is not ready yet.

Anton

Revision history for this message
Dion Weatherley (d-weatherley) wrote :

Hi Feng and Anton,

Just to be clear, I am very supportive of merging of the two branches but feel it should be done carefully and systematically. Here are a few of my thoughts:

> 0. [...] the major differences are some platform dependent calls.

Feng, could you please provide a list/description of the changes you had to make to the core trunk source code, aside from the switch to CMake build system?

> 1. Can we call for volunteers to make comparisons of results between the windows version and Linux version?
> 2. Parallel version in windows version might work...

Certainly would be nice to have someone do systematic comparisons and testing. Any volunteers or suggestions on who may have time for this?

> 4. Can we make a list-to-do for necessary steps in order to do the migration?

This is a good starting point. Top of the list would be to ascertain whether the esys-particle-win CMake build system will work under linux. Perhaps someone could try building esys-particle-win on ubuntu and see how far we get?

I've created a Blueprint for this merge discussion:
https://blueprints.launchpad.net/esys-particle/+spec/esys-p-win-merge
Let's move our discussions to there and start populating a to-do list under "Work Items".

Cheers,

Dion

Unmerged revisions

8. By Feng Chen

Modified BuildInstructions.docx and BuildInstructions.pdf in section 2.3.1, added screenshot for "Open Visual Studio Command Prompt" (Figure 2)

7. By Feng Chen

fix cmake command, minor change in CMakeLists.txt for VS2010 solution file generation

6. By Feng Chen <email address hidden> <email address hidden>

update build instructions

5. By Feng Chen

change to NMake Makefiles

4. By Feng Chen

Updated BuildInstructions.pdf, removed ReleaseNotes, this file is the same file as in the gengeo-win

3. By Feng Chen

first comit

2. By Feng Chen

first release of esys-particle-win

1. By Feng Chen

test

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added directory 'trunk'
=== added file 'trunk/AUTHORS'
--- trunk/AUTHORS 1970-01-01 00:00:00 +0000
+++ trunk/AUTHORS 2013-05-08 08:43:26 +0000
@@ -0,0 +1,33 @@
1#############################################################
2## ##
3## Copyright (c) 2003-2011 by The University of Queensland ##
4## Earth Systems Science Computational Centre (ESSCC) ##
5## http://www.uq.edu.au/esscc ##
6## ##
7## Primary Business: Brisbane, Queensland, Australia ##
8## Licensed under the Open Software License version 3.0 ##
9## http://www.opensource.org/licenses/osl-3.0.php ##
10## ##
11#############################################################
12
13ESyS-Particle is a community Open Source Software project.
14
15ESyS-Particle software contributors include:
16
17S. Abe (2000-)
18C. Altinay (2008-)
19V. Boros (2009-)
20F. Chen (2010)
21M. Griffa (2011)
22W. Hancock (2008-)
23L. Heredia (2009)
24S. Latham (2005-2007)
25P. Mora (1994-)
26W. Pettersson (2008-2011)
27D. Place (1994-2002)
28P. Richeri (2009)
29G. Tancredi (2009)
30Y. Wang (2002-2008)
31D. Weatherley (2007-)
32
33For further information about ESyS-Particle authors, email d.weatherley@uq.edu.au
034
=== added file 'trunk/BuildInstructions.pdf'
1Binary files trunk/BuildInstructions.pdf 1970-01-01 00:00:00 +0000 and trunk/BuildInstructions.pdf 2013-05-08 08:43:26 +0000 differ35Binary files trunk/BuildInstructions.pdf 1970-01-01 00:00:00 +0000 and trunk/BuildInstructions.pdf 2013-05-08 08:43:26 +0000 differ
=== added file 'trunk/CMakeLists.txt'
--- trunk/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ trunk/CMakeLists.txt 2013-05-08 08:43:26 +0000
@@ -0,0 +1,89 @@
1cmake_minimum_required(VERSION 2.6)
2
3project(ESyS-Particle-v2.1)
4
5set(CMAKE_BUILD_TYPE Release)
6
7# set(TOP_SRC_DIR "C:/SVWork/DEMDev/ESyS-Particle-2.1_vc9")
8set(TOP_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
9# set(TOP_BUILD_DIR ${TOP_SRC_DIR}/build)
10set(TOP_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
11
12set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${TOP_BUILD_DIR}/output)
13set(LIBRARY_OUTPUT_PATH ${TOP_BUILD_DIR}/lib)
14set(EXECUTABLE_OUTPUT_PATH ${TOP_BUILD_DIR}/exe)
15
16set(OMPI_INCLUDES "C:/Program Files (x86)/OpenMPI_v1.5.3-win32/include")
17set(OMPI_LIB_PATH "C:/Program Files (x86)/OpenMPI_v1.5.3-win32/lib")
18set(OMPI_CORE_LIBS "libmpi.lib" "libmpi_cxx.lib" "libopen-pal.lib" "libopen-rte.lib")
19
20# set(PYTHON_INCLUDES "C:/Python27/include")
21# set(PYTHON_LIB_PATH "C:/Python27/libs")
22
23set(PYTHON_INCLUDES "C:/Python-2.7.2/Include" "C:/Python-2.7.2/PC")
24set(PYTHON_LIB_PATH "C:/Python-2.7.2/PCbuild")
25
26set(BOOST_INCLUDES "C:/Program Files (x86)/boost/boost_1_47")
27set(BOOST_LIB_PATH "C:/Program Files (x86)/boost/boost_1_47/lib")
28
29SET(ESYS_INCLUDES
30 ${TOP_SRC_DIR}/Foundation
31 ${TOP_SRC_DIR}/Geometry
32 ${TOP_SRC_DIR}/Parallel
33 ${TOP_SRC_DIR}/Model
34 ${TOP_SRC_DIR}/pis
35 )
36SET(ESYS_LIB_PATH )
37
38cmake_policy(SET CMP0015 OLD)
39
40ADD_DEFINITIONS(-DWIN32 -DWINDOWS)
41ADD_DEFINITIONS(-DNOMINMAX -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS)
42ADD_DEFINITIONS(-wd4251 -wd4244 -wd4800 -wd4305 -wd4819 -wd4101)
43ADD_DEFINITIONS(-DOMPI_IMPORTS -DOPAL_IMPORTS -DORTE_IMPORTS)
44
45include_directories(${TOP_SRC_DIR} ${OMPI_INCLUDES} ${BOOST_INCLUDES} ${ESYS_INCLUDES} ${PYTHON_INCLUDES})
46link_directories(${OMPI_LIB_PATH} ${BOOST_LIB_PATH} ${ESYS_LIB_PATH} ${PYTHON_LIB_PATH})
47
48add_subdirectory(Foundation)
49add_subdirectory(Geometry)
50add_subdirectory(tml)
51add_subdirectory(ntable)
52add_subdirectory(ppa)
53add_subdirectory(pis)
54add_subdirectory(Fields)
55add_subdirectory(ParallelModel)
56add_subdirectory(MainBE)
57add_subdirectory(Python)
58add_subdirectory(Tools)
59
60
61########### install files ###############
62
63
64
65
66#original Makefile.am contents follow:
67
68##############################################################
69### ##
70### Copyright (c) 2003-2011 by The University of Queensland ##
71### Earth Systems Science Computational Centre (ESSCC) ##
72### http://www.uq.edu.au/esscc ##
73### ##
74### Primary Business: Brisbane, Queensland, Australia ##
75### Licensed under the Open Software License version 3.0 ##
76### http://www.opensource.org/licenses/osl-3.0.php ##
77### ##
78##############################################################
79#
80###
81#
82#include $(top_srcdir)/Config/Cpp.am
83#
84#SUBDIRS = libltdl Foundation ntable tml ppa pis Geometry Model Fields Parallel MainBE Tools Python
85#
86#ACLOCAL_AMFLAGS = -I Config
87#
88#EXTRA_DIST = Config/pkg.m4 Config/cppunit.m4 Config/libtool.m4
89#
090
=== added file 'trunk/COPYING'
--- trunk/COPYING 1970-01-01 00:00:00 +0000
+++ trunk/COPYING 2013-05-08 08:43:26 +0000
@@ -0,0 +1,11 @@
1#############################################################
2## ##
3## Copyright (c) 2003-2011 by The University of Queensland ##
4## Earth Systems Science Computational Centre (ESSCC) ##
5## http://www.uq.edu.au/esscc ##
6## ##
7## Primary Business: Brisbane, Queensland, Australia ##
8## Licensed under the Open Software License version 3.0 ##
9## http://www.opensource.org/licenses/osl-3.0.php ##
10## ##
11#############################################################
012
=== added file 'trunk/COPYRIGHT'
--- trunk/COPYRIGHT 1970-01-01 00:00:00 +0000
+++ trunk/COPYRIGHT 2013-05-08 08:43:26 +0000
@@ -0,0 +1,11 @@
1#############################################################
2## ##
3## Copyright (c) 2003-2011 by The University of Queensland ##
4## Earth Systems Science Computational Centre (ESSCC) ##
5## http://www.uq.edu.au/esscc ##
6## ##
7## Primary Business: Brisbane, Queensland, Australia ##
8## Licensed under the Open Software License version 3.0 ##
9## http://www.opensource.org/licenses/osl-3.0.php ##
10## ##
11#############################################################
012
=== added file 'trunk/ChangeLog'
--- trunk/ChangeLog 1970-01-01 00:00:00 +0000
+++ trunk/ChangeLog 2013-05-08 08:43:26 +0000
@@ -0,0 +1,15 @@
1#############################################################
2## ##
3## Copyright (c) 2003-2011 by The University of Queensland ##
4## Earth Systems Science Computational Centre (ESSCC) ##
5## http://www.uq.edu.au/esscc ##
6## ##
7## Primary Business: Brisbane, Queensland, Australia ##
8## Licensed under the Open Software License version 3.0 ##
9## http://www.opensource.org/licenses/osl-3.0.php ##
10## ##
11#############################################################
12
13For information on source code changes, please visit the
14ESyS-Particle SVN repository browser:
15https://svn.esscc.uq.edu.au/listing.php?repname=esys3++(contains+Esys-particle)&path=%2Flsm%2F&rev=0&sc=0
016
=== added directory 'trunk/Config'
=== added file 'trunk/Config/Cpp.am'
--- trunk/Config/Cpp.am 1970-01-01 00:00:00 +0000
+++ trunk/Config/Cpp.am 2013-05-08 08:43:26 +0000
@@ -0,0 +1,14 @@
1#############################################################
2## ##
3## Copyright (c) 2003-2011 by The University of Queensland ##
4## Earth Systems Science Computational Centre (ESSCC) ##
5## http://www.uq.edu.au/esscc ##
6## ##
7## Primary Business: Brisbane, Queensland, Australia ##
8## Licensed under the Open Software License version 3.0 ##
9## http://www.opensource.org/licenses/osl-3.0.php ##
10## ##
11#############################################################
12
13AM_CPPFLAGS = "-I$(top_srcdir)" $(BOOST_CPPFLAGS)
14AM_LDFLAGS = -release $(PACKAGE_VERSION)
0\ No newline at end of file15\ No newline at end of file
116
=== added file 'trunk/Config/Python.am'
--- trunk/Config/Python.am 1970-01-01 00:00:00 +0000
+++ trunk/Config/Python.am 2013-05-08 08:43:26 +0000
@@ -0,0 +1,45 @@
1#############################################################
2## ##
3## Copyright (c) 2003-2011 by The University of Queensland ##
4## Earth Systems Science Computational Centre (ESSCC) ##
5## http://www.uq.edu.au/esscc ##
6## ##
7## Primary Business: Brisbane, Queensland, Australia ##
8## Licensed under the Open Software License version 3.0 ##
9## http://www.opensource.org/licenses/osl-3.0.php ##
10## ##
11#############################################################
12
13##
14#
15# Begin $(top_srcdir)/Config/Python.am
16#
17##
18include $(top_srcdir)/Config/Cpp.am
19
20lsmdatadocdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)
21pythonapidocdir = $(lsmdatadocdir)/pythonapi
22
23esysdir = $(pythondir)/esys
24lsmdir = $(esysdir)/lsm
25
26lsmdocdir = $(lsmdir)/doc
27lsmbenchmarksdir = $(lsmdir)/benchmarks
28lsmbenchmarkscompressdir = $(lsmbenchmarksdir)/compress
29lsmbenchmarksgouge2ddir = $(lsmbenchmarksdir)/gouge2d
30lsmexamplesdir = $(lsmdir)/examples
31lsmexamplessimpledir = $(lsmexamplesdir)/simple
32lsmexampleswavepropdir= $(lsmexamplesdir)/waveprop
33lsmtoolsdir = $(lsmdir)/tools
34lsmutildir = $(lsmdir)/util
35lsmgeometrydir = $(lsmdir)/geometry
36lsmsimdir = $(lsmdir)/sim
37lsmsimcoupleddir = $(lsmsimdir)/coupled
38lsmvisdir = $(lsmdir)/vis
39lsmviscoredir = $(lsmvisdir)/core
40lsmvisvtkdir = $(lsmvisdir)/vtk
41lsmvispovraydir = $(lsmvisdir)/povray
42
43PYTHON_DLL_EXT = .so
44
45AM_CPPFLAGS += $(PYTHON_CPPFLAGS)
046
=== added file 'trunk/Config/ax_boost_base.m4'
--- trunk/Config/ax_boost_base.m4 1970-01-01 00:00:00 +0000
+++ trunk/Config/ax_boost_base.m4 2013-05-08 08:43:26 +0000
@@ -0,0 +1,219 @@
1# ===========================================================================
2# http://www.nongnu.org/autoconf-archive/ax_boost_base.html
3# ===========================================================================
4#
5# SYNOPSIS
6#
7# AX_BOOST_BASE([MINIMUM-VERSION])
8#
9# DESCRIPTION
10#
11# Test for the Boost C++ libraries of a particular version (or newer)
12#
13# If no path to the installed boost library is given the macro searchs
14# under /usr, /usr/local, /opt and /opt/local and evaluates the
15# $BOOST_ROOT environment variable. Further documentation is available at
16# <http://randspringer.de/boost/index.html>.
17#
18# This macro calls:
19#
20# AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS)
21#
22# And sets:
23#
24# HAVE_BOOST
25#
26# LICENSE
27#
28# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
29#
30# Copying and distribution of this file, with or without modification, are
31# permitted in any medium without royalty provided the copyright notice
32# and this notice are preserved.
33
34AC_DEFUN([AX_BOOST_BASE],
35[
36AC_ARG_WITH([boost],
37 AS_HELP_STRING([--with-boost@<:@=DIR@:>@], [use boost (default is yes) - it is possible to specify the root directory for boost (optional)]),
38 [
39 if test "$withval" = "no"; then
40 want_boost="no"
41 elif test "$withval" = "yes"; then
42 want_boost="yes"
43 ac_boost_path=""
44 else
45 want_boost="yes"
46 ac_boost_path="$withval"
47 fi
48 ],
49 [want_boost="yes"])
50
51
52AC_ARG_WITH([boost-libdir],
53 AS_HELP_STRING([--with-boost-libdir=LIB_DIR],
54 [Force given directory for boost libraries. Note that this will overwrite library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]),
55 [
56 if test -d $withval
57 then
58 ac_boost_lib_path="$withval"
59 else
60 AC_MSG_ERROR(--with-boost-libdir expected directory name)
61 fi
62 ],
63 [ac_boost_lib_path=""]
64)
65
66if test "x$want_boost" = "xyes"; then
67 boost_lib_version_req=ifelse([$1], ,1.20.0,$1)
68 boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
69 boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'`
70 boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
71 boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
72 if test "x$boost_lib_version_req_sub_minor" = "x" ; then
73 boost_lib_version_req_sub_minor="0"
74 fi
75 WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor`
76 AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req)
77 succeeded=no
78
79 dnl first we check the system location for boost libraries
80 dnl this location ist chosen if boost libraries are installed with the --layout=system option
81 dnl or if you install boost with RPM
82 if test "$ac_boost_path" != ""; then
83 BOOST_LDFLAGS="-L$ac_boost_path/lib"
84 BOOST_CPPFLAGS="-I$ac_boost_path/include"
85 else
86 for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
87 if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
88 BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib"
89 BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
90 break;
91 fi
92 done
93 fi
94
95 dnl overwrite ld flags if we have required special directory with
96 dnl --with-boost-libdir parameter
97 if test "$ac_boost_lib_path" != ""; then
98 BOOST_LDFLAGS="-L$ac_boost_lib_path"
99 fi
100
101 CPPFLAGS_SAVED="$CPPFLAGS"
102 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
103 export CPPFLAGS
104
105 LDFLAGS_SAVED="$LDFLAGS"
106 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
107 export LDFLAGS
108
109 AC_LANG_PUSH(C++)
110 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
111 @%:@include <boost/version.hpp>
112 ]], [[
113 #if BOOST_VERSION >= $WANT_BOOST_VERSION
114 // Everything is okay
115 #else
116 # error Boost version is too old
117 #endif
118 ]])],[
119 AC_MSG_RESULT(yes)
120 succeeded=yes
121 found_system=yes
122 ],[
123 ])
124 AC_LANG_POP([C++])
125
126
127
128 dnl if we found no boost with system layout we search for boost libraries
129 dnl built and installed without the --layout=system option or for a staged(not installed) version
130 if test "x$succeeded" != "xyes"; then
131 _version=0
132 if test "$ac_boost_path" != ""; then
133 if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
134 for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
135 _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
136 V_CHECK=`expr $_version_tmp \> $_version`
137 if test "$V_CHECK" = "1" ; then
138 _version=$_version_tmp
139 fi
140 VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
141 BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
142 done
143 fi
144 else
145 for ac_boost_path in /usr /usr/local /opt /opt/local ; do
146 if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
147 for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
148 _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
149 V_CHECK=`expr $_version_tmp \> $_version`
150 if test "$V_CHECK" = "1" ; then
151 _version=$_version_tmp
152 best_path=$ac_boost_path
153 fi
154 done
155 fi
156 done
157
158 VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
159 BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
160 if test "$ac_boost_lib_path" = ""
161 then
162 BOOST_LDFLAGS="-L$best_path/lib"
163 fi
164
165 if test "x$BOOST_ROOT" != "x"; then
166 if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/lib" && test -r "$BOOST_ROOT/stage/lib"; then
167 version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
168 stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
169 stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
170 V_CHECK=`expr $stage_version_shorten \>\= $_version`
171 if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then
172 AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
173 BOOST_CPPFLAGS="-I$BOOST_ROOT"
174 BOOST_LDFLAGS="-L$BOOST_ROOT/stage/lib"
175 fi
176 fi
177 fi
178 fi
179
180 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
181 export CPPFLAGS
182 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
183 export LDFLAGS
184
185 AC_LANG_PUSH(C++)
186 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
187 @%:@include <boost/version.hpp>
188 ]], [[
189 #if BOOST_VERSION >= $WANT_BOOST_VERSION
190 // Everything is okay
191 #else
192 # error Boost version is too old
193 #endif
194 ]])],[
195 AC_MSG_RESULT(yes)
196 succeeded=yes
197 found_system=yes
198 ],[
199 ])
200 AC_LANG_POP([C++])
201 fi
202
203 if test "$succeeded" != "yes" ; then
204 if test "$_version" = "0" ; then
205 AC_MSG_ERROR([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]])
206 else
207 AC_MSG_NOTICE([Your boost libraries seem too old (version $_version).])
208 fi
209 else
210 AC_SUBST(BOOST_CPPFLAGS)
211 AC_SUBST(BOOST_LDFLAGS)
212 AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
213 fi
214
215 CPPFLAGS="$CPPFLAGS_SAVED"
216 LDFLAGS="$LDFLAGS_SAVED"
217fi
218
219])
0220
=== added file 'trunk/Config/ax_boost_filesystem.m4'
--- trunk/Config/ax_boost_filesystem.m4 1970-01-01 00:00:00 +0000
+++ trunk/Config/ax_boost_filesystem.m4 2013-05-08 08:43:26 +0000
@@ -0,0 +1,112 @@
1# ===========================================================================
2# http://www.nongnu.org/autoconf-archive/ax_boost_filesystem.html
3# ===========================================================================
4#
5# SYNOPSIS
6#
7# AX_BOOST_FILESYSTEM
8#
9# DESCRIPTION
10#
11# Test for Filesystem library from the Boost C++ libraries. The macro
12# requires a preceding call to AX_BOOST_BASE. Further documentation is
13# available at <http://randspringer.de/boost/index.html>.
14#
15# This macro calls:
16#
17# AC_SUBST(BOOST_FILESYSTEM_LIB)
18#
19# And sets:
20#
21# HAVE_BOOST_FILESYSTEM
22#
23# LICENSE
24#
25# Copyright (c) 2009 Thomas Porschberg <thomas@randspringer.de>
26# Copyright (c) 2009 Michael Tindal
27# Copyright (c) 2009 Roman Rybalko <libtorrent@romanr.info>
28#
29# Copying and distribution of this file, with or without modification, are
30# permitted in any medium without royalty provided the copyright notice
31# and this notice are preserved.
32
33AC_DEFUN([AX_BOOST_FILESYSTEM],
34[
35 AC_ARG_WITH([boost-filesystem],
36 AS_HELP_STRING([--with-boost-filesystem@<:@=special-lib@:>@],
37 [use the Filesystem library from boost - it is possible to specify a certain library for the linker
38 e.g. --with-boost-filesystem=boost_filesystem-gcc-mt ]),
39 [
40 if test "$withval" = "no"; then
41 want_boost="no"
42 elif test "$withval" = "yes"; then
43 want_boost="yes"
44 ax_boost_user_filesystem_lib=""
45 else
46 want_boost="yes"
47 ax_boost_user_filesystem_lib="$withval"
48 fi
49 ],
50 [want_boost="yes"]
51 )
52
53 if test "x$want_boost" = "xyes"; then
54 AC_REQUIRE([AC_PROG_CC])
55 CPPFLAGS_SAVED="$CPPFLAGS"
56 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
57 #export CPPFLAGS
58
59 LDFLAGS_SAVED="$LDFLAGS"
60 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
61 #export LDFLAGS
62
63 LIBS_SAVED=$LIBS
64 LIBS="$LIBS $BOOST_SYSTEM_LIB"
65 #export LIBS
66
67 AC_CACHE_CHECK(whether the Boost::Filesystem library is available,
68 ax_cv_boost_filesystem,
69 [AC_LANG_PUSH([C++])
70 AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[@%:@include <boost/filesystem/path.hpp>]],
71 [[using namespace boost::filesystem;
72 path my_path( "foo/bar/data.txt" );
73 return 0;]]),
74 ax_cv_boost_filesystem=yes, ax_cv_boost_filesystem=no)
75 AC_LANG_POP([C++])
76 ])
77 if test "x$ax_cv_boost_filesystem" = "xyes"; then
78 AC_DEFINE(HAVE_BOOST_FILESYSTEM,,[define if the Boost::Filesystem library is available])
79 BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
80 if test "x$ax_boost_user_filesystem_lib" = "x"; then
81 for libextension in `ls $BOOSTLIBDIR/libboost_filesystem*.{so,dylib,a}* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_filesystem.*\)\.so.*$;\1;' -e 's;^lib\(boost_filesystem.*\)\.a*$;\1;' -e 's;^lib\(boost_filesystem.*\)\.dylib$;\1;'` ; do
82 ax_lib=${libextension}
83 AC_CHECK_LIB($ax_lib, __cxa_atexit,
84 [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break],
85 [link_filesystem="no"])
86 done
87 if test "x$link_program_options" != "xyes"; then
88 for libextension in `ls $BOOSTLIBDIR/boost_filesystem*.{dll,a}* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_filesystem.*\)\.dll.*$;\1;' -e 's;^\(boost_filesystem.*\)\.a*$;\1;'` ; do
89 ax_lib=${libextension}
90 AC_CHECK_LIB($ax_lib, __cxa_atexit,
91 [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break],
92 [link_filesystem="no"])
93 done
94 fi
95 else
96 for ax_lib in $ax_boost_user_filesystem_lib boost_filesystem-$ax_boost_user_filesystem_lib; do
97 AC_CHECK_LIB($ax_lib, __cxa_atexit,
98 [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break],
99 [link_filesystem="no"])
100 done
101
102 fi
103 if test "x$link_filesystem" != "xyes"; then
104 AC_MSG_ERROR(Could not link against $ax_lib !)
105 fi
106 fi
107
108 CPPFLAGS="$CPPFLAGS_SAVED"
109 LDFLAGS="$LDFLAGS_SAVED"
110 LIBS="$LIBS_SAVED"
111 fi
112])
0113
=== added file 'trunk/Config/ax_boost_python.m4'
--- trunk/Config/ax_boost_python.m4 1970-01-01 00:00:00 +0000
+++ trunk/Config/ax_boost_python.m4 2013-05-08 08:43:26 +0000
@@ -0,0 +1,91 @@
1# ===========================================================================
2# http://autoconf-archive.cryp.to/ax_boost_python.html
3# ===========================================================================
4#
5# SYNOPSIS
6#
7# AX_BOOST_PYTHON
8#
9# DESCRIPTION
10#
11# This macro checks to see if the Boost.Python library is installed. It
12# also attempts to guess the currect library name using several attempts.
13# It tries to build the library name using a user supplied name or suffix
14# and then just the raw library.
15#
16# If the library is found, HAVE_BOOST_PYTHON is defined and
17# BOOST_PYTHON_LIB is set to the name of the library.
18#
19# This macro calls AC_SUBST(BOOST_PYTHON_LIB).
20#
21# In order to ensure that the Python headers are specified on the include
22# path, this macro requires AX_PYTHON to be called.
23#
24# LAST MODIFICATION
25#
26# 2008-04-12
27#
28# COPYLEFT
29#
30# Copyright (c) 2008 Michael Tindal
31#
32# This program is free software; you can redistribute it and/or modify it
33# under the terms of the GNU General Public License as published by the
34# Free Software Foundation; either version 2 of the License, or (at your
35# option) any later version.
36#
37# This program is distributed in the hope that it will be useful, but
38# WITHOUT ANY WARRANTY; without even the implied warranty of
39# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
40# Public License for more details.
41#
42# You should have received a copy of the GNU General Public License along
43# with this program. If not, see <http://www.gnu.org/licenses/>.
44#
45# As a special exception, the respective Autoconf Macro's copyright owner
46# gives unlimited permission to copy, distribute and modify the configure
47# scripts that are the output of Autoconf when processing the Macro. You
48# need not follow the terms of the GNU General Public License when using
49# or distributing such scripts, even though portions of the text of the
50# Macro appear in them. The GNU General Public License (GPL) does govern
51# all other use of the material that constitutes the Autoconf Macro.
52#
53# This special exception to the GPL applies to versions of the Autoconf
54# Macro released by the Autoconf Macro Archive. When you make and
55# distribute a modified version of the Autoconf Macro, you may extend this
56# special exception to the GPL to apply to your modified version as well.
57
58AC_DEFUN([AX_BOOST_PYTHON],
59[AC_CACHE_CHECK(whether the Boost::Python library is available,
60ac_cv_boost_python,
61[AC_LANG_SAVE
62 AC_LANG_CPLUSPLUS
63 CPPFLAGS_SAVE=$CPPFLAGS
64 CPPFLAGS="$BOOST_CPPFLAGS $PYTHON_CPPFLAGS $CPPFLAGS"
65 if test x$PYTHON_INCLUDE_DIR != x; then
66 CPPFLAGS=-I$PYTHON_INCLUDE_DIR $CPPFLAGS
67 fi
68 AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[
69 #include <boost/python/module.hpp>
70 using namespace boost::python;
71 BOOST_PYTHON_MODULE(test) { throw "Boost::Python test."; }]],
72 [[return 0;]]),
73 ac_cv_boost_python=yes, ac_cv_boost_python=no)
74 AC_LANG_RESTORE
75 CPPFLAGS=$CPPFLAGS_SAVE
76])
77if test "$ac_cv_boost_python" = "yes"; then
78 AC_DEFINE(HAVE_BOOST_PYTHON,,[define if the Boost::Python library is available])
79 ax_python_lib=boost_python
80 AC_ARG_WITH([boost-python],AS_HELP_STRING([--with-boost-python],[specify the boost python library or suffix to use]),
81 [if test "x$with_boost_python" != "xno"; then
82 ax_python_lib=$with_boost_python
83 ax_boost_python_lib=boost_python-$with_boost_python
84 fi])
85 LDFLAGS="$BOOST_LDFLAGS $LDFLAGS"
86 for ax_lib in $ax_python_lib $ax_boost_python_lib boost_python boost_python-mt; do
87 AC_CHECK_LIB($ax_lib, __cxa_atexit, [BOOST_PYTHON_LIB=-l$ax_lib break])
88 done
89 AC_SUBST(BOOST_PYTHON_LIB)
90fi
91])dnl
092
=== added file 'trunk/Config/cppunit.m4'
--- trunk/Config/cppunit.m4 1970-01-01 00:00:00 +0000
+++ trunk/Config/cppunit.m4 2013-05-08 08:43:26 +0000
@@ -0,0 +1,80 @@
1dnl
2dnl AM_PATH_CPPUNIT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
3dnl
4AC_DEFUN([AM_PATH_CPPUNIT],
5[
6
7AC_ARG_WITH(cppunit-prefix,[ --with-cppunit-prefix=PFX Prefix where CppUnit is installed (optional)],
8 cppunit_config_prefix="$withval", cppunit_config_prefix="")
9AC_ARG_WITH(cppunit-exec-prefix,[ --with-cppunit-exec-prefix=PFX Exec prefix where CppUnit is installed (optional)],
10 cppunit_config_exec_prefix="$withval", cppunit_config_exec_prefix="")
11
12 if test x$cppunit_config_exec_prefix != x ; then
13 cppunit_config_args="$cppunit_config_args --exec-prefix=$cppunit_config_exec_prefix"
14 if test x${CPPUNIT_CONFIG+set} != xset ; then
15 CPPUNIT_CONFIG=$cppunit_config_exec_prefix/bin/cppunit-config
16 fi
17 fi
18 if test x$cppunit_config_prefix != x ; then
19 cppunit_config_args="$cppunit_config_args --prefix=$cppunit_config_prefix"
20 if test x${CPPUNIT_CONFIG+set} != xset ; then
21 CPPUNIT_CONFIG=$cppunit_config_prefix/bin/cppunit-config
22 fi
23 fi
24
25 AC_PATH_PROG(CPPUNIT_CONFIG, cppunit-config, no)
26 cppunit_version_min=$1
27
28 AC_MSG_CHECKING(for Cppunit - version >= $cppunit_version_min)
29 no_cppunit=""
30 if test "$CPPUNIT_CONFIG" = "no" ; then
31 no_cppunit=yes
32 else
33 CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags`
34 CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs`
35 cppunit_version=`$CPPUNIT_CONFIG --version`
36
37 cppunit_major_version=`echo $cppunit_version | \
38 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
39 cppunit_minor_version=`echo $cppunit_version | \
40 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
41 cppunit_micro_version=`echo $cppunit_version | \
42 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
43
44 cppunit_major_min=`echo $cppunit_version_min | \
45 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
46 cppunit_minor_min=`echo $cppunit_version_min | \
47 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
48 cppunit_micro_min=`echo $cppunit_version_min | \
49 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
50
51 cppunit_version_proper=`expr \
52 $cppunit_major_version \> $cppunit_major_min \| \
53 $cppunit_major_version \= $cppunit_major_min \& \
54 $cppunit_minor_version \> $cppunit_minor_min \| \
55 $cppunit_major_version \= $cppunit_major_min \& \
56 $cppunit_minor_version \= $cppunit_minor_min \& \
57 $cppunit_micro_version \>= $cppunit_micro_min `
58
59 if test "$cppunit_version_proper" = "1" ; then
60 AC_MSG_RESULT([$cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version])
61 else
62 AC_MSG_RESULT(no)
63 no_cppunit=yes
64 fi
65 fi
66
67 if test "x$no_cppunit" = x ; then
68 ifelse([$2], , :, [$2])
69 else
70 CPPUNIT_CFLAGS=""
71 CPPUNIT_LIBS=""
72 ifelse([$3], , :, [$3])
73 fi
74
75 AC_SUBST(CPPUNIT_CFLAGS)
76 AC_SUBST(CPPUNIT_LIBS)
77])
78
79
80
081
=== added file 'trunk/Config/pkg.m4'
--- trunk/Config/pkg.m4 1970-01-01 00:00:00 +0000
+++ trunk/Config/pkg.m4 2013-05-08 08:43:26 +0000
@@ -0,0 +1,58 @@
1
2dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
3dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
4dnl also defines GSTUFF_PKG_ERRORS on error
5
6AC_DEFUN([PKG_CHECK_MODULES], [
7 succeeded=no
8
9 if test -z "$PKG_CONFIG"; then
10 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
11 fi
12
13 if test "$PKG_CONFIG" = "no" ; then
14 echo "*** The pkg-config script could not be found. Make sure it is"
15 echo "*** in your path, or set the PKG_CONFIG environment variable"
16 echo "*** to the full path to pkg-config."
17 echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
18 else
19 PKG_CONFIG_MIN_VERSION=0.6.0
20 if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
21 AC_MSG_CHECKING(for $2)
22
23 if $PKG_CONFIG --exists "$2" ; then
24 AC_MSG_RESULT(yes)
25 succeeded=yes
26
27 AC_MSG_CHECKING($1_CFLAGS)
28 $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
29 AC_MSG_RESULT($$1_CFLAGS)
30
31 AC_MSG_CHECKING($1_LIBS)
32 $1_LIBS=`$PKG_CONFIG --libs "$2"`
33 AC_MSG_RESULT($$1_LIBS)
34 else
35 $1_CFLAGS=""
36 $1_LIBS=""
37 ## If we have a custom action on failure, don't print errors, but
38 ## do set a variable so people can do so.
39 $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
40 ifelse([$4], ,echo $$1_PKG_ERRORS,)
41 fi
42
43 AC_SUBST($1_CFLAGS)
44 AC_SUBST($1_LIBS)
45 else
46 echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
47 echo "*** See http://www.freedesktop.org/software/pkgconfig"
48 fi
49 fi
50
51 if test $succeeded = yes; then
52 ifelse([$3], , :, [$3])
53 else
54 ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
55 fi
56])
57
58
059
=== added file 'trunk/Config/python.m4'
--- trunk/Config/python.m4 1970-01-01 00:00:00 +0000
+++ trunk/Config/python.m4 2013-05-08 08:43:26 +0000
@@ -0,0 +1,193 @@
1## ------------------------ -*- Autoconf -*-
2## Python file handling
3## From Andrew Dalke
4## Updated by James Henstridge
5## ------------------------
6# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009
7# Free Software Foundation, Inc.
8#
9# This file is free software; the Free Software Foundation
10# gives unlimited permission to copy and/or distribute it,
11# with or without modifications, as long as this notice is preserved.
12
13# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
14# ---------------------------------------------------------------------------
15# Adds support for distributing Python modules and packages. To
16# install modules, copy them to $(pythondir), using the python_PYTHON
17# automake variable. To install a package with the same name as the
18# automake package, install to $(pkgpythondir), or use the
19# pkgpython_PYTHON automake variable.
20#
21# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
22# locations to install python extension modules (shared libraries).
23# Another macro is required to find the appropriate flags to compile
24# extension modules.
25#
26# If your package is configured with a different prefix to python,
27# users will have to add the install directory to the PYTHONPATH
28# environment variable, or create a .pth file (see the python
29# documentation for details).
30#
31# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
32# cause an error if the version of python installed on the system
33# doesn't meet the requirement. MINIMUM-VERSION should consist of
34# numbers and dots only.
35AC_DEFUN([AM_PATH_PYTHON],
36 [
37 dnl Find a Python interpreter. Python versions prior to 2.0 are not
38 dnl supported. (2.0 was released on October 16, 2000).
39 m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
40 [python python2 python3 python3.0 python2.6 python2.5 python2.4 python2.3 python2.2 dnl
41python2.1 python2.0])
42
43 m4_if([$1],[],[
44 dnl No version check is needed.
45 # Find any Python interpreter.
46 if test -z "$PYTHON"; then
47 AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
48 fi
49 am_display_PYTHON=python
50 ], [
51 dnl A version check is needed.
52 if test -n "$PYTHON"; then
53 # If the user set $PYTHON, use it and don't search something else.
54 AC_MSG_CHECKING([whether $PYTHON version >= $1])
55 AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
56 [AC_MSG_RESULT(yes)],
57 [AC_MSG_ERROR(too old)])
58 am_display_PYTHON=$PYTHON
59 else
60 # Otherwise, try each interpreter until we find one that satisfies
61 # VERSION.
62 AC_CACHE_CHECK([for a Python interpreter with version >= $1],
63 [am_cv_pathless_PYTHON],[
64 for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
65 test "$am_cv_pathless_PYTHON" = none && break
66 AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
67 done])
68 # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
69 if test "$am_cv_pathless_PYTHON" = none; then
70 PYTHON=:
71 else
72 AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
73 fi
74 am_display_PYTHON=$am_cv_pathless_PYTHON
75 fi
76 ])
77
78 if test "$PYTHON" = :; then
79 dnl Run any user-specified action, or abort.
80 m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
81 else
82
83 dnl Query Python for its version number. Getting [:3] seems to be
84 dnl the best way to do this; it's what "site.py" does in the standard
85 dnl library.
86
87 AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
88 [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
89 AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
90
91 dnl Use the values of $prefix and $exec_prefix for the corresponding
92 dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
93 dnl distinct variables so they can be overridden if need be. However,
94 dnl general consensus is that you shouldn't need this ability.
95
96 AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
97 AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
98
99 dnl At times (like when building shared libraries) you may want
100 dnl to know which OS platform Python thinks this is.
101
102 AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
103 [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
104 AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
105
106
107 dnl Set up 4 directories:
108
109 dnl pythondir -- where to install python scripts. This is the
110 dnl site-packages directory, not the python standard library
111 dnl directory like in previous automake betas. This behavior
112 dnl is more consistent with lispdir.m4 for example.
113 dnl Query distutils for this directory. distutils does not exist in
114 dnl Python 1.5, so we fall back to the hardcoded directory if it
115 dnl doesn't work.
116 AC_CACHE_CHECK([for $am_display_PYTHON script directory],
117 [am_cv_python_pythondir],
118 [if test "x$prefix" = xNONE
119 then
120 am_py_prefix=$ac_default_prefix
121 else
122 am_py_prefix=$prefix
123 fi
124 am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
125 echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
126 case $am_cv_python_pythondir in
127 $am_py_prefix*)
128 am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
129 am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
130 ;;
131 esac
132 ])
133 AC_SUBST([pythondir], [$am_cv_python_pythondir])
134
135 dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
136 dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
137 dnl more consistent with the rest of automake.
138
139 AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
140
141 dnl pyexecdir -- directory for installing python extension modules
142 dnl (shared libraries)
143 dnl Query distutils for this directory. distutils does not exist in
144 dnl Python 1.5, so we fall back to the hardcoded directory if it
145 dnl doesn't work.
146 AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
147 [am_cv_python_pyexecdir],
148 [if test "x$exec_prefix" = xNONE
149 then
150 am_py_exec_prefix=$am_py_prefix
151 else
152 am_py_exec_prefix=$exec_prefix
153 fi
154 am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
155 echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
156 case $am_cv_python_pyexecdir in
157 $am_py_exec_prefix*)
158 am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
159 am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
160 ;;
161 esac
162 ])
163 AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
164
165 dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
166
167 AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
168
169 dnl Run any user-specified action.
170 $2
171 fi
172
173])
174
175
176# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
177# ---------------------------------------------------------------------------
178# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
179# Run ACTION-IF-FALSE otherwise.
180# This test uses sys.hexversion instead of the string equivalent (first
181# word of sys.version), in order to cope with versions such as 2.2c1.
182# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
183AC_DEFUN([AM_PYTHON_CHECK_VERSION],
184 [prog="import sys
185# split strings by '.' and convert to numeric. Append some zeros
186# because we need at least 4 digits for the hex conversion.
187# map returns an iterator in Python 3.0 and a list in 2.x
188minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
189minverhex = 0
190# xrange is not present in Python 3.0 and range returns an iterator
191for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
192sys.exit(sys.hexversion < minverhex)"
193 AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
0194
=== added file 'trunk/Config/rules.am'
--- trunk/Config/rules.am 1970-01-01 00:00:00 +0000
+++ trunk/Config/rules.am 2013-05-08 08:43:26 +0000
@@ -0,0 +1,58 @@
1#############################################################
2## ##
3## Copyright (c) 2003-2011 by The University of Queensland ##
4## Earth Systems Science Computational Centre (ESSCC) ##
5## http://www.uq.edu.au/esscc ##
6## ##
7## Primary Business: Brisbane, Queensland, Australia ##
8## Licensed under the Open Software License version 3.0 ##
9## http://www.opensource.org/licenses/osl-3.0.php ##
10## ##
11#############################################################
12
13##
14#
15# Begin $(top_srcdir)/Config/rules.am
16#
17
18if TAU_PROFILING
19 include $(TAU_MAKEFILE)
20 AM_MAKEFLAGS = -r CC="$(TAU_CC)" CXX="$(TAU_CXX)" CPPFLAGS="$(TAU_DEFS) $(TAU_INCLUDE) $(TAU_MPI_INCLUDE)"
21
22 PDTPARSE = $(PDTDIR)/$(CONFIG_ARCH)/bin/cxxparse
23 TAUINSTR = $(TAU_PREFIX_INSTALL_DIR)/$(CONFIG_ARCH)/bin/tau_instrumentor
24
25 EXTRA_LD_LIBS = $(TAU_LDFLAGS) $(TAU_MPI_LIBS) $(TAU_LIBS) -lpfm
26
27#
28# Prevent intermediate instrumented files from automatically
29# being deleted.
30#
31.SECONDARY: .inst_cpp .pdb
32
33#
34# Cancel implicit rules
35#
36%.o: %.cpp
37
38%.o:%.inst_cpp
39 if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
40 then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
41
42%.inst_cpp: %.pdb
43 $(TAUINSTR) $*.pdb $*.cpp -o $@
44
45%.pdb: %.cpp
46 $(PDTPARSE) $< -I. $(CPPFLAGS) $(AM_CPPFLAGS)
47
48else
49 AM_MAKEFLAGS =
50 EXTRA_LD_LIBS =
51endif
52
53CLEANFILES = *.inst_cpp *.pdb
54
55#
56# End $(top_srcdir)/Config/rules.am
57#
58##
059
=== added directory 'trunk/Doc'
=== added file 'trunk/Doc/FileFormat.pdf'
1Binary files trunk/Doc/FileFormat.pdf 1970-01-01 00:00:00 +0000 and trunk/Doc/FileFormat.pdf 2013-05-08 08:43:26 +0000 differ60Binary files trunk/Doc/FileFormat.pdf 1970-01-01 00:00:00 +0000 and trunk/Doc/FileFormat.pdf 2013-05-08 08:43:26 +0000 differ
=== added file 'trunk/Doc/FileFormat.ps'
--- trunk/Doc/FileFormat.ps 1970-01-01 00:00:00 +0000
+++ trunk/Doc/FileFormat.ps 2013-05-08 08:43:26 +0000
@@ -0,0 +1,2861 @@
1%!PS-Adobe-2.0
2%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
3%%Title: FileFormat.dvi
4%%Pages: 4
5%%PageOrder: Ascend
6%%BoundingBox: 0 0 596 842
7%%DocumentFonts: CMR17 CMR12 CMBX12 CMR10 CMTI10 CMBX10 CMSY10 CMR7 CMR6
8%%+ CMR8 CMTT10 CMSS10 CMMI10
9%%DocumentPaperSizes: a4
10%%EndComments
11%DVIPSWebPage: (www.radicaleye.com)
12%DVIPSCommandLine: dvips FileFormat
13%DVIPSParameters: dpi=600, compressed
14%DVIPSSource: TeX output 2004.11.08:1214
15%%BeginProcSet: texc.pro
16%!
17/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
18N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
19mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
200 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
21landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
22mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
23matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
24exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
25statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
26N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
27/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
28/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
29array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
30df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
31definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
32}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
33B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
341 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
351 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
360 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
37sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
38rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
39gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
40/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
41/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
42A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
43get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
44ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
45fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
46{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
47chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
481 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
49forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
50/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
51}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
52bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
53mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
54SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
55userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
561000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
57index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
58/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
59/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
60(LaserWriter 16/600)]{A length product length le{A length product exch 0
61exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
62end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
63grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
64imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
65exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
66fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
67delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
68B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
69p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
70rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
71
72%%EndProcSet
73%%BeginProcSet: f7b6d320.enc
74% Thomas Esser, Dec 2002. public domain
75%
76% Encoding for:
77% cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
78% cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
79% cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
80% cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
81%
82/TeXf7b6d320Encoding [
83/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
84/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
85/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
86/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand
87/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
88/period /slash /zero /one /two /three /four /five /six /seven /eight
89/nine /colon /semicolon /exclamdown /equal /questiondown /question /at
90/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X
91/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
92/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
93/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
94/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
95/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
96/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
97/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
98/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
99/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
100/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
101/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
102/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
103/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
104/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
105/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
106/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
107/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
108/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
109] def
110
111%%EndProcSet
112%%BeginProcSet: 74afc74c.enc
113% Thomas Esser, Dec 2002. public domain
114%
115% Encoding for:
116% cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10
117%
118/TeX74afc74cEncoding [
119/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
120/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
121/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
122/suppress /exclam /quotedblright /numbersign /sterling /percent
123/ampersand /quoteright /parenleft /parenright /asterisk /plus /comma
124/hyphen /period /slash /zero /one /two /three /four /five /six /seven
125/eight /nine /colon /semicolon /exclamdown /equal /questiondown /question
126/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W
127/X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
128/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
129/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
130/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
131/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
132/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
133/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
134/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
135/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
136/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
137/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
138/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
139/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
140/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
141/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
142/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
143/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
144/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
145] def
146
147%%EndProcSet
148%%BeginProcSet: bbad153f.enc
149% Thomas Esser, Dec 2002. public domain
150%
151% Encoding for:
152% cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
153%
154/TeXbbad153fEncoding [
155/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
156/plusminus /minusplus /circleplus /circleminus /circlemultiply
157/circledivide /circledot /circlecopyrt /openbullet /bullet
158/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
159/greaterequal /precedesequal /followsequal /similar /approxequal
160/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
161/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
162/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
163/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
164/prime /infinity /element /owner /triangle /triangleinv /negationslash
165/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
166/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
167/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
168/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
169/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
170/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
171/backslash /wreathproduct /radical /coproduct /nabla /integral
172/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
173/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
174/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
175/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
176/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
177/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
178/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
179/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
180/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
181/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
182/lessequal /greaterequal /precedesequal /followsequal /similar
183/approxequal /propersubset /propersuperset /lessmuch /greatermuch
184/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
185/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
186/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
187/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
188/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
189/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
190/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
191/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
192] def
193
194%%EndProcSet
195%%BeginProcSet: 09fbbfac.enc
196% Thomas Esser, Dec 2002. public domain
197%
198% Encoding for:
199% cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9
200/TeX09fbbfacEncoding [
201/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
202/Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown
203/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla
204/germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam
205/quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft
206/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
207/two /three /four /five /six /seven /eight /nine /colon /semicolon /less
208/equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N
209/O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright
210/asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l
211/m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright
212/asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef
213/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
214/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
215/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
216/.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi
217/Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown
218/quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute
219/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
220/OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef
221/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
222/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
223/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
224/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
225/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
226/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
227/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
228] def
229
230%%EndProcSet
231%%BeginProcSet: aae443f0.enc
232% Thomas Esser, Dec 2002. public domain
233%
234% Encoding for:
235% cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10
236%
237/TeXaae443f0Encoding [
238/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
239/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa
240/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi
241/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf
242/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft
243/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle
244/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle
245/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash
246/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N
247/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow
248/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p
249/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector
250/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
251/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
252/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
253/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
254/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
255/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta
256/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon
257/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
258/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
259/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
260/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
261/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
262/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
263/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
264/.notdef /.notdef /.notdef /.notdef /.notdef
265] def
266
267%%EndProcSet
268%%BeginProcSet: texps.pro
269%!
270TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
271index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
272exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
273ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
274pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
275div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
276/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
277definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
278sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
279mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
280exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
281forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
282end
283
284%%EndProcSet
285%%BeginFont: CMMI10
286%!PS-AdobeFont-1.1: CMMI10 1.100
287%%CreationDate: 1996 Jul 23 07:53:57
288% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
28911 dict begin
290/FontInfo 7 dict dup begin
291/version (1.100) readonly def
292/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
293/FullName (CMMI10) readonly def
294/FamilyName (Computer Modern) readonly def
295/Weight (Medium) readonly def
296/ItalicAngle -14.04 def
297/isFixedPitch false def
298end readonly def
299/FontName /CMMI10 def
300/PaintType 0 def
301/FontType 1 def
302/FontMatrix [0.001 0 0 0.001 0 0] readonly def
303/Encoding 256 array
3040 1 255 {1 index exch /.notdef put} for
305dup 0 /.notdef put
306readonly def
307/FontBBox{-32 -250 1048 750}readonly def
308/UniqueID 5087385 def
309currentdict end
310currentfile eexec
311D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3123B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
313532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
314B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
315986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
316D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
3179E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
318990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
3196EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
320DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
32159616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
322D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
3238B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
3246FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
3251DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
32603BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
32795AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
32874109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
3293EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
33047750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
331AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
33242616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
33340B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
334B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
33595601766730045C2D9F29DC2BFEBDE5E7720CC7D82522855B154A338B97295BF
336C94D357B94E5EE165165F83EAC02B88B573631B8D41DF206F7D0D338F76845F6
337254C471585F53C741E6688418E5AC9F925118BA1FF52986F752794737CFCBA41
338D679150DDEA6E48FECD336FA584A3024B278B6F3E83BD95C2747B110E60F8457
33983A0BC821CBC5D23D195C312191509F373F508982B45805E370437AAF029511E
34036054CDEBC869477682E06298EFDF6CD99C517A6D45BC1002BFCF6B919E44E49
3411C50C65E3E0273F272E1D084B6DC6C88C65FC406A3545F13475FFA00B9A84E1D
34292E99123DE992A8A9FABD0375F2052D369D85D04138B6758859FA901A94C5DD7
34378EF4DEC089465D275053BF37A37D21EEAD9CA46CBE5C73CB63E5500FA005DFD
344CAF646BBCD7D6E8C09BB7EBB0B4D23356A556726E6FAC52A0000A5A5812E8D24
345B51C00FDC41828DAED369259ED5027406C3533AB886A784A00DC4088A9D56F6A
3468ED9B6B9775A8DF332D6A05F5B25461F9E9FF1A244D536F82C347A476F4AD34D
347A6A90FC709E11D41631EACDD4B4DC17ADF72BCE6CFBDB32F50A8682848C7643E
34878D1E4CCDDF12C9D6B21F528AAA261DCBBDA5F7DC9DFFBE44A3441D3DDC9F268
3491BA42BA2A4A6E5CD2DCC4D7483CE62665CB2F395746B780BB4949C5847FB4642
3507CF6922B91BA4670C10A38B5D06A9FDB62E3D506A9E80A3999E816034152F426
35173983F1FDCA9CD3B3FFE8DDC2906959BB52AB45C4AC938EE5E7075A9189208CA
35205897D8388815CB19E351C4BE70B718D1C17E6E8A206B35BF7A5F8B4EA998F57
35342F7AC30D2198CBC98FA46683787E4C6CC19432446F7193A7B567F0DA9587615
354BC04BC64010CF75D87F87EA43A67BC9D9707837A8E45CB2F8D05B521D4D951FA
3556CF862A208777757CE3278AFE313AE55E93990D6E82F313D6C5132122D273A79
356F27AF9C135C97EBB9F4B0256414AA9957660ACBE13BA23CEFCC4516A30FBAE68
357F5CBFB4BA04E2A35AF5A739BF6F9E67883031E993D20E4A06FC93FDBD207BDBF
358DDA804D84A4B50FACA94FF039E5AFB369F446CF408EC600D35E05BDC24553593
3599933315ED4C7DEF9B08C690B51C11CF9424C4E650CD9A80CFDC769E1D6393185
36091D81E59A1D6186593EEB3BF355FFE11951C89AB97CD48F45BAC70DFF7B73DF7
361A18131DC0A58B947DE6F20B64C910FAE0BC25A1CD91947117FA04B0B6ABADD22
36240B72B7DD1B1E970A65017DA3B766A23E16615B6B0BA21420C22026CB9AFF945
36305DB6C097F7358DDC1F0257DDA77FB5E387FCDF2D811430A19286E66024827CB
36486A6205419B8204BE9C5602665BF425063A984F5AFC894C3BB3C5101E169386F
365FBE308C4D1CF1B95DF6EA59D7CDBC65FE47F368B0DB77CED24FF6A0534A822C1
3661A4443054942155C63344D9716644FCFFD13945C82008BFF8FCEB41DF35F9A94
367161E0C1C8CCAEDDDEB3E7DAE11268B4C56161B36769430DA076FE370894EB365
368EF5BD178B262D1029B70EA7EF95BECE9405A774BF8B5576D5040AABF5A51224C
369014428956667A98AE64008A6B25C2C3D427B8AE46DB8020F184F1DE273791052
370E968593534A5B60BC147353311159A020C8BEE417A4AC360C30BEEAB07A91221
371365C8E2704BB45FCECFA4E2598098358BF4AEAFF659D
3720000000000000000000000000000000000000000000000000000000000000000
3730000000000000000000000000000000000000000000000000000000000000000
3740000000000000000000000000000000000000000000000000000000000000000
3750000000000000000000000000000000000000000000000000000000000000000
3760000000000000000000000000000000000000000000000000000000000000000
3770000000000000000000000000000000000000000000000000000000000000000
3780000000000000000000000000000000000000000000000000000000000000000
3790000000000000000000000000000000000000000000000000000000000000000
380cleartomark
381%%EndFont
382%%BeginFont: CMSS10
383%!PS-AdobeFont-1.1: CMSS10 1.0
384%%CreationDate: 1991 Aug 20 17:33:34
385% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
38611 dict begin
387/FontInfo 7 dict dup begin
388/version (1.0) readonly def
389/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
390/FullName (CMSS10) readonly def
391/FamilyName (Computer Modern) readonly def
392/Weight (Medium) readonly def
393/ItalicAngle 0 def
394/isFixedPitch false def
395end readonly def
396/FontName /CMSS10 def
397/PaintType 0 def
398/FontType 1 def
399/FontMatrix [0.001 0 0 0.001 0 0] readonly def
400/Encoding 256 array
4010 1 255 {1 index exch /.notdef put} for
402dup 0 /.notdef put
403readonly def
404/FontBBox{-61 -250 999 759}readonly def
405/UniqueID 5000803 def
406currentdict end
407currentfile eexec
408D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
409016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
4109098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
411D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
412469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
4132BDBF16FBC7512FAA308A093FE5CF7158F1163BDCEEA888D07B439DBD4E8B4C9
414D198C03874B5E6F8FBF4922065A92BC3E66D05DE53971CB1424510E892442858
415D69CE1F76E4DA76C87C763A4B2FE36321E54B1328C9155B8ED6361855A151723
4163386AEA3D042B8D89C8C0E9A33E5DF3B466F7BB8C2C8A4ED4CDAFF55FC6D3EE6
4170AF2CEBFC1AC3A6E6692F8BB81F82D86BAE85016AD62FCB05467082C2E5AD348
41844D1439C2B59F65590E57CA0DE481A7A34E79931B1513C4C30156170409A4BB8
41946D412D1DAF88AD30722F12DBCA1CCC6B4BCC28D06B0D29149DDEC520C8FBA13
4206B82E2E1790F00B216282FF122EF0D47B70A1B29514DDF7C0435ED238C14BDF5
4216DA243117FBEF7398F97EB95597707ED63C6797EBA1B46EA19ABB1DABDA171B3
42216CD500F5D64CBFBE4F9CBC3E66A34427D3C4D0C432710289381F9BFD91B4FF4
4231E3A896C3EEA2F3105C218877D6C0C6B763760FA364D00065E1CAE9DCB5676ED
424286A9ED0D1C946DCA6A2A670EE0936FB4706CC62E234CFEED34AA615C48D2872
425A087F30990C85E64BA68F3D5C117123467DB411C9F2D6F6858CC70C1E352C477
426713097321B4C4FD4C5CDE305415F998E7245908EEDE6E056A736EA77BD8C639C
4273A79FFD0B74B3D28F0494A115F2841CF8A8827AB5608F96FD8998A5F40FB3DFE
4283AA0C7696DE4E1D18DC0D6E84B943175FC38FFC42A9C0CBB13A908978C98BFE5
429034F88480F32B9DEB2FD228FF6CB0B89B045AB02020C82E3F5716DC640613185
4309F597CE262729BC52132F43922B9E28BB71A30AC8709634561B22D13C4FAFE0A
43112C4451969226B220038AD8DDA990A4E2CAD53DBEAB698898BBD3046234EB4EA
432901287E71CB41296C431383AB85F18882F65BE36923F6C0FD6FAD87F09D5BE9D
433FB4E76FC098BB56B9FA6662C66CDC5BED18E80C5E7D9ED01318BA6F3914779F7
434206692193CE70BD497874C3D464D357C2BE915C103FF36C4C252EA481F5A24EC
435FCDF6EB221E0DBB142B63FD9828D38C0C1E60AA28F109656DE29FCD2D82132DF
436918D09FAAC4BD551DCDD2E50629EB4744B3BB81997CFBD61D16DB0CA8EFED062
437A1ABC00933B900560868255518877EEE5DB9C1A6745E4F1EC92E1D6DF0E28D7E
4387A6ED8E9075D10EAD709940544B6BF290580AA0B050D916CA3F298818EB4A6DF
43912B100FF4FA827972CCA77EDF5C5E6778B5AA66CE5ED14F27945D59CD3B02BB8
440EB51D7D94CF965202AD6B85D512052BDE36ED558A1A044E06D28F8BF674AAD70
44196BC6892E57D4469CF9A3FBDE80E5C468BA5839FC219CEB4AE6FC58CCF3F5864
44293C77528ABCDC20D040874C3D3DDB64D2C2C8F18A47C36BAF28289E802E8DC7A
443B443510C280A1395F9A7E0AE368E3EA938CEDC2A67455FDE9457CE16DCC5F911
444D63375A22C2435B055C559D079770AF3432F04C2334D472D58241D4F55763A14
445BF8BE099F9C4B94BED133FD9126572DDF7AA512D79F61606A9895992F06590F4
4466627B4976FD35AD007A7FFBD6B70DEE8F17643228DFBEE32978B158CF7144F9D
447CAE548C5B26450CD3D14BD2D53484F82CCEE842FE2101ACA459C431C0106DE9A
448C8A1E3FF47D9C14EDA9463C57EEF83B191FC8E1B4862EE97E34362EB40A334B6
4492252549F904D0EC5FBDB8642BFFD9469D502F97EA64DC6F1B3CB4A612E25BBE7
450D9988FC467F33529C56856CC9ADC79601595329AE6859FEE2FB3D9EBDBCFAC31
4514E3A3DF1930381634C3A3832077A48BD8C8DFDAD74858AA64F7DD0B72BE20934
452432B31EE1CCB3E1D080D30959C5C57B6D0EBA5CD0B1BEA563BC2C4DCC70C2C2D
453016AFC8DD74097868DD3A8694F5BD9ED85D63E7F7B448672DFF678AD1050B3C4
45420E1A5659D4DE36D58FEBC27AA6B0EE1B773BDDAA225A857DE146D9D34615E33
455F753319631204D0032B414F67583E17F226B40BF5D70B8B20FA98824641CC288
4568A9F6F721C3F4D417D8069496E6486B27193E24D9C19E4EE7E3BB19618E23C3D
457B51B402D8335D55CAA0A23FA5A3F8BD09CC010AB80C942A0B6DFDA9801860250
45879A43EAAA9A954C15ABA53AC5842E7C5CDF0446319ABA75DF4502D4927A46AE7
459E432EAEE37C426676E249684B0E83676A67B60E7DCA937A099B945042E6D238F
4608EB7ACA1B5C60E846E1E335C478F9FD6F7CA30089C24E41C6E681A9BE52215AD
461C688689BEBA5829936CD769F1A20AD64034040E4CF1C9AE2ACCB6DE788AC656F
46262ABCE10939174EE543E20C0017BF71132F6FA8357390B79A7502F2D501120A0
4635799E7E7CD46583651B7C7E0BE62511CD0863654859A70F7602CB5A96ABDC86E
4641A5593A54ABF4960815F806542158BA2FA347393C4F789F36D65A08A39182081
465468D253A745618C7C457C9BB963BE91FF1F290688D550FC89B770B50B611B334
466C248B9DD5BEE3033D6E0DB2EF23480DB5CEB46B98A90E65189CDA1D26E412167
46717B6147733260C199A4F744FEA70BBAAB563706D0764DF77FAF990C344EBFFF0
468D2F883B640FA5F2CC575496E9710C22EADE117A49E01C3F3CE3A1666E32F71CA
469CF1040132C63CF192396CD762F93DD6E67C4BC61C96E0CA8F2DCFBB34053A07A
470D498C532A39778FADBF02B8771C6E1D042F32166CBAA6C6E3637864473DA9C12
47197E9CA2287D19C7485E5ABE6A6FBBF1EF40FF6A16C8864E9D6D1F60F8D33C6FD
472EBB87C61206C524B0B21101CA7D33E4AD9F46B775F5AD6AD60D43CE6E107DE89
473481FD3BB275794BE152052D5035619ACBBAEE78C7F7EF3705ED2931D37CCCA34
474F89ACF0BAC3D48621E1E39DA05F0CE9DB1422C1FCFECA345C408207B4E8F4AA9
4755A689B3D69EC4B3E3686B48EECC7C96B1BBC25A086C4CA753D29071782735FC0
4766CE0733A743141FE820A8883B531D39E85F63D8B8FB8E7145FAC63BED36E3E8D
477CDB2912D4D29ECF7D5BA81D9DD1FF5C6AC4AECBCD2DCFA00E0F2E1985DEA0E7E
478FC49869F9208DA11DA96DC7EE5A024592A9CD30C1597D12BF27EDABA77864799
4790E94F91F69466F20B4FAB104FFA9D1069216A4B5FC615402243DF230631B4C29
480E6C14D32F00A004A11D9D515DE9B1FE75BF36CA792F5B2E305C955A326D72F30
48187D815C2D598AF77148BA860C7B2BA4F56494C0E0690674DD7CB0AA2124AAA9C
482FEBE0D4937232389261A1CA06F4D390958409425BB60BD71BCD972C267FE3CF5
48360E20A669D131DBFAD92337001A64B99705064899125732124F635D33BFA4790
484B24F2E53C4C162691C9E5E0E0BA8555C04511D02422C28E3EB03408A9460EF6C
485A69C29EAE81D166183D52C86B05AF6091D566680ADB1EC4431F5271F9259BE34
486D7A04B94BAE3DAF5B3C8A2474642B0F39D82494A1CE4025C301ED72E6D956AD3
48739478212E0C65E72703FEDE17E1558C14A4E5D7F
4880000000000000000000000000000000000000000000000000000000000000000
4890000000000000000000000000000000000000000000000000000000000000000
4900000000000000000000000000000000000000000000000000000000000000000
4910000000000000000000000000000000000000000000000000000000000000000
4920000000000000000000000000000000000000000000000000000000000000000
4930000000000000000000000000000000000000000000000000000000000000000
4940000000000000000000000000000000000000000000000000000000000000000
4950000000000000000000000000000000000000000000000000000000000000000
496cleartomark
497%%EndFont
498%%BeginFont: CMTT10
499%!PS-AdobeFont-1.1: CMTT10 1.00B
500%%CreationDate: 1992 Apr 26 10:42:42
501% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
50211 dict begin
503/FontInfo 7 dict dup begin
504/version (1.00B) readonly def
505/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
506/FullName (CMTT10) readonly def
507/FamilyName (Computer Modern) readonly def
508/Weight (Medium) readonly def
509/ItalicAngle 0 def
510/isFixedPitch true def
511end readonly def
512/FontName /CMTT10 def
513/PaintType 0 def
514/FontType 1 def
515/FontMatrix [0.001 0 0 0.001 0 0] readonly def
516/Encoding 256 array
5170 1 255 {1 index exch /.notdef put} for
518dup 0 /.notdef put
519readonly def
520/FontBBox{-4 -235 731 800}readonly def
521/UniqueID 5000832 def
522currentdict end
523currentfile eexec
524D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
525016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
5269098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
527D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
528469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
5292BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
53038DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
531D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
532EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
533A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
534F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
5354DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
5366A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
537A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
538E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
5391E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
540452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
5418670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
5425D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
543DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
544BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
545741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
546E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
547E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
548D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
549C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DC
550FF798F2ABFC4F3539392985C4CB324B00072295FC160818BB0355FDC4F12E39B
551984826450553E3D271F03D8DC2D12A92A4D32034FD16DA13B876D88C8C097384
55246D8D7E41CA1A8979F9B07EC3337E70CBBE3A377235B04C79BBBDB66CE1C1A41
55389DAB7CE91F2FC0CAF6DDAD09992D56F72299068192610EE3DE5DB7CF6366B4C
554D74F414484DCCDBA449BFAADA39D0F27574E604E31CB513B18E3821A33076151
555C2BCB6E957C77A0AECA48C587ABB5E8C7624D2CD1BC0281FE40CC2D3DD1B36FC
556CC468011824DDFAA0539291B9B8004F29F21B2A9D8EA7F0DAD273A107D6C3BBE
557E1AFD4D3183277F3795EBD73A754DB85A850C84BCD4D56CCBA606133FA94413F
55830F72533997921A1B617D131E189EB56E2B0B5ECACC0BBF248E4F1AD9C63D975
5593C6CD4B95BB5D84CA784AF0AFBC0921DFAC0A37BDFF530845861D5E5C2EC7E59
560783CA09B409C27E90A92E296A0AEC7805AE45F92E51D71617B2F2C6D684A6900
56151A2662DBE1919D78DB54DBE80618AC6D712F2C4EACCC55BE61C3FC35C905873
5626A0051E32A366F8414A3EC5210029A409A683647271CEAFB8023DE1604FD41C7
56354EA8686B04DA8B5AA708541A8F4D9C9110F675D92D0F77803C44ECC0BC1F9C1
564415D460E3EF345D6D1EDF0BF6E53EB16E7D275AA6028FD01CD6DC2E381A748FB
565E4CC45BEF45F65C9FD360DF8A754042B6C1658E5DAB2D853767FE8A1AFE4954C
566CB111CF2CDA638544E39CBCF46327DDEFC29C3B00BAE13256C8B4C0716E17F68
56731F6B8CF83D7102EE1EF1ADE1A68A18871E174D035568896393845A4F6DD4D76
568C40C16919C6B21646102D7B02BB1D6D89F6C76F8E106B67C95AD201800501969
569052F03A7F6962161AC0BB84C8C18D18B48EF63F4CC9120C5D60F9D4C78148EDC
570147599B3E6B4CB920DEA51B093EB5BC3C5238FB0758C8A884609AFA45F3B88DD
5714287EC21452229867BE5F186FF648CD35B7BEEBC18927C96634D1D4D52D5C97C
572CEF30B31C9BD5155E41D2F8B84D9331E935FFADE2F46C47EFF8489829497C4EF
573E959D751EAED71D83D1D27243FC905BD7A07C90226FD0F6A2CDF1D561810363A
574A5EF7F475F8EC6EF46C2FA29D15A19DC582861B36487DFC0A21BA79BB0176DEE
575A5B1EA14C4E9E23A9863D59BA13B836A9424B65CAF0A54E34B2FF6BFDD82508F
5765A1955B78C061FFD9E5511F89CC9AF1A497A84F40B4B89239995AC454ACF3878
57793BF211090084581289A7FCEF2B9440F20142D4778F9CB2F1CC13CBF30EAFB7D
5780364AFD7C9AA9014458BAE9083606FEEF7F95D2364EE079A71D627132407EF1B
5796C94C7F50C129ECE8313797BB7B5767A1E489E20256201435C1448CE85E8E74D
5803A80385ED509CD352301642DE14ED7990BEFB43543A6684D41D07CD1F42793DA
581A7FB1680FDB75548967179920D06AFB4B65AA815B9687B7228F9D3FC3AD5FF00
5825CF5D412ABEDFB3F9C91CB6AEF1EBDF7E280653CB94691498C420C2A5F34B64E
583C387139A74541348237FB451E4AADA1264987AF1E028667AC704A6EDFD4135D3
5845D73D94BA6924B87E678D25B145E22EA0679D78A1D60E4BFF8ACAD682B0BEFA7
58568FF32F66742B1698636C9AF7C4C976C219C7A6FAAF446384CC0CB778EFC62E3
586AA71D47D6D7714891B32DC90B2A25CBAD62B1FB5C8C4C884AE24105236973805
587D6AB2FDED52BE07B94147B475C19FA431FDAFDB21D1871C442D923C00EEEF810
588E7F383582ADA59DABCB89608912D60B54620685C40F7560387D28ED57F8DF242
5891400D57D88679046FBB938333A1F287634F4E4202E97D4FC170ABE0FA213C57E
5909574EEF776A5A162BCAC6BF883062E41ED78E6CFDFA8E44DA924F8A508699402
5912606E750EB67F06A2668E166333536A8AAC69559E8ECCF943BCEC4B96C4D5DFB
592E9C864D1DAE1FB4D42CD06679814BD360F57EDD6344D66DFDDE296A4B5496B6B
5939E2AA0836B7718795441B78A4F7934A95C18C0A6DB63798C522C7E722A64588A
594BDC5D5E7FD1F4A41BB115AC3835A4763AA227399B10191308820258309402106
59574EA13BCB4C323FCBB0ECDCE66BB263AF69F8AE9C3B06F47EEDF8A28F126778A
5961EC3129EFB90422EB66842378100C82FE24462D1462041A27FD2B72A311193C8
5975BD9F0DFB653155CE4D07002CAE4F4F6AF14077345F3680179489DE63D6F84FD
598B7F4C1BDFE9EA6810C16C70633D682C8D6122EFFE134BEB7AC3F606AB30602A8
599B8E70FA90549D8F593AE2C8C99CE75FAE5A05B537AB0A4CC4A09B96AF2CF57DA
600DDBA1F6E727A34EA84E75D9B10ED1D671AC2BA926DE3D64D61B6E75E1041371B
60171223DFC6E865B17E206941C2768BC24DF5DC38E878E0135C5159E3C26447CDE
602F0427DBFFDF8F8D66E6ED6841EBE6D22180C67E7DABF3DAB4308C843ABAEFE3C
603AE278ED69ECE009E74DFCB919D554E7BA992BD178E9078360EDE63E00B1C37F3
6046292456BEE6B4DB0B1FA2B1E48583607E356DB76B28FB514F8B47B367B09BE82
605B0D4D33BC0DD36420628FC6720EF7DC4E7AE53A40FFE5FEAC32BF2DA5FA30A95
606D04E1E4E1A53280547C0A4826AE1CB54194D9BF085025354019660FCD0654161
607D5E9EC3C1C6D4D7E8F448258110D972F42495ABF14286920C5DB4D51EF72E716
6086CAC3B6CED514F4171F6ABE25DFD70D625FD7443F6BF3815AAD134A419A5DDE4
609A82438C14B2F612BD6BA3AE5E261541169BBB4FFA42E7BA6F78F5BEFF59F69AD
6102E0AF0006873602C76BE3A16074154C83FB59DB3E7F47E9063671A6951DFD58F
611600264F9E19504010EAB739679D7643F326A2BBE58CE0DF7FC09507150F39587
612C4F95BD0E6C24857DD493B1164802D9B5A30E78605C7F2486438037564A83B91
613818F54C394E1BB0AC245C33274AF1FB64EF4BDFAD9EC0CD81459C9E6A3033D09
61442B8E3006DE75CD181751AEA580CC86EAC5F781A7FBF5D2A22AEED90FFDF68B9
615943357BD460968A09518E14214371C6315D5924846133407C8BF7F1F350ABA28
616709ABF7159CAA38385ABDDBE8DA79E0617D0C6B36248742AE870D306815EC556
61754C0E8861C86ADE6F8FC4F5022D2A3BB74FB8295A91B97395ED9E935DD5A2FED
6183AEA824A9F71AE4F80262403681D684A3B8CC5E0A9DB5F2BFFE674E428DE8B86
619C66A5B560DECFA278314A0E45B30ABCEBF73CD22FFA09746812336D896089E37
620784B9FD479D991F4D5F79F2697FAAF64A5DE8C78B46840AB30E250ADBD668001
62190EDB63C02793E1773B936F1CF46051EA91D6A3DCDD8B9FF4B34F6CFDAE8994D
622FAC9E466CD0F8C4FB0A68F1CA27D8E93103628FC7D3CD89D05A45CCB02DA1647
623672BD7E72A047E311ED21F139DCC30AB84B56784988B70922C5B68C9AF7CD60F
624FBF5D505B6278C9DD9FBCFE0925B49109C0664EE9FCC8BA1CAED3820926C4439
6251C0222BE407281F0E9BCDA593F1663D3E7E5718C093C5B1B13254584CEE76CC6
626F17C2ED9AC967A20B0A4B08A62A855926E7A98CBAF72EE008F4074B9C0AA4438
627FEC3EDF034ED3B653305F6807034611076384B07551C01397C3DB1FAD33DDE0F
62844578A0875D119073FF28F02B951DAFDE77C12647389CFFEF02DA2606BBF9BF1
6293BF7AD9309008FB57855DD326E58D005E43606DD167D0C7543CBF07B5D102DBC
630ABDA099A8F40A70ED96BE14A801E9F1F1DB22EF9A92EA9AC123CEFC62EDB3925
631E802361078D4C5E504993E989238A3FE61187E1BDC9D853951E0416487F8AA4A
6327F8D35C13133405F9A59967BCA2C94D74AC7258E02671BECB90FE8D806AA0D7A
6339154CFBD5FB3048EAE9A0A94E8FA3E5612F345F5CEC706E130C571D6A65E3F96
634CF14FFE273E51470CDD09BBAE1193D34C530463D5E9FD4B455ABE4A6571AA43B
635B72190D0B7B1405FFAF8764096B49E74E8CAAEE5256D2EF7A780619A2E230C94
636E64401CF43C1EEA28F598589106715D51A79A29F5A1FAC0B2375AC06F1D61998
637655F6685FC5DFA75214D0AFCB79234DF738313DF38601689BEDDA39876E1C656
6380017A1DC93EC04042189CEE82C0495135ACBF316D9ED6DD3D48DFCB7916C1E8F
63958649BC3B103A2D59F022FD9C38F1E96C70454600B553FACDB32766D58AC05B3
6406524314751F68139A7B3B764784779EAA0F97792506026B513A0109E74995913
64194D6990407F5EC2E40430E129E2412D8565D5500E87FEB738CB2FF6F1EFECF03
6423031E87CA961173BCC8A828243F52D2406146B36860AC44C4E512D9341458767
6431076BC4E71E18BF963E0F7BBFF0308B25C8AED4BAD4912D0F898B37DD4309215
6448B8C903841A992A6BB22FEDA14000E2AA1741777D507029F646B59B5A9F7BAAB
6456C0D69EF47FE706F8C21E3ACC3724D389FB40E6ABA034B8BA3F8CA993C657CEE
646AE6D39905AB8C931ABB7DAD718566DB49DAE4898298CA442B535DA7C60F2FF9F
6473A9B51FB853DAD23F6DFD719C615A04B45AF0F4360537A10D8FEC1CDED8B8348
64832FEA1A5611AA77F173A093D8E4252B96BDEA4B70D3A0BD12CF8F39B3203F825
6498305FE5563D2738B32418945F07A4E8DFE6C0418682BC1CC700FD06FE85B429A
6508D9B1F4A0137B4D28F79B751B771CE698F8E811BEEAE550B9725CDC384CF9AB1
6518F50F68CD2D78437AA1FCB49BAF81C762638F29E32F32CBB202AAD8EDDAE5D81
652072A22A934A9EA9E84346148FEA463DD1A0E7FCC5C2D5B07805AA562593C8AEE
6533957C9AE07BA9D48AD03913B2AC30D4F9F989927656C29C9F3D25645FF864F09
6546C4A8548AF87E38AD853FEBD98CB273E91C12C4307E06559C95BE1039BFCB427
6552F2C46D1765FF834048FB79894F944598F15CA607188C73004D58CA6341C9458
65637528C6EA4F8FD34C4DC344D792040FBC05236E4CDCDCFAB7C1AEA5C779B7E57
657377290A267387BDFAC4EF81AB3DC616D8EDAEA86CE9A355E625207A1E759CFF0
6589F7B3072C8AC9F3A2810D6441B5DFE0B625297C89A5044775AE222E346D89E37
659F85A239B38AFE2F3AC60E8D5F9CDB4E333A746DAB7C42C775C2D9C57B06A5369
66051385EF949C654C730FAE30524E203173D1BD835F520CC610680918E5F489E92
661D455BEDF0EB0AA0EF1ED9CC29498A2568E8C4ED8EF62D24E3933D47DE5D83146
6625EF108E7F7FFE79398850F5C6D9F51534319F88A4ECA667ACFA2713A2D2F0B3B
663A0CEF2DCB20600D7867FA2F5A2D371E2717A1D2138A20992C5C0FF9B9994FEB1
664F9E0A509F257E451B3016719A8BAC369DDD816CF27776921592CA305E6D1B9B5
6657DCD05D3E04A3936411BA7B24AC5434379159D31C47C93621387421C910DA450
66635444AB1A9FFDE8D53F7F7330B4E7768BBD4997D8A587D7A40DA8D1BA80FE2AE
66723262E5741678AA68A08C732014C9E27B8A9BD5261BE4EB4CB6F8A281EB45316
668550613E9494554963014F4D39088A55FDE64DA39C7E9305D60986635688D3798
669BA1F09F8D11C3C783095AC28FBC48E36F294E69A88FE95933EF6132C2B29B7B6
670F56FEF854BCC34BFCC61F7AB3BD3EA5891A3111FF5D8E270B657FBFAD7EA7A35
671359AE6355A0AAFE5CBAC91016FDBA74DE2D7CE14C2EF7264717C2B8601298E5E
6725CA3CAF488C7A10CF53DED28A4E24E5DAEFC1FDF1677DC47E39CDD0516CBEE60
6730151CAD166DD46D814B54F360E13E0EED1F112FF813BAD4D48797DDAEBC1CE3E
674A62E922A5B0E867BCE63470804DC6FAD101086D9DAFEC9B38624B6F89F1E7288
67558623F0FFE6780C3AA9B77C27AACFF7FEA6A81B642FA8616E58A5FBC558EBDE8
6766C0C3B85CA356E4532738C17A223FC9522743AB73C27BCF4913FE037A29E5FFC
677D8B95ADA7009BA803E9A75CBC2AFD13E5B48539E1829ACBAEB0EE01B5A848511
67823B5FB2C2A5B4D65B7CC848696B004C84DA7B337FE24F034A01FD74BA9405583
6796573B7BC7B7C8DBB672C2D882196B7DC0B7F39F2E9468C6F7D304EEEBF4013B6
680F084583441551675D45635524963BC5379B4062CF8DAD52F7C7FA2469814707A
681181F1B8391F185E6FFF39CF6369AD3A31F6C3EFC6B4890E297860FB66B87E87D
6826C30117A95A94B42393787C21ECD184079412A169129FBDC7109E9962D784334
683C40D4C3E62B0528B1D00F66D1BA66A4DAE16B3563FFA550710B0634879483CD9
684A58187BCE5C421DF79E3814B155FB6E5C6AB941C60B2C8013826562468A4828F
6858CA3EBDC1586CDD95948F06EB613A1DD836CB3F09EC436EEEFE2CD8548477609
686D05EEDBE7D5413C77D3FE3CA694DC36B4C6D6EE8A33462A77806EAD42C4925A1
687F649AC9BA43C31B9A8EABC416C01FE137E2460787272738E4209D4880DD4AC2C
6885C9354767E05853FA5A7F50FBA8D660F804C6D60921BD8AB111A34A31080FB81
689685FB5CEB32A75CC83DAB1688E4EDD8F6B789B4298C8BCA56CB0B4A5EF948917
6901B7F36CA4184B0F53CA1F77B75CA53FFAA104FBDCFA1808FE88FE01261B46C1E
691D5A9A067A9E52D769A18702B3AF2E71D3B3133C717511F22E3AC4E7E4D0B46C8
692209B54ABDBBD703A5A469AFD7A8D8C600D76D2E83EF9685EA160402DC446ED03
6931BFAE5AEF59CA20F4FC0B27CEA66B5F1CC7C81AAAC0803704319EB19A485AF7B
694E96188E4A685A187350B9CE9DDD605A609C80FD47A90E533BAE737B79CB869FC
69519F5E86C45809FDE676823A7D69F9E72595C13F55F74E41694B9D475D12B1841
6967EC0CED004CFCD93A67D810A9AAA16AD3E3EC0CDCF417EFC65F6469BDC1F4540
697D5631042BF3B1E7C4E3C5DCA4FDD7EE2F94648DBE34E097D17279D2C826A464B
698E9120F1B741037830184AD865E115BCDFECEAD9719C457E409CA33A05644F51C
699CA0C11B1D742EC2637A448F699BF422E4AB2DA85508794D593AE0723F4EA793D
7009B6EE853B80574BD58BC74F0425CF0FC838AC5CB9E0591EC46289C6F12C8981E
70142404D261EFF49A2BD6F7B211A860F7B4140954FB6B71FE6EDFC26C11A83FDE2
70288774752F90DA78089F9CA5B7673FD746B3FBA59AF3F889DF55AB29BA0F5611C
70302227BC353F133873526D042958F7791AA9A0A43B73BDD634CF9F6BBFBE48A28
7043E1B9CC70328A90FE5FD8775967B06EF87EE644E6D85CD6FDD32189B3EB153AB
705B9A4B232AD73A2DB6C8755D57CB7F52B9C9BEB52855D7F6BF7632A60F57EF488
706CAB4910446C4622A4929ED5FB4EBBD55540A1C79B3C9666A497B2C3F8DC2468B
707AB4B8E8369C854191E3F34CD5C05EFCEB6404A25EEA6C1A0A20C70F6F2038EFA
70811C9C9CA768F1A1AC58F9D33193287AEF07A0852EF0060CCF41264EAE70724EF
7094E1E400BC968966B76C0C21061D1C0D72C16134DC3FF3C7072B327474880D5B7
710E910661CA84FA3A9EA9D89204F22056DF5E52105FB6026211C3BD610EAF2446D
7113566122E01AEB84B031C6B2A361B91EA8482A9358AA181E3556C0A7BC17E7A4C
7128CF011984D3D340E9567C72360439EAA1AB8D6C8F953FF19F46C91AE249C6B33
713F60F84C644FCFF1C27220C1874041269F5728E97B50B1908AFE6684E7C828C5A
714E1F454B97EE66A45FCCB5D10B4B04D315748455FF03CD703E565EFE35E0E3398
71584582E5D9BC597B3AE4AD84AAF4C0D58EB6B2338422DE8C01CB0B3E003B10801
716B07D9E7962925B0E8E6ADE325484027FD3969778FAD22A5A21C612521A60042F
717711067CCC11EA4CD62A76D8F19D84D22EEC18494BCED7DDB61A8FCEA90DF1B63
718EA2D1C9023D035DE85B31132D554C8D67D4C0B77201DBFACBC7CC703A8198B1E
719BFA9E7088752186C1E9038363B865494CD414041EBAB92C096CB79CA1FF1E0B9
7207C7CEFD8DB3914F167237767FE78BD6D82E4144401502E0D20D57A42E1091EDD
721405B371ADA4E39D6482B9840E9830A7A119EA1AA04BE92DFF419BB3E1000DF72
722DB003F16F94BAFA9E958F2D4AA34E4F38B3C53BF9E06328904D52F244BBD6657
72386933906639D70A41A294C57A949AB30B82A5AA3318E09E38779DB1188C8BC1B
724C50A11105ECFBD6F5AEE90BB8016B08925787777ABEA1DB0DCBCED668566A185
725D616E642E943F421B1DF99D92BEBCB2E77E4692717865089BE6E1D0E2E87E3D8
72637DB430E959A3473745AB454DAD07D26E097586FEA459B42A8C0D10C58953D2D
727AB3B105DC697210FC91E47AFFFF4A13870BCBFB12C777B7986334A0FB5B6AD39
728DB436F1CC1E3B4F8DCDC633FFEBE71BBC4DB6BB332909E616385DDD5C291EBD2
72975EE78458F1005D978A1B18C6364A123C4A72D6C221E099CB410D0CB8B03CE32
730969484824165923BB71A9B0FD2B6AF0C7F7E8D8831B71774E85076672480C1DD
731B59B2E69C81FD6A492383AD89B359507A50ED872038B436DA60CFF3F9DD32A07
73275A943F87021BEA8A6E86A9E22274A206AFC9E8D352ECC4E98CF4450D373A764
733D3EBAD35305FF27389314DA6AC120A5C6C0F2CA7F1239612661FE7C21CE1C30B
7345884E07112BD2066BD4E2881B4E09185D10BC7F3E59B87EB121B601D68DA0D13
735FE16D741E4D43EB0C166A7659C90D44B09256FBDF4332DD5A499BB812821A0F7
736BD2F120BA3EEF8AA2D0E2A4977478906B8397CE3745FC50D16DB4789E5AC2108
737185D6EFBDA20A29C89262117F6452E1583D6C390266602855C54311F7CDE0B0B
738D70AD3C6878A7EFCC4A9B7008E046B371AB968C1A9A8E157B4DB5E90A5193C24
7392FB72032D5C5610EB41691045E3243CE1D69E06A1BABCDC738933856CC695957
7405A2321C520D9B6A6E98E1D2880CD94454C7890DF8453F0C30CEF24BB3F7518E6
741A8D10285D7245C00DA78ED1087F016282182B6EB209FE0844A3D9789B7F56CF0
74264000B5CD70382BD1D8744A48C401F00944FDD88F039689FB98E22717488C0C6
7432565012095C3FAE7D40F7631127BAFAEF598C5C100A79EC4274A69E6F6980D09
744F5F8DCB54506A4466BD7CCDB0AA0B717CF6AECEECAA42F83C61039035081D3AB
74501327B3DE37428357EDD6F1C948C00CBE5F269B9BF1895CCC250F5D787FBBE33
74614E2507BEA4689F3051538E03B1DCF571688EE6E91A978A0FD5C6107B8D25AF5
747854E5878219DE068953244E2D5FA862F36E25E75521A7B8C80D2A69EEEDEE570
748BD333F958F051E403726FF824098B4ABB0130015AC8CE831531D123F7295FE4B
74929247BAF2EE65FD15C6642B5ABCFA07F40CDE915CFF4034FA2C1DDC0CA2A38E8
7502C19B9A94F88799EF8790356BC3EAC45034E8E46BEBCA4627080E5364AD5439D
7510A682EE119733D603AB23060DE6751AB361BC0A2BAF7D91A40B7A3F5E285BF3E
7520E74154E12927D51FE744209AE1438CFB0B4539969AB739CFA690C7401ED700B
75317F67A040746FAE467669EF0AC838D3099B210704D4F77702D5849F423CB72E5
754FF3B006C270F0568F3AF253611FC2DAC3516F5A2006CA0BCE3A2C176C94AE98F
7557CEDF634004A0A5B9919024E653BE048B489252F0C8082DE0F6647AA578ABABA
756132907EC80F5441E472B1F64654C5EFC612A2C412D60731EA566FB7022F1F9A0
75715E533397E6734110028C742A4D44306D72D104DE7D7BC5DDBD5CC8FA3B8623B
7582E9B3C5319E1385EDBD4A80A00FF078FD2C96F9730A24DAA68A3B2F44C9E1310
75986C7B9F89E0EE15E86E34E5DEF913F24793BD5DD0784DF445EFCD6121443EC13
760C9DDFE23859BAAC6F0BA893C4CA0FF8C810C54737DCD99833F6A33CA6AC9A5C0
7611E5C2A7AEF67DF520C1AAF72EBE79DB55130D323720A16E2D34ED9F01C5DA456
7626BC83AFD988B295B634A53CE096F10FCF435CC704DAD0C3662EEF86A8E3AA1DC
763B46309BBC1715019414D0D9B474BA43A61DB8A0E4D89D77EC9E3581B53CAEC3E
764B875E46D97E9D4019B04F7C8126B11323E144957ECD756D07495D740625D1A31
7658A4EAE56
7660000000000000000000000000000000000000000000000000000000000000000
7670000000000000000000000000000000000000000000000000000000000000000
7680000000000000000000000000000000000000000000000000000000000000000
7690000000000000000000000000000000000000000000000000000000000000000
7700000000000000000000000000000000000000000000000000000000000000000
7710000000000000000000000000000000000000000000000000000000000000000
7720000000000000000000000000000000000000000000000000000000000000000
7730000000000000000000000000000000000000000000000000000000000000000
774cleartomark
775%%EndFont
776%%BeginFont: CMBX12
777%!PS-AdobeFont-1.1: CMBX12 1.0
778%%CreationDate: 1991 Aug 20 16:34:54
779% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
78011 dict begin
781/FontInfo 7 dict dup begin
782/version (1.0) readonly def
783/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
784/FullName (CMBX12) readonly def
785/FamilyName (Computer Modern) readonly def
786/Weight (Bold) readonly def
787/ItalicAngle 0 def
788/isFixedPitch false def
789end readonly def
790/FontName /CMBX12 def
791/PaintType 0 def
792/FontType 1 def
793/FontMatrix [0.001 0 0 0.001 0 0] readonly def
794/Encoding 256 array
7950 1 255 {1 index exch /.notdef put} for
796dup 0 /.notdef put
797readonly def
798/FontBBox{-53 -251 1139 750}readonly def
799/UniqueID 5000769 def
800currentdict end
801currentfile eexec
802D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
803016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
8049098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
805D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
806469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
8072BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
808B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
809AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
8107FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
81120980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
812B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
81368A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
814D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
81526296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
816F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
81777C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
818BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
819C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
82030855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
821148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
822E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645
8231297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38
824583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61
8250B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D
826B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2918CC2D
8273FB13482E110131076D0210F1B4C88AA03883AA23F58CBE5F0CF45E33B3BF237
828CE700970BF59D2CE52AD166E395977CF7FC85E7ACAFB78646FB6ED0BD8B0512C
829ACED9D44395F85A1FE0A154912CECC634CDB271B276398701EF82299EAEC90EB
830800911694463D1B43A3C608DC3C853AB545ED3C01FE89685E3801586852B073C
831B0790CFE5CFEB3DCDC935303076F7C454DBB51A573562F78391128CF026D0ABD
832E1B86A9B0D76EB22E5FBE2254CB8AE9EF0E5EC591E561676BBF202A5D43B48A6
8332617073BA593A39C41A6E81FC4875DFF6E7EA612DC525A0B0488A2982FD24E91
834ED403F6E764EA10299854C7D665D2472C1211C90EF4363213A6CAC31677AAE12
835E1F27A8E43F90F7958D5D609919A0226F2ABC671D28B318430BC70C6A9D60FD1
836DFFAB7E4412C9791D21880A0A10D66E8831347555A9202EC4458706887509B59
83748BD5D7004E7FD9E727EF7EE68A899F1A4D9E9C386DE67C23EC198A13108DE2B
83841ADE63F5E16B7AD19804EDC22ABF9FBF2FF45DE069FD35E1A8B3E268944AC06
8397653B79CB847687E96DC3CCEDD1BC3CFBA82B03F4BDFEE8FFCF64E9B315666C6
8408AE4941FC1AF7926D9E286D63B72243D65938487DCAA87088A170CA7DB15163F
8416753EA15C1377464061C3C368A35F64D6F411E254CD2334F9081F0D30225790E
842AE00DD88A1B03DB373DA7CD314017B36354CFC9C3D94310A90F9B0BA7F9472AB
843CA9FAF4354A7EC9DD96D6C65E0F1F1487FAD756AADF21D414A0DE14824FADC9A
844F611B5489E164D0DDD65F9D117267641ECBF49307D2AC5932361740FF04E9388
8450D37060FAD75C39E410031CA188F9307079AB290611D7627E44068092066683E
846399F7351C838546F3DF1622E58A008CE666FB868865FB8C81627D403443250F6
847E488AF2D44ACC91BDF5F18A9CE97D895C1C878BEBA5B5E0B5CCFB53BE427D55E
848FA97B30A7599B8DC19D65AE5ABB67168D5AA6058BB4DFED40A6BD7C2DBA52EE7
8493094B8F9786B8DF81EB39201B747787B228A283C7186DAE96727AB62CE30B858
850D2A45BFAFA4D6C8AF643CABFF5D309D5B28656406286DEE44377AC3F4B8E90FA
8514D606D87A6252CAD8A6D70FF1079A6774B45C2F3D203D17ABDAF8D81ED6C4A56
852393AED6898E03541DCDB34C32A522FAA0ED41F57E00A48197CFC9E6B5C0E38FB
8534B259FC29B7390A039C3899CEA40D1E45F995F4174A789AB548355CE36581200
854299482F4518786CFA3F101A8063C728AEBA948B5BD4796E8C3B6B6B648B81451
85537CAC0C6F50D57AAC161F34D4EA3EE48EA0081DAB3069486F5845ECA5BC26929
85670AEC9B49883298246395F3E6F847B11D9E662A257C37B58676990D7D7511D44
8577AC8B3AFF3AFE5CCCF5F15C7BE40728D7C3FE0F875EABE5DD48D8679C7D17566
858869D8A54C2E95578FF33235D0FB017394DBAB31E9D0BF3F87A625DD5830304EC
859624B8BD5456047A1E1F00AC7BF6268B672E3D71B76E9D9E09C7E3BEF48876F64
86053B0EACAAB7ED476B7C77358CC5B3DB3D00DB5C9A97C4F026346B80CFEF1889E
86129B236693B8E7DACD38004EC3778A0976FE834E455B1AF5DC31CC195884A22F6
86287B0661B430613CA0CE9BF557044C0CEC9ABFDB39F4D1BCAF59EBD7E224B83B3
863103AEF2B08E2530AF72F6E9B80B10BC42B92576F7DF40FF25830F6C73D8F6940
864B900543614C663FE48FF7CEF127CD082D6DCB01D5985CD4477BEA86C985D76BD
8653E2B395048C75B02C8C477B3DF5B5D32672118EDC9954436F29E3A857C22BEBD
86651C472408A7202A13CA75921565156C1BD335F12A61F7A71BE6C5A56CAB7662C
867C6D75048E005B4E64DEC69943DAFA00E51BFC1902CC445EA4971C1893357B629
86834507CE8734699BEFECA56B356059E023C2BC21AE67D2E40068ADE6AFE469F9D
869B4C1D8B57E978AD987533464543EB4957D536E5B85E13EDF320344A238EAD750
8708F46BAC09206F3E97DA819308EC9D4125181C6839F1F5E81EEA6DF544AA9E4C6
8713BDCCEA9DE44035C64161CB512827DACE0B0DECE6BA5779BC87194C030BA44E4
87247FA8A6972A57A2FE914B3B72D96CAE6DDF77278F2DBEFA2685FC0FB49645974
873C1A2DA14F70869125CDFD616D830AFB1001C7C6DBC2924AB938CBA08FF9016CE
8742EA958F26333A0AA271AE190462CBCC843143150CCFF8B6D0E78AF8753D70DAD
8751F2C4205C03059B19D454D37B939492B4AE852277C37FF8AAE0D9B1034C89B03
8764A1C872DDD5F9D919E837225D38F14E1B6077285D39CB3D251FB12579864EE7F
877C768DEF74E65E3BAAAD43CD472B53610BED1E2098DBFB5192B7D1E527C83AA05
878989B2082D2536A99D2B311D27042E9856AF75D8EEFD88E8AE9D4E3FBE028F59D
87983CBC7FD58B2F11E9C745AE012F95A18AB183A11361328DBC9335D2CB77A0D61
880708F307084CC5B5FDBD78ABE32839978CFDDD0AD4C4AE0EDC8471A459C94E485
881A872BE035F9C38AD602E1D5606F1895F3A16C5B20409F89A89F23AD29A792253
882F372B1C59488BAECD543A4585E96A12760F146460C54ED63436DFABEDF0729FE
8839246446E7C2EC90A261A0D00AB88369F294BCB3674E5B0C9F9777FCBF3E7FF1F
884A29372A733FE21CD72DB3D7013CCE92FEDF34C045048F8518B91506863FF4130
88552294594566B0299F379BB2D9F0739537908CE76B56A544CA7FA33298688F254
886F7F3712A74DF15232BC6CA7A4BB766E0BA92BE0B085D27D42257978F8B615396
887ACD7F7580E385BECC0BF02741E0F8E15480D9A7850DE0F3EE2B4F984BA6D42AA
8884A74BE3FCA8B0C336B466533B47CD4102456EC94C627458BFB400087DA9A6C0B
8890D0CE5A37C10E20645D47628F4379DCD14F2E27BD7EA974E77423A6C403429C8
890BD65A5E7AF21A120E2B59E57C37B5DA6DA09A8016428EF70322B471A953C986C
891ADF29BE4C4590EC2F68688C299D0375CCD064F5333C3F34E3B283707EEB8C69A
892D35024EAFED1B217C7510642E27674A624D6A27F7FA13B314253D9828D6BE971
89370F31EA9842323D3EC932085E4A14342837E1482DC04CAEDFA53DA8FB3511604
894EE29BF3411C2978A554D8E76D4E6466482CB1DFB5540C8938F5E35401DE0552A
895764BC9F9A67FA77AA2E43C6F6314A3F9E25103F9C25940E2ACB584FBF9515D8F
896BC07116EAA8FCF4DD8861962D20F3BEEDAFD2AA6923DC07126F12E8574CF1222
897982AC1743DB5F79170FB01AFD98E0161FDC62363D4BACA0E8F7755E295E3C633
898D09461D5C8E114F74EFC99555E3443CFB4C40886C0415C01BC3F99F384FE301F
8999FE18D3E160DDC49E6BC8AE3F493D1465F8A4C55131FB8AC3460F484F8CB222F
900603F7DF1D6475DCD4A0F53FCB0470A514A897D15A2098B1AE9BBE7996A8A9C53
901E7B287223D497504389EFEB269C7D5B616734A1C395D232D2A2621513239EC8B
902490D9D3C444A478B79748AC5FB35F6FEEBEB4DF63B91027F4503D7D923854644
903AB14594731520A57AEA84E3B0FAE698AD679AB1124DEA69BB14245E2EE31B56C
904717F53A22D2EA42DE2B81968159F6D2BAE4EF43419CAE8A179676C3F2F723161
9057A0BAEAE4F99C724FDC17DDFB9B0AF04D3FACA2608FBED38844B2917D5E918C1
906F3FFA5D7372C375CE7412E5E1752196A68FD3C7B0D96C5578D7F58A3EA3E694C
9078F8DE45DC258216B0D65C81DF7C84427FCC0129C4769B6F5F617335417970948
908499E7275A240F2219193C530104986471D739BE052A2F202BE04F3C17964FD30
909D462FF57454631C90D61CB935DF4FF68DA1337C3B011A4FFCFA6117D44C991A8
9106A096CC5D2B5E81C58BB22803CD2EE19C972BC071E0D9C84C33CD57D4179C709
911368787DB83C54268E1DB8E5D6F84B09B9C6379D367574A32B9A7BD7EA758BBCA
912350EC9EF33F01F85D54C5DADD6044BC38B5AAB78E2A54610B1A43C5908D0792F
91363DCD332AFBCB6590F5F605CCE0566E285DDD523A4563AC0D70DFD780F7B7EF0
9142650C0D10391B2E0DECA934E2FEA98EFC8C5E4779907AB60BA3786713FD1A4A3
915BAE044A904C32D421DFE81062E1051FEDC2A655D8A37F1B4CB41E13F00C1835E
916DF61D597EEE3B43FEB1E2672D06087E73926D456D2285AF78AFBB2AB8940EA33
9174B2D4D5F6DAB081F9893C5EB9913F2DE18060776C96C90C3470B0F91BA918952
9184715167D4450C724D8F48B496843084E38B8F7D0EDD5C2D3B343FEDF35DB673C
919E23733C7A6477A0FAAB4D76A39B5A57B025042FA97AE262FDC541DB746DDDFD8
92004BD6CA5B2D025325A45167BBF44C8003579D14F069F46A2A121277A6D12DAD3
921B16DAAF0A31EAF6927D2F3C5B7A1A38C9883B7A8843864B17CFBA5D95FCB4483
922B88AF6D2BD0A896A3806BF386BC6D74D1C634DDA49A90B5A9D4B08297CD71DF0
9238049A746951798267520559CEA50A0379E43BFF00C8CD95CD829FFB2C3404B0A
92403DDE09AA03D1E0F903C4905C149AB2A3BF9287A52BB1D8601CAF50AC849F414
92541118B582E69654587453B6508503BC3494D165CDB249F79BE23CAECB5524E37
926626C08F0DF666743990A847068B89CA282A7A67505A58EB3DE6C56711C1C381F
9274C73849407656B0361B17817B4834F981824F248D452B1CDEA41A364D7AA15B6
928DDE3DB44B5AF2B147F8177CE151B6FA8091EDA8E0B7341A9A8D9DEB6ED987AD0
929202EC811A96F2D75AC1C1A1410D1B5C310F2D3DB59342D3601F6510E777B6E37
930B3E71BE1557C4909CCD61851DD43C6D2BC2E291D1D36CAA2EDF379458F704792
93154D34B915D91E2A708BAD4F40DA7B927E3D3B5C6B601120636F20655999478BC
932CE60CD2D0244DC5BD1EC7B2A5E0D4BCFDDB675549FB19C371E508BFDD69C95D7
9337E7F70844C8B6B4A8D41FE751C845C918655BD999FB91010C78879D73CE5152E
934B06220AF3B580A4CD45CF7D003FA8AB9559EC7161C2069BE3C864EECC8B3B203
935BD753A44D36D32061646C56003AC1112A6E2818713533D087ADEA73D209D60C7
9361EF96BC3C792E1E0CEAA218675AF753C1F7160B865D9AE82FF347746AB26979E
9379ED0B939DBEE1EEBCAC572BB1C38C036F1C6D12716F7850EE5C84DAA22C7B253
93895821E43B6D716509101B3783903E34E4B8F4E6189DA059623A6724204172300
93923EEFAA40001402AABADC04F66E9E3E3742E27B5E0F126291206C3A0FF2DED64
940740B8ECFA091092FCA932DFD16C5971C918299A69D41EA83E81FF3FC22BB89FE
941B4B822B7AD8C027DD2EFE2860712FB609FDA395F9CC2557117FC84893419272C
942E73C0142B6A59A113FA64BFB019AB72F4A669594368B0D711AE13C1532E70FC4
943A3AD9557B4FA4BE1113B18A050BC8A71C7CEEF1B28445319CB3D1376BA73519C
944D37569A34598744F091301B88966A9624B8EF94C216974D200DDB55842D42560
945CEFDE1D36D417E728CBE39734707F99FBE7D76B0C08074F70DFCD3E44B204C3E
946316CBBDE3356BB28EBC008264FB11B74EFBCF44B76587871CDFB0CD6B718A4A7
947DD64ACC93E39BC58C53587F33DACE1599DEDBC60668F20B07CF327247134AAA8
94829F6A490BC8FA5C682373ABE108B68D54D6312388E0B04A0F518AEF0C53C5517
949FBDEB91F36CA1C000E55247CDC3B72EEC9CBD9381450C24CD71A2BA299FCD2D4
9500B95D46B116141644EA96D18310914315DFC209208B0AA9D74F871C47A3079A0
95174624D9884C33B696EB101F3050A91176A1A146FB9FE735E2B03FD36620D29D4
952BC9FF89C01C8CF8D9CCD669AE20AD089F7245976C97F686C38F33B1D587F60AE
9532787AA5306378BC30FF335492679399DBA5C54CA0FC732B2D0E7780E8E3D2751
9540C6FEE3BF7A2B512AA1F14F98D7BA8D8F782C1B443A6047AB3E95114EBBD3DA8
955218377CBB9C232E395012635ACBC966BCDD2114EA60977CF7C4E6ACBCD64E18D
956B01A4C9682B65340AFCBB345ED0C6CDDA1B92629008607E327341C36A08EA593
9578C19024B48D26D51B5C25971921CC841AB4C9D193F0B80C2FF872834C004B74C
9585B8ED7758B4E75AC621DE891B7475A1290482AAD2CEFC23FA8A88EA62376DB6E
9594C77E12C64D4CB0D6683EB4E53016EC45392A114AC4CC27FA3428E157737160D
960B0746DA600BAAD41EB8C428814E08E03EEFED4B0A9463408632DC89CCC2B092E
961B05272C3EE59E0AC78B3C87AABA7AC80447AE3857D75F38EB3DA3B30566EEC66
9625803FAE68266DA8FDDD06768508A90BEB186984608425F0BD3EB2271076374B6
963B33130CA7010638EAF70731BF9A5B3E9200FE575CECBC5ADC3F8CEF87E9907A3
9644856198C918F958FE13BD32FD67FB4B2C4F0FB20A15FA83535A044CB8B60C420
9657C2E393A3CD5BC900F61BD076210F147562113848933DA2CF94C5422383653EA
9667C4C0B84A44A7B94D6133005A63F87313448451911E1523EFB538C9D9200914E
96742E82D3B24310AF02F12767A947089771B58709ADD286A29507D9EDA85D3B889
968F4D68DC10DDFC8E31D44672ABA818F18247AB591B0F7657F37F61C6172653EC0
96909E4FA2D4929D7BB495264F74BF0433E6CD9DBFFDCCD5B1663B87DF50FDF0FD2
970CD58D7F057B8EF0729ABCBF4B4CB0B86096232FE4ADADDC26AD77611317DA7E7
9710C098D6DF7FEB89F547D4686107A1B64496B8465ABAEC3B8F0D8BC0E346B3A0C
9721D618161D28FE958CBC48E6E8E87EB3663C1DBE96C9456D2D45438567D778BEE
973B251F55F7C93BEAD48307F0BDC17003106F2AFBBA39BBB75F2A49685D9DBA4BC
97448878E848B5184C982B76A1EC4907B7B5F2D98EE81690B735A80471D263BE8FF
975B0537C877DFF3296171D57BA08CEF76C8349058B86BD40CF21F07112EEE710DC
976B2957E0A6623F69E63B6FF655389B8E1A9879CD224878C80C387ADAF1783034C
97790F615422D015433656D3796109C410F04FBEAFBD04DDBFE686FD8CFCB669B9A
9783574508B63E2323EEEC0771CA8E6283CE9946DDEB99C669F1642FC87DC924AA6
979FC35674582B6600FBE199D60A3F737072288DAE95EC2A8B7301C8A1023E6FCD6
9804490B4D3F2F9492B58E2F0ACA9B4B15C42FF7B9C1E6E4EB71A738A99206E2E68
981F6814C127C3B6B5DC7DE32DE75B35718A561401A2F6446343609DF5DF308BB1D
982E8B9CD0E8BCD4A0F411CDD0108B0B70A4350195673CBC821B740B3995D0F0F0C
983DE1AAFCBF4E43E1C42C32CE9B9CE6675F6AF5FE1E9E277BD6FAB6B0F82C8DC88
984975D113BFF9E81A0511418EDA0260757CDCD19417E71E702A9820E37F8FAADA9
985847742BA8DD44C8484FBF4276C82142CE20499
9860000000000000000000000000000000000000000000000000000000000000000
9870000000000000000000000000000000000000000000000000000000000000000
9880000000000000000000000000000000000000000000000000000000000000000
9890000000000000000000000000000000000000000000000000000000000000000
9900000000000000000000000000000000000000000000000000000000000000000
9910000000000000000000000000000000000000000000000000000000000000000
9920000000000000000000000000000000000000000000000000000000000000000
9930000000000000000000000000000000000000000000000000000000000000000
994cleartomark
995%%EndFont
996%%BeginFont: CMR8
997%!PS-AdobeFont-1.1: CMR8 1.0
998%%CreationDate: 1991 Aug 20 16:39:40
999% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
100011 dict begin
1001/FontInfo 7 dict dup begin
1002/version (1.0) readonly def
1003/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1004/FullName (CMR8) readonly def
1005/FamilyName (Computer Modern) readonly def
1006/Weight (Medium) readonly def
1007/ItalicAngle 0 def
1008/isFixedPitch false def
1009end readonly def
1010/FontName /CMR8 def
1011/PaintType 0 def
1012/FontType 1 def
1013/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1014/Encoding 256 array
10150 1 255 {1 index exch /.notdef put} for
1016dup 0 /.notdef put
1017readonly def
1018/FontBBox{-36 -250 1070 750}readonly def
1019/UniqueID 5000791 def
1020currentdict end
1021currentfile eexec
1022D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1023016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
10249098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1025D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1026469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
10272BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
102868618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
10293645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65
103048A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3
10319619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB
10320FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB
10338AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F
1034EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466
1035FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3
10369902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62
1037D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8
10389EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5
1039ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6
104010FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582
104183158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493
10422EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA901C077A059F709F30
10434384CB5FA748F2054FAD9A7A43D4EA427918BD414F766531136B60C3477C6632
1044BEFE3897B58C19276A301926C2AEF2756B367319772C9B201C49B4D935A8267B
1045041D6F1783B6AEA4DAC4F5B3507D7032AA640AAB12E343A4E9BDCF419C04A721
10463888B25AF4E293AACED9A6BDC78E61DA1C424C6503CC1885F762BFC6C8AAF00A
10476E3D63422CB0D13393D3A4EA0F7E39EE0E8B2AB66BCCFC58F38D0B786B14DE75
1048E7280E0FB6C0AACA8399118615D264E64DE90A05740A04854EAB9678B4B4CE0E
10493143CAA692C1CC3FD62DF44D0C4F82524BEF58C9DF7A373C1C54DED11C2F93FC
1050CB46F3B47F96F06EC598064E2B72D2CFFFABB1D5ABC1FF308B447D7CCDE6FCF4
10516D5AFE2D7003F20563C066C08C9DBB08FFE86BC40A0AFE52BA2D24C77F004982
10527C4FAFCC2F253B8E414272579DC6445E1E8388C38BD34AB2ABD413A06B1A03F2
10535762639D6029ABC425CA0FB69EC6B313B22898AD39A92FC492B0F39B8B346431
105438759AA6CECD4766506DDF7AAF8F0E36A05D1BD5C0364679478AA0E1DAB30202
1055430A251024924BB4CA3B9C30BFECABA665243F48D2612E5E95DABD497EDF0790
1056879B7D02941FBC0A941C52E8836578E532E51A9DA116D78C2F700445E15B8F60
1057D73F15B794F97B2BEEBF585FB8161D36FD02A7A46F0B470B66E8E2E1155E3B7C
10589BCAAC18FB7B94C374238B435A10F44C8CDE80B6C8E0AE06DD18DFD30B5AB42D
1059827BEBB979426CAF89459C6D25C1EA68EA7AB8FAA3A09B8BA9D4F871D8904BBF
1060ED2E6372EB96FCC8790585BDF8F2962E4E2E0CC00C6315789987436ED3B2F465
1061C2959378C50C2CD69AA49398866631B80BA5C02171A7AAD28438F495421193A9
106255F196C06C04B4623EB92194BD88BEB4A891D1D2D8DE04E00902FAE844BDB44F
106347DA8F0B366BDCAD33B2EC685BFAC2E9EFC42BEB8DEB89CAF99F8F8A4252A0F3
1064087EA01D6BFD2CED29DC1D2B36629A6310051305F59C278D47A693DE06BC2EEA
106550B9D6B18048C20DBF22B2D18453226E68AABE9964FF0BE777B3864C6B41D19A
10665D162272693E4D77CE7FB05E1DB9481DBF3BF0F5A909643A2EAF009B79CA6E65
1067ED79BB4233D7FC1564C88349A5AB1204AD008D049C08DCAE91E210005B99C1A0
1068CF967C88FDFADE0F83C1A3BB4DA5AD1480C4A8ABAA7DD4F17A130B810E38E6CC
10690BDD7E0E1E82E9A9EFFB514869254A85416C74BBB5B1F8D0B9760777446AE310
10706BBB962E30048C90519C2AB1C57F38EB53BC61A953EE66325CA901B95793B432
1071E37747C91864FC56BC4B567C0BEE48F86E1B761112D1ED25F8C538F401125D74
1072DC86C1C1455CD0FA47883E9217A8EB576CEDCAB1651310CD71C80DE77207D8CD
10737D87E83D7FBE461B0376AA75FFFD7E725A67C846D164935D3FC7C33FD0D161F1
1074B7F1E749FCB4B74F9B2B7F4824366B8A62757C9FEFAFF4AFB22502247FB26F8F
10752DF28D29E84DD6244E724A832ED8D214752FE56D06D1ABCC2435FB24143DA554
10761D45A170C72D90D650EC503F46144C3B6D29D76F982129C72973938C1120FBE3
1077A44B66AEE846E3BB6672EFCD90411C66890FED26A22EE73497BFC56E6BF9F3CD
1078E4354AA19ED2C0DEC4151825CCF348664EBA2E3E3A972DC7C9C5AA5B89FC91B7
107943F727E93D5A16FC53F23713E6D9CC45BC243893A148F5ECF0BF6D4671E9DF09
10800F17513C06657E8E351CDD9904978A26F259F1EB4A95E24399C0E2166B8ECE14
10818A8866D703C7FC6AF09F126F6B47F40C4B0CA014C5B9F097C1A4BFB9BB463307
1082989A160CA98DF650358D6BBF4DB14C886AC660FB1A56EB0E9652B7D9C63D6D7F
1083C31FC46082AD620589DFE1553442436442CCA7EB72210BB826148D63E7048063
108469F065CA55E8BDFCC3525470BE0F92F7573766D921A8C0F6968375514537D6FE
10857327606C70F23C50BDAF6C67BF99C6EAF0712A49ECD79F25B228E3227B092A3C
10863F52E91C949FEF2B0EBA64FB8B00A5736E54A6826DB6FB85D5277ED46344B50F
1087F67BDA4EBD299FE30EF729286B03B728285741EFB9D9EB762CE4BB82D14B41D1
108882CE73545BD6EC3FBBE94E6D48AB60924AEE6D2828FA9E054D2946526F4B39B0
1089A9E77A72CF7A80B32E5D1E8C3FBB70E948328FEDD15A53B3CD4BAD6E12A6E070
1090F705643B8D4A5BF68D00A645B529182FECAB193C2D138395D2FB2B5C7703D780
109180E22BBC620080C4E86F04C7491AB27A9E3AB45A3367E14B3A6C26231F757428
10920831F6EB58E19C3BC16329A2E065EE1C45CC20B3B774D7EDADEFB9D9E2138F91
10939C3E41E3505EF990742F395113B56B655B879A8C4BB012292E404E2D868795AE
1094C0C4333FCC933C5EC45E0CFFA8F66F177939AEEE5FD7965E3DCDE6DC3860926E
109595FF60FCA4B5D346C2A3152322166038C8732D2E32DCF30891DC67FC400F7006
109659EF1C8CE082F9ECEE1FD1723ADDD58120053C2CFCFA079BE5AB78F5A0523F07
10972C15273EEA4BF63693BBB0A729E979CA8AB7B0C481A52D7C39E85CA06A1DBF3A
1098C106E063E5EA3D99BB4D99C631A5647C11290CCDE943C0922B9B2DF86BA96C89
109966940046969AD7543D0DA4F68DF65612B47DA68CDD55CB43CD5D251E0EC1DEE6
110049C29129EC68CF5C28E1A6C079E2F8ABB8E146596844E147B78A088086339423
110135F4E6627FFDA1ACCC0D71118E09BD18DFF80AC64FADF1085E829D36557111FD
110220280AD36B655E2535BE0A7CA660CA5957D1D88FD669D13CCC319D6B3E34B0E2
1103B7369B28D33ADA74DB6E68DE3654CC4829F02F6913027B92862035F80292FAE3
11048F0923D5E24ECA9C3C6520DF7CEC8DACD0A27A73ACBB2C4FFF2E12F76C129B7F
11051C8D52E41DB3F19B55C9CC7845042E47E15CFBE90296FEAA5F31256AA3425B0F
1106A2AC0A3EEC8C8C871F6BCC89E19A5A960E8B3E0E5EA81DF3BAD08AA2FFDEE13E
110774B81ECEE9CBEBDDF344A0B926E0E48C2D6B079554462E900C6EF28854B2664C
1108BE170BD551AC1333139E9A1794BCB0FB1F5F55C83A4FA9D0272C741898D0B76F
1109343CD1FB7B83AF53CFA528D9E00C06A7278873209943705A2E5DB13DE7BA496C
1110A39F6972F287E9E7E6779A56132C5BD68399510B33B3A858C4F382FFCF6C7361
11115EA33770E00DBC6328358668E16B79EED96E20BAD17EFCE4ABDE489D0167AB3B
1112F8B4E63662B926E5FAEAE8606C92C162213323A68680BBE88F74F64EA97AB3BE
11134F6E72FDCF7CD14F40FAC7821A88C8DEF49A92376825565E8C7C4E0BCF45BA04
1114CBB8015001EAB4CEE0180C38452E39402EC6F00E140153090BB246E635B9BF40
1115231F8E13D0118B3B383951791E3C2A343A17064CF5D01F59B7F8F626A766C258
11168EF4709E5A5B582345B336A67A387564A707EE48ACF1B459672CCAE126D17B7A
1117343AD1C4E3387DC8591393DDBFE1314B597C2C5BE2E38E137F0E3C6B2FEEA883
11183A0FEEA5FEFDD7EE0DDC07AF5381283CD40D5E3F05465358341485270853FCDD
111973380650ABC253E664B72D5EDAD589FD741A2CE1095E388CD18F443EED96206D
112058ACFB09AB41CBE20814C2CA3035DDB046FFDC836C229983ED2814FAF8D2E979
1121AD9BB5E9B065B83970DF68F9605034147B5372EBC8DFA96FF3B1F4721A15CD7B
1122B37506B8C2A73A3DC30E55AF4A5BBF8ACB5DA9DF9E5BC37310803B371DEFB0E0
1123B06DCDBFAAE29AA1203019500B5C8DBCF9ACD3236B3FD235C6DB7D580E81BD76
11245FED87C77D81A41B19901E9755D29160B68F5F34E48705C7FED6285776351735
11253DD0892292F7C694B07A3F4FF39D0E59021E4D607AE4D4C6D9134ACAA7388C27
1126B1073208011EBEE611B8BCE5F5E5D4D21CF6C87EC58416D62F1D63AD528AC9FD
1127D89DFB56B2E06F4F74D4C158B6CC7E698266A6EB767C038417A651BC7B3E0865
1128565A94DF80180B8B4E21A64F3D09B843827643A4046C139C344A8E6427DCAD2C
1129329EA9B4B58354D734395BFDBC14138D29FA305938C841CCB70B9095A6228A53
1130252163C13F82D116E417E0DF02D7D88C4F0F94FACE4305328865571E5736AD96
113125D5ECCE05D5C76343FD55DB949B06678902B29765D6ABA0241F3218040DF384
1132F5DE9629993ABB9DC4D6DCED908741FE963FB78B02004787EF6A2BBBAB8B902A
113397AC8BDCCF03A09A21F5B010133B2CE1114C926033FDE1C16CA9AF0E7E474905
11341157B358704286FAEABEBFA9787BAA196AB2DAEC93CABB04289958E4C43D7BA1
11356D2160923787218CD0CFF0793747AB2347B657E6FCB946251C6E1A18F0120CEB
1136D15A439D879B32D12022C06A4E420D470B493E68EDFA043E15D098923E720559
1137AF3DF3043783305F7AED5F40BFF62558FA9CE1F7C4FDAAA237D4DC0B72016A33
113829FBF2ADA6C308EBBD245073B0D6717DFFF3D2C2556B0E05169EB91F3DF95E23
113935A562C4B0993D99D0CC82C61D450EBFA8F75AB8F0FF4427356CFCF1286FA2FC
11403BA2DFC625AC926DB245FB6575D8C4C4C9C1F06F8659E602370622CE1B43C50C
1141937D2270BDC4F8B7519DA2539C667A339A72FEB7E368A98553EF4933076FF276
11425E826467CEBB0E6B8CF1EB23E9AB93F4D4B79DF8CEFDE0CC77277844EA36EF89
114348A24200108956AFA11DB66B626D91D568C1989D4F121D28B1C607EC9C76DB62
1144E8914AAC5E0934551BF16CD41169DDE3BC16585BFC7E677C66CA44743C3D76FA
114571FC3FAD07D0CBD68353F535673497FFEE691C3282D091F5370B82D96B430D5C
11465D1D6549CD83D0B28E30603E014E0BB2FC7A96D3F7731FF88560461439734DD7
1147CB7C2F9F266CFC1072292EAFC6447DF4C831C92EE3B4145AABFCA1477140174A
11489C8B2CA6F26E581B23D490201E1F96B740AF4BF98B55BEB1C69709074AD4E3D5
11490D564FE61C9A0EFC1B0F56A409803C1DFCF9508DC10F14DDD495D5702E1D87DD
11500F41A55F9FDC34ED3DD9F82CBF88482FEC64A22A0E660403E3843E194459516E
1151DABB722B4CC56A2810725291CEFE412C14EBD55E4F143E33808A721EAD20F806
1152575531A4F666A555497F287D6F963C74DB2A709B2F0F2F2EE6670C06962FD848
1153DC13EEF6CF0DD6C888B6122C1A6419CCC4EC8A7BF4CF6F3A7A70B0AAB3CEDE37
1154DFE0D516CDDB2C6EB0593A02F4169F303D81D2086D6E9D72FB4269FCFC848B32
115586805E2BC50D3EB9FCF250A8F06E3A78627A2F9F9FBA6C37811D4D74FAFEF414
1156689AAE5963BCBEBC071ED0AE1C4394DB0ACF151CEC8CCE9DD8B3CD68BA63103F
115797C09B4FA70C1752C8B0A82DF311829387BA160CB44697C040A2ECC8C6C876FF
115842E3337A879BFE0B37FC87230350C222C772180F97F870F9F7C9C09BD6F7A327
11593C0B54C956A5ABFD2AC0CBE22576A2A7FD24D449FCE3E19B44292CC2C65D6165
1160512FEAF4CF7337A96C70E8DA86208187904D04B888BD342D59725D6AF8C611CC
1161C8623E573D49EB602B90F1254EC3CDBADF71F9E7CF8AE2C1140AEB8CD1EBD1D2
11623BE7523CDB5441AF3B1EF1015F1CE1380F98D2365EA99DA5176E3F750733E8F4
1163CBB43E500E84900480B06E8C2F52DBB6922799DCD603C3D5A600537D3D06B53B
1164DAA8D1AA739C8E6A9E91202E5E36B204787CB9BB690B5064B76704493B206624
1165EFEC5B35192C7919D9107A5C576B798208807A7E3A9B133F1610FBB026B0278A
11666C1F2A9C863EDAB17FF8080DC7AE20A8C43BE91BB210F13B65EE7E4EC04A6C54
1167ADE39FEE4D902B22192808229E3CD2EF44776BB7BB3705F808F1A6E90CFA9793
1168BC982CB2D1DCF2513C93C78F2A39F0FDAC8D9EBFD0F6F1E556D8A63A78A644E0
11697768A125AA5FC8DA9952E29200353489406C7244D8463E7C1AA1AD58E1EE92DF
117048FEF606A4AD9E76BD1AC4A7FB3319466D0264E1368BE643AC2301CDA1B4E7B5
1171E592B73E5C94FAB8010E679BDF96BC6321E696FFD3226FC343D4E1F9538DBDEE
11727BE661BAD276876834D0B029420B21E2F5B04F7811DE831FFC742D3F88218211
1173678D1B0CD8F036D55AFDF4FD03E813DDE141BB041767420D72B87646B4B3B03C
1174543F999CBD03B8D344CB309069E21BF5FF6D7DE23D92B4809A4B12F5C8942992
1175AAFFD142C35D130FF8063373E9901AF92F58DF724B56310D2A37F64B05899687
11767B17F4A4F0C67A58806E48B610A789A28F1C7FAE5A5F4A10045CBDDC71B61111
117786A095F5305F0EB5E2653572241BD602E1DF0321A7F3B942EEA5FCB299C7AA17
1178FD4F04D6E12AB6596F4F2A7993ABC4413A3DC7D7DEDBFB50C81B3348D152C749
117998F8ACB7F00846C13A1144A6C736335BBFBB4E7E732037339E0C481521716485
11809A939E43136E55EA34186958C6D5D281B0CDFF11CEAE36DF2DAE3D460B92A7B9
1181B01F784BA9A20374F2DDB863CFE7ED963CDF9AA7BF794D4DA4087639FF7DE304
11822B19ED80EE89765C0A7A35AD1A2FC42E410F0A65315AE6DA5EFB02D85E39FEC1
118362DBE799633BB9C1858FD5C3640E063A4C865D7BEAC939F97B9B6A5126B6ACFF
1184B4B08B439AA5BAB0E1A6B3541533E68876452DBD9054CA87BE449A7037CB78F7
1185B982F79FA5FD3F7B9D4FD19DCB7DB973237B9E734A7B28ED7753577535B4B8BE
1186E78324CDEFAD49AAD938AEAEC0B57B31AE59A50F20B1DB3A0FD28D7E832F1357
118793E155245462E25CFEFC18CEF7A1280FDA32C48B580D8BDDB6EFF15A17E4D136
1188E6E3399FFF9780D7B50BD88A81FE22A8759B5864088E281E94D9AE578AD8E2FE
1189EF06982174355F73E162934DE5F67E2D2FEAA16CC275B78579EB0F2061EC28E0
1190F8450982F122A4430FB9E867C302E16A4105F82B398DC10ADC792DD7B52D40A4
11917BFFB02D5A6182315D8F6F55C09FA1DE04376A51D55D7FAE898D1AF4591A2788
11925684746B0771648BA77B8626E595FBC5A3D9A940F1D07A78FC377957DFB6C7EB
119327767AF46563CA503799528FFBC88B6CBB026BD1D71CAF13E9C71529B4895CBD
11940B35984DF4C7CEE6A4368B5A45FAED067987FBE3D4795ED697932D8CAF9F961E
11955A589D46E479AEC1395673D96C777DEACB6D39CB6C22E6D1B9A53A13741AEA80
119623DBC617C985529724104EDDC5FE4E88D890CD306712120AA705A0229277700D
119755791C13C3D7C2562A34CE619E11269674BDAB7BCAA1B1C92E20F4B862694A5D
11988471E1E8255C0F1D1823E19341F1947E06C05947CC3320BD8340E937EA12CDB7
1199D2929735664C367C2139B6B86C317E9C9BF2A4DEDBB4F056CF7FDD7D900BF60F
1200663F8A75A025DA54AF0CB1B2645913727AA06B70D1C2C057CE6480B6C18EA51C
1201ECD5BF1BC0294580B6AB62E68FD45F77752B2DCC99C80AF1406ADEF13C4D5F85
120221784E302627A5C6EEB90FE5FB99CF07DE94689151DC1DBAA8F8D40A898BAA32
12038A52546EF18B090E4E1A2B643D140DA2374CCE813812A7023800DE0AC3D42BB7
1204370F4E7706FACE6FAC8207468EDA092186446C47F3BCD3A23AE647C9A17D5927
12058CE36AEE79454526BA0ADD82EC561BAE6620F983CDC45CDC1ED06EDFD9094B1F
1206DA00E7972B3046397694B00DA0BA171D014AD727AA3F615E4C8BAADC6A801BCF
1207B967F255D9FF637C82A3A830916EBEEADC6F9DFCD2E72787A640E67676255767
12088F54B5405F38850DCAC5F2E704961B54498CE3FBB910DD7306D60EBFC23431A4
1209D47B958C501B91EC5BD225B5F4849DE85EE2B8558AE287885A2B71B0000D0A1A
1210D6AB01A5A62C994FB1E6F84DDE4DE9B00C9622ABAA493BB4A62C27DFE4DDE39B
12116F62695F459CC651D1CD3A68511D00440F7023A3C2C70ED1D66C0C217305800F
1212C28558673B016AF00AC5207F698ECB7BFBA2ADBA9AFC1DE814D66A211B86B0FA
1213CBB528CC9CDB3D550FA57367BFC3AF051110A4935ED94B901E12DAAB2DD484C3
1214BBB0DF8DF7D5EC5E0DC3A147CBA866F227E662EEBB769B94A0A532FE350599DD
1215A57C12BCBCF66B52FE005ACA16294E697D20C5660EB98D99B8E00385B3EE0BF4
1216BFD414D2172528C82904E3F1AE713E51968EFF2A2498052C8ACB2B0BED013817
12177F36AE0AD22149471FBF5CF8D3C0E5F0B57E4B01AFC45B0AA34EE509E28CF88B
1218EAEB7CC6E43DE08282B70ED359F1DC46F07EDE1BE4BED10750184C0C421E6FDB
1219B2E300F9C41E1167B6281E70EDE5F53467493537DF66C7BFFDAA539C4F028A0C
1220904604FAF5D4ABE4E39D7EE92B1FF8C75B71BD150F137722B85718ED80FF251F
122174EE7372A141479BA37C2EE484CC6E6B2B1185776D0B7CD062FBCE0B0D7960A4
1222CF8D7FBC8854DCB613048BD31EC2FE0EC9EF90A7AB4271177DB8B8237DE9108E
1223E1B4DAA3AA5B8068ED2E9CB2A1BC9524D5058BC26C531626D21801139950A734
12240B564AA34162FEABD4D68609AD531EC699134ACE0A4B76872F51DF91B8AF86FA
122517937737EEF89199BF3AF1F7CD77C567E144CDA617A11E7175DE1B29E8187A22
12260EEECD9C65D355FE09F04376129BD0D15AE89E10B06762D2ECAA08A5F19899AD
1227BD3A37D42C77A2A5C0CE2CFD8360B669679A0203AED6CB0DB0D8562A37B670FB
1228554715C46402ACBDD00A935D40FA0951846D7FE7A251D31AEAA408D9DCA81EB7
1229C1678B26F228A69B1139BF166BB1A1A9FF89315C726B28B36FC9D84B4B431E2C
1230FEF16F592D52BB54B9992290A0B210FA5779665C8DCBE48955C5467054872E9E
12312874C5A175427A35C9E8B4B4277D70177B8E4735171EEC3221105260CF162219
1232172A018CADA4BF0E3AB1331A015C7824E39E5FE3A688BA0E0870EB501A126792
123396C88EE5EDE0B23A118A4D0C149226465AFB7B4673F82A7618BDEB74B92DE403
123405B11124C8121192E5834A65F3EAA521F17570237AF11C39DA5434C5E54BE434
12351516A9FF1818B930714BFCC343439A849B3975073C447023D9566300F249D341
1236BDC3D6A4B4E8780E8D7CF04483EC77354752879E09E89D1B7660B71451A95E8B
12378C815F7B3A7734F8F490851499E3DC091D2B400A406B2303EE6DADDFD6B7277E
123800207C4B12836114E6DAA684A7C374340DD7D84C964B35BA364DD83FF4F82DD9
1239BF6D005250A713B3207C9A5920E57288250B05400AC339A856284C821F4B34C4
1240BBE7C30C1D91DCEC2B352283DC8678BDCB4DC9BF596EA656864B46E8F69E2612
1241722708DBA3FDC581162CB63A2B26B94C448032613A1629EF6ABE228AA8F06996
124268FA7FDD0230302ABF42637B635AE91DF6A9C68EE3D10B85BDCD8A5E2232C4BC
124381A486D49D8FFCDF1E9451E226BBC51F950741077A1AA6544FD281782E5C2EF0
1244FDA1E69ABB4C718E401AEBC2D707D00ED1D4AC55BFBA48CE1E25F0B21495A9B1
1245B4F17E3A0BAA38CA1D5952758773ACA8E0EFE814026BF79C335F5331E8868D89
1246F81C98A2513AD8FB38101D76D6BF0F367D35
12470000000000000000000000000000000000000000000000000000000000000000
12480000000000000000000000000000000000000000000000000000000000000000
12490000000000000000000000000000000000000000000000000000000000000000
12500000000000000000000000000000000000000000000000000000000000000000
12510000000000000000000000000000000000000000000000000000000000000000
12520000000000000000000000000000000000000000000000000000000000000000
12530000000000000000000000000000000000000000000000000000000000000000
12540000000000000000000000000000000000000000000000000000000000000000
1255cleartomark
1256%%EndFont
1257%%BeginFont: CMR6
1258%!PS-AdobeFont-1.1: CMR6 1.0
1259%%CreationDate: 1991 Aug 20 16:39:02
1260% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
126111 dict begin
1262/FontInfo 7 dict dup begin
1263/version (1.0) readonly def
1264/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1265/FullName (CMR6) readonly def
1266/FamilyName (Computer Modern) readonly def
1267/Weight (Medium) readonly def
1268/ItalicAngle 0 def
1269/isFixedPitch false def
1270end readonly def
1271/FontName /CMR6 def
1272/PaintType 0 def
1273/FontType 1 def
1274/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1275/Encoding 256 array
12760 1 255 {1 index exch /.notdef put} for
1277dup 0 /.notdef put
1278readonly def
1279/FontBBox{-20 -250 1193 750}readonly def
1280/UniqueID 5000789 def
1281currentdict end
1282currentfile eexec
1283D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1284016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
12859098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1286D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1287469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
12882BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
128968618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
12903645B82392D5CAE11A7CB49D7E2E82DCD485CBA17D1AFFF95F4224CF7ECEE45C
1291BFB7C8C77C22A01C345078D28D3ECBF804CDC2FE5025FA0D05CCC5EFC0C4F87E
1292CBED13DDDF8F34E404F471C6DD2E43331D73E89BBC71E7BF889F6293793FEF5A
1293C9DD3792F032E37A364C70914843F7AA314413D022AE3238730B420A7E9D0CF5
1294D0E24F501451F9CDECE10AF7E14FF15C4F12F3FCA47DD9CD3C7AEA8D1551017D
129523131C09ED104C052054520268A4FA3C6338BA6CF14C3DE3BAF2EA35296EE3D8
1296D6496277E11DFF6076FE64C8A8C3419FA774473D63223FFA41CBAE609C3D976B
129793DFB4079ADC7C4EF07303F93808DDA9F651F61BCCF79555059A44CBAF84A711
12986D98083CEF58230D54AD486C74C4A257FC703ACF918219D0A597A5F680B606E4
1299EF94ADF8BF91A5096A806DB64EC96636A98397D22A74932EB7346A9C4B5EE953
1300CB3C80AA634BFC28AA938C704BDA8DC4D13551CCFE2B2784BE8BF54502EBA9AF
1301D49B79237B9C56310550BC30E9108BB06EAC755D6AA4E688EFE2A0AAB17F20FE
130200CD0BFF1B9CB6BDA0FA3A29A3117388B6686657A150CE6421FD5D420F4F7FB5
1303B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E10A31C7011C0FFA
130499B797CE549B5C45238DD0FADD6B99D233AC69282DF0D91EA2DBD08CE0083904
1305A6D968D5AE3BD159D01BDFF42D16111BC0A517C66B43972080D9DD4F3B9AE7FB
130611B035CE715C1218B2D779761D8D7E9DEBE277531BD58F313EBD27E33BEF9DC5
130750C7821A8BBC3B9FDF899D7EAA0B94493B97AFEAC503EB5ED7A7AB67C3039A0F
1308BF0BA4B455D035FF3126F33A4DF59FF96752CF58DC0863924F6042B14DC2DEE4
1309099CAA764A8EFFEB78F7FFD276F0928BA32624C3A69ACEB8777A461298B201D3
13104DA271476B8AC8966668D4E28A6FBA952F6D295AA80CC09B0CFD6BE840703B07
13117ED93999EB5630C2C7CD9BA683ED457D1341C3AA702B5FA8593DFB1368476E2B
1312504F45CAC36A6CF2C977A321DA231787E107EDCC25D3B7F43EDE2D4509506CD8
13139B49582F1B3B27F90CD5D26DDEEDBCF5256EEFAB4D213BBDF39459651EBECBB8
131463E0EF9989D220DE90A05C8D0BDCB20CF1C8FCD4E049E36EBCAC5C1A73F2261A
131543229BF33B2E0B45B21A6B97016BC81AEAE19E629B6B35AE22440EAD80C8E56A
13161DE751148B75169C1C356528BEAA4B492499F6A5AF19EF591F0810D974F0A69B
1317FEEE21A5209AD604F42B3DC8B0479F1371CD22BE066B31077723ACF017DEB2FD
13188437D985CF414CBE6BA6F926172BE1F2E2329A33347557EA37F7B0BA01846172
13192DA149EAC55DC113D9A3B4E9440F37F146EA597E5DF412F214028C97482FD9DA
132063018D551E75C661F4DCE7F9761CAF86A18D5C0EB7CB89156A63FD6F9C113354
13214963391BF7822FC06F2E39D4FECEE2F098E0DF2E0992C775AFE3B6C044E66307
1322208DBB
13230000000000000000000000000000000000000000000000000000000000000000
13240000000000000000000000000000000000000000000000000000000000000000
13250000000000000000000000000000000000000000000000000000000000000000
13260000000000000000000000000000000000000000000000000000000000000000
13270000000000000000000000000000000000000000000000000000000000000000
13280000000000000000000000000000000000000000000000000000000000000000
13290000000000000000000000000000000000000000000000000000000000000000
13300000000000000000000000000000000000000000000000000000000000000000
1331cleartomark
1332%%EndFont
1333%%BeginFont: CMR7
1334%!PS-AdobeFont-1.1: CMR7 1.0
1335%%CreationDate: 1991 Aug 20 16:39:21
1336% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
133711 dict begin
1338/FontInfo 7 dict dup begin
1339/version (1.0) readonly def
1340/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1341/FullName (CMR7) readonly def
1342/FamilyName (Computer Modern) readonly def
1343/Weight (Medium) readonly def
1344/ItalicAngle 0 def
1345/isFixedPitch false def
1346end readonly def
1347/FontName /CMR7 def
1348/PaintType 0 def
1349/FontType 1 def
1350/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1351/Encoding 256 array
13520 1 255 {1 index exch /.notdef put} for
1353dup 0 /.notdef put
1354readonly def
1355/FontBBox{-27 -250 1122 750}readonly def
1356/UniqueID 5000790 def
1357currentdict end
1358currentfile eexec
1359D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1360016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
13619098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1362D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1363469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
13642BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D
1365E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8
136647AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C
13678882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4
136878B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486
13691060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E
137001426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B
1371C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0
1372F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30
13738E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF
1374A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7
1375455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2
13769A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105
1377EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B
137852F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97
1379563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F
13800BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB
13817ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1
13820AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4
13831E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4A78141CA32C
1384B3C74E1A0AE0520B950B826B0ABD81766035058ED1654D00FE541CAD1D246C0E
1385DE85FCD3C0BF7A70B913487B1A527EA823C00C39DB61FD6641B140FCED8580D8
1386046741D2494B4E7CA1F120CBB0A532BE049CABEB70A39018E8212F8178E93C98
1387B377AE2880FE39BA0EE29451857DB34964DA26ACA4CD23CE284ACE37D89571FF
1388CB67DE7AE379B74B32ECACC5F3DE0566CE9EE820E96F27653C75935851CD9360
1389A83C7EE8270383CB8A80715BC2B62B1F709235A5A73D99710D7665182D461095
1390B98C8A0FEA44F0F1959055D50BABC7880E7BA1CA4CD72531A240A622663A0A1F
1391DBE4FB907F97515CB1100282C9A0241F65F84EBAB1701FC105BD25F82807F4CB
13926A5EDB5CB156A7D55F64146818245C112DB0FEE9E0AC96B4B2AEB27F89FE0560
1393727D85FE6CFF5C457EB1EE5D7E2A09979684E2611BA57A1BC7BA4E37DC4BA761
1394557D986F9A8B495CB7212507AA79C297B0665CB5883F2332DF5CB088A92E24BD
13951EBADCAA515B567FAA9E15E7B8DA60C1BBEEF5A2E0D4C0C67EDAD822B5E8D81C
13966D29928726D36EF0A9238476FE54D4990E8D75FE0109C0336DD50F9021307213
1397F69C700D2291C546007CF3A5DF3BF5ABEEB640D3AEF585055A65EB2CA7AD7F11
139822182523EAA8FCF029C604212529C03F179566E6B731FFE2283D6402A350EAB9
13993C7FFF41383A9398B33C48FB2F9A8241D65425FC5E49DC9BB97521D91E44B3C8
1400B2EB1BA8D532BBF175486D1DDB914BCB92968D342B5C1FD6FC72DA462FF68992
1401464BF0E00D05C2AC3729E598991C6EE7354F0C400296356ABAB37A16FA504DC9
1402B6369F88BDB7061D5EEB761527E588B4A6C83169B517991789D664BB543A0E57
14036F2529BDC7838AFB93D53D5794E57B65A7DB00584492C046F72CE19E4D1B177D
14041D951362B2F7CE2B720B305D45B7FC74183C1DE46073D8E20FDF8027FBFCDF40
14055F0950F5AAC19AC8E8D9A57A271C0BB212822798DCD068B4F05DBAC2AF7BB25F
14065DFBFBFB5A51ED26ACB22541E1971002A5D97B5E148F8F087A3229C4
14070000000000000000000000000000000000000000000000000000000000000000
14080000000000000000000000000000000000000000000000000000000000000000
14090000000000000000000000000000000000000000000000000000000000000000
14100000000000000000000000000000000000000000000000000000000000000000
14110000000000000000000000000000000000000000000000000000000000000000
14120000000000000000000000000000000000000000000000000000000000000000
14130000000000000000000000000000000000000000000000000000000000000000
14140000000000000000000000000000000000000000000000000000000000000000
1415cleartomark
1416%%EndFont
1417%%BeginFont: CMSY10
1418%!PS-AdobeFont-1.1: CMSY10 1.0
1419%%CreationDate: 1991 Aug 15 07:20:57
1420% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
142111 dict begin
1422/FontInfo 7 dict dup begin
1423/version (1.0) readonly def
1424/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1425/FullName (CMSY10) readonly def
1426/FamilyName (Computer Modern) readonly def
1427/Weight (Medium) readonly def
1428/ItalicAngle -14.035 def
1429/isFixedPitch false def
1430end readonly def
1431/FontName /CMSY10 def
1432/PaintType 0 def
1433/FontType 1 def
1434/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1435/Encoding 256 array
14360 1 255 {1 index exch /.notdef put} for
1437dup 0 /.notdef put
1438readonly def
1439/FontBBox{-29 -960 1116 775}readonly def
1440/UniqueID 5000820 def
1441currentdict end
1442currentfile eexec
1443D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
14447D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
1445A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
1446E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
1447221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
144827D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
14495B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
14500ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
1451DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
145271A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
14534ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
1454515DB70A8D4F6146FE068DC1E5DE8BC5703711DA090312BA3FC00A08C453C609
1455C627A8BECD6E1FA14A3B02476E90AAD8B4700C400380BC9AFFBF7847EB28661B
14569DC3AA0F44C533F2E07DCC4DE19D367BF223E33DC321D0247A0E6EF6ABC8FA52
145715AE044094EF678A8726CD7C011F02BFF8AB6EAEEE391AD837120823BED0B5D8
1458F8B15245377871A64F78378BB4330149D6941F7A86FBFFC49B93C94155F5FA7D
1459F22E7214511C0A92693F4CDBF38411651540572F2DD70D924AE0F18E1CD581F3
1460C871399127FF5D07A868885B5FF7CDEB50B8323B2533DEF8DC973B1AE84FA0A2
1461
14620000000000000000000000000000000000000000000000000000000000000000
14630000000000000000000000000000000000000000000000000000000000000000
14640000000000000000000000000000000000000000000000000000000000000000
14650000000000000000000000000000000000000000000000000000000000000000
14660000000000000000000000000000000000000000000000000000000000000000
14670000000000000000000000000000000000000000000000000000000000000000
14680000000000000000000000000000000000000000000000000000000000000000
14690000000000000000000000000000000000000000000000000000000000000000
1470cleartomark
1471%%EndFont
1472%%BeginFont: CMBX10
1473%!PS-AdobeFont-1.1: CMBX10 1.00B
1474%%CreationDate: 1992 Feb 19 19:54:06
1475% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
147611 dict begin
1477/FontInfo 7 dict dup begin
1478/version (1.00B) readonly def
1479/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1480/FullName (CMBX10) readonly def
1481/FamilyName (Computer Modern) readonly def
1482/Weight (Bold) readonly def
1483/ItalicAngle 0 def
1484/isFixedPitch false def
1485end readonly def
1486/FontName /CMBX10 def
1487/PaintType 0 def
1488/FontType 1 def
1489/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1490/Encoding 256 array
14910 1 255 {1 index exch /.notdef put} for
1492dup 0 /.notdef put
1493readonly def
1494/FontBBox{-301 -250 1164 946}readonly def
1495/UniqueID 5000768 def
1496currentdict end
1497currentfile eexec
1498D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1499016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
15009098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1501D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1502469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
15032BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
15047DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
150577B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
15062DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
1507FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
1508DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
15097AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
15109F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
1511CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
15126877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
1513E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
15148903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
15153F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
1516EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
15170E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
15184046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209608D3976637A
1519DB9C73EB3A28623DF758C25574D740385B2C3D10086AEB904A33DD76DA2CC4BF
15207E37F9117E9D81D3EFDA12D5BDF0067450C5A8A53959C055C5D6087F1FE6FB5D
15218306F16FAD71AB986320F1229440C63ACB5FA24E41CFEB12C2BEA2C25E59A3F9
15226CA5B7A04B57F2471D36F5B41E6363DCEFF2DFFE9131F044125884739392333E
152315418156EEE8DE92EF4C176742032FE8889839755D8D821CD7F8FAAF8A22C283
152419F79216C6D454A864898EE9F830DB5F3372B8F47C464DF19C69ACB3BC0566E2
1525F25E7FF148B2CDA2B90CB5884440F464CD57295728A4415963CC1BC0635BBEF4
1526E812CA5E0E788035873D05616F7B0F6A30D36BB285E7955CFD860345F16D952A
1527BF2F7D2702DB352D0874442B2074859EB49313BC27E1067D627362649D82A5C3
1528A57DC5041B1A13FD2FA89D80FA075677C6359244645E7803D375D96AC0592A00
1529FCBB5DBD975E6623AF9AB4BB367E94C11437639C870058C8994A6AE1156CC432
153059B5641FBBB72A57757B2CBFC6F5D915C260859C43D16849F0276EC083DAB168
1531EBB5E40D86168EFFF7462ABF70F1BD129A7618C77F6CED9F0A836A180EF459D1
1532526AA5C4DC13E2FBE104EE488385C954AF46D90692B49F7D95000BE2E075BA5D
1533C715D0339BC3114723F4B3A4AC7B9F1301DA3268A9EF79C456F99EE16A20E0FA
153445F280A806BA174DB0378DFC62B6293FBE74BEE6955D3E495124DE342A3CFC4A
15358794618F6CDB4AA6825158366E63418EDD689132C6429A9DDF8022F1C94CEBB7
15365BD566104E12AA4C0AEF0E5AAEEAA17B394188BAF4F489B019543024FBC07123
15379C92F9B4E1C0171F4F83D217C921026C8DD9699E1F1AF1A2B92AA285BDECA131
1538479940083861707EC61AA529E09D262A841CC9C1CF25413ADC7FED1754B0F0D6
1539DDDE2D630E602B38866A6FFCD97DECAFB573A3D4C222B2F41A5B13195B662126
1540CF97B8EB2AF8FE3D52148AD0F1C8B8B3873F10DD19B813E15DA41D46FE69E633
15417177422452317D2F2DDB529DFEA26A1D7D1324A873D7BD6CFCE366645938298B
1542B2F58D2B78CFA0E9883CFC80323D016D893B519883AF45EFBF339018ABFE4B14
1543AE88CF0CD0246E250D2B8E8AE3F98DA779BC4F16A0689AFC47D623761A3ED9FD
1544A55091EC4E2B95858E61EDD3D283D44C3BAFE9D93ADF1672BC8C48F3CA9942FA
154580C1F7A645B29762995A8A0FCC5776BC384578EE778AB577C5BB5515DFA3F5E4
15460246B1526B9636D40BFB581603D919EECC4A272C5F50A01A2144C94B7B88EE5C
15479EE0C924560174737903DE67E775663B85B3BEDF0AD31AD80BC52740F262AA2B
15486408FD4809414F3D5E557C5156D67D65345AF50EE0C001699E50BB5427413708
1549BD7B4B2DDFD8AB39C4BC51B52E4A8F8F11B12F3A819C161103DC605A2CE14E89
1550B3CFAE6358AE7F3A0D9191F85A79281EA28FE46D3AA97924F2584E6C5D8ECBC1
1551B060A1F1DA5A7545F0424D5DBA04F8841BFC155F34FDB6ED52C344812252AB2B
1552CFDBDFCAC17120A549A3A95C7A819297AAB29E26E846A88CFB182995078872F1
1553291645462926CF3131015971DBE60C37FFF68C8D9CDCBAD593A2E9B73728108A
155439823C27F553BB9D9DEEF018E8ABA9A40A9985A14D7C7371AC71294C343A63FC
155528A6034FD22EEE3ADF32C4850A79EEB0DC34F83ED180FAC2E2DE9FFFA4AF5B01
1556A97DBE6E4C3426A904AF0186132F57F368AD6C2F8C5712BF0DAD853DBB40277A
1557D1C014A91C3A57402B8460884CA6A7EA218BD8523D3136518084513EE680B87B
15583B15D079E0642A1DE0EEB6EC42CDEEB718AC9AFD54B3B068F847DC345783C5C4
1559A0D9A6A9882DAF64FC81D9424A4A642D3F74ACCC12456F4B8D9B5FFD327536B1
156009EDF4171635607DC51C04926EBD93D73DFB53D3F6377078C30B79337BD09854
1561874313F6981071A9D9C2D766ADE45C8F4421DAD55DF251222F18D3A56CC2E154
15622FDBCF11B4F67FFD9B21D0E2A51AAA943E572412B8A42A45C59D858B2280A657
1563001C6B553823D20045932F8A68ECB1B12807D7CC4E7C604B876BDBF9E3457E2D
1564C66574045AA124F162D6E78DFCE5E4A215180ADB29D4A0C395DD248BF6E701D8
15657D665E1358E3BDFAD2032A2E6823E9907106CCDD62DEAC8810B7624B556E0C91
15660F546F808C39EED8F903FDD05EC11AAD083E07DA3259A2C69E734FD389D04C37
15672D3F01D7EA2D29AC16DB7F224C578845C1FFA9A5DA784D3694BB9C5B32054704
1568593D02B422E5566A04D7A997EF92C1C561B4D50C332C6013FA420F35AC5AE811
1569D773607172D924E950614723F4B8D8F52464DD68BAA97C95A6D8FA7288F9FBD0
157082897A285DE9DFA4253922D39A68CD11960B2DFAE190C0A6144798899BE8D8C9
157183523FECA5B3724597711E758A3A5DEAA7517CA4D8341757C29AD45DE00E589D
157224608C2825F5E1B925750CBF9CE2A58F7A463E4EA7C141396C4EF2A0F130691E
15735BC94CC36DF951EECA4D9BF605BEF624B4A9BB17556D0B79062D36D3C1CD4619
157472DAACE4FA01869795A72318A919E407018DB9F4AD63A004A0049B682A63E230
1575D30643930825DDF7847763934740E3A8B58E75CD088AA7EF3AF5CC31F7D67878
1576F47F76EFC3886869C992E43394E6B2E1DB4CC0B5E1E04EFEEE34542F433D2C62
15773E33B7986C55F9C234B8A95F3333174CCB7F1741D980B8F82C4F167C390CB06B
15787A52B34C95F3B4A478B435E7E940533C0FDFFDF1767A862729A211E2B5308D34
15792DC8BABECCA64CF7C8AB7C93554343006EBF4748793EDF198A2F7AA60A875A97
1580B8FD84E48B35AD43CA50804AB768E29BD7FC1968F82C385B715122F7649A0D1F
158182AA2223C340D1E89E565861184D9B34FF7E22AF4010BFFAEF89A67B80B1A2BB
1582D5930C98CB972EC894FFB2C921A792F9AA4FC21070D4C44A7479944E0F28728E
15834E544F2DCB1EA5ECD5C1C7B9421AEDD568DEF744B83B36BAF43506F25BAD3412
1584B577149B156C584B892B47B2B40CEE80C61F79218870EE4589D38B470CCDBFAE
1585C5A67252A95A283830FD313C4434549EC039E91C06E2F11C1FBA26F02E30E8E1
158652A5471661AE13529D9E8C6E079F50304B77C7CFB749872602E4D847A5727307
1587A6FFBFA53911409850EBCE59B4FD20E207D4D98ED07D4BFE651935FF43581EEC
1588FA7309536381E030E791DFD89B3323AB9F743CB4A1007B7CF8A41F34B7577F79
15893060EBCB1BD9AD5E172C78A0C570EE298E4952FFCA4E522141860368783138FC
1590A1F6A5BF49FFE897E775D974A86C50826924929A400DF2B9EE29B92D7F35ACBC
1591D5ECB92AF91CDB3C70AC369904F233A21BFD7A60F014E2998EADB69705B50D79
159216F281112EEB6477EF777B7E29920065AA4A4E0812B64FD37756B2BB4727730A
15930ED1B4E3AD2C7AE7A15E7A49CFFA1FC623D40A4F83B75DB3106B7730CAB5EE41
15944C965207FA4F33BAB9F5C00CB583B7A644D38A78768ACB8BB93FE6815D8570F7
1595B7017665C3CDBFC2CEC77B6D946C6267823414578D306A9755969EB27EC3C2B6
15965555C2A9790F2D99C2256D373CE656684846467EF28E7AF6E14F0904FB8CA5CE
1597566EF3759C4D4F08EC0B4E3CC8E2BB5D1F6B2B545DFDDBD5337D31DA9407BF32
15981791EE7DFA3DBB777681B45D8091165C1F14FAA57B0CA1EAA03ABFA54C8F0E2D
1599A36D1AD00B065F416CFFCB6B70CD2F2F88EE6003621BE6CF71C15EEB5BFCAA3E
1600561C7C48FE7D227A3A2C957783B490A9FDB7895B757A1AE0A57E26C840584042
1601C1975711610CA9AE489B9F7DD46C34E89F1E6CBA8572CD561738574B7F97ECF3
160224072E37D2E711037F403694FF75FA99F48B15DDA1ECBDD737CB3B0EC553DE2D
16038FADD035540D7561D75D1D5083C685B820722E89FDF81453F10F17B7FF271739
16042218D85605D2BB99F59F9A62200B5FC27327EC9D6B6BEAAAC04FF7DF9C06F4BE
16056E51730A632DB7DF28CD5EE926FB1E81492D9C62F95C1C0106C634C607E80DCF
1606608A45FB7F8009101B03259FEC912B6E1F1CC9DC2999A5A2FB66110D9F799BF3
1607E68F97A90C51800F256D9E8DE009F70C9E20DB0F6ABFB038A0172350425DECF8
1608829A0A94E62DF78980A876C2074BDCF7688FDB44C8DFED89F4F10EADE5300E14
160978B83EBDF2918FC60822567A42C9CE64A58CDE09DB694993F1BB2E2CAF5D6EF6
1610127665BD656D9B9EFA5B1373649895C7BE8591F244D58BBC3D8F4E8F8B51FF75
16116CAE764A1C2D7856C0AC1915481D6E33A182F353AE0403DDBD564346485D152C
1612FDB7CD078A18A69411858CB87798F8367F6B3D3F70D63793852A34204FAAFFF3
1613A5C84A677E00D60F6D39C0D12472CD975C4248F81F71E311DFCFFBD88FAD0A16
1614A34D43106A098F26DA9D05044B0D77AF3931609DEB4454D9A6ED4493D6999686
161572930F2F59A2C64D31814424F7EDABFE1B0458AA75D6FA71E961C43E8DAE1597
1616C4428D3ED2CEBE6DC2612D5619B6BEE2625C6484067F7E540E4F5B1B51C2112F
161779C8AD48AB77D0F75C2A0E70F812A2885297E0E9CF5403C44C2CFF217797E5E3
1618E579FFFB5E5D043E77355E7CF54FE0757086AA8A5828EC019C73BE0F18EDAFED
161966EC6C07016EE3029C6D82A4E0890EF124B9B63E75209B66056013CD5FA4F5C3
1620707E071B5AE2B5672668C1D5FAB8D04DE107DB65BC9FAFBD279221B338055CFF
16218A82EA9DA8896B455454E010DF7FC91EF88791DE354014F699530D82A71D5732
1622719912282288EBB2E6253E73015978423079FBF9193B008EDBF3A89D40FADFF9
16237A070933A45C6D1FFA13529B0012B38B90BF13792B63804FE7338716418FA23E
162482761FE397B8B594FB1C2E3C5FE9586B1E09F520FA793FFB23040C005FDA207F
162501633BFAA4E22541E869C65093BF7537578C19DF9E716542CB9C695D3CB81E52
162665D0EDAABE6473207807CBE19B7C84F5BC4B582D922402CFC1ECC7FB4F3CF17F
1627C2553A58BA253B2A04CB213258B3B549F951D2A1E3A95B92AE2D2A3E25A3760E
162886F712548556136B6DC3DBF0E3CE0EF50EA0F5E5A7D995B4ADB5C6BBE7EE36DC
1629F1D2A554C07EAB5985CE42D72B58632246721F41EF9ACED11D8BD1D2592BA6BB
163025ED1D24F8B9361ED11CD22B57D80E0042E5A2D660C830588615DC05786BB5F6
1631FF8795F255FA1CA6466A61CA1506163540F8AD3BB3715BB7BDA0195B06E06B21
1632DADAD9AD79E519DDE324F69A05C46A0D78A2CBB09550B4C48CFDE049001DA325
163334458BC9F91D05B7F86166B64B0A667E6C782F10F09599EE27867BFFDE0997AB
16346DFD1377C887F375AA8D764ABBCC5AF136E065360D84A011045E334AE573FDF5
163534C3EABE3BAB092726F676F6D0BAE7567BC729915581AECEA0EC89C03142A1C3
1636BA1B7BABAB636CC1E2C05A3B8B7CBADA264F0556C59F9F152BA31FECAB09D64A
1637930F3F5465E7A6F333232F369DFD1588B90F86B55FE6B37A0D430E274E3F3237
16385E8C7E12034F61628056361FBC78FB6D8ECCC4FECD2C0E3F584A200A563D6480
16393D5B9061AE5B771B7F92AA45495DEC344F91FE266FF5CE66889D6E570C5AB6CB
16406FD1FDC7F54D4DA12641E497322BFE0A315AA1DE1B0E70FDABD7F7284496A587
1641AF509F63D0E9E8C9A00BF93048BD0EE316908106D4660AD48758770CAD43F619
164278C5E88485B33EC6EFD15AC913F184ED540D32F7C01E574D2A2E7F27F19C9D45
16435F47C948BD617724BB10F4588F7B8A0B7FF537B298D7E8C5321268C12A23A06B
164449B07E9E87F35A674F2D5E97FE933E63474594FD8C3FA82E1A6874FD247EB1E4
1645DE2B99FBA5CDF8D563531F34160582B911F78F6C6C3F925B41615B4322C335AF
1646CADA58DB517C3A26BBBD18DF8B2C7F2DF74515595696A6D6A1EC9B113C3CC8FA
1647E6AEBEC960DA4D
16480000000000000000000000000000000000000000000000000000000000000000
16490000000000000000000000000000000000000000000000000000000000000000
16500000000000000000000000000000000000000000000000000000000000000000
16510000000000000000000000000000000000000000000000000000000000000000
16520000000000000000000000000000000000000000000000000000000000000000
16530000000000000000000000000000000000000000000000000000000000000000
16540000000000000000000000000000000000000000000000000000000000000000
16550000000000000000000000000000000000000000000000000000000000000000
1656cleartomark
1657%%EndFont
1658%%BeginFont: CMTI10
1659%!PS-AdobeFont-1.1: CMTI10 1.00B
1660%%CreationDate: 1992 Feb 19 19:56:16
1661% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
166211 dict begin
1663/FontInfo 7 dict dup begin
1664/version (1.00B) readonly def
1665/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1666/FullName (CMTI10) readonly def
1667/FamilyName (Computer Modern) readonly def
1668/Weight (Medium) readonly def
1669/ItalicAngle -14.04 def
1670/isFixedPitch false def
1671end readonly def
1672/FontName /CMTI10 def
1673/PaintType 0 def
1674/FontType 1 def
1675/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1676/Encoding 256 array
16770 1 255 {1 index exch /.notdef put} for
1678dup 0 /.notdef put
1679readonly def
1680/FontBBox{-163 -250 1146 969}readonly def
1681/UniqueID 5000828 def
1682currentdict end
1683currentfile eexec
1684D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
16853B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
1686532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
1687B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
1688986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
1689D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
16909E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
169121EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
169206ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
169355B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
1694B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
16950B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
16961485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
16977E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
16987A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
1699356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
170019928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
1701C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
1702244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
1703AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
17045C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC
1705D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D
1706993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363
17072DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B
1708E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3
1709309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513
1710F42EDDCF39AE522A1DC2D80B2772B05DA60F3DC15A815A6BAFEDC399C7956E75
17113851CB3588E22936FBFB63A58300298B11C45D82385C083D07AF133BB1BC941A
1712FDD9F34D5E0B8087EF2A58C54D8AB7580EE3ED58AEB83B72CB9028F472AA0C3D
17135C0DD07F3D20112C51366AF49C461175B32F43B33E558E7595CDB39F19A8B2D0
1714FDA3CC3A8318A933B24E87EDDEF5E7412BE9549342DA85A525069325D0249001
1715658803AB814B49D0EC4DDE1F83683BD817FAFCFA53893D1A325A4C1E1DBAEEB2
171650684E05300AFD3858A5D2AB819201A05B39F1A395E368775ED90CEF5359B2BE
1717709CE0B7625E9894C01B0BDFEE1F7C228F5298A54AC32D1F29B003E56B90B8B5
17188D3D416E5E034E36D9C5FC0B33B7AA0D46F3A3F929B91CADF41983B1DAF64E06
17197D9A839199E9B29FF73091D5859E438DFF9FB5A308F58C1A1F890D3AC300547C
17204DAC0954EDBEF4BCB076075C2DB7288BE625C7E70D7AB9F56185E36057B340D4
172181F9ED7BC52246BA2F06454F40CFC7F79F5B36076477F20A7C4A3F53F0333375
172203CABA40A2F11A44D956664D5CC49DA2129A4B4FFE712D06E198B2EAFC5CA719
17236042B899EF80994675A672A487F937D6EB6B8A371BB029DA6C51850357CC2469
17243413BA42D8EE2F962D06C27026624CE315059ADC53B88E0B15504539CC7CF0A0
1725AACD03E59A0C09E4CB4A48215232AC6AEA1864C10CDDFC4A52BB807BF1CFE3C4
1726F244B25CF45F28E91D2E9A34E94019F07CE4EFFF74E915911418A44309943F37
172795FAB82A03978FC03241523C12148E0AA5E6BE47F40A530094C20DABE315C805
1728C37D2A47872D2DCD74F86B1296FD3E63F623D62F287294B233AD7AE9E3339324
172956FD9C12BD744F8C975E09B23027E7B93DDC1BB4E5C861B4FDCFA55F7DE1588C
173039F854290699537BAA26A4515D6E9179F4C8A85C465E139FFFF8993D99A231A1
1731E6268E344257B57D90164869D55E3AFE602EF4775B2DBAF35EBD883C41CE7B86
1732363F85E5ADB2DA4D3BBD8D05F1FEC0DB8BA7E246FDBAA38E1B90566151F09414
1733440A1529A490C9D637C593964DB55418F6F7498B033C31D14BC73FB14074F8F1
17343183ABC0F7D918A5FA6C69FDF224EE624563F1060FB3D4EAE368B27EA2AE48F9
173534705310BFAA91BA2E6D6B4902700E0E4EC27CBD3354B67F10DDBAAA3368B8D7
17369E011B9C86866F87F48C639C1B50952C5B6B26378F908A2268860CD56AF49242
1737CD34C73B198182B9F5D6BF99A8DC22C28AB65E4664B54D8EF1E2BB3F6222BAFE
17385265EFCC88CC66531CEEC3D7B94AC84E05B3E0E046A9D8BF2E39349756247AED
1739231673F429496ABC15D3B1DC3DD9557DAC1C27EA5E1035ECEDCC62332A283969
1740C3188D40F5840741145683F42DEC1FFE60CDD54AA260E67FF2BC2E4E2AEDAE6A
174188B079AE236502D14EF927E0D6FC1DA1881F8BFBCA13AD130DFF5078B22EFF4B
17420B729F5A755225740219763D93D2B5E5CDA09D5F35DF1AA30CC4AEA04AEB54D4
174388FF721C4279DCA78404EA2D4B74A795FA7F947E19AA1190D7654DEA72849860
1744D037E9F266DBC519B653E544451715E451609F7DC711915E8E399E3CCEB9B7FD
1745456EBD7BB7A3850CD0274DDAC7B1F826EDAE7D3CE321132AF5D784B0B316C8D6
174692C5A49EB7A0D50C27B87DAD03CCEF88060247245F56696C902895DABBCDB8FE
1747A221FEB665AC445CF5BDB9B3EC3BAF93AF130CFA14A11612BED1DDC2A43983AE
1748156ADF2C7241CFE077D17979B07D2A58B321183E510028C17D00EC865C88ABEF
1749EFE9A9533FB783A2C025783B32AC626324346602620FAFCB79D601F7B6EE6A3B
1750F64A382A513A14EECA6A9E549DF25CA052F569F1D0D4ED16EA62AB1D795D1B83
17512AAE1F25A900219C9F59BB050793F3957BCA0B1387947E2DD6A677E3E20A4EA9
17524BE2DEA256380883D63FA3A14E05FA4C39A526AADFBB002C67A702D9012BC7F4
1753815C60D4AF4314478C04AFA045E1D85A98CDCCD70E51F86BBCD0F41439684B5E
17543C3FE160156B025CCEA37E07927F5603D2D9BCE82ED8E059B48C95EAB441F87D
1755447E3C5AF899BC6D56EB31F1BF981D9DB971A9AD58B456CF535F938C92B28ADD
1756CE0C5C18FD1E3CD6C4AC70616A14498B3B9853F6F9DA475FF7237963501519AC
175725B38E930FBF90453C2F117663E5DB558193923F71CDCA42F06A38CEF92C4FF0
175866BF892EFA60B911F39E9761A4D1A97D620ED0A6E757EA04955D518DBF58733B
1759BFA4E9610B2FE1E6ECCA6D7C55C0447E4CE1B1AE7F9FCA29F688A0A3CB0E536D
1760F5229C4BCFA1DC2FDC50F6D86C56FD4324B2780E78EB366AA4C73C7CB55B1517
17617F0403ECFB63DAC29545B6059CD62094B6DA90931FE5CEED54455C8A2A63D975
17622044DE7976F71E1FB76B57BF4FDB9A0EC240DBCC32B821B7037858F67384DC3F
17639B39D562FA5BB389DB3AD821DC32C3C577EC93EAAA4B3931517443BD01EF28B7
176484CD44D97CBF1206419C3411A9DFE965169D73BCC2E3DF9770E0016BE398C974
1765702D5A95A72A9CA14372D1D9398ED34C18A4823F305FF06198415AA0B6BDF369
17666058179F14431779CADEBC880B7D5F758D325196E1616826884EC43865845969
17673153A56E4658F15192544AC081D32EFFC8181EE210D6B2EB818D52FB2B2315DD
17680EA866874CF12ED187CFC0262EC785A4AEAF0E67B646B29DA13B48C4BC8098B7
1769BD82D761443AC5C087FA8C0255B1A59706F7312692BA3522224043E49DF7BAC5
17704E91D64361B8AB7CEEBE3298795D15D8B83650A302DE9B938E870DB9478230FA
177170287E96A4F9BC7FF1F0DE2CC55A6F7AB7418C241724F30127EF03A24CC22EAA
177213AFC12CCF270FC7DED31D5E6C458F634F193E7435F964D1CC02368B799633A9
177396FEE12CB2141BE5105C38C41786C14C5BC39C36DA27EB030D41EAA7D8928575
17747895F93B613BB52322748EF2D6A1643BB8AE0EBE7293199BFA03FCF3D33910A5
1775E2801AD1D3E7D527E2C1D1FE12F9A4C15B1FEC78560682AC4816B15C0A9CCBDA
177609A4995AE97250B0C22CA71289CC4000DB546BCECC87281C26CE2906FDF30D49
17773A24240F4AEC38F453E70CF5D81C84B9059183E9A7988296E32DBA694B894DA9
17783AAD95E10F455732E2CD8711E4C63C987FF27D58FD6BAD9EAAC8704132EDFC7D
1779B0104582CB273647CC0393FF7E24C6E9300442E9F98FA219077C0476213B47F8
17801876C91575460AD3EF8DDB948C1FA72E1B068D32B5D03A6F9C7EB3A4DE279AA6
178108BB57446E6A4927F5A7DA618B5CF8C11A71B7561EB7DE1C3A6EEE772F0C1D80
17827EF41EA560380C2FB7287535D26A9571087B04515B2FF949124CCA64E5EB228F
17830B667E7BBD409E17B00050A3FA4B03387E2A47755493FC50C4EE1888938A3A0B
1784D3A8C624E5259B0AB04669FACE173C28C50F1BD5E24075B29B09BECBE11EA542
1785B0ACB8176E76E2CA847DD32E13ABD3BBC006B7C183C4DBAFC91BF6D4B9143368
1786C61D57B193BDE95883FDF52685872EEA7C7F4FF23139212B0DD9119935E29303
1787A81B1583B4D7C46BAA2358C7BA7A7C46F16979ED4B660D38EC761FD62F353D3B
17885E2C97C969C045488631D2E3857FDCDD6E0705F00FB1830456B04CEFBF9208EF
1789C505C0913F63213A3EA5B8178E7418B9A50F84D4B184C26284BB1BA01C63C009
1790CB15C2733D73AF6F17E3C2559ADC0F2065266620885A3134C8A5A2A538E5A194
1791B3413C0356C7D6A149C0171EC54C4AECCD532E5FCF954941885D9303443396A6
1792C75D19C97A689B70049ED46FE136EAAC302DB81FA381D7B9C8025828E069320D
179358DB5D4CAAAE89E139F30138D7FCDD4EAF9FFCEE630809906D116C9B901D6002
1794B8FBFC0DE9471FCD90EC31F53BD7FC5A0C4ACC3D2FA52D0A71A3B5B938879ABC
1795947C7865F9B2D0D5F93179199D450B1A602950CA1E0D514624DAD715D180E8C4
179681D5FA6DAEA48493524013557FD2CFF4BD3A0014E39AE2AE23A962A7E47B5F7D
1797DDC0D673143B9F39F01C48F7DA0B62C474739996C398E2976080432A4DB4EFE0
17980D22E51589DE3BC0A45219D4B1FE6734AB2A32FEFD2FBBD916ECE7DBBD7D222B
17993CBFF86DB9FCE9D8F77C53FAD45B5B73C2A12D23B6F537B1B740F34130AAEB0B
1800601F27820FDF3229AA48ECBC1A55E5D2B1B12C2D6E1D7FEE375556E4CD2ED3B8
1801A3063DB1D35A0049B61C3DF74BEBE41D4ACC3513118468206C2EB44840822C78
1802437AB0117A8ABF4EFB1E5009E93D86C334E11BE316EDDBD70C7E53570B710BC5
18036A6969EEBE9ED7A608AE644887566351EE2D36147A28168A00371B57F85B091B
1804A97853E1395A656969BE35D6DBD7F53B646F3C44A7BBB815BBD8EFDF8D574DBA
1805352A72F51CEE56A3CD3EBEF7631AB1C749166D3DCEAAFB60CE20BD1E6CEA0BCC
1806D34E555044ACA014DB1230ACD4883B21FD23DA08AC6386E2E528AA1901F36A5E
1807D3FCFE57C958480637AC1A1ED92857889E59E3A7A798E24A6201CC507425602F
1808CB6A78CAE783F490D39DBDB8EE70E0E9AB2D05682AF0FC3BAB79440DD9068DA3
18096B7DA20208B68C6A8351EA6A47F3741E34CB1F9006488014D57763171140AD16
18100BA5694C5C5AFE42956E320943F1FBC765D1431F877BB87B062A715B2673DE84
1811EAA1094770671ADC894C6E2AF27565FC9917E444033B74D15E83D7CB9D9E3F45
1812409615110663EE1E31605FC7B9612981D1795893229838B2FA84AC2F7EEAD09A
1813DC3CECE321E114B70F668F32DAC98CB14E9F2B77DFDAC45E3CD6A20B595BEAC5
18146390BCDA645BA73A7742B1A6DB2814631772A7E927553EB87117326D69E23D1D
18158D3961B9CBC118D275B9E28EAAD53C1A264A9DEB5E0F5BF9BE3C271838CDD4CC
1816CFE8FEE1E507451422DC71EAB40EB069CD2F79E0275F58E91484634572410F09
18177D57E058FD91DECC31F6ED8D5B129791BF21E7107EDCD456438F7A6743B32BEE
1818F23635B2203AB218A7CE03E0E60DF425F6FB20E2C2272ED795CD33495157087E
18192125353B41E36559D63398FA3E323BC59EB89F0AAFBCFC562F3C961D75753DFE
182041A0309A03DA54E92CBC9104041A2881E9387C6E78881699E48AC6D271B42EB5
18210C471F55BFE6F438977D35F53A7959A6FFA6538FBFEF3ECD9FFCD7948D9D2A33
18220C29D8B57ED5F874B161126B0F31DFC02691045023DD052CBA42CD99B0DD1610
182352436FA4BC46D061819796925E1817BDD59199611C2A7EEDF913DA06ECA19D4A
1824FBA3FA209D643D0F6B2030EA847947D2D22E2EF727CA1633D465D2968B52D9C9
1825FDAF2CF6DF5CA4B9535997B6DFDA5E949248D31BFA72F3D84574683B116CA34C
1826D1C22939130FD3D946C41CEE5A2DC90717F5CCB8357CE318B96818245C11363A
1827E56ABC568F81AD4D8A1DB74183467BE193558A2019B41DF574BB7798886AB861
18284EA816619E5BDBE29403DE2E454315F57235F38DCF3A13FE10A3C448D5E982C7
1829D0F2D3B51582E7CCCDEB188086249D24E5E132D4460B3D1CF9B86953AB83904A
1830459352E5B0C69385159E015E627DDD189AC6D95564D5FD92D70C3707B86D1DE5
183176939011C0B27925D3BF9CAF369FB63C0E5FD5318A142E053BF4950EE6A9EC27
1832A4818FD460045FBB75D159B53ABBBF0C5F70B4FC6E7E055D0B9C58E30DF74392
18334C943155D9BA7EDE5B41F031E32839CC30198B1AF8F8BEF67C852D667871D2BC
1834E0EF1446C7D8DD0E5FDB93977EE554848BB517A75C11F10727949DC4F8BAFC4E
18358689BB9F8162ECDA9805C9953A18234E229B7EDE1475B7F666DFD9E6D30215B4
1836D1F0F0C60F390B08EDE8B63AEE4BBF357A2888596465593CC7D8186D7CBF4BA2
183706F522D235FFF4A791BC5E072B14A1DD0C24D04B6E9AACB1F581177FDFA9E809
1838462B777B06DF04E1605FC276AE44AD3FF4C613F7715D515704C7C4F4E7B8AFCD
1839A84D0E1BFD0CE39C8D715FFD6FE7BBE814A5F77F3B074EE48633BDF0A57D06B9
1840D8C9DA1B50BB1E5FD695300F12AF76631D88B8C89D9BC90D3D631DAFC67E2B6A
1841E70E15485B7A094DBDBE19121ADC63E4127CC98B7E969F25438F031C677F89CD
184282C6BE113513473CBA1D44360B5F367E95805EC97AF1935358A9BD0FF45BF918
18431E642EF3C3DC501F1685D397A1170CB41A33E331B67F10717018D4DC896E00CD
1844F725BD161A9EC5E13ED68B35B77CFE3E730527B898E9E4B73A6DB642BAB6A022
18450293BC530BDFD559032F2ECDDCFA523A03603AF810F858D5156620C7FE7F5120
1846D74D3D7EC25037B12598C8C508E4725592BFF721FEED63434F7266071A625B7B
184713EE5C54A45F1F42ADE22B0592B5C7FE547EBD55B4F677727AA3D61E17677722
184893E0465A40D7604B7DC99B0D3A4242158FD0D52DD933410F30EF816ED05BB248
1849DC80164ADE173D6CBA2995C46CAF831D3201AEA8064B4CA43117E083FA92BC26
1850C09B8B51BC9BE0FBFB432B73C139366FD118972D0B0EDBF2FE02608704EB391C
1851CDDB25622A9811523D8C0EC4E6EEC07F187D2E00FE6F2E4FE100C34CBDB63F63
18526D54A95BB6CA931712FC29A4F6F0A8FC38EF0F9470125D3A4EF68F5DF681CFA6
1853871D131099932DB7B7BE9DF10FE21C24376E27069505DD64A9DADC8D31D0BD6E
1854DDC9EED39AF1D00F64B319D99D8A9652A5347947D479541EC5E64CFC0C3E03E1
18553BFD28224C438EAD0D45E6E1F0461B2835137874949B458360A224192B8854C0
1856CDF469A08CFFA5535674110F21A11FB285CC5981840C7171A2E45DA22CE03499
18574E75C3A75D11E8E303C5B7D6849E4971869E01E7820F7FB00A92FDA606F2CB95
1858882E3E559B8B3AC16AD86494F278366E3E3E31496FE71942F7558FB164AEF5AC
185943E378A14B0E6142B8D4CB7B5D97EA641C1D22B1C1946A4A57C8BC7EC2CB9729
186073082058565620283CCEB93850EEDE547A62E59858D54B92BDE5C38E47DD4917
1861A49E3E607C9B381BAD1C51227E52AC8519D81A8CB04F3CBCCB5F1BF6D46B0357
186271711511993AA816AE2007682066C75A2CCE8A99C7154B6BBAD263A7F73E52A9
1863FE03D775D084A666940E45F6CCA000E13102F4C0622C19E1D7E07776C7E90CCA
18642BAB51B7D384685B0E42B6D49E53A8A37CA09EE69C8297C07D052A7BFD8C737F
1865F9A2155A1B38128AC01DBF58BF8C9EB09025DDEB3CEBCCE6FAC686A613180428
1866C101825D16EE93B9541E80F1A21D225BEC634382FAD011DE4EC67707D1E8D8F5
1867AB3C8652692C90A808AFF1BFD3DFB009CC2650473F25C2192AE9382306C3A10E
1868B50CB84A75D8656DA386B2342D8590BDB783203C6D5F5724961F3E55D4669A5B
1869F0DEF03A89F13577832AA905473AA658D704F5C1E64F1F98C511595AB7B4B17E
187051112CD6E2E34655F13A4B409A7E223CE198FD40D538F3D91B0D86F06E69D580
187104AB7269D9FDD2A15B6727298D4B189483F258152958243B78BEE16251840642
18723A2A9A34A776C2D1DA492ADA5C8D4C1BE4924F01ACDA2E2B75A6724D424C07B0
1873E12EECD9E6A4911790F3D64F4D707C1B7B4349BC807C52A2CC10A3031768112F
18741CCC49EB5CA9C33BC2952E2853C836CC24B332B456D6F6488D9500C1A3425369
187519809EB4323C8C1197BCD52BFA3985B1839BD55996C10E86EF9051B31AB89B2F
1876C39514E3E90A575763EFFBBD35D93B28CEA0248EFB9EE6CF5A52D3E1F4F6FFBA
1877E0EB9E1869B3AAB0F7CAEEED63C24608D818130D2904933141CE621F0FFDDCBD
1878F7EE5392994CA9682B7590C035343C0856E57699E46840948FAC929D344439C0
1879C3DAEA4F151625BDFFD943BFD123049B088A51EC09C962E2626161ACF302A907
188051670F63BA2E61C4F63482144D274170DB1F8731ABE33555C4D983DDF3BD4060
188193316A4744D1701F6B2F70E76DF3CB838A77D51BB995005455196F69B1E4F2EB
18823D8B593C6F6730214394491CDA9ED8FB9368C68F2B3787C70FF692A0B8D590AF
188371B3B936C4CB1FAD337568167DE33799BAA50441117C68F33F6284768E950A26
188479DABEC4CA2F2A91625E9A8BD301FCE950E1081ECC5388F6EE527DE149EE3FEE
1885697DD4B9323E6ACD76E2FD18189656A7440AC105E7934E44BD9DC10A9CB1E090
18867B81703984D91144CF27498B9449E03F60DC49E7540AC1A08A72DCD237CD03E8
18878BF47869AE794CBFD36D765121AE3ACB690FEBF1D44A3A04EF84A1B189491ED9
188873635828DF7EE9CB8B124E9279508D7DBDB9AEB3F4A73E9D490081B797D3FB4C
1889744755D7EA3F56A81B7A73DEF33622D0C826347132137A3EB23F9FF0B7911B7D
1890664CC46C85112E1C30427B6201D424642CB089DED650B64F713A46D1150FD193
18917E790C5D7BF95D70F6CDE0795C0865BAC0754BAC
18920000000000000000000000000000000000000000000000000000000000000000
18930000000000000000000000000000000000000000000000000000000000000000
18940000000000000000000000000000000000000000000000000000000000000000
18950000000000000000000000000000000000000000000000000000000000000000
18960000000000000000000000000000000000000000000000000000000000000000
18970000000000000000000000000000000000000000000000000000000000000000
18980000000000000000000000000000000000000000000000000000000000000000
18990000000000000000000000000000000000000000000000000000000000000000
1900cleartomark
1901%%EndFont
1902%%BeginFont: CMR10
1903%!PS-AdobeFont-1.1: CMR10 1.00B
1904%%CreationDate: 1992 Feb 19 19:54:52
1905% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
190611 dict begin
1907/FontInfo 7 dict dup begin
1908/version (1.00B) readonly def
1909/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
1910/FullName (CMR10) readonly def
1911/FamilyName (Computer Modern) readonly def
1912/Weight (Medium) readonly def
1913/ItalicAngle 0 def
1914/isFixedPitch false def
1915end readonly def
1916/FontName /CMR10 def
1917/PaintType 0 def
1918/FontType 1 def
1919/FontMatrix [0.001 0 0 0.001 0 0] readonly def
1920/Encoding 256 array
19210 1 255 {1 index exch /.notdef put} for
1922dup 0 /.notdef put
1923readonly def
1924/FontBBox{-251 -250 1009 969}readonly def
1925/UniqueID 5000793 def
1926currentdict end
1927currentfile eexec
1928D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
1929016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
19309098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
1931D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
1932469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
19332BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
193487100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
1935D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
193692A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
1937295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
1938409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
19394BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
19402512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
19410A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
1942B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
194324EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
194443C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
1945D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
19465A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
194796498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
19487D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
19490F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
1950B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
1951AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
195297BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
1953FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5
195420759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4
19550A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F90A32C4175B6BFB279
1956024EAE1B04D721A6C54FD62484F8949B2CE9B87D9CEE04DFF82BF14931B3CA03
1957AA5F701B6F80BBCDF2C427C40A51597F0B1BFA25EDD7CE0EAF2EC676BF0059B7
195815DD5462BA30DE78A08DD533DC0E8D85F9DAFC5FD842F417265427E0F1B71834
1959D2BF6EFAC3CCC40D3EF3B2E2080F148441BA45E5D0C0F7D8416730AF4BE4FC93
19601E965594E0364F0D4F1EC48004CEBDDAFB1F0EE0A8222358EAC0F62E6BFA3C9F
196146875EB4C999219B91E6147A49A668505667030CDF3495682B79C0F614AAEE68
1962D976EFCDCB04127C0D7325A2211E49CD316935A0B472D1F9FFC68F7FBEBC7269
196379DE858914A95826CB2A8F0F17773C8DCBF6481D93E896938B3F701C324E2D20
19642779390AFACBDC4FBA56804BF82120B02F3109D4088F3E3123018D1A92329EA8
1965C65D312E8E2B232822D6FC4A0D290482E9260ECA5BA52DA0E5BF9C1FDF0F5CC4
1966E32D947827F5B33620D8049D94ACEE4E1B49434B271D22B53AEE1DCCC9FA7ABD
1967AED2F04509C21E85600DCB71F15A6012F3BEBA9D5822E3172F75FBB248443231
196805E93B2378F20710019695188C430E6213CBA49C02D1678752CBB97A140C81DB
1969516E544E04813437A0B89433BF269241C0DA67E5BEC040A958B14BB3D7821513
197050B1FB6FDA447AB76E6E30888495190D55D169DA7DABDFDBB204B3CB8F686C9B
19715B8EF8F6175FA09D2DE49226CEBF1ED210161BAFBF77FBC6CEFC781A45BB78D8
19729012CFD0840925D807EB0C84FAFA0C67871D1A84CC512CBC8FA3F311DE5F2197
1973C677D1D9EB11C1607C8F0CE4EC25AE26A57EF97E1E0BBC6B34D1F24F412C7101
19742D5F0D1131E5B125D4BA2C0ABC5DFB5F6C116F48E9E6922F39CE77E224C48FBC
19750AA43F0D960075B602B477832BB6DBF76B4EEE3056F3C4AC6E87A653EF8443B7
1976D4E4EC849CC8F03370351FA1556A83E6909D26BD2A0FDDDFC19CB53346A86CAB
197794F78B858108FD3EE2C337D4CA8568E636A2346D0B1AFB79F0AF65F7263CC690
1978F9E578EC304488F20C14B6409E027626B96C3367BA5D7FEED64C276781A7C27B
19792C941A1C4ED4885785B96F9471A4AFCF263004568F127F4AC8C07EF3377DE265
198002817FB2E7A9BCA1F6164C53B763E1B34DA404F10AA5FF67D02C889C88C128A8
198152A758D11EBE416FD284EE66712B4A6F4B7EA8705E0C876C7AEEC6F836B64365
1982BEA5B7A817F245BF6E52F39629BE5DD93B641B22597223BD913BF038C67CF4E8
1983A26F6158A53C31FF2D8E47E287217FD1FE098AA8B2CDF62C5EEB8265C7F2726F
1984863FB49AF23B5F2C9386735F0B27F19BC62D9532F680F1EF7DEB12E966618014
1985C0C3F6AD7B57B980E0EF3DABE5171FE3C86769E2B82CBFDE35CF404141F834E4
19865BC6BBD58D67CDD3187B1C219810AFE6B30BF3BAC3D518C2EA54502F7CA5C5A3
1987D1D88A04BF524D9A5C71911E90918329C463C29C7AB59DE1A9C08C2A4946EE3B
198814B9E4FAF86E02BBDF8EBA05D4FFA3CCE53B11F6262CAEBC3D2A9DB7885A4B5F
1989D42334FCAE8AE374392D54B221679F6FCF3CC508019499357D2B78D7BAAF2123
19901DAE3BB569189B1B1AAB67D2E368D0590A1B2BD8832B63737493792E00E2D849
1991F2060DD889BB55F92C0DAB6D1861376033627B6D0CB02BE9CC1580FD4B7E1E48
19920C42D123DB1522B1F5561D2023F13A2683326F2DA794EAC149A91D7E438BD02B
199334A7339EDA6D2A5C05855D09C16C38FD4CE138C9734834757D52F0601C22B069
19943E0A81CE3FA71464EC90D731077E8A1102D1D0094BE3451718873A3BF973616E
1995152F69394D9D9E64E9EFC4412C01B047359638C5E1237A95F5BDAF862CAAD4F1
1996D1DC225CF4D3FFB0CA9460AFCF9C7249C31C7B04431B69EC0927AFFF0A25FB87
19978C894210E5EB2A1A8DC4629FEAD9A1FCC2DB8ADFB9BA5735ABA437AF0CBE081A
19987EB553FB024AE3136C503A759B882A6009EAEF58AA283A46B7AF49326A77EB5D
1999D7B83FDD76533009CC24D294A212DDF803C7561B8A0B4EC8FD87C4C80FBA466D
2000EAD6DE3553EC8F72CBE9DA6FD1E9F1956723D5B68CAF5BBBB7244499AA93C4B1
2001FB6DC98CDFB4678BB3224D37B7CCD751AB263563CF4C0370A0A3449F961D714D
200214A443FD7A21B8901A79810B803F98316DC6268203886988FD6C6649E989430E
200337B404A28B0C31141455B9563555134511A96F3CE41C49E1086A5BA7B78A026E
20047024E5117CD0AEB9DC2B97A677D2AC897B155AFA2D66F4C1DF7044D608FBBBCF
2005C265DF5E73081E606FE3B64920A5FCE11D26F31E79672964C2D20213AEB5C8C4
200604EA1AA70F597E8C3C3E8BF9EE9B54B72439D6C1CEF4DD4017622DA581B65AE4
20079DE90BE8A4F0606D7D91F997D4F17A9B94BB0E40C7B09DA9C7AD65E3E1DE16C9
2008E8E47B151DDCFC783D9BCCF5479000AD6801ACF1E8392EFF024B095A0E0DBAD2
2009505107529AC5B567F61A3718FD69AC86424F78A4F8FDA7A48B1B096CEA07AE06
20100C32A50E90B5624F2A3079150B3AF1A2C35E5A67BB3DE710DF17B15C168A2E9A
2011AE16F9BE3B8DDD622643AC7DA39E62F6CE520CEEB78F1C6FDDB127F5AEE9CBCC
201235FFED0AA27E1F299767841BF4AF52A12E968EFF9BFCB0429E7F4C65CB3CBB2D
20130833FC24E98FCE42B1372D97645673AFA8329257142D4D86322443AEDA45FAA3
2014EE219C91E60D2DD43C263308DC809D78E850C06A0E67D32A1BA0978E5389F15A
20158AD49374549F1A1B7517D3132E5DBE3912B3F5238740C1151FCCCD00E5FB8E20
2016D79A04E85CD41644319B363A8221FD0EE314DFA3B60F3274D7627633FCE5B55B
2017DE72658825C439FF70D3E24C5E8BB458D89F841B1522258AAE5A241410E4C8B6
2018687608817B558640378E2F9058AF856B429E4978C69727837B551D1A21D81A0A
20195D50C4DB81399A56841027A9D6CF7BE5A2BB3C3659772D285882AEAD601D4AF5
2020BE392A7FB21F2C3EACF2E4FA0D8F02A52F138BFDC93B6E0C41E5B081E0BD23F0
2021BDC102D5443EEEDF1F697487C399D5C0A0E1A3541CF14F48A347553BB3DAAA7A
2022E8E5DED825699DE2F3938065C0A954CDF57735C94A7A1A14B482899781D7B30E
2023E35A7FF7B98691EE544C1CB064974016876EC1E4C75F99109F6A22344073392B
20243A412EAB874B54993C3C7C87EFD4F119C88056FD1FBC37900C97FE389C214587
20255D6D0E2F3EC1D137599AA39C1626E799F17381E2AFFA608B1F3F3C9D01DC075E
2026EF8C534F1F76E1ECF35F42755E0246732C1A9010F81668E52F873A293F881AA2
2027B7C7952979A46165D6D1C8C32806341859432A73BD869A2A2E76FB7A6AEAEBAA
2028EBFB36ABDBAE36658722210889E3C8DCDEB7DE1B58CC13DBCEFCBB56A5F95384
20291EC999CA224D40B5636AFB990156A43FF21FA0D83B4B308FA60073B1D9580FE1
2030760BC85C1573956215D61A2207C860DE9DD87D7D6C02A8354A3D2D8BA972B30F
2031F6AAB27AA9D5B4B5897F9DA3FC023123F1C431519979505CC674CA70B53CF7DC
20320A0BFEB958457318D412ADDB5456B1B5C68744A45F0C2846E21DA5B83655660D
2033E1CC1FDB9E65E95E33F656CC21C00B9AD45E981ECD8B6EB508FD8417946F0172
203499A2E3E9E67BA5C5588A14318A8FF29F18D22305F494554D01BBAE6E18319245
2035C834AB17419902FDC3EF61384572B0A1ED82D2805703B27D79C7A2DA61EBD532
20360ECAFA9EE9B82E8DCAFB205BC38987DBBACDA7A3D7AEDB00C8CD015CB9232CAA
2037D4014E39E1A8B8C2E45133FF4B2E387B9C8167FBF9151B8446E64996F8E33B39
2038441FF5CBC6AF2E5F9E1937BDD4D5E5FD3DB35EBF103CF20CE8CD12569D84660B
20395E09615E9DDE00EE86CEDE7330C92252D2BBED5BB8A33710F658DA8BCA2A4985
204034EFFF42EC9ACE48422EA81A1D618B6BE2FE58E1F447341C12AA05F94F318494
2041BFD4C3A1511483E799D818C4B4AB0C0F29279B0818368F7E1923635DDB0899AA
2042C76BCB74F0A2C622D82BDEFF7D18D15A9FA07F32169A3146F970D7EB5A66945B
2043AD81ECA863CF0124EFA2637F842766A5AD6D6A19A8CB1E4EEA161DEC823781E5
204457AE214E0E57AE6D5A9FEBB9FDA70DFF528DA3A8570C8AD45B2C90FA0EC41775
204584342BE3539FA871469E50170BE821124A2541C2F4121315134E8839993FFF51
20467E99D1CBDC6A724F20606AD1F8B430C3D7EE7AAAFE66C4CFE070E9DEFECA7E6B
2047DFC1A6FDE340179614FF12EB97E32ED23C41899F65A7DC5FDF5347B62D365E95
2048D1E11075E955155ED6ACD7F4E772E614EDCAAA36595C724B54EE7E9BC105CDDC
2049C99AD929E228D421BE83F9D7590F9C45E14F1236472989746DE4083081B1B1CF
20504CCF08F928F30A312C0C4AFC287D08784B309EE41709986BBB01D7BFA7E5372E
20518B7873A434B836D47CB2233FF4D3CFE8E671778DDE56906E679A20B9EF012CC7
2052ABDE880B24D7E2DE5567FA122D16061ABD13233A8F76F9CF59044664E9B1DD15
2053D45CA1144ADD1DA4CDA7F8C7451A4424100AB012D6D79A52F266766DFDD9996A
2054AF39881CAB48240ACD143C5620D12D21AE68643C046F15B6C51684DAB584563F
205578EEA0D3D71B3F2FCAFBD327C415F40BDA5704D3FBEAAD8C61132390B08F77EB
205633681E14030EFE1B125500A00FFBE45AAD32AA12AC72D41FCA0992DFC98996B7
205729936F6E58A6FB1261F2530FD5A8EF13757085B8A1849D7388CEF7E8473D3668
2058068E8CA30DB3AC987195E30702184E2A8456F81C563B3BAE5F553959A1BFDCEB
2059B537555CBD2050572E7B78E1AD3C5E4250401546CFEE68A899F1BEC19EB8DFF2
20604E3C746A45D0923D3017CA4546DE558A0B8895BFCF090B7AFD188D28B21F3A8A
2061DFE3EB2CF6F047FBC4D20C9E37C57BA24B5DDE4C7A4F62B933B78AD9944A5D09
2062B15A32D96FF77191B7FFE19E52A5D7BE2BFEE5816C19DB5FDDBE067C9CD72B11
2063B64C7CBE3B23ECA8C51C3A5288E5038D5E6F5658E0A9D355A41B29F51F484F3A
2064C90EEDF675A8C6DE90251AFFB83EF93D881DE99889345C6A81BBBD4E8279479A
2065FC1AF96D7CCFF08BD465E26CC7EEDB44F3A4BD93AE747A58E1599C424882A660
206663F882B2D494446CBD53CD81C250204563750E46463EC7EAD13BD7CF59F025A7
20674D9AB3D0AEF8E23A52B1D52C19A8BF8639E172CE67AE703F993C37BD137E6476
20680D8013AA11CA9242442DA320997A23D39C265B28000AB942797E0F0C60AFD23C
20690D459F71DDAF058BBB626BAA4ED593855A83E7656821C3660897704966BF6E02
2070B68D6940545541CA9BC59D8DDD9185DB5928993AF4381D79611C7F1735AAB46E
207170C58CC3FDDF9AC3948A17C88B18E5D0070FB533615B0234E6541FC1624923C3
20720B95D5AA0AAC4E0DB1868ECAF6F020C8D3409FB47D7B0C96161C11486B57340F
2073DAAAF19D176F0D1E1A2CA66ECC0E1F2A8F19C17948C0D2BE06FDA4446D349E0C
2074C7DC336E5096F9891C767907A4AA5B7CCA07AAF79FE27520D0E3AADAC7CCBBC0
2075A2C635A50018032E5299C6B83E0474447DE5D72F964CCB2A3D8A6FCC2CDE6092
207683A7EDD4110D32709CB4A6C9E12A69D9884F2FA3CFB28DC3D8ECCCEA0F0424C4
207724B946358621764ECB66B2C568E289683D4BD298299F8C4170A198254A041E9B
20785FFEF665A760CA67A001FC7469A25C0C177063D94267D704E93C98A33028CE6B
2079EB538C9C820F557C849F6C9140E79FA3E36DC003C2D856F1053F15B1B4BE7C01
2080092FE7CDC69DBD48D4CDC569F6C13F0AE2DB4F61BCF8E63BA39D0BCFA9AE8EBA
2081DF303759A980D5B8822FF02FB47AC513A9B67CD2FABF39938ED8DA319A5B9ECF
2082FC82CB15DD454AF54131AB4358682B8024087F02FF323FADD37A580C00492BF1
2083428E5F946FF84919D71CCCD90296501A02D7C137F799531B99167953F3C292CA
2084D4F94087CFE0461172F3E3D64E90929494C6DD06121005A5CD121F57E1C92DA8
20850D6DB05EF38793D274F8C92316803E51E4C630B5B55DFC8C0C231CB89D88A873
208654E871C9E2DCD6669270EECC235652290F96191B41F7763AC64DEE8E9DE07FA9
20874BD9328474C2A58F5B629C9E127217DB7104756552A02546E26A322A1D102E94
20883A7F806DB919E312284522550C2574B7A0AF8EE8E9061AEF549B88A081DAE891
208996769E42CD4319CD8F04EF4A14DE067C73EEEAE2636F6AC5D08CDA3C57FBFD70
209095516BADC40DE5B8784C126BC3513D0EB21EAB2DFDBB79016B5475404849F574
2091F469DEDB5B0ACB5CC6EC6CF94C2B5FF0B306B788805DDF3B9407DA0F5D3004E8
209294A1AC0D9B9A4A1A5492D8CC80AE76D9541FA8C6E5CBF4F7F86416529CE0ED84
20931E58E6AD93DDDAF25F2BCD1B968B75DE93225A5B6A86379C2B22BE62928C14E3
2094506BB493455E1DF755F77959D5F7F6A4CBEFA43C7A2154183C345B58167B3586
2095E214A92A9CC1C707623E7C2B7DE763903C500AE53590ED90C70C86419E7AA168
209694D123112780A7E86BA448EFD168CB7FCA4F99A8D1442DC68520D304959C26A5
2097640EAC0F71EE4783C434201E476D3DDDEF80AFA92607F4334CB1155E5558146E
20988E73A1AD6AD28EABDBBCD9E70CABB41A36BBF62B2A46D412B8912B11738DD72F
209975E07745FBA6804EDFA631973545537453F2A505D58CD7DEDA87C987677E1A0E
2100039DA9CF25C27A6337233DFF6B89A69F5790B9C585C3E7D8A74694A7E64F93F6
210116EF9038FECE5ECFC1DC742D2340F2406664CB91EA13B2EB361739F0C217AA58
2102EBEC01C34A6586FA8482CB8177948DCEB92F3DF2AD1F2454DDB534B8FEA6A8DC
2103ACA1603F757EECA835F20C5206D2AF40CBCA0BA5CE40A944E3589E7D1861AE0D
2104A31886A4AD11C12277117A3D9A87BFCA310C3209BBAC5EBF809E646F3D995783
2105A08F8E39F63CC183A6D9553DEA23F10679F5A656F3ACF0D8B286371ED20449F1
21067A31C634561EE75470B57C949D2A3A9577C5CCA698EF5D698BD8E66EC80F6E04
2107D9CF0B4588C9AB8038EC6CD63371B19A7A4C49E0B566B898747F5B059111449E
2108A6CE689F523453CA3F8AE396DC68636D9CF7992067B0BBB36B3946D11DEFFB8D
21097E2A2EDE8791E4CA72609668E5E49AB05D15A34CD7A84C6FDC37383BD405C6A5
211055723DA365A9CEDB109BC1B0DD933CD08782F9F7CC5EF84A2784DDEF8587B646
211164923836A01376B2FEFCC6C06DCA785A69B32E74EAAD058B7213CDCA8613164C
2112EA7F7AE9C77A181A842C0925F5C7700892B7BFE8A0C4AE633A14498BFD99D965
2113F4A2B835042C6513E16F73B4AB03679B42336381D75DD177D30E280A3EEEBB33
2114A87F244CF8C9B530371D56BEE17E9DDFB7705434876288062CFFB9886D03F3A5
2115E64622951888CD27537866842F8CB5778837895AB3AD6CF4B465E56C1476F2DE
21161B59B2150BDA7E5A7980A5C90B4B10A3AAE0256EF7E2340B4B7FD2535FDC4D2B
21177A6A8A64BE7C31C61FE0F71A92E34C24621DDCEBBE924BE1E376DBDF42F34F4F
21184DE20B058C9E94E39773A3BC824760B5E60731FAD69A5CAD198220EBF87EEB1E
2119442AEC2D5ECF39A86CCD3AFA63FD337902930AE9422EDC43E46816B65A15D6BE
2120B9294B685F0CEB15035A5EFBBDFB0F8070330831ED8E773074EDA06A104A0A1B
2121FCC758A04D54C842200E6865DCC99E0092DE63165EEB1D457FD61D2A0B173A8B
2122C23DC9FF3C2BE8DCA510F830467FE7B17FDD3D0E96D090801008BC39BBE30B08
212311CCFFDED605B09384C27670F85B977FCEFB891E9FF0E53408533280F987181F
2124E27919ACCAA619EAB4BEDB751DEDCAEDFC521177174AD54C2B725A169CA38503
212543C9B07750EE118E55D3C6C2659F0B270658BFA3FB28DF1A8FFF0BBBDD691887
2126E98FCCA7A94EB05D38FCBE96E0773A20DF58AFCC63F43C3715527471111A1F3D
21272ABD7781B5EF6FAA58A99B2E82A793098A641F2B709C1B9FEC36142DE09A382A
2128FB109A37619A17B034688188EDEAAD5F9D3AD8FB98EABE67A9F0D9D3A047FF38
2129D3A45A242F26415C1A8B719830FABD16CB34163BA6EE0F7637AF57BA98ADED1A
2130054D06CE75565BFD3026F4623B5FAD236180DE45B368E7265A5DC9624FF1B138
213160A6A6CBEBD9856DC6A953F3E16F6623B4F3C4A79EA976002411C99763824E3E
213274FE50E60A48FA8B250D8C336D2DE6192448F5DA83C0F9C68A96B6FA69080037
2133C1AFEB0A0B1824CBCFB4CD8E1B6E2F9B6B3C6EA110CB2C1F9283B70093F3AA2F
2134758D59360B6E5D4D2CBD9E76FD7EAC5394F33AD035A73CFA2FE9E0E544321C04
213508D1C7AB409D5A03140413CA8F0C0C7C0CDAC89E65B5E88562AEF146096D4767
213655C402A02B5967127019C4AD20227C0F8CD04142B90DB7020C56A9F39F428043
21374F453F253341B0059342E1A69D9769F8D7A7325BF6F4EC45B18DF040AB356D0F
21385F538328A70946C1D8ADAA4FD45437431B689A7E828DD62B3333C164F4FC95D8
2139F3FC99F683173CD3F50094CDF35D0641B840F822BA7B32FFAF04E0A4CB02257C
2140A914AFC8B9326E0E76322207FF3B40D7F1E2BE1C63E6EE50E227DC086E004982
2141A8C8B75810837EB8539C0CFD7FFAD6D2363285F5C08303F36C4B152BDEA25E0C
21429B87A02681F6A0B040320E0F53F466B764BD2B0D4F9E549FD8FB63ACF3B202CB
2143FA8A30D7935CA8A4EFA9A0A03E1604EF52D20D42233D76DD7C353F97EB64B7C3
2144A7FE67BC49ABA6638A1A4EA19EE48A01C8249FCF80FC33B0727ED9A409C0730B
2145C2DDDCEB5A4FEC64253E2797724700A875D8A0FF5A4592EC1871939C5BDC1BC1
2146AD58D1316740AC6075D4828A82206D5531E2B23CF6680DD6AE4A3EEBF67D3C6E
2147D4114490219C3A4389B1B08A4C45EDC81DADB7980ACB858E68A17229B079F409
214811BE17C052E84B3D72711F95333AF72209F999E4952DC09D80316A63D4C56540
2149AACE90AF9B23B027482DE2966749990267F30890AEFB4EA7207382473D666D84
2150B735058E93B6A2F3DD2983B544A174ADBE9BD7B82148A5899F805A96A275F96B
2151E68F69FD265672568001B5B68B963F686007BB5CEE52601ACCB9FBB404D2ABB6
21523202C12F4630112B98FC8EB2094C4F5D600E613BFC12AC3F9D1D45AF37A23856
2153641EF63513F297AF9561E4981D1DE11E6A64C60C3B982ACB9988AA559230FD4F
2154D0526A962573FCA6F28620915443E206027E6540BDBA85CA99930FE90D9F6D4D
2155DFB276B5E30104E825CCC048E07040348DCEC32E112F8644A11CDF74C322122D
2156EA5C42EC3D22FD6984EE135307DBEAE651E48F6FA1B690EAF462543C4B02E159
21574544E771B9D3B9B7CC622D62C5FD3B02A6C94B0B267D7FF0AC83CCB52166DAC2
21582FFA61551CABD8DA23AC9C316CAEB52D4416F886DAA440E812681F80E85CF0B9
2159FB3FEE048375FFEFFD4CE424A18E0DD1C857AD51549BCF7DCF6286B42CDD6F4B
216055BF40BFC7F78CC83C7717393DC282D3EDE3452A6F70DCF3C3CB1B229AB28AE8
2161B44E9DA01E34FAA34DDE81957753BC43F62789715D6A85CBC211C7F438EAF389
21628ED5BAE75A548A042A3AA21729F3B07A758C4133FC87D6639BB2A7508A1FE003
21637BF267B514B4E03CDBD169A5B14CC4A1994CB309C29E5855665F0CF18949E931
2164571465665FEAA797BBE1EDC22614A0E276E9E0088A039E8BB61768E22CB5B304
2165E33BCC88EDD1B18039F6EEF7349C23098A1CC30DD4A0641FBC57706C4E12A7D1
21669D007A69273C6C8EFD3D76867F61B51F6781E38F0686D7FCD259EF2FD875DA10
21676C340B0E247AED94A175C132B20034EAB0D775D6FC7E20CCE5D909E8D9FB57E8
21685F1C1D439BECFA757D4AA68609BEC7E9A99EDACBABF85C3203C39B6325FF6964
2169D517F11F08733AE1E406137862848A2F525B72E44FB595EEED13A023A84A9DD7
2170734FBE708825822E13765F3DAFB80278F0DBA2F43B3720DADE66880E46773E56
2171932FFFC11A194CDEA400724F38A9B774262970ED8732A52FA700C16368EAD64B
21724CC414FC75A01449A1FB5ACA13A86065ACE44B1E9E08F57C2D5B7C84DE3348D3
21732F8A9499A12B4F28D4D956587CBB894000254EE3C11895B49547001098AF4924
217472B52AE10DA1B73AA0D29E25073D366295B576BDDBCE3320926C443B4DBE0E32
21757EA0997CEBC0FBB4912840B3D413C55317E12403BAF2677164519976208029D0
21762737B187157DD879F3BFDA0416B972076F533A6A075DFE89ABD2F87A0CF40BBF
21777477E72659EBFA22BA06A46A5CA7AA69A31E15478EE18844B2CF803060EACFF9
217833212FA0E8AC9A7304D8642230F0050EC70B53E88B0B6C1AA2A4DEF12CD085BC
2179138C0D5C749370A27E044F2AAD1D063ABE6E4FC0D3B28CB733CBA22E41A83306
21800192254FCB802236193CA990CD20DCE1692FD4D29E9715D023882E4EF116051C
2181C07FDA4AA8EC73B35D0D092E414151A14B67EC9FA0F55E797883A1312033B9DD
2182502C2871B9754B1260605F2887032C1942AEFCD32F97C394FCD4EA73C8BCE813
21830932E5DCF010D9478986734BF88042DDB7469A990546AE3925F422403E956399
2184900D1148FB0F87615974B7F142620E7D0EFBBEF1AF89D379B18620356868CD1C
2185350F4857E707D058C554F86D3166F777BA6666D379E9B88FD9A177DF5A35E0B7
218664A477D51246157A5B12FDB7B377BFBCB186754F3EA1226BAEAA3623228DDE2A
2187DA8F6DF2CEE3F28B88AAA5432E408EE86794FF0CED36D68A7C5F85EB74AC2194
21882919A933332082F7BFC9B1435C7929CCDAD2C58319982F7129D0235ED0028252
21891509906D82B555C70A52CE049302E5015C82576D171807D18948E2AEE9E97EB5
21901BD55365F594C40CF262A9BC8936F71E163C90E0EEA9285D433447BEC8835317
21911B74ED0693D9B52622C17020A8847AA25A5FFAD00185B8F677D894EC0388D041
2192C9C31FB06C241DAF9240E3A486A61EF5AEE1FE55D512A75B33B6B66B9CA24892
219341637E1F125571DCF91BA0B38D47BEF4FB716463B191B9DAB3C807142EC82F94
219414D52AE21D2DE7C6F13A6ADE36ED60E3B9E11506B099E24D8F45FDD987C056A4
2195877AF7AE295ECCD212CB01591C9CFBA43833BD440AC8C3C9B3569F97864F4F33
2196857A7BD398367B9A9DF2D4970ADF614E0DB52DBB0FDE966A7F96CF75947595DF
21972A879AA29A844C4C24C92F4964311D7CB3A15B7A3387795313D4113C3AE81D83
21987FDBFB7683BDF9E00AFA9B11007DDAC3833443D522103A0DE08128BFC83FC76A
2199A5CCCD40B23252293F0B2B34450BC14C2BA11FB70CC86241CD8D620411C4D46C
2200BCD9354DA2F5D89F9C8091F2606717511A6BAAEA69D11D2CC0E1E573F712BB7C
2201D1EBE6062C6D9B98D7DF6ABC5B914433E3FD46227D4B7B728236E1667C76A030
2202966B7202C9C035DF93AA274CB16A940269EF75C63B4E655B8133C43FD216F4C4
2203D50C9C03BB6C4F299C7F276ED59F1CD017A12424CD9F0DC1E893F5A83BDFD49C
2204E2ECCEBA03DC33833077C5BFAC26EA3BA90D96D4FC0954072F322DEC96F69AB4
22055E009CD55ABA58947FDB4F2F221D21E68212CF035F60951B374DE81AF725F7B1
22068A21997306A3DC852591DF422FD5E6DAA049E74009DBA74DE1B03671DA80BFFB
2207DF4D6EF589D121DB4CC67B14EF048F7837B096CD98A4E43156D93FE8E1AB9B64
22082706A7DA1070977ABA7520B8AD15C710F75FB8F6AB4A7AA0F7ACE9DEB75A1D14
2209C8F05D3A010D9FE3E4836C1FF4ECB6954D8932353ED20F8FFBC416D49C70CD43
2210292202BCE023C1FB19A67B5E6FD4E02ADAF84EE105844AE8A5AECAC2A01909AF
22110E3D11535238E071E287DB3A701A847B5EAA526B34F6EF33F8782A1356334F5E
2212297BD258C4340CA61BDA2A2369A8D9109C0AF5C3277ECA4019698DDB08A46934
221381DE40FCB75836B6614FF122C638C47BEC6152A10306D1F938A21226CBB2EF4D
22142F5161688ABFC69885B42B90C019C2E06B2B659E2CBFD22BD40654B7593726AE
2215B0A0FDF1A62EF9CB563BC2F4AAB1B6F3ABC57A87E4BE3C861A2CBA7F1671D28D
22166297282FB5F8FA7A7F97F53023A844D5290498E6810E1689381AC2AE8F8F4A5C
22172ECAE55DA3809B65AA398164F28405B28F6F73B1D35811F76BD4CF429D31C242
2218A4E73412A924A2E05F9DA9071D4107C896B16853214D77116D48E9D62235BB2F
22198CF38967B9E08AC4BFC4BEDF21D76553E4BB594D4F24774E712D22CB547896EE
2220550EEB038BB10A0E81D899D7DC74AE255C2282485E487A8D03486E743EA07AAA
222194447750FABBE0A7AC1087309F2C9E3E6183DC2A8115319F3679CFF2E9AFB214
2222EC1227991E26F9D221517B107CB5B94D4208B027EDEBFCA996092BA12CBAEDE5
22232672E541E7C3ACBD6D395B983EAB6162C8A513958919A7A8E99FCD6F8211E14E
22245CC802E6A390A9AC575F4AA7BA48F838D353155FACFA7E3CC04E1D01ECBC73D8
2225F0E7F192B90A1FDA9E1E943B756A63CDA628E0767C3BBB429875A3363284AACF
2226500F9637B6D9F8342364600DB8F02307C71330527A246951C7ED625B091BC175
22271BE6F43CE99101CD32948D2CF1952F835F147B3A1A51B1F1CFE70417426CFE96
222841B1943A60B5D722D87B1F8FB93C1ACE1434BF0AB5C3E1B1C5C4A1B756D41FD0
222993A8D5776F981C6E428CCC099C5C32A913AA9ECAB79C1664D4EBBA9BD9A1B2C8
22309E5DB831F266F7992C6287D0B6E8B3A5CE68D1E8DD5E6F108E59437A084C1543
22312B02DF8E604A679BABE07EF832B202E511783ECB831E579D34150B6EBB6F632D
2232FCBF17169527F3182386DF77076355CBACC272A87A5DB7D5925E46AD26927034
2233B11B3E33E42A37B99FE21067CB4809EAE59E681B9FDD59005010B5D8A27EFBD6
22347B313D480C43CC5551A806C0432F940EC2188A5D37B28CE5AD77FD79D53BF8D8
2235A5652E36457AD796701BB1B2ECF3FE31F7C9EE4A0FB04E6D86A435CFF1080431
2236090DBEDDAA8C3524866F1F4EA62A71C6D0E1241A88BD2159B65C2A50B1DC7250
2237D60EB019AD38909893B9C7D785E5C215080879449871D3BFA8D5F8F6DD6B1C3E
2238EC6C1E108D082557A85EB4371170708A3BAEBCC66D6040F17089BF2142791E64
2239BE8DD755CE50F1FA6C31A7797F0478F1F503492109E2E6F049C3135AFD4274E2
2240DF4E2ECAC00319FCC72B29A4540C57BAF7D79815B211C37E17236C74F30E73B7
2241DF16FEDE9B6F8F0045D329CAC61C423B138C0B383BC107BA1F03B1AC2A65D5E7
22421260549E506673BB97DB47B4B18DEDE1C4CCD3030914EE58DC94290DDCF53839
2243C40CDF17E6A6828A03BAA15D7413D88439878ED47A3B5639E83B54C181397A43
22443F716FC134180872A5EB7B655A02607E20F8D5B10E4FD6A10F084A25675EB5E6
2245DD93FA8AF3EEB916D9DFA6EC612FC698F9245AB584FCADCD0D35716C0634E94F
2246B5EC45F0E32BC2FBA6876B613FBEC4CC6505EE891D6C241604FEE0F731A7C5FD
22471057825B599F2A5C2E2C6DAABCB528C7C22777677033CFD99C89790BA6824A56
2248D445A721ED4C94EC8F0F53BE79E4A296A156C09477677A9D5170DBD65B4529B7
2249FBEAA4E45DF130AC20A6C6C5C931FC8DE1F5BA6866F142F211F1B7D7A422B364
2250DE86439E45EEB687AEAF0618553C7300A430B345C09F3B40F0F121777DA79D87
2251EE341771EBC0BF12D2692502CDC4E67B18F00E9F6953F320F998B14D683C105A
2252167EDC3F8A32D785E5EA7BEB7E146D908253C598FF9761DDE9CB2E1EF58CCE81
2253172A4D6912AACFFA817E99392F10002D5DFAABD174C1021D12D41983AEFDC1D3
22543B17726433D4BB843CF598899E564F9B81916C451167FB4512AC4BB60FEB7756
22554FB9D1707B303F917742804D45006B4166806094878575C29A634A34420BD1C8
2256F096D657F7D50C9820DF3B2FC0238F3FBAC8EE8472CDC07424328DD8FF52800D
2257B0CF61D37C86702A42EA770CF59D44F83151D3AB0AE715E61C4C7E680A53D63D
2258E3CD94978F79ED11DA300A66BDD3354FBC23C3C3D3C3C50E48CB091418FADDB5
22597F0ED7F0786D133886E5C3B6B237E799C2D5FB67C7E9058272482C6F43FB2A4B
226087D9DAF083FA3FC8748EBCA3B892C41821A108AFC5BAF0C3FFF037D6F8156091
226105B9BA2B8FC3A8E01FAD01B5761FE9412FB1A23C4CAC0EF203822C7707D068CF
22623E2DF702DDF1E515FB2D2E892BF4B9D2D9968F5A72836668D1EB5E7671057E61
22631ACC7B2B1899A248EA324CB11D68AFBE21B445C16C369505F80D1A3D510F28FB
2264A7ADF6A7E2511DEC08E4A1C332BB3F9870A5BCA0426B2E26E008BE276C181B5D
22658183983A6D5C3DE2513ACC8AAADFCE210E3B9197D164D1B40EE6240AF27FC56C
2266A0D604D259163E8C22238625BC81903D98EBDDDD4CFE30EE0E5501EBB17F01F2
2267315A8AA06CEAEB1222B47B8D1A906272621A0E623827FD7203ECF6C83B0688C3
22683015DA4A75C67648EF2EBF0D39F3841DF91EC2B10577C4E2FF4BB3F0C961EF5F
226957FF40B9EE99117CE5ADC85DB2F3725C0CEDCAE5F8A0886CE32B23D34E990BE2
227090D1693294C6557D1BB0B5308ECA260A8328398DEAB5FB0AA51EF9DC254160C1
2271D3BF03D2005CD435B0BA6BBFFB711DBB12E131D5841A64E02671FB1A2B5E704C
2272F272F9CE6B1C1A8D7D61EA6B9066A0FEDD4F37C11A7C9E411AFC1A68124C8170
2273A18851C5756B3B6F8E58EAE34EF545DE5199AC249023F78FA6E56ABE00E21142
2274C73641CB678B5A9E4C0FE0CA8498479877D72B8DE547E5E4D1AB28867631A97C
2275F460836B0B423A86C552F45C86A4576A66E381EC388BC86A229D41AE22E472A7
22766A3436EDDDFDD650FEB2E26653E78F40924E0905A4AE6D14C10BC6BDF48CA0F1
227765EC35CAE0F2B5CB1A31478E3BBED3810228326DFE34C975B53122C04E87DC58
22783ADF5726764E964D0ABA53ED4B1F02943A857F7310579CDDE10480D3BB655D8B
2279FCCBC6DC4F42444D9CAF4EA751E8C71EB304C58FCD4EDDD4B8AE0854211007C1
2280E5B29440376EB2978B78344D9A95B39C8B68DA469CA423F2A3D56540C6691B0A
2281A2C5929F85051430EFA1EB3B63614247264F4A9C4531D9463995450EA32BAF1A
22825F835E0656AE4109295C3CAB4475AFBE3DBCE3BA
22830000000000000000000000000000000000000000000000000000000000000000
22840000000000000000000000000000000000000000000000000000000000000000
22850000000000000000000000000000000000000000000000000000000000000000
22860000000000000000000000000000000000000000000000000000000000000000
22870000000000000000000000000000000000000000000000000000000000000000
22880000000000000000000000000000000000000000000000000000000000000000
22890000000000000000000000000000000000000000000000000000000000000000
22900000000000000000000000000000000000000000000000000000000000000000
2291cleartomark
2292%%EndFont
2293%%BeginFont: CMR12
2294%!PS-AdobeFont-1.1: CMR12 1.0
2295%%CreationDate: 1991 Aug 20 16:38:05
2296% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
229711 dict begin
2298/FontInfo 7 dict dup begin
2299/version (1.0) readonly def
2300/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
2301/FullName (CMR12) readonly def
2302/FamilyName (Computer Modern) readonly def
2303/Weight (Medium) readonly def
2304/ItalicAngle 0 def
2305/isFixedPitch false def
2306end readonly def
2307/FontName /CMR12 def
2308/PaintType 0 def
2309/FontType 1 def
2310/FontMatrix [0.001 0 0 0.001 0 0] readonly def
2311/Encoding 256 array
23120 1 255 {1 index exch /.notdef put} for
2313dup 0 /.notdef put
2314readonly def
2315/FontBBox{-34 -251 988 750}readonly def
2316/UniqueID 5000794 def
2317currentdict end
2318currentfile eexec
2319D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
2320016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
23219098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
2322D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
2323469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
23242BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C
232568618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361
23263645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E
232759C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28
232851D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23
2329DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A
2330AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F
233145C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31
2332821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE
233396F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D
23349857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379
233526764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4
2336140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213
23371D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498
23381E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB
2339377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A
23400733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03
23415020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4
2342ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15
2343FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CEB1855A22BB
23447B0B138892F4D0C10FE8A5342308AF7B1BBDB641453D3D5D053F6634CF3A9ACB
23456763EE8A2C6114E193BA134279BDB04CA28423F81948C554FDEA56AE1A83C791
2346EF358C159CC3B6CA77B07C2C93FC9C93C1ABEB6E5EF3FF2990371EE2A9A3189F
2347C8E1D35959AAE8FC9FDFB6CAA39E4DE19E47A7FFF38705E69915D7C1B06DEA22
23482511D005170E59E53B1BA8FC15221FAA5C45DD4F4F6FA1421B57AC5D1F5D3346
2349754EEEAF1C86C82AFABF2C495324834D375D2AEEDC73B52B58B1BBDB54D4B3F0
2350BCFF3BCFD5212788DB2E07D50D1FC1F817F0B6435B0FFEA11151F7F9225FDCCE
2351B7DEEC61EC9E3B85359AC459810704C4724CCD32B546DA7086D89B8337CD19EE
2352BA1CB60C4D9FECB524199A087BA88646DE1A8450162AFE7DAD9AFABE1E276A7B
2353372EF1BF853D7E17199905EE7B623E8B3C90A0C35240C2F2CC873B8CB6ED406C
23549B75AAB478025EE20BC53E5AA66AE78917A7A8DE2EDDD4262F222683892F582A
235570E275E8C0FCC12C5DA66377430176657D155B66974B9B27FCEADACD29AE8EC5
2356A9E4A2ACA6FBC0DA28CD8BC2A3152841799273F4A0AED0454565A5EBE6E222AF
23572E381B42EC5ED410225DCF22E8C29CA8F59B0175FB3515692BB505DF2B2CED76
2358E536773217D43313D59C854952B29210298E488451A9B96F524CEACF3528D4A6
23597F4B86C7238C90A55B21CD2B487693B4956B2803BA2EBF92D49AE2E5863BBA2A
2360F8588290565AA59CC3BB8BE6088B7257EC21A95D32C64DEB3C8EE7F95F4941C2
2361CC4296BFAA2CF85BEC1C49FCA476C1E6E604351413ACD6976051F487A533AD8F
2362F1C8C00813FC6CE68201A82E1635BD9214CB0F43A839493EC692867B6AB85D14
2363847A35ECD740BBAD7C0D7C2F99D941E831F1F2E25B563F17A4B55E98540FF86C
2364D9C2ED5AA425A39E25D57FAC19FA095B169533A9E35E3279015DD3B1D354393F
236511E033E901B90751CB8282CF4E65B7B64DF4D54DE7B72995CD4A5913F0D62412
2366C9279C7DE705EF559712AA635E061A06CAC968260A70F8C123B1EA7F3DD11442
23675298448E2FD9BB2BBF455E31EE32A48844E3D565938C3A06C7AE2E2DF392B621
23686F04E400B412BEB1B04EE2D723080377D313D3226F5CBFFA6C9E7A398436B4E3
2369CA505266C5D6496506E78DF9AC64E599804920DFC6ADF314A0D1D408104D40CC
237021F310E5E442C73C47B14D0CCA9DD4D93564C87A9B93C2D5A0A58D6B7F2A54C0
2371E51830FB40E4E7FC7854C102DD35FE9BCEA1807937196DDCBB6E46EE31947DFE
237259799F1FA5ADEDCC63FF2F48D278CEFF6B2E86387955F1156DDE8A433BD37B27
23739D414BE03A081EFD43661FB98E6646BBD71C88A483396AC991DFCB19B4C48EFF
237485347FCE64E4067BD856188152E59209FA1F207FF579027CF153E393823E8F85
2375865DBD75C8725D7E5AB85DC0A02BDFAA050FBF0835638DCBC6E6EB0E8021D791
23769ED29293EA36D7751EF8DC12842E90734671C3E55811214E8DA7270483370B32
23775E6433AEADA33B81CE3B6A71DDD52FDF4010B3114765D8B032DF3C3FA8032162
23789F42DF505C83E11D2D4760549D4E3D3AC899B7EFC5C9C71FAAB465F2CA0692E1
2379CB75FF09C0C8CA36ABAD74A9C60820F21ADECF3E45A63881429722F3852DEB55
23802C8473F90EE8698B58BB530A9A5E5405EB3BFCC375BE5AD507B33CAAFAC333B2
238116FD44CD6AFE64799BB5B82B926DB249D2F2EA98A5CC651AC61F523A32D70540
2382999F21C8E60C26BDAF310D41780AAEA52A6AEA9FC82562A159FFA530916E2839
2383B7B28E2EB441CC04621559235079AA03250494FF48AFE867108F1EC6F7793D0B
238453629838C019A734FE6543F1E38D55857BF5BB5B205F7B68BFBF3659E0B9CE6E
23853169B0DC380B8429E75BCD1F2CCCE48DA6D149E5D9965AB0301FFC36E614E308
2386351AE40B1AF08024EA6F78DA5F4A97012ECD29FE4F8396CBFFF87844EF25F41D
23875DB91630592A174FFFE6D44B93B8C3E3AC8C50AB767D573C150A05DFD5F8BA23
23886E98C7D32FB611563749F625B2B1E91755D52CFC57872BE3603DEF32D08160A7
2389FD845003CF41A20099685418BD0C69ACD2381F1BC840260A6DC62E22D0724EAE
2390CA6C72554FA6CCBEDCA639048FD260C526ECF5F2A2A122CCDFC036017BAAEED5
2391BEA14B157FF0465B479355C3F46A9230B122A3F9290977E6E9CAB80EBFCD7149
2392395D882017A77256E5E500A3A068069EA7F0C07246812A143BEDBD5F23EC6689
23939D06A0B040446C37940A3DE20177E30A94F32C3A09D7D9B81A9F7283E862E6EC
239433E7BA351ACCBB83F611D987C9D08741F6F35F814763EA8BB07BB7DE3500D10A
2395CAC086C8302CF2C5F0195BC8596CD28DFFBDD8800F5118E108204028DB382FD9
2396D6550E1BCC69F9401F18E59A45825B00307E84A4AA7767A815760B02B5066DA2
2397DBA4AF78E787C69223893342C4A3FC7A77AE4CA32E4008F655CC7CC647902364
239814F26766289B1BD0E181AA04B526F40F078EE8137AE027DA93561B084B48CE24
2399D653E4633EFD5ACCD2E813F28BD6B4008510B5378F6121D496C489C3D6580B4D
2400A918E85B2F7EA32EA77C7A760C75F0EF8E43BFC795D56F77BFA40542A0E57C1B
2401A3719AD27732AF7A12F432CB167C88C5A3859A2B27B66A287D4D11DE63210E98
2402FB4F5EE8214A2A2DA3E1CA563D4FCA08AE5F5C5567410B8273BE31FBB4F1E07C
2403017CC7E4549967AA7854528C41FCC6EBCB42425A93E9A50C5F674CB04E3E65DC
240471980E97370237C61E8E2D94C148D0984F98019300EC72635E679DFD726E72D8
24054A769C6CC3310AA7CB54E121FE4E202257C580AE033DC10A8129809AA22726BA
24065204D2EEAD7B47364A8727DF853B6259DBE38F79106D0E067A9EA16E35FF5F2A
2407FDDAAEFB7E1E75D19F20C3881CB7B9DC034E9E871853125339BC86ECF35E26BC
2408167B1AED79451A447BDD91AEF2E43E832084913888593FD630B567483A3EDA8F
24095495809971B832E3502F28695E68D8F08B067BB06F5741130718041F375A2924
2410DB128D628DA00E398BB645D0F115CD84507A110A8FCE169380CE8398C07E4CEE
241185138743A6F431F61D24220EF51D9631ACBA523E0CC96CF755D52654A460E866
24126C731FD92BF2FC809002DB98D9C0A533251C761D91CA33732B147CC60CCDE148
2413A321FCF69FC49F91E81F040A8E361E1DA6A093F5553BE60EA5DD426A60D54A27
2414DB947722BBEE6A2EC84FDB042E5088B2E702D4DDDEEA80B46DA1D036E20714D1
24153D17967FF31184486321B55EE12B2BCF45B322F5C5D65325E83CBDBC24F90C74
2416CEC8E6051FBBB4BC93BD15C604E1E12039E5CA6F728E7E300DF93748274C0AA0
241736977F12B12F514C70A56747849E9F6AD06AC8D97D0EF03A85E4222DFA1328AF
2418AF1CEBB60C97547D32C1B6DDB7FF10B28ABCB1333D70F06B31E1AA15ACCD441A
24195D1F58705B8679D24E3C656474E9A0074CBC948DBDC80700C361FD7649DF70D5
2420123999D603CB48A98790936F44D3783F02024A232124EAC3E2C1E66A098D202A
2421E86C3F85DA840C62D9512F5C9743BD9EC247F1CEF41B09C858ACD8C1081A6C7F
242265C6876F198A7CAEFB2D27DC625031515955DF1FE86E248B7C35747AB28F6F9F
24232FE542289FF8CCF716F180DC6CEC390EDC977EBEAFB42B63203B871CC5B23905
242482480852BAD30EC64EA12D4A5232AE6EC16B038F3A23B59612312613935C6FA9
2425962A80DD6311499AE900E9D0E58043AB148339D4C9D22CBCD0A30A05EB4BED0F
2426087A9A2C5BD93230674C5A2979C0C99B57AE367CA69F5DEC5033C18E76427760
2427CB6D5C43711CA1DFED6DE01EDBED0E9DC8F19B516263E4620B3F6E9FC017A24C
24284CC81B0EFF20D4318C32483F9FEA80B8212B9207432A5EB20FBC126F71A6E6E0
24292156F66D83D4A0F77F95EE54BDE0144FE4F9AA0448CB8726B8956F0B241C3B3E
243071FAE0B2C86237048B176F86BABC89F303F866581940FAE3E6BE93AD9A4EAEC8
243113E9BF678E1E7DFAE84AD059CAAEC39D4242D6740439279119406C0132E1EDB0
2432E6AE72FCE1FFC52D70314F142A419040C413808245C08F94D508561B8A21C90A
2433260C922CDD8F3224116FB0376319A598E56A24B2EEFF293D4381229DE8264A16
24349B956DB7543E8BCF1250
24350000000000000000000000000000000000000000000000000000000000000000
24360000000000000000000000000000000000000000000000000000000000000000
24370000000000000000000000000000000000000000000000000000000000000000
24380000000000000000000000000000000000000000000000000000000000000000
24390000000000000000000000000000000000000000000000000000000000000000
24400000000000000000000000000000000000000000000000000000000000000000
24410000000000000000000000000000000000000000000000000000000000000000
24420000000000000000000000000000000000000000000000000000000000000000
2443cleartomark
2444%%EndFont
2445%%BeginFont: CMR17
2446%!PS-AdobeFont-1.1: CMR17 1.0
2447%%CreationDate: 1991 Aug 20 16:38:24
2448% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
244911 dict begin
2450/FontInfo 7 dict dup begin
2451/version (1.0) readonly def
2452/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
2453/FullName (CMR17) readonly def
2454/FamilyName (Computer Modern) readonly def
2455/Weight (Medium) readonly def
2456/ItalicAngle 0 def
2457/isFixedPitch false def
2458end readonly def
2459/FontName /CMR17 def
2460/PaintType 0 def
2461/FontType 1 def
2462/FontMatrix [0.001 0 0 0.001 0 0] readonly def
2463/Encoding 256 array
24640 1 255 {1 index exch /.notdef put} for
2465dup 0 /.notdef put
2466readonly def
2467/FontBBox{-33 -250 945 749}readonly def
2468/UniqueID 5000795 def
2469currentdict end
2470currentfile eexec
2471D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
2472016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
24739098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
2474D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
2475469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
24762BDBF16FBC7512FAA308A093FE5F075EA0A10A15B0ED05D5039DA41B32B16E95
2477A3CE9725A429B35BAD796912FC328E3A28F96FCADA20A598E247755E7E7FF801
2478BDB00E9B9B086BDBE6EDCF841A3EAFC6F5284FED3C634085BA4EE0FC6A026E96
247996D55575481B007BF93CA452EE3F71D83FAAB3D9DEDD2A8F96C5840EAE5BE5DC
24809322E81DFF5E250DEB386E12A49FC9FBF9B4C25C3283F3CEA74B8278A1B09DA7
2481E9AE4FBAAF23EDF5A3E07D39385D521547C3AAAB8EB70549756EBA8EF445AF4A
2482497CA924ACCC3DD5456F8E2C7E36946A5BF14E2E959895F7C94F49137256BE46
24834A238684D52792234869EAE1A6D8ADF4E138B79472D2A90A6CA99E2394CC20CD
24843841733046175B20CEBE372327BF13428EED6A3E2FDF84C2DBA4B0AD584EE9DF
2485B51828D3B8F385846158C29C9AC3496CB9692DD10219697B2ED4D425C3957FD8
2486C4600D76E045C561216EF05D38177243C314877A69A1C22E3BEC611A2EE5A216
24879B7C264CF6D1839DBBD78A40610F2C0D7C2FE09FFA9822FF55035AD52546970F
248883EED2D30EABB1F303091EBC11A5379B12BB3F405E371519A53EA9D66174ED25
2489A2E55463EC71A97BE4C04B39E68112956117C8252DB6FB14AB64534B4BCD568B
2490246DB833982B38CDE7268BBF74B6B0C18091E1B1F87D32D66F4DD023D1F10D2A
24917736A960F72AC01F733A11023832CD68FB6288A5977743F781214D8FA9C0C3F7
249280001321D4397771F728FD9EE57CFE7D9192B887EC883EB1505068261DC40089
24937B7D2820F06515CD74513521F6397FEAB3AD3572D9A8269430E407E357422461
24941785FC2782047F4C0339D79B16862D939F3A37F78E4E2174E4FBF132539CB760
2495207999FF86F6A3EBE48EB0A1CA635450FDEEF79EB16D853F3BF4B7AF6C21236B
24962CDB1A8CE54A308812E598601DB051D7BE60A7382936A6C346A0E2A568D2F150
24975DEEF90F5E4A4698EE1E97C090C5F76BA798E598A84FB13116572BA99D297FD3
2498F9D516671A3FE77948837C63FA73E298E1E61EACC270693557557389EB81AC49
249952FA99A9EA3CD449F805EF9DE5D430E4A82457283289E6DDBDD8CAA6270E33DC
2500E27CC587FCF0EC067E2D7BA5CDEFDC13C393823B70A878A0484677EC0C044B73
2501CF8E40AB2A31EFB0D0778C7F5EAB40975020BC000E5D6011B1697EFE263ACD83
2502F255767E2EED492AE88AAFC5729AA668AB8C94D1CB010B3F0CE887398FB9A4EE
2503398B736A41E0DA9DA276F90A24FE8E881849A81B0F07E3E47AE08DA98E693DF0
2504B3BE2D30D07D9A309EFB6F456EAB79C75FC8097C85E42F43715BA040757DED90
2505BE4A72C13FD96B6735811C9CAF6B2BA7FA1D7E4EF270DB21C01493D7EA1A73CE
25067F3228B30789E3277D1065DF4FC6FF7AA02391AD1B9116D4EF1F37DB2C4795B5
25072E46CD541D3AD5CBF1EF4526E2A69D8FD0DFEA8A7ACA93F9387DD0C36377A5FC
2508E161D9E8E366229C677D15A7481827FFE8CD34C0518BF0B6262FD4A292B58FF6
25090C8E31D58FCFB6F61699F851AD4957A3FE6CF46A60DFBF93A294E005C952AB16
25108BB6C3FF8E67F44140B4D6F78850A64C5740A0DCEDED35ED32F8F7BDBBA73534
2511F4A84D604E8E9A19B62A120DC96BF8AAE4253664FA7ECC1C5F7A3EA2633E2752
251254223969FB5672CF11733CE566911CADDEDE053B0CEB8B2B8401BAB2639B7F2C
25132584633894CE9B9F26AD96486271F6DA332F095CD7934ED599FE181CE98A2A95
2514901A324E112457EB77C4E6A5E3024FCE2B617B75696A971519D64DD57619C937
2515E12427119CD45E6D199503B71C3AF9703F8137832870C39E8F9E5E92192F1568
25160406C45C2954AE06033A351B7DF4789EE5D1E8347764C6189F69A27C904E9E43
251777749B098B9D53D8C82551549944EF4ACE03CB68E349A93D210E3A809E6731FC
2518A0976C7201AC120C0446753067ADAB6FF9877DC15FEA1AADF1EFE837E833E655
25195BAC70FF73E56E024BB88D0DBB5C12F09B91DFB8C539E904217330916BF98B16
2520E9A9FD9B74562C3F8719E3662E55D5A670D72F87B3EBAF036C8D043284C1A546
2521959CAA104EB0E04B5B650E02FF2AB1D891B81D651DD46C5E32D3562E3676DFF2
25224BB4294D74B5EC6A28CEEC97742BA7FD36A7760335EEB505B0CC8E6D7B19A18C
25231466580E790442EB604452F321CBB51C61DE1766680FBAD9624D5E3261CEA8C6
2524D177B3E4247E1B0E6538B85A4FC1417586F47F0B306133F466F3FFD634DD6A1B
2525B2D4058B447F661BCE3FFC5A18B15225AC936558B7EB209E7A084A66E100D70E
2526FB635F92465CEAB6DD24091A382929BEF39E948DBFF0F0917AEFCFDF88E45F0D
25270B37DA26EE90A1C319B8D6B27FE7C340B130F3BA9719970BFC37D01551CF9BFF
25280910686AB307EFB1FEC82CFD22500789D96FC4ED09088718D9584EF1C2BE4202
25293B2E545098F3549E33ACB9E3E94D850ED24ECE8390581B666AB6F3F319DAD161
25304003D73CB2D7021D8E155C577684FB6B80E9A0C2B5EC1A80C0F851B3522B76F6
253139514B0EA4D11D06A508C53502B9BA6ABF2413182E2E17B65ECA44C525422C45
2532A7DB6D930D16B3F40C4D0BC78142702C52A7DAB7D92C78BC7DA1A8966D60B5AE
2533AB3A8DC80F7D5EE5939BA43DB68B177F225BDF18349C557EE9A83899BBEE4162
253449607C07C6FA515C780F754454828B9FD0C725E21D83848B345DBA82D667F9FF
25359B7D972C9E4340B60BC6EEB6DE06732AC2F6F74CEB805E336D16713696A5B9E9
2536A375CBBF0D1CA2E318D147360FECCCB6C4935282DD1417308A7CD13EBA27674B
2537665BD48F7426AEE611CBD5384B740EDC0C12B4A1168FDF6B1BF345B29DC2CB7A
2538FD3826A561B83E286EF3234E04B9B9C157CA0B5176AF4BD6C9AE2256DD6D28AC
2539B473785B6AB651923BD3C0627827353069CC4435A9869F703ED80A53439A0F57
25400E7D4AE76B759EEF5F75AA9554A471D347E8DB44AFB928D943C00FE9C310BDE6
25417604EF331F9A9B48F30B3CC07CC0883DEC7E30502CC00F7C2DDB17AC854815C7
2542A5388E5E4D9767D3610965AEF28182C893703A004CD44DBDD2FD30BB923B9213
2543D906CE41C075C4ADF35F21903F2102C23057E547AC6C714D77A84DBE566F2EF9
254412802B224A4FB9B5B754B4CAF630543D3A03CE535BBE5F7CC778226FE01ACC5E
254599D6C92FBBFD0D69CA1823D3B9C166975F0B88E6745B9FBB7EE958556B4CE67D
25460491CE245DB057A7ED1D438464BC0C20E84478E59F1B5EBB99ED214C2689336E
254759453632B640A348DACCE83CC808F1563538D006C3D43E7101CC4BCC18BEB240
25483CBD91FB78F2DEDE2868EBCE107B641D8A8781BAE21A20D865133D0A81A50278
2549874B6213D10B87F2197EBE547F30C6D25FEB0C22F5AB741371DE58D494E94038
25505ABC4546762E15E88E18997B133A8E6D45D65D03E4F9F9D8C1E2D9BFAB4F3D41
2551334F134172B1F78416D91B13D896256C1182F32193701DD27922467DBC55EDB5
255216E054FA65C9DE4AE070A6E387CA7F26F1791E9113E9F55908FD5E71EB16A4F4
2553BB902598E6274B9FD7FBA81F91AF4F09E30C35A7F8192B419BFB1AB0F74F1C63
2554F041987BB048C9663DC76E141FF8597F18893BC6FFC590191B3CF3A62B1A3152
255561344F36DDCC0C0639867A1861AD5F65C2246A7148770ECE8044B8B70CF0CB49
2556430E0FF77C46678FACFF3C53AAC89AA7B8FF8E7FCDF07368AC6B90A019C4AA69
25575A2CAB381EF599BD6C2184C056E8940215BED5A605446B42B96B78B59E74F8DB
2558EE51FECC45AFBF570B69E602121A7191AF48A9A3AC6FD0AA32B004CD60E1F81A
25595D90754193C9A41C5D9A3D1C980C2CC3CBB20070FB79A8A269739B98B3B1B9D3
25600955F5A722A1EA9CF3BEE5378D9E2C30210657DEABDE64F5BECDB45E16D11026
2561E833E9D8F76D3EDF34B01C73CB92552E9F8CA728B3994974DC57AF656D549925
256225BF9E00E67FFB4903A9DA977731FEADC690FEC506CB3A70F8D5438FAF1619C1
2563B81B10178EBBC1143AAD9B273582163772EED691ED36197F522AC70C35943E8E
2564B6FFC38E471ECACEBCE2C447CA9E8713A7D77CE98483F7B4FA46B617E399895D
256512F0259F1651CFA3F064F281C5BD9EF0092D94B25FAAEAA03F476FC95E029A60
256605F60D812A294AF510F2D27A021AF4A4A8CC4E43E415F4601D4DEFC10A32FF32
2567F2E5FB36011A2DCD8638608310E174C18B58B8E589FD8A02B49261290D750636
2568AF9EF054616A9095FD413FE960FE69FBF16CC049014AC5ADB1B29A09631A75F4
2569D756CE74648369883A7635BB5A2E1BFAE5EDD0C4E0D3CA93F2A73199B6ACBAD6
25703B67060323BB5F01621DEDC3E77D1BA33AC9A15C42796F1722884B27F71A751D
25719B80510A103D37EB28937EE4D6186E51B9E8AC7FA9F95CA17E9C6C4320275883
25720C7AAF1647A433BF0A2C2BF5DB08F17FBDD42D5A4FEAFD1ECE0C8CAFF0712637
2573A6A34EBB364E0605D587C27AFC181F44ADF9D5E09C2516D86FBFF1A1D74185E9
25744290022411F075215FB4C7318C4050E52BEAB7575FF30014E5A29DB1E20BD1DD
2575286EF37EC8EAF71A631D39054D60EE6FA5CFA96954C56F0A769102C06822F27A
2576CC05C8BA6318F133B2625D5793062028A62E0B83BE8AE86D49D8836EA9D7857C
2577ED26CE949CBAFF35FB0F5E49097B57739811A47E9D40546CBC7251D19DE722CC
2578F8A92DDE8BA714B11CF7B52C7AF6B594CD3E02A6B24E9FF662A9D892D3CE5520
2579250DB588EB9AA7B03547E910D24B7B3C19312D3153140714BD3D893384871AE0
2580399698A1691675F21CAC6E0B4166E96E205A541A611516219419D13D8F547039
25818AE84325A2547D29BF7C3867FBD0F8E7F9AE1EC4A01F650F4B6221A40F91065A
25829F95D433D9276669DD7777B107706F896CDA02042DCA0511E3A1289198681A02
2583EF670742573591798733A2DC8C314FAAE2C28973E8F70F6CE9069D3865E1DA41
258450A6E5820D966FC609F163030CF69D5F9CFFD3FE4315C64B8268F1C04353F76E
2585B81C287E618126D1073DC1B4C594E0A8EFDE6A1910B73284DC3FAF3E0DF1688E
2586A6C08247A322FC5FD912F8A1AD8624C3327745B4016867D1EDF5602ABAF49B28
2587AFCD9EED38DA7C333FA2D2FB7C5145EAFC2DCBA2FC0145BAAF1F772B8514B811
25886358927C989D2CCBB2119918454472FEAB78219E8EA68913466B48B16C4BB0F7
25899B3A28CE11F1D59917F0019714561B5A6F9ADA993DE87F05018FC266215177E1
2590DC75C3B74D645767EA1FBFD0262C83BE3D287E9142BB20DA24F597DC49EC5482
2591D393F6CBA1C8580FC7FCE1F0FBAA1B65FA03A264A0388F0C8AD2E406DD2A684D
2592EC1A537D6D73409907A266D5418C276611280602916A9CEE465ABF4784EFEEAE
2593D3E2FFB96BED3B7D5E57FDF75D29D73E59222C345DC11C19F6DB4F86225087F1
2594977C7C8967BFBD4CB2B7014B4F873A3AD278145020C73E4244D0150006CD4D9D
25957B5A2F041EAB3D5ED402267206EC069D23C06FCA47BE3FB2BBE8AB041D4C2A57
2596BD063B0EE0585FF810935B7B46DA5764ED68F1CE97ADC4C521C7C2CD1C183074
2597C42534BBD88BBBC27C192D4AA57913AD167F83D9F9B5F4712D41D9D35158B67C
25983D296BA756B35B47E3122B28D4C595C935EF052F4CF60CDA6E9D3D2D2ABB6359
25996CE637FE4FC6225D37D0898FEB2F5550676485D235798180D104C15FA4965623
2600F87F3522416572141A4F7FF45A705056CBB3A27783581AE7717350B697B5B34B
26011201D7391142D6F447C2F6ED336BB8E2EA5912EB7DFAD1B616FCAF748275B369
26020CDD0C52AC62922ECE06702E9BFBF64314A2DCE4D44CE75DBAE5D4278D2EE2D8
2603BC5FA04C1AB788B627D4EA91CA36A1A4AE13508A851300056DCADFBDE748CD4D
260492E1D07D1E61D99164A0C899219C428DEC6E486A6A6DC4C6CC0FE4E68883CDBD
2605ACD9F67D3A957AF68C8D034BD42BF82E29EB2A2AFC843E00C5534CF8A85FA1FF
260694B8A1F4B7A390087CC1F2484C2BD3607D15445BE9CF8BB50C29EE15F3C1021A
26070CBE44B3C8EF35DADD28D6806A9816D27EA98DFDCBB459A7322CD193C13A37C6
2608C30B2CC0AEAA4855C50A376F27C19D6589A2BFFF6C364BD404BDECFB42506D35
26099B6AA8A2687D5403131801CBC017354AC2AADD91A69C71776A3917C5B8635AF4
2610A07E86C394FB8D92584512F7F3C2F0B478AF5B2020E05F5064808C9700EB5FBD
26115B1CDC0E999E164F8D47BD9F22E34B5654B509CA50F5850E7EF262D460E04147
261232AA10E5E5CCE60786085F496B068DD77928C3D1B41075C83B4C54DF9BCA99AD
26133B749DC3D684E7FF3B9223624F13BB117EABA6CA27566BDAFFE6AE26583F0BC6
2614AD4D77CFD3D498A7D3A4428FF8982A54F770EC94FD5350279C5F5F4E1561DFE5
261573129639E18E82DCF218E82FCE75AC5156A1BE89D28B518B05D950ED7B1A418D
2616394A0F9CFA3B16BD97011A3268FDC31BC68FAF7DF4A6E463D4B4ABD8CDB791A6
2617A732E06D344CE6C5A908C9BCC9C4F7D93F4EAB09B3CD2731F89407046AC124
26180000000000000000000000000000000000000000000000000000000000000000
26190000000000000000000000000000000000000000000000000000000000000000
26200000000000000000000000000000000000000000000000000000000000000000
26210000000000000000000000000000000000000000000000000000000000000000
26220000000000000000000000000000000000000000000000000000000000000000
26230000000000000000000000000000000000000000000000000000000000000000
26240000000000000000000000000000000000000000000000000000000000000000
26250000000000000000000000000000000000000000000000000000000000000000
2626cleartomark
2627%%EndFont
2628TeXDict begin 39158280 55380996 1000 600 600 (FileFormat.dvi)
2629@start /Fa 134[41 6[37 3[50 47[65 3[23 32[47 25[{
2630 TeXaae443f0Encoding ReEncodeFont }6 83.022 /CMMI10 rf
2631/Fb 134[38 4[30 1[28 1[43 42 1[66 20 2[20 3[37 17[46
26325[73 45 4[55 20[42 42 2[23 46[{ TeXf7b6d320Encoding ReEncodeFont }16
263383.022 /CMSS10 rf /Fc 131[44 1[44 44 44 2[44 44 44 44
26341[44 44 44 44 44 2[44 1[44 1[44 44 44 1[44 1[44 1[44
26351[44 7[44 2[44 1[44 44 44 4[44 1[44 44 44 44 9[44 44
263644 44 44 44 44 44 44 1[44 44 45[{ TeX09fbbfacEncoding ReEncodeFont }43
263783.022 /CMTT10 rf /Fd 134[59 2[59 62 44 44 46 2[56 62
263893 31 2[31 3[51 62 50 1[54 13[62 2[77 2[106 4[88 88 70
26392[81 13[56 56 56 56 56 2[31 46[{ TeXf7b6d320Encoding ReEncodeFont }28
264099.6264 /CMBX12 rf /Fe 132[35 31 37 1[51 37 39 27 28
264128 37 39 35 39 59 20 37 1[20 39 35 22 31 39 31 39 35
264213[39 5[65 3[25 4[54 1[50 12[35 35 35 35 35 35 1[20 1[20
26432[27 27 27[39 12[{ TeXf7b6d320Encoding ReEncodeFont }41
264466.4176 /CMR8 rf /Ff 201[30 4[30 49[{ TeXf7b6d320Encoding ReEncodeFont }
26452 49.8132 /CMR6 rf /Fg 203[33 33 33 33 49[{
2646 TeXf7b6d320Encoding ReEncodeFont }4 58.1154 /CMR7 rf
2647/Fh 240[42 15[{ TeXbbad153fEncoding ReEncodeFont }1 83.022
2648/CMSY10 rf /Fi 132[48 1[50 4[37 38 39 1[53 48 53 1[27
26492[27 3[44 1[42 1[46 12[66 1[72 1[65 1[75 19[27 5[48 1[48
265048 2[27 46[{ TeXf7b6d320Encoding ReEncodeFont }22 83.022
2651/CMBX10 rf /Fj 134[40 39 55 38 45 28 34 35 1[42 42 47
26521[21 2[25 42 1[25 38 42 38 1[42 12[59 47 14[63 1[58 2[42
265317[30 3[34 34 27[47 12[{ TeX74afc74cEncoding ReEncodeFont }28
265483.022 /CMTI10 rf /Fk 133[37 44 44 60 44 46 32 33 33
265544 46 42 46 69 23 44 25 23 46 42 25 37 46 37 46 42 4[42
26563[62 1[62 62 60 46 61 4[76 52 2[30 2[54 1[63 60 1[62
26573[65 2[23 42 42 1[42 1[42 42 42 42 42 42 23 28 23 2[32
265832 5[42 20[46 46 12[{ TeXf7b6d320Encoding ReEncodeFont }59
265983.022 /CMR10 rf /Fl 134[71 71 2[75 52 53 55 1[75 67
266075 112 37 2[37 75 2[61 75 60 1[65 12[94 10[50 105 1[85
266188 16[67 67 67 67 49[{ TeXf7b6d320Encoding ReEncodeFont }26
2662119.552 /CMBX12 rf /Fm 137[51 1[38 1[38 2[49 54 81 7[43
26632[54 14[54 4[73 12[73 8[49 3[49 1[49 1[49 3[27 32[57
266411[{ TeXf7b6d320Encoding ReEncodeFont }17 99.6264 /CMR12
2665rf /Fn 134[70 3[73 51 52 51 1[73 66 73 111 36 2[36 73
26661[40 58 3[66 10[99 2[73 5[122 83 2[47 1[104 86 19[66
266766 2[36 43 45[{ TeXf7b6d320Encoding ReEncodeFont }26
2668143.462 /CMR17 rf end
2669%%EndProlog
2670%%BeginSetup
2671%%Feature: *Resolution 600dpi
2672TeXDict begin
2673%%BeginPaperSize: a4
2674a4
2675%%EndPaperSize
2676 end
2677%%EndSetup
2678%%Page: 1 1
2679TeXDict begin 1 0 bop 668 872 a Fn(Geometry)43 b(Input)h(File)f(F)-11
2680b(ormat)43 b(for)f(LSMearth)h(-)1612 1054 y(V)-11 b(ersion)43
2681b(1.2.)1699 1295 y Fm(Ste\013en)33 b(Ab)s(e)1565 1491
2682y(No)m(v)m(em)m(b)s(er)h(8,)f(2004)515 1848 y Fl(1)134
2683b(In)l(tro)t(duction)515 2030 y Fk(The)29 b(input)g(\014le)g(describ)r
2684(ed)g(here)f(con)n(tains)g(only)g(the)h(description)f(of)h(the)g(mo)r
2685(del)g(geom-)515 2130 y(etry)-7 b(.)63 b(The)36 b(material)g(prop)r
2686(erties)f(of)i(the)f(particles)g(\(densit)n(y)h(.)14
2687b(.)f(.)h(\))64 b(and)36 b(in)n(teractions)515 2229 y(\(spring)g
2688(constan)n(t,)h(breaking)e(distance)h(.)14 b(.)g(.)g(\))64
2689b(are)35 b(describ)r(ed)h(elsewhere,)i(either)e(in)g(a)515
26902329 y(separate)d(prop)r(erties)g(\014le)h(or)g(in)g(the)h(script)f
2691Fj(TBD)p Fk(.)h(In)f(order)f(to)h(facilitate)g(this,)j(b)r(oth)515
26922428 y(particles)27 b(and)g(prede\014ned)g(connections/in)n(teractions)
2693f(ha)n(v)n(e)g(tags.)515 2644 y Fi(Rationale:)639 2797
2694y Fh(\017)41 b Fk(Mak)n(es)23 b(it)i(p)r(ossible)f(to)g(c)n(hange)f
2695(the)h(prop)r(erties)f(indep)r(enden)n(tly)i(from)f(the)g(geome-)722
26962897 y(tries,)g(for)e(example)g(in)h(order)e(to)i(easily)f(run)g(a)g
2697(suite)h(of)g(sim)n(ulation)f(with)h(iden)n(tical)722
26982997 y(geometries)j(but)j(v)-5 b(arying)26 b(material)h(prop)r(erties.)
2699515 3179 y(The)41 b(input)h(\014les)g(are)e(pure)h(ASCI)r(I)i(\014les)e
2700(formatted)g(in)h(the)g(w)n(a)n(y)e(describ)r(ed)h(in)h(the)515
27013279 y(follo)n(wing)26 b(sections.)515 3495 y Fi(Rationale:)639
27023648 y Fh(\017)41 b Fk(ASCI)r(I)35 b(is)g(preferred)e(o)n(v)n(er)g
2703(binary)h(format)g(for)g(p)r(ortabilit)n(y)g(and)g(debuggabilit)n(y)722
27043748 y(reasons.)639 3914 y Fh(\017)41 b Fk(Using)28 b(some)f
2705(\\standard")e(description)i(language,)f(i.e.)37 b(XML)28
2706b(seems)816 4080 y Fi({)41 b Fk(unnecessary)32 b(as)g(the)h(\014les)g
2707(are)g(mac)n(hine)f(generated)g(and)h(read,)h(whic)n(h)f(re-)905
27084179 y(duces)27 b(the)h(need)g(for)f(\015exibilit)n(y)h(and)f(v)n(erb)r
2709(osit)n(y)816 4312 y Fi({)41 b Fk(a)28 b(sub)r(optimal)g(solution)g
2710(with)h(resp)r(ect)f(to)g(\014le)g(size,)g(i.e.)39 b(a)28
2711b(million)h(particle)905 4412 y(\014le)f(w)n(ould)f(gro)n(w)f(quite)i
2712(large)e(if)i(XML)g(w)n(as)e(used)2538 4382 y Fg(1)p
2713515 4481 1146 4 v 607 4535 a Ff(1)642 4558 y Fe(It)31
2714b(w)n(ould)g(b)r(e)h(quite)f(large)g(an)n(yw)n(a)n(y)-6
2715b(,)34 b(somewhere)d(around)h(40{50)g(b)n(yte)g(p)r(er)f(particle)g
2716(and)h(15{20)515 4637 y(b)n(yte)26 b(p)r(er)e(connection,)j(i.e.)34
2717b(a)25 b(\014le)f(describing)h(a)g(mo)r(del)g(consisting)g(of)f(10)2554
27184614 y Ff(6)2614 4637 y Fe(part)h(in)g(a)f(fully)g(connected)515
27194716 y(regular)30 b(3D)h(lattice)g(w)n(ould)g(ha)n(v)n(e)h(a)e(size)h
2720(around)g(100MB.)g(So)g(w)n(e)g(ma)n(y)g(lo)r(ok)f(at)i(using)e
2721(compressed)515 4795 y(\(libz,)23 b(libbz2\))h(\014les)g(at)g(some)g
2722(later)g(stage.)1926 5255 y Fk(1)p eop end
2723%%Page: 2 2
2724TeXDict begin 2 1 bop 515 523 a Fl(2)134 b(The)45 b(File)g(F)-11
2725b(ormat)515 705 y Fk(The)35 b(geometry)f(\014le)h(sp)r(eci\014es)g(the)
2726h(o)n(v)n(erall)d(mo)r(del)i(geometry)-7 b(,)36 b(the)g(particle)f(p)r
2727(ositions)515 805 y(and)i(geometries,)j(the)e(assignmen)n(t)f(of)h(the)
2728g(particles)f(to)h(some)f(particle)h(groups)e(and)515
2729904 y(the)d(initial)g(connectivit)n(y)g(b)r(et)n(w)n(een)g(particles,)h
2730(i.e.)53 b(the)33 b(b)r(onds.)54 b(In)33 b(case)f(of)h(spherical)515
27311004 y(particles)27 b(the)g(p)r(er-particle)g(geometry)f(is)i(reduced)f
2732(to)h(just)g(the)g(particle)f(radius.)515 1235 y Fd(2.1)112
2733b(File)38 b(Structure)515 1388 y Fk(The)27 b(geometry)g(\014le)g
2734(consist)h(of)f(a)g(header)g(and)g(3)h(con)n(ten)n(t)f(sections:)616
27351549 y(1.)41 b(The)34 b(\\mo)r(del)g(geometry")e(section)i(whic)n(h)g
2736(con)n(tains)f(the)h(con)n(taining)f(v)n(olume\(s\))722
27371649 y(of)28 b(the)g(mo)r(del)g(and)f(de\014nition)h(of)g(circular)e
2738(\(p)r(erio)r(dic\))i(b)r(oundary)f(conditions)616 1812
2739y(2.)41 b(The)28 b(\\particles")e(section)616 1976 y(3.)41
2740b(The)28 b(\\connections")e(section)515 2207 y Fd(2.2)112
2741b(Header)515 2360 y Fk(The)33 b(header)g(just)i(con)n(tains)d(an)i
2742(iden)n(ti\014er)f(for)g(the)i(\014le)e(t)n(yp)r(e)h(and)g(the)g(v)n
2743(ersion)e(of)i(the)515 2460 y(\014le.)515 2620 y Fc(LSMGeometry)39
2744b(1.2)515 2781 y Fk(where)27 b Fb(LSMGeometry)i Fk(is)e(the)h(iden)n
2745(ti\014er)g(and)f Fb(1.2)g Fk(the)h(curren)n(t)e(v)n(ersion)g(n)n(um)n
2746(b)r(er.)515 3013 y Fd(2.3)112 b(Mo)s(del)38 b(Geometry)515
27473166 y Fk(The)33 b(mo)r(del)g(geometry)f(section)g(con)n(tains)h(a)f
2748(description)h(of)g(the)g(v)n(olume\(s\))g(in)g(whic)n(h)515
27493265 y(the)39 b(mo)r(del)h(is)f(con)n(tained,)i(a)e(de\014nition)g
2750(whic)n(h)g(of)g(the)h(b)r(oundaries)e(of)h(this)h(v)n(olume)515
27513365 y(are)33 b(p)r(erio)r(dic)i(and)g(the)g(dimensionalit)n(y)f(of)g
2752(the)h(mo)r(del.)59 b(In)35 b(the)g(curren)n(t)f(v)n(ersion)f(the)515
27533465 y(con)n(taining)e(v)n(olume)h(is)g(just)h(an)f(axis)g(aligned)g(b)
2754r(ounding)g(b)r(o)n(x)g(whic)n(h)h(is)f(giv)n(en)g(b)n(y)g(the)515
27553564 y(co)r(ordinates)27 b(of)j(minim)n(um)g(and)f(maxim)n(um)g
2756(corners.)40 b(The)29 b(b)r(oundaries)f(are)g(describ)r(ed)515
27573664 y(b)n(y)c(a)h(b)r(o)r(olean)g(v)-5 b(alue)24 b(\(0,1\))h(for)g
2758(eac)n(h)f(co)r(ordinate)g(axis,)h(where)f(1)h(stands)f(for)h(p)r(erio)
2759r(dic,)g(0)515 3764 y(for)30 b(non-p)r(erio)r(dic.)46
2760b(The)31 b(distinction)g(b)r(et)n(w)n(een)g(2D)g(and)f(3D)h(mo)r(dels)g
2761(is)g(done)f(b)r(et)n(w)n(een)515 3863 y(done)h(in)h(order)e(to)i(b)r
2762(e)g(able)f(to)h(calculate)f(the)h(correct)e(v)n(olume)h(of)g(a)h
2763(particle)f(from)g(its)515 3963 y(radius,)g(i.e.)47 b
2764Fa(\031)s(r)1034 3933 y Fg(2)1103 3963 y Fk(vs.)1260
27653930 y Fg(4)p 1260 3944 34 4 v 1260 3991 a(3)1303 3963
2766y Fa(\031)s(r)1392 3933 y Fg(3)1430 3963 y Fk(.)h(F)-7
2767b(or)30 b(V)-7 b(ersion)30 b(1.1.)46 b(\014les)31 b(whic)n(h)g(ha)n(v)n
2768(e)f(no)h(dimensionalit)n(y)515 4062 y(giv)n(en,)c(2D)g(is)h(assumed.)
2769515 4223 y Fc(BoundingBox)39 b(min.x)i(min.y)h(min.z)f(max.x)h(max.y)f
2770(max.z)515 4323 y(PeriodicBoundari)o(es)c(x)43 b(y)g(z)515
27714422 y(Dimensions)c([2D|3D])515 4654 y Fd(2.4)112 b(P)m(articles)515
27724807 y Fk(The)32 b(particle)f(section)h(of)g(the)g(geometry)f(\014le)h
2773(con)n(tains)f(b)r(eginning)h(and)g(end)g(mark)n(ers,)515
27744907 y(a)h(k)n(eyw)n(ord)e(for)i(the)h(particle)f(t)n(yp)r(e,)i(i.e.)54
2775b Fb(Simple)34 b Fk(for)e(simple)i(\(irrotational\))e(spherical)515
27765006 y(particles,)21 b(the)f(total)g(n)n(um)n(b)r(er)g(of)g(particles)g
2777(and)g(a)g(set)g(of)g(data)g(for)f(eac)n(h)h(particle.)34
2778b(In)20 b(case)1926 5255 y(2)p eop end
2779%%Page: 3 3
2780TeXDict begin 3 2 bop 515 523 a Fk(of)30 b(spherical)e(particles)i
2781(these)f(data)h(consist)f(of)h(the)g(p)r(osition)g(\(v)n(ector\),)g
2782(radius)f(\(\015oat\),)515 623 y(particle)24 b(id)g(\(in)n(t\))i(and)e
2783(the)h(particle)f(tag)g(\(in)n(t\).)37 b(The)24 b(tag)g(is)h(used)f(to)
2784g(assign)g(the)h(particle)515 722 y(to)i(sp)r(eci\014c)h(particle)f
2785(groups.)515 888 y Fc(BeginParticles)515 988 y(Simple)515
27861088 y(nparticles)515 1187 y(pos0.x)41 b(pos0.y)g(pos0.z)g(rad0)h(id0)g
2787(tag0)515 1287 y(pos1.x)f(pos1.y)g(pos1.z)g(rad1)h(id1)g(tag1)515
27881386 y(pos2.x)f(pos2.y)g(pos2.z)g(rad2)h(id2)g(tag2)515
27891486 y(...)515 1586 y(posN.x)f(posN.y)g(posN.z)g(radN)h(idN)g(tagN)515
27901685 y(EndParticles)515 1901 y Fi(2.4.1)93 b(P)m(article)33
2791b(T)m(yp)s(es)p 515 1983 1637 4 v 513 2082 4 100 v 565
27922052 a Fk(k)n(eyw)n(ord)p 992 2082 V 177 w(description)p
27932149 2082 V 515 2085 1637 4 v 515 2102 V 513 2202 4 100
2794v 565 2172 a(Simple)p 992 2202 V 235 w(irrotational)25
2795b(spherical)i(particle)p 2149 2202 V 513 2301 V 565 2271
2796a(SimpleRot)p 992 2301 V 100 w(rotational)f(spherical)g(particle)p
27972149 2301 V 515 2305 1637 4 v 515 2498 a Fd(2.5)112 b(Connectivit)m(y)
2798515 2652 y Fk(A)25 b(list)h(of)f(prede\014ned)h(connections)e(b)r(et)n
2799(w)n(een)i(particles)e(is)h(necessary)f(for)h(the)h(de\014nition)515
28002751 y(of)f(particle)f(in)n(teractions)g(whic)n(h)h(are)f(p)r(ersisten)
2801n(t)h(and)g(not)g(dynamically)f(formed)h(during)515 2851
2802y(the)20 b(sim)n(ulation,)h(i.e.)35 b(b)r(onds.)f(The)20
2803b(connectivit)n(y)g(section)g(of)g(the)g(geometry)f(\014le)h(con)n
2804(tains)515 2950 y(b)r(eginning)25 b(and)h(end)f(mark)n(ers,)f(the)i(n)n
2805(um)n(b)r(er)f(of)h(connections)f(and)g(for)g(eac)n(h)g(connection)515
28063050 y(the)39 b(ids)f(\(in)n(t\))h(of)g(the)g(t)n(w)n(o)e(particles)h
2807(in)n(v)n(olv)n(ed)f(and)h(a)g(tag)g(\(in)n(t\))h(whic)n(h)g(assigns)e
2808(the)515 3150 y(connection)25 b(to)g(a)g(connection)g(group.)35
2809b(The)25 b(pairs)f(of)i(particle)e(ids)i(m)n(ust)f(b)r(e)h(ordered)e
2810(i.e.)515 3249 y(the)k(\014rst)f(id)h(m)n(ust)g(b)r(e)g(less)f(than)g
2811(the)h(second)f(one.)515 3415 y Fc(BeginConnect)515 3515
2812y(nconnect)515 3615 y(id0_1)41 b(id0_2)h(tag0)515 3714
2813y(id1_1)f(id1_2)h(tag1)515 3814 y(id2_1)f(id2_2)h(tag2)515
28143913 y(...)515 4013 y(idN_1)f(idN_2)h(tagN)515 4113 y(EndConnect)515
28154279 y Fj(Should)30 b(we)g(de\014ne)f(the)h(syntax)f(for)h(n-p)l
2816(article)g(\()p Fa(n)23 b(>)g Fk(2)p Fj(\))29 b(c)l(onne)l(ctions)g(or)
2817h(le)l(ave)h(that)e(for)515 4378 y(later)h(versions?)515
28184653 y Fl(3)134 b(Example)515 4835 y Fk(Simple)24 b(example:)35
2819b(b)r(oundaries)23 b(p)r(erio)r(dic)g(in)h(x,)h(op)r(en)f(in)g(y)f(and)
2820h(z,)h(8)e(irrotational)f(spher-)515 4934 y(ical)32 b(particles)g(of)g
2821(radius)g(1.0,)h(p)r(ositioned)g(at)f(the)h(corners)e(of)i(a)f(cub)r(e)
2822h(and)f(connected)1926 5255 y(3)p eop end
2823%%Page: 4 4
2824TeXDict begin 4 3 bop 515 523 a Fk(along)23 b(the)i(edges)f(of)g(the)h
2825(cub)r(e.)36 b(The)25 b(particles)e(are)h(group)r(ed)g(in)n(to)g(2)g
2826(groups,)g(represen)n(t-)515 623 y(ing)k(the)i(particles)e(with)h
2827Fa(y)f Fk(=)d(0)j(and)h Fa(y)f Fk(=)d(2)j(resp)r(ectiv)n(ely)-7
2828b(.)40 b(The)29 b(tags)f(are)g(0)h(for)f Fa(y)g Fk(=)d(0)p
2829Fa(:)p Fk(0)515 722 y(and)30 b(1)g(for)f Fa(y)i Fk(=)c(2)p
2830Fa(:)p Fk(0.)44 b(The)30 b(connections)g(all)g(b)r(elong)g(to)g(the)g
2831(same)g(group.)44 b Fi(Note:)d Fk(The)515 822 y(particle)25
2832b(tags)f(and)h(the)h(connection)f(tags)f(are)h(indep)r(enden)n(t)h(of)f
2833(eac)n(h)g(other,)g(i.e.)36 b(w)n(e)25 b(can)515 922
2834y(use)i(\\0")f(as)h(a)h(connection)f(tag)g(ev)n(en)g(if)h(\\0")e(is)h
2835(already)g(used)g(as)g(a)g(particle)g(tag.)515 1088 y
2836Fc(LSMGeometry)39 b(1.2)515 1187 y(BoundingBox)g(-1.0)j(-1.0)g(-1.0)g
2837(3.0)g(3.0)g(3.0)515 1287 y(PeriodicBoundari)o(es)37
2838b(1)43 b(0)g(0)515 1386 y(Dimension)d(3D)515 1486 y(BeginParticles)515
28391586 y(Simple)515 1685 y(8)515 1785 y(0.0)i(0.0)g(0.0)h(1.0)f(0)h(0)515
28401885 y(0.0)f(0.0)g(1.0)h(1.0)f(1)h(0)515 1984 y(0.0)f(1.0)g(0.0)h(1.0)f
2841(2)h(1)515 2084 y(0.0)f(1.0)g(1.0)h(1.0)f(3)h(1)515 2183
2842y(1.0)f(0.0)g(0.0)h(1.0)f(4)h(0)515 2283 y(1.0)f(0.0)g(1.0)h(1.0)f(5)h
2843(0)515 2383 y(1.0)f(1.0)g(0.0)h(1.0)f(6)h(1)515 2482
2844y(1.0)f(1.0)g(1.0)h(1.0)f(7)h(1)515 2582 y(EndParticles)515
28452682 y(BeginConnect)515 2781 y(12)515 2881 y(0)g(1)g(0)515
28462980 y(0)g(2)g(0)515 3080 y(0)g(4)g(0)515 3180 y(1)g(3)g(0)515
28473279 y(1)g(5)g(0)515 3379 y(2)g(3)g(0)515 3479 y(2)g(6)g(0)515
28483578 y(3)g(7)g(0)515 3678 y(4)g(5)g(0)515 3778 y(4)g(6)g(0)515
28493877 y(5)g(7)g(0)515 3977 y(6)g(7)g(0)515 4076 y(EndConnect)515
28504351 y Fl(4)134 b(History)p 515 4468 2753 4 v 513 4568
28514 100 v 565 4538 a Fk(10.6.2003)p 949 4568 V 96 w(initial)28
2852b(v)n(ersion)p 3265 4568 V 513 4667 V 565 4637 a(11.9.2003)p
2853949 4667 V 96 w(v)n(ersion)e(1.1)h(,)g(c)n(hanged)g(from)g(m)n(ultiple)
2854h(to)g(single)f(tag)g(for)g(particles)p 3265 4667 V 513
28554767 V 606 4737 a(3.2.2004)p 949 4767 V 97 w(v)n(ersion)f(1.2.,)h
2856(added)g(2D/3D)g(indication)p 3265 4767 V 515 4770 2753
28574 v 1926 5255 a(4)p eop end
2858%%Trailer
2859
2860userdict /end-hook known{end-hook}if
2861%%EOF
02862
=== added file 'trunk/Doc/FileFormat.tex'
--- trunk/Doc/FileFormat.tex 1970-01-01 00:00:00 +0000
+++ trunk/Doc/FileFormat.tex 2013-05-08 08:43:26 +0000
@@ -0,0 +1,144 @@
1\documentclass{article}
2
3\begin{document}
4\title{Geometry Input File Format for ESyS-Particle - Version 2.0.}
5\author{Steffen Abe}
6\date{\today}
7\maketitle
8
9\section{Introduction}
10The input file described here contains only the description of the model geometry. The material properties of the particles (density \dots) and interactions (spring constant, breaking distance \dots) are described elsewhere, either in a separate properties file or in the script \textit{TBD}. In order to facilitate this, both particles and predefined connections/interactions have tags.
11\subsubsection*{Rationale:}
12\begin{itemize}
13\item Makes it possible to change the properties
14independently from the geometries, for example in order to easily run a suite of simulation with identical geometries but varying material properties.
15\end{itemize}
16The input files are pure ASCII files formatted in the way described in the following sections.
17\subsubsection*{Rationale:}
18\begin{itemize}
19\item ASCII is preferred over binary format for portability and debuggability reasons.
20\item Using some ``standard'' description language, i.e. XML seems
21 \begin{itemize}
22 \item unnecessary as the files are machine generated and read, which reduces the need for flexibility and verbosity
23 \item a suboptimal solution with respect to file size, i.e. a million particle file would grow quite large if XML was used \footnote{It would be quite large anyway, somewhere around 40--50 byte per particle and 15--20 byte per connection, i.e. a file describing a model consisting of $10^6$ part in a fully connected regular 3D lattice would have a size around 100MB. So we may look at using compressed (libz, libbz2) files at some later stage.}
24 \end{itemize}
25\end{itemize}
26
27
28\section{The File Format}
29
30The geometry file specifies the overall model geometry, the particle positions and geometries, the assignment of the particles to some particle groups and the initial connectivity between particles, i.e. the bonds. In case of spherical particles the per-particle geometry is reduced to just the particle radius.
31\subsection{File Structure}
32The geometry file consist of a header and 3 content sections:
33\begin{enumerate}
34\item The ``model geometry'' section which contains the containing volume(s) of the model and definition of circular (periodic) boundary conditions
35\item The ``particles'' section
36\item The ``connections'' section
37\end{enumerate}
38\subsection{Header}
39The header just contains an identifier for the file type and the version of the file.
40\begin{verbatim}
41LSMGeometry 1.2
42\end{verbatim}
43where \textsf{LSMGeometry} is the identifier and \textsf{1.2} the current version number.
44
45
46\subsection{Model Geometry}
47
48The model geometry section contains a description of the volume(s) in which the model is contained, a definition which of the boundaries of this volume are periodic and the dimensionality of the model. In the current version the containing volume is just an axis aligned bounding box which is given by the coordinates of minimum and maximum corners. The boundaries are described by a boolean value (0,1) for each coordinate axis, where 1 stands for periodic, 0 for non-periodic. The distinction between 2D and 3D models is done between done in order to be able to calculate the correct volume of a particle from its radius, i.e. $\pi r^2$ vs. ${4 \over 3} \pi r^3$. For Version 1.1. files which have no dimensionality given, 2D is assumed.
49\begin{verbatim}
50BoundingBox min.x min.y min.z max.x max.y max.z
51PeriodicBoundaries x y z
52Dimensions [2D|3D]
53\end{verbatim}
54
55
56\subsection{Particles}
57
58The particle section of the geometry file contains beginning and end markers, a keyword for the particle type, i.e. \textsf{Simple} for simple (irrotational) spherical particles, the total number of particles and a set of data for each particle. In case of spherical particles these data consist of the position (vector), radius (float), particle id (int) and the particle tag (int). The tag is used to assign the particle to specific particle groups.
59\begin{verbatim}
60BeginParticles
61Simple
62nparticles
63pos0.x pos0.y pos0.z rad0 id0 tag0
64pos1.x pos1.y pos1.z rad1 id1 tag1
65pos2.x pos2.y pos2.z rad2 id2 tag2
66...
67posN.x posN.y posN.z radN idN tagN
68EndParticles
69\end{verbatim}
70\subsubsection{Particle Types}
71\begin{tabular}[h!]{|l|l|}
72\hline
73keyword & description \\
74\hline
75\hline
76Simple & irrotational spherical particle \\
77%SimpleRot & rotational spherical particle \\
78\hline
79\end{tabular}
80
81
82\subsection{Connectivity}
83
84A list of predefined connections between particles is necessary for the definition of particle interactions which are persistent and not dynamically formed during the simulation, i.e. bonds. The connectivity section of the geometry file contains beginning and end markers, the number of connections and for each connection the ids (int) of the two particles involved and a tag (int) which assigns the connection to a connection group. The pairs of particle ids must be ordered i.e. the first id must be less than the second one.
85\begin{verbatim}
86BeginConnect
87nconnect
88id0_1 id0_2 tag0
89id1_1 id1_2 tag1
90id2_1 id2_2 tag2
91...
92idN_1 idN_2 tagN
93EndConnect
94\end{verbatim}
95\textit{Should we define the syntax for n-particle ($n>2$) connections or leave that for later versions?}
96\label{sec:prp}
97\section{Example}
98Simple example: boundaries periodic in x, open in y and z, 8 irrotational spherical particles of radius 1.0, positioned at the corners of a cube and connected along the edges of the cube. The particles are grouped into 2 groups, representing the particles with $y=0$ and $y=2$ respectively. The tags are 0 for $y=0.0$ and 1 for $y=2.0$. The connections all belong to the same group. \textbf{Note:} The particle tags and the connection tags are independent of each other, i.e. we can use ``0'' as a connection tag even if ``0'' is already used as a particle tag.
99%%\newpage
100\begin{verbatim}
101LSMGeometry 1.2
102BoundingBox -1.0 -1.0 -1.0 3.0 3.0 3.0
103PeriodicBoundaries 1 0 0
104Dimension 3D
105BeginParticles
106Simple
1078
1080.0 0.0 0.0 1.0 0 0
1090.0 0.0 1.0 1.0 1 0
1100.0 1.0 0.0 1.0 2 1
1110.0 1.0 1.0 1.0 3 1
1121.0 0.0 0.0 1.0 4 0
1131.0 0.0 1.0 1.0 5 0
1141.0 1.0 0.0 1.0 6 1
1151.0 1.0 1.0 1.0 7 1
116EndParticles
117BeginConnect
11812
1190 1 0
1200 2 0
1210 4 0
1221 3 0
1231 5 0
1242 3 0
1252 6 0
1263 7 0
1274 5 0
1284 6 0
1295 7 0
1306 7 0
131EndConnect
132\end{verbatim}
133
134
135\section{History}
136\begin{tabular}{|r|l|}
137\hline
13810.6.2003 & initial version \\
13911.9.2003 & version 1.1 , changed from multiple to single tag for particles \\
1403.2.2004 & version 1.2., added 2D/3D indication \\
14117.2.2011 & SimpleRot is no longer supported by ESyS-Particle, with the Simple particle type now encompassing both rotational and irrotational particles
142\hline
143\end{tabular}
144\end{document}
0145
=== added file 'trunk/Doc/FileFormat.txt'
--- trunk/Doc/FileFormat.txt 1970-01-01 00:00:00 +0000
+++ trunk/Doc/FileFormat.txt 2013-05-08 08:43:26 +0000
@@ -0,0 +1,11 @@
1
2
3Input File Format for ESyS-Particle
4
5
6v0.01, 10.06.2003
7-------------------
8
9The input is split into 2 Files, one for geometry (.geo), one for material
10properties (.prp). Rationale: Makes it possible to exchange the properties
11independently from the
012
=== added directory 'trunk/Doc/Manual'
=== added file 'trunk/Doc/Manual/distutils.sty'
--- trunk/Doc/Manual/distutils.sty 1970-01-01 00:00:00 +0000
+++ trunk/Doc/Manual/distutils.sty 2013-05-08 08:43:26 +0000
@@ -0,0 +1,33 @@
1%
2% LaTeX commands and macros needed for the two Distutils manuals,
3% inst.tex and dist.tex.
4%
5% $Id$
6%
7
8% My gripe list about the Python style files:
9% * I want italics in verbatim environments for variable
10% text (verbatim.sty?)
11% * I hate escaping underscores (url.sty fixes this)
12
13% '\command' is for Distutils commands which, depending on your
14% perspective, are just arguments to the setup script, or sub-
15% commands of the setup script, or the classes that implement
16% each "command".
17\newcommand{\command}[1]{\code{#1}}
18
19% '\option' is for Distutils options *in* the setup script. Command-
20% line options *to* the setup script are marked up in the usual
21% way, ie. with '\programopt' or '\longprogramopt'
22\newcommand{\option}[1]{\textsf{\small{#1}}}
23
24% '\filevar' is for variable components of file/path names -- eg.
25% when you put 'prefix' in a pathname, you mark it up with
26% '\filevar' so that it still looks pathname-ish, but is
27% distinguished from the literal part of the path. Fred says
28% this can be accomplished just fine with '\var', but I violently
29% disagree. Pistols at dawn will sort this one out.
30\newcommand{\filevar}[1]{{\textsl{\filenq{#1}}}}
31
32% Just while the code and docs are still under development.
33\newcommand{\XXX}[1]{\textbf{**#1**}}
034
=== added file 'trunk/Doc/Manual/dump-file.tex'
--- trunk/Doc/Manual/dump-file.tex 1970-01-01 00:00:00 +0000
+++ trunk/Doc/Manual/dump-file.tex 2013-05-08 08:43:26 +0000
@@ -0,0 +1,2 @@
1\chapter{The Checkpoint Data Format}
2\label{app::dump}
03
=== added file 'trunk/Doc/Manual/fancyhdr.sty'
--- trunk/Doc/Manual/fancyhdr.sty 1970-01-01 00:00:00 +0000
+++ trunk/Doc/Manual/fancyhdr.sty 2013-05-08 08:43:26 +0000
@@ -0,0 +1,329 @@
1% fancyhdr.sty version 1.99d
2% Fancy headers and footers for LaTeX.
3% Piet van Oostrum, Dept of Computer Science, University of Utrecht
4% Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands
5% Telephone: +31 30 2532180. Email: piet@cs.ruu.nl
6% ========================================================================
7% LICENCE: This is free software. You are allowed to use and distribute
8% this software in any way you like. You are also allowed to make modified
9% versions of it, but you can distribute a modified version only if you
10% clearly indicate that it is a modified version and the person(s) who
11% modified it. This indication should be in a prominent place, e.g. in the
12% top of the file. If possible a contact address, preferably by email,
13% should be given for these persons. If that is feasible the modifications
14% should be indicated in the source code.
15% ========================================================================
16% MODIFICATION HISTORY:
17% Sep 16, 1994
18% version 1.4: Correction for use with \reversemargin
19% Sep 29, 1994:
20% version 1.5: Added the \iftopfloat, \ifbotfloat and \iffloatpage commands
21% Oct 4, 1994:
22% version 1.6: Reset single spacing in headers/footers for use with
23% setspace.sty or doublespace.sty
24% Oct 4, 1994:
25% version 1.7: changed \let\@mkboth\markboth to
26% \def\@mkboth{\protect\markboth} to make it more robust
27% Dec 5, 1994:
28% version 1.8: corrections for amsbook/amsart: define \@chapapp and (more
29% importantly) use the \chapter/sectionmark definitions from ps@headings if
30% they exist (which should be true for all standard classes).
31% May 31, 1995:
32% version 1.9: The proposed \renewcommand{\headrulewidth}{\iffloatpage...
33% construction in the doc did not work properly with the fancyplain style.
34% June 1, 1995:
35% version 1.91: The definition of \@mkboth wasn't restored on subsequent
36% \pagestyle{fancy}'s.
37% June 1, 1995:
38% version 1.92: The sequence \pagestyle{fancyplain} \pagestyle{plain}
39% \pagestyle{fancy} would erroneously select the plain version.
40% June 1, 1995:
41% version 1.93: \fancypagestyle command added.
42% Dec 11, 1995:
43% version 1.94: suggested by Conrad Hughes <chughes@maths.tcd.ie>
44% CJCH, Dec 11, 1995: added \footruleskip to allow control over footrule
45% position (old hardcoded value of .3\normalbaselineskip is far too high
46% when used with very small footer fonts).
47% Jan 31, 1996:
48% version 1.95: call \@normalsize in the reset code if that is defined,
49% otherwise \normalsize.
50% this is to solve a problem with ucthesis.cls, as this doesn't
51% define \@currsize. Unfortunately for latex209 calling \normalsize doesn't
52% work as this is optimized to do very little, so there \@normalsize should
53% be called. Hopefully this code works for all versions of LaTeX known to
54% mankind.
55% April 25, 1996:
56% version 1.96: initialize \headwidth to a magic (negative) value to catch
57% most common cases that people change it before calling \pagestyle{fancy}.
58% Note it can't be initialized when reading in this file, because
59% \textwidth could be changed afterwards. This is quite probable.
60% We also switch to \MakeUppercase rather than \uppercase and introduce a
61% \nouppercase command for use in headers. and footers.
62% May 3, 1996:
63% version 1.97: Two changes:
64% 1. Undo the change in version 1.8 (using the pagestyle{headings} defaults
65% for the chapter and section marks. The current version of amsbook and
66% amsart classes don't seem to need them anymore. Moreover the standard
67% latex classes don't use \markboth if twoside isn't selected, and this is
68% confusing as \leftmark doesn't work as expected.
69% 2. include a call to \ps@empty in ps@@fancy. This is to solve a problem
70% in the amsbook and amsart classes, that make global changes to \topskip,
71% which are reset in \ps@empty. Hopefully this doesn't break other things.
72% May 7, 1996:
73% version 1.98:
74% Added % after the line \def\nouppercase
75% May 7, 1996:
76% version 1.99: This is the alpha version of fancyhdr 2.0
77% Introduced the new commands \fancyhead, \fancyfoot, and \fancyhf.
78% Changed \headrulewidth, \footrulewidth, \footruleskip to
79% macros rather than length parameters, In this way they can be
80% conditionalized and they don't consume length registers. There is no need
81% to have them as length registers unless you want to do calculations with
82% them, which is unlikely. Note that this may make some uses of them
83% incompatible (i.e. if you have a file that uses \setlength or \xxxx=)
84% May 10, 1996:
85% version 1.99a:
86% Added a few more % signs
87% May 10, 1996:
88% version 1.99b:
89% Changed the syntax of \f@nfor to be resistent to catcode changes of :=
90% Removed the [1] from the defs of \lhead etc. because the parameter is
91% consumed by the \@[xy]lhead etc. macros.
92% June 24, 1997:
93% version 1.99c:
94% corrected \nouppercase to also include the protected form of \MakeUppercase
95% \global added to manipulation of \headwidth.
96% \iffootnote command added.
97% Some comments added about \@fancyhead and \@fancyfoot.
98% Aug 24, 1998
99% version 1.99d
100% Changed the default \ps@empty to \ps@@empty in order to allow
101% \fancypagestyle{empty} redefinition.
102
103\let\fancy@def\gdef
104
105\def\if@mpty#1#2#3{\def\temp@ty{#1}\ifx\@empty\temp@ty #2\else#3\fi}
106
107% Usage: \@forc \var{charstring}{command to be executed for each char}
108% This is similar to LaTeX's \@tfor, but expands the charstring.
109
110\def\@forc#1#2#3{\expandafter\f@rc\expandafter#1\expandafter{#2}{#3}}
111\def\f@rc#1#2#3{\def\temp@ty{#2}\ifx\@empty\temp@ty\else
112 \f@@rc#1#2\f@@rc{#3}\fi}
113\def\f@@rc#1#2#3\f@@rc#4{\def#1{#2}#4\f@rc#1{#3}{#4}}
114
115% Usage: \f@nfor\name:=list\do{body}
116% Like LaTeX's \@for but an empty list is treated as a list with an empty
117% element
118
119\newcommand{\f@nfor}[3]{\edef\@fortmp{#2}%
120 \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}}
121
122% Usage: \def@ult \cs{defaults}{argument}
123% sets \cs to the characters from defaults appearing in argument
124% or defaults if it would be empty. All characters are lowercased.
125
126\newcommand\def@ult[3]{%
127 \edef\temp@a{\lowercase{\edef\noexpand\temp@a{#3}}}\temp@a
128 \def#1{}%
129 \@forc\tmpf@ra{#2}%
130 {\expandafter\if@in\tmpf@ra\temp@a{\edef#1{#1\tmpf@ra}}{}}%
131 \ifx\@empty#1\def#1{#2}\fi}
132%
133% \if@in <char><set><truecase><falsecase>
134%
135\newcommand{\if@in}[4]{%
136 \edef\temp@a{#2}\def\temp@b##1#1##2\temp@b{\def\temp@b{##1}}%
137 \expandafter\temp@b#2#1\temp@b\ifx\temp@a\temp@b #4\else #3\fi}
138
139\newcommand{\fancyhead}{\@ifnextchar[{\f@ncyhf h}{\f@ncyhf h[]}}
140\newcommand{\fancyfoot}{\@ifnextchar[{\f@ncyhf f}{\f@ncyhf f[]}}
141\newcommand{\fancyhf}{\@ifnextchar[{\f@ncyhf {}}{\f@ncyhf {}[]}}
142
143% The header and footer fields are stored in command sequences with
144% names of the form: \f@ncy<x><y><z> with <x> for [eo], <y> form [lcr]
145% and <z> from [hf].
146
147\def\f@ncyhf#1[#2]#3{%
148 \def\temp@c{}%
149 \@forc\tmpf@ra{#2}%
150 {\expandafter\if@in\tmpf@ra{eolcrhf,EOLCRHF}%
151 {}{\edef\temp@c{\temp@c\tmpf@ra}}}%
152 \ifx\@empty\temp@c\else
153 \ifx\PackageError\undefined
154 \errmessage{Illegal char `\temp@c' in fancyhdr argument:
155 [#2]}\else
156 \PackageError{Fancyhdr}{Illegal char `\temp@c' in fancyhdr argument:
157 [#2]}{}\fi
158 \fi
159 \f@nfor\temp@c{#2}%
160 {\def@ult\f@@@eo{eo}\temp@c
161 \def@ult\f@@@lcr{lcr}\temp@c
162 \def@ult\f@@@hf{hf}{#1\temp@c}%
163 \@forc\f@@eo\f@@@eo
164 {\@forc\f@@lcr\f@@@lcr
165 {\@forc\f@@hf\f@@@hf
166 {\expandafter\fancy@def\csname
167 f@ncy\f@@eo\f@@lcr\f@@hf\endcsname
168 {#3}}}}}}
169
170% Fancyheadings version 1 commands. These are more or less deprecated,
171% but they continue to work.
172
173\newcommand{\lhead}{\@ifnextchar[{\@xlhead}{\@ylhead}}
174\def\@xlhead[#1]#2{\fancy@def\f@ncyelh{#1}\fancy@def\f@ncyolh{#2}}
175\def\@ylhead#1{\fancy@def\f@ncyelh{#1}\fancy@def\f@ncyolh{#1}}
176
177\newcommand{\chead}{\@ifnextchar[{\@xchead}{\@ychead}}
178\def\@xchead[#1]#2{\fancy@def\f@ncyech{#1}\fancy@def\f@ncyoch{#2}}
179\def\@ychead#1{\fancy@def\f@ncyech{#1}\fancy@def\f@ncyoch{#1}}
180
181\newcommand{\rhead}{\@ifnextchar[{\@xrhead}{\@yrhead}}
182\def\@xrhead[#1]#2{\fancy@def\f@ncyerh{#1}\fancy@def\f@ncyorh{#2}}
183\def\@yrhead#1{\fancy@def\f@ncyerh{#1}\fancy@def\f@ncyorh{#1}}
184
185\newcommand{\lfoot}{\@ifnextchar[{\@xlfoot}{\@ylfoot}}
186\def\@xlfoot[#1]#2{\fancy@def\f@ncyelf{#1}\fancy@def\f@ncyolf{#2}}
187\def\@ylfoot#1{\fancy@def\f@ncyelf{#1}\fancy@def\f@ncyolf{#1}}
188
189\newcommand{\cfoot}{\@ifnextchar[{\@xcfoot}{\@ycfoot}}
190\def\@xcfoot[#1]#2{\fancy@def\f@ncyecf{#1}\fancy@def\f@ncyocf{#2}}
191\def\@ycfoot#1{\fancy@def\f@ncyecf{#1}\fancy@def\f@ncyocf{#1}}
192
193\newcommand{\rfoot}{\@ifnextchar[{\@xrfoot}{\@yrfoot}}
194\def\@xrfoot[#1]#2{\fancy@def\f@ncyerf{#1}\fancy@def\f@ncyorf{#2}}
195\def\@yrfoot#1{\fancy@def\f@ncyerf{#1}\fancy@def\f@ncyorf{#1}}
196
197\newdimen\headwidth
198\newcommand{\headrulewidth}{0.4pt}
199\newcommand{\footrulewidth}{\z@skip}
200\newcommand{\footruleskip}{.3\normalbaselineskip}
201
202% Fancyplain stuff shouldn't be used anymore (rather
203% \fancypagestyle{plain} should be used), but it must be present for
204% compatibility reasons.
205
206\newcommand{\plainheadrulewidth}{\z@skip}
207\newcommand{\plainfootrulewidth}{\z@skip}
208\newif\if@fancyplain \@fancyplainfalse
209\def\fancyplain#1#2{\if@fancyplain#1\else#2\fi}
210
211\headwidth=-123456789sp %magic constant
212
213% Command to reset various things in the headers:
214% a.o. single spacing (taken from setspace.sty)
215% and the catcode of ^^M (so that epsf files in the header work if a
216% verbatim crosses a page boundary)
217% It also defines a \nouppercase command that disables \uppercase and
218% \Makeuppercase. It can only be used in the headers and footers.
219\def\fancy@reset{\restorecr
220 \def\baselinestretch{1}%
221 \def\nouppercase##1{{\let\uppercase\relax\let\MakeUppercase\relax
222 \expandafter\let\csname MakeUppercase \endcsname\relax##1}}%
223 \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
224 \ifx\@normalsize\undefined \normalsize % for ucthesis.cls
225 \else \@normalsize \fi
226 \else% NFSS (2.09) present
227 \@newbaseline%
228 \fi}
229
230% Initialization of the head and foot text.
231
232% The default values still contain \fancyplain for compatibility.
233\fancyhf{} % clear all
234% lefthead empty on ``plain'' pages, \rightmark on even, \leftmark on odd pages
235% evenhead empty on ``plain'' pages, \leftmark on even, \rightmark on odd pages
236\fancyhead[el,or]{\fancyplain{}{\sl\rightmark}}
237\fancyhead[er,ol]{\fancyplain{}{\sl\leftmark}}
238\fancyfoot[c]{\rm\thepage} % page number
239
240% Put together a header or footer given the left, center and
241% right text, fillers at left and right and a rule.
242% The \lap commands put the text into an hbox of zero size,
243% so overlapping text does not generate an errormessage.
244% These macros have 5 parameters:
245% 1. \@lodd or \@rodd % This determines at which side the header will stick
246% out.
247% 2. \f@ncyolh, \f@ncyelh, \f@ncyolf or \f@ncyelf. This is the left component.
248% 3. \f@ncyoch, \f@ncyech, \f@ncyocf or \f@ncyecf. This is the middle comp.
249% 4. \f@ncyorh, \f@ncyerh, \f@ncyorf or \f@ncyerf. This is the right component.
250% 5. \@lodd or \@rodd % This determines at which side the header will stick
251% out. This is the reverse of parameter nr. 1. One of them is always
252% \relax and the other one is \hss (after expansion).
253
254\def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\hbox
255{\rlap{\parbox[b]{\headwidth}{\raggedright#2\strut}}\hfill
256\parbox[b]{\headwidth}{\centering#3\strut}\hfill
257\llap{\parbox[b]{\headwidth}{\raggedleft#4\strut}}}\headrule}}#5}
258
259\def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\footrule
260\hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2\strut}}\hfill
261\parbox[t]{\headwidth}{\centering#3\strut}\hfill
262\llap{\parbox[t]{\headwidth}{\raggedleft#4\strut}}}}}#5}
263
264\def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi
265\hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}}
266
267\def\footrule{{\if@fancyplain\let\footrulewidth\plainfootrulewidth\fi
268\vskip-\footruleskip\vskip-\footrulewidth
269\hrule\@width\headwidth\@height\footrulewidth\vskip\footruleskip}}
270
271\def\ps@fancy{%
272\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}%for amsbook
273%
274% Define \MakeUppercase for old LaTeXen.
275% Note: we used \def rather than \let, so that \let\uppercase\relax (from
276% the version 1 documentation) will still work.
277%
278\@ifundefined{MakeUppercase}{\def\MakeUppercase{\uppercase}}{}%
279\@ifundefined{chapter}{\def\sectionmark##1{\markboth
280{\MakeUppercase{\ifnum \c@secnumdepth>\z@
281 \thesection\hskip 1em\relax \fi ##1}}{}}%
282\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne
283 \thesubsection\hskip 1em\relax \fi ##1}}}%
284{\def\chaptermark##1{\markboth {\MakeUppercase{\ifnum \c@secnumdepth>\m@ne
285 \@chapapp\ \thechapter. \ \fi ##1}}{}}%
286\def\sectionmark##1{\markright{\MakeUppercase{\ifnum \c@secnumdepth >\z@
287 \thesection. \ \fi ##1}}}}%
288%\csname ps@headings\endcsname % use \ps@headings defaults if they exist
289\ps@@fancy
290\gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}%
291% Initialize \headwidth if the user didn't
292%
293\ifdim\headwidth<0sp
294%
295% This catches the case that \headwidth hasn't been initialized and the
296% case that the user added something to \headwidth in the expectation that
297% it was initialized to \textwidth. We compensate this now. This loses if
298% the user intended to multiply it by a factor. But that case is more
299% likely done by saying something like \headwidth=1.2\textwidth.
300% The doc says you have to change \headwidth after the first call to
301% \pagestyle{fancy}. This code is just to catch the most common cases were
302% that requirement is violated.
303%
304 \global\advance\headwidth123456789sp\global\advance\headwidth\textwidth
305\fi}
306\def\ps@fancyplain{\ps@fancy \let\ps@plain\ps@plain@fancy}
307\def\ps@plain@fancy{\@fancyplaintrue\ps@@fancy}
308\let\ps@@empty\ps@empty
309\def\ps@@fancy{%
310\ps@@empty % This is for amsbook/amsart, which do strange things with \topskip
311\def\@mkboth{\protect\markboth}%
312\def\@oddhead{\@fancyhead\@lodd\f@ncyolh\f@ncyoch\f@ncyorh\@rodd}%
313\def\@oddfoot{\@fancyfoot\@lodd\f@ncyolf\f@ncyocf\f@ncyorf\@rodd}%
314\def\@evenhead{\@fancyhead\@rodd\f@ncyelh\f@ncyech\f@ncyerh\@lodd}%
315\def\@evenfoot{\@fancyfoot\@rodd\f@ncyelf\f@ncyecf\f@ncyerf\@lodd}%
316}
317\def\@lodd{\if@reversemargin\hss\else\relax\fi}
318\def\@rodd{\if@reversemargin\relax\else\hss\fi}
319
320\newif\iffootnote
321\let\latex@makecol\@makecol
322\def\@makecol{\ifvoid\footins\footnotetrue\else\footnotefalse\fi
323\let\topfloat\@toplist\let\botfloat\@botlist\latex@makecol}
324\def\iftopfloat#1#2{\ifx\topfloat\empty #2\else #1\fi}
325\def\ifbotfloat#1#2{\ifx\botfloat\empty #2\else #1\fi}
326\def\iffloatpage#1#2{\if@fcolmade #1\else #2\fi}
327
328\newcommand{\fancypagestyle}[2]{%
329 \@namedef{ps@#1}{\let\fancy@def\def#2\relax\ps@fancy}}
0330
=== added file 'trunk/Doc/Manual/fncychap.sty'
--- trunk/Doc/Manual/fncychap.sty 1970-01-01 00:00:00 +0000
+++ trunk/Doc/Manual/fncychap.sty 2013-05-08 08:43:26 +0000
@@ -0,0 +1,433 @@
1%%% Derived from the original fncychap.sty,
2%%% but changed ``TWELV'' to ``TWELVE''.
3
4%%% Copyright Ulf A. Lindgren
5%%% Department of Applied Electronics
6%%% Chalmers University of Technology
7%%% S-412 96 Gothenburg, Sweden
8%%% E-mail lindgren@ae.chalmers.se
9%%%
10%%% Note Permission is granted to modify this file under
11%%% the condition that it is saved using another
12%%% file and package name.
13%%%
14%%% Revision 1.1
15%%%
16%%% Jan. 8th Modified package name base date option
17%%% Jan. 22th Modified FmN and FmTi for error in book.cls
18%%% \MakeUppercase{#}->{\MakeUppercase#}
19%%% Apr. 6th Modified Lenny option to prevent undesired
20%%% skip of line.
21%%% Nov. 8th Fixed \@chapapp for AMS
22%%% Feb. 11th Fixed appendix problem related to Bjarne
23%%% Last modified Feb. 11th 1998
24
25\NeedsTeXFormat{LaTeX2e}[1995/12/01]
26\ProvidesPackage{fncychap}
27 [1997/04/06 v1.11
28 LaTeX package (Revised chapters)]
29
30%%%% DEFINITION OF Chapapp variables
31\newcommand{\CNV}{\huge\bfseries}
32\newcommand{\ChNameVar}[1]{\renewcommand{\CNV}{#1}}
33
34
35%%%% DEFINITION OF TheChapter variables
36\newcommand{\CNoV}{\huge\bfseries}
37\newcommand{\ChNumVar}[1]{\renewcommand{\CNoV}{#1}}
38
39\newif\ifUCN
40\UCNfalse
41\newif\ifLCN
42\LCNfalse
43\def\ChNameLowerCase{\LCNtrue\UCNfalse}
44\def\ChNameUpperCase{\UCNtrue\LCNfalse}
45\def\ChNameAsIs{\UCNfalse\LCNfalse}
46
47%%%%% Fix for AMSBook 971008
48
49\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}
50
51
52%%%%% Fix for Bjarne and appendix 980211
53
54\newif\ifinapp
55\inappfalse
56\renewcommand\appendix{\par
57 \setcounter{chapter}{0}%
58 \setcounter{section}{0}%
59 \inapptrue%
60 \renewcommand\@chapapp{\appendixname}%
61 \renewcommand\thechapter{\@Alph\c@chapter}}
62
63%%%%%
64
65\newcommand{\FmN}[1]{%
66\ifUCN
67 {\MakeUppercase#1}\LCNfalse
68\else
69 \ifLCN
70 {\MakeLowercase#1}\UCNfalse
71 \else #1
72 \fi
73\fi}
74
75
76%%%% DEFINITION OF Title variables
77\newcommand{\CTV}{\Huge\bfseries}
78\newcommand{\ChTitleVar}[1]{\renewcommand{\CTV}{#1}}
79
80%%%% DEFINITION OF the basic rule width
81\newlength{\RW}
82\setlength{\RW}{1pt}
83\newcommand{\ChRuleWidth}[1]{\setlength{\RW}{#1}}
84
85\newif\ifUCT
86\UCTfalse
87\newif\ifLCT
88\LCTfalse
89\def\ChTitleLowerCase{\LCTtrue\UCTfalse}
90\def\ChTitleUpperCase{\UCTtrue\LCTfalse}
91\def\ChTitleAsIs{\UCTfalse\LCTfalse}
92\newcommand{\FmTi}[1]{%
93\ifUCT
94
95 {\MakeUppercase#1}\LCTfalse
96\else
97 \ifLCT
98 {\MakeLowercase#1}\UCTfalse
99 \else #1
100 \fi
101\fi}
102
103
104
105\newlength{\mylen}
106\newlength{\myhi}
107\newlength{\px}
108\newlength{\py}
109\newlength{\pyy}
110\newlength{\pxx}
111
112
113\def\mghrulefill#1{\leavevmode\leaders\hrule\@height #1\hfill\kern\z@}
114
115\newcommand{\DOCH}{%
116 \CNV\FmN{\@chapapp}\space \CNoV\thechapter
117 \par\nobreak
118 \vskip 20\p@
119 }
120\newcommand{\DOTI}[1]{%
121 \CTV\FmTi{#1}\par\nobreak
122 \vskip 40\p@
123 }
124\newcommand{\DOTIS}[1]{%
125 \CTV\FmTi{#1}\par\nobreak
126 \vskip 40\p@
127 }
128
129%%%%%% SONNY DEF
130
131\DeclareOption{Sonny}{%
132 \ChNameVar{\Large\sf}
133 \ChNumVar{\Huge}
134 \ChTitleVar{\Large\sf}
135 \ChRuleWidth{0.5pt}
136 \ChNameUpperCase
137 \renewcommand{\DOCH}{%
138 \raggedleft
139 \CNV\FmN{\@chapapp}\space \CNoV\thechapter
140 \par\nobreak
141 \vskip 40\p@}
142 \renewcommand{\DOTI}[1]{%
143 \CTV\raggedleft\mghrulefill{\RW}\par\nobreak
144 \vskip 5\p@
145 \CTV\FmTi{#1}\par\nobreak
146 \mghrulefill{\RW}\par\nobreak
147 \vskip 40\p@}
148 \renewcommand{\DOTIS}[1]{%
149 \CTV\raggedleft\mghrulefill{\RW}\par\nobreak
150 \vskip 5\p@
151 \CTV\FmTi{#1}\par\nobreak
152 \mghrulefill{\RW}\par\nobreak
153 \vskip 40\p@}
154}
155
156%%%%%% LENNY DEF
157
158\DeclareOption{Lenny}{%
159
160 \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont}
161 \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont}
162 \ChTitleVar{\Huge\bfseries\rm}
163 \ChRuleWidth{1pt}
164 \renewcommand{\DOCH}{%
165 \settowidth{\px}{\CNV\FmN{\@chapapp}}
166 \addtolength{\px}{2pt}
167 \settoheight{\py}{\CNV\FmN{\@chapapp}}
168 \addtolength{\py}{1pt}
169
170 \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter}
171 \addtolength{\mylen}{1pt}
172 \settowidth{\pxx}{\CNoV\thechapter}
173 \addtolength{\pxx}{-1pt}
174
175 \settoheight{\pyy}{\CNoV\thechapter}
176 \addtolength{\pyy}{-2pt}
177 \setlength{\myhi}{\pyy}
178 \addtolength{\myhi}{-1\py}
179 \par
180 \parbox[b]{\textwidth}{%
181 \rule[\py]{\RW}{\myhi}%
182 \hskip -\RW%
183 \rule[\pyy]{\px}{\RW}%
184 \hskip -\px%
185 \raggedright%
186 \CNV\FmN{\@chapapp}\space\CNoV\thechapter%
187 \hskip1pt%
188 \mghrulefill{\RW}%
189 \rule{\RW}{\pyy}\par\nobreak%
190 \vskip -\baselineskip%
191 \vskip -\pyy%
192 \hskip \mylen%
193 \mghrulefill{\RW}\par\nobreak%
194 \vskip \pyy}%
195 \vskip 20\p@}
196
197
198 \renewcommand{\DOTI}[1]{%
199 \raggedright
200 \CTV\FmTi{#1}\par\nobreak
201 \vskip 40\p@}
202
203 \renewcommand{\DOTIS}[1]{%
204 \raggedright
205 \CTV\FmTi{#1}\par\nobreak
206 \vskip 40\p@}
207 }
208
209
210%%%%%%% GLENN DEF
211
212
213\DeclareOption{Glenn}{%
214 \ChNameVar{\bfseries\Large\sf}
215 \ChNumVar{\Huge}
216 \ChTitleVar{\bfseries\Large\rm}
217 \ChRuleWidth{1pt}
218 \ChNameUpperCase
219 \ChTitleUpperCase
220 \renewcommand{\DOCH}{%
221 \settoheight{\myhi}{\CTV\FmTi{Test}}
222 \setlength{\py}{\baselineskip}
223 \addtolength{\py}{\RW}
224 \addtolength{\py}{\myhi}
225 \setlength{\pyy}{\py}
226 \addtolength{\pyy}{-1\RW}
227
228 \raggedright
229 \CNV\FmN{\@chapapp}\space\CNoV\thechapter
230 \hskip 3pt\mghrulefill{\RW}\rule[-1\pyy]{2\RW}{\py}\par\nobreak}
231
232 \renewcommand{\DOTI}[1]{%
233 \addtolength{\pyy}{-4pt}
234 \settoheight{\myhi}{\CTV\FmTi{#1}}
235 \addtolength{\myhi}{\py}
236 \addtolength{\myhi}{-1\RW}
237 \vskip -1\pyy
238 \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt
239 \raggedleft\CTV\FmTi{#1}\par\nobreak
240 \vskip 80\p@}
241
242 \renewcommand{\DOTIS}[1]{%
243 \setlength{\py}{10pt}
244 \setlength{\pyy}{\py}
245 \addtolength{\pyy}{\RW}
246 \setlength{\myhi}{\baselineskip}
247 \addtolength{\myhi}{\pyy}
248 \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak
249% \addtolength{}{}
250\vskip -1\baselineskip
251 \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt
252 \raggedleft\CTV\FmTi{#1}\par\nobreak
253 \vskip 60\p@}
254 }
255
256%%%%%%% CONNY DEF
257
258\DeclareOption{Conny}{%
259 \ChNameUpperCase
260 \ChTitleUpperCase
261 \ChNameVar{\centering\Huge\rm\bfseries}
262 \ChNumVar{\Huge}
263 \ChTitleVar{\centering\Huge\rm}
264 \ChRuleWidth{2pt}
265
266 \renewcommand{\DOCH}{%
267 \mghrulefill{3\RW}\par\nobreak
268 \vskip -0.5\baselineskip
269 \mghrulefill{\RW}\par\nobreak
270 \CNV\FmN{\@chapapp}\space \CNoV\thechapter
271 \par\nobreak
272 \vskip -0.5\baselineskip
273 }
274 \renewcommand{\DOTI}[1]{%
275 \mghrulefill{\RW}\par\nobreak
276 \CTV\FmTi{#1}\par\nobreak
277 \vskip 60\p@
278 }
279 \renewcommand{\DOTIS}[1]{%
280 \mghrulefill{\RW}\par\nobreak
281 \CTV\FmTi{#1}\par\nobreak
282 \vskip 60\p@
283 }
284 }
285
286%%%%%%% REJNE DEF
287
288\DeclareOption{Rejne}{%
289
290 \ChNameUpperCase
291 \ChTitleUpperCase
292 \ChNameVar{\centering\Large\rm}
293 \ChNumVar{\Huge}
294 \ChTitleVar{\centering\Huge\rm}
295 \ChRuleWidth{1pt}
296 \renewcommand{\DOCH}{%
297 \settoheight{\py}{\CNoV\thechapter}
298 \addtolength{\py}{-1pt}
299 \CNV\FmN{\@chapapp}\par\nobreak
300 \vskip 20\p@
301 \setlength{\myhi}{2\baselineskip}
302 \setlength{\px}{\myhi}
303 \addtolength{\px}{-1\RW}
304 \rule[-1\px]{\RW}{\myhi}\mghrulefill{\RW}\hskip
305 10pt\raisebox{-0.5\py}{\CNoV\thechapter}\hskip
30610pt\mghrulefill{\RW}\rule[-1\px]{\RW}{\myhi}\par\nobreak
307 \vskip -1\p@
308 }
309 \renewcommand{\DOTI}[1]{%
310 \setlength{\mylen}{\textwidth}
311 \addtolength{\mylen}{-2\RW}
312 {\vrule width\RW}\parbox{\mylen}{\CTV\FmTi{#1}}{\vrule
313width\RW}\par\nobreak
314 \vskip
315-1pt\rule{\RW}{2\baselineskip}\mghrulefill{\RW}\rule{\RW}{2\baselineskip}
316 \vskip 60\p@
317 }
318 \renewcommand{\DOTIS}[1]{%
319 \setlength{\py}{\fboxrule}
320 \setlength{\fboxrule}{\RW}
321 \setlength{\mylen}{\textwidth}
322 \addtolength{\mylen}{-2\RW}
323 \fbox{\parbox{\mylen}{\vskip
3242\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}}
325 \setlength{\fboxrule}{\py}
326 \vskip 60\p@
327 }
328 }
329
330
331%%%%%%% BJARNE DEF
332
333\DeclareOption{Bjarne}{%
334 \ChNameUpperCase
335 \ChTitleUpperCase
336 \ChNameVar{\raggedleft\normalsize\rm}
337 \ChNumVar{\raggedleft \bfseries\Large}
338 \ChTitleVar{\raggedleft \Large\rm}
339 \ChRuleWidth{1pt}
340
341
342%% Note thechapter -> c@chapter fix appendix bug
343
344 \newcounter{AlphaCnt}
345 \newcounter{AlphaDecCnt}
346 \newcommand{\AlphaNo}{%
347 \ifcase\number\theAlphaCnt
348 \ifnum\c@chapter=0
349 ZERO\else{}\fi
350 \or ONE\or TWO\or THREE\or FOUR\or FIVE
351 \or SIX\or SEVEN\or EIGHT\or NINE\or TEN
352 \or ELEVEN\or TWELVE\or THIRTEEN\or FOURTEEN\or FIFTEEN
353 \or SIXTEEN\or SEVENTEEN\or EIGHTEEN\or NINETEEN\fi
354}
355
356 \newcommand{\AlphaDecNo}{%
357 \setcounter{AlphaDecCnt}{0}
358 \@whilenum\number\theAlphaCnt>0\do
359 {\addtocounter{AlphaCnt}{-10}
360 \addtocounter{AlphaDecCnt}{1}}
361 \ifnum\number\theAlphaCnt=0
362 \else
363 \addtocounter{AlphaDecCnt}{-1}
364 \addtocounter{AlphaCnt}{10}
365 \fi
366
367
368 \ifcase\number\theAlphaDecCnt\or TEN\or TWENTY\or THIRTY\or
369 FORTY\or FIFTY\or SIXTY\or SEVENTY\or EIGHTY\or NINETY\fi
370 }
371 \newcommand{\TheAlphaChapter}{%
372
373 \ifinapp
374 \thechapter
375 \else
376 \setcounter{AlphaCnt}{\c@chapter}
377 \ifnum\c@chapter<20
378 \AlphaNo
379 \else
380 \AlphaDecNo\AlphaNo
381 \fi
382 \fi
383 }
384 \renewcommand{\DOCH}{%
385 \mghrulefill{\RW}\par\nobreak
386 \CNV\FmN{\@chapapp}\par\nobreak
387 \CNoV\TheAlphaChapter\par\nobreak
388 \vskip -1\baselineskip\vskip 5pt\mghrulefill{\RW}\par\nobreak
389 \vskip 20\p@
390 }
391 \renewcommand{\DOTI}[1]{%
392 \CTV\FmTi{#1}\par\nobreak
393 \vskip 40\p@
394 }
395 \renewcommand{\DOTIS}[1]{%
396 \CTV\FmTi{#1}\par\nobreak
397 \vskip 40\p@
398 }
399}
400
401\DeclareOption*{%
402 \PackageWarning{fancychapter}{unknown style option}
403 }
404
405\ProcessOptions* \relax
406
407\def\@makechapterhead#1{%
408 \vspace*{50\p@}%
409 {\parindent \z@ \raggedright \normalfont
410 \ifnum \c@secnumdepth >\m@ne
411 \DOCH
412 \fi
413 \interlinepenalty\@M
414 \DOTI{#1}
415 }}
416\def\@schapter#1{\if@twocolumn
417 \@topnewpage[\@makeschapterhead{#1}]%
418 \else
419 \@makeschapterhead{#1}%
420 \@afterheading
421 \fi}
422\def\@makeschapterhead#1{%
423 \vspace*{50\p@}%
424 {\parindent \z@ \raggedright
425 \normalfont
426 \interlinepenalty\@M
427 \DOTIS{#1}
428 \vskip 40\p@
429 }}
430
431\endinput
432
433
0434
=== added file 'trunk/Doc/Manual/geo-file.tex'
--- trunk/Doc/Manual/geo-file.tex 1970-01-01 00:00:00 +0000
+++ trunk/Doc/Manual/geo-file.tex 2013-05-08 08:43:26 +0000
@@ -0,0 +1,135 @@
1\chapter{The Geometry File Format}
2\label{cha:geofileformat}
3
4\section{Introduction}
5The input file described here contains only the description of the model geometry. The material properties of the particles (density \dots) and interactions (spring constant, breaking distance \dots) are described in the script. In order to facilitate this, both particles and predefined connections/interactions have tags.
6\subsubsection*{Rationale:}
7\begin{itemize}
8\item Makes it possible to change the properties
9independently from the geometries, for example in order to easily run a suite of simulation with identical geometries but varying material properties.
10\end{itemize}
11The input files are pure ASCII files formatted in the way described in the following sections.
12\subsubsection*{Rationale:}
13\begin{itemize}
14\item ASCII is preferred over binary format for portability and debugability reasons.
15\item Using some ``standard'' description language, i.e. XML seems
16 \begin{itemize}
17 \item unnecessary as the files are machine generated and read, which reduces the need for flexibility and verbosity
18 \item a suboptimal solution with respect to file size, i.e. a million particle file would grow quite large if XML was used \footnote{It would be quite large anyway, somewhere around 40--50 byte per particle and 15--20 byte per connection, i.e. a file describing a model consisting of $10^6$ part in a fully connected regular 3D lattice would have a size around 100MB. So we may look at using compressed (libz, libbz2) files at some later stage.}
19 \end{itemize}
20\end{itemize}
21
22
23\section{The File Format}
24
25The geometry file specifies the overall model geometry, the particle positions and geometries, the assignment of the particles to some particle groups and the initial connectivity between particles, i.e. the bonds. In case of spherical particles the per-particle geometry is reduced to just the particle radius.
26\subsection{File Structure}
27The geometry file consist of a header and 3 content sections:
28\begin{enumerate}
29\item The ``model geometry'' section which contains the containing volume(s) of the model and definition of circular (periodic) boundary conditions
30\item The ``particles'' section
31\item The ``connections'' section
32\end{enumerate}
33\subsection{Header}
34The header just contains an identifier for the file type and the version of the file.
35\begin{verbatim}
36LSMGeometry 1.2
37\end{verbatim}
38where \textsf{LSMGeometry} is the identifier and \textsf{1.2} the current version number.
39
40
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches