diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2011-06-23 - 0.2.1
+* complete overhaul
+
 2009-11-26 - 0.1.2
 * fixed cabal dependencies for stb-image
 
diff --git a/Graphics/LambdaCube.hs b/Graphics/LambdaCube.hs
--- a/Graphics/LambdaCube.hs
+++ b/Graphics/LambdaCube.hs
@@ -1,63 +1,79 @@
-module Graphics.LambdaCube (
---    module Graphics.LambdaCube.Overlay,
-    module Graphics.LambdaCube.Compositor,
-    module Graphics.LambdaCube.Material,
-    module Graphics.LambdaCube.Common,
-    module Graphics.LambdaCube.Math,
-    module Graphics.LambdaCube.Entity,
-    module Graphics.LambdaCube.Frustum,
-    module Graphics.LambdaCube.Mesh,
-    module Graphics.LambdaCube.HardwareBuffer,
-    module Graphics.LambdaCube.HardwareVertexBuffer,
-    module Graphics.LambdaCube.HardwareIndexBuffer,
-    module Graphics.LambdaCube.VertexIndexData,
-    module Graphics.LambdaCube.Resource,
-    module Graphics.LambdaCube.RenderQueue,
-    module Graphics.LambdaCube.RenderSystem,
-    module Graphics.LambdaCube.RenderOperation,
-    module Graphics.LambdaCube.SceneGraph,
-    module Graphics.LambdaCube.Loader.StbImage,
---    module Graphics.LambdaCube.Loader.MeshXML,
---	module Graphics.LambdaCube.Loader.MeshBinary,
---    module Graphics.LambdaCube.Loader.LMeshBinary,
-    module Graphics.LambdaCube.Loader.CompositorScript,
-    module Graphics.LambdaCube.Loader.MaterialScript,
-    module Graphics.LambdaCube.Loader.ResourceScript,
-    module Graphics.LambdaCube.World,
-    module Graphics.LambdaCube.Types,
-    module Graphics.LambdaCube.Texture,
-    module Graphics.LambdaCube.GpuProgram,
-    module Graphics.LambdaCube.Utility
---    module Graphics.LambdaCube.Loader.OverlayScript
-) where
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
-import Graphics.LambdaCube.Common
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.Utility
---import Graphics.LambdaCube.Overlay
-import Graphics.LambdaCube.Compositor
-import Graphics.LambdaCube.Material
-import Graphics.LambdaCube.Math
-import Graphics.LambdaCube.Entity
-import Graphics.LambdaCube.Frustum
-import Graphics.LambdaCube.Mesh
-import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.GpuProgram
-import Graphics.LambdaCube.HardwareBuffer
-import Graphics.LambdaCube.HardwareVertexBuffer
-import Graphics.LambdaCube.HardwareIndexBuffer
-import Graphics.LambdaCube.VertexIndexData
-import Graphics.LambdaCube.Resource
+{-|
+
+This is the public interface of LambdaCube.  All the other modules are
+exposed for the benefit of library writers, but if you feel the need
+to use any of them as a simple user, that should be considered a
+defect and reported in the issue tracker.
+
+-}
+
+module Graphics.LambdaCube
+       ( module Graphics.LambdaCube.Types
+       , module Graphics.LambdaCube.MeshUtil
+       , module Graphics.LambdaCube.Utility
+
+       -- * Entry point
+       , RenderSystem
+       , World
+       , LCM
+       , runLCM
+
+       -- * Resource management
+       , PathType(..)
+       , addResourceLibrary
+       , readFile
+       , readFile'
+
+       -- * Scene graph management
+       , addScene
+       , updateTransforms
+       , updateObjects
+
+       -- ** Scene node definitions
+       , Light(..)
+       , LightTypes(..)
+       , Camera(..)
+       , RenderQueuePriority(..)
+       , defaultRQP
+       , node
+       , camera
+       , simpleCamera
+       , wireCamera
+       , light
+       , defaultLight
+       , mesh
+
+       -- * Rendering
+       , addRenderTexture
+       , addRenderWindow
+       , viewport
+       , renderWorld
+       , updateTargetSize
+
+       -- * Vector vertex buffers
+       , VectorVertexType(..)
+       , VectorVertexData(..)
+       , VMesh(..)
+       , VSubMesh(..)
+       , OperationType(..)
+       , vectorVertexType
+       , addVMesh
+       , getVMesh
+       ) where
+
+import Graphics.LambdaCube.Light
+import Graphics.LambdaCube.Loader.ResourceScript
+import Graphics.LambdaCube.MeshUtil
+import Graphics.LambdaCube.RenderOperation
 import Graphics.LambdaCube.RenderQueue
 import Graphics.LambdaCube.RenderSystem
-import Graphics.LambdaCube.RenderOperation
+import Graphics.LambdaCube.Resource
 import Graphics.LambdaCube.SceneGraph
-import Graphics.LambdaCube.Loader.StbImage
---import Graphics.LambdaCube.Loader.MeshXML
---import Graphics.LambdaCube.Loader.MeshBinary
---import Graphics.LambdaCube.Loader.LMeshBinary
-import Graphics.LambdaCube.Loader.MaterialScript
-import Graphics.LambdaCube.Loader.CompositorScript
-import Graphics.LambdaCube.Loader.ResourceScript
-import Graphics.LambdaCube.World
---import Graphics.LambdaCube.Loader.OverlayScript
+import Graphics.LambdaCube.Types
+import Graphics.LambdaCube.Utility
+import Graphics.LambdaCube.VertexBufferVector
+import Graphics.LambdaCube.World as LCW
+
+import Prelude hiding (readFile)
diff --git a/Graphics/LambdaCube/AnimationState.hs b/Graphics/LambdaCube/AnimationState.hs
--- a/Graphics/LambdaCube/AnimationState.hs
+++ b/Graphics/LambdaCube/AnimationState.hs
@@ -1,13 +1,13 @@
 module Graphics.LambdaCube.AnimationState where
 
 import Data.Map
+
 import Graphics.LambdaCube.Types
 
-{-| Represents the state of an animation and the weight of it's influence. 
-@remarks
-    Other classes can hold instances of this class to store the state of any animations
-    they are using.
--}
+-- | Represents the state of an animation and the weight of it's influence.
+--  remarks
+--      Other classes can hold instances of this class to store the state of any animations
+--    they are using.
 data AnimationState
     = AnimationState
     { asBlendMask       :: [Float]      -- ^ the blend mask (containing per bone weights)
@@ -25,4 +25,4 @@
     { assDirtyFrameNumber       :: Int
     , assAnimationStates        :: Map String AnimationState
     , assEnabledAnimationStates :: [AnimationState] -- ^ List of enabled animation states
-    }    
+    }
diff --git a/Graphics/LambdaCube/BlendMode.hs b/Graphics/LambdaCube/BlendMode.hs
--- a/Graphics/LambdaCube/BlendMode.hs
+++ b/Graphics/LambdaCube/BlendMode.hs
@@ -6,28 +6,19 @@
 data LayerBlendType
     = LBT_COLOUR
     | LBT_ALPHA
-    deriving Eq
-    
-{-| List of valid texture blending operations, for use with TextureUnitState::setColourOperation.
-    @remarks
-        This list is a more limited list than LayerBlendOperationEx because it only
-        includes operations that are supportable in both multipass and multitexture
-        rendering and thus provides automatic fallback if multitexture hardware
-        is lacking or insufficient.
--}
+    deriving (Eq,Ord)
+
+-- TODO: unify blend operation types
+
+-- | Texture blending operations.
 data LayerBlendOperation
-    = LBO_REPLACE     -- ^ Replace all colour with texture with no adjustment
-    | LBO_ADD         -- ^ Add colour components together.
-    | LBO_MODULATE    -- ^ Multiply colour components together.
-    | LBO_ALPHA_BLEND -- ^ Blend based on texture alpha
-    deriving Eq
+    = LBO_REPLACE     -- ^ replace all colour with texture with no adjustment
+    | LBO_ADD         -- ^ add colour components together
+    | LBO_MODULATE    -- ^ multiply colour components together
+    | LBO_ALPHA_BLEND -- ^ blend based on texture alpha
+    deriving (Eq,Ord)
 
-{-| Expert list of valid texture blending operations, for use with TextureUnitState::setColourOperationEx
-    and TextureUnitState::setAlphaOperation, and internally in the LayerBlendModeEx class. It's worth
-    noting that these operations are for blending <i>between texture layers</i> and not between rendered objects
-    and the existing scene. Because all of these modes are only supported in multitexture hardware it may be
-    required to set up a fallback operation where this hardware is not available.
--}
+-- | Extended texture blending operations.
 data LayerBlendOperationEx
     = LBX_SOURCE1               -- ^ use source1 without modification
     | LBX_SOURCE2               -- ^ use source2 without modification
@@ -42,23 +33,20 @@
     | LBX_BLEND_TEXTURE_ALPHA   -- ^ as LBX_BLEND_DIFFUSE_ALPHA, but use alpha from texture
     | LBX_BLEND_CURRENT_ALPHA   -- ^ as LBX_BLEND_DIFFUSE_ALPHA, but use current alpha from previous stages
     | LBX_BLEND_MANUAL          -- ^ as LBX_BLEND_DIFFUSE_ALPHA but use a constant manual blend value (0.0-1.0)
-    | LBX_DOTPRODUCT            -- ^ dot product of color1 and color2 
+    | LBX_DOTPRODUCT            -- ^ dot product of color1 and color2
     | LBX_BLEND_DIFFUSE_COLOUR  -- ^ use interpolated color values from vertices to scale source1, then add source2 scaled by (1-color)
-    deriving Eq
+    deriving (Eq,Ord)
 
-{-| List of valid sources of values for blending operations used
-    in TextureUnitState::setColourOperation and TextureUnitState::setAlphaOperation,
-    and internally in the LayerBlendModeEx class.
--}
+-- | Sources of values for blending operations.
 data LayerBlendSource
     = LBS_CURRENT   -- ^ the colour as built up from previous stages
     | LBS_TEXTURE   -- ^ the colour derived from the texture assigned to this layer
     | LBS_DIFFUSE   -- ^ the interpolated diffuse colour from the vertices
     | LBS_SPECULAR  -- ^ the interpolated specular colour from the vertices
     | LBS_MANUAL    -- ^ a colour supplied manually as a separate argument
-    deriving Eq
-    
+    deriving (Eq,Ord)
 
+
 data LayerBlendModeEx
     = LayerBlendModeEx
     { lbBlendType  :: LayerBlendType        -- ^ The type of blending (colour or alpha)
@@ -71,32 +59,19 @@
     , lbAlphaArg2  :: FloatType             -- ^ Manual alpha value for manual source2
     , lbFactor     :: FloatType             -- ^ Manual blending factor
     }
-    deriving Eq
+    deriving (Eq,Ord)
 
-{-| Types of blending that you can specify between an object and the existing contents of the scene.
-    @remarks
-        As opposed to the LayerBlendType, which classifies blends between texture layers, these blending
-        types blend between the output of the texture units and the pixels already in the viewport,
-        allowing for object transparency, glows, etc.
-    @par
-        These types are provided to give quick and easy access to common effects. You can also use
-        the more manual method of supplying source and destination blending factors.
-        See Material::setSceneBlending for more details.
-    @see
-        Material::setSceneBlending
--}
+-- | Types of blending that you can specify between an object and the
+-- existing contents of the scene.
 data SceneBlendType
     = SBT_TRANSPARENT_ALPHA  -- ^ Make the object transparent based on the final alpha values in the texture
     | SBT_TRANSPARENT_COLOUR -- ^ Make the object transparent based on the colour values in the texture (brighter = more opaque)
     | SBT_ADD                -- ^ Add the texture values to the existing scene content
     | SBT_MODULATE           -- ^ Multiply the 2 colours together
     | SBT_REPLACE            -- ^ The default blend mode where source replaces destination
-    deriving Eq
+    deriving (Eq,Ord)
 
-{-| Blending factors for manually blending objects with the scene. If there isn't a predefined
-    SceneBlendType that you like, then you can specify the blending factors directly to affect the
-    combination of object and the existing scene. See Material::setSceneBlending for more details.
--}
+-- | Blending factors for manually blending objects with the scene.
 data SceneBlendFactor
     = SBF_ONE
     | SBF_ZERO
@@ -108,19 +83,16 @@
     | SBF_SOURCE_ALPHA
     | SBF_ONE_MINUS_DEST_ALPHA
     | SBF_ONE_MINUS_SOURCE_ALPHA
-    deriving Eq
+    deriving (Eq,Ord)
 
-{-| Blending operations controls how objects are blended into the scene. The default operation
-	is add (+) but by changing this you can change how drawn objects are blended into the
-	existing scene.
--}
+-- | Blending operations controls how objects are blended into the scene.
 data SceneBlendOperation
     = SBO_ADD
     | SBO_SUBTRACT
     | SBO_REVERSE_SUBTRACT
     | SBO_MIN
     | SBO_MAX
-    deriving Eq
+    deriving (Eq,Ord)
 
 -- | Converts SceneBlendType to SceneBlendFactor pair
 convertSBTtoSBF :: SceneBlendType -> (SceneBlendFactor,SceneBlendFactor)
diff --git a/Graphics/LambdaCube/Common.hs b/Graphics/LambdaCube/Common.hs
--- a/Graphics/LambdaCube/Common.hs
+++ b/Graphics/LambdaCube/Common.hs
@@ -1,7 +1,7 @@
 module Graphics.LambdaCube.Common where
 
-{-| Comparison functions used for the depth/stencil buffer operations and 
-	others. -}
+-- | Comparison functions used for the depth/stencil buffer operations
+-- and others.
 data CompareFunction
     = CMPF_ALWAYS_FAIL
     | CMPF_ALWAYS_PASS
@@ -11,37 +11,37 @@
     | CMPF_NOT_EQUAL
     | CMPF_GREATER_EQUAL
     | CMPF_GREATER
-    deriving Eq
+    deriving (Eq,Ord,Show)
 
-{-| High-level filtering options providing shortcuts to settings the
-    minification, magnification and mip filters. -}
+-- | High-level filtering options providing shortcuts to settings the
+-- minification, magnification and mip filters.
 data TextureFilterOptions
     = TFO_NONE        -- ^ Equal to: min=FO_POINT, mag=FO_POINT, mip=FO_NONE
     | TFO_BILINEAR    -- ^ Equal to: min=FO_LINEAR, mag=FO_LINEAR, mip=FO_POINT
     | TFO_TRILINEAR   -- ^ Equal to: min=FO_LINEAR, mag=FO_LINEAR, mip=FO_LINEAR
     | TFO_ANISOTROPIC -- ^ Equal to: min=FO_ANISOTROPIC, max=FO_ANISOTROPIC, mip=FO_LINEAR
-    deriving Eq
+    deriving (Eq,Ord)
 
 data FilterType
     = FT_MIN -- ^ The filter used when shrinking a texture
     | FT_MAG -- ^ The filter used when magnifying a texture
     | FT_MIP -- ^ The filter used when determining the mipmap
-    deriving Eq
-    
+    deriving (Eq,Ord)
+
 -- | Filtering options for textures / mipmaps.
 data FilterOptions
     = FO_NONE        -- ^ No filtering, used for FILT_MIP to turn off mipmapping
     | FO_POINT       -- ^ Use the closest pixel
     | FO_LINEAR      -- ^ Average of a 2x2 pixel area, denotes bilinear for MIN and MAG, trilinear for MIP
     | FO_ANISOTROPIC -- ^ Similar to FO_LINEAR, but compensates for the angle of the texture plane
-    deriving Eq
-    
+    deriving (Eq,Ord)
+
 -- | Light shading modes.
 data ShadeOptions
     = SO_FLAT
     | SO_GOURAUD
     | SO_PHONG
-    deriving Eq
+    deriving (Eq,Ord)
 
 -- | Fog modes.
 data FogMode
@@ -49,46 +49,39 @@
     | FOG_EXP       -- ^ Fog density increases  exponentially from the camera (fog = 1/e^(distance * density))
     | FOG_EXP2      -- ^ Fog density increases at the square of FOG_EXP, i.e. even quicker (fog = 1/e^(distance * density)^2)
     | FOG_LINEAR    -- ^ Fog density increases linearly between the start and end distances
-    deriving Eq
+    deriving (Eq,Ord)
 
-{-| Hardware culling modes based on vertex winding.
-    This setting applies to how the hardware API culls triangles it is sent. -}
+-- | Hardware culling modes based on vertex winding. This setting applies to how the hardware API culls triangles it is sent.
 data CullingMode
     = CULL_NONE             -- ^ Hardware never culls triangles and renders everything it receives.
     | CULL_CLOCKWISE        -- ^ Hardware culls triangles whose vertices are listed clockwise in the view (default).
     | CULL_ANTICLOCKWISE    -- ^ Hardware culls triangles whose vertices are listed anticlockwise in the view.
-    deriving Eq
+    deriving (Eq,Ord)
 
-{-| Manual culling modes based on vertex normals.
-    This setting applies to how the software culls triangles before sending them to the 
-	hardware API. This culling mode is used by scene managers which choose to implement it -
-	normally those which deal with large amounts of fixed world geometry which is often 
-	planar (software culling movable variable geometry is expensive). -}
+-- | Manual culling modes based on vertex normals.
 data ManualCullingMode
     = MANUAL_CULL_NONE  -- ^ No culling so everything is sent to the hardware.
     | MANUAL_CULL_BACK  -- ^ Cull triangles whose normal is pointing away from the camera (default).
     | MANUAL_CULL_FRONT -- ^ Cull triangles whose normal is pointing towards the camera.
-    deriving Eq
+    deriving (Eq,Ord)
 
--- | Enumerates the wave types usable with the Ogre engine.
 data WaveformType
     = WFT_SINE             -- ^ Standard sine wave which smoothly changes from low to high and back again.
     | WFT_TRIANGLE         -- ^ An angular wave with a constant increase / decrease speed with pointed peaks.
     | WFT_SQUARE           -- ^ Half of the time is spent at the min, half at the max with instant transition between.
     | WFT_SAWTOOTH         -- ^ Gradual steady increase from min to max over the period with an instant return to min at the end.
     | WFT_INVERSE_SAWTOOTH -- ^ Gradual steady decrease from max to min over the period, with an instant return to max at the end.
-    | WFT_PWM              -- ^ Pulse Width Modulation. Works like WFT_SQUARE, except the high to low transition is controlled by duty cycle. 
-                           -- ^  With a duty cycle of 50% (0.5) will give the same output as WFT_SQUARE.
-    deriving Eq
+    | WFT_PWM              -- ^ Pulse Width Modulation. Works like WFT_SQUARE, except the high to low transition is controlled by duty cycle.
+                           --  With a duty cycle of 50% (0.5) will give the same output as WFT_SQUARE.
+    deriving (Eq,Ord)
 
 -- | The polygon mode to use when rasterising.
 data PolygonMode
     = PM_POINTS     -- ^ Only points are rendered.
     | PM_WIREFRAME  -- ^ Wireframe models are rendered.
     | PM_SOLID      -- ^ Solid polygons are rendered.
-    deriving Eq
+    deriving (Eq,Ord)
 
--- | An enumeration describing which material properties should track the vertex colours 
 data TrackVertexColourType
     = TrackVertexColourType
     { tvcAmbient  :: Bool
@@ -96,20 +89,18 @@
     , tvcSpecular :: Bool
     , tvcEmissive :: Bool
     }
-    deriving Eq
+    deriving (Eq,Ord)
 
 -- | Sort mode for billboard-set and particle-system
 data SortMode
     = SM_DIRECTION -- ^ Sort by direction of the camera
     | SM_DISTANCE  -- ^ Sort by distance from the camera
-    deriving Eq
+    deriving (Eq,Ord)
 
--- | Defines the frame buffer types.
 data FrameBufferType
     = FrameBufferType
     { fbtColour  :: Bool
     , fbtDepth   :: Bool
     , fbtStencil :: Bool
     }
-    deriving Eq
-
+    deriving (Eq,Ord)
diff --git a/Graphics/LambdaCube/Compositor.hs b/Graphics/LambdaCube/Compositor.hs
--- a/Graphics/LambdaCube/Compositor.hs
+++ b/Graphics/LambdaCube/Compositor.hs
@@ -1,18 +1,16 @@
 module Graphics.LambdaCube.Compositor where
 
-import Data.Maybe
-import Data.Word
 import Data.IntMap (IntMap)
+import Data.Word
 
-import Graphics.LambdaCube.Types
 import Graphics.LambdaCube.Common
+import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.Material
 import Graphics.LambdaCube.PixelFormat
 import Graphics.LambdaCube.RenderSystem
-import Graphics.LambdaCube.Material
-import Graphics.LambdaCube.GpuProgram
 import Graphics.LambdaCube.Texture
+import Graphics.LambdaCube.Types
 
--- | Enumeration that enumerates the various composition pass types.
 data PassType
     = PT_CLEAR          -- ^ Clear target to one colour
     | PT_STENCIL        -- ^ Set stencil operation
@@ -24,12 +22,7 @@
     = IM_NONE       -- ^ No input
     | IM_PREVIOUS   -- ^ Output of previous Composition in chain
     deriving Eq
-    
-{-| Class representing a Compositor object. Compositors provide the means 
-    to flexibly "composite" the final rendering result from multiple scene renders
-    and intermediate operations like rendering fullscreen quads. This makes 
-    it possible to apply postfilter effects, HDRI postprocessing, and shadow 
-    effects to a Viewport. -}
+
 data (Texture t, LinkedGpuProgram lp) => Compositor t lp
     = Compositor
     { cmpName                   :: String
@@ -37,18 +30,17 @@
     , cmpSupportedTechniques    :: Maybe [CompositionTechnique t lp]
 	}
 
--- | Local texture definition
 data Texture t => TextureDefinition t
     = TextureDefinition
     { tdName            :: String
-    , tdWidth           :: Maybe Int        -- Nothing means adapt to target width
-    , tdHeight          :: Maybe Int        -- Nothing means adapt to target height
-    , tdWidthFactor     :: FloatType        -- multiple of target width to use (if width = Nothing)
-    , tdHeightFactor    :: FloatType        -- multiple of target height to use (if height = Nothing)
-    , tdFormatList      :: [PixelFormat]    -- more than one means MRT
-    , tdFsaa            :: Bool             -- FSAA enabled; true = determine from main target (if render_scene), false = disable
-    , tdHwGammaWrite    :: Bool             -- Do sRGB gamma correction on write (only 8-bit per channel formats) 
-    , tdShared          :: Bool             -- whether to use shared textures for this one
+    , tdWidth           :: Maybe Int        -- ^ Nothing means adapt to target width
+    , tdHeight          :: Maybe Int        -- ^ Nothing means adapt to target height
+    , tdWidthFactor     :: FloatType        -- ^ multiple of target width to use (if width = Nothing)
+    , tdHeightFactor    :: FloatType        -- ^ multiple of target height to use (if height = Nothing)
+    , tdFormatList      :: [PixelFormat]    -- ^ more than one means MRT
+    , tdFsaa            :: Bool             -- ^ FSAA enabled; true = determine from main target (if render_scene), false = disable
+    , tdHwGammaWrite    :: Bool             -- ^ Do sRGB gamma correction on write (only 8-bit per channel formats)
+    , tdShared          :: Bool             -- ^ whether to use shared textures for this one
     , tdTexture         :: Maybe t
     }
 
@@ -66,7 +58,6 @@
     , ctSchemeName          :: String                       -- ^ Optional scheme name
     }
 
--- | Object representing one render to a RenderTarget or Viewport in the Ogre Composition framework.
 data (Texture t, LinkedGpuProgram lp) => CompositionTargetPass t lp
     = CompositionTargetPass
     { ctpInputMode      :: InputMode                    -- ^ Input name
@@ -80,8 +71,6 @@
     , ctpShadowsEnabled :: Bool                         -- ^ Shadows option
     }
 
-{-| Object representing one pass or operation in a composition sequence. This provides a 
-    method to conveniently interleave RenderSystem commands between Render Queues. -}
 data (Texture t, LinkedGpuProgram lp) => CompositionPass t lp
     = CompositionPass
     { cpType                        :: PassType         -- ^ Type of composition pass
@@ -111,11 +100,4 @@
     , cpQuadFarCorners              :: Bool
     , cpQuadFarCornersViewSpace     :: Bool
     }
-{-        
-data CompositionPass
-    = CompositionRenderQuadPass
-    , rqInput    :: (Int, String, Int)
-    }
--}
---compileCompositor
 
diff --git a/Graphics/LambdaCube/Entity.hs b/Graphics/LambdaCube/Entity.hs
--- a/Graphics/LambdaCube/Entity.hs
+++ b/Graphics/LambdaCube/Entity.hs
@@ -1,133 +1,30 @@
 {-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
 module Graphics.LambdaCube.Entity where
 
-import Data.Map (Map)
-import qualified Data.Map as Map
 import Data.Maybe
---import qualified Data.Set as Set
 
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.Mesh
-import Graphics.LambdaCube.AnimationState
-import Graphics.LambdaCube.VertexIndexData
+--import Graphics.LambdaCube.AnimationState
+import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.HardwareIndexBuffer
+import Graphics.LambdaCube.HardwareVertexBuffer
 import Graphics.LambdaCube.Material
-import Graphics.LambdaCube.RenderQueue
-import Graphics.LambdaCube.RenderSystem
+import Graphics.LambdaCube.Mesh
 import Graphics.LambdaCube.RenderOperation
+import Graphics.LambdaCube.RenderSystem
 import Graphics.LambdaCube.Technique
-import Graphics.LambdaCube.HardwareVertexBuffer
-import Graphics.LambdaCube.HardwareIndexBuffer
 import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.Types
 
-{-| Utility class which defines the sub-parts of an Entity.
-    @remarks
-        Just as meshes are split into submeshes, an Entity is made up of
-        potentially multiple SubMeshes. These are mainly here to provide the
-        link between the Material which the SubEntity uses (which may be the
-        default Material for the SubMesh or may have been changed for this
-        object) and the SubMesh data.
-    @par
-        The SubEntity also allows the application some flexibility in the
-        material properties for this section of a particular instance of this
-        Mesh, e.g. tinting the windows on a car model.
-    @par
-        SubEntity instances are never created manually. They are created at
-        the same time as their parent Entity by the SceneManager method
-        createEntity.
--}
+-- | The sub-parts of an Entity. Its primary function is to provide
+-- the link between the Material which the SubEntity uses (which may
+-- be the default Material for the SubMesh or may have been changed
+-- for this object) and the SubMesh data.
 data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => SubEntity vb ib t lp
     = SubEntity
-    { seMaterial                        :: Material t lp  -- ^ Cached pointer to material.
-    , seSubMesh                         :: SubMesh vb ib  -- ^ Pointer to the SubMesh defining geometry.
---    , seVisible                         :: Bool         -- ^ Is this SubEntity visible?
---    , seMaterialLodIndex                :: Int          -- ^ The LOD number of the material to use, calculated by Entity::_notifyCurrentCamera
---    , seSkelAnimVertexData              :: VertexData   -- ^ blend buffer details for dedicated geometry
-    -- | Quick lookup of buffers
-    -- TODO: TempBlendedBufferInfo mTempSkelAnimInfo;
-    -- | Temp buffer details for software Vertex anim geometry
-    -- TODO: TempBlendedBufferInfo mTempVertexAnimInfo;
---    , seSoftwareVertexAnimVertexData    :: VertexData   -- ^ Vertex data details for software Vertex anim of shared geometry
-    {-| Vertex data details for hardware Vertex anim of shared geometry
-        - separate since we need to s/w anim for shadows whilst still altering
-          the vertex data for hardware morphing (pos2 binding)
-    -}
---    , seHardwareVertexAnimVertexData    :: VertexData
---    , seVertexAnimationAppliedThisFrame :: Bool         -- ^ Have we applied any vertex animation to geometry?
---    , seHardwarePoseCount               :: Int          -- ^ Number of hardware blended poses supported by material
-    -- | Cached distance to last camera for getSquaredViewDepth
-    -- TODO: , seCachedCameraDist       :: FloatType
-    -- | The camera for which the cached distance is valid
-    -- TODO: , seCachedCamera           :: Camera
+    { seMaterial :: Material t lp  -- ^ Cached pointer to material.
+    , seSubMesh  :: SubMesh vb ib  -- ^ Pointer to the SubMesh defining geometry.
     }
 
-{-| Defines an instance of a discrete, movable object based on a Mesh.
-@remarks
-Ogre generally divides renderable objects into 2 groups, discrete
-(separate) and relatively small objects which move around the world,
-and large, sprawling geometry which makes up generally immovable
-scenery, aka 'level geometry'.
-@par
-The Mesh and SubMesh classes deal with the definition of the geometry
-used by discrete movable objects. Entities are actual instances of
-objects based on this geometry in the world. Therefore there is
-usually a single set Mesh for a car, but there may be multiple
-entities based on it in the world. Entities are able to override
-aspects of the Mesh it is defined by, such as changing material
-properties per instance (so you can have many cars using the same
-geometry but different textures for example). Because a Mesh is split
-into SubMeshes for this purpose, the Entity class is a grouping class
-(much like the Mesh class) and much of the detail regarding
-individual changes is kept in the SubEntity class. There is a 1:1
-relationship between SubEntity instances and the SubMesh instances
-associated with the Mesh the Entity is based on.
-@par
-Entity and SubEntity classes are never created directly. Use the
-createEntity method of the SceneManager (passing a model name) to
-create one.
-@par
-Entities are included in the scene by associating them with a
-SceneNode, using the attachEntity method. See the SceneNode class
-for full information.
-@note
-No functions were declared virtual to improve performance.
--}
----------- new code below -----------
-		{-| Nested class to allow entity shadows. -}
-        {-
-		class _OgreExport EntityShadowRenderable : public ShadowRenderable
-		{
-		protected:
-			Entity* mParent;
-			-- Shared link to position buffer
-			HardwareVertexBufferSharedPtr mPositionBuffer;
-			-- Shared link to w-coord buffer (optional)
-			HardwareVertexBufferSharedPtr mWBuffer;
-			-- Link to current vertex data used to bind (maybe changes)
-			const VertexData* mCurrentVertexData;
-			-- Original position buffer source binding
-			unsigned short mOriginalPosBufferBinding;
-			-- | Link to SubEntity, only present if SubEntity has it's own geometry
-			SubEntity* mSubEntity;
-
-
-		public:
-			EntityShadowRenderable(Entity* parent,
-				HardwareIndexBufferSharedPtr* indexBuffer, const VertexData* vertexData,
-				bool createSeparateLightCap, SubEntity* subent, bool isLightCap = false);
-			~EntityShadowRenderable();
-			-- | Overridden from ShadowRenderable
-			void getWorldTransforms(Matrix4* xform) const;
-			HardwareVertexBufferSharedPtr getPositionBuffer(void) { return mPositionBuffer; }
-			HardwareVertexBufferSharedPtr getWBuffer(void) { return mWBuffer; }
-			-- | Rebind the source positions (for temp buffer users)
-			void rebindPositionBuffer(const VertexData* vertexData, bool force);
-			-- | Overridden from ShadowRenderable
-			bool isVisible(void) const;
-
-		};
-    -}
--- | Identify which vertex data we should be sending to the renderer
 data VertexDataBindChoice
     = BIND_ORIGINAL
     | BIND_SOFTWARE_SKELETAL
@@ -136,87 +33,24 @@
 
 data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => Entity vb ib t lp
     = Entity
-    {
-    -- MovableObject attributes
-    -- TODO: add all attrs
-      enName                                :: String
-    , enRenderQueue                         :: Int 
-    
-    -- Own attributes 
-    , enMesh                                :: Mesh vb ib
-    , enSubEntityList                       :: [SubEntity vb ib t lp]
--- TODO    , enAnimationState                      :: AnimationStateSet        -- ^ State of animation for animable meshes
--- TODO    , enTempSkelAnimInfo                    :: TempBlendedBufferInfo    -- ^ Temp buffer details for software skeletal anim of shared geometry
--- TODO    , enSkelAnimVertexData                  :: VertexData               -- ^ Vertex data details for software skeletal anim of shared geometry
--- TODO    , enTempVertexAnimInfo                  :: TempBlendedBufferInfo    -- ^ Temp buffer details for software vertex anim of shared geometry
--- TODO    , enSoftwareVertexAnimVertexData        :: VertexData               -- ^ Vertex data details for software vertex anim of shared geometry
-    -- | Vertex data details for hardware vertex anim of shared geometry
-    -- | - separate since we need to s/w anim for shadows whilst still altering
-    -- |   the vertex data for hardware morphing (pos2 binding)
--- TODO    , enHardwareVertexAnimVertexData        :: VertexData
--- TODO    , enVertexAnimationAppliedThisFrame     :: Bool                     -- ^ Have we applied any vertex animation to shared geometry?
---    , enPreparedForShadowVolumes            :: Bool                     -- ^ Have the temp buffers already had their geometry prepared for use in rendering shadow volumes?
--- TODO    , enBoneWorldMatrices                   :: Matrix4                  -- ^ Cached bone matrices, including any world transform
-
--- TODO    , enBoneMatrices                        :: Matrix4                  -- ^ Cached bone matrices in skeleton local space, might shares with other entity instances.
--- TODO    , enNumBoneMatrices                     :: Int
---    , enFrameAnimationLastUpdated           :: Int                      -- ^ Records the last frame in which animation was updated
-    
-    -- | Records the last frame in which the bones was updated
-    -- | It's a pointer because it can be shared between different entities with
-    -- | a shared skeleton.
---    , enFrameBonesLastUpdated               :: Int
-    
-    {-|
-    * A set of all the entities which shares a single SkeletonInstance.
-    * This is only created if the entity is in fact sharing it's SkeletonInstance with
-    * other Entities.
-    -}
--- TODO    , enSharedSkeletonEntities              :: Set Entity
-    
--- TODO    , enDisplaySkeleton                     :: Bool                     -- ^ Flag determines whether or not to display skeleton
--- TODO    , enHardwareAnimation                   :: Bool                     -- ^ Flag indicating whether hardware animation is supported by this entities materials
--- TODO    , enHardwarePoseCount                   :: Bool                     -- ^ Number of hardware poses supported by materials
---    , enVertexProgramInUse                  :: Bool                     -- ^ Flag indicating whether we have a vertex program in use on any of our subentities
--- TODO    , enSoftwareAnimationRequests           :: Int                      -- ^ Counter indicating number of requests for software animation.
--- TODO    , enSoftwareAnimationNormalsRequests    :: Int                      -- ^ Counter indicating number of requests for software blended normals.
--- TODO    , enSkipAnimStateUpdates                :: Bool                     -- ^ Flag indicating whether to skip automatic updating of the Skeleton's AnimationState
-    
---    , enMeshLodIndex                        :: Int                      -- ^ The LOD number of the mesh to use, calculated by _notifyCurrentCamera
-    
---    , enMeshLodFactorTransformed            :: FloatType                -- ^ LOD bias factor, transformed for optimisation when calculating adjusted lod value
---    , enMinMeshLodIndex                     :: Int                      -- ^ Index of minimum detail LOD (NB higher index is lower detail)
---    , enMaxMeshLodIndex                     :: Int                      -- ^ Index of maximum detail LOD (NB lower index is higher detail)
-    
---    , enMaterialLodFactor                   :: FloatType                -- ^ LOD bias factor, not transformed
---    , enMaterialLodFactorTransformed        :: FloatType                -- ^ LOD bias factor, transformed for optimisation when calculating adjusted lod value
---    , enMinMaterialLodIndex                 :: Int                      -- ^ Index of minimum detail LOD (NB higher index is lower detail)
---    , enMaxMaterialLodIndex                 :: Int                      -- ^ Index of maximum detail LOD (NB lower index is higher detail)
-    
-    {-| List of LOD Entity instances (for manual LODs).
-    We don't know when the mesh is using manual LODs whether one LOD to the next will have the
-    same number of SubMeshes, therefore we have to allow a separate Entity list
-    with each alternate one.
-    -}
---    , enLodEntityList                       :: [Entity]
-    -- TODO: , enSkeletonInstance                    :: SkeletonInstance         -- ^ This Entity's personal copy of the skeleton, if skeletally animated
---    , enInitialised                         :: Bool                     -- ^ Has this entity been initialised yet?
---    , enLastParentXform                     :: Matrix4                  -- ^ Last parent xform
---    , enMeshStateCount                      :: Int                      -- ^ Mesh state count, used to detect differences
-    -- TODO: , enChildObjectList                     :: Map String MovableObject -- ^ Contains the child objects (attached to bones) indexed by name
-    -- TODO: , enFullBoundingBox                     :: AxisAlignedBox           -- ^ Bounding box that 'contains' all the mesh of each child entity
-    -- TODO: , enShadowRenderables                   :: [ShadowRenderable]
+    { enName          :: String
+    , enRenderQueue   :: Int
+    , enMesh          :: Mesh vb ib
+    , enSubEntityList :: [SubEntity vb ib t lp]
     }
 
 instance (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => Renderable (Entity vb ib t lp) vb ib t lp where
     prepare = prepareEntity
 
+prepareEntity :: (HardwareIndexBuffer ib, HardwareVertexBuffer vb, Texture t, LinkedGpuProgram lp) => Proj4 -> Entity vb ib t lp -> [RenderEntity vb ib t lp]
 prepareEntity m ent = map mkRenderEntity (enSubEntityList ent)
   where
+    boundRadius = msBoundRadius $ enMesh ent
     mkRenderEntity e = RenderEntity
         { rePassList    = fromMaybe [] (fmap (tchPasses . head) (mtSupportedTechniques (seMaterial e)))
         , reOperation   = mkOperation . seSubMesh $ e
         , reMatrix      = m
+        , reBoundRadius = boundRadius
         }
 
     mkOperation sm = RenderOperation
diff --git a/Graphics/LambdaCube/Frustum.hs b/Graphics/LambdaCube/Frustum.hs
--- a/Graphics/LambdaCube/Frustum.hs
+++ b/Graphics/LambdaCube/Frustum.hs
@@ -1,153 +1,78 @@
 module Graphics.LambdaCube.Frustum where
 
+import Data.List (foldl')
 import Graphics.LambdaCube.Types
 
-{-
-class Plane  
-{
-public:
-
-	Vec3 normal,point;
-	float d;
-
-	void set3Points( Vec3 &v1,  Vec3 &v2,  Vec3 &v3);
-	float distance(Vec3 &p);
-};
-
-void Plane::set3Points( Vec3 &v1,  Vec3 &v2,  Vec3 &v3) {
-
-	Vec3 aux1, aux2;
-
-	aux1 = v1 - v2;
-	aux2 = v3 - v2;
-
-	normal = aux2 * aux1;
-
-	normal.normalize();
-	point.copy(v2);
-	d = -(normal.innerProduct(point));
-}
-
-float Plane::distance(Vec3 &p) {
-
-	return (d + normal.innerProduct(p));
-}
-
-class FrustumG 
-{
-private:
-
-	enum {
-		TOP = 0,
-		BOTTOM,
-		LEFT,
-		RIGHT,
-		NEARP,
-		FARP
-	};
-public:
-
-	static enum {OUTSIDE, INTERSECT, INSIDE};
-
-	Plane pl[6];
-
-	Vec3 ntl,ntr,nbl,nbr,ftl,ftr,fbl,fbr;
-	float nearD, farD, ratio, angle,tang;
-	float nw,nh,fw,fh;
-
-	void FrustumG::setCamInternals(float angle, float ratio, float nearD, float farD);
-	void FrustumG::setCamDef(Vec3 &p, Vec3 &l, Vec3 &u);
-	int FrustumG::pointInFrustum(Vec3 &p);
-	int FrustumG::sphereInFrustum(Vec3 &p, float raio);
-	int FrustumG::boxInFrustum(AABox &b);
-};
-
-#define ANG2RAD 3.14159265358979323846/180.0
-
-void FrustumG::setCamInternals(float angle, float ratio, float nearD, float farD) {
-
-	this->ratio = ratio;
-	this->angle = angle;
-	this->nearD = nearD;
-	this->farD = farD;
-
-	tang = (float)tan(angle* ANG2RAD * 0.5) ;
-	nh = nearD * tang;
-	nw = nh * ratio; 
-	fh = farD  * tang;
-	fw = fh * ratio;
-}
-
-void FrustumG::setCamDef(Vec3 &p, Vec3 &l, Vec3 &u) {
-
-	Vec3 dir,nc,fc,X,Y,Z;
-
-	Z = p - l;
-	Z.normalize();
-
-	X = u * Z;
-	X.normalize();
-
-	Y = Z * X;
-
-	nc = p - Z * nearD;
-	fc = p - Z * farD;
-
-	ntl = nc + Y * nh - X * nw;
-	ntr = nc + Y * nh + X * nw;
-	nbl = nc - Y * nh - X * nw;
-	nbr = nc - Y * nh + X * nw;
-
-	ftl = fc + Y * fh - X * fw;
-	ftr = fc + Y * fh + X * fw;
-	fbl = fc - Y * fh - X * fw;
-	fbr = fc - Y * fh + X * fw;
-
-	pl[TOP].set3Points(ntr,ntl,ftl);
-	pl[BOTTOM].set3Points(nbl,nbr,fbr);
-	pl[LEFT].set3Points(ntl,nbl,fbl);
-	pl[RIGHT].set3Points(nbr,ntr,fbr);
-	pl[NEARP].set3Points(ntl,ntr,nbr);
-	pl[FARP].set3Points(ftr,ftl,fbl);
-}
-
-int FrustumG::pointInFrustum(Vec3 &p) {
+data Plane
+    = Plane
+    { plNormal  :: Vec3
+    , plDist    :: FloatType
+    }
 
-	int result = INSIDE;
-	for(int i=0; i < 6; i++) {
+newtype Frustum
+    = Frustum
+    { frPlanes :: [Plane]
+    }
 
-		if (pl[i].distance(p) < 0)
-			return OUTSIDE;
-	}
-	return(result);
-}
+pointInFrustum :: Vec3 -> Frustum -> Bool
+pointInFrustum p fr = foldl' (\b (Plane n d) -> b && d + n &. p >= 0) True $ frPlanes fr
 
-int FrustumG::sphereInFrustum(Vec3 &p, float raio) {
+sphereInFrustum :: Vec3 -> FloatType -> Frustum -> Bool
+--sphereInFrustum p r fr = foldl' (\b (Plane n d) -> b && d + n &. p >= (-r)) True $ frPlanes fr
+sphereInFrustum p r fr = all (\(Plane n d) -> d + n &. p >= (-r)) (frPlanes fr)
 
-	int result = INSIDE;
-	float distance;
+boxInFrustum ::Vec3 -> Vec3 -> Frustum -> Bool
+boxInFrustum pp pn fr = foldl' (\b (Plane n d) -> b && d + n &. (g pp pn n) >= 0) True $ frPlanes fr
+  where
+    g (Vec3 px py pz) (Vec3 nx ny nz) n = Vec3 (fx px nx) (fy py ny) (fz pz nz)
+      where
+        [fx,fy,fz] = map (\a -> if a > 0 then max else min) $ destructVec3 [n]
 
-	for(int i=0; i < 6; i++) {
-		distance = pl[i].distance(p);
-		if (distance < -raio)
-			return OUTSIDE;
-		else if (distance < raio)
-			result =  INTERSECT;
-	}
-	return(result);
-}
+frustum :: FloatType -> FloatType -> FloatType -> FloatType -> Vec3 -> Vec3 -> Vec3 -> Frustum
+frustum angle ratio nearD farD p l u = Frustum [pl ntr ntl ftl, pl nbl nbr fbr, pl ntl nbl fbl,
+                                                pl nbr ntr fbr, pl ntl ntr nbr, pl ftr ftl fbl]
+  where
+    pl a b c = Plane n d
+      where
+        n = normalize $ (c &- b) &^ (a &- b)
+        d = -(n &. b)
+    ang2rad = pi / 180
+    tang    = tan $ angle * ang2rad * 0.5
+    nh  = nearD * tang
+    nw  = nh * ratio
+    fh  = farD * tang
+    fw  = fh * ratio
+    z   = normalize $ p &- l
+    x   = normalize $ u &^ z
+    y   = z &^ x
 
-int FrustumG::boxInFrustum(AABox &b) {
+    nc  = p &- nearD *& z
+    fc  = p &- farD *& z
 
-	int result = INSIDE;
-	for(int i=0; i < 6; i++) {
+    ntl = nc &+ nh *& y &- nw *& x
+    ntr = nc &+ nh *& y &+ nw *& x
+    nbl = nc &- nh *& y &- nw *& x
+    nbr = nc &- nh *& y &+ nw *& x
 
-		if (pl[i].distance(b.getVertexP(pl[i].normal)) < 0)
-			return OUTSIDE;
-		else if (pl[i].distance(b.getVertexN(pl[i].normal)) < 0)
-			result =  INTERSECT;
-	}
-	return(result);
- }
+    ftl = fc &+ fh *& y &- fw *& x
+    ftr = fc &+ fh *& y &+ fw *& x
+    fbl = fc &- fh *& y &- fw *& x
+    fbr = fc &- fh *& y &+ fw *& x
 
--}
+frustumFromMatrix :: Mat4 -> Frustum
+frustumFromMatrix m = Frustum [pl plLeftN plLeftD, pl plRightN plRightD, pl plTopN plTopD, pl plBottomN plBottomD, pl plNearN plNearD, pl plFarN plFarD]
+  where
+    Mat4 (Vec4 m00 m01 m02 m03) (Vec4 m10 m11 m12 m13) (Vec4 m20 m21 m22 m23) (Vec4 m30 m31 m32 m33) = transpose m
+    pl n d = Plane (normalize n) (d / norm n)
+    plLeftN     = Vec3 (m30+m00) (m31+m01) (m32+m02)
+    plLeftD     = (m33+m03)
+    plRightN    = Vec3 (m30-m00) (m31-m01) (m32-m02)
+    plRightD    = (m33-m03)
+    plTopN      = Vec3 (m30-m10) (m31-m11) (m32-m12)
+    plTopD      = (m33-m13)
+    plBottomN   = Vec3 (m30+m10) (m31+m11) (m32+m12)
+    plBottomD   = (m33+m13)
+    plNearN     = Vec3 (m30+m20) (m31+m21) (m32+m22)
+    plNearD     = (m33+m23)
+    plFarN      = Vec3 (m30-m20) (m31-m21) (m32-m22)
+    plFarD      = (m33-m23)
diff --git a/Graphics/LambdaCube/GpuProgram.hs b/Graphics/LambdaCube/GpuProgram.hs
--- a/Graphics/LambdaCube/GpuProgram.hs
+++ b/Graphics/LambdaCube/GpuProgram.hs
@@ -6,37 +6,16 @@
     = GPT_VERTEX_PROGRAM
     | GPT_FRAGMENT_PROGRAM
     | GPT_GEOMETRY_PROGRAM
-    deriving Eq
-
-class Eq p => GpuProgram p
-class Eq lp => LinkedGpuProgram lp --where
---    lgpVertexProgramName    :: lp -> String
---    lgpFragmentProgramName  :: lp -> String
---    lgpGeometryProgramName  :: lp -> String
+    deriving (Eq,Ord)
 
-{-
-class GpuProgram p where
-    gpType                :: p -> GpuProgramType        -- ^ The type of the program
-    gpFilename            :: p -> String                -- ^ The name of the file to load source from (may be blank)
-    gpSource              :: p -> String                -- ^ The assembler source of the program (may be blank until file loaded)
-    gpLoadFromFile        :: p -> Bool                  -- ^ Whether we need to load source from file or not
-    gpSyntaxCode          :: p -> String                -- ^ Syntax code e.g. arbvp1, vs_2_0 etc
-    gpSkeletalAnimation   :: p -> Bool                  -- ^ Does this (vertex) program include skeletal animation?
-    gpMorphAnimation      :: p -> Bool                  -- ^ Does this (vertex) program include morph animation?
-    gpPoseAnimation       :: p -> Int                   -- ^ Does this (vertex) program include pose animation (count of number of poses supported)
-    gpVertexTextureFetch  :: p -> Bool                  -- ^ Does this (vertex) program require support for vertex texture fetch?
-    gpNeedsAdjacencyInfo  :: p -> Bool                  -- ^ Does this (geometry) program require adjacency information?
-    gpDefaultParams       :: p -> GpuProgramParameters  -- ^ The default parameters for use with this object
-    gpCompileError        :: p -> Bool                  -- ^ Did we encounter a compilation error?
--}
+class Ord p => GpuProgram p
+class Ord lp => LinkedGpuProgram lp
 
 data GpuProgram p => GpuProgramDescriptor p
     = GpuProgramDescriptor
     { gpdName               :: String
     , gpdType               :: GpuProgramType       -- ^ The type of the program
     , gpdFilename           :: String               -- ^ The name of the file to load source from (may be blank)
---    , gpdSource             :: String               -- ^ The assembler source of the program (may be blank until file loaded)
---    , gpdLoadFromFile       :: Bool                 -- ^ Whether we need to load source from file or not
     , gpdSyntaxCode         :: String               -- ^ Syntax code e.g. arbvp1, vs_2_0 etc
     , gpdAttach             :: [String]
     , gpdSkeletalAnimation  :: Bool                 -- ^ Does this (vertex) program include skeletal animation?
@@ -45,21 +24,5 @@
     , gpdVertexTextureFetch :: Bool                 -- ^ Does this (vertex) program require support for vertex texture fetch?
     , gpdNeedsAdjacencyInfo :: Bool                 -- ^ Does this (geometry) program require adjacency information?
     , gpdDefaultParams      :: GpuProgramParameters -- ^ The default parameters for use with this object
---    , gpdCompileError       :: Bool                 -- ^ Did we encounter a compilation error?
-    
     , gpdGpuProgram         :: Maybe p
-    
---		/** Record of logical to physical buffer maps. Mandatory for low-level
---			programs or high-level programs which set their params the same way. */
---		mutable GpuLogicalBufferStruct mFloatLogicalToPhysical;
---		/** Record of logical to physical buffer maps. Mandatory for low-level
---			programs or high-level programs which set their params the same way. */
---		mutable GpuLogicalBufferStruct mIntLogicalToPhysical;
---		/// Parameter name -> ConstantDefinition map, shared instance used by all parameter objects
---		mutable GpuNamedConstants mConstantDefs;
---		/// File from which to load named constants manually
---		String mManualNamedConstantsFile;
---		bool mLoadedManualNamedConstants;
-    
     }
---    deriving Eq
diff --git a/Graphics/LambdaCube/GpuProgramParams.hs b/Graphics/LambdaCube/GpuProgramParams.hs
--- a/Graphics/LambdaCube/GpuProgramParams.hs
+++ b/Graphics/LambdaCube/GpuProgramParams.hs
@@ -1,16 +1,11 @@
 module Graphics.LambdaCube.GpuProgramParams where
 
 import Data.Map (Map)
-import qualified Data.Map as Map
 import Data.Word
 
 import Graphics.LambdaCube.Types
 
-{-| Enumeration of the types of constant we may encounter in programs. 
-@note Low-level programs, by definition, will always use either
-float4 or int4 constant types since that is the fundamental underlying
-type in assembler.
--}
+-- | The types of constants we may encounter in programs.
 data GpuConstantType
     = GCT_FLOAT1
     | GCT_FLOAT2
@@ -38,10 +33,8 @@
     | GCT_UNKNOWN
     deriving Eq
 
-
-{-| The variability of a GPU parameter, as derived from auto-params targetting it.
-These values must be powers of two since they are used in masks.
--}
+-- | The variability of a GPU parameter, as derived from auto-params
+-- targetting it.
 data GpuParamVariability
     = GpuParamVariability
     { gpvGlobal                 :: Bool -- ^ No variation except by manual setting - the default
@@ -50,37 +43,14 @@
     , gpvPassIterationNumber    :: Bool -- ^ Varies with pass iteration number
     }
     deriving Eq
-{-
-enum GpuParamVariability
-{
-	
-	GPV_GLOBAL = 1, 
-	-- |
-	GPV_PER_OBJECT = 2, 
-	-- |Varies with light setup
-	GPV_LIGHTS = 4, 
-	-- |Varies with pass iteration number
-	GPV_PASS_ITERATION_NUMBER = 8,
 
-
-	-- |Full mask (16-bit)
-	GPV_ALL = 0xFFFF
-
-};
--}
-
-{-| Information about predefined program constants. 
-@note Only available for high-level programs but is referenced generically
-by GpuProgramParameters.
--}
+-- | Information about predefined program constants.
 data GpuConstantDefinition
     = GpuConstantDefinition
     { gcdConstType      :: GpuConstantType      -- ^ Data type
     , gcdPhysicalIndex  :: Int                  -- ^ Physical start index in buffer (either float or int buffer)
     , gcdLogicalIndex   :: Int                  -- ^ Logical index - used to communicate this constant to the rendersystem
-    {-| Number of raw buffer slots per element 
-    (some programs pack each array element to float4, some do not) -}
-    , gcdElementSize    :: Int
+    , gcdElementSize    :: Int                  -- ^ Number of raw buffer slots per element (some programs pack each array element to float4, some do not)
     , gcdArraySize      :: Int                  -- ^ Length of array
     , gcdVariability    :: GpuParamVariability  -- ^ How this parameter varies (bitwise combination of GpuProgramVariability)
     }
@@ -88,90 +58,83 @@
 
 isFloat :: GpuConstantType -> Bool
 isFloat c = case c of
-    { GCT_INT1              -> False
-    ; GCT_INT2              -> False
-    ; GCT_INT3              -> False
-    ; GCT_INT4              -> False
-    ; GCT_SAMPLER1D         -> False
-    ; GCT_SAMPLER2D         -> False
-    ; GCT_SAMPLER3D         -> False
-    ; GCT_SAMPLERCUBE       -> False
-    ; GCT_SAMPLER1DSHADOW   -> False
-    ; GCT_SAMPLER2DSHADOW   -> False
-    ; _                     -> True
-    }
+    GCT_INT1              -> False
+    GCT_INT2              -> False
+    GCT_INT3              -> False
+    GCT_INT4              -> False
+    GCT_SAMPLER1D         -> False
+    GCT_SAMPLER2D         -> False
+    GCT_SAMPLER3D         -> False
+    GCT_SAMPLERCUBE       -> False
+    GCT_SAMPLER1DSHADOW   -> False
+    GCT_SAMPLER2DSHADOW   -> False
+    _                     -> True
 
 isSampler :: GpuConstantType -> Bool
 isSampler c = case c of
-    {
-    ; GCT_SAMPLER1D         -> True
-    ; GCT_SAMPLER2D         -> True
-    ; GCT_SAMPLER3D         -> True
-    ; GCT_SAMPLERCUBE       -> True
-    ; GCT_SAMPLER1DSHADOW   -> True
-    ; GCT_SAMPLER2DSHADOW   -> True
-    ; _                     -> False
-    }
+    GCT_SAMPLER1D         -> True
+    GCT_SAMPLER2D         -> True
+    GCT_SAMPLER3D         -> True
+    GCT_SAMPLERCUBE       -> True
+    GCT_SAMPLER1DSHADOW   -> True
+    GCT_SAMPLER2DSHADOW   -> True
+    _                     -> False
 
-{-| Get the element size of a given type, including whether to pad the 
-	elements into multiples of 4 (e.g. SM1 and D3D does, GLSL doesn't)
--}
+-- | Get the element size of a given type, including whether to pad
+-- the elements into multiples of 4 (e.g. SM1 and D3D does, GLSL
+-- doesn't)
 getElementSize :: GpuConstantType -> Bool -> Int
-getElementSize ctype padToMultiplesOf4 = case padToMultiplesOf4 of
-    { True  -> case ctype of
-        { GCT_FLOAT1            -> 4
-        ; GCT_INT1              -> 4
-        ; GCT_SAMPLER1D         -> 4
-        ; GCT_SAMPLER2D         -> 4
-        ; GCT_SAMPLER3D         -> 4
-        ; GCT_SAMPLERCUBE       -> 4
-        ; GCT_SAMPLER1DSHADOW   -> 4
-        ; GCT_SAMPLER2DSHADOW   -> 4
-        ; GCT_FLOAT2            -> 4
-        ; GCT_INT2              -> 4
-        ; GCT_FLOAT3            -> 4
-        ; GCT_INT3              -> 4
-        ; GCT_FLOAT4            -> 4
-        ; GCT_INT4              -> 4
-        ; GCT_MATRIX_2X2        -> 8
-        ; GCT_MATRIX_2X3        -> 8
-        ; GCT_MATRIX_2X4        -> 8
-        ; GCT_MATRIX_3X2        -> 12
-        ; GCT_MATRIX_3X3        -> 12
-        ; GCT_MATRIX_3X4        -> 12
-        ; GCT_MATRIX_4X2        -> 16
-        ; GCT_MATRIX_4X3        -> 16
-        ; GCT_MATRIX_4X4        -> 16
-        ; _                     -> 4
-        }
-    ; False -> case ctype of
-        {
-        ; GCT_FLOAT1            -> 1
-        ; GCT_INT1              -> 1
-        ; GCT_SAMPLER1D         -> 1
-        ; GCT_SAMPLER2D         -> 1
-        ; GCT_SAMPLER3D         -> 1
-        ; GCT_SAMPLERCUBE       -> 1
-        ; GCT_SAMPLER1DSHADOW   -> 1
-        ; GCT_SAMPLER2DSHADOW   -> 1
-        ; GCT_FLOAT2            -> 2
-        ; GCT_INT2              -> 2
-        ; GCT_FLOAT3            -> 3
-        ; GCT_INT3              -> 3
-        ; GCT_FLOAT4            -> 4
-        ; GCT_INT4              -> 4
-        ; GCT_MATRIX_2X2        -> 4
-        ; GCT_MATRIX_2X3        -> 6
-        ; GCT_MATRIX_3X2        -> 6
-        ; GCT_MATRIX_2X4        -> 8
-        ; GCT_MATRIX_4X2        -> 8
-        ; GCT_MATRIX_3X3        -> 9
-        ; GCT_MATRIX_3X4        -> 12
-        ; GCT_MATRIX_4X3        -> 12
-        ; GCT_MATRIX_4X4        -> 16
-        ; _                     -> 4
-        }
-    }
+getElementSize ctype padToMultiplesOf4
+    | padToMultiplesOf4 = case ctype of
+        GCT_FLOAT1            -> 4
+        GCT_INT1              -> 4
+        GCT_SAMPLER1D         -> 4
+        GCT_SAMPLER2D         -> 4
+        GCT_SAMPLER3D         -> 4
+        GCT_SAMPLERCUBE       -> 4
+        GCT_SAMPLER1DSHADOW   -> 4
+        GCT_SAMPLER2DSHADOW   -> 4
+        GCT_FLOAT2            -> 4
+        GCT_INT2              -> 4
+        GCT_FLOAT3            -> 4
+        GCT_INT3              -> 4
+        GCT_FLOAT4            -> 4
+        GCT_INT4              -> 4
+        GCT_MATRIX_2X2        -> 8
+        GCT_MATRIX_2X3        -> 8
+        GCT_MATRIX_2X4        -> 8
+        GCT_MATRIX_3X2        -> 12
+        GCT_MATRIX_3X3        -> 12
+        GCT_MATRIX_3X4        -> 12
+        GCT_MATRIX_4X2        -> 16
+        GCT_MATRIX_4X3        -> 16
+        GCT_MATRIX_4X4        -> 16
+        _                     -> 4
+    | otherwise = case ctype of
+        GCT_FLOAT1            -> 1
+        GCT_INT1              -> 1
+        GCT_SAMPLER1D         -> 1
+        GCT_SAMPLER2D         -> 1
+        GCT_SAMPLER3D         -> 1
+        GCT_SAMPLERCUBE       -> 1
+        GCT_SAMPLER1DSHADOW   -> 1
+        GCT_SAMPLER2DSHADOW   -> 1
+        GCT_FLOAT2            -> 2
+        GCT_INT2              -> 2
+        GCT_FLOAT3            -> 3
+        GCT_INT3              -> 3
+        GCT_FLOAT4            -> 4
+        GCT_INT4              -> 4
+        GCT_MATRIX_2X2        -> 4
+        GCT_MATRIX_2X3        -> 6
+        GCT_MATRIX_3X2        -> 6
+        GCT_MATRIX_2X4        -> 8
+        GCT_MATRIX_4X2        -> 8
+        GCT_MATRIX_3X3        -> 9
+        GCT_MATRIX_3X4        -> 12
+        GCT_MATRIX_4X3        -> 12
+        GCT_MATRIX_4X4        -> 16
+        _                     -> 4
 
 -- | Struct collecting together the information for named constants.
 data GpuNamedConstants
@@ -179,19 +142,12 @@
     { gncFloatBufferSize                            :: Int                              -- ^ Total size of the float buffer required
     , gncIntBufferSize                              :: Int                              -- ^ Total size of the int buffer required
     , gncMap                                        :: Map String GpuConstantDefinition -- ^ Map of parameter names to GpuConstantDefinition
-	{-| Indicates whether all array entries will be generated and added to the definitions map
-	@remarks
-	Normally, the number of array entries added to the definitions map is capped at 16
-	to save memory. Setting this value to <code>true</code> allows all of the entries
-	to be generated and added to the map.
-	-}
     , gncGenerateAllConstantDefinitionArrayEntries  :: Bool
     }
     deriving Eq
 
-{-| Structure recording the use of a physical buffer by a logical parameter
-index. Only used for low-level programs.
--}
+-- | Structure recording the use of a physical buffer by a logical
+-- parameter index. Only used for low-level programs.
 data GpuLogicalIndexUse
     = GpuLogicalIndexUse
     { gliPhysicalIndex  :: Int      -- ^ Physical buffer index
@@ -200,7 +156,8 @@
     }
     deriving Eq
 
--- | Container struct to allow params to safely & update shared list of logical buffer assignments
+-- | Container to allow params to safely & update shared list of
+-- logical buffer assignments
 data GpuLogicalBufferStruct
     = GpuLogicalBufferStruct
     { gluMap        :: Map Int GpuLogicalIndexUse   -- ^ Map from logical index to physical buffer location
@@ -208,36 +165,20 @@
     }
     deriving Eq
 
-{-| A group of manually updated parameters that are shared between many parameter sets.
-@remarks
-	Sometimes you want to set some common parameters across many otherwise 
-	different parameter sets, and keep them all in sync together. This class
-	allows you to define a set of parameters that you can share across many
-	parameter sets and have the parameters that match automatically be pulled
-	from the shared set, rather than you having to set them on all the parameter
-	sets individually.
-@par
-	Parameters in a shared set are matched up with instances in a GpuProgramParameters
-	structure by matching names. It is up to you to define the named parameters
-	that a shared set contains, and ensuring the definition matches.
-@note
-	Shared parameter sets can be named, and looked up using the GpuProgramManager.
--}
+-- | A group of manually updated parameters that are shared between
+-- many parameter sets.
 data GpuSharedParameters
     = GpuSharedParameters
     { gspNamedConstants     :: GpuNamedConstants
     , gspFloatConstants     :: [Float]
     , gspIntConstants       :: [Int]
     , gspName               :: String
-	-- Optional data the rendersystem might want to store
-    --mutable Any mRenderSystemData;
-
     , gspFrameLastUpdated   :: Int  -- ^ Not used when copying data, but might be useful to RS using shared buffers
     , gspVersion            :: Int  -- ^ Version number of the definitions in this buffer
     }
     deriving Eq
 
--- list of physical mappings that we are going to bring in
+-- | The list of physical mappings that we are going to bring in.
 data CopyDataEntry
     = CopyDataEntry
     { cdeSrcDefinition  :: GpuConstantDefinition
@@ -245,447 +186,180 @@
     }
     deriving Eq
 
-{-| This class records the usage of a set of shared parameters in a concrete
-	set of GpuProgramParameters.
--}
+-- | The usage of a set of shared parameters in a concrete set of
+-- GpuProgramParameters.
 data GpuSharedParametersUsage
     = GpuSharedParametersUsage
     { spuSharedParams       :: GpuSharedParameters
---    , spuParams             :: GpuProgramParameters -- ^ Not a shared pointer since this is also parent
     , spuCopyDataList       :: [CopyDataEntry]
-	-- Optional data the rendersystem might want to store
---    mutable Any mRenderSystemData;
     , spuCopyDataVersion    :: Int  -- ^ Version of shared params we based the copydata on
     }
     deriving Eq
-    
-{-| Defines the types of automatically updated values that may be bound to GpuProgram
-parameters, or used to modify parameters on a per-object basis.
--}
-data AutoConstantType
-    = ACT_WORLD_MATRIX -- ^ The current world matrix
-    | ACT_INVERSE_WORLD_MATRIX -- ^ The current world matrix, inverted
-    {-|Provides transpose of world matrix.
-       Equivalent to RenderMonkey's "WorldTranspose".
-    -}
-    | ACT_TRANSPOSE_WORLD_MATRIX
-    | ACT_INVERSE_TRANSPOSE_WORLD_MATRIX -- ^ The current world matrix, inverted & transposed
 
-
-    | ACT_WORLD_MATRIX_ARRAY_3x4 -- ^ The current array of world matrices, as a 3x4 matrix, used for blending
-    | ACT_WORLD_MATRIX_ARRAY -- ^ The current array of world matrices, used for blending
-
-    | ACT_VIEW_MATRIX -- ^ The current view matrix
-    | ACT_INVERSE_VIEW_MATRIX -- ^ The current view matrix, inverted
-    {-|Provides transpose of view matrix.
-    Equivalent to RenderMonkey's "ViewTranspose".
-    -}
-    | ACT_TRANSPOSE_VIEW_MATRIX
-    {-|Provides inverse transpose of view matrix.
-    Equivalent to RenderMonkey's "ViewInverseTranspose".
-    -}
-    | ACT_INVERSE_TRANSPOSE_VIEW_MATRIX
-
-
-    | ACT_PROJECTION_MATRIX -- ^ The current projection matrix
-    {-|Provides inverse of projection matrix.
-    Equivalent to RenderMonkey's "ProjectionInverse".
-    -}
-    | ACT_INVERSE_PROJECTION_MATRIX
-    {-|Provides transpose of projection matrix.
-    Equivalent to RenderMonkey's "ProjectionTranspose".
-    -}
-    | ACT_TRANSPOSE_PROJECTION_MATRIX
-    {-|Provides inverse transpose of projection matrix.
-    Equivalent to RenderMonkey's "ProjectionInverseTranspose".
-    -}
-    | ACT_INVERSE_TRANSPOSE_PROJECTION_MATRIX
-
-
-    | ACT_VIEWPROJ_MATRIX -- ^ The current view & projection matrices concatenated
-    {-|Provides inverse of concatenated view and projection matrices.
-    Equivalent to RenderMonkey's "ViewProjectionInverse".
-    -}
-    | ACT_INVERSE_VIEWPROJ_MATRIX
-    {-|Provides transpose of concatenated view and projection matrices.
-    Equivalent to RenderMonkey's "ViewProjectionTranspose".
-    -}
-    | ACT_TRANSPOSE_VIEWPROJ_MATRIX
-    {-|Provides inverse transpose of concatenated view and projection matrices.
-    Equivalent to RenderMonkey's "ViewProjectionInverseTranspose".
-    -}
-    | ACT_INVERSE_TRANSPOSE_VIEWPROJ_MATRIX
-
-
-    | ACT_WORLDVIEW_MATRIX -- ^ The current world & view matrices concatenated
-    | ACT_INVERSE_WORLDVIEW_MATRIX -- ^ The current world & view matrices concatenated, then inverted
-    {-|Provides transpose of concatenated world and view matrices.
-    Equivalent to RenderMonkey's "WorldViewTranspose".
-    -}
-    | ACT_TRANSPOSE_WORLDVIEW_MATRIX
-    | ACT_INVERSE_TRANSPOSE_WORLDVIEW_MATRIX -- ^ The current world & view matrices concatenated, then inverted & transposed
-    -- |view matrices.
+-- | The types of automatically updated values that may be bound to
+-- GpuProgram parameters, or used to modify parameters on a per-object
+-- basis.
+data AutoConstantType
+    = ACT_WORLD_MATRIX                              -- ^ The current world matrix
+    | ACT_INVERSE_WORLD_MATRIX                      -- ^ The current world matrix, inverted
+    | ACT_TRANSPOSE_WORLD_MATRIX                    -- ^ Provides transpose of world matrix. Equivalent to RenderMonkey's "WorldTranspose".
+    | ACT_INVERSE_TRANSPOSE_WORLD_MATRIX            -- ^ The current world matrix, inverted & transposed
 
+    | ACT_WORLD_MATRIX_ARRAY_3x4                    -- ^ The current array of world matrices, as a 3x4 matrix, used for blending
+    | ACT_WORLD_MATRIX_ARRAY                        -- ^ The current array of world matrices, used for blending
 
-    | ACT_WORLDVIEWPROJ_MATRIX -- ^ The current world, view & projection matrices concatenated
-    {-|Provides inverse of concatenated world, view and projection matrices.
-    Equivalent to RenderMonkey's "WorldViewProjectionInverse".
-    -}
-    | ACT_INVERSE_WORLDVIEWPROJ_MATRIX
-    {-|Provides transpose of concatenated world, view and projection matrices.
-    Equivalent to RenderMonkey's "WorldViewProjectionTranspose".
-    -}
-    | ACT_TRANSPOSE_WORLDVIEWPROJ_MATRIX
-    {-|Provides inverse transpose of concatenated world, view and projection
-    matrices. Equivalent to RenderMonkey's "WorldViewProjectionInverseTranspose".
-    -}
-    | ACT_INVERSE_TRANSPOSE_WORLDVIEWPROJ_MATRIX
+    | ACT_VIEW_MATRIX                               -- ^ The current view matrix
+    | ACT_INVERSE_VIEW_MATRIX                       -- ^ The current view matrix, inverted
+    | ACT_TRANSPOSE_VIEW_MATRIX                     -- ^ Provides transpose of view matrix. Equivalent to RenderMonkey's "ViewTranspose".
+    | ACT_INVERSE_TRANSPOSE_VIEW_MATRIX             -- ^ Provides inverse transpose of view matrix. Equivalent to RenderMonkey's "ViewInverseTranspose".
 
+    | ACT_PROJECTION_MATRIX                         -- ^ The current projection matrix
+    | ACT_INVERSE_PROJECTION_MATRIX                 -- ^ Provides inverse of projection matrix. Equivalent to RenderMonkey's "ProjectionInverse".
+    | ACT_TRANSPOSE_PROJECTION_MATRIX               -- ^ Provides transpose of projection matrix. Equivalent to RenderMonkey's "ProjectionTranspose".
+    | ACT_INVERSE_TRANSPOSE_PROJECTION_MATRIX       -- ^ Provides inverse transpose of projection matrix. Equivalent to RenderMonkey's "ProjectionInverseTranspose".
 
-    -- |render target related values
-    {-|-1 if requires texture flipping, +1 otherwise. It's useful when you bypassed
-    projection matrix transform, still able use this value to adjust transformed y position.
-    -}
-    | ACT_RENDER_TARGET_FLIPPING
+    | ACT_VIEWPROJ_MATRIX                           -- ^ The current view & projection matrices concatenated
+    | ACT_INVERSE_VIEWPROJ_MATRIX                   -- ^ Provides inverse of concatenated view and projection matrices. Equivalent to RenderMonkey's "ViewProjectionInverse".
+    | ACT_TRANSPOSE_VIEWPROJ_MATRIX                 -- ^ Provides transpose of concatenated view and projection matrices. Equivalent to RenderMonkey's "ViewProjectionTranspose".
+    | ACT_INVERSE_TRANSPOSE_VIEWPROJ_MATRIX         -- ^ Provides inverse transpose of concatenated view and projection matrices. Equivalent to RenderMonkey's "ViewProjectionInverseTranspose".
 
+    | ACT_WORLDVIEW_MATRIX                          -- ^ The current world & view matrices concatenated
+    | ACT_INVERSE_WORLDVIEW_MATRIX                  -- ^ The current world & view matrices concatenated, then inverted
+    | ACT_TRANSPOSE_WORLDVIEW_MATRIX                -- ^ Provides transpose of concatenated world and view matrices. Equivalent to RenderMonkey's "WorldViewTranspose".
+    | ACT_INVERSE_TRANSPOSE_WORLDVIEW_MATRIX        -- ^ The current world & view matrices concatenated, then inverted & transposed
 
-    | ACT_FOG_COLOUR -- ^ Fog colour
-    | ACT_FOG_PARAMS -- ^ Fog params: density, linear start, linear end, 1/(end-start)
+    | ACT_WORLDVIEWPROJ_MATRIX                      -- ^ The current world, view & projection matrices concatenated
+    | ACT_INVERSE_WORLDVIEWPROJ_MATRIX              -- ^ Provides inverse of concatenated world, view and projection matrices. Equivalent to RenderMonkey's "WorldViewProjectionInverse".
+    | ACT_TRANSPOSE_WORLDVIEWPROJ_MATRIX            -- ^ Provides transpose of concatenated world, view and projection matrices. Equivalent to RenderMonkey's "WorldViewProjectionTranspose".
+    | ACT_INVERSE_TRANSPOSE_WORLDVIEWPROJ_MATRIX    -- ^ Provides inverse transpose of concatenated world, view and projection matrices. Equivalent to RenderMonkey's "WorldViewProjectionInverseTranspose".
 
+    | ACT_RENDER_TARGET_FLIPPING                    -- ^ -1 if requires texture flipping, +1 otherwise. It's useful when you bypassed projection matrix transform, still able use this value to adjust transformed y position.
 
-    | ACT_SURFACE_AMBIENT_COLOUR -- ^ Surface ambient colour, as set in Pass::setAmbient
-    | ACT_SURFACE_DIFFUSE_COLOUR -- ^ Surface diffuse colour, as set in Pass::setDiffuse
-    | ACT_SURFACE_SPECULAR_COLOUR -- ^ Surface specular colour, as set in Pass::setSpecular
-    | ACT_SURFACE_EMISSIVE_COLOUR -- ^ Surface emissive colour, as set in Pass::setSelfIllumination
-    | ACT_SURFACE_SHININESS -- ^ Surface shininess, as set in Pass::setShininess
+    | ACT_FOG_COLOUR                                -- ^ Fog colour
+    | ACT_FOG_PARAMS                                -- ^ Fog params: density, linear start, linear end, 1/(end-start)
 
+    | ACT_SURFACE_AMBIENT_COLOUR                    -- ^ Surface ambient colour, as set in Pass::setAmbient
+    | ACT_SURFACE_DIFFUSE_COLOUR                    -- ^ Surface diffuse colour, as set in Pass::setDiffuse
+    | ACT_SURFACE_SPECULAR_COLOUR                   -- ^ Surface specular colour, as set in Pass::setSpecular
+    | ACT_SURFACE_EMISSIVE_COLOUR                   -- ^ Surface emissive colour, as set in Pass::setSelfIllumination
+    | ACT_SURFACE_SHININESS                         -- ^ Surface shininess, as set in Pass::setShininess
 
-    | ACT_LIGHT_COUNT -- ^ The number of active light sources (better than gl_MaxLights)
+    | ACT_LIGHT_COUNT                               -- ^ The number of active light sources (better than gl_MaxLights)
 
+    | ACT_AMBIENT_LIGHT_COLOUR                      -- ^ The ambient light colour set in the scene
 
-    | ACT_AMBIENT_LIGHT_COLOUR -- ^ The ambient light colour set in the scene
+    | ACT_LIGHT_DIFFUSE_COLOUR                      -- ^ Light diffuse colour (index determined by setAutoConstant call)
+    | ACT_LIGHT_SPECULAR_COLOUR                     -- ^ Light specular colour (index determined by setAutoConstant call)
+    | ACT_LIGHT_ATTENUATION                         -- ^ Light attenuation parameters, Vector4(range, constant, linear, quadric)
 
-    | ACT_LIGHT_DIFFUSE_COLOUR -- ^ Light diffuse colour (index determined by setAutoConstant call)
-    | ACT_LIGHT_SPECULAR_COLOUR -- ^ Light specular colour (index determined by setAutoConstant call)
-    | ACT_LIGHT_ATTENUATION -- ^ Light attenuation parameters, Vector4(range, constant, linear, quadric)
-    {-|Spotlight parameters, Vector4(innerFactor, outerFactor, falloff, isSpot)
-    innerFactor and outerFactor are cos(angle/2)
-    The isSpot parameter is 0.0f for non-spotlights, 1.0f for spotlights.
-    Also for non-spotlights the inner and outer factors are 1 and nearly 1 respectively
-    -} 
     | ACT_SPOTLIGHT_PARAMS
-    | ACT_LIGHT_POSITION -- ^ A light position in world space (index determined by setAutoConstant call)
-    | ACT_LIGHT_POSITION_OBJECT_SPACE -- ^ A light position in object space (index determined by setAutoConstant call)
-    | ACT_LIGHT_POSITION_VIEW_SPACE -- ^ A light position in view space (index determined by setAutoConstant call)
-    | ACT_LIGHT_DIRECTION -- ^ A light direction in world space (index determined by setAutoConstant call)
-    | ACT_LIGHT_DIRECTION_OBJECT_SPACE -- ^ A light direction in object space (index determined by setAutoConstant call)
-    | ACT_LIGHT_DIRECTION_VIEW_SPACE -- ^ A light direction in view space (index determined by setAutoConstant call)
-    {-|The distance of the light from the center of the object
-    a useful approximation as an alternative to per-vertex distance
-    calculations.
-    -}
-    | ACT_LIGHT_DISTANCE_OBJECT_SPACE
-    {-|Light power level, a single scalar as set in Light::setPowerScale  (index determined by setAutoConstant call) -}
-    | ACT_LIGHT_POWER_SCALE
-    -- |Light diffuse colour pre-scaled by Light::setPowerScale (index determined by setAutoConstant call)
-    | ACT_LIGHT_DIFFUSE_COLOUR_POWER_SCALED
-    -- |Light specular colour pre-scaled by Light::setPowerScale (index determined by setAutoConstant call)
-    | ACT_LIGHT_SPECULAR_COLOUR_POWER_SCALED
-    -- |Array of light diffuse colours (count set by extra param)
-    | ACT_LIGHT_DIFFUSE_COLOUR_ARRAY
-    -- |Array of light specular colours (count set by extra param)
-    | ACT_LIGHT_SPECULAR_COLOUR_ARRAY
-    -- |Array of light diffuse colours scaled by light power (count set by extra param)
-    | ACT_LIGHT_DIFFUSE_COLOUR_POWER_SCALED_ARRAY
-    -- |Array of light specular colours scaled by light power (count set by extra param)
-    | ACT_LIGHT_SPECULAR_COLOUR_POWER_SCALED_ARRAY
-    -- |Array of light attenuation parameters, Vector4(range, constant, linear, quadric) (count set by extra param)
-    | ACT_LIGHT_ATTENUATION_ARRAY
-    -- |Array of light positions in world space (count set by extra param)
-    | ACT_LIGHT_POSITION_ARRAY
-    -- |Array of light positions in object space (count set by extra param)
-    | ACT_LIGHT_POSITION_OBJECT_SPACE_ARRAY
-    -- |Array of light positions in view space (count set by extra param)
-    | ACT_LIGHT_POSITION_VIEW_SPACE_ARRAY
-    -- |Array of light directions in world space (count set by extra param)
-    | ACT_LIGHT_DIRECTION_ARRAY
-    -- |Array of light directions in object space (count set by extra param)
-    | ACT_LIGHT_DIRECTION_OBJECT_SPACE_ARRAY
-    -- |Array of light directions in view space (count set by extra param)
-    | ACT_LIGHT_DIRECTION_VIEW_SPACE_ARRAY
-    {-|Array of distances of the lights from the center of the object
-    a useful approximation as an alternative to per-vertex distance
-    calculations. (count set by extra param)
-    -}
-    | ACT_LIGHT_DISTANCE_OBJECT_SPACE_ARRAY
-    {-|Array of light power levels, a single scalar as set in Light::setPowerScale 
-    (count set by extra param)
-    -}
-    | ACT_LIGHT_POWER_SCALE_ARRAY
-    {-|Spotlight parameters array of Vector4(innerFactor, outerFactor, falloff, isSpot)
-    innerFactor and outerFactor are cos(angle/2)
-    The isSpot parameter is 0.0f for non-spotlights, 1.0f for spotlights.
-    Also for non-spotlights the inner and outer factors are 1 and nearly 1 respectively.
-    (count set by extra param)
-    -} 
-    | ACT_SPOTLIGHT_PARAMS_ARRAY
+    | ACT_LIGHT_POSITION                            -- ^ A light position in world space (index determined by setAutoConstant call)
+    | ACT_LIGHT_POSITION_OBJECT_SPACE               -- ^ A light position in object space (index determined by setAutoConstant call)
+    | ACT_LIGHT_POSITION_VIEW_SPACE                 -- ^ A light position in view space (index determined by setAutoConstant call)
+    | ACT_LIGHT_DIRECTION                           -- ^ A light direction in world space (index determined by setAutoConstant call)
+    | ACT_LIGHT_DIRECTION_OBJECT_SPACE              -- ^ A light direction in object space (index determined by setAutoConstant call)
+    | ACT_LIGHT_DIRECTION_VIEW_SPACE                -- ^ A light direction in view space (index determined by setAutoConstant call)
+    | ACT_LIGHT_DISTANCE_OBJECT_SPACE               -- ^ The distance of the light from the center of the object a useful approximation as an alternative to per-vertex distance calculations.
+    | ACT_LIGHT_POWER_SCALE                         -- ^ Light power level, a single scalar as set in Light::setPowerScale  (index determined by setAutoConstant call)
+    | ACT_LIGHT_DIFFUSE_COLOUR_POWER_SCALED         -- ^ Light diffuse colour pre-scaled by Light::setPowerScale (index determined by setAutoConstant call)
+    | ACT_LIGHT_SPECULAR_COLOUR_POWER_SCALED        -- ^ Light specular colour pre-scaled by Light::setPowerScale (index determined by setAutoConstant call)
+    | ACT_LIGHT_DIFFUSE_COLOUR_ARRAY                -- ^ Array of light diffuse colours (count set by extra param)
+    | ACT_LIGHT_SPECULAR_COLOUR_ARRAY               -- ^ Array of light specular colours (count set by extra param)
+    | ACT_LIGHT_DIFFUSE_COLOUR_POWER_SCALED_ARRAY   -- ^ Array of light diffuse colours scaled by light power (count set by extra param)
+    | ACT_LIGHT_SPECULAR_COLOUR_POWER_SCALED_ARRAY  -- ^ Array of light specular colours scaled by light power (count set by extra param)
+    | ACT_LIGHT_ATTENUATION_ARRAY                   -- ^ Array of light attenuation parameters, Vector4(range, constant, linear, quadric) (count set by extra param)
+    | ACT_LIGHT_POSITION_ARRAY                      -- ^ Array of light positions in world space (count set by extra param)
+    | ACT_LIGHT_POSITION_OBJECT_SPACE_ARRAY         -- ^ Array of light positions in object space (count set by extra param)
+    | ACT_LIGHT_POSITION_VIEW_SPACE_ARRAY           -- ^ Array of light positions in view space (count set by extra param)
+    | ACT_LIGHT_DIRECTION_ARRAY                     -- ^ Array of light directions in world space (count set by extra param)
+    | ACT_LIGHT_DIRECTION_OBJECT_SPACE_ARRAY        -- ^ Array of light directions in object space (count set by extra param)
+    | ACT_LIGHT_DIRECTION_VIEW_SPACE_ARRAY          -- ^ Array of light directions in view space (count set by extra param)
+    | ACT_LIGHT_DISTANCE_OBJECT_SPACE_ARRAY         -- ^ Array of distances of the lights from the center of the object a useful approximation as an alternative to per-vertex distance calculations. (count set by extra param)
+    | ACT_LIGHT_POWER_SCALE_ARRAY                   -- ^ Array of light power levels, a single scalar as set in Light::setPowerScale (count set by extra param)
 
-    {-|The derived ambient light colour, with 'r', 'g', 'b' components filled with
-    product of surface ambient colour and ambient light colour, respectively,
-    and 'a' component filled with surface ambient alpha component.
-    -}
+    | ACT_SPOTLIGHT_PARAMS_ARRAY
     | ACT_DERIVED_AMBIENT_LIGHT_COLOUR
-    {-|The derived scene colour, with 'r', 'g' and 'b' components filled with sum
-    of derived ambient light colour and surface emissive colour, respectively,
-    and 'a' component filled with surface diffuse alpha component.
-    -}
     | ACT_DERIVED_SCENE_COLOUR
-
-    {-|The derived light diffuse colour (index determined by setAutoConstant call),
-    with 'r', 'g' and 'b' components filled with product of surface diffuse colour,
-    light power scale and light diffuse colour, respectively, and 'a' component filled with surface
-    diffuse alpha component.
-    -}
     | ACT_DERIVED_LIGHT_DIFFUSE_COLOUR
-    {-|The derived light specular colour (index determined by setAutoConstant call),
-    with 'r', 'g' and 'b' components filled with product of surface specular colour
-    and light specular colour, respectively, and 'a' component filled with surface
-    specular alpha component.
-    -}
     | ACT_DERIVED_LIGHT_SPECULAR_COLOUR
-
-    -- |Array of derived light diffuse colours (count set by extra param)
-    | ACT_DERIVED_LIGHT_DIFFUSE_COLOUR_ARRAY
-    -- |Array of derived light specular colours (count set by extra param)
-    | ACT_DERIVED_LIGHT_SPECULAR_COLOUR_ARRAY
-    {-|The absolute light number of a local light index. Each pass may have
-    a number of lights passed to it, and each of these lights will have
-    an index in the overall light list, which will differ from the local
-    light index due to factors like setStartLight and setIteratePerLight.
-    This binding provides the global light index for a local index.
-    -}
+    | ACT_DERIVED_LIGHT_DIFFUSE_COLOUR_ARRAY        -- ^ Array of derived light diffuse colours (count set by extra param)
+    | ACT_DERIVED_LIGHT_SPECULAR_COLOUR_ARRAY       -- ^ Array of derived light specular colours (count set by extra param)
     | ACT_LIGHT_NUMBER
-    -- |Returns (int) 1 if the  given light casts shadows, 0 otherwise (index set in extra param)
-    | ACT_LIGHT_CASTS_SHADOWS
-
-
-    {-|The distance a shadow volume should be extruded when using
-    finite extrusion programs.
-    -}
-    | ACT_SHADOW_EXTRUSION_DISTANCE
-    -- |The current camera's position in world space
-    | ACT_CAMERA_POSITION
-    -- |The current camera's position in object space 
-    | ACT_CAMERA_POSITION_OBJECT_SPACE
-    -- |The view/projection matrix of the assigned texture projection frustum
-    | ACT_TEXTURE_VIEWPROJ_MATRIX
-    -- |Array of view/projection matrices of the first n texture projection frustums
-    | ACT_TEXTURE_VIEWPROJ_MATRIX_ARRAY
-    {-|The view/projection matrix of the assigned texture projection frustum, 
-    combined with the current world matrix
-    -}
-    | ACT_TEXTURE_WORLDVIEWPROJ_MATRIX
-    -- |Array of world/view/projection matrices of the first n texture projection frustums
-    | ACT_TEXTURE_WORLDVIEWPROJ_MATRIX_ARRAY
-    -- |The view/projection matrix of a given spotlight
-    | ACT_SPOTLIGHT_VIEWPROJ_MATRIX
-    {-|The view/projection matrix of a given spotlight projection frustum, 
-    combined with the current world matrix
-    -}
-    | ACT_SPOTLIGHT_WORLDVIEWPROJ_MATRIX
-    -- |A custom parameter which will come from the renderable, using 'data' as the identifier
-    | ACT_CUSTOM
-    {-|provides current elapsed time
-    -}
-    | ACT_TIME
-    {-|Single float value, which repeats itself based on given as
-    parameter "cycle time". Equivalent to RenderMonkey's "Time0_X".
-    -}
-    | ACT_TIME_0_X
-    -- |Cosine of "Time0_X". Equivalent to RenderMonkey's "CosTime0_X".
-    | ACT_COSTIME_0_X
-    -- |Sine of "Time0_X". Equivalent to RenderMonkey's "SinTime0_X".
-    | ACT_SINTIME_0_X
-    -- |Tangent of "Time0_X". Equivalent to RenderMonkey's "TanTime0_X".
-    | ACT_TANTIME_0_X
-    {-|Vector of "Time0_X", "SinTime0_X", "CosTime0_X", 
-    "TanTime0_X". Equivalent to RenderMonkey's "Time0_X_Packed".
-    -}
-    | ACT_TIME_0_X_PACKED
-    {-|Single float value, which represents scaled time value [0..1],
-    which repeats itself based on given as parameter "cycle time".
-    Equivalent to RenderMonkey's "Time0_1".
-    -}
-    | ACT_TIME_0_1
-    -- |Cosine of "Time0_1". Equivalent to RenderMonkey's "CosTime0_1".
-    | ACT_COSTIME_0_1
-    -- |Sine of "Time0_1". Equivalent to RenderMonkey's "SinTime0_1".
-    | ACT_SINTIME_0_1
-    -- |Tangent of "Time0_1". Equivalent to RenderMonkey's "TanTime0_1".
-    | ACT_TANTIME_0_1
-    {-|Vector of "Time0_1", "SinTime0_1", "CosTime0_1",
-    "TanTime0_1". Equivalent to RenderMonkey's "Time0_1_Packed".
-    -}
-    | ACT_TIME_0_1_PACKED
-    {-|Single float value, which represents scaled time value [0..2*Pi],
-    which repeats itself based on given as parameter "cycle time".
-    Equivalent to RenderMonkey's "Time0_2PI".
-    -}
-    | ACT_TIME_0_2PI
-    -- |Cosine of "Time0_2PI". Equivalent to RenderMonkey's "CosTime0_2PI".
-    | ACT_COSTIME_0_2PI
-    -- |Sine of "Time0_2PI". Equivalent to RenderMonkey's "SinTime0_2PI".
-    | ACT_SINTIME_0_2PI
-    -- |Tangent of "Time0_2PI". Equivalent to RenderMonkey's "TanTime0_2PI".
-    | ACT_TANTIME_0_2PI
-    {-|Vector of "Time0_2PI", "SinTime0_2PI", "CosTime0_2PI",
-    "TanTime0_2PI". Equivalent to RenderMonkey's "Time0_2PI_Packed".
-    -}
-    | ACT_TIME_0_2PI_PACKED
-    -- |provides the scaled frame time, returned as a floating point value.
-    | ACT_FRAME_TIME
-    -- |provides the calculated frames per second, returned as a floating point value.
-    | ACT_FPS
-    -- |viewport-related values
-    {-|Current viewport width (in pixels) as floating point value.
-    Equivalent to RenderMonkey's "ViewportWidth".
-    -}
-    | ACT_VIEWPORT_WIDTH
-    {-|Current viewport height (in pixels) as floating point value.
-    Equivalent to RenderMonkey's "ViewportHeight".
-    -}
-    | ACT_VIEWPORT_HEIGHT
-    {-|This variable represents 1.0/ViewportWidth. 
-    Equivalent to RenderMonkey's "ViewportWidthInverse".
-    -}
-    | ACT_INVERSE_VIEWPORT_WIDTH
-    {-|This variable represents 1.0/ViewportHeight.
-    Equivalent to RenderMonkey's "ViewportHeightInverse".
-    -}
-    | ACT_INVERSE_VIEWPORT_HEIGHT
-    {-|Packed of "ViewportWidth", "ViewportHeight", "ViewportWidthInverse",
-    "ViewportHeightInverse".
-    -}
-    | ACT_VIEWPORT_SIZE
-
-    -- |view parameters
-    {-|This variable provides the view direction vector (world space).
-    Equivalent to RenderMonkey's "ViewDirection".
-    -}
-    | ACT_VIEW_DIRECTION
-    {-|This variable provides the view side vector (world space).
-    Equivalent to RenderMonkey's "ViewSideVector".
-    -}
-    | ACT_VIEW_SIDE_VECTOR
-    {-|This variable provides the view up vector (world space).
-    Equivalent to RenderMonkey's "ViewUpVector".
-    -}
-    | ACT_VIEW_UP_VECTOR
-    {-|This variable provides the field of view as a floating point value.
-    Equivalent to RenderMonkey's "FOV".
-    -}
-    | ACT_FOV
-    {-|This variable provides the near clip distance as a floating point value.
-    Equivalent to RenderMonkey's "NearClipPlane".
-    -}
-    | ACT_NEAR_CLIP_DISTANCE
-    {-|This variable provides the far clip distance as a floating point value.
-    Equivalent to RenderMonkey's "FarClipPlane".
-    -}
-    | ACT_FAR_CLIP_DISTANCE
-
-    {-|provides the pass index number within the technique
-    of the active materil.
-    -}
-    | ACT_PASS_NUMBER
+    | ACT_LIGHT_CASTS_SHADOWS                       -- ^ Returns (int) 1 if the  given light casts shadows, 0 otherwise (index set in extra param)
 
-    {-|provides the current iteration number of the pass. The iteration
-    number is the number of times the current render operation has
-    been drawn for the active pass.
-    -}
-    | ACT_PASS_ITERATION_NUMBER
+    | ACT_SHADOW_EXTRUSION_DISTANCE                 -- ^ The distance a shadow volume should be extruded when using finite extrusion programs.
+    | ACT_CAMERA_POSITION                           -- ^ The current camera's position in world space
+    | ACT_CAMERA_POSITION_OBJECT_SPACE              -- ^ The current camera's position in object space
+    | ACT_TEXTURE_VIEWPROJ_MATRIX                   -- ^ The view/projection matrix of the assigned texture projection frustum
+    | ACT_TEXTURE_VIEWPROJ_MATRIX_ARRAY             -- ^ Array of view/projection matrices of the first n texture projection frustums
+    | ACT_TEXTURE_WORLDVIEWPROJ_MATRIX              -- ^ The view/projection matrix of the assigned texture projection frustum, combined with the current world matrix
+    | ACT_TEXTURE_WORLDVIEWPROJ_MATRIX_ARRAY        -- ^ Array of world/view/projection matrices of the first n texture projection frustums
+    | ACT_SPOTLIGHT_VIEWPROJ_MATRIX                 -- ^ The view/projection matrix of a given spotlight
+    | ACT_SPOTLIGHT_WORLDVIEWPROJ_MATRIX            -- ^ The view/projection matrix of a given spotlight projection frustum, combined with the current world matrix
+    | ACT_CUSTOM                                    -- ^ A custom parameter which will come from the renderable, using 'data' as the identifier
+    | ACT_TIME                                      -- ^ provides current elapsed time
+    | ACT_TIME_0_X                                  -- ^ Single float value, which repeats itself based on given as parameter "cycle time". Equivalent to RenderMonkey's "Time0_X".
+    | ACT_COSTIME_0_X                               -- ^ Cosine of "Time0_X". Equivalent to RenderMonkey's "CosTime0_X".
+    | ACT_SINTIME_0_X                               -- ^ Sine of "Time0_X". Equivalent to RenderMonkey's "SinTime0_X".
+    | ACT_TANTIME_0_X                               -- ^ Tangent of "Time0_X". Equivalent to RenderMonkey's "TanTime0_X".
+    | ACT_TIME_0_X_PACKED                           -- ^ Vector of "Time0_X", "SinTime0_X", "CosTime0_X", "TanTime0_X". Equivalent to RenderMonkey's "Time0_X_Packed".
+    | ACT_TIME_0_1                                  -- ^ Single float value, which represents scaled time value [0..1], which repeats itself based on given as parameter "cycle time". Equivalent to RenderMonkey's "Time0_1".
+    | ACT_COSTIME_0_1                               -- ^ Cosine of "Time0_1". Equivalent to RenderMonkey's "CosTime0_1".
+    | ACT_SINTIME_0_1                               -- ^ Sine of "Time0_1". Equivalent to RenderMonkey's "SinTime0_1".
+    | ACT_TANTIME_0_1                               -- ^ Tangent of "Time0_1". Equivalent to RenderMonkey's "TanTime0_1".
+    | ACT_TIME_0_1_PACKED                           -- ^ Vector of "Time0_1", "SinTime0_1", "CosTime0_1", "TanTime0_1". Equivalent to RenderMonkey's "Time0_1_Packed".
+    | ACT_TIME_0_2PI                                -- ^ Single float value, which represents scaled time value [0..2*Pi], which repeats itself based on given as parameter "cycle time". Equivalent to RenderMonkey's "Time0_2PI".
+    | ACT_COSTIME_0_2PI                             -- ^ Cosine of "Time0_2PI". Equivalent to RenderMonkey's "CosTime0_2PI".
+    | ACT_SINTIME_0_2PI                             -- ^ Sine of "Time0_2PI". Equivalent to RenderMonkey's "SinTime0_2PI".
+    | ACT_TANTIME_0_2PI                             -- ^ Tangent of "Time0_2PI". Equivalent to RenderMonkey's "TanTime0_2PI".
+    | ACT_TIME_0_2PI_PACKED                         -- ^ Vector of "Time0_2PI", "SinTime0_2PI", "CosTime0_2PI", "TanTime0_2PI". Equivalent to RenderMonkey's "Time0_2PI_Packed".
+    | ACT_FRAME_TIME                                -- ^ provides the scaled frame time, returned as a floating point value.
+    | ACT_FPS                                       -- ^ provides the calculated frames per second, returned as a floating point value.
 
+    | ACT_VIEWPORT_WIDTH                            -- ^ Current viewport width (in pixels) as floating point value. Equivalent to RenderMonkey's "ViewportWidth".
+    | ACT_VIEWPORT_HEIGHT                           -- ^ Current viewport height (in pixels) as floating point value. Equivalent to RenderMonkey's "ViewportHeight".
+    | ACT_INVERSE_VIEWPORT_WIDTH                    -- ^ This variable represents 1.0/ViewportWidth. Equivalent to RenderMonkey's "ViewportWidthInverse".
+    | ACT_INVERSE_VIEWPORT_HEIGHT                   -- ^ This variable represents 1.0/ViewportHeight. Equivalent to RenderMonkey's "ViewportHeightInverse".
+    | ACT_VIEWPORT_SIZE                             -- ^ Packed of "ViewportWidth", "ViewportHeight", "ViewportWidthInverse", "ViewportHeightInverse".
 
-    {-|Provides a parametric animation value [0..1], only available
-    where the renderable specifically implements it.
-    -}
-    | ACT_ANIMATION_PARAMETRIC
+    | ACT_VIEW_DIRECTION                            -- ^ This variable provides the view direction vector (world space). Equivalent to RenderMonkey's "ViewDirection".
+    | ACT_VIEW_SIDE_VECTOR                          -- ^ This variable provides the view side vector (world space). Equivalent to RenderMonkey's "ViewSideVector".
+    | ACT_VIEW_UP_VECTOR                            -- ^ This variable provides the view up vector (world space). Equivalent to RenderMonkey's "ViewUpVector".
+    | ACT_FOV                                       -- ^ This variable provides the field of view as a floating point value. Equivalent to RenderMonkey's "FOV".
+    | ACT_NEAR_CLIP_DISTANCE                        -- ^ This variable provides the near clip distance as a floating point value. Equivalent to RenderMonkey's "NearClipPlane".
+    | ACT_FAR_CLIP_DISTANCE                         -- ^ This variable provides the far clip distance as a floating point value. Equivalent to RenderMonkey's "FarClipPlane".
+    | ACT_PASS_NUMBER                               -- ^ provides the pass index number within the technique of the active materil.
+    | ACT_PASS_ITERATION_NUMBER                     -- ^ provides the current iteration number of the pass. The iteration number is the number of times the current render operation has been drawn for the active pass.
+    | ACT_ANIMATION_PARAMETRIC                      -- ^ Provides a parametric animation value [0..1], only available where the renderable specifically implements it.
 
-    {-|Provides the texel offsets required by this rendersystem to map
-    texels to pixels. Packed as 
-    float4(absoluteHorizontalOffset, absoluteVerticalOffset, 
-    horizontalOffset / viewportWidth, verticalOffset / viewportHeight)
-    -}
     | ACT_TEXEL_OFFSETS
 
-    {-|Provides information about the depth range of the scene as viewed
-    from the current camera. 
-    Passed as float4(minDepth, maxDepth, depthRange, 1 / depthRange)
-    -}
     | ACT_SCENE_DEPTH_RANGE
-
-    {-|Provides information about the depth range of the scene as viewed
-    from a given shadow camera. Requires an index parameter which maps
-    to a light index relative to the current light list.
-    Passed as float4(minDepth, maxDepth, depthRange, 1 / depthRange)
-    -}
     | ACT_SHADOW_SCENE_DEPTH_RANGE
 
-    {-|Provides the fixed shadow colour as configured via SceneManager::setShadowColour;
-    useful for integrated modulative shadows.
-    -}
-    | ACT_SHADOW_COLOUR
-    {-|Provides texture size of the texture unit (index determined by setAutoConstant
-    call). Packed as float4(width, height, depth, 1)
-    -}
-    | ACT_TEXTURE_SIZE
-    {-|Provides inverse texture size of the texture unit (index determined by setAutoConstant
-    call). Packed as float4(1 / width, 1 / height, 1 / depth, 1)
-    -}
-    | ACT_INVERSE_TEXTURE_SIZE
-    {-|Provides packed texture size of the texture unit (index determined by setAutoConstant
-    call). Packed as float4(width, height, 1 / width, 1 / height)
-    -}
-    | ACT_PACKED_TEXTURE_SIZE
+    | ACT_SHADOW_COLOUR                             -- ^ Provides the fixed shadow colour as configured via SceneManager::setShadowColour; useful for integrated modulative shadows.
+    | ACT_TEXTURE_SIZE                              -- ^ Provides texture size of the texture unit (index determined by setAutoConstant call). Packed as float4(width, height, depth, 1)
+    | ACT_INVERSE_TEXTURE_SIZE                      -- ^ Provides inverse texture size of the texture unit (index determined by setAutoConstant call). Packed as float4(1 / width, 1 / height, 1 / depth, 1)
+    | ACT_PACKED_TEXTURE_SIZE                       -- ^ Provides packed texture size of the texture unit (index determined by setAutoConstant call). Packed as float4(width, height, 1 / width, 1 / height)
 
-    {-|Provides the current transform matrix of the texture unit (index determined by setAutoConstant
-    call), as seen by the fixed-function pipeline. 
-    -}
-    | ACT_TEXTURE_MATRIX
+    | ACT_TEXTURE_MATRIX                            -- ^ Provides the current transform matrix of the texture unit (index determined by setAutoConstant call), as seen by the fixed-function pipeline.
 
-    {-|Provides the position of the LOD camera in world space, allowing you 
-    to perform separate LOD calculations in shaders independent of the rendering
-    camera. If there is no separate LOD camera then this is the real camera
-    position. See Camera::setLodCamera.
-    -}
     | ACT_LOD_CAMERA_POSITION
-    {-|Provides the position of the LOD camera in object space, allowing you 
-    to perform separate LOD calculations in shaders independent of the rendering
-    camera. If there is no separate LOD camera then this is the real camera
-    position. See Camera::setLodCamera.
-    -}
     | ACT_LOD_CAMERA_POSITION_OBJECT_SPACE
-    {-|Binds custom per-light constants to the shaders. -}
-    | ACT_LIGHT_CUSTOM
+    | ACT_LIGHT_CUSTOM                              -- ^ Binds custom per-light constants to the shaders.
     deriving Eq
 
-
--- | Defines the type of the extra data item used by the auto constant.
 data ACDataType
     = ACDT_NONE -- ^ no data is required
     | ACDT_INT  -- ^ the auto constant requires data of type int
     | ACDT_REAL -- ^ the auto constant requires data of type real
     deriving Eq
 
---  | Defines the base element type of the auto constant
 data ElementType
     = ET_INT
     | ET_REAL
     deriving Eq
 
-{-| Structure defining an auto constant that's available for use in 
-a parameters object.
--}
 data AutoConstantDefinition
     = AutoConstantDefinition
     { acdType           :: AutoConstantType
@@ -695,83 +369,19 @@
     , acdDataType       :: ACDataType       -- ^ The type of any extra data
     }
     deriving Eq
-        
-{-| Structure recording the use of an automatic parameter. -}
+
 data AutoConstantEntry
     = AutoConstantEntry
     { aceParamType      :: AutoConstantType     -- ^ The type of parameter
     , acePhysicalIndex  :: Int                  -- ^ The target (physical) constant index
-	{-| The number of elements per individual entry in this constant
-	Used in case people used packed elements smaller than 4 (e.g. GLSL)
-	and bind an auto which is 4-element packed to it -}
-    , aceElementCount   :: Int
-	-- | Additional information to go with the parameter
---	union{
---		size_t data;
---		Real fData;
---	};
+    , aceElementCount   :: Int                  -- ^ The number of elements per individual entry in this constant Used in case people used packed elements smaller than 4 (e.g. GLSL) and bind an auto which is 4-element packed to it
     , aceVariability    :: GpuParamVariability  -- ^ The variability of this parameter (see GpuParamVariability)
     }
     deriving Eq
-        
-{-| Collects together the program parameters used for a GpuProgram.
-@remarks
-Gpu program state includes constant parameters used by the program, and
-bindings to render system state which is propagated into the constants 
-by the engine automatically if requested.
-@par
-GpuProgramParameters objects should be created through the GpuProgram and
-may be shared between multiple Pass instances. For this reason they
-are managed using a shared pointer, which will ensure they are automatically
-deleted when no Pass is using them anymore. 
-@par
-High-level programs use named parameters (uniforms), low-level programs 
-use indexed constants. This class supports both, but you can tell whether 
-named constants are supported by calling hasNamedParameters(). There are
-references in the documentation below to 'logical' and 'physical' indexes;
-logical indexes are the indexes used by low-level programs and represent 
-indexes into an array of float4's, some of which may be settable, some of
-which may be predefined constants in the program. We only store those
-constants which have actually been set, therefore our buffer could have 
-gaps if we used the logical indexes in our own buffers. So instead we map
-these logical indexes to physical indexes in our buffer. When using 
-high-level programs, logical indexes don't necessarily exist, although they
-might if the high-level program has a direct, exposed mapping from parameter
-names to logical indexes. In addition, high-level languages may or may not pack
-arrays of elements that are smaller than float4 (e.g. float2/vec2) contiguously.
-This kind of information is held in the ConstantDefinition structure which 
-is only populated for high-level programs. You don't have to worry about
-any of this unless you intend to read parameters back from this structure
-rather than just setting them.
--}
---data GpuProgramParameters'
---    = GpuProgramParameters' 
---    { 
-----    static AutoConstantDefinition AutoConstantDictionary[];
---      gppFloatConstants             :: [Float]              -- ^ Packed list of floating-point constants (physical indexing)
---    , gppIntConstants               :: [Int]                -- ^ Packed list of integer constants (physical indexing)
---	{-| Logical index to physical index map - for low-level programs
---	or high-level programs which pass params this way. -}
---    , gppFloatLogicalToPhysical     :: GpuLogicalBufferStruct
---	{-| Logical index to physical index map - for low-level programs
---	or high-level programs which pass params this way. -}
---    , gppIntLogicalToPhysical       :: GpuLogicalBufferStruct
---    , gppNamedConstants             :: GpuNamedConstants    -- ^ Mapping from parameter names to def - high-level programs are expected to populate this
---    , gppAutoConstants              :: [AutoConstantEntry]  -- ^ List of automatically updated parameters
---    , gppCombinedVariability        :: GpuParamVariability  -- ^ The combined variability masks of all parameters
---    , gppTransposeMatrices          :: Bool                 -- ^ Do we need to transpose matrices?
---    , gppIgnoreMissingParams        :: Bool                 -- ^ flag to indicate if names not found will be ignored
---    , gppActivePassIterationIndex   :: Int                  -- ^ physical index for active pass iteration parameter real constant entry;
---    , gppSharedParamSets            :: [GpuSharedParametersUsage]
-----    -- Optional data the rendersystem might want to store
-----    mutable Any mRenderSystemData;
---    }
---    deriving Eq
 
--- TEMP CODE
 data GpuProgramParameters
     = GpuProgramParameters
-    { gppNamedConstants             :: [GpuNamedConstant]
+    { gppNamedConstants :: [GpuNamedConstant]
     }
 
 data GpuNamedConstant
@@ -782,7 +392,8 @@
     , gncFloatValues    :: [FloatType]
     }
 
-autoConstantDictionary = 
+autoConstantDictionary :: [(AutoConstantType,String,Int,ElementType,ACDataType)]
+autoConstantDictionary =
     [ (ACT_WORLD_MATRIX,                                "world_matrix",                             16, ET_REAL, ACDT_NONE)
     , (ACT_INVERSE_WORLD_MATRIX,                        "inverse_world_matrix",                     16, ET_REAL, ACDT_NONE)
     , (ACT_TRANSPOSE_WORLD_MATRIX,                      "transpose_world_matrix",                   16, ET_REAL, ACDT_NONE)
@@ -878,7 +489,7 @@
     , (ACT_TEXTURE_WORLDVIEWPROJ_MATRIX_ARRAY,          "texture_worldviewproj_matrix_array",       16, ET_REAL, ACDT_INT)
     , (ACT_SPOTLIGHT_VIEWPROJ_MATRIX,                   "spotlight_viewproj_matrix",                16, ET_REAL, ACDT_INT)
     , (ACT_SPOTLIGHT_WORLDVIEWPROJ_MATRIX,              "spotlight_worldviewproj_matrix",           16, ET_REAL, ACDT_INT)
-    , (ACT_CUSTOM,                                      "custom",                                    4, ET_REAL, ACDT_INT)  -- *** needs to be tested
+    , (ACT_CUSTOM,                                      "custom",                                    4, ET_REAL, ACDT_INT)  -- -- *** needs to be tested
     , (ACT_TIME,                                        "time",                                      1, ET_REAL, ACDT_REAL)
     , (ACT_TIME_0_X,                                    "time_0_x",                                  4, ET_REAL, ACDT_REAL)
     , (ACT_COSTIME_0_X,                                 "costime_0_x",                               4, ET_REAL, ACDT_REAL)
diff --git a/Graphics/LambdaCube/GpuProgramUsage.hs b/Graphics/LambdaCube/GpuProgramUsage.hs
--- a/Graphics/LambdaCube/GpuProgramUsage.hs
+++ b/Graphics/LambdaCube/GpuProgramUsage.hs
@@ -1,47 +1,7 @@
 module Graphics.LambdaCube.GpuProgramUsage where
 
-import Graphics.LambdaCube.GpuProgram
---import Graphics.LambdaCube.GpuProgramParams
-
-{-| This class makes the usage of a vertex and fragment programs (low-level or high-level), 
-    with a given set of parameters, explicit.
-@remarks
-    Using a vertex or fragment program can get fairly complex; besides the fairly rudimentary
-    process of binding a program to the GPU for rendering, managing usage has few
-    complications, such as:
-    <ul>
-    <li>Programs can be high level (e.g. Cg, RenderMonkey) or low level (assembler). Using
-    either should be relatively seamless, although high-level programs give you the advantage
-    of being able to use named parameters, instead of just indexed registers</li>
-    <li>Programs and parameters can be shared between multiple usages, in order to save
-    memory</li>
-    <li>When you define a user of a program, such as a material, you often want to be able to
-    set up the definition but not load / compile / assemble the program at that stage, because
-    it is not needed just yet. The program should be loaded when it is first needed, or
-    earlier if specifically requested. The program may not be defined at this time, you
-    may want to have scripts that can set up the definitions independent of the order in which
-    those scripts are loaded.</li>
-    </ul>
-    This class packages up those details so you don't have to worry about them. For example,
-    this class lets you define a high-level program and set up the parameters for it, without
-    having loaded the program (which you normally could not do). When the program is loaded and
-    compiled, this class will then validate the parameters you supplied earlier and turn them
-    into runtime parameters.
-@par
-    Just incase it wasn't clear from the above, this class provides linkage to both 
-    GpuProgram and HighLevelGpuProgram, despite its name.
--}
 data GpuProgramUsage
     = GpuProgramUsage
-    { --gpuType           :: GpuProgramType
---    , gpuParent         :: Pass
-    
-      gpuProgramName    :: String
---    , gpuProgram        :: Maybe p          -- ^ The program link
---    , gpuProgram        :: Either String (GpuProgramDescriptor p)          -- ^ The program link
---    , gpuParameters     :: GpuProgramParameters -- ^ program parameters
-
---    , gpuRecreateParams :: Bool                 -- ^ Whether to recreate parameters next load
+    { gpuProgramName    :: String
     }
-    deriving Eq
-    
+    deriving (Eq,Ord)
diff --git a/Graphics/LambdaCube/HardwareBuffer.hs b/Graphics/LambdaCube/HardwareBuffer.hs
--- a/Graphics/LambdaCube/HardwareBuffer.hs
+++ b/Graphics/LambdaCube/HardwareBuffer.hs
@@ -3,91 +3,67 @@
 import Data.Word
 import Foreign.Ptr
 
--- | Enums describing buffer usage; not mutually exclusive
-data Usage 
-    {-| Static buffer which the application rarely modifies once created. Modifying 
-    the contents of this buffer will involve a performance hit.
-    -}
+data Usage
+    -- | Static buffer which the application rarely modifies once
+    -- created. Modifying the contents of this buffer will involve a
+    -- performance hit.
     = HBU_STATIC
-    {-| Indicates the application would like to modify this buffer with the CPU
-    fairly often. 
-    Buffers created with this flag will typically end up in AGP memory rather 
-    than video memory.
-    -}
+    -- | Indicates the application would like to modify this buffer
+    -- with the CPU fairly often.  Buffers created with this flag will
+    -- typically end up in AGP memory rather than video memory.
     | HBU_DYNAMIC
-    {-| Indicates the application will never read the contents of the buffer back, 
-    it will only ever write data. Locking a buffer with this flag will ALWAYS 
-    return a pointer to new, blank memory rather than the memory associated 
-    with the contents of the buffer; this avoids DMA stalls because you can 
-    write to a new memory area while the previous one is being used. 
-    -}
+    -- | Indicates the application will never read the contents of the
+    -- buffer back, it will only ever write data. Locking a buffer
+    -- with this flag will ALWAYS return a pointer to new, blank
+    -- memory rather than the memory associated with the contents of
+    -- the buffer; this avoids DMA stalls because you can write to a
+    -- new memory area while the previous one is being used.
     | HBU_WRITE_ONLY
-    {-| Indicates that the application will be refilling the contents
-    of the buffer regularly (not just updating, but generating the
-    contents from scratch), and therefore does not mind if the contents 
-    of the buffer are lost somehow and need to be recreated. This
-    allows and additional level of optimisation on the buffer.
-    This option only really makes sense when combined with 
-    HBU_DYNAMIC_WRITE_ONLY.
-    -}
+    -- | Indicates that the application will be refilling the contents
+    -- of the buffer regularly (not just updating, but generating the
+    -- contents from scratch), and therefore does not mind if the
+    -- contents of the buffer are lost somehow and need to be
+    -- recreated. This allows and additional level of optimisation on
+    -- the buffer.  This option only really makes sense when combined
+    -- with HBU_DYNAMIC_WRITE_ONLY.
     | HBU_DISCARDABLE
     -- | Combination of HBU_STATIC and HBU_WRITE_ONLY
     | HBU_STATIC_WRITE_ONLY
-    {-| Combination of HBU_DYNAMIC and HBU_WRITE_ONLY. If you use 
-    this, strongly consider using HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE
-    instead if you update the entire contents of the buffer very 
-    regularly. 
-    -}
+    -- | Combination of HBU_DYNAMIC and HBU_WRITE_ONLY. If you use
+    -- this, strongly consider using
+    -- HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE instead if you update the
+    -- entire contents of the buffer very regularly.
     | HBU_DYNAMIC_WRITE_ONLY
-    -- | Combination of HBU_DYNAMIC, HBU_WRITE_ONLY and HBU_DISCARDABLE
+    -- | Combination of HBU_DYNAMIC, HBU_WRITE_ONLY and
+    -- HBU_DISCARDABLE
     | HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE
-    deriving Eq
+    deriving (Eq,Ord)
 
 -- | Locking options
 data LockOptions
-    {-| Normal mode, ie allows read/write and contents are preserved. -}
+    -- | Normal mode, ie allows read/write and contents are preserved.
     = HBL_NORMAL
-    {-| Discards the <em>entire</em> buffer while locking; this allows optimisation to be 
-    performed because synchronisation issues are relaxed. Only allowed on buffers 
-    created with the HBU_DYNAMIC flag. 
-    -}
+    -- | Discards the entire buffer while locking; this allows
+    -- optimisation to be performed because synchronisation issues are
+    -- relaxed. Only allowed on buffers created with the HBU_DYNAMIC
+    -- flag.
     | HBL_DISCARD
-    {-| Lock the buffer for reading only. Not allowed in buffers which are created with HBU_WRITE_ONLY. 
-    Mandatory on static buffers, i.e. those created without the HBU_DYNAMIC flag. 
-    -} 
+    -- | Lock the buffer for reading only. Not allowed in buffers
+    -- which are created with HBU_WRITE_ONLY.  Mandatory on static
+    -- buffers, i.e. those created without the HBU_DYNAMIC flag.
     | HBL_READ_ONLY
-    {-| As HBL_NORMAL, except the application guarantees not to overwrite any 
-    region of the buffer which has already been used in this frame, can allow
-    some optimisation on some APIs. -}
+    -- | As HBL_NORMAL, except the application guarantees not to
+    -- overwrite any region of the buffer which has already been used
+    -- in this frame, can allow some optimisation on some APIs.
     | HBL_NO_OVERWRITE
-    deriving Eq
+    deriving (Eq,Ord)
 
 
-class Eq a => HardwareBuffer a where
-    {-| Lock the buffer for (potentially) reading / writing.
-    @param offset The byte offset from the start of the buffer to lock
-    @param length The size of the area to lock, in bytes
-    @param options Locking options
-    @returns Pointer to the locked memory
-    -}
-    lock                :: a -> Int -> Int -> LockOptions -> IO (Ptr Word8) -- virtual void* lock(size_t offset, size_t length, LockOptions options)
-
-    {-| Releases the lock on this buffer. 
-    @remarks 
-        Locking and unlocking a buffer can, in some rare circumstances such as 
-        switching video modes whilst the buffer is locked, corrupt the 
-        contents of a buffer. This is pretty rare, but if it occurs, 
-        this method will throw an exception, meaning you
-        must re-upload the data.
-    @par
-        Note that using the 'read' and 'write' forms of updating the buffer does not
-        suffer from this problem, so if you want to be 100% sure your
-        data will not be lost, use the 'read' and 'write' forms instead.
-    -}
-    unlock              :: a -> IO () -- virtual void unlock(void)
-
-    getSizeInBytes      :: a -> Int             -- ^ Returns the size of this buffer in bytes
-    getUsage            :: a -> Usage           -- ^ Returns the Usage flags with which this buffer was created
-    isSystemMemory      :: a -> Bool            -- ^ Returns whether this buffer is held in system memory
-    hasShadowBuffer     :: a -> Bool            -- ^ Returns whether this buffer has a system memory shadow for quicker reading
-    isLocked            :: a -> IO Bool         -- ^ Returns whether or not this buffer is currently locked.
+class Ord a => HardwareBuffer a where
+    lock                :: a -> Int -> Int -> LockOptions -> IO (Ptr Word8)
+    unlock              :: a -> IO ()
+    getSizeInBytes      :: a -> Int
+    getUsage            :: a -> Usage
+    isSystemMemory      :: a -> Bool
+    hasShadowBuffer     :: a -> Bool
+    isLocked            :: a -> IO Bool
diff --git a/Graphics/LambdaCube/HardwareIndexBuffer.hs b/Graphics/LambdaCube/HardwareIndexBuffer.hs
--- a/Graphics/LambdaCube/HardwareIndexBuffer.hs
+++ b/Graphics/LambdaCube/HardwareIndexBuffer.hs
@@ -1,18 +1,11 @@
 module Graphics.LambdaCube.HardwareIndexBuffer where
 
-import Data.Word
-import Data.IORef
-import Foreign.Ptr
-import Foreign.Marshal.Alloc
-import Foreign.Marshal.Utils
-import Control.Monad
-
 import Graphics.LambdaCube.HardwareBuffer
 
 data IndexType
     = IT_16BIT
     | IT_32BIT
-    deriving (Eq,Show)
+    deriving (Eq,Ord,Show)
 
 class (HardwareBuffer a) => HardwareIndexBuffer a where
     getIndexType  :: a -> IndexType -- ^ Get the type of indexes used in this buffer
diff --git a/Graphics/LambdaCube/HardwareOcclusionQuery.hs b/Graphics/LambdaCube/HardwareOcclusionQuery.hs
--- a/Graphics/LambdaCube/HardwareOcclusionQuery.hs
+++ b/Graphics/LambdaCube/HardwareOcclusionQuery.hs
@@ -1,41 +1,7 @@
 module Graphics.LambdaCube.HardwareOcclusionQuery where
 
--- | This is a abstract class that that provides the interface for the query class for hardware occlusion.
 class HardwareOcclusionQuery a where
-    {-| Starts the hardware occlusion query
-        @Remarks	Simple usage: Create one or more OcclusionQuery object one per outstanding query or one per tested object 
-       				OcclusionQuery* m_pOcclusionQuery;
-       				createOcclusionQuery( &m_pOcclusionQuery );
-       				In the rendering loop:
-       				Draw all occluders
-       				m_pOcclusionQuery->startOcclusionQuery();
-       				Draw the polygons to be tested
-       				m_pOcclusionQuery->endOcclusionQuery();
-       
-       				Results must be pulled using:
-       				UINT	m_uintNumberOfPixelsVisable;
-       				pullOcclusionQuery( &m_dwNumberOfPixelsVisable );
-    -}
-    beginOcclusionQuery     :: a -> IO ()
-    endOcclusionQuery       :: a -> IO ()   -- ^ Ends the hardware occlusion test
-
-    {-| Pulls the hardware occlusion query.
-        @note Waits until the query result is available; use isStillOutstanding
-       		if just want to test if the result is available.
-        @retval NumOfFragments will get the resulting number of fragments.
-        @return True if success or false if not.
-    -}
-    pullOcclusionQuery      :: a -> IO Int
-
-    {-| Let's you get the last pixel count with out doing the hardware occlusion test
-        @return The last fragment count from the last test.
-        Remarks This function won't give you new values, just the old value.
-    -}
---    getLastQuerysPixelcount :: a -> IO Int
-
-    {-| Lets you know when query is done, or still be processed by the Hardware
-        @return true if query isn't finished.
-    -}
-    isStillOutstanding      :: a -> IO Bool
-
-
+    beginOcclusionQuery :: a -> IO ()   -- ^ Starts the hardware occlusion query
+    endOcclusionQuery   :: a -> IO ()   -- ^ Ends the hardware occlusion test.
+    pullOcclusionQuery  :: a -> IO Int  -- ^ Pulls the hardware occlusion query.
+    isStillOutstanding  :: a -> IO Bool -- ^ Lets you know when query is done, or still be processed by the Hardware.
diff --git a/Graphics/LambdaCube/HardwareVertexBuffer.hs b/Graphics/LambdaCube/HardwareVertexBuffer.hs
--- a/Graphics/LambdaCube/HardwareVertexBuffer.hs
+++ b/Graphics/LambdaCube/HardwareVertexBuffer.hs
@@ -1,18 +1,13 @@
 module Graphics.LambdaCube.HardwareVertexBuffer where
 
-import Data.Word
 import Data.IntMap
-import Foreign.Marshal.Alloc
-import Foreign.Marshal.Utils
-import Foreign.Storable
+import Data.Word
 import Foreign.C.Types
-import Foreign.Ptr
-import Data.IORef
-import Control.Monad
+import Foreign.Storable
 
 import Graphics.LambdaCube.HardwareBuffer
 
-class (HardwareBuffer a) => HardwareVertexBuffer a where
+class HardwareBuffer a => HardwareVertexBuffer a where
     getVertexSize  :: a -> Int -- ^ Gets the size in bytes of a single vertex in this buffer
     getNumVertices :: a -> Int -- ^ Get the number of vertices in this buffer
 
@@ -36,28 +31,15 @@
     | VET_FLOAT2
     | VET_FLOAT3
     | VET_FLOAT4
---    -- | alias to more specific colour type - use the current rendersystem's colour packing
---    | VET_COLOUR -- Deprecated by Ogre
     | VET_SHORT1
     | VET_SHORT2
     | VET_SHORT3
     | VET_SHORT4
     | VET_UBYTE4
-    -- | D3D style compact colour
-    | VET_COLOUR_ARGB
-    -- | GL style compact colour
-    | VET_COLOUR_ABGR
+    | VET_COLOUR_ARGB -- ^ D3D style compact colour
+    | VET_COLOUR_ABGR -- ^ GL style compact colour
     deriving (Eq,Ord,Show)
 
-{-| This class declares the usage of a single vertex buffer as a component
-    of a complete VertexDeclaration.
-    @remarks
-    Several vertex buffers can be used to supply the input geometry for a
-    rendering operation, and in each case a vertex buffer can be used in
-    different ways for different operations; the buffer itself does not
-    define the semantics (position, normal etc), the VertexElement
-    class does.
--}
 data VertexElement
     = VertexElement
     { veSource      :: Int                      -- ^ The source vertex buffer, as bound to an index using VertexBufferBinding
@@ -71,117 +53,72 @@
 -- | Utility method for helping to calculate offsets
 getTypeSize :: VertexElementType -> Int
 getTypeSize etype = case etype of
-    { VET_COLOUR_ABGR   ->     sizeOf (undefined::Word32) -- sizeof(RGBA);
-    ; VET_COLOUR_ARGB   ->     sizeOf (undefined::Word32) -- sizeof(RGBA);
-    ; VET_FLOAT1        ->     sizeOf (undefined::CFloat) -- sizeof(float);
-    ; VET_FLOAT2        -> 2 * sizeOf (undefined::CFloat) -- sizeof(float)*2;
-    ; VET_FLOAT3        -> 3 * sizeOf (undefined::CFloat) -- sizeof(float)*3;
-    ; VET_FLOAT4        -> 4 * sizeOf (undefined::CFloat) -- sizeof(float)*4;
-    ; VET_SHORT1        ->     sizeOf (undefined::CShort) -- sizeof(short);
-    ; VET_SHORT2        -> 2 * sizeOf (undefined::CShort) -- sizeof(short)*2;
-    ; VET_SHORT3        -> 3 * sizeOf (undefined::CShort) -- sizeof(short)*3;
-    ; VET_SHORT4        -> 4 * sizeOf (undefined::CShort) -- sizeof(short)*4;
-    ; VET_UBYTE4        -> 4 * sizeOf (undefined::CUChar) -- sizeof(unsigned char)*4;
-    }
+    VET_COLOUR_ABGR   ->     sizeOf (undefined::Word32) -- sizeof(RGBA);
+    VET_COLOUR_ARGB   ->     sizeOf (undefined::Word32) -- sizeof(RGBA);
+    VET_FLOAT1        ->     sizeOf (undefined::CFloat) -- sizeof(float);
+    VET_FLOAT2        -> 2 * sizeOf (undefined::CFloat) -- sizeof(float)*2;
+    VET_FLOAT3        -> 3 * sizeOf (undefined::CFloat) -- sizeof(float)*3;
+    VET_FLOAT4        -> 4 * sizeOf (undefined::CFloat) -- sizeof(float)*4;
+    VET_SHORT1        ->     sizeOf (undefined::CShort) -- sizeof(short);
+    VET_SHORT2        -> 2 * sizeOf (undefined::CShort) -- sizeof(short)*2;
+    VET_SHORT3        -> 3 * sizeOf (undefined::CShort) -- sizeof(short)*3;
+    VET_SHORT4        -> 4 * sizeOf (undefined::CShort) -- sizeof(short)*4;
+    VET_UBYTE4        -> 4 * sizeOf (undefined::CUChar) -- sizeof(unsigned char)*4;
 
 -- | Utility method which returns the count of values in a given type
 getTypeCount :: VertexElementType -> Int
 getTypeCount etype = case etype of
-    { VET_COLOUR_ABGR   -> 1
-    ; VET_COLOUR_ARGB   -> 1
-    ; VET_FLOAT1        -> 1
-    ; VET_FLOAT2        -> 2
-    ; VET_FLOAT3        -> 3
-    ; VET_FLOAT4        -> 4
-    ; VET_SHORT1        -> 1
-    ; VET_SHORT2        -> 2
-    ; VET_SHORT3        -> 3
-    ; VET_SHORT4        -> 4
-    ; VET_UBYTE4        -> 4
-    }
-    
-{-| Simple converter function which will turn a single-value type into a
-	multi-value type based on a parameter.
--}
+    VET_COLOUR_ABGR   -> 4
+    VET_COLOUR_ARGB   -> 4
+    VET_FLOAT1        -> 1
+    VET_FLOAT2        -> 2
+    VET_FLOAT3        -> 3
+    VET_FLOAT4        -> 4
+    VET_SHORT1        -> 1
+    VET_SHORT2        -> 2
+    VET_SHORT3        -> 3
+    VET_SHORT4        -> 4
+    VET_UBYTE4        -> 4
+
+-- | Simple converter function which will turn a single-value type into a multi-value type based on a parameter.
 multiplyTypeCount :: VertexElementType -> Int -> VertexElementType
 multiplyTypeCount baseType count = case baseType of
-    { VET_FLOAT1 -> case count of
-        { 1 -> VET_FLOAT1
-        ; 2 -> VET_FLOAT2
-        ; 3 -> VET_FLOAT3
-        ; 4 -> VET_FLOAT4
-        ; _ -> error "Invalid type"
-        }
-    ; VET_SHORT1 -> case count of
-        { 1 -> VET_SHORT1
-        ; 2 -> VET_SHORT2
-        ; 3 -> VET_SHORT3
-        ; 4 -> VET_SHORT4
-        ; _ -> error "Invalid type"
-        }
-    ; _ -> error "Invalid type"
-    }
+    VET_FLOAT1 -> case count of
+      1 -> VET_FLOAT1
+      2 -> VET_FLOAT2
+      3 -> VET_FLOAT3
+      4 -> VET_FLOAT4
+      _ -> error $ "multiplyTypeCount: Invalid VET_FLOAT type " ++ show count
+    VET_SHORT1 -> case count of
+      1 -> VET_SHORT1
+      2 -> VET_SHORT2
+      3 -> VET_SHORT3
+      4 -> VET_SHORT4
+      _ -> error $ "multiplyTypeCount: Invalid VET_FLOAT type " ++ show count
+    _ -> error $ "multiplyTypeCount: Invalid base type " ++ show baseType
 
-{-| Simple converter function which will a type into it's single-value
-	equivalent - makes switches on type easier.
--}
+-- | Simple converter function which will convert a type into its
+-- single-value equivalent to make switches on type easier.
 getBaseType :: VertexElementType -> VertexElementType
 getBaseType multiType = case multiType of
-    { VET_FLOAT1        -> VET_FLOAT1
-    ; VET_FLOAT2        -> VET_FLOAT2
-    ; VET_FLOAT3        -> VET_FLOAT3
-    ; VET_FLOAT4        -> VET_FLOAT4
-    ; VET_COLOUR_ABGR   -> VET_COLOUR_ABGR
-    ; VET_COLOUR_ARGB   -> VET_COLOUR_ARGB
-    ; VET_SHORT1        -> VET_SHORT1
-    ; VET_SHORT2        -> VET_SHORT2
-    ; VET_SHORT3        -> VET_SHORT3
-    ; VET_SHORT4        -> VET_SHORT4
-    ; VET_UBYTE4        -> VET_UBYTE4
-    }
-
-{-| Utility method for converting colour from
-	one packed 32-bit colour type to another.
-@param srcType The source type
-@param dstType The destination type
-@param ptr Read / write value to change
--}
---static void convertColourValue(VertexElementType srcType,
---	VertexElementType dstType, uint32* ptr);
-
-{-| Utility method for converting colour to
-	a packed 32-bit colour type.
-@param src source colour
-@param dst The destination type
--}
---static uint32 convertColourValue(const ColourValue& src,
---	VertexElementType dst);
-
-{-| Utility method to get the most appropriate packed colour vertex element format. -}
---static VertexElementType getBestColourVertexElementType(void);
+    VET_FLOAT1 -> VET_FLOAT1
+    VET_FLOAT2 -> VET_FLOAT1
+    VET_FLOAT3 -> VET_FLOAT1
+    VET_FLOAT4 -> VET_FLOAT1
+    VET_SHORT1 -> VET_SHORT1
+    VET_SHORT2 -> VET_SHORT1
+    VET_SHORT3 -> VET_SHORT1
+    VET_SHORT4 -> VET_SHORT1
+    mt         -> mt
 
 data VertexDeclaration
     = VertexDeclaration
-    { vdElementList :: [VertexElement] -- ^ Defines the list of vertex elements that makes up this declaration
+    { vdElementList :: [VertexElement] -- ^ The list of vertex elements that makes up this declaration
     }
-    deriving (Eq,Show)
-
+    deriving (Eq,Ord,Show)
 
-{-| Records the state of all the vertex buffer bindings required to provide a vertex declaration
-	with the input data it needs for the vertex elements.
-@remarks
-	Why do we have this binding list rather than just have VertexElement referring to the
-	vertex buffers direct? Well, in the underlying APIs, binding the vertex buffers to an
-	index (or 'stream') is the way that vertex data is linked, so this structure better
-	reflects the realities of that. In addition, by separating the vertex declaration from
-	the list of vertex buffer bindings, it becomes possible to reuse bindings between declarations
-	and vice versa, giving opportunities to reduce the state changes required to perform rendering.
-@par
-	Like the other classes in this functional area, these binding maps should be created and
-	destroyed using the HardwareBufferManager.
--}
 data HardwareVertexBuffer vb => VertexBufferBinding vb
     = VertexBufferBinding
     { vbbBindingMap :: IntMap vb
     }
-    deriving Eq
+    deriving (Eq,Ord)
diff --git a/Graphics/LambdaCube/Image.hs b/Graphics/LambdaCube/Image.hs
--- a/Graphics/LambdaCube/Image.hs
+++ b/Graphics/LambdaCube/Image.hs
@@ -1,9 +1,10 @@
 module Graphics.LambdaCube.Image where
 
-import Data.Word
-import Foreign.Ptr
-
 import Data.ByteString.Lazy
+import Data.Word
+import Foreign
+import qualified Data.ByteString as SB
+import qualified Data.ByteString.Internal as SB
 
 import Graphics.LambdaCube.PixelFormat
 
@@ -17,18 +18,12 @@
     , imHeight      :: Int
     , imWidth       :: Int
     , imDepth       :: Int
-    , imSize        :: Int
     , imNumMipmaps  :: Int
---    uint flags;
     , imFormat      :: PixelFormat
-    , imData        :: {-Maybe-} (Ptr Word8) -- ^ Image can be empty
+    , imData        :: SB.ByteString -- ^ Image can be empty
     }
 
-{-
-    enum ImageFlags
-    {
-        IF_COMPRESSED = 0x00000001,
-        IF_CUBEMAP    = 0x00000002,
-        IF_3D_TEXTURE = 0x00000004
-    };
--}
+imDataPtr :: Image -> Ptr Word8
+imDataPtr i = plusPtr (unsafeForeignPtrToPtr fp) o
+  where
+    (fp,o,_l) = SB.toForeignPtr $ imData i
diff --git a/Graphics/LambdaCube/Light.hs b/Graphics/LambdaCube/Light.hs
--- a/Graphics/LambdaCube/Light.hs
+++ b/Graphics/LambdaCube/Light.hs
@@ -2,57 +2,31 @@
 
 import Graphics.LambdaCube.Types
 
--- | Defines the type of light
+-- | Possible types of light sources.
 data LightTypes
-    = LT_POINT          -- ^ Point light sources give off light equally in all directions, so require only position not direction
-    | LT_DIRECTIONAL    -- ^ Directional lights simulate parallel light beams from a distant source, hence have direction but no position
-    | LT_SPOTLIGHT      -- ^ Spotlights simulate a cone of light from a source so require position and direction, plus extra values for falloff
-    deriving Eq
-    
+    = LT_POINT       -- ^ Point light sources give off light equally
+                     -- in all directions, so they require only
+                     -- position but no direction.
+    | LT_DIRECTIONAL -- ^ Directional lights simulate parallel light
+                     -- beams from a distant source, hence have
+                     -- direction but no position.
+    | LT_SPOTLIGHT   -- ^ Spotlights simulate a cone of light from a
+                     -- source so require position and direction, plus
+                     -- extra values for falloff.
+    deriving (Eq,Ord,Show)
+
+-- | Light source description.
 data Light
     = Light
     { lgType                    :: LightTypes
     , lgDiffuse                 :: ColourValue
     , lgSpecular                :: ColourValue
---        Vector3 mPosition;
---        Vector3 mDirection;
+    , lgDirection               :: Vec3
     , lgSpotOuter               :: FloatType
-    , lgSpotInner               :: FloatType
     , lgSpotFalloff             :: FloatType
     , lgRange                   :: FloatType
     , lgAttenuationConst        :: FloatType
     , lgAttenuationLinear       :: FloatType
     , lgAttenuationQuad         :: FloatType
-    , lgPowerScale              :: FloatType
---        size_t mIndexInFrame;
---    , lgOwnShadowFarDist    :: Bool
---    , lgShadowFarDist           :: FloatType
---    , lgShadowFarDistSquared    :: FloatType
---    , lgShadowNearClipDist      :: FloatType
---    , lgShadowFarClipDist       :: FloatType
     }
-    
-{-
-
-        mutable Vector3 mDerivedPosition;
-        mutable Vector3 mDerivedDirection;
-		// Slightly hacky but unless we separate observed light render state from main Light...
-		mutable Vector3 mDerivedCamRelativePosition;
-		mutable bool mDerivedCamRelativeDirty;
-		Camera* mCameraToBeRelativeTo;
-
-        /// Shared class-level name for Movable type
-        static String msMovableType;
-
-        mutable PlaneBoundedVolume mNearClipVolume;
-        mutable PlaneBoundedVolumeList mFrustumClipVolumes;
-        /// Is the derived transform dirty?
-        mutable bool mDerivedTransformDirty;
-
-		/// Pointer to a custom shadow camera setup
-		mutable ShadowCameraSetupPtr mCustomShadowCameraSetup;
-
-		typedef map<uint16, Vector4>::type CustomParameterMap;
-		/// Stores the custom parameters for the light
-        CustomParameterMap mCustomParameters;
--}
+    deriving (Eq,Show)
diff --git a/Graphics/LambdaCube/Loader/CompositorScript.hs b/Graphics/LambdaCube/Loader/CompositorScript.hs
--- a/Graphics/LambdaCube/Loader/CompositorScript.hs
+++ b/Graphics/LambdaCube/Loader/CompositorScript.hs
@@ -1,41 +1,30 @@
 {-# LANGUAGE NoMonomorphismRestriction #-}
-module Graphics.LambdaCube.Loader.CompositorScript (loadCompositor,parseCompositor) where
+module Graphics.LambdaCube.Loader.CompositorScript (parseCompositor) where
 
--- import the the library functions from uulib
 import UU.Parsing
 import UU.Scanner
 
-import Data.Maybe
 import Data.Either
+import Data.Maybe
 import qualified Data.IntMap as IntMap
 
--- import our custom made Alex-scanner
+import Graphics.LambdaCube.Common
+import Graphics.LambdaCube.Compositor
+import Graphics.LambdaCube.GpuProgram
 import Graphics.LambdaCube.Loader.Generated.CompositorScriptScanner
 import Graphics.LambdaCube.Loader.ParserUtil
-import Graphics.LambdaCube.Compositor
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.Common
-import Graphics.LambdaCube.RenderSystem
 import Graphics.LambdaCube.PixelFormat
+import Graphics.LambdaCube.RenderSystem
 import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.GpuProgram
-
-----------------------
--- Boilerplate code --
-----------------------
+import Graphics.LambdaCube.Types
 
-loadCompositor path file = do
-    txt <- readFile file
-    parseCompositor file txt
+parseCompositor :: (LinkedGpuProgram lp, Texture t) => String -> String -> IO (Maybe [Compositor t lp])
+parseCompositor file txt = case parseTokens pCompositorScript (tokenize file txt) of
+    Left errs -> do
+        mapM_ (\m -> putStrLn $ "parseCompositor " ++ m) errs
+        return Nothing
+    Right tree -> return (Just tree)
 
-parseCompositor file txt
-    = let res = parseTokens pCompositorScript (tokenize file txt)
-    in case res of
-        Left errs -> do
-            mapM_ putStrLn errs
-            return Nothing
-        Right tree -> return (Just tree)
-		
 type TokenParser a = Parser Token a
 
 parseTokens :: TokenParser a -> [Token] -> Either [String] a
@@ -45,11 +34,6 @@
     msgs  = getMsgs steps
     (Pair v final) = evalSteps steps
 
-----------------------------------------------------
--- Compositor script top level parser combinators --
-----------------------------------------------------
--- * AST definitions
-
 data (Texture t, LinkedGpuProgram lp) => CS_Attr t lp
     = CS_compositor     (Compositor t lp)
 
@@ -91,15 +75,24 @@
 
 -- * Compositor parser combinators
 
+pCompositorScript :: (Texture t, LinkedGpuProgram lp) => AnaParser [Token] Pair Token (Maybe Token) [Compositor t lp]
 pCompositorScript = mkCompositorScript <$> pList pCompositorScriptContent
+
+mkCompositorScript :: (LinkedGpuProgram lp, Texture t) => [CS_Attr t lp] -> [Compositor t lp]
 mkCompositorScript l = [x | CS_compositor x <- l]
-	
+
+pCompositorScriptContent :: (LinkedGpuProgram lp, Texture t) => AnaParser [Token] Pair Token (Maybe Token)  (CS_Attr t lp)
 pCompositorScriptContent = pCompositor
 
 -- * Compositor
+
+pCompositor :: (LinkedGpuProgram lp, Texture t) => AnaParser [Token] Pair Token (Maybe Token) (CS_Attr t lp)
 pCompositor = (CS_compositor .) . mkCompositor <$= "compositor" <*> pName <*= "{" <*> pList pCompositorContent <*= "}"
+
+pCompositorContent :: (LinkedGpuProgram lp, Texture t) => AnaParser [Token] Pair Token (Maybe Token) (C_Attr t lp)
 pCompositorContent = pTechnique
 
+mkCompositor :: (Texture t, LinkedGpuProgram lp) => String -> [C_Attr t lp] -> Compositor t lp
 mkCompositor name l = Compositor
     { cmpName                   = name
     , cmpTechniques             = [x | C_technique x <- l]
@@ -107,26 +100,33 @@
 	}
 
 -- * Technique
+
+pTechnique :: (LinkedGpuProgram lp, Texture t) => AnaParser [Token] Pair Token (Maybe Token) (C_Attr t lp)
 pTechnique = C_technique . mkTechnique <$= "technique" <*= "{" <*> pList pTechniqueContent <*= "}"
+
+pTechniqueContent :: (LinkedGpuProgram lp, Texture t) => AnaParser [Token] Pair Token (Maybe Token) (T_Attr t lp)
 pTechniqueContent =  T_texture         <$= "texture" <*> pName <*> pTexWidth <*> pTexHeight <*> pList (pEnum compositorPixelFormatVals) <*> (True <$= "shared" <|> pSucceed False)
                  <|> pTarget
                  <|> pTargetOutput
 
+pTexWidth :: AnaParser [Token] Pair Token (Maybe Token) (Either Int FloatType)
 pTexWidth =  Left       <$> pInt
          <|> Right 1    <$= "target_width"
          <|> Right      <$= "target_width_scaled" <*> pFloat
 
+pTexHeight :: AnaParser [Token] Pair Token (Maybe Token) (Either Int FloatType)
 pTexHeight =  Left      <$> pInt
           <|> Right 1   <$= "target_height"
           <|> Right     <$= "target_height_scaled" <*> pFloat
 
+mkTechnique :: (Texture t, LinkedGpuProgram lp) => [T_Attr t lp] -> CompositionTechnique t lp
 mkTechnique l = CompositionTechnique
     { ctTextureDefinitions  = [mkTextureDefinition n w h p s | T_texture n w h p s <- l]
     , ctTargetPasses        = [x | T_target x <- l]
     , ctOutputTarget        = head [x | T_targetoutput x <- l]
     , ctSchemeName          = "" -- TODO
     }
-  where 
+  where
     mkTextureDefinition n w h p s = TextureDefinition
         { tdName            = n
         , tdWidth           = listToMaybe $ map fromIntegral $ lefts [w]
@@ -141,8 +141,14 @@
         }
 
 -- * Target
+
+pTargetOutput :: (LinkedGpuProgram lp, Texture t) => AnaParser [Token] Pair Token (Maybe Token) (T_Attr t lp)
 pTargetOutput = T_targetoutput . (mkTarget "output") <$= "target_output" <*= "{" <*> pList pTargetContent <*= "}"
+
+pTarget :: (LinkedGpuProgram lp, Texture t) => AnaParser [Token] Pair Token (Maybe Token) (T_Attr t lp)
 pTarget = (T_target .) . mkTarget       <$= "target" <*> pName <*= "{" <*> pList pTargetContent <*= "}"
+
+pTargetContent :: (Texture t, LinkedGpuProgram lp) => AnaParser [Token] Pair Token (Maybe Token) (TR_Attr t lp)
 pTargetContent =  TR_input          <$= "input" <*> pEnum inputVals
               <|> TR_onlyinitial    <$= "only_initial" <*> pOnOff
               <|> TR_visibilitymask <$= "visibbility_mask" <*> pInt
@@ -151,6 +157,7 @@
               <|> TR_shadows        <$= "shadows" <*> pOnOff
               <|> pPass
 
+mkTarget :: (Texture t, LinkedGpuProgram lp) => String -> [TR_Attr t lp] -> CompositionTargetPass t lp
 mkTarget n l = CompositionTargetPass
     { ctpInputMode      = def IM_NONE       [x | TR_input x <- l]
     , ctpOutputName     = n
@@ -164,27 +171,34 @@
     }
 
 -- * Pass
+
+pPass :: (Texture t, LinkedGpuProgram lp) => AnaParser [Token] Pair Token (Maybe Token) (TR_Attr t lp)
 pPass =  TR_pass . (mkPass PT_RENDERQUAD)   <$= "pass" <*= "render_quad" <*= "{" <*> pList pPassRQContent <*= "}"
      <|> TR_pass . (mkPass PT_CLEAR)        <$= "pass" <*= "clear" <*= "{" <*> pList pPassCContent <*= "}"
      <|> TR_pass . (mkPass PT_STENCIL)      <$= "pass" <*= "stencil" <*= "{" <*> pList pPassSContent <*= "}"
      <|> TR_pass . (mkPass PT_RENDERSCENE)  <$= "pass" <*= "render_scene" <*= "{" <*> pList pPassRSContent <*= "}"
 
+pIdentifier :: AnaParser [Token] Pair Token (Maybe Token) P_Attr
 pIdentifier = P_identifier <$= "identifier" <*> pInt
 
+pPassRQContent :: AnaParser [Token] Pair Token (Maybe Token) P_Attr
 pPassRQContent = pIdentifier
               <|> P_material <$= "material" <*> pName
               <|> P_input    <$= "input" <*> pInt <*> pName <*> (pInt <|> pSucceed 0)
 
+pPassRSContent :: AnaParser [Token] Pair Token (Maybe Token) P_Attr
 pPassRSContent =  pIdentifier
               <|> P_firstrenderqueue <$= "first_render_queue" <*> pInt
               <|> P_lastrenderqueue  <$= "last_render_queue" <*> pInt
 
+pPassCContent :: AnaParser [Token] Pair Token (Maybe Token) P_Attr
 pPassCContent =  pIdentifier
              <|> P_buffers      <$= "buffers" <*> pList (pKey "colour" <|> pKey "depth" <|> pKey "stencil")
              <|> P_colourvalue  <$= "colour_value" <*> pRGBA
              <|> P_depthvalue   <$= "depth_value" <*> pFloat
              <|> P_stencilvalue <$= "stencil_value" <*> pInt
 
+pPassSContent :: AnaParser [Token] Pair Token (Maybe Token) P_Attr
 pPassSContent = pIdentifier
              <|> P_check       <$= "check" <*> pOnOff
              <|> P_compfunc    <$= "comp_func" <*> pEnum cmpfuncVals
@@ -195,6 +209,7 @@
              <|> P_passop      <$= "pass_op" <*> pEnum stencilopVals
              <|> P_twosided    <$= "two_sided" <*> pOnOff
 
+mkPass :: (LinkedGpuProgram lp, Texture t) => PassType -> [P_Attr] -> CompositionPass t lp
 mkPass t l = CompositionPass
     { cpType                        = t
     , cpIdentifier                  = def 0             [fromIntegral x | P_identifier x <- l]
@@ -223,6 +238,7 @@
 --    , cpQuadFarCorners              :: Bool
 --    , cpQuadFarCornersViewSpace     :: Bool
     }
+
 {-
 mkPassS l =
     (def Nothing [Just x | P_identifier x <- l],
@@ -242,7 +258,7 @@
     { rqMaterial = def "" [x | P_material x <- l]
     , rqInput    = def (0,"",0) [(a,b,c) | P_input a b c <- l]
     })
-    
+
 mkPassC l =
     (def Nothing [Just x | P_identifier x <- l],
     CompositionClearPass
@@ -251,12 +267,12 @@
     , clDepthValue   = def 0 [x | P_depthvalue x <- l]
     , clStencilValue = def 0 [x | P_stencilvalue x <- l]
     })
-    
+
 mkPassRS l =
     (def Nothing [Just x | P_identifier x <- l],
     CompositionRenderScenePass
     { rsFirstRenderQueue = def 5 [x | P_firstrenderqueue x <- l]
     , rsLastRenderQueue  = def 95 [x | P_lastrenderqueue x <- l]
     })
-    
+
 -}
diff --git a/Graphics/LambdaCube/Loader/CompositorScriptScanner.x b/Graphics/LambdaCube/Loader/CompositorScriptScanner.x
--- a/Graphics/LambdaCube/Loader/CompositorScriptScanner.x
+++ b/Graphics/LambdaCube/Loader/CompositorScriptScanner.x
@@ -1,4 +1,5 @@
 {
+{-# OPTIONS_GHC -w #-}
 -- alex scanner for use with uulib
 --   compile with alex -o Scanner.hs -g Scanner.x
 module Graphics.LambdaCube.Loader.Generated.CompositorScriptScanner(tokenize) where
@@ -17,11 +18,11 @@
   \" ($litChar | \\ \\ | \\ \" )* \"           { valueToken TkString }         -- string
   [0-9]+                                       { valueToken TkInteger10 }      -- int
   [0-9]+\.[0-9]+                               { valueToken TkFraction }       -- float
-  
-  ( 
+
+  (
     on | off |
     compositor | technique | texture | target_width | target_height | target_width_scaled | target_height_scaled | shared |
-    PF_A8R8G8B8 | PF_R8G8B8A8 | PF_R8G8B8 | PF_FLOAT16_RGBA | PF_FLOAT16_RGB | PF_FLOAT16_R | PF_FLOAT32_RGBA | PF_FLOAT32_RGB | PF_FLOAT32_R | 
+    PF_A8R8G8B8 | PF_R8G8B8A8 | PF_R8G8B8 | PF_FLOAT16_RGBA | PF_FLOAT16_RGB | PF_FLOAT16_R | PF_FLOAT32_RGBA | PF_FLOAT32_RGB | PF_FLOAT32_R |
     target | target_output | input | none | previous | only_initial | visibility_mask | lod_bias | shadows | material_scheme |
     pass | render_quad | clear | stencil | render_scene | material |  identifier | first_render_queue | last_render_queue |
     buffers | colour | depth | colour_value | depth_value | stencil_value | check | comp_func |
@@ -52,7 +53,7 @@
   = go (initpos, str)
   where
     initpos = Pos 1 1 filename
-    
+
     go inp@(pos, cs)
       = case alexScan inp 0 of
           AlexEOF         -> []
diff --git a/Graphics/LambdaCube/Loader/FontDefinitionScriptScanner.x b/Graphics/LambdaCube/Loader/FontDefinitionScriptScanner.x
--- a/Graphics/LambdaCube/Loader/FontDefinitionScriptScanner.x
+++ b/Graphics/LambdaCube/Loader/FontDefinitionScriptScanner.x
@@ -1,4 +1,5 @@
 {
+{-# OPTIONS_GHC -w #-}
 -- alex scanner for use with uulib
 --   compile with alex -o Scanner.hs -g Scanner.x
 module Graphics.LambdaCube.Loader.Generated.FontDefinitionScriptScanner(tokenize) where
@@ -16,7 +17,7 @@
 
   \" ($litChar | \\ \\ | \\ \" )* \"           { valueToken TkString }         -- string
   [0-9]+                                       { valueToken TkInteger16 }      -- int
-  
+
   ( type | image | truetype |
     source | glyph | size |
     resolution | antialias_colour |
@@ -45,7 +46,7 @@
   = go (initpos, str)
   where
     initpos = Pos 1 1 filename
-    
+
     go inp@(pos, cs)
       = case alexScan inp 0 of
           AlexEOF         -> []
diff --git a/Graphics/LambdaCube/Loader/Generated/CompositorScriptScanner.hs b/Graphics/LambdaCube/Loader/Generated/CompositorScriptScanner.hs
--- a/Graphics/LambdaCube/Loader/Generated/CompositorScriptScanner.hs
+++ b/Graphics/LambdaCube/Loader/Generated/CompositorScriptScanner.hs
@@ -1,6 +1,7 @@
-{-# OPTIONS -fglasgow-exts -cpp #-}
+{-# LANGUAGE CPP,MagicHash #-}
 {-# LINE 1 "CompositorScriptScanner.x" #-}
 
+{-# OPTIONS_GHC -w #-}
 -- alex scanner for use with uulib
 --   compile with alex -o Scanner.hs -g Scanner.x
 module Graphics.LambdaCube.Loader.Generated.CompositorScriptScanner(tokenize) where
@@ -26,19 +27,19 @@
 import GlaExts
 #endif
 alex_base :: AlexAddr
-alex_base = AlexA# "\xf8\xff\xff\xff\xfd\xff\xff\xff\x02\x00\x00\x00\x4e\x00\x00\x00\x06\x00\x00\x00\xa4\x00\x00\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x6a\x01\x00\x00\x6b\x01\x00\x00\xf7\xff\xff\xff\x69\x01\x00\x00\xbe\x01\x00\x00\x13\x02\x00\x00\x68\x02\x00\x00\xbd\x02\x00\x00\x12\x03\x00\x00\x67\x03\x00\x00\xbc\x03\x00\x00\x11\x04\x00\x00\x66\x04\x00\x00\xbb\x04\x00\x00\x10\x05\x00\x00\x65\x05\x00\x00\xba\x05\x00\x00\x0f\x06\x00\x00\x64\x06\x00\x00\xb9\x06\x00\x00\x0e\x07\x00\x00\x63\x07\x00\x00\xb8\x07\x00\x00\x0d\x08\x00\x00\x62\x08\x00\x00\xb7\x08\x00\x00\x0c\x09\x00\x00\x61\x09\x00\x00\xb6\x09\x00\x00\x0b\x0a\x00\x00\x60\x0a\x00\x00\xb5\x0a\x00\x00\x0a\x0b\x00\x00\x5f\x0b\x00\x00\xb4\x0b\x00\x00\x09\x0c\x00\x00\x5e\x0c\x00\x00\xb3\x0c\x00\x00\x08\x0d\x00\x00\x5d\x0d\x00\x00\xb2\x0d\x00\x00\x07\x0e\x00\x00\x5c\x0e\x00\x00\xb1\x0e\x00\x00\x06\x0f\x00\x00\x5b\x0f\x00\x00\xb0\x0f\x00\x00\x05\x10\x00\x00\x5a\x10\x00\x00\xaf\x10\x00\x00\x04\x11\x00\x00\x59\x11\x00\x00\xae\x11\x00\x00\x03\x12\x00\x00\x58\x12\x00\x00\xad\x12\x00\x00\x02\x13\x00\x00\x57\x13\x00\x00\xac\x13\x00\x00\x01\x14\x00\x00\x56\x14\x00\x00\xab\x14\x00\x00\x00\x15\x00\x00\x55\x15\x00\x00\xaa\x15\x00\x00\xff\x15\x00\x00\x54\x16\x00\x00\xa9\x16\x00\x00\xfe\x16\x00\x00\x53\x17\x00\x00\xa8\x17\x00\x00\xfd\x17\x00\x00\x52\x18\x00\x00\xa7\x18\x00\x00\xfc\x18\x00\x00\x51\x19\x00\x00\xa6\x19\x00\x00\xfb\x19\x00\x00\x50\x1a\x00\x00\xa5\x1a\x00\x00\xfa\x1a\x00\x00\x4f\x1b\x00\x00\xa4\x1b\x00\x00\xf9\x1b\x00\x00\x4e\x1c\x00\x00\xa3\x1c\x00\x00\xf8\x1c\x00\x00\x4d\x1d\x00\x00\xa2\x1d\x00\x00\xf7\x1d\x00\x00\x4c\x1e\x00\x00\xa1\x1e\x00\x00\xf6\x1e\x00\x00\x4b\x1f\x00\x00\xa0\x1f\x00\x00\xf5\x1f\x00\x00\x4a\x20\x00\x00\x9f\x20\x00\x00\xf4\x20\x00\x00\x49\x21\x00\x00\x9e\x21\x00\x00\xf3\x21\x00\x00\x48\x22\x00\x00\x9d\x22\x00\x00\xf2\x22\x00\x00\x47\x23\x00\x00\x9c\x23\x00\x00\xf1\x23\x00\x00\x46\x24\x00\x00\x9b\x24\x00\x00\xf0\x24\x00\x00\x45\x25\x00\x00\x9a\x25\x00\x00\xef\x25\x00\x00\x44\x26\x00\x00\x99\x26\x00\x00\xee\x26\x00\x00\x43\x27\x00\x00\x98\x27\x00\x00\xed\x27\x00\x00\x42\x28\x00\x00\x97\x28\x00\x00\xec\x28\x00\x00\x41\x29\x00\x00\x96\x29\x00\x00\xeb\x29\x00\x00\x40\x2a\x00\x00\x95\x2a\x00\x00\xea\x2a\x00\x00\x3f\x2b\x00\x00\x94\x2b\x00\x00\xe9\x2b\x00\x00\x3e\x2c\x00\x00\x93\x2c\x00\x00\xe8\x2c\x00\x00\x3d\x2d\x00\x00\x92\x2d\x00\x00\xe7\x2d\x00\x00\x3c\x2e\x00\x00\x91\x2e\x00\x00\xe6\x2e\x00\x00\x3b\x2f\x00\x00\x90\x2f\x00\x00\xe5\x2f\x00\x00\x3a\x30\x00\x00\x8f\x30\x00\x00\xe4\x30\x00\x00\x39\x31\x00\x00\x8e\x31\x00\x00\xe3\x31\x00\x00\x38\x32\x00\x00\x8d\x32\x00\x00\xe2\x32\x00\x00\x37\x33\x00\x00\x8c\x33\x00\x00\xe1\x33\x00\x00\x36\x34\x00\x00\x8b\x34\x00\x00\xe0\x34\x00\x00\x35\x35\x00\x00\x8a\x35\x00\x00\xdf\x35\x00\x00\x34\x36\x00\x00\x89\x36\x00\x00\xde\x36\x00\x00\x33\x37\x00\x00\x88\x37\x00\x00\xdd\x37\x00\x00\x32\x38\x00\x00\x87\x38\x00\x00\xdc\x38\x00\x00\x31\x39\x00\x00\x86\x39\x00\x00\xdb\x39\x00\x00\x30\x3a\x00\x00\x85\x3a\x00\x00\xda\x3a\x00\x00\x2f\x3b\x00\x00\x84\x3b\x00\x00\xd9\x3b\x00\x00\x2e\x3c\x00\x00\x83\x3c\x00\x00\xd8\x3c\x00\x00\x2d\x3d\x00\x00\x82\x3d\x00\x00\xd7\x3d\x00\x00\x2c\x3e\x00\x00\x81\x3e\x00\x00\xd6\x3e\x00\x00\x2b\x3f\x00\x00\x80\x3f\x00\x00\xd5\x3f\x00\x00\x2a\x40\x00\x00\x7f\x40\x00\x00\xd4\x40\x00\x00\x29\x41\x00\x00\x7e\x41\x00\x00\xd3\x41\x00\x00\x28\x42\x00\x00\x7d\x42\x00\x00\xd2\x42\x00\x00\x27\x43\x00\x00\x7c\x43\x00\x00\xd1\x43\x00\x00\x26\x44\x00\x00\x7b\x44\x00\x00\xd0\x44\x00\x00\x25\x45\x00\x00\x7a\x45\x00\x00\xcf\x45\x00\x00\x24\x46\x00\x00\x79\x46\x00\x00\xce\x46\x00\x00\x23\x47\x00\x00\x78\x47\x00\x00\xcd\x47\x00\x00\x22\x48\x00\x00\x77\x48\x00\x00\xcc\x48\x00\x00\x21\x49\x00\x00\x76\x49\x00\x00\xcb\x49\x00\x00\x20\x4a\x00\x00\x75\x4a\x00\x00\xca\x4a\x00\x00\x1f\x4b\x00\x00\x74\x4b\x00\x00\xc9\x4b\x00\x00\x1e\x4c\x00\x00\x73\x4c\x00\x00\xc8\x4c\x00\x00\x1d\x4d\x00\x00\x72\x4d\x00\x00\xc7\x4d\x00\x00\x1c\x4e\x00\x00\x71\x4e\x00\x00\xc6\x4e\x00\x00\x1b\x4f\x00\x00\x70\x4f\x00\x00\xc5\x4f\x00\x00\x1a\x50\x00\x00\x6f\x50\x00\x00\xc4\x50\x00\x00\x19\x51\x00\x00\x6e\x51\x00\x00\xc3\x51\x00\x00\x18\x52\x00\x00\x6d\x52\x00\x00\xc2\x52\x00\x00\x17\x53\x00\x00\x6c\x53\x00\x00\xc1\x53\x00\x00\x16\x54\x00\x00\x6b\x54\x00\x00\xc0\x54\x00\x00\x15\x55\x00\x00\x6a\x55\x00\x00\xbf\x55\x00\x00\x14\x56\x00\x00\x69\x56\x00\x00\xbe\x56\x00\x00\x13\x57\x00\x00\x68\x57\x00\x00\xbd\x57\x00\x00\x12\x58\x00\x00\x67\x58\x00\x00\xbc\x58\x00\x00\x11\x59\x00\x00\x66\x59\x00\x00\xbb\x59\x00\x00\x10\x5a\x00\x00\x65\x5a\x00\x00\xba\x5a\x00\x00\x0f\x5b\x00\x00\x64\x5b\x00\x00\xb9\x5b\x00\x00\x0e\x5c\x00\x00\x63\x5c\x00\x00\xb8\x5c\x00\x00\x0d\x5d\x00\x00\x62\x5d\x00\x00\xb7\x5d\x00\x00\x0c\x5e\x00\x00\x61\x5e\x00\x00\xb6\x5e\x00\x00\x0b\x5f\x00\x00\x60\x5f\x00\x00\xb5\x5f\x00\x00\x0a\x60\x00\x00\x5f\x60\x00\x00\xb4\x60\x00\x00\x09\x61\x00\x00\x5e\x61\x00\x00\xb3\x61\x00\x00\x08\x62\x00\x00\x5d\x62\x00\x00\xb2\x62\x00\x00\x07\x63\x00\x00\x5c\x63\x00\x00\xb1\x63\x00\x00\x06\x64\x00\x00\x5b\x64\x00\x00\xb0\x64\x00\x00\x05\x65\x00\x00\x5a\x65\x00\x00\xaf\x65\x00\x00\x04\x66\x00\x00\x59\x66\x00\x00\xae\x66\x00\x00\x03\x67\x00\x00\x58\x67\x00\x00\xad\x67\x00\x00\x02\x68\x00\x00\x57\x68\x00\x00\xac\x68\x00\x00\x01\x69\x00\x00\x56\x69\x00\x00\xab\x69\x00\x00\x00\x6a\x00\x00\x55\x6a\x00\x00\xaa\x6a\x00\x00\xff\x6a\x00\x00\x54\x6b\x00\x00\xa9\x6b\x00\x00\xfe\x6b\x00\x00\x53\x6c\x00\x00\xa8\x6c\x00\x00\xfd\x6c\x00\x00\x52\x6d\x00\x00\xa7\x6d\x00\x00\xfc\x6d\x00\x00\x51\x6e\x00\x00\xa6\x6e\x00\x00\xfb\x6e\x00\x00\x50\x6f\x00\x00\xa5\x6f\x00\x00\xfa\x6f\x00\x00\x4f\x70\x00\x00\xa4\x70\x00\x00\xf9\x70\x00\x00\x4e\x71\x00\x00\xa3\x71\x00\x00\xf8\x71\x00\x00\x4d\x72\x00\x00\xa2\x72\x00\x00\xf7\x72\x00\x00\x4c\x73\x00\x00\xa1\x73\x00\x00\xf6\x73\x00\x00\x4b\x74\x00\x00\xa0\x74\x00\x00\xf5\x74\x00\x00\x4a\x75\x00\x00\x9f\x75\x00\x00\xf4\x75\x00\x00\x49\x76\x00\x00\x9e\x76\x00\x00\xf3\x76\x00\x00\x48\x77\x00\x00\x9d\x77\x00\x00\xf2\x77\x00\x00\x47\x78\x00\x00\x9c\x78\x00\x00\xf1\x78\x00\x00\x46\x79\x00\x00\x9b\x79\x00\x00\xf0\x79\x00\x00\x45\x7a\x00\x00\x9a\x7a\x00\x00\x00\x00\x00\x00\xef\x7a\x00\x00"#
+alex_base = AlexA# "\xf8\xff\xff\xff\xfd\xff\xff\xff\x4e\x00\x00\x00\x01\x00\x00\x00\xa4\x00\x00\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x6a\x01\x00\x00\x6b\x01\x00\x00\xf7\xff\xff\xff\x69\x01\x00\x00\xbe\x01\x00\x00\x13\x02\x00\x00\x68\x02\x00\x00\xbd\x02\x00\x00\x12\x03\x00\x00\x67\x03\x00\x00\xbc\x03\x00\x00\x11\x04\x00\x00\x66\x04\x00\x00\xbb\x04\x00\x00\x10\x05\x00\x00\x65\x05\x00\x00\xba\x05\x00\x00\x0f\x06\x00\x00\x64\x06\x00\x00\xb9\x06\x00\x00\x0e\x07\x00\x00\x63\x07\x00\x00\xb8\x07\x00\x00\x0d\x08\x00\x00\x62\x08\x00\x00\xb7\x08\x00\x00\x0c\x09\x00\x00\x61\x09\x00\x00\xb6\x09\x00\x00\x0b\x0a\x00\x00\x60\x0a\x00\x00\xb5\x0a\x00\x00\x0a\x0b\x00\x00\x5f\x0b\x00\x00\xb4\x0b\x00\x00\x09\x0c\x00\x00\x5e\x0c\x00\x00\xb3\x0c\x00\x00\x08\x0d\x00\x00\x5d\x0d\x00\x00\xb2\x0d\x00\x00\x07\x0e\x00\x00\x5c\x0e\x00\x00\xb1\x0e\x00\x00\x06\x0f\x00\x00\x5b\x0f\x00\x00\xb0\x0f\x00\x00\x05\x10\x00\x00\x5a\x10\x00\x00\xaf\x10\x00\x00\x04\x11\x00\x00\x59\x11\x00\x00\xae\x11\x00\x00\x03\x12\x00\x00\x58\x12\x00\x00\xad\x12\x00\x00\x02\x13\x00\x00\x57\x13\x00\x00\xac\x13\x00\x00\x01\x14\x00\x00\x56\x14\x00\x00\xab\x14\x00\x00\x00\x15\x00\x00\x55\x15\x00\x00\xaa\x15\x00\x00\xff\x15\x00\x00\x54\x16\x00\x00\xa9\x16\x00\x00\xfe\x16\x00\x00\x53\x17\x00\x00\xa8\x17\x00\x00\xfd\x17\x00\x00\x52\x18\x00\x00\xa7\x18\x00\x00\xfc\x18\x00\x00\x51\x19\x00\x00\xa6\x19\x00\x00\xfb\x19\x00\x00\x50\x1a\x00\x00\xa5\x1a\x00\x00\xfa\x1a\x00\x00\x4f\x1b\x00\x00\xa4\x1b\x00\x00\xf9\x1b\x00\x00\x4e\x1c\x00\x00\xa3\x1c\x00\x00\xf8\x1c\x00\x00\x4d\x1d\x00\x00\xa2\x1d\x00\x00\xf7\x1d\x00\x00\x4c\x1e\x00\x00\xa1\x1e\x00\x00\xf6\x1e\x00\x00\x4b\x1f\x00\x00\xa0\x1f\x00\x00\xf5\x1f\x00\x00\x4a\x20\x00\x00\x9f\x20\x00\x00\xf4\x20\x00\x00\x49\x21\x00\x00\x9e\x21\x00\x00\xf3\x21\x00\x00\x48\x22\x00\x00\x9d\x22\x00\x00\xf2\x22\x00\x00\x47\x23\x00\x00\x9c\x23\x00\x00\xf1\x23\x00\x00\x46\x24\x00\x00\x9b\x24\x00\x00\xf0\x24\x00\x00\x45\x25\x00\x00\x9a\x25\x00\x00\xef\x25\x00\x00\x44\x26\x00\x00\x99\x26\x00\x00\xee\x26\x00\x00\x43\x27\x00\x00\x98\x27\x00\x00\xed\x27\x00\x00\x42\x28\x00\x00\x97\x28\x00\x00\xec\x28\x00\x00\x41\x29\x00\x00\x96\x29\x00\x00\xeb\x29\x00\x00\x40\x2a\x00\x00\x95\x2a\x00\x00\xea\x2a\x00\x00\x3f\x2b\x00\x00\x94\x2b\x00\x00\xe9\x2b\x00\x00\x3e\x2c\x00\x00\x93\x2c\x00\x00\xe8\x2c\x00\x00\x3d\x2d\x00\x00\x92\x2d\x00\x00\xe7\x2d\x00\x00\x3c\x2e\x00\x00\x91\x2e\x00\x00\xe6\x2e\x00\x00\x3b\x2f\x00\x00\x90\x2f\x00\x00\xe5\x2f\x00\x00\x3a\x30\x00\x00\x8f\x30\x00\x00\xe4\x30\x00\x00\x39\x31\x00\x00\x8e\x31\x00\x00\xe3\x31\x00\x00\x38\x32\x00\x00\x8d\x32\x00\x00\xe2\x32\x00\x00\x37\x33\x00\x00\x8c\x33\x00\x00\xe1\x33\x00\x00\x36\x34\x00\x00\x8b\x34\x00\x00\xe0\x34\x00\x00\x35\x35\x00\x00\x8a\x35\x00\x00\xdf\x35\x00\x00\x34\x36\x00\x00\x89\x36\x00\x00\xde\x36\x00\x00\x33\x37\x00\x00\x88\x37\x00\x00\xdd\x37\x00\x00\x32\x38\x00\x00\x87\x38\x00\x00\xdc\x38\x00\x00\x31\x39\x00\x00\x86\x39\x00\x00\xdb\x39\x00\x00\x30\x3a\x00\x00\x85\x3a\x00\x00\xda\x3a\x00\x00\x2f\x3b\x00\x00\x84\x3b\x00\x00\xd9\x3b\x00\x00\x2e\x3c\x00\x00\x83\x3c\x00\x00\xd8\x3c\x00\x00\x2d\x3d\x00\x00\x82\x3d\x00\x00\xd7\x3d\x00\x00\x2c\x3e\x00\x00\x81\x3e\x00\x00\xd6\x3e\x00\x00\x2b\x3f\x00\x00\x80\x3f\x00\x00\xd5\x3f\x00\x00\x2a\x40\x00\x00\x7f\x40\x00\x00\xd4\x40\x00\x00\x29\x41\x00\x00\x7e\x41\x00\x00\xd3\x41\x00\x00\x28\x42\x00\x00\x7d\x42\x00\x00\xd2\x42\x00\x00\x27\x43\x00\x00\x7c\x43\x00\x00\xd1\x43\x00\x00\x26\x44\x00\x00\x7b\x44\x00\x00\xd0\x44\x00\x00\x25\x45\x00\x00\x7a\x45\x00\x00\xcf\x45\x00\x00\x24\x46\x00\x00\x79\x46\x00\x00\xce\x46\x00\x00\x23\x47\x00\x00\x78\x47\x00\x00\xcd\x47\x00\x00\x22\x48\x00\x00\x77\x48\x00\x00\xcc\x48\x00\x00\x21\x49\x00\x00\x76\x49\x00\x00\xcb\x49\x00\x00\x20\x4a\x00\x00\x75\x4a\x00\x00\xca\x4a\x00\x00\x1f\x4b\x00\x00\x74\x4b\x00\x00\xc9\x4b\x00\x00\x1e\x4c\x00\x00\x73\x4c\x00\x00\xc8\x4c\x00\x00\x1d\x4d\x00\x00\x72\x4d\x00\x00\xc7\x4d\x00\x00\x1c\x4e\x00\x00\x71\x4e\x00\x00\xc6\x4e\x00\x00\x1b\x4f\x00\x00\x70\x4f\x00\x00\xc5\x4f\x00\x00\x1a\x50\x00\x00\x6f\x50\x00\x00\xc4\x50\x00\x00\x19\x51\x00\x00\x6e\x51\x00\x00\xc3\x51\x00\x00\x18\x52\x00\x00\x6d\x52\x00\x00\xc2\x52\x00\x00\x17\x53\x00\x00\x6c\x53\x00\x00\xc1\x53\x00\x00\x16\x54\x00\x00\x6b\x54\x00\x00\xc0\x54\x00\x00\x15\x55\x00\x00\x6a\x55\x00\x00\xbf\x55\x00\x00\x14\x56\x00\x00\x69\x56\x00\x00\xbe\x56\x00\x00\x13\x57\x00\x00\x68\x57\x00\x00\xbd\x57\x00\x00\x12\x58\x00\x00\x67\x58\x00\x00\xbc\x58\x00\x00\x11\x59\x00\x00\x66\x59\x00\x00\xbb\x59\x00\x00\x10\x5a\x00\x00\x65\x5a\x00\x00\xba\x5a\x00\x00\x0f\x5b\x00\x00\x64\x5b\x00\x00\xb9\x5b\x00\x00\x0e\x5c\x00\x00\x63\x5c\x00\x00\xb8\x5c\x00\x00\x0d\x5d\x00\x00\x62\x5d\x00\x00\xb7\x5d\x00\x00\x0c\x5e\x00\x00\x61\x5e\x00\x00\xb6\x5e\x00\x00\x0b\x5f\x00\x00\x60\x5f\x00\x00\xb5\x5f\x00\x00\x0a\x60\x00\x00\x5f\x60\x00\x00\xb4\x60\x00\x00\x09\x61\x00\x00\x5e\x61\x00\x00\xb3\x61\x00\x00\x08\x62\x00\x00\x5d\x62\x00\x00\xb2\x62\x00\x00\x07\x63\x00\x00\x5c\x63\x00\x00\xb1\x63\x00\x00\x06\x64\x00\x00\x5b\x64\x00\x00\xb0\x64\x00\x00\x05\x65\x00\x00\x5a\x65\x00\x00\xaf\x65\x00\x00\x04\x66\x00\x00\x59\x66\x00\x00\xae\x66\x00\x00\x03\x67\x00\x00\x58\x67\x00\x00\xad\x67\x00\x00\x02\x68\x00\x00\x57\x68\x00\x00\xac\x68\x00\x00\x01\x69\x00\x00\x56\x69\x00\x00\xab\x69\x00\x00\x00\x6a\x00\x00\x55\x6a\x00\x00\xaa\x6a\x00\x00\xff\x6a\x00\x00\x54\x6b\x00\x00\xa9\x6b\x00\x00\xfe\x6b\x00\x00\x53\x6c\x00\x00\xa8\x6c\x00\x00\xfd\x6c\x00\x00\x52\x6d\x00\x00\xa7\x6d\x00\x00\xfc\x6d\x00\x00\x51\x6e\x00\x00\xa6\x6e\x00\x00\xfb\x6e\x00\x00\x50\x6f\x00\x00\xa5\x6f\x00\x00\xfa\x6f\x00\x00\x4f\x70\x00\x00\xa4\x70\x00\x00\xf9\x70\x00\x00\x4e\x71\x00\x00\xa3\x71\x00\x00\xf8\x71\x00\x00\x4d\x72\x00\x00\xa2\x72\x00\x00\xf7\x72\x00\x00\x4c\x73\x00\x00\xa1\x73\x00\x00\xf6\x73\x00\x00\x4b\x74\x00\x00\xa0\x74\x00\x00\xf5\x74\x00\x00\x4a\x75\x00\x00\x9f\x75\x00\x00\xf4\x75\x00\x00\x49\x76\x00\x00\x9e\x76\x00\x00\xf3\x76\x00\x00\x48\x77\x00\x00\x9d\x77\x00\x00\xf2\x77\x00\x00\x47\x78\x00\x00\x9c\x78\x00\x00\xf1\x78\x00\x00\x46\x79\x00\x00\x9b\x79\x00\x00\xf0\x79\x00\x00\x45\x7a\x00\x00\x9a\x7a\x00\x00\x00\x00\x00\x00\xef\x7a\x00\x00"#
 
 alex_table :: AlexAddr
-alex_table = AlexA# "\x00\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x09\x00\x08\x00\x00\x00\x00\x00\x02\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x06\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x60\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x09\x00\x00\x00\x00\x00\x00\x00\x7a\x01\xff\xff\x21\x01\xfa\x00\x2b\x00\x01\x01\x7a\x01\xe5\x00\x3c\x01\x7a\x01\x7c\x00\x7a\x01\x4b\x01\xa4\x00\xb4\x00\x7f\x00\x21\x00\x86\x00\x7a\x01\xc0\x00\x56\x00\x33\x00\x7a\x01\x9d\x00\x7a\x01\x7a\x01\x7a\x01\x4e\x01\x79\x01\x05\x00\x79\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\xff\xff\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x05\x00\x7a\x01\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x03\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xff\xff\xff\xff\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x07\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x0d\x00\x7a\x01\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x0a\x00\x0a\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x51\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x67\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x70\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x8f\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\xad\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x06\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x36\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x62\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x66\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x71\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x22\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x16\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x23\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x24\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x25\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x26\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x17\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x27\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x28\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xfd\x00\x29\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x13\x01\x7a\x01\x7a\x01\x7a\x01\xc3\x00\x7a\x01\x7a\x01\x2a\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x2c\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x2d\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x2e\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x2f\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x30\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x31\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x37\x00\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x40\x00\x7a\x01\x7a\x01\x7a\x01\x32\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x78\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x34\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x35\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x36\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x0f\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x38\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x39\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x3a\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x45\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x78\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x3b\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x0e\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x3d\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x3e\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x3f\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x10\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x41\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x42\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x43\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x44\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x46\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x47\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x48\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x49\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x4a\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x4c\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x4d\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x4e\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x4f\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x50\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x52\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\xa7\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x53\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x54\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x55\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xc8\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x57\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x58\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x59\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x5a\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x5b\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x5c\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x6f\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x66\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x5f\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x11\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x62\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x63\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x64\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x65\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x12\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x13\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x68\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x69\x00\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x6a\x00\x7a\x01\x73\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x6b\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x6d\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x6e\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x14\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x15\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x71\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x72\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x74\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x75\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x76\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x77\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x79\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x58\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x69\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\xd4\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7b\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7d\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x31\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7e\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x80\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x81\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x82\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x83\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x84\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\xb6\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x85\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x87\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x88\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x89\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x8a\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x8b\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x8c\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x8e\x00\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x90\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x91\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x92\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x93\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x94\x00\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x95\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x96\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x97\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x98\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x99\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x9a\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x9b\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x9c\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x9e\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x9f\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\xa0\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\xa2\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\xf4\x00\x7a\x01\x7a\x01\x7a\x01\x26\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xa3\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xa5\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xa6\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xa8\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xa9\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xaa\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\xab\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xac\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x17\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\xae\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xaf\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xb0\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xb1\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x43\x01\xb2\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\xb3\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x1f\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xb5\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\xb7\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xb8\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xb9\x00\x7a\x01\xcc\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\xba\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xbb\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xbc\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\xbd\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x42\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xbe\x00\x7a\x01\x52\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xbf\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\xc1\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xc2\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x1a\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xc4\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\xc5\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xc6\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xc7\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xc9\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xca\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\xcb\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xcd\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xce\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xcf\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xd0\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xd1\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xd2\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xd3\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xd5\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xd6\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xd7\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xd8\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xda\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xdb\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\xdc\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xdd\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xde\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xdf\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xe1\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xe2\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xe3\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x48\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xe4\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xe6\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xe7\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xe8\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xe9\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\xea\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xeb\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xec\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\xed\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xee\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xef\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xf0\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xf2\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xf3\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xf5\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xf6\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xf7\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xf8\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xf9\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x18\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xfb\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xfc\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x19\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xfe\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x5e\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\xff\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x02\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x03\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x04\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x05\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x07\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x08\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x09\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x6f\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x0a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x0c\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x0d\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x0e\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x0f\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x11\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x12\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x14\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x15\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x16\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x18\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x19\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x1a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x24\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x1c\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x1d\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x1e\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x1f\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x22\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x23\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x1b\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x25\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x27\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x28\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x29\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x2a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x2c\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x2d\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x2e\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x2f\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x30\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x32\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x33\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x34\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x35\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x1c\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x37\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x38\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x39\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x3a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x3b\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x3d\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x3e\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x3f\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x40\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x41\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x44\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x45\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x46\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x47\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x49\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x4a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x4c\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x4d\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x4f\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x50\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x51\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x1d\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x53\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x54\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x55\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x56\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x57\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x1e\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x59\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x5a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x5b\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x5c\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x5d\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x5f\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x60\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x61\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x63\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x64\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x65\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x67\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x68\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x6a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x6c\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x6d\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x6e\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x70\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x20\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x72\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x73\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x74\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x75\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x76\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x77\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+alex_table = AlexA# "\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x08\x00\x07\x00\x00\x00\x00\x00\x01\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x05\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x5f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x08\x00\x00\x00\x00\x00\x00\x00\x79\x01\xff\xff\x20\x01\xf9\x00\x2a\x00\x00\x01\x79\x01\xe4\x00\x3b\x01\x79\x01\x7b\x00\x79\x01\x4a\x01\xa3\x00\xb3\x00\x7e\x00\x20\x00\x85\x00\x79\x01\xbf\x00\x55\x00\x32\x00\x79\x01\x9c\x00\x79\x01\x79\x01\x79\x01\x4d\x01\x78\x01\x04\x00\x78\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\xff\xff\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x79\x01\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x02\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xff\xff\xff\xff\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x06\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x0c\x00\x79\x01\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x09\x00\x09\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x66\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x6f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x8e\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x05\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x35\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x61\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x65\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x70\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x21\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x15\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x22\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x23\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x24\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x25\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x26\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x27\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xfc\x00\x28\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x12\x01\x79\x01\x79\x01\x79\x01\xc2\x00\x79\x01\x79\x01\x29\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x2b\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x2c\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x2d\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x2e\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x2f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x30\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x36\x00\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x3f\x00\x79\x01\x79\x01\x79\x01\x31\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x77\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x33\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x34\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x35\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x0e\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x37\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x38\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x39\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x44\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x77\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x3a\x00\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x0d\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x3c\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x3d\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x3e\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x0f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x40\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x41\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x42\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x43\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x45\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x46\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x47\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x48\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x49\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x4b\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x4c\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x4d\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x4e\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x4f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x51\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\xa6\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x52\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x53\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x54\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xc7\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x56\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x57\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x58\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x59\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x5a\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x5b\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x79\x01\x79\x01\x79\x01\x79\x01\x6e\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x65\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x5e\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x10\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x61\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x62\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x63\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x64\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x11\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x12\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x68\x00\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x69\x00\x79\x01\x72\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x6a\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x6c\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x6d\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x13\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x14\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x71\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x73\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x74\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x75\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x76\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x78\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x57\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x68\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\xd3\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x7a\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x7c\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x30\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x7d\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x7f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x80\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x81\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x82\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x83\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\xb5\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x84\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x86\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x87\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x88\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x89\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x8a\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x8b\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x8d\x00\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x8f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x90\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x91\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x93\x00\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x94\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x95\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x96\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x97\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x98\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x99\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x9a\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x9b\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x9d\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x9e\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x9f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\xa1\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\xf3\x00\x79\x01\x79\x01\x79\x01\x25\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xa2\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xa4\x00\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xa5\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xa7\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xa8\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xa9\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\xaa\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xab\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x16\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\xad\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xae\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xaf\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xb0\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x42\x01\xb1\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\xb2\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1e\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xb4\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\xb6\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xb7\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xb8\x00\x79\x01\xcb\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xba\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xbb\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\xbc\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x41\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xbd\x00\x79\x01\x51\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xbe\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\xc0\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xc1\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x19\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xc3\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\xc4\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xc5\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xc6\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xc8\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xc9\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\xca\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xcc\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xcd\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xce\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xcf\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xd0\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xd1\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xd2\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xd4\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xd5\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xd6\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xd7\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xd9\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xda\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\xdb\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xdc\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xdd\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xde\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xe0\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xe1\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xe2\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x47\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xe3\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xe5\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xe6\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xe7\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xe8\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xea\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xeb\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\xec\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xed\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xee\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xef\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xf1\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xf2\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xf4\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xf5\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xf6\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xf7\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xf8\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x17\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xfa\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xfb\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x18\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xfd\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x5d\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\xfe\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\xff\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x01\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x02\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x03\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x04\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x06\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x07\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x08\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x6e\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x09\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x0b\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x0c\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x0d\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x0e\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x10\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x11\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x13\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x14\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x15\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x17\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x18\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x19\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x23\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1b\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1c\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x1d\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1e\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x21\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x22\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1a\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x24\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x26\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x27\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x28\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x29\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x2b\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x2c\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x2d\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x2e\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x31\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x32\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x33\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x34\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1b\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x36\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x37\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x38\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x39\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x3a\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x3c\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x3d\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x3e\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x3f\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x40\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x43\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x44\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x45\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x46\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x48\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x49\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x4b\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x4c\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x4e\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x4f\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x50\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1c\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x52\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x53\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x54\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x55\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x56\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1d\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x58\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x59\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x5a\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x5b\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x5c\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x5e\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x5f\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x60\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x62\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x63\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x64\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x66\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x67\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x69\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x6b\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x6c\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x6d\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x6f\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x1f\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x71\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x72\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x73\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x74\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x75\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x76\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x79\x01\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
 
 alex_check :: AlexAddr
-alex_check = AlexA# "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x22\x00\x22\x00\xff\xff\xff\xff\x20\x00\x26\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5c\x00\xff\xff\xff\xff\xff\xff\x5f\x00\x0a\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x26\x00\x7d\x00\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x0a\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x26\x00\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x0a\x00\x0a\x00\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x22\x00\xff\xff\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\x5c\x00\x5c\x00\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
+alex_check = AlexA# "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x22\x00\x22\x00\xff\xff\xff\xff\x20\x00\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5c\x00\xff\xff\xff\xff\xff\xff\x5f\x00\x0a\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x26\x00\x7d\x00\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x0a\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x26\x00\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x0a\x00\x0a\x00\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\x22\x00\xff\xff\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\x5c\x00\x5c\x00\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
 
 alex_deflt :: AlexAddr
-alex_deflt = AlexA# "\xff\xff\xff\xff\xff\xff\x04\x00\x04\x00\x04\x00\xff\xff\xff\xff\x09\x00\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
+alex_deflt = AlexA# "\xff\xff\xff\xff\x03\x00\x03\x00\x03\x00\xff\xff\xff\xff\x08\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
 
-alex_accept = listArray (0::Int,378) [[],[],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_2))],[],[],[],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_6))],[(AlexAcc (alex_action_7))]]
-{-# LINE 36 "CompositorScriptScanner.x" #-}
+alex_accept = listArray (0::Int,377) [[],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_2))],[],[],[],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_6))],[(AlexAcc (alex_action_7))]]
+{-# LINE 37 "CompositorScriptScanner.x" #-}
 
 -- boilerplate code needed for Alex
 type AlexInput = (Pos, String)
@@ -58,7 +59,7 @@
   = go (initpos, str)
   where
     initpos = Pos 1 1 filename
-    
+
     go inp@(pos, cs)
       = case alexScan inp 0 of
           AlexEOF         -> []
@@ -86,9 +87,9 @@
 -- -----------------------------------------------------------------------------
 -- INTERNALS and main scanner engine
 
-{-# LINE 35 "templates/GenericTemplate.hs" #-}
+{-# LINE 37 "templates/GenericTemplate.hs" #-}
 
-{-# LINE 45 "templates/GenericTemplate.hs" #-}
+{-# LINE 47 "templates/GenericTemplate.hs" #-}
 
 
 data AlexAddr = AlexA# Addr#
@@ -102,10 +103,10 @@
 #ifdef WORDS_BIGENDIAN
   narrow16Int# i
   where
-	i    = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)
-	high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))
-	low  = int2Word# (ord# (indexCharOffAddr# arr off'))
-	off' = off *# 2#
+        i    = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)
+        high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))
+        low  = int2Word# (ord# (indexCharOffAddr# arr off'))
+        off' = off *# 2#
 #else
   indexInt16OffAddr# arr off
 #endif
@@ -173,17 +174,17 @@
 
 				   AlexError input'
 
-	(AlexLastSkip input len, _) ->
+	(AlexLastSkip input'' len, _) ->
 
 
 
-		AlexSkip input len
+		AlexSkip input'' len
 
-	(AlexLastAcc k input len, _) ->
+	(AlexLastAcc k input''' len, _) ->
 
 
 
-		AlexToken input len k
+		AlexToken input''' len k
 
 
 -- Push the input through the DFA, remembering the most recent accepting
@@ -202,12 +203,12 @@
 
 
 	let
-		base   = alexIndexInt32OffAddr alex_base s
-		(I# (ord_c)) = ord c
-		offset = (base +# ord_c)
-		check  = alexIndexInt16OffAddr alex_check offset
+		(base) = alexIndexInt32OffAddr alex_base s
+		((I# (ord_c))) = ord c
+		(offset) = (base +# ord_c)
+		(check)  = alexIndexInt16OffAddr alex_check offset
 		
-		new_s = if (offset >=# 0#) && (check ==# ord_c)
+		(new_s) = if (offset >=# 0#) && (check ==# ord_c)
 			  then alexIndexInt16OffAddr alex_table offset
 			  else alexIndexInt16OffAddr alex_deflt s
 	in
@@ -222,11 +223,11 @@
 	check_accs [] = last_acc
 	check_accs (AlexAcc a : _) = AlexLastAcc a input (I# (len))
 	check_accs (AlexAccSkip : _)  = AlexLastSkip  input (I# (len))
-	check_accs (AlexAccPred a pred : rest)
-	   | pred user orig_input (I# (len)) input
+	check_accs (AlexAccPred a predx : rest)
+	   | predx user orig_input (I# (len)) input
 	   = AlexLastAcc a input (I# (len))
-	check_accs (AlexAccSkipPred pred : rest)
-	   | pred user orig_input (I# (len)) input
+	check_accs (AlexAccSkipPred predx : rest)
+	   | predx user orig_input (I# (len)) input
 	   = AlexLastSkip input (I# (len))
 	check_accs (_ : rest) = check_accs rest
 
diff --git a/Graphics/LambdaCube/Loader/Generated/MaterialScriptScanner.hs b/Graphics/LambdaCube/Loader/Generated/MaterialScriptScanner.hs
# file too large to diff: Graphics/LambdaCube/Loader/Generated/MaterialScriptScanner.hs
diff --git a/Graphics/LambdaCube/Loader/Generated/ResourceScriptScanner.hs b/Graphics/LambdaCube/Loader/Generated/ResourceScriptScanner.hs
--- a/Graphics/LambdaCube/Loader/Generated/ResourceScriptScanner.hs
+++ b/Graphics/LambdaCube/Loader/Generated/ResourceScriptScanner.hs
@@ -1,6 +1,7 @@
-{-# OPTIONS -fglasgow-exts -cpp #-}
+{-# LANGUAGE CPP,MagicHash #-}
 {-# LINE 1 "ResourceScriptScanner.x" #-}
 
+{-# OPTIONS_GHC -w #-}
 -- alex scanner for use with uulib
 --   compile with alex -o Scanner.hs -g Scanner.x
 module Graphics.LambdaCube.Loader.Generated.ResourceScriptScanner(tokenize) where
@@ -26,19 +27,19 @@
 import GlaExts
 #endif
 alex_base :: AlexAddr
-alex_base = AlexA# "\xf8\xff\xff\xff\xfd\xff\xff\xff\x02\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x46\x00\x00\x00\x94\x00\x00\x00\xe2\x00\x00\x00\x30\x01\x00\x00\x7e\x01\x00\x00\xcc\x01\x00\x00\x1a\x02\x00\x00\x68\x02\x00\x00\xb6\x02\x00\x00\x04\x03\x00\x00\x52\x03\x00\x00\xa0\x03\x00\x00\x00\x00\x00\x00\xee\x03\x00\x00"#
+alex_base = AlexA# "\xf8\xff\xff\xff\xfd\xff\xff\xff\x01\x00\x00\x00\x02\x00\x00\x00\x46\x00\x00\x00\x94\x00\x00\x00\xe2\x00\x00\x00\x30\x01\x00\x00\x7e\x01\x00\x00\xcc\x01\x00\x00\x1a\x02\x00\x00\x68\x02\x00\x00\xb6\x02\x00\x00\x04\x03\x00\x00\x52\x03\x00\x00\xa0\x03\x00\x00\x00\x00\x00\x00\xee\x03\x00\x00"#
 
 alex_table :: AlexAddr
-alex_table = AlexA# "\x00\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\x02\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x0e\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x10\x00\x11\x00\x00\x00\x11\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x05\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x06\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x07\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x08\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x09\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x0a\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x0b\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x0c\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x0d\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x05\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x0f\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+alex_table = AlexA# "\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x0d\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x0f\x00\x10\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x04\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x05\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x06\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x07\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x08\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x09\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x0a\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x0b\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x0c\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x04\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x0e\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
 
 alex_check :: AlexAddr
-alex_check = AlexA# "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
+alex_check = AlexA# "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x3d\x00\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
 
 alex_deflt :: AlexAddr
-alex_deflt = AlexA# "\xff\xff\xff\xff\xff\xff\x04\x00\x04\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
+alex_deflt = AlexA# "\xff\xff\xff\xff\x03\x00\x03\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#
 
-alex_accept = listArray (0::Int,18) [[],[],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAcc (alex_action_2))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_4))]]
-{-# LINE 25 "ResourceScriptScanner.x" #-}
+alex_accept = listArray (0::Int,17) [[],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAcc (alex_action_2))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_4))],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_4))]]
+{-# LINE 26 "ResourceScriptScanner.x" #-}
 
 -- boilerplate code needed for Alex
 type AlexInput = (Pos, String)
@@ -58,7 +59,7 @@
   = go (initpos, str)
   where
     initpos = Pos 1 1 filename
-    
+
     go inp@(pos, cs)
       = case alexScan inp 0 of
           AlexEOF         -> []
@@ -83,9 +84,9 @@
 -- -----------------------------------------------------------------------------
 -- INTERNALS and main scanner engine
 
-{-# LINE 35 "templates/GenericTemplate.hs" #-}
+{-# LINE 37 "templates/GenericTemplate.hs" #-}
 
-{-# LINE 45 "templates/GenericTemplate.hs" #-}
+{-# LINE 47 "templates/GenericTemplate.hs" #-}
 
 
 data AlexAddr = AlexA# Addr#
@@ -99,10 +100,10 @@
 #ifdef WORDS_BIGENDIAN
   narrow16Int# i
   where
-	i    = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)
-	high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))
-	low  = int2Word# (ord# (indexCharOffAddr# arr off'))
-	off' = off *# 2#
+        i    = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)
+        high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))
+        low  = int2Word# (ord# (indexCharOffAddr# arr off'))
+        off' = off *# 2#
 #else
   indexInt16OffAddr# arr off
 #endif
@@ -170,17 +171,17 @@
 
 				   AlexError input'
 
-	(AlexLastSkip input len, _) ->
+	(AlexLastSkip input'' len, _) ->
 
 
 
-		AlexSkip input len
+		AlexSkip input'' len
 
-	(AlexLastAcc k input len, _) ->
+	(AlexLastAcc k input''' len, _) ->
 
 
 
-		AlexToken input len k
+		AlexToken input''' len k
 
 
 -- Push the input through the DFA, remembering the most recent accepting
@@ -199,12 +200,12 @@
 
 
 	let
-		base   = alexIndexInt32OffAddr alex_base s
-		(I# (ord_c)) = ord c
-		offset = (base +# ord_c)
-		check  = alexIndexInt16OffAddr alex_check offset
+		(base) = alexIndexInt32OffAddr alex_base s
+		((I# (ord_c))) = ord c
+		(offset) = (base +# ord_c)
+		(check)  = alexIndexInt16OffAddr alex_check offset
 		
-		new_s = if (offset >=# 0#) && (check ==# ord_c)
+		(new_s) = if (offset >=# 0#) && (check ==# ord_c)
 			  then alexIndexInt16OffAddr alex_table offset
 			  else alexIndexInt16OffAddr alex_deflt s
 	in
@@ -219,11 +220,11 @@
 	check_accs [] = last_acc
 	check_accs (AlexAcc a : _) = AlexLastAcc a input (I# (len))
 	check_accs (AlexAccSkip : _)  = AlexLastSkip  input (I# (len))
-	check_accs (AlexAccPred a pred : rest)
-	   | pred user orig_input (I# (len)) input
+	check_accs (AlexAccPred a predx : rest)
+	   | predx user orig_input (I# (len)) input
 	   = AlexLastAcc a input (I# (len))
-	check_accs (AlexAccSkipPred pred : rest)
-	   | pred user orig_input (I# (len)) input
+	check_accs (AlexAccSkipPred predx : rest)
+	   | predx user orig_input (I# (len)) input
 	   = AlexLastSkip input (I# (len))
 	check_accs (_ : rest) = check_accs rest
 
diff --git a/Graphics/LambdaCube/Loader/MaterialScript.hs b/Graphics/LambdaCube/Loader/MaterialScript.hs
--- a/Graphics/LambdaCube/Loader/MaterialScript.hs
+++ b/Graphics/LambdaCube/Loader/MaterialScript.hs
@@ -1,56 +1,35 @@
 {-# LANGUAGE NoMonomorphismRestriction #-}
-module Graphics.LambdaCube.Loader.MaterialScript (loadMaterial,parseMaterial) where
+module Graphics.LambdaCube.Loader.MaterialScript (parseMaterial) where
 
--- import the the library functions from uulib
 import UU.Parsing
 import UU.Scanner
 
-import Data.Maybe
 import Data.Either
 import System.FilePath.Posix
 
-import System.Log.Logger
-
-import Graphics.LambdaCube.Loader.Generated.MaterialScriptScanner
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.Common
 import Graphics.LambdaCube.BlendMode
+import Graphics.LambdaCube.Common
+import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.GpuProgramParams
+import Graphics.LambdaCube.GpuProgramUsage
 import Graphics.LambdaCube.Light
-import Graphics.LambdaCube.PixelFormat
-import Graphics.LambdaCube.RenderSystem
+import Graphics.LambdaCube.Loader.Generated.MaterialScriptScanner
+import Graphics.LambdaCube.Loader.ParserUtil
 import Graphics.LambdaCube.Material
-import Graphics.LambdaCube.Technique
 import Graphics.LambdaCube.Pass
-import Graphics.LambdaCube.TextureUnitState
+import Graphics.LambdaCube.PixelFormat
+import Graphics.LambdaCube.Technique
 import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.GpuProgram
-import Graphics.LambdaCube.GpuProgramUsage
-import Graphics.LambdaCube.GpuProgramParams
-import Graphics.LambdaCube.Loader.ParserUtil
-
-----------------------
--- Boilerplate code --
-----------------------
-{-
-loadMaterial path file = do
-	txt <- readFile file
-	parseMaterial file txt
-
-parseMaterial file txt = parseFile pMaterialScript tokenize file txt
--}
+import Graphics.LambdaCube.TextureUnitState
+import Graphics.LambdaCube.Types
 
-loadMaterial path file = do
-    txt <- readFile file
-    parseMaterial file txt
+parseMaterial :: (Texture t, LinkedGpuProgram lp, GpuProgram p) => String -> String -> IO (Maybe ([Material t lp],[GpuProgramDescriptor p],[GpuProgramDescriptor p]))
+parseMaterial file txt = case parseTokens pMaterialScript (tokenize file txt) of
+    Left errs -> do
+        mapM_ (\m -> putStrLn $ "MaterialScript " ++ m) errs
+        return Nothing
+    Right tree -> return (Just tree)
 
-parseMaterial file txt
-    = let res = parseTokens pMaterialScript (tokenize file txt)
-    in case res of
-        Left errs -> do
-            mapM_ (errorM "MaterialScript") errs
-            return Nothing
-        Right tree -> return (Just tree)
-		
 type TokenParser a = Parser Token a
 
 parseTokens :: TokenParser a -> [Token] -> Either [String] a
@@ -62,13 +41,13 @@
 
 -- * AST definitions
 
--- |Material Script
+-- | Material Script
 data (Texture t, GpuProgram p, LinkedGpuProgram lp) => MS_Attr t p lp
     = MS_material        (Material t lp)
     | MS_vertexprogram   (GpuProgramDescriptor p)
     | MS_fragmentprogram (GpuProgramDescriptor p)
 
--- |Material
+-- | Material
 data (Texture t, LinkedGpuProgram lp) => M_Attr t lp
     = M_technique                (Technique t lp)
     | M_receiveshadows           Bool
@@ -76,7 +55,7 @@
     | M_loddistances             [FloatType]
     | M_settexturealias          String String
 
--- |Technique
+-- | Technique
 data (Texture t, LinkedGpuProgram lp) => T_Attr t lp
     = T_pass                   (Pass t lp)
     | T_scheme                 String
@@ -86,7 +65,7 @@
     | T_gpuvendorrule          IncludeOrExclude String
     | T_gpudevicerule          IncludeOrExclude String Bool
 
--- |Pass
+-- | Pass
 type Colour = Either ColourValue ()
 data Texture t => P_Attr t
     = P_textureunit             (TextureUnitState t)
@@ -132,10 +111,10 @@
     | P_pointsizemin            FloatType
     | P_pointsizemax            FloatType
 
--- |TextureUnit
+-- | TextureUnit
 data TU_Attr
     = TU_texturealias              String
-    
+
     -- texture <texturename> [<type>] [unlimited | numMipMaps] [alpha] [<PixelFormat>] [gamma]
     | TU_texture                   String TextureType TextureMipmap Bool PixelFormat Bool
 
@@ -162,7 +141,7 @@
     | TU_wavexform                 TextureTransformType WaveformType FloatType FloatType FloatType FloatType
     | TU_transform                 FloatType4 FloatType4 FloatType4 FloatType4
 
--- |Texture
+-- | Texture
 data TX_Attr
     = TX_type         TextureType
     | TX_mipmap       TextureMipmap
@@ -170,7 +149,7 @@
     | TX_pixelformat  PixelFormat
     | TX_gamma
 
--- |Shader
+-- | Shader
 data SH_Attr
     = SH_source                     String
     | SH_attach                     [String]
@@ -184,7 +163,7 @@
     | SH_target                     String
     | SH_delegate                   String
     | SH_defaultparams              [PR_Attr]
-    
+
 data PR_Attr
     = PR_paramnamed                 String String [FloatType]
     | PR_paramnamedauto             String AutoConstantType [FloatType]
@@ -193,24 +172,30 @@
 
 -- * Material script top level parser combinators
 
+pMaterialScript :: (GpuProgram p, LinkedGpuProgram lp, Texture t) => AnaParser [Token] Pair Token (Maybe Token) ([Material t lp],[GpuProgramDescriptor p],[GpuProgramDescriptor p])
 pMaterialScript = mkMaterialScript <$> pList pMaterialScriptContent
+
+mkMaterialScript :: (Texture t, LinkedGpuProgram lp, GpuProgram p) => [MS_Attr t p lp] -> ([Material t lp],[GpuProgramDescriptor p],[GpuProgramDescriptor p])
 mkMaterialScript l = (mats,vertprogs,fragprogs)
   where
     mats = [x | MS_material x <- l]
     vertprogs = [x | MS_vertexprogram x <- l]
     fragprogs = [x | MS_fragmentprogram x <- l]
 
+pMaterialScriptContent :: (GpuProgram p, LinkedGpuProgram lp, Texture t) => AnaParser [Token] Pair Token (Maybe Token) (MS_Attr t p lp)
 pMaterialScriptContent =  (MS_material .) . mkMaterial                                          <$= "material" <*> pName <*= "{" <*> pList pMaterialContent <*= "}"
                       <|> ((MS_vertexprogram .) .) . (mkGpuProgramDesc GPT_VERTEX_PROGRAM)      <$= "vertex_program" <*> pName <*> pName <*= "{" <*> pList pProgramContent <*= "}"
                       <|> ((MS_fragmentprogram .) .) . (mkGpuProgramDesc GPT_FRAGMENT_PROGRAM)  <$= "fragment_program" <*> pName <*> pName <*= "{" <*> pList pProgramContent <*= "}"
 
 -- * Material
+pMaterialContent :: (LinkedGpuProgram lp, Texture t) => AnaParser [Token] Pair Token (Maybe Token) (M_Attr t lp)
 pMaterialContent =  (M_technique .) . mkTechnique   <$= "technique" <*> (pName <|> pSucceed "") <*= "{" <*> pList pTechniqueContent <*= "}"
                 <|> M_loddistances                  <$= "lod_distances" <*> pList pFloat
                 <|> M_receiveshadows                <$= "receive_shadows" <*> pOnOff
                 <|> M_transparencycastsshadows      <$= "transparency_casts_shadows" <*> pOnOff
                 <|> M_settexturealias               <$= "set_texture_alias" <*> pName <*> pName
 
+mkMaterial :: (Texture t, LinkedGpuProgram lp) => String -> [M_Attr t lp] -> Material t lp
 mkMaterial name l = Material
     { mtName                     = name
 --    , mtLodDistances             = def []    [x | M_loddistances x <- l]
@@ -226,6 +211,7 @@
     }
 
 -- * Technique
+pTechniqueContent :: (LinkedGpuProgram lp, Texture t) => AnaParser [Token] Pair Token (Maybe Token) (T_Attr t lp)
 pTechniqueContent =  (T_pass .) . mkPass      <$= "pass" <*> (pName <|> pSucceed "") <*= "{" <*> pList pPassContent <*= "}"
                  <|> T_scheme                 <$= "scheme" <*> pName
                  <|> T_lodindex               <$= "lod_index" <*> pInt
@@ -234,6 +220,7 @@
                  <|> T_gpuvendorrule          <$= "gpu_vendor_rule" <*> pEnum ruleopVals <*> pName
                  <|> T_gpudevicerule          <$= "gpu_device_rule" <*> pEnum ruleopVals <*> pName <*> (True <$= "case_sensitive" <|> pSucceed False)
 
+mkTechnique :: (Texture t, LinkedGpuProgram lp) => String -> [T_Attr t lp] -> Technique t lp
 mkTechnique n l = Technique
     -- TODO
     { tchName                   = n
@@ -252,6 +239,7 @@
     }
 
 -- * Pass
+pPassContent :: (Texture t) => AnaParser [Token] Pair Token (Maybe Token) (P_Attr t)
 pPassContent =  (P_textureunit .) . mkTextureUnitState  <$= "texture_unit" <*> (pName <|> pSucceed "") <*= "{" <*> pList pTextureUnitContent <*= "}"
             <|> P_vertexprogramref                      <$= "vertex_program_ref" <*> pName <*= "{" <*> pList pParamContent <*= "}"
             <|> P_fragmentprogramref                    <$= "fragment_program_ref" <*> pName <*= "{" <*> pList pParamContent <*= "}"
@@ -288,16 +276,16 @@
             <|> P_shading                               <$= "shading" <*> pEnum shadingVals
             <|> P_polygonmode                           <$= "polygon_mode" <*> pEnum polymodeVals
             <|> P_polygonmodeoverrideable               <$= "polygon_mode_overrideable" <*> pOnOff
-            
+
             <|> P_fogoverride False                     <$= "fog_override" <*= "false" <*> pSucceed FOG_NONE <*> pSucceed (0,0,0) <*> pSucceed 0 <*> pSucceed 0 <*> pSucceed 0
             <|> P_fogoverride True                      <$= "fog_override" <*= "true" <*> pSucceed FOG_NONE <*> pSucceed (0,0,0) <*> pSucceed 0 <*> pSucceed 0 <*> pSucceed 0
             <|> P_fogoverride True                      <$= "fog_override" <*= "true" <*> (FOG_NONE <$= "none") <*> pSucceed (0,0,0) <*> pSucceed 0 <*> pSucceed 0 <*> pSucceed 0
             <|> P_fogoverride True                      <$= "fog_override" <*= "true" <*> pEnum fogmodeVals <*> pFloat3 <*> pFloat <*> pFloat <*> pFloat
-            
+
             <|> P_colourwrite                           <$= "colour_write" <*> pOnOff
             <|> P_startlight                            <$= "start_light" <*> pInt
             <|> P_maxlights                             <$= "max_lights" <*> pInt
-            
+
             -- Format 1: iteration <once | once_per_light> [lightType]
             -- Format 2: iteration <number> [<per_light> [lightType]]
             -- Format 3: iteration <number> [<per_n_lights> <num_lights> [lightType]]
@@ -306,18 +294,19 @@
             <|> P_iteration 1 (Just 1)                  <$= "iteration" <*= "once_per_light" <*> (Just <$> pEnum lighttypeVals <|> pSucceed Nothing)
             <|> (\n -> P_iteration n (Just 1))          <$= "iteration" <*> pInt <*= "per_light" <*> (Just <$> pEnum lighttypeVals <|> pSucceed Nothing)
             <|> P_iteration                             <$= "iteration" <*> pInt <*= "per_n_light" <*> (Just <$> pInt) <*> (Just <$> pEnum lighttypeVals <|> pSucceed Nothing)
-            <|> P_iteration                             <$= "iteration" <*> pInt <*> pSucceed Nothing <*> pSucceed Nothing 
-            
+            <|> P_iteration                             <$= "iteration" <*> pInt <*> pSucceed Nothing <*> pSucceed Nothing
+
             <|> P_pointsize                             <$= "point_size" <*> pFloat
             <|> P_pointsprites                          <$= "point_sprites" <*> pOnOff
             <|> P_pointsizeattenuation                  <$= "point_size_attenuation" <*> pOnOff <*> (pFloat3 <|> pSucceed (1,0,0))
             <|> P_pointsizemin                          <$= "point_size_min" <*> pFloat
             <|> P_pointsizemax                          <$= "point_size_max" <*> pFloat
 
+mkPass :: (Texture t, LinkedGpuProgram lp) => String -> [P_Attr t] -> Pass t lp
 mkPass n l = Pass
     { psName                     = n
 
-    , psAmbient                  = def (1,1,1,1)            $ lefts $ [x | P_ambient x <- l] 
+    , psAmbient                  = def (1,1,1,1)            $ lefts $ [x | P_ambient x <- l]
     , psDiffuse                  = def (1,1,1,1)            $ lefts $ [x | P_diffuse x <- l]
     , psSpecular                 = def (0,0,0,0)            $ lefts $ [x | P_specular x _ <- l]
     , psEmissive                 = def (0,0,0,0)            $ lefts $ [x | P_emissive x <- l]
@@ -363,7 +352,7 @@
     , psManualCullMode           = def MANUAL_CULL_BACK     [x | P_cullsoftware x <- l]
 
     , psLightingEnabled          = def True                 [x | P_lighting x <- l]
-    , psMaxSimultaneousLights    = def 0                    [x | P_maxlights x <- l]
+    , psMaxSimultaneousLights    = def 8                    [x | P_maxlights x <- l]
     , psStartLight               = def 0                    [x | P_startlight x <- l]
     , psLightsPerIteration       = def Nothing              [x | P_iteration _ x _ <- l]
     , psOnlyLightType            = def Nothing              [x | P_iteration _ _ x <- l]
@@ -403,13 +392,15 @@
 	}
 
 -- * Texture
+pTextureContent :: AnaParser [Token] Pair Token (Maybe Token) TX_Attr
 pTextureContent =  TX_type        <$> pEnum textypeVals
                <|> TX_mipmap      <$> (pKey "unlimited" *> pSucceed MIP_UNLIMITED <|> MIP_NUMBER <$> pInt)
                <|> TX_alpha       <$= "alpha"
                <|> TX_pixelformat <$> pEnum pixelformatVals
                <|> TX_gamma       <$= "gamma"
-               
+
 -- * TextureUnit
+pTextureUnitContent :: AnaParser [Token] Pair Token (Maybe Token) TU_Attr
 pTextureUnitContent =  TU_texturealias      <$= "texture_alias" <*> pName
                     -- Format: texture <texturename> [<type>] [unlimited | numMipMaps] [alpha] [<PixelFormat>] [gamma]
                    <|> mkTU_Texture         <$= "texture" <*> pName <*> pList pTextureContent
@@ -428,37 +419,37 @@
                    <|> TU_contenttype       <$= "content_type" <*> pEnum ctyVals
                    <|> TU_texcoordset       <$= "tex_coord_set" <*> pInt
 
-                   -- Extended Format: tex_address_mode <u_mode> <v_mode> [<w_mode>] 
+                   -- Extended Format: tex_address_mode <u_mode> <v_mode> [<w_mode>]
                    <|> TU_texaddressmode    <$= "tex_address_mode" <*> pEnum texaddressVals <*> pEnum texaddressVals <*> (pEnum texaddressVals <|> pSucceed TAM_WRAP)
-                   -- Simple Format: tex_address_mode <uvw_mode> 
+                   -- Simple Format: tex_address_mode <uvw_mode>
                    <|> (\a -> TU_texaddressmode a a a) <$= "tex_address_mode" <*> pEnum texaddressVals
-                   
+
                    <|> TU_texbordercolour   <$= "tex_border_colour" <*> pRGBOrRGBA 1
 
                    -- Format: filtering <minification> <magnification> <mip>
                    <|> (\a b c -> TU_filtering (a,b,c))  <$= "filtering" <*> pEnum filteringVals <*> pEnum filteringVals <*> pEnum filteringVals
                    -- Format: filtering <none|bilinear|trilinear|anisotropic>
                    <|> TU_filtering         <$= "filtering" <*> pEnum texfilteringVals
-                   
+
                    <|> TU_maxanisotropy     <$= "max_anisotropy" <*> pInt
                    <|> TU_mipmapbias        <$= "mipmap_bias" <*> pFloat
                    <|> TU_colourop          <$= "colour_op" <*> pEnum copVals
-                   
+
                    -- Format: colour_op_ex <operation> <source1> <source2> [<manual_factor>] [<manual_colour1>] [<manual_colour2>]
-                   <|> TU_colouropex        <$= "colour_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pFloat <*> pFloat4 <*> pFloat4 
-                   <|> TU_colouropex        <$= "colour_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pFloat <*> pFloat4 <*> pSucceed (1,1,1,1) 
-                   <|> TU_colouropex        <$= "colour_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pFloat <*> pSucceed (1,1,1,1) <*> pSucceed (1,1,1,1) 
-                   <|> TU_colouropex        <$= "colour_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pSucceed 0 <*> pSucceed (1,1,1,1) <*> pSucceed (1,1,1,1) 
-                   
+                   <|> TU_colouropex        <$= "colour_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pFloat <*> pFloat4 <*> pFloat4
+                   <|> TU_colouropex        <$= "colour_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pFloat <*> pFloat4 <*> pSucceed (1,1,1,1)
+                   <|> TU_colouropex        <$= "colour_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pFloat <*> pSucceed (1,1,1,1) <*> pSucceed (1,1,1,1)
+                   <|> TU_colouropex        <$= "colour_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pSucceed 0 <*> pSucceed (1,1,1,1) <*> pSucceed (1,1,1,1)
+
                    -- Format: colour_op_multipass_fallback <src_factor> <dest_factor>
                    <|> TU_colouropmultipassfallback . convertSBTtoSBF <$= "colour_op_multipass_fallback" <*> pEnum sceneblendVals
                    <|> curry TU_colouropmultipassfallback   <$= "colour_op_multipass_fallback" <*> pEnum blendVals <*> pEnum blendVals
-                   
-                   <|> TU_alphaopex        <$= "alpha_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pFloat <*> pFloat <*> pFloat 
+
+                   <|> TU_alphaopex        <$= "alpha_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pFloat <*> pFloat <*> pFloat
                    <|> TU_alphaopex        <$= "alpha_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pFloat <*> pFloat <*> pSucceed 1
                    <|> TU_alphaopex        <$= "alpha_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pFloat <*> pSucceed 1 <*> pSucceed 1
                    <|> TU_alphaopex        <$= "alpha_op_ex" <*> pEnum layerblendopexVals <*> pEnum layerblendsrcVals <*> pEnum layerblendsrcVals <*> pSucceed 0 <*> pSucceed 1 <*> pSucceed 1
-                   
+
                    -- Format: env_map <off|spherical|planar|cubic_reflection|cubic_normal>
                    <|> TU_envmap            <$= "env_map" <*> pEnum envmapVals
                    <|> TU_scroll            <$= "scroll" <*> pFloat <*> pFloat
@@ -466,7 +457,7 @@
                    <|> TU_rotate            <$= "rotate" <*> pFloat
                    <|> TU_rotateanim        <$= "rotate_anim" <*> pFloat
                    <|> TU_scale             <$= "scale" <*> pFloat <*> pFloat
-                   
+
                    -- Format: wave_xform <xform_type> <wave_type> <base> <frequency> <phase> <amplitude>
                    <|> TU_wavexform         <$= "wave_xform" <*> pEnum xformtypeVals <*> pEnum wavetypeVals <*> pFloat <*> pFloat <*> pFloat <*> pFloat
                    <|> TU_transform         <$= "transform" <*> pFloat4 <*> pFloat4 <*> pFloat4 <*> pFloat4
@@ -482,16 +473,17 @@
     mkTU_cubictexture n True = TU_cubictexture n n n n n n True
     mkTU_cubictexture n False = TU_cubictexture (f n "_fr") (f n "_bk") (f n "_up") (f n "_dn") (f n "_lf") (f n "_rt") False
     -- Format1 (short): anim_texture <base_name> <num_frames> <duration>
-    mkTU_animtexture basename numframes duration = TU_animtexture [f basename $ show i | i <- [0..(numframes-1)]] duration
+    --mkTU_animtexture basename numframes duration = TU_animtexture [f basename $ show i | i <- [0..(numframes-1)]] duration
 
 {-
     -- texture <texturename> [<type>] [unlimited | numMipMaps] [alpha] [<PixelFormat>] [gamma]
     | TU_texture                   String TextureType TextureMipmap Bool PixelFormat Bool
--}    
+-}
+mkTextureUnitState :: (Texture t) => String -> [TU_Attr] -> TextureUnitState t
 mkTextureUnitState n l = TextureUnitState
     { tusAnimDuration               = def Nothing           [Just x | TU_animtexture _ x <- l]
     , tusCubic                      = def False           $ [TEX_TYPE_CUBE_MAP==x | TU_texture _ x _ _ _ _ <- l] ++ [True | TU_cubictexture _ _ _ _ _ _ _ <- l]
-    
+
     , tusTextureType                = def TEX_TYPE_2D     $ [x | TU_texture _ x _ _ _ _ <- l] ++ [TEX_TYPE_CUBE_MAP | TU_cubictexture _ _ _ _ _ _ _ <- l]
     , tusDesiredFormat              = def PF_UNKNOWN        [x | TU_texture _ _ _ _ x _ <- l]
     , tusTextureSrcMipmaps          = def MIP_DEFAULT       [x | TU_texture _ _ x _ _ _ <- l]
@@ -518,7 +510,7 @@
     , tusMinFilter                  = def FO_LINEAR         [x | TU_filtering (x,_,_) <- l]
     , tusMagFilter                  = def FO_LINEAR         [x | TU_filtering (_,x,_) <- l]
     , tusMipFilter                  = def FO_POINT          [x | TU_filtering (_,_,x) <- l]
-    
+
     , tusMaxAniso                   = def 1                 [x | TU_maxanisotropy x <- l]
     , tusMipmapBias                 = def 0                 [x | TU_mipmapbias x <- l]
 
@@ -538,17 +530,15 @@
     animFrames  = concat [x | TU_animtexture x _ <- l]
     cubeFrames  = concat [[a,b,c,d,e,f] | TU_cubictexture a b c d e f _ <- l]
     fallbackop  = case colourop of
-        { LBO_REPLACE       -> [TU_colouropmultipassfallback (SBF_ONE, SBF_ZERO)]
-        ; LBO_ADD           -> [TU_colouropmultipassfallback (SBF_ONE, SBF_ONE)]
-        ; LBO_MODULATE      -> [TU_colouropmultipassfallback (SBF_DEST_COLOUR, SBF_ZERO)]
-        ; LBO_ALPHA_BLEND   -> [TU_colouropmultipassfallback (SBF_SOURCE_ALPHA, SBF_ONE_MINUS_SOURCE_ALPHA)]
-        }
+        LBO_REPLACE       -> [TU_colouropmultipassfallback (SBF_ONE, SBF_ZERO)]
+        LBO_ADD           -> [TU_colouropmultipassfallback (SBF_ONE, SBF_ONE)]
+        LBO_MODULATE      -> [TU_colouropmultipassfallback (SBF_DEST_COLOUR, SBF_ZERO)]
+        LBO_ALPHA_BLEND   -> [TU_colouropmultipassfallback (SBF_SOURCE_ALPHA, SBF_ONE_MINUS_SOURCE_ALPHA)]
     colouropex  = case colourop of
-        { LBO_REPLACE       -> [TU_colouropex LBX_SOURCE1               LBS_TEXTURE LBS_CURRENT 0 white white]
-        ; LBO_ADD           -> [TU_colouropex LBX_ADD                   LBS_TEXTURE LBS_CURRENT 0 white white]
-        ; LBO_MODULATE      -> [TU_colouropex LBX_MODULATE              LBS_TEXTURE LBS_CURRENT 0 white white]
-        ; LBO_ALPHA_BLEND   -> [TU_colouropex LBX_BLEND_TEXTURE_ALPHA   LBS_TEXTURE LBS_CURRENT 0 white white]
-        }
+        LBO_REPLACE       -> [TU_colouropex LBX_SOURCE1               LBS_TEXTURE LBS_CURRENT 0 white white]
+        LBO_ADD           -> [TU_colouropex LBX_ADD                   LBS_TEXTURE LBS_CURRENT 0 white white]
+        LBO_MODULATE      -> [TU_colouropex LBX_MODULATE              LBS_TEXTURE LBS_CURRENT 0 white white]
+        LBO_ALPHA_BLEND   -> [TU_colouropex LBX_BLEND_TEXTURE_ALPHA   LBS_TEXTURE LBS_CURRENT 0 white white]
     cblendmode  = LayerBlendModeEx
         { lbBlendType  = LBT_COLOUR
         , lbOperation  = LBX_MODULATE
@@ -571,56 +561,25 @@
         , lbAlphaArg2  = 1
         , lbFactor     = 0
         }
-    mkEffect e  = case e of 
-        { TU_envmap _   -> Just $ TextureEffect
-            { teType        = ET_ENVIRONMENT_MAP
-            , teSubType     = 0
-            , teArg1        = 0
-            , teArg2        = 0
-            , teWaveType    = WFT_SINE
-            , teBase        = 0
-            , teFrequency   = 0
-            , tePhase       = 0
-            , teAmplitude   = 0
-            }
---        ; TU_scrollanim
---        ; TU_rotateanim
---        ; TU_wavexform
---        ; TU_transform
-        ; _ -> Nothing
-        }
-    {-
-    void TextureUnitState::setEnvironmentMap(bool enable, EnvMapType envMapType)
-    {
-        if (enable)
-        {
-            TextureEffect eff;
-            eff.type = ET_ENVIRONMENT_MAP;
-
-            eff.subtype = envMapType;
-            addEffect(eff);
-        }
-        else
-        {
-            removeEffect(ET_ENVIRONMENT_MAP);
-        }
-    }
-							case ScriptCompiler::ID_OFF:
-								mUnit->setEnvironmentMap(false);
-								break;
-							case ID_SPHERICAL:
-								mUnit->setEnvironmentMap(true, TextureUnitState::ENV_CURVED);
-								break;
-							case ID_PLANAR:
-								mUnit->setEnvironmentMap(true, TextureUnitState::ENV_PLANAR);
-								break;
-							case ID_CUBIC_REFLECTION:
-								mUnit->setEnvironmentMap(true, TextureUnitState::ENV_REFLECTION);
-								break;
-							case ID_CUBIC_NORMAL:
-								mUnit->setEnvironmentMap(true, TextureUnitState::ENV_NORMAL);
-								break;
+    mkEffect e  = case e of
+        TU_envmap _   -> Just $ TextureEffect
+          { teType        = ET_ENVIRONMENT_MAP
+          , teSubType     = 0
+          , teArg1        = 0
+          , teArg2        = 0
+          , teWaveType    = WFT_SINE
+          , teBase        = 0
+          , teFrequency   = 0
+          , tePhase       = 0
+          , teAmplitude   = 0
+          }
+--      TU_scrollanim
+--      TU_rotateanim
+--      TU_wavexform
+--      TU_transform
+        _ -> Nothing
 
+{-
     | TU_envmap                    (Maybe EnvMapType)
     | TU_scrollanim                FloatType FloatType
     | TU_rotateanim                FloatType
@@ -638,9 +597,11 @@
     , tePhase       :: FloatType
     , teAmplitude   :: FloatType
     }
-    -}
+-}
 
 -- * Shaders
+
+pProgramContent :: AnaParser [Token] Pair Token (Maybe Token) SH_Attr
 pProgramContent =  SH_source                    <$= "source" <*> pName
                <|> SH_attach                    <$= "attach" <*> pList pName
                <|> SH_includesskeletalanimation <$= "includes_skeletal_animation" <*> pBool
@@ -668,13 +629,18 @@
 --("int"      , 1 , pInt)
 --[("float" ++ show i,i,pFloat) | i <- [1..32]]
 --[("int" ++ show i,i,pInt) | i <- [1..32]]
+
+autoparamVals :: [(String, AutoConstantType)]
 autoparamVals = [(n,v) | (v,n,_,_,_) <- autoConstantDictionary]
+
+pParamContent :: AnaParser [Token] Pair Token (Maybe Token) PR_Attr
 pParamContent =  PR_paramnamed       <$= "param_named" <*> pName <*> pVarid <*> pList pFloat
              <|> PR_paramnamedauto   <$= "param_named_auto" <*> pName <*> pEnum autoparamVals <*> pList pFloat
              <|> PR_paramindexed     <$= "param_indexed" <*> pInt <*> pVarid <*> pList pFloat
              <|> PR_paramindexedauto <$= "param_indexed_auto" <*> pInt <*> pEnum autoparamVals <*> pList pFloat
 
 
+mkGpuProgramDesc :: (GpuProgram p) => GpuProgramType -> String -> String -> [SH_Attr] -> GpuProgramDescriptor p
 mkGpuProgramDesc t name s l = GpuProgramDescriptor
     { gpdName               = name
     , gpdType               = t
@@ -688,25 +654,5 @@
     , gpdNeedsAdjacencyInfo = def False             [x | SH_usesadjacencyinformation x <- l]
 --    , gpdDefaultParams      :: GpuProgramParameters -- ^ The default parameters for use with this object
 --    , gpdCompileError       = False
-    
     , gpdGpuProgram         = Nothing
     }
-
-{-
-fragment_program is same:
-vertex_program myExteranalGLSLFunction1 glsl
-{
-    source myExternalGLSLfunction1.txt
-
-	default_params
-	{
-		param_named_auto lightPosition light_position_object_space 0
-		param_named_auto eyePosition camera_position_object_space
-		param_named_auto worldViewProj worldviewproj_matrix
-		param_named shininess float 10 
-	}
-
-	preprocessor_defines CLEVERTECHNIQUE,NUMTHINGS=2
-    attach myExteranalGLSLFunction1 myExteranalGLSLFunction2
-}
--}
diff --git a/Graphics/LambdaCube/Loader/MaterialScriptScanner.x b/Graphics/LambdaCube/Loader/MaterialScriptScanner.x
--- a/Graphics/LambdaCube/Loader/MaterialScriptScanner.x
+++ b/Graphics/LambdaCube/Loader/MaterialScriptScanner.x
@@ -1,4 +1,5 @@
 {
+{-# OPTIONS_GHC -w #-}
 -- alex scanner for use with uulib
 --   compile with alex -o Scanner.hs -g Scanner.x
 module Graphics.LambdaCube.Loader.Generated.MaterialScriptScanner(tokenize) where
@@ -17,47 +18,47 @@
   \" ($litChar | \\ \\ | \\ \" )* \"           { valueToken TkString }         -- string
   (\+ | \-)?[0-9]+                             { valueToken TkInteger10 }      -- int
   (\+ | \-)?[0-9]+\.[0-9]+                     { valueToken TkFraction }       -- float
-  
-  ( 
+
+  (
     on | off | true | false | force |
     material | technique | pass | texture_unit |
     lod_distances | receive_shadows | transparency_casts_shadows | set_texture_alias |
-    scheme | lod_index | lod_distances | shadow_caster_material | shadow_receiver_material | 
+    scheme | lod_index | lod_distances | shadow_caster_material | shadow_receiver_material |
     gpu_vendor_rule | gpu_device_rule | include | exclude | case_sensitive |
     ambient | vertexcolour | diffuse | specular | emissive | scene_blend |
     add | modulate | alpha_blend | colour_blend |
     one | zero | dest_colour | src_colour | one_minus_dest_colour | one_minus_src_colour | dest_alpha | src_alpha | one_minus_dest_alpha | one_minus_src_alpha |
-    separate_scene_blend | depth_check | depth_write | depth_func | 
+    separate_scene_blend | depth_check | depth_write | depth_func |
     always_fail | always_pass | less | less_equal | equal | not_equal | greater_equal | greater |
     depth_bias | iteration_depth_bias | alpha_rejection | alpha_to_coverage | light_scissor | light_clip_planes |
     illumination_stage | per_light | decal | normalise_normals | transparent_sorting | cull_hardware |
-    clockwise | anticlockwise | none | cull_software | back | front | lighting | shading | 
+    clockwise | anticlockwise | none | cull_software | back | front | lighting | shading |
     flat | gouraud | phong | polygon_mode | solid | wireframe | points |
     polygon_mode_overrideable | fog_override | exp | exp2 | colour_write | start_light | max_lights | iteration |
-    once | once_per_light | directional | spot | point_size | point_sprites | point_size_attenuation | 
-    point_size_min | point_size_max | texture_alias | texture | unlimited | alpha | gamma | 
+    once | once_per_light | directional | spot | point_size | point_sprites | point_size_attenuation |
+    point_size_min | point_size_max | texture_alias | texture | unlimited | alpha | gamma |
     1d | 2d | 3d | cubic |
     PF_L8 | PF_L16 | PF_A8 | PF_A4L4 | PF_BYTE_LA | PF_R5G6B5 | PF_B5G6R5 | PF_R3G3B2 | PF_A4R4G4B4 | PF_A1R5G5B5 | PF_R8G8B8 | PF_B8G8R8 | PF_A8R8G8B8 | PF_A8B8G8R8 | PF_B8G8R8A8 |
     PF_R8G8B8A8 | PF_X8R8G8B8 | PF_X8B8G8R8 | PF_A2R10G10B10 | PF_A2B10G10R10 | PF_FLOAT16_R | PF_FLOAT16_RGB | PF_FLOAT16_RGBA | PF_FLOAT32_R | PF_FLOAT32_RGB | PF_FLOAT32_RGBA | PF_SHORT_RGBA |
     anim_texture | cubic_texture | combinedUVW | separateUV | binding_type | vertex | fragment | content_type | named | shadow |
     tex_coord_set | tex_address_mode | wrap | clamp | mirror | border | tex_border_colour | filtering | bilinear | trilinear | anisotropic | linear | point |
     max_anisotropy | mipmap_bias | colour_op | replace | colour_op_ex | source1 | source2 | modulate_x2 | modulate_x4 |
-    add_signed | add_smooth | subtract | blend_diffuse_alpha | blend_texture_alpha | blend_current_alpha | 
+    add_signed | add_smooth | subtract | blend_diffuse_alpha | blend_texture_alpha | blend_current_alpha |
     blend_manual | dotproduct | blend_diffuse_colour | src_current | src_texture | src_diffuse | src_specular | src_manual |
     colour_op_multipass_fallback | alpha_op_ex | env_map | spherical | planar | cubic_reflection | cubic_normal |
     scroll | scroll_anim | rotate | rotate_anim | scale | wave_xform | scroll_x | scroll_y | scale_x | scale_y |
     sine | triangle | square | sawtooth | inverse_sawtooth | transform |
-    scene_blend_op | reverse_subtract | min | max | separate_scene_blend_op | 
+    scene_blend_op | reverse_subtract | min | max | separate_scene_blend_op |
     keep |  increment | decrement | increment_wrap | decrement_wrap | invert |
-    
+
     vertex_program | fragment_program | source | syntax | attach | manual_named_constants | profiles | entry_point |
-    target | preprocessor_defines | column_major_matrices | 
-    input_operation_type | output_operation_type | max_output_vertices | 
-    delegate | vertex_program_ref |fragment_program_ref | shadow_caster_vertex_program_ref | shadow_receiver_vertex_program_ref | shadow_receiver_fragment_program_ref | 
-    default_params | param_named_auto | param_named | param_indexed_auto | param_indexed | 
+    target | preprocessor_defines | column_major_matrices |
+    input_operation_type | output_operation_type | max_output_vertices |
+    delegate | vertex_program_ref |fragment_program_ref | shadow_caster_vertex_program_ref | shadow_receiver_vertex_program_ref | shadow_receiver_fragment_program_ref |
+    default_params | param_named_auto | param_named | param_indexed_auto | param_indexed |
     includes_skeletal_animation | includes_morph_animation | includes_pose_animation | uses_vertex_texture_fetch | uses_adjacency_information |
     world_matrix | inverse_world_matrix | transpose_world_matrix | inverse_transpose_world_matrix | world_matrix_array_3x4 | view_matrix |
-    inverse_view_matrix | transpose_view_matrix | inverse_transpose_view_matrix | projection_matrix | inverse_projection_matrix | 
+    inverse_view_matrix | transpose_view_matrix | inverse_transpose_view_matrix | projection_matrix | inverse_projection_matrix |
     transpose_projection_matrix | inverse_transpose_projection_matrix | worldview_matrix | inverse_worldview_matrix | transpose_worldview_matrix |
     inverse_transpose_worldview_matrix | viewproj_matrix | inverse_viewproj_matrix | transpose_viewproj_matrix | inverse_transpose_viewproj_matrix |
     worldviewproj_matrix | inverse_worldviewproj_matrix | transpose_worldviewproj_matrix | inverse_transpose_worldviewproj_matrix |
@@ -73,13 +74,13 @@
     fog_colour | fog_params | camera_position | camera_position_object_space | lod_camera_position | lod_camera_position_object_space | time |
     time_0_x | costime_0_x | sintime_0_x | tantime_0_x | time_0_x_packed | time_0_1 | costime_0_1 | sintime_0_1 | tantime_0_1 | time_0_1_packed |
     time_0_2pi | costime_0_2pi | sintime_0_2pi | tantime_0_2pi | time_0_2pi_packed | frame_time | fps | viewport_width | viewport_height |
-    inverse_viewport_width | inverse_viewport_height | viewport_size | texel_offsets | view_direction | view_side_vector | view_up_vector |    
+    inverse_viewport_width | inverse_viewport_height | viewport_size | texel_offsets | view_direction | view_side_vector | view_up_vector |
     fov | near_clip_distance | far_clip_distance | texture_viewproj_matrix | texture_viewproj_matrix_array | texture_worldviewproj_matrix |
     texture_worldviewproj_matrix_array | spotlight_viewproj_matrix | spotlight_worldviewproj_matrix | scene_depth_range | shadow_scene_depth_range |
     shadow_colour | shadow_extrusion_distance | texture_size | inverse_texture_size | packed_texture_size | pass_number | pass_iteration_number |
-    animation_parametric | custom 
+    animation_parametric | custom
     )            { reserved }                    -- reserved keywords
-    
+
   [\{\}]                                       { reserved }                    -- reserved symbols
 
   $identChar+                                  { valueToken TkVarid }          -- identifier
@@ -104,7 +105,7 @@
   = go (initpos, str)
   where
     initpos = Pos 1 1 filename
-    
+
     go inp@(pos, cs)
       = case alexScan inp 0 of
           AlexEOF         -> []
diff --git a/Graphics/LambdaCube/Loader/MeshXML.hs b/Graphics/LambdaCube/Loader/MeshXML.hs
--- a/Graphics/LambdaCube/Loader/MeshXML.hs
+++ b/Graphics/LambdaCube/Loader/MeshXML.hs
@@ -1,60 +1,45 @@
 module Graphics.LambdaCube.Loader.MeshXML where
 
-import Data.Maybe
 import Data.List
+import Data.Maybe
 import Data.Word
-import qualified Data.IntMap as IntMap
-import Foreign.Ptr
 import Foreign.C.Types
 import Foreign.Marshal.Array
+import Foreign.Ptr
+import qualified Data.IntMap as IntMap
 
 import Text.XML.Light
-import System.Log.Logger
 
-import Graphics.LambdaCube.Mesh
 import Graphics.LambdaCube.HardwareBuffer
-import Graphics.LambdaCube.HardwareVertexBuffer
 import Graphics.LambdaCube.HardwareIndexBuffer
-import Graphics.LambdaCube.RenderSystem
+import Graphics.LambdaCube.HardwareVertexBuffer
+import Graphics.LambdaCube.Mesh
 import Graphics.LambdaCube.RenderOperation
+import Graphics.LambdaCube.RenderSystem
+import Graphics.LambdaCube.Types
 import Graphics.LambdaCube.VertexIndexData
 
-
-{-
-data MeshReader
-    = MeshReader
-    { mrInfo          :: String
-    , mrFileExtension :: String
-    , mrReadFunction  :: ByteString -> IO Mesh
-    }
-    
-meshReader = MeshReader
-    { mrInfo = "Ogre XML mesh reader"
-    , mrFileExtension = "xml"
-    , mrReadFunction = parseMesh
-    }
--}
-
--- Load Mesh XML
 readBool :: String -> Bool -> Element -> Bool
 readBool n v e = maybe v (=="true") $ findAttr (unqual n) e
-        
+
 readInt :: String -> Int -> Element -> Int
 readInt n v e = maybe v read $ findAttr (unqual n) e
 
+readFloatType :: String -> FloatType -> Element -> FloatType
+readFloatType n v e = maybe v read $ findAttr (unqual n) e
+
 readStr :: String -> String -> Element -> String
 readStr n v e = fromMaybe v $ findAttr (unqual n) e
 
-{-
-data VertexElement
-    = VertexElement
-    { veSource      :: Int                      -- ^ The source vertex buffer, as bound to an index using VertexBufferBinding
-    , veOffset      :: Int                      -- ^ The offset in the buffer that this element starts at
-    , veType        :: VertexElementType        -- ^ The type of element
-    , veSemantic    :: VertexElementSemantic    -- ^ The meaning of the element
-    , veIndex       :: Int                      -- ^ Index of the item, only applicable for some elements like texture coords
-    }
--}
+readBoneAssignments :: Element -> ([Int],[FloatType])
+readBoneAssignments ba = unzip $ [(i,w) | (_,i,w) <- sortBy mycmp $ foldl' readAssignment [] $ findElements (unqual "vertexboneassignment") ba]
+  where
+    mycmp (a,_,_) (b,_,_) = a `compare` b
+    readAssignment l e = (v,i,w):l
+      where
+        w = readFloatType "weight" 1 e
+        i = readInt "boneindex" 0 e
+        v = readInt "vertexindex" 0 e
 
 readDecl :: (Element,Int) -> [VertexElement]
 readDecl (x,n) = [v { veIndex = i } | (v,i) <- zip declList $ reverse indexList]
@@ -68,18 +53,18 @@
     dimTangents  = readInt  "tangent_dimensions" 3 x
     numTexCoords = readInt  "texture_coords"     0 x
     dimTexCoords = [readInt ("texture_coord_dimensions_" ++ show (i-1)) 2 x | i <- [1..numTexCoords]]
-    
+
     mColourElementType = VET_COLOUR_ABGR
-    
-    f a b       = if a then [b] else [] 
-    
+
+    f a b       = if a then [b] else []
+
     l           = [ f hasPositions (VET_FLOAT3, VES_POSITION)
                   , f hasNormals   (VET_FLOAT3, VES_NORMAL)
                   , f hasTangents  (if dimTangents == 4 then VET_FLOAT4 else VET_FLOAT3, VES_TANGENT)
                   , f hasBinormals (VET_FLOAT3, VES_BINORMAL)
                   , f hasDiffuse   (mColourElementType, VES_DIFFUSE)
                   , f hasSpecular  (mColourElementType, VES_SPECULAR)
-                  ] ++ 
+                  ] ++
                   [[(multiplyTypeCount VET_FLOAT1 dims,VES_TEXTURE_COORDINATES)] | dims <- dimTexCoords]
     l'          = concat l
     offs        = scanl (\a (b,_) -> a + getTypeSize b) 0 l'
@@ -91,8 +76,9 @@
                     }
       where
         semIdx  = fromEnum $ veSemantic e
-    
---readGeometry :: RenderSystem rs => rs -> Element -> IO VertexData
+
+-- TODO: use vector vbs
+readGeometry :: (RenderSystem rs vb ib q t p lp) => rs -> Element -> IO (VertexData vb)
 readGeometry rs x = do
     let vcount = read $ fromMaybe (error "fromJust 0") $ findAttr (unqual "vertexcount") x
         vbs = findElements (unqual "vertexbuffer") x
@@ -102,76 +88,75 @@
         decl = VertexDeclaration $ concat elems
         -- create VertexBufferBinding
         usage = HBU_STATIC -- TODO
-    
-    debugM "readGeometry" $ "gemetry declaration: " ++ show elems
-    
+
+    --debugM "readGeometry" $ "gemetry declaration: " ++ show elems
+
     bufs <- mapM (\s -> createVertexBuffer rs s vcount usage True) sizes
     let binding = VertexBufferBinding $ IntMap.fromList $ zip [0..] bufs
-        fillBuffer (d,vx,b) = do
+        fillBuffer (d,vex,b) = do
             -- 1. lock buffer
             ptr <- lock b 0 (getSizeInBytes b) HBL_NORMAL
             let fillVertex (i,vx) = do
                     -- iterate over elements and read data from xml subelement
                     let fillAttribute e = do
                             let p = plusPtr ptr (i * (getVertexSize b) + veOffset e)
-                                setCFloatAttr :: String -> [String] -> IO () 
+                                setCFloatAttr :: String -> [String] -> IO ()
                                 setCFloatAttr en ea = pokeArray p $ getCFloat ((findElements (unqual en) vx ) !! veIndex e) ea
-                        
+
                                 setColourAttr :: String -> IO ()
                                 setColourAttr en = pokeArray p $ getColour ((findElements (unqual en) vx ) !! veIndex e)
-                        
+
                                 getCFloat :: Element -> [String] -> [CFloat]
                                 getCFloat xn ll = map ef ll
-                                  where 
+                                  where
                                     ef nm = read $ fromMaybe (error "fromJust 1") $ findAttr (unqual nm) xn
-                            
+
                                 getColour :: Element -> [Word8]
                                 getColour xn = if length values == 4 then values else 1:values
-                                  where 
+                                  where
                                     values = map read $ words $ fromMaybe (error "fromJust 2") $ findAttr (unqual "value") xn
-                            
+
                             case veSemantic e of
-                                { VES_POSITION              -> setCFloatAttr "position" ["x","y","z"]
-                                ; VES_BLEND_WEIGHTS         -> error "invalid semantic"
-                                ; VES_BLEND_INDICES         -> error "invalid semantic"
-                                ; VES_NORMAL                -> setCFloatAttr "normal" ["x","y","z"]
-                                ; VES_DIFFUSE               -> setColourAttr "colour_diffuse"
-                                ; VES_SPECULAR              -> setColourAttr "colour_specular"
-                                ; VES_TEXTURE_COORDINATES   -> setCFloatAttr "texcoord" $ take (getTypeCount $ veType e) ["u","v","w","x"]
-                                ; VES_BINORMAL              -> setCFloatAttr "binormal" ["x","y","z"]
-                                ; VES_TANGENT               -> setCFloatAttr "tangent" $ if veType e == VET_FLOAT4 then ["x","y","z","w"] else ["x","y","z"]
-                                }
+                                VES_POSITION              -> setCFloatAttr "position" ["x","y","z"]
+                                VES_BLEND_WEIGHTS         -> error "invalid semantic"
+                                VES_BLEND_INDICES         -> error "invalid semantic"
+                                VES_NORMAL                -> setCFloatAttr "normal" ["x","y","z"]
+                                VES_DIFFUSE               -> setColourAttr "colour_diffuse"
+                                VES_SPECULAR              -> setColourAttr "colour_specular"
+                                VES_TEXTURE_COORDINATES   -> setCFloatAttr "texcoord" $ take (getTypeCount $ veType e) ["u","v","w","x"]
+                                VES_BINORMAL              -> setCFloatAttr "binormal" ["x","y","z"]
+                                VES_TANGENT               -> setCFloatAttr "tangent" $ if veType e == VET_FLOAT4 then ["x","y","z","w"] else ["x","y","z"]
                             -- end fillAttribute
-                            
+
                     mapM_ fillAttribute d
                     -- end fillVertex
-                    
+
             -- 2. fill n-th vertex attributes according declaration
-            mapM_ fillVertex $ zip [0..] $ findElements (unqual "vertex") vx
+            mapM_ fillVertex $ zip [0..] $ findElements (unqual "vertex") vex
             -- 3. unlock buffer
             unlock b
             -- end fillBuffer
-            
+
     -- fill buffers with data
     mapM_ fillBuffer $ zip3 elems vbs bufs
-    
+
     -- create VertexData
     return $ VertexData decl binding 0 vcount
-    
---readSubMesh :: RenderSystem rs => rs -> Element -> IO SubMesh
+
+readSubMesh :: (RenderSystem rs vb ib q t p lp) => rs -> Element -> IO (SubMesh vb ib)
 readSubMesh rs x = do
     let Just material   = findAttr (unqual "material") x
         useShared       = readBool "usesharedvertices"  True    x
         use32BitIndex   = readBool "use32bitindexes"    False   x
         (hasFaces,oper) = readOpType $ readStr  "operationtype" "triangle_list" x
         readOpType o    = case o of
-                            { "triangle_list"   -> (True,  OT_TRIANGLE_LIST)
-                            ; "triangle_strip"  -> (True,  OT_TRIANGLE_STRIP)
-                            ; "triangle_fan"    -> (True,  OT_TRIANGLE_FAN)
-                            ; "line_strip"      -> (False, OT_LINE_STRIP)
-                            ; "line_list"       -> (False, OT_LINE_LIST)
-                            ; "point_list"      -> (False, OT_POINT_LIST)
-                            }
+            "triangle_list"   -> (True,  OT_TRIANGLE_LIST)
+            "triangle_strip"  -> (True,  OT_TRIANGLE_STRIP)
+            "triangle_fan"    -> (True,  OT_TRIANGLE_FAN)
+            "line_strip"      -> (False, OT_LINE_STRIP)
+            "line_list"       -> (False, OT_LINE_LIST)
+            "point_list"      -> (False, OT_POINT_LIST)
+            _                 -> error "Invalid mesh format!"
 
     midata <- if not hasFaces then return Nothing else do
         let Just faces      = findElement (unqual "faces") x
@@ -184,18 +169,18 @@
             indexList gf    = concat $ [gf (head faceList) ["v1", "v2", "v3"]] ++ [gf f attrList | f <- tail faceList]
             getWord16 :: Element -> [String] -> [Word16]
             getWord16 xn ll = map ef ll
-              where 
+              where
                 ef nm = read $ fromMaybe (error "fromJust 3") $ findAttr (unqual nm) xn
 
             getWord32 :: Element -> [String] -> [Word32]
             getWord32 xn ll = map ef ll
-              where 
+              where
                 ef nm = read $ fromMaybe (error "fromJust 4") $ findAttr (unqual nm) xn
-    
+
         -- create IndexData
         ib <- createIndexBuffer rs (if use32BitIndex then IT_32BIT else IT_16BIT) indexCount usage True
         -- 1. lock buffer
-        ptr <- lock ib 0 (getSizeInBytes ib) HBL_NORMAL 
+        ptr <- lock ib 0 (getSizeInBytes ib) HBL_NORMAL
         -- 2. fill buffer
         case use32BitIndex of
             { True  -> pokeArray (castPtr ptr) $ indexList getWord32
@@ -211,56 +196,35 @@
 
     -- read geometry if necessary
     mvdata <- if useShared then return Nothing else do
-        vd <- readGeometry rs $ fromMaybe (error "fromJust 5") $ findElement (unqual "geometry") x 
+        vd <- readGeometry rs $ fromMaybe (error "fromJust 5") $ findElement (unqual "geometry") x
         return $ Just vd
 
     return $ SubMesh
         { smOperationType       = oper
         , smVertexData          = mvdata
         , smIndexData           = midata
-        , smExtremityPoints     = undefined -- TODO
         , smMaterialName        = material
         }
 
-{-
-    <levelofdetail strategy="Distance" numlevels="6" manual="false">
-        <lodgenerated value="1000">
-            <lodfacelist submeshindex="0" numfaces="60">
-                <face v1="1" v2="2" v3="6" />
--}
---readMesh :: RenderSystem rs => rs -> Element -> IO Mesh
+readMesh :: (RenderSystem rs vb ib q t p lp) => rs -> Element -> IO (Mesh vb ib)
 readMesh rs x = do
     let Just sml = findElement (unqual "submeshes") x
     submeshes <- mapM (readSubMesh rs) $ findElements (unqual "submesh") sml
     sharedVDs <- mapM (readGeometry rs) $ findElements (unqual "sharedgeometry") x
-    return $ Mesh 
-        { msSubMeshList                 = submeshes
-        , msSharedVertexData            = listToMaybe sharedVDs
-        , msSubMeshNameMap              = undefined -- TODO
-        , msBoundRadius                 = undefined -- TODO
-        , msSkeletonName                = undefined -- TODO
-        , msVertexBufferUsage           = undefined -- TODO
-        , msIndexBufferUsage            = undefined -- TODO
-        , msVertexBufferShadowBuffer    = undefined -- TODO
-        , msIndexBufferShadowBuffer     = undefined -- TODO
-        }
-{-
-    -- load LOD data
-    e a n = read $ fromMaybe (error "fromJust 0") $ findAttr (unqual n) a
-    lods = [ (getLod m) | m <- findElements (unqual "levelofdetail") x ]
-    -- <lodgenerated value="1000">
-    getLod a = [ (e m "value" ,getLodLevel m) | m <- findElements (unqual "lodgenerated") a ]
-    -- <lodfacelist submeshindex="0" numfaces="60">
-    getLodLevel a = [ (e m "submeshindex", e m "numfaces", getLodFaces m) | m <- findElements (unqual "lodfacelist") a ]
-    -- <face v1="1" v2="2" v3="6" />
-    getLodFaces a = [ (getFace m) | m <- findElements (unqual "face") a ]
--}
---parseMesh :: RenderSystem rs => rs -> String -> IO Mesh
-parseMesh rs doc = do 
+    let mesh = Mesh
+            { msSubMeshList                 = submeshes
+            , msSharedVertexData            = listToMaybe sharedVDs
+            , msBoundRadius                 = 0
+            }
+    r <- calculateBoundingRadius mesh
+    return mesh { msBoundRadius = r }
+
+parseMesh :: (RenderSystem rs vb ib q t p lp) => rs -> String -> IO (Mesh vb ib)
+parseMesh rs doc = do
     let Just x = parseXMLDoc doc
     readMesh rs $ fromMaybe (error "fromJust 6") $ findElement (unqual "mesh") x
 
---loadMesh :: RenderSystem rs => rs -> String -> IO Mesh
+loadMesh :: (RenderSystem rs vb ib q t p lp) => rs -> FilePath -> IO (Mesh vb ib)
 loadMesh rs fileName = do
     doc <- readFile fileName
     parseMesh rs doc
diff --git a/Graphics/LambdaCube/Loader/OverlayScriptScanner.x b/Graphics/LambdaCube/Loader/OverlayScriptScanner.x
--- a/Graphics/LambdaCube/Loader/OverlayScriptScanner.x
+++ b/Graphics/LambdaCube/Loader/OverlayScriptScanner.x
@@ -1,4 +1,5 @@
 {
+{-# OPTIONS_GHC -w #-}
 -- alex scanner for use with uulib
 --   compile with alex -o Scanner.hs -g Scanner.x
 module Graphics.LambdaCube.Loader.Generated.OverlayScriptScanner(tokenize) where
@@ -16,7 +17,7 @@
 
   \" ($litChar | \\ \\ | \\ \" )* \"           { valueToken TkString }         -- string
   [0-9]+                                       { valueToken TkInteger16 }      -- int
-  
+
   ( zorder | element | container |
     metrics_mode | pixels | relative |
     horz_align | left | center | right |
@@ -58,7 +59,7 @@
   = go (initpos, str)
   where
     initpos = Pos 1 1 filename
-    
+
     go inp@(pos, cs)
       = case alexScan inp 0 of
           AlexEOF         -> []
diff --git a/Graphics/LambdaCube/Loader/ParserUtil.hs b/Graphics/LambdaCube/Loader/ParserUtil.hs
--- a/Graphics/LambdaCube/Loader/ParserUtil.hs
+++ b/Graphics/LambdaCube/Loader/ParserUtil.hs
@@ -1,49 +1,29 @@
 {-# LANGUAGE FlexibleContexts #-}
 module Graphics.LambdaCube.Loader.ParserUtil where
 
--- import the the library functions from uulib
 import UU.Parsing
 import UU.Scanner
 
-import Data.Maybe
-
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.Common
 import Graphics.LambdaCube.BlendMode
+import Graphics.LambdaCube.Common
+import Graphics.LambdaCube.Compositor
+import Graphics.LambdaCube.Light
+import Graphics.LambdaCube.Pass
 import Graphics.LambdaCube.PixelFormat
 import Graphics.LambdaCube.RenderSystem
 import Graphics.LambdaCube.Technique
-import Graphics.LambdaCube.Pass
-import Graphics.LambdaCube.Light
-import Graphics.LambdaCube.TextureUnitState
 import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.Compositor
-
-{-
-
-parseFile pFunc tokenize file txt
-	= let res = parseTokens pFunc (tokenize file txt)
-	in case res of
-		Left errs -> do
-			mapM_ putStrLn errs
-			return Nothing
-		Right tree -> return (Just tree)
-		
-type TokenParser a = Parser Token a
-
-parseTokens :: TokenParser a -> [Token] -> Either [String] a
-parseTokens p tks = if null msgs then final `seq` Right v else Left (map show msgs)
-  where
-    steps = parse p tks
-    msgs  = getMsgs steps
-    (Pair v final) = evalSteps steps
--}
+import Graphics.LambdaCube.TextureUnitState
+import Graphics.LambdaCube.Types
 
 -- * Utility parser combinators
 
 infixl 4 <$=, <*=
 
+(<$=) :: (IsParser p Token) => b -> String -> p b
 x <$= s = x <$ pKey s
+
+(<*=) :: (IsParser p Token) => p a -> String -> p a
 x <*= s = x <* pKey s
 
 pBool :: AnaParser [Token] Pair Token (Maybe Token) Bool
@@ -64,61 +44,52 @@
      <|> (filter (/= '"') <$> pString)
      <|> pInteger10
      <|> pFraction
-{-
-    -- | Parses using any of the parsers in the list 'l'.
-    --
-    -- Warning: 'l' may not be an empty list.
-    pAny :: (IsParser p s) =>(a -> p a1) -> [a] -> p a1
-    pAny  f l = if null l then usererror "pAny: argument may not be empty list" else foldr1 (<|>) (map f l)
-    
-    -- | Parses any of the symbols in 'l'.
-    pAnySym :: (IsParser p s) =>[s] -> p s
-    pAnySym l = pAny pSym l -- used to be called pAnySym
-    
-    pToks :: (IsParser p s) => [s] -> p [s]
-    pToks []     = pSucceed []
-    pToks (a:as) = (:) <$> pSym a <*> pToks as
--}
---     pEnum :: (IsParser p s) => [(s, t)] -> p t
---     pEnum v = pAny (\(a,b) -> pToks a *> pSucceed b) v 
+
 pEnum :: (IsParser p Token) => [(String, t)] -> p t
-pEnum v = pAny (\(a,b) -> pKey a *> pSucceed b) v 
-{-
-pEnum v = readVal v <$> pVarid
-  where
-    readVal l x = head [y | (x2,y) <- l, x == x2]
--}
+pEnum v = pAny (\(a,b) -> pKey a *> pSucceed b) v
 
+pColour :: FloatType -> AnaParser [Token] Pair Token (Maybe Token) (Either FloatType4 ())
 pColour a =  Left <$> pRGB a
          <|> Left <$> pRGBA
          <|> Right () <$= "vertex_colour"
 
+pFloat3 :: AnaParser [Token] Pair Token (Maybe Token) FloatType3
 pFloat3 = (,,) <$> pFloat <*> pFloat <*> pFloat
+
+pFloat4 :: AnaParser [Token] Pair Token (Maybe Token) FloatType4
 pFloat4 = (,,,) <$> pFloat <*> pFloat <*> pFloat <*> pFloat
+
+pRGBOrRGBA :: FloatType -> AnaParser [Token] Pair Token (Maybe Token) FloatType4
 pRGBOrRGBA a = pRGBA <|> pRGB a
 
-pRGBA :: AnaParser [Token] Pair Token (Maybe Token) (FloatType, FloatType, FloatType, FloatType)
+pRGBA :: AnaParser [Token] Pair Token (Maybe Token) FloatType4
 pRGBA = pFloat4
+
+pRGB :: FloatType -> AnaParser [Token] Pair Token (Maybe Token) FloatType4
 pRGB a = (,,,) <$> pFloat <*> pFloat <*> pFloat <*> pSucceed a
 
+def :: a -> [a] -> a
 def dv l = if null l then dv else head l
 
--- * 
+boolVals :: [(String, Bool)]
 boolVals =
     [ ("true",  True)
     , ("false", False)
     ]
-    
+
+onoffVals :: [(String, Bool)]
 onoffVals =
     [ ("on",    True)
     , ("off",   False)
     ]
 
+ruleopVals :: [(String, IncludeOrExclude)]
 ruleopVals =
     [ ("include",INCLUDE)
     , ("exclude",EXCLUDE)
     ]
 
+cmpfuncVals :: [(String, CompareFunction)]
 cmpfuncVals =
     [ ("always_fail",   CMPF_ALWAYS_FAIL)
     , ("always_pass",   CMPF_ALWAYS_PASS)
@@ -130,26 +101,30 @@
     , ("greater",       CMPF_GREATER)
     ]
 
+shadingVals :: [(String, ShadeOptions)]
 shadingVals =
     [ ("flat",    SO_FLAT)
     , ("gouraud", SO_GOURAUD)
     , ("phong",   SO_PHONG)
     ]
 
+polymodeVals :: [(String, PolygonMode)]
 polymodeVals =
     [ ("points",    PM_POINTS)
     , ("wireframe", PM_WIREFRAME)
     , ("solid",     PM_SOLID)
     ]
-    
-blendopVals = 
+
+blendopVals :: [(String, SceneBlendOperation)]
+blendopVals =
     [ ("add",               SBO_ADD)
     , ("subtract",          SBO_SUBTRACT)
     , ("reverse_subtract",  SBO_REVERSE_SUBTRACT)
     , ("min",               SBO_MIN)
     , ("max",               SBO_MAX)
     ]
-    
+
+blendVals :: [(String, SceneBlendFactor)]
 blendVals =
     [ ("one",                   SBF_ONE)
     , ("zero",                  SBF_ZERO)
@@ -163,67 +138,76 @@
     , ("one_minus_src_alpha",   SBF_ONE_MINUS_SOURCE_ALPHA)
     ]
 
+sceneblendVals :: [(String, SceneBlendType)]
 sceneblendVals =
     [ ("add",          SBT_ADD)
     , ("modulate",     SBT_MODULATE)
     , ("colour_blend", SBT_TRANSPARENT_COLOUR)
     , ("alpha_blend",  SBT_TRANSPARENT_ALPHA)
     ]
-    
-illumstageVals = 
+
+illumstageVals :: [(String, IlluminationStage)]
+illumstageVals =
     [ ("ambient",   IS_AMBIENT)
     , ("per_light", IS_PER_LIGHT)
     , ("decal",     IS_DECAL)
     ]
 
-cullhwVals = 
+cullhwVals :: [(String, CullingMode)]
+cullhwVals =
     [ ("clockwise",     CULL_CLOCKWISE)
     , ("anticlockwise", CULL_ANTICLOCKWISE)
     , ("none",          CULL_NONE)
     ]
 
+cullswVals :: [(String, ManualCullingMode)]
 cullswVals =
     [ ("back",  MANUAL_CULL_BACK)
     , ("front", MANUAL_CULL_FRONT)
     , ("none",  MANUAL_CULL_NONE)
     ]
-    
+
+lighttypeVals :: [(String, LightTypes)]
 lighttypeVals =
     [ ("point",       LT_POINT)
     , ("directional", LT_DIRECTIONAL)
     , ("spot",        LT_SPOTLIGHT)
     ]
 
+copVals :: [(String, LayerBlendOperation)]
 copVals =
     [ ("replace",     LBO_REPLACE)
     , ("add",         LBO_ADD)
     , ("modulate",    LBO_MODULATE)
     , ("alpha_blend", LBO_ALPHA_BLEND)
     ]
-          
+
+btyVals :: [(String, BindingType)]
 btyVals =
     [ ("vertex",   BT_VERTEX)
     , ("fragment", BT_FRAGMENT)
     ]
 
+ctyVals :: [(String, ContentType)]
 ctyVals =
     [ ("named",  CONTENT_NAMED)
     , ("shadow", CONTENT_SHADOW)
     ]
 
-pixelformatVals = 
-    [ ("PF_L8",           PF_L8)            
-    , ("PF_L16",          PF_L16)           
-    , ("PF_A8",           PF_A8)            
-    , ("PF_A4L4",         PF_A4L4)        
-    , ("PF_BYTE_LA",      PF_BYTE_LA)  
-    , ("PF_R5G6B5",       PF_R5G6B5)    
-    , ("PF_B5G6R5",       PF_B5G6R5)    
-    , ("PF_R3G3B2",       PF_R3G3B2)    
+pixelformatVals :: [(String, PixelFormat)]
+pixelformatVals =
+    [ ("PF_L8",           PF_L8)
+    , ("PF_L16",          PF_L16)
+    , ("PF_A8",           PF_A8)
+    , ("PF_A4L4",         PF_A4L4)
+    , ("PF_BYTE_LA",      PF_BYTE_LA)
+    , ("PF_R5G6B5",       PF_R5G6B5)
+    , ("PF_B5G6R5",       PF_B5G6R5)
+    , ("PF_R3G3B2",       PF_R3G3B2)
     , ("PF_A4R4G4B4",     PF_A4R4G4B4)
     , ("PF_A1R5G5B5",     PF_A1R5G5B5)
-    , ("PF_R8G8B8",       PF_R8G8B8)    
-    , ("PF_B8G8R8",       PF_B8G8R8)    
+    , ("PF_R8G8B8",       PF_R8G8B8)
+    , ("PF_B8G8R8",       PF_B8G8R8)
     , ("PF_A8R8G8B8",     PF_A8R8G8B8)
     , ("PF_A8B8G8R8",     PF_A8B8G8R8)
     , ("PF_B8G8R8A8",     PF_B8G8R8A8)
@@ -232,29 +216,32 @@
     , ("PF_X8B8G8R8",     PF_X8B8G8R8)
     , ("PF_A2R10G10B10",  PF_A2R10G10B10)
     , ("PF_A2B10G10R10",  PF_A2B10G10R10)
-    , ("PF_FLOAT16_R",    PF_FLOAT16_R)    
-    , ("PF_FLOAT16_RGB",  PF_FLOAT16_RGB)  
+    , ("PF_FLOAT16_R",    PF_FLOAT16_R)
+    , ("PF_FLOAT16_RGB",  PF_FLOAT16_RGB)
     , ("PF_FLOAT16_RGBA", PF_FLOAT16_RGBA)
-    , ("PF_FLOAT32_R",    PF_FLOAT32_R)      
-    , ("PF_FLOAT32_RGB",  PF_FLOAT32_RGB)  
+    , ("PF_FLOAT32_R",    PF_FLOAT32_R)
+    , ("PF_FLOAT32_RGB",  PF_FLOAT32_RGB)
     , ("PF_FLOAT32_RGBA", PF_FLOAT32_RGBA)
-    , ("PF_SHORT_RGBA",   PF_SHORT_RGBA)    
+    , ("PF_SHORT_RGBA",   PF_SHORT_RGBA)
     ]
-    
-textypeVals = 
+
+textypeVals :: [(String, TextureType)]
+textypeVals =
     [ ("1d",    TEX_TYPE_1D)
     , ("2d",    TEX_TYPE_2D)
     , ("3d",    TEX_TYPE_3D)
     , ("cubic", TEX_TYPE_CUBE_MAP)
     ]
 
+texaddressVals :: [(String, TextureAddressingMode)]
 texaddressVals =
     [ ("wrap",   TAM_WRAP)
     , ("clamp",  TAM_CLAMP)
     , ("mirror", TAM_MIRROR)
     , ("border", TAM_BORDER)
     ]
-    
+
+texfilteringVals :: [(String, (FilterOptions, FilterOptions, FilterOptions))]
 texfilteringVals =
     [ ("none",        (FO_POINT,FO_POINT,FO_NONE))
     , ("bilinear",    (FO_LINEAR,FO_LINEAR,FO_POINT))
@@ -262,6 +249,7 @@
     , ("anisotropic", (FO_ANISOTROPIC,FO_ANISOTROPIC,FO_LINEAR))
     ]
 
+filteringVals :: [(String, FilterOptions)]
 filteringVals =
     [ ("none",        FO_NONE)
     , ("point",       FO_POINT)
@@ -269,14 +257,16 @@
     , ("anisotropic", FO_ANISOTROPIC)
     ]
 
+envmapVals :: [(String, Maybe EnvMapType)]
 envmapVals =
     [ ("off",              Nothing)
     , ("spherical",        Just ENV_CURVED)
     , ("planar",           Just ENV_PLANAR)
     , ("cubic_reflection", Just ENV_REFLECTION)
     , ("cubic_normal",     Just ENV_NORMAL)
-    ]    
+    ]
 
+xformtypeVals :: [(String, TextureTransformType)]
 xformtypeVals =
     [ ("scroll_x", TT_TRANSLATE_U)
     , ("scroll_y", TT_TRANSLATE_V)
@@ -285,15 +275,17 @@
     , ("rotate",   TT_ROTATE)
     ]
 
+wavetypeVals :: [(String, WaveformType)]
 wavetypeVals =
-    [ ("sine",              WFT_SINE)       
+    [ ("sine",              WFT_SINE)
     , ("triangle",          WFT_TRIANGLE)
-    , ("square",            WFT_SQUARE)       
+    , ("square",            WFT_SQUARE)
     , ("sawtooth",          WFT_SAWTOOTH)
     , ("inverse_sawtooth",  WFT_INVERSE_SAWTOOTH)
 --    , ("",WFT_PWM)
-    ]      
+    ]
 
+stencilopVals :: [(String, StencilOperation)]
 stencilopVals =
     [ ("keep",              SOP_KEEP)
     , ("zero",              SOP_ZERO)
@@ -305,6 +297,7 @@
     , ("invert",            SOP_INVERT)
     ]
 
+fogmodeVals :: [(String, FogMode)]
 fogmodeVals =
     [ ("none",      FOG_NONE)
     , ("linear",    FOG_LINEAR)
@@ -312,6 +305,7 @@
     , ("exp2",      FOG_EXP2)
     ]
 
+layerblendopexVals :: [(String, LayerBlendOperationEx)]
 layerblendopexVals =
     [ ("source1",               LBX_SOURCE1)
     , ("source2",               LBX_SOURCE2)
@@ -330,7 +324,8 @@
     , ("blend_diffuse_colour",  LBX_BLEND_DIFFUSE_COLOUR)
     ]
 
-layerblendsrcVals = 
+layerblendsrcVals :: [(String, LayerBlendSource)]
+layerblendsrcVals =
     [ ("src_current",   LBS_CURRENT)
     , ("src_texture",   LBS_TEXTURE)
     , ("src_diffuse",   LBS_DIFFUSE)
@@ -338,13 +333,15 @@
     , ("src_manual",    LBS_MANUAL)
     ]
 
+inputVals :: [(String, InputMode)]
 inputVals =
     [ ("none",      IM_NONE)
     , ("previous",  IM_PREVIOUS)
     ]
 
+compositorPixelFormatVals :: [(String, PixelFormat)]
 compositorPixelFormatVals =
-    [ ("PF_A8R8G8B8",       PF_A8R8G8B8) 
+    [ ("PF_A8R8G8B8",       PF_A8R8G8B8)
     , ("PF_R8G8B8A8",       PF_R8G8B8A8)
     , ("PF_R8G8B8",         PF_R8G8B8)
     , ("PF_FLOAT16_RGBA",   PF_FLOAT16_RGBA)
@@ -490,4 +487,4 @@
 ACT_LIGHT_POWER_SCALE_ARRAY
 
 ACT_LIGHT_CUSTOM
--}    
+-}
diff --git a/Graphics/LambdaCube/Loader/ResourceScript.hs b/Graphics/LambdaCube/Loader/ResourceScript.hs
--- a/Graphics/LambdaCube/Loader/ResourceScript.hs
+++ b/Graphics/LambdaCube/Loader/ResourceScript.hs
@@ -1,30 +1,32 @@
 module Graphics.LambdaCube.Loader.ResourceScript (loadResourcesCfg,PathType(..),ResourcePath,ResourceGroup) where
 
--- import the the library functions from uulib
 import UU.Parsing
 import UU.Scanner
 
--- import our custom made Alex-scanner
+
 import Graphics.LambdaCube.Loader.Generated.ResourceScriptScanner
 import Graphics.LambdaCube.Loader.ParserUtil
-import System.Log.Logger
 
-data PathType = PathDir | PathZip
-type ResourcePath = (PathType,String)
-type ResourceGroup = (String,[ResourcePath])
+-- | The type of path leading to a resource.
+data PathType = PathDir  -- ^ An ordinary directory.
+              | PathZip  -- ^ A zip compressed directory.
 
+type ResourcePath = (PathType, String)
+
+type ResourceGroup = (String, [ResourcePath])
+
+loadResourcesCfg :: FilePath -> IO (Maybe [(String, [(PathType, String)])])
 loadResourcesCfg file = do
     txt <- readFile file
     parseResourcesCfg file txt
 
-parseResourcesCfg file txt
-    = let res = parseTokens pResourceScript (tokenize file txt)
-    in case res of
-        Left errs -> do
-            mapM_ (errorM "ResourceScript") errs
-            return Nothing
-        Right tree -> return (Just tree)
-		
+parseResourcesCfg :: String -> String -> IO (Maybe [(String, [(PathType, String)])])
+parseResourcesCfg file txt = case parseTokens pResourceScript (tokenize file txt) of
+    Left errs -> do
+        mapM_ (\m -> putStrLn $ "ResourceScript " ++ m) errs
+        return Nothing
+    Right tree -> return (Just tree)
+
 type TokenParser a = Parser Token a
 
 parseTokens :: TokenParser a -> [Token] -> Either [String] a
@@ -32,11 +34,19 @@
   where
     steps = parse p tks
     msgs  = getMsgs steps
-    (Pair v final) = evalSteps steps
+    Pair v final = evalSteps steps
 
+pResourceScript :: AnaParser [Token] Pair Token (Maybe Token) [(String,[(PathType, String)])]
 pResourceScript = pList pResourceGroup
+
+pResourceGroup :: AnaParser [Token] Pair Token (Maybe Token) (String, [(PathType, String)])
 pResourceGroup = (,) <$= "[" <*> pVarid <*= "]" <*> pList pResourceGroupContent
+
+pResourceGroupContent :: AnaParser [Token] Pair Token (Maybe Token) (PathType, String)
 pResourceGroupContent = pFileSystem <|> pZip
 
+pFileSystem :: AnaParser [Token] Pair Token (Maybe Token) (PathType, String)
 pFileSystem = (,) PathDir <$= "FileSystem" <*= "=" <*> pVarid
+
+pZip :: AnaParser [Token] Pair Token (Maybe Token) (PathType, String)
 pZip = (,) PathZip <$= "Zip" <*= "=" <*> pVarid
diff --git a/Graphics/LambdaCube/Loader/ResourceScriptScanner.x b/Graphics/LambdaCube/Loader/ResourceScriptScanner.x
--- a/Graphics/LambdaCube/Loader/ResourceScriptScanner.x
+++ b/Graphics/LambdaCube/Loader/ResourceScriptScanner.x
@@ -1,4 +1,5 @@
 {
+{-# OPTIONS_GHC -w #-}
 -- alex scanner for use with uulib
 --   compile with alex -o Scanner.hs -g Scanner.x
 module Graphics.LambdaCube.Loader.Generated.ResourceScriptScanner(tokenize) where
@@ -41,7 +42,7 @@
   = go (initpos, str)
   where
     initpos = Pos 1 1 filename
-    
+
     go inp@(pos, cs)
       = case alexScan inp 0 of
           AlexEOF         -> []
diff --git a/Graphics/LambdaCube/Loader/SkeletonXML.hs b/Graphics/LambdaCube/Loader/SkeletonXML.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/Loader/SkeletonXML.hs
@@ -0,0 +1,80 @@
+module Graphics.LambdaCube.Loader.SkeletonXML where
+
+import Graphics.LambdaCube.Skeleton
+import Graphics.LambdaCube.Types
+
+import Control.Applicative
+import Data.List as L
+import Data.Map as Map
+import Data.Maybe
+import Data.Tree
+import Data.Vector as V
+import Prelude as P
+import Text.XML.Light
+
+readFloat :: String -> String -> Element -> Float
+readFloat n v e = read $ fromMaybe v $ findAttr (unqual n) e
+
+readStr :: String -> String -> Element -> String
+readStr n v e = fromMaybe v $ findAttr (unqual n) e
+
+readBone :: Element -> (String, Bone)
+readBone x = (name,Bone (p pos) (rotU (p axis) (readFloat "angle" "angle" rot)))
+  where
+    name = readStr "name" "boneName" x
+    Just pos = findElement (unqual "position") x
+    Just rot = findElement (unqual "rotation") x
+    Just axis = findElement (unqual "axis") rot
+    p a = Vec3 (readFloat "x" "x" a) (readFloat "y" "y" a) (readFloat "z" "z" a)
+
+readKeyFrame :: Element -> KeyFrame
+readKeyFrame x = KeyFrame (p pos) (rotU (p axis) (readFloat "angle" "angle" rot)) (readFloat "time" "time" x)
+  where
+    Just pos = findElement (unqual "translate") x
+    Just rot = findElement (unqual "rotate") x
+    Just axis = findElement (unqual "axis") rot
+    p a = Vec3 (readFloat "x" "x" a) (readFloat "y" "y" a) (readFloat "z" "z" a)
+
+readTrack :: Element -> (String, [KeyFrame])
+readTrack x = (bone,keyframes)
+  where
+    bone = readStr "bone" "trackBone" x
+    keyframes = P.map readKeyFrame $ findElements (unqual "keyframe") keyframesn
+    Just keyframesn = findElement (unqual "keyframes") x
+
+readAnimation :: [String] -> Element -> (String, Animation)
+readAnimation nameList x = (name,Animation tracks len name)
+  where
+    name = readStr "name" "animName" x
+    len = readFloat "length" "animLength" x
+    tracks = V.fromList $ P.map snd $ sortBy (\(a,_) (b,_) -> a `compare` b) tl
+    tl = [(fromJust $ L.elemIndex n nameList, t) | (n,t) <- P.map readTrack $ findElements (unqual "track") x]
+    --Just tracksl = findElement (unqual "tracks") x
+
+readSkeleton :: Element -> Skeleton
+readSkeleton x = Skeleton (V.fromList boneList) boneTree animations
+  where
+    Just bones = findElement (unqual "bones") x
+    (nameList,boneList) = L.unzip $ P.map readBone $ findElements (unqual "bone") bones
+    --Just hierarchy = findElement (unqual "bonehierarchy") x
+    [boneNTree] = L.foldl' add [Node n [] | n <- nameList] $ findElements (unqual "boneparent") x
+    boneTree = fmap (\n -> fromJust $ L.elemIndex n nameList) boneNTree
+    bon n = readStr "bone" "bone" n
+    par n = readStr "parent" "parent" n
+    add [e] _ = [e]
+    add l n = (ins p):cs
+      where
+        ([p],ps) = L.partition (\tn -> L.elem (par n) $ flatten tn) l
+        ([c],cs) = L.partition (\(Node a _) -> a == bon n) ps
+        ins (Node nn nt) | nn == par n = Node nn (c:nt)
+                         | otherwise = Node nn $ L.map ins nt
+    Just anims = findElement (unqual "animations") x
+    animations = Map.fromList $ P.map (readAnimation nameList) $ findElements (unqual "animation") anims
+
+parseSkeleton :: String -> Skeleton
+parseSkeleton doc = readSkeleton $ fromMaybe (error "fromJust 6") $ findElement (unqual "skeleton") x
+  where
+    Just x = parseXMLDoc doc
+
+loadSkeleton :: FilePath -> IO Skeleton
+loadSkeleton fileName = parseSkeleton <$> readFile fileName
diff --git a/Graphics/LambdaCube/Loader/StbImage.hs b/Graphics/LambdaCube/Loader/StbImage.hs
--- a/Graphics/LambdaCube/Loader/StbImage.hs
+++ b/Graphics/LambdaCube/Loader/StbImage.hs
@@ -1,42 +1,34 @@
 module Graphics.LambdaCube.Loader.StbImage (loadImage) where
 
-import System.Exit
-import System.Log.Logger
-import Foreign.Marshal.Array
-
+import Data.Bitmap
+import Data.ByteString.Lazy hiding (putStrLn)
 import qualified Codec.Image.STB as STB
 import qualified Data.ByteString as SB
-import Data.ByteString.Lazy
 
-import Graphics.LambdaCube.PixelFormat
 import Graphics.LambdaCube.Image
+import Graphics.LambdaCube.PixelFormat
 
 loadImage :: ImageLoader
 loadImage name buf = STB.decodeImage (SB.pack $ unpack buf) >>= \result -> case result of
-    { Left err  -> do
-        debugM "StbImage loader" err
+    Left err  -> do
+        putStrLn $ "StbImage loader " ++ err
         return Nothing
-    ; Right img -> STB.withImage img $ \p (x,y) c -> do
-        let pf = case c of
-            { 1 -> PF_L8
-            ; 2 -> PF_BYTE_LA
-            ; 3 -> PF_R8G8B8
-            ; 4 -> PF_R8G8B8A8
-            }
-        debugM "StbImage loader" $ "\"" ++ name ++ "\" loaded"
-        debugM "StbImage loader" $ "resolution = " ++ show x ++ " x " ++ show y ++ ", " ++ show c ++ " bytes per pixel"
-        imgdata <- mallocArray (x * y * c)
-        copyArray imgdata p (x * y * c)
+    Right img -> do
+        let pf = case bitmapPixelSizeInBytes img of
+                1 -> PF_L8
+                2 -> PF_BYTE_LA
+                3 -> PF_R8G8B8
+                4 -> PF_R8G8B8A8
+                _ -> PF_UNKNOWN
+            (w,h) = bitmapSize img
+        putStrLn $ "StbImage loader " ++ "\"" ++ name ++ "\" loaded"
+        putStrLn $ "StbImage loader " ++ "resolution = " ++ show w ++ " x " ++ show h ++ ", " ++ show (bitmapPixelSizeInBytes img) ++ " bytes per pixel"
         return $ Just Image
-            { imName       = name
-            , imHeight     = y
-            , imWidth      = x
-            , imDepth      = 1
-            , imSize       = x * y * c
-            , imNumMipmaps = 0 -- TODO
-        --    uint flags;
-            , imFormat     = pf
-            , imData       = imgdata
-            }
-    }
-        
+          { imName       = name
+          , imHeight     = w
+          , imWidth      = h
+          , imDepth      = 1
+          , imNumMipmaps = 0 -- TODO
+          , imFormat     = pf
+          , imData       = bitmapToByteString img
+          }
diff --git a/Graphics/LambdaCube/Material.hs b/Graphics/LambdaCube/Material.hs
--- a/Graphics/LambdaCube/Material.hs
+++ b/Graphics/LambdaCube/Material.hs
@@ -1,50 +1,18 @@
 module Graphics.LambdaCube.Material where
 
-import Graphics.LambdaCube.Types
+import Graphics.LambdaCube.GpuProgram
 import Graphics.LambdaCube.Technique
 import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.Types
 
-{-
-data Shader
-    = Shader
-    { shName      :: String
-    , shSource    :: String
-    , shAttach    :: [String]
---    , shParameter :: [ShaderParameterValue]
---    , shObject    :: GL.Shader s => Maybe s
-    }
-        
-data Program
-    = Program
-    { prVertShaderName :: Maybe String
-    , prFragShaderName :: Maybe String
-    --prParameters :: [ShaderParameter],
---    , prObject         :: Maybe GL.Program
-    }
--}
----------------------------------------
--- NEW code
 data (Texture t, LinkedGpuProgram lp) => Material t lp
     = Material
     { mtName                     :: String
     , mtTechniques               :: [Technique t lp] -- ^ All techniques, supported and unsupported
     , mtSupportedTechniques      :: Maybe [Technique t lp] -- ^ Supported techniques of any sort
-{-
-    typedef map<unsigned short, Technique*>::type LodTechniques;
-    typedef map<unsigned short, LodTechniques*>::type BestTechniquesBySchemeList;
-    /** Map of scheme -> list of LOD techniques. 
-    	Current scheme is set on MaterialManager,
-    	and can be set per Viewport for auto activation.
-    */
-    BestTechniquesBySchemeList mBestTechniquesBySchemeList;
--}
     , mtUserLodValues            :: [FloatType] -- ^ distance list used to specify LOD
     , mtLodValues                :: [FloatType] -- ^ distance list used to specify LOD
---    const LodStrategy *mLodStrategy;
     , mtReceiveShadows           :: Bool
     , mtTransparencyCastsShadows :: Bool
---    /// Does this material require compilation?
---    bool mCompilationRequired;
     , mtUnsupportedReasons       :: String -- ^ Text description of why any techniques are not supported
     }
diff --git a/Graphics/LambdaCube/Math.hs b/Graphics/LambdaCube/Math.hs
deleted file mode 100644
--- a/Graphics/LambdaCube/Math.hs
+++ /dev/null
@@ -1,160 +0,0 @@
-module Graphics.LambdaCube.Math where
-import Graphics.LambdaCube.Types
-
-vec4xscalar :: Vec4 -> FloatType -> Vec4
-vec4xscalar (Vec4 x1 y1 z1 _) s = Vec4 (x1 * s) (y1 * s) (z1 * s) 0
-
-vec4crossvec4 :: Vec4 -> Vec4 -> Vec4
-vec4crossvec4 (Vec4 x1 y1 z1 _) (Vec4 x2 y2 z2 _) = Vec4 (y1*z2-y2*z1) (z1*x2-z2*x1) (x1*y2-x2*y1) 0
-
-vec4subvec4 :: Vec4 -> Vec4 -> Vec4
-vec4subvec4
-    (Vec4
-         a1 a2 a3 a4)
-    (Vec4
-         b1 b2 b3 b4)
-    = (Vec4 (a1 - b1) (a2 - b2) (a3 - b3) (a4 - b4))
-
-vec4addvec4 :: Vec4 -> Vec4 -> Vec4
-vec4addvec4
-    (Vec4
-         a1 a2 a3 a4)
-    (Vec4
-         b1 b2 b3 b4)
-    = (Vec4 (a1 + b1) (a2 + b2) (a3 + b3) (a4 + b4))
-
-norm :: Vec4 -> Vec4
-norm
-    (Vec4
-         a1 a2 a3 a4)
-    = (Vec4 (a1 / l) (a2 / l) (a3 / l) (a4 / l))
-  where
-    l = sqrt (a1*a1 + a2*a2 + a3*a3 + a4*a4)
-
-vec4xmat44 :: Vec4 -> Matrix4 -> Vec4
-vec4xmat44
-    (Vec4
-         a1 a2 a3 a4)
-    (Matrix4
-        b11 b12 b13 b14
-        b21 b22 b23 b24
-        b31 b32 b33 b34
-        b41 b42 b43 b44)
-    = (Vec4
-        (a1*b11+a2*b21+a3*b31+a4*b41) (a1*b12+a2*b22+a3*b32+a4*b42) (a1*b13+a2*b23+a3*b33+a4*b43) (a1*b14+a2*b24+a3*b34+a4*b44))
-
-mat44xmat44 :: Matrix4 -> Matrix4 -> Matrix4
-mat44xmat44
-    (Matrix4
-        a11 a12 a13 a14
-        a21 a22 a23 a24
-        a31 a32 a33 a34
-        a41 a42 a43 a44)
-    (Matrix4
-        b11 b12 b13 b14
-        b21 b22 b23 b24
-        b31 b32 b33 b34
-        b41 b42 b43 b44)
-    = (Matrix4
-        (a11*b11+a12*b21+a13*b31+a14*b41) (a11*b12+a12*b22+a13*b32+a14*b42) (a11*b13+a12*b23+a13*b33+a14*b43) (a11*b14+a12*b24+a13*b34+a14*b44)
-        (a21*b11+a22*b21+a23*b31+a24*b41) (a21*b12+a22*b22+a23*b32+a24*b42) (a21*b13+a22*b23+a23*b33+a24*b43) (a21*b14+a22*b24+a23*b34+a24*b44)
-        (a31*b11+a32*b21+a33*b31+a34*b41) (a31*b12+a32*b22+a33*b32+a34*b42) (a31*b13+a32*b23+a33*b33+a34*b43) (a31*b14+a32*b24+a33*b34+a34*b44)
-        (a41*b11+a42*b21+a43*b31+a44*b41) (a41*b12+a42*b22+a43*b32+a44*b42) (a41*b13+a42*b23+a43*b33+a44*b43) (a41*b14+a42*b24+a43*b34+a44*b44))
-
-
-transMatrix4 :: Matrix4 -> Matrix4
-transMatrix4
-    (Matrix4
-        a11 a12 a13 a14
-        a21 a22 a23 a24
-        a31 a32 a33 a34
-        a41 a42 a43 a44)
-    = (Matrix4
-        a11 a21 a31 a41
-        a12 a22 a32 a42
-        a13 a23 a33 a43
-        a14 a24 a34 a44)
-        
-infixl 7 <>
-a <> b = a `mat44xmat44` b
-
-toListsMatrix4
-    (Matrix4
-        a11 a12 a13 a14
-        a21 a22 a23 a24
-        a31 a32 a33 a34
-        a41 a42 a43 a44) = [a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, a41, a42, a43, a44]
-        
-scal a = Matrix4
-    a 0 0 0
-    0 a 0 0
-    0 0 a 0
-    0 0 0 1 
-
-transl x y z = Matrix4
-    1 0 0 0
-    0 1 0 0
-    0 0 1 0
-    x y z 1
-
-rotX a = Matrix4
-    1  0  0  0
-    0  c  s  0
-    0(-s) c  0
-    0  0  0  1
-  where
-    c = cos a
-    s = sin a
-
-rotY a = Matrix4
-     c 0 s 0
-     0 1 0 0
-    (-s) 0 c 0
-     0 0 0 1 
-  where
-    c = cos a
-    s = sin a
-
-rotZ a = Matrix4
-     c  s  0  0
-   (-s) c  0  0
-     0  0  1  0
-     0  0  0  1
-  where
-    c = cos a
-    s = sin a
-    
---lookat eye@(Vec4 ex ey ez _) dir up =  (Matrix4 
-lookat eye@(Vec4 ex ey ez _) dir up = (transl (-ex) (-ey) (-ez)) <> (Matrix4 
---lookat eye@(Vec4 ex ey ez _) dir up = (transl (ex) (ey) (ez)) <> Matrix4
-    ux vx wx 0
-    uy vy wy 0
-    uz vz wz 0
-    0  0  0  1)-- <> (transl (-ex) (-ey) (-ez))
-  where
-    w@(Vec4 wx wy wz _) = norm $ dir
-    u@(Vec4 ux uy uz _) = norm $ up `vec4crossvec4` w
-    v@(Vec4 vx vy vz _) = norm $ w `vec4crossvec4` u
- 
-
-mat44pos :: Matrix4 -> (FloatType,FloatType,FloatType,FloatType)
-mat44pos
-    (Matrix4
-        _ _ _ _
-        _ _ _ _
-        _ _ _ _
-        x y z w
-    )
-    = (x,y,z,w)
-
-perpectiveMatrix fov aspect near far = Matrix4
-    m00 0 0 0
-    0 m11 0 0
-    0 0 m22 (-1)
-    0 0 m32 0
-  where
-    slopey  = tan $ fov * pi / 360
-    m00     = 1 / slopey / aspect
-    m11     = 1 / slopey
-    m22     = -(near + far) / (far - near)
-    m32     = -2 * near * far / (far - near)
diff --git a/Graphics/LambdaCube/Mesh.hs b/Graphics/LambdaCube/Mesh.hs
--- a/Graphics/LambdaCube/Mesh.hs
+++ b/Graphics/LambdaCube/Mesh.hs
@@ -1,212 +1,64 @@
 module Graphics.LambdaCube.Mesh where
 
-import Data.Map (Map)
-import qualified Data.Map as Map
+import Data.Maybe
+import Foreign
+import Foreign.C.Types
 
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.RenderOperation
+import qualified Data.IntMap as IntMap
+import Unsafe.Coerce -- because realToFrac just doesn't cut it...
+
 import Graphics.LambdaCube.HardwareBuffer
-import Graphics.LambdaCube.HardwareVertexBuffer
 import Graphics.LambdaCube.HardwareIndexBuffer
+import Graphics.LambdaCube.HardwareVertexBuffer
+import Graphics.LambdaCube.RenderOperation
+import Graphics.LambdaCube.Types
+import Graphics.LambdaCube.Utility
 import Graphics.LambdaCube.VertexIndexData
 
 data (HardwareVertexBuffer vb, HardwareIndexBuffer ib) => SubMesh vb ib
     = SubMesh
     { smOperationType       :: OperationType            -- ^ The render operation type used to render this submesh
-
-    {-| Dedicated vertex data (only valid if useSharedVertices = false).
-        @remarks
-            This data is completely owned by this submesh.
-        @par
-            The use of shared or non-shared buffers is determined when
-            model data is converted to the OGRE .mesh format.
-    -}
-    , smVertexData          :: Maybe (VertexData vb)    -- ^ Indicates if this submesh shares vertex data with other meshes or whether it has it's own vertices.    
+    , smVertexData          :: Maybe (VertexData vb)    -- ^ Indicates if this submesh shares vertex data with other meshes or whether it has it's own vertices.
     , smIndexData           :: Maybe (IndexData ib)     -- ^ Face index data
-
-    {-| Dedicated index map for translate blend index to bone index (only valid if useSharedVertices = false).
-        @remarks
-            This data is completely owned by this submesh.
-        @par
-            We collect actually used bones of all bone assignments, and build the
-            blend index in 'packed' form, then the range of the blend index in vertex
-            data VES_BLEND_INDICES element is continuous, with no gaps. Thus, by
-            minimising the world matrix array constants passing to GPU, we can support
-            more bones for a mesh when hardware skinning is used. The hardware skinning
-            support limit is applied to each set of vertex data in the mesh, in other words, the
-            hardware skinning support limit is applied only to the actually used bones of each
-            SubMeshes, not all bones across the entire Mesh.
-        @par
-            Because the blend index is different to the bone index, therefore, we use
-            the index map to translate the blend index to bone index.
-        @par
-            The use of shared or non-shared index map is determined when
-            model data is converted to the OGRE .mesh format.
-    -}
-    --typedef vector<unsigned short>::type IndexMap;
-    --IndexMap blendIndexToBoneIndexMap;
-
-    --ProgressiveMesh::LODFaceList mLodFaceList;
-
-    {-| A list of extreme points on the submesh (optional).
-        @remarks
-            These points are some arbitrary points on the mesh that are used
-            by engine to better sort submeshes by depth. This doesn't matter
-            much for non-transparent submeshes, as Z-buffer takes care of invisible
-            surface culling anyway, but is pretty useful for semi-transparent
-            submeshes because the order in which transparent submeshes must be
-            rendered cannot be always correctly deduced from entity position.
-        @par
-            These points are intelligently chosen from the points that make up
-            the submesh, the criteria for choosing them should be that these points
-            somewhat characterize the submesh outline, e.g. they should not be
-            close to each other, and they should be on the outer hull of the submesh.
-            They can be stored in the .mesh file, or generated at runtime
-            (see generateExtremes ()).
-        @par
-            If this array is empty, submesh sorting is done like in older versions -
-            by comparing the positions of the owning entity.
-    -}
-    , smExtremityPoints     :: [FloatType3]
+--    , smExtremityPoints     :: [FloatType3]
     , smMaterialName        :: String           -- ^ Name of the material this SubMesh uses.
-
-        -- | Is there a material yet?
---        bool mMatInitialised;
-
-        -- | paired list of texture aliases and texture names
---        AliasTextureNamePairList mTextureAliases;
-
---        VertexBoneAssignmentList mBoneAssignments;
-
-        -- | Flag indicating that bone assignments need to be recompiled
---        bool mBoneAssignmentsOutOfDate;
-
-		-- | Type of vertex animation for dedicated vertex data (populated by Mesh)
---		mutable VertexAnimationType mVertexAnimationType;
-
-		-- | Is Build Edges Enabled
---		bool mBuildEdgesEnabled;
     }
 
 data (HardwareVertexBuffer vb, HardwareIndexBuffer ib) => Mesh vb ib
     = Mesh
     { msSubMeshList                 :: [SubMesh vb ib]
-    {-| A hashmap used to store optional SubMesh names.
-    	Translates a name into SubMesh index
-    -}
---typedef HashMap<String, ushort> SubMeshNameMap ;
-
-
---ected:
-
---DataStreamPtr mFreshFromDisk;
-
---SubMeshNameMap mSubMeshNameMap ;
-    , msSubMeshNameMap              :: Map String Int
-
-    -- | Local bounding box volume
-    -- TODO: AxisAlignedBox mAABB;
-    ---- | Local bounding sphere radius (centered on object)
+--    , msSubMeshNameMap              :: Map String Int
     , msBoundRadius                 :: FloatType
-
-    -- | Optional linked skeleton
-    , msSkeletonName                :: String
--- TODO:    , msSkeleton            :: Skeleton
-
-
--- TODO: VertexBoneAssignmentList mBoneAssignments;
-
--- | Flag indicating that bone assignments need to be recompiled
--- TODO: bool mBoneAssignmentsOutOfDate;
-
--- TODO: const LodStrategy *mLodStrategy;
--- TODO: bool mIsLodManual;
--- TODO: ushort mNumLods;
--- TODO: MeshLodUsageList mMeshLodUsageList;
-
-    , msVertexBufferUsage           :: Usage
-    , msIndexBufferUsage            :: Usage
-    , msVertexBufferShadowBuffer    :: Bool
-    , msIndexBufferShadowBuffer     :: Bool
-
-
--- TODO: bool mPreparedForShadowVolumes;
--- TODO: bool mEdgeListsBuilt;
--- TODO: bool mAutoBuildEdgeLists;
-
--- | Storage of morph animations, lookup by name
--- TODO: typedef map<String, Animation*>::type AnimationList;
--- TODO: AnimationList mAnimationsList;
--- | The vertex animation type associated with the shared vertex data
--- TODO: mutable VertexAnimationType mSharedVertexDataAnimationType;
--- | Do we need to scan animations for animation types?
--- TODO: mutable bool mAnimationTypesDirty;
-
--- | List of available poses for shared and dedicated geometryPoseList
--- TODO: PoseList mPoseList;
-
-{-| Shared vertex data.
-    @remarks
-        This vertex data can be shared among multiple submeshes. SubMeshes may not have
-        their own VertexData, they may share this one.
-    @par
-        The use of shared or non-shared buffers is determined when
-        model data is converted to the OGRE .mesh format.
--}
+--    , msSkeletonName                :: String
+--    , msVertexBufferUsage           :: Usage
+--    , msIndexBufferUsage            :: Usage
+--    , msVertexBufferShadowBuffer    :: Bool
+--    , msIndexBufferShadowBuffer     :: Bool
     , msSharedVertexData            :: Maybe (VertexData vb)
-
-{-| Shared index map for translating blend index to bone index.
-    @remarks
-        This index map can be shared among multiple submeshes. SubMeshes might not have
-        their own IndexMap, they might share this one.
-    @par
-        We collect actually used bones of all bone assignments, and build the
-        blend index in 'packed' form, then the range of the blend index in vertex
-        data VES_BLEND_INDICES element is continuous, with no gaps. Thus, by
-        minimising the world matrix array constants passing to GPU, we can support
-        more bones for a mesh when hardware skinning is used. The hardware skinning
-        support limit is applied to each set of vertex data in the mesh, in other words, the
-        hardware skinning support limit is applied only to the actually used bones of each
-        SubMeshes, not all bones across the entire Mesh.
-    @par
-        Because the blend index is different to the bone index, therefore, we use
-        the index map to translate the blend index to bone index.
-    @par
-        The use of shared or non-shared index map is determined when
-        model data is converted to the OGRE .mesh format.
--}
--- TODO: IndexMap sharedBlendIndexToBoneIndexMap;
     }
 
-{-
--- TODO: create generic functions which operate on buffer elements
-mapFloatType3M_ :: (FloatType -> FloatType -> FloatType -> IO a) -> (Int,Ptr FloatType,Int) -> IO ()
-mapFloatType3M_ f (cnt,ptr,stride) = do
-    let s' = if stride == 0 then 4 else stride
-    mapM_ (g ptr s') [0..(cnt-1)]
-  where
-    g ptr stride i = do
-        let p = plusPtr ptr $ stride * i
-        x <- peekElemOff p 0
-        y <- peekElemOff p 1
-        z <- peekElemOff p 2
-        f x y z
+-- TODO
+calculateBoundingRadius :: (HardwareVertexBuffer vb, HardwareIndexBuffer ib) => Mesh vb ib -> IO FloatType
+calculateBoundingRadius mesh = do
+    let processSubMesh r sm = do
+            -- get pointer to position vertex attribute container array
+            let Just vd = if isNothing (smVertexData sm) then msSharedVertexData mesh else smVertexData sm
+                posve   = head $ filter ((VES_POSITION ==) . veSemantic) $ vdElementList $ vdVertexDeclaration vd
+                vb      = (vbbBindingMap $ vdVertexBufferBinding vd) IntMap.! (veSource posve)
+            -- lock vb and ib for reading
+                offs    = veOffset posve
+                stride  = getVertexSize vb
 
-foldFloatType3M :: ((FloatType,FloatType,FloatType) -> b -> b) -> b -> (Int,Ptr FloatType,Int) -> IO b
-foldFloatType3M f a (cnt,ptr,stride) = do
-    let s' = if stride == 0 then 4 else stride
-    foldM (g ptr s') a [0..(cnt-1)]
-  where
-    g ptr stride e i = do
-        let p = plusPtr ptr $ stride * i
-        x <- peekElemOff p 0
-        y <- peekElemOff p 1
-        z <- peekElemOff p 2
-        return $ f (x,y,z) e
--}
+            pb <- lock vb offs (getSizeInBytes vb - offs) HBL_READ_ONLY
+            let getVertexDistance l i = do
+                    let p :: Ptr CFloat
+                        p = plusPtr pb $ i * stride
+                        f = unsafeCoerce :: CFloat -> Float
+                    [x,y,z] <- peekArray 3 p
+                    return $ max l $ f $ sqrt $ x*x + y*y + z*z
+            -- pass through buffer and process triangles
+            d <- foldM' getVertexDistance r [0..getNumVertices vb-1]
+            unlock vb
 
---calculateBoundingRadius :: Mesh -> IO FloatType
---calculateBoundingRadius m = do
-    -- collect vertex data
-    -- find 
---    return
+            return d
+    foldM' processSubMesh 0 $ msSubMeshList mesh
diff --git a/Graphics/LambdaCube/MeshUtil.hs b/Graphics/LambdaCube/MeshUtil.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/MeshUtil.hs
@@ -0,0 +1,89 @@
+{-|
+
+Functions for combining meshes.
+
+-}
+
+module Graphics.LambdaCube.MeshUtil (mkVMesh,mkVMesh') where
+
+import qualified Data.Vector as V
+-- TODO: or a more suitable algorithm
+import qualified Data.Vector.Algorithms.Intro as V
+import Data.List
+import Data.Maybe
+import Data.Ord
+
+import Graphics.LambdaCube.RenderOperation
+import Graphics.LambdaCube.Types hiding (transpose)
+import Graphics.LambdaCube.Utility
+import Graphics.LambdaCube.VertexBufferVector
+
+type MeshGroup = (String,VVB,Maybe VIB,Proj4,OperationType)
+
+-- | Build a single mesh that represents the union of a list of
+-- transformed meshes (given the orientation and translation for each
+-- constituent).  The resulting mesh is optimised with respect to
+-- context switches during rendering.
+mkVMesh :: [(U,Vec3,VMesh)] -> VMesh
+mkVMesh vml = mkVMesh' [((orthogonal $ rightOrthoU o) .*. translation p,m) | (o,p,m) <- vml]
+
+-- | Build a single mesh that represents the union of a list of
+-- transformed meshes (given the transformation matrix for each
+-- constituent).  The resulting mesh is optimised with respect to
+-- context switches during rendering.
+mkVMesh' :: [(Proj4,VMesh)] -> VMesh
+mkVMesh' vml = VMesh [joinGroup g | g <- groupByGeometry $ groupByMaterial $ vertexData vml] Nothing
+
+vertexData :: [(Proj4,VMesh)] -> [MeshGroup]
+vertexData l =
+    [ (materialName, sortedVData svData vData, iData, proj, opType)
+    | (proj, VMesh subMeshList (Just svData)) <- l
+    , VSubMesh materialName opType vData iData <- subMeshList
+    ]
+  where
+    sortedVData svd = V.modify (V.sortBy (comparing vectorVertexType)) . fromMaybe svd
+
+groupByMaterial :: [MeshGroup] -> [[MeshGroup]]
+groupByMaterial = groupSetBy (\(a,_,_,_,_) (b,_,_,_,_) -> compare a b)
+
+groupByGeometry :: [[MeshGroup]] -> [[MeshGroup]]
+groupByGeometry l = groupSetBy compareMeshItem =<< l
+  where
+    compareMeshItem (_,a1,_,_,a2) (_,b1,_,_,b2) = compare (V.map vectorVertexType a1, a2) (V.map vectorVertexType b1, b2)
+
+joinGroup :: [MeshGroup] -> VSubMesh
+joinGroup groupMeshList = VSubMesh materialName operationType joinedVertexData joinedIndexData
+  where
+    (materialName,_,indexData,_,operationType) = head groupMeshList
+    vertexDataList :: [[(VectorVertexData,Proj4)]]
+    vertexDataList = [[(v,proj) | v <- V.toList vd] | (_,vd,_,proj,_) <- groupMeshList]
+
+    joinedIndexData = case indexData of
+        Nothing -> Nothing
+        Just _  -> let indexDataList = [fromJust id | (_,_,id,_,_) <- groupMeshList]
+                       offsets = scanl (+) 0 [V.length v | a <- vertexDataList, (VVD_POSITION v,_) <- a]
+                   in Just $ V.concat $ zipWith (\o v -> V.map (+o) v) offsets indexDataList
+
+    joinedVertexData :: Maybe VVB
+    joinedVertexData = Just $ V.fromList $ map mergeAttribs $ transpose vertexDataList
+
+mergeAttribs :: [(VectorVertexData, Proj4)] -> VectorVertexData
+mergeAttribs ca = case vectorVertexType $ (fst (head ca)) of
+    VVT_BINORMAL ->             VVD_BINORMAL $             V.concat [rot proj v      | (VVD_BINORMAL v,proj) <- ca]
+    VVT_BLEND_INDICES ->        VVD_BLEND_INDICES $        V.concat [v               | (VVD_BLEND_INDICES v,_proj) <- ca]
+    VVT_BLEND_WEIGHTS ->        VVD_BLEND_WEIGHTS $        V.concat [v               | (VVD_BLEND_WEIGHTS v,_proj) <- ca]
+    VVT_DIFFUSE ->              VVD_DIFFUSE $              V.concat [v               | (VVD_DIFFUSE v,_proj) <- ca]
+    VVT_NORMAL ->               VVD_NORMAL $               V.concat [rot proj v      | (VVD_NORMAL v,proj) <- ca]
+    VVT_POSITION ->             VVD_POSITION $             V.concat [rotTrans proj v | (VVD_POSITION v,proj) <- ca]
+    VVT_SPECULAR ->             VVD_SPECULAR $             V.concat [v               | (VVD_SPECULAR v,_proj) <- ca]
+    VVT_TANGENT ->              VVD_TANGENT $              V.concat [rot proj v      | (VVD_TANGENT v,proj) <- ca]
+    VVT_TEXTURE_COORDINATES1 -> VVD_TEXTURE_COORDINATES1 $ V.concat [v               | (VVD_TEXTURE_COORDINATES1 v,_proj) <- ca]
+    VVT_TEXTURE_COORDINATES2 -> VVD_TEXTURE_COORDINATES2 $ V.concat [v               | (VVD_TEXTURE_COORDINATES2 v,_proj) <- ca]
+    VVT_TEXTURE_COORDINATES3 -> VVD_TEXTURE_COORDINATES3 $ V.concat [v               | (VVD_TEXTURE_COORDINATES3 v,_proj) <- ca]
+  where
+    mulProj4 :: Proj4 -> Vec3 -> Vec3
+    mulProj4 p v = trim ((extendWith 1 v :: Vec4) .* fromProjective p)
+    rot proj v = V.map (mulProj4 proj') v
+      where
+        proj' = linear $ trim $ fromProjective proj :: Proj4
+    rotTrans proj v = V.map (mulProj4 proj) v
diff --git a/Graphics/LambdaCube/Pass.hs b/Graphics/LambdaCube/Pass.hs
--- a/Graphics/LambdaCube/Pass.hs
+++ b/Graphics/LambdaCube/Pass.hs
@@ -1,13 +1,13 @@
 module Graphics.LambdaCube.Pass where
 
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.Common
 import Graphics.LambdaCube.BlendMode
+import Graphics.LambdaCube.Common
+import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.GpuProgramUsage
 import Graphics.LambdaCube.Light
 import Graphics.LambdaCube.Texture
 import Graphics.LambdaCube.TextureUnitState
-import Graphics.LambdaCube.GpuProgram
-import Graphics.LambdaCube.GpuProgramUsage
+import Graphics.LambdaCube.Types
 
 -- | Categorisation of passes for the purpose of additive lighting
 data IlluminationStage
@@ -15,12 +15,12 @@
     | IS_PER_LIGHT  -- ^ Part of the rendering which occurs per light
     | IS_DECAL      -- ^ Post-lighting rendering
     | IS_UNKNOWN    -- ^ Not determined
-    deriving Eq
+    deriving (Eq,Ord)
 
 data (Texture t, LinkedGpuProgram lp) => Pass t lp
     = Pass
     { psName                     :: String                      -- ^ optional name for the pass
-    
+
     -- Colour properties, only applicable in fixed-function passes
     , psAmbient                  :: ColourValue
     , psDiffuse                  :: ColourValue
@@ -28,7 +28,7 @@
     , psEmissive                 :: ColourValue
     , psShininess                :: FloatType
     , psTracking                 :: TrackVertexColourType
-    
+
     -- Blending factors
     , psSourceBlendFactor        :: SceneBlendFactor
     , psDestBlendFactor          :: SceneBlendFactor
@@ -52,19 +52,19 @@
 
     -- Colour buffer settings
     , psColourWrite              :: Bool
-    
+
     -- Alpha reject settings
     , psAlphaRejectFunc          :: CompareFunction
     , psAlphaRejectVal           :: Int
     , psAlphaToCoverageEnabled   :: Bool
 
-	, psTransparentSorting       :: Bool                        -- ^ Transparent depth sorting
+    , psTransparentSorting       :: Bool                        -- ^ Transparent depth sorting
     , psTransparentSortingForced :: Bool                        -- ^ Transparent depth sorting forced
-    
+
     -- Culling mode
     , psCullMode                 :: CullingMode
     , psManualCullMode           :: ManualCullingMode
-    
+
     , psLightingEnabled          :: Bool                        -- ^ Lighting enabled?
     , psMaxSimultaneousLights    :: Int                         -- ^ Max simultaneous lights
     , psStartLight               :: Int                         -- ^ Starting light index
@@ -77,7 +77,7 @@
     -- Normalisation
     , psNormaliseNormals         :: Bool
     , psPolygonModeOverrideable  :: Bool
-    
+
     -- Fog
     , psFogOverride              :: Bool
     , psFogMode                  :: FogMode
@@ -85,16 +85,12 @@
     , psFogStart                 :: FloatType
     , psFogEnd                   :: FloatType
     , psFogDensity               :: FloatType
-    
+
     , psTextureUnitStates        :: [TextureUnitState t]
 
     , psVertexProgramUsage       :: Maybe GpuProgramUsage   -- ^ Vertex program details
---    , psShadowCasterVertexProgramUsage  :: GpuProgramUsage    -- ^ Vertex program details
---    , psShadowReceiverVertexProgramUsage    :: GpuProgramUsage  -- ^ Vertex program details
     , psFragmentProgramUsage     :: Maybe GpuProgramUsage   -- ^ Fragment program details
---    , psShadowReceiverFragmentProgramUsage  :: GpuProgramUsage  -- ^ Fragment program details
     , psGeometryProgramUsage     :: Maybe GpuProgramUsage   -- ^ Geometry program details
---    , psQueuedForDeletion        :: Bool    -- ^ Is this pass queued for deletion?
     , psLinkedGpuProgram         :: Maybe lp
 
     , psPassIterationCount       :: Int                         -- ^ number of pass iterations to perform
@@ -106,15 +102,9 @@
     , psPointAttenuationEnabled  :: Bool
     , psPointAttenuationCoeffs   :: FloatType3                  -- ^ constant, linear, quadratic coeffs
 
-    {-
-		// TU Content type lookups
-		typedef vector<unsigned short>::type ContentTypeLookup;
-		mutable ContentTypeLookup mShadowContentTypeLookup;
-		mutable bool mContentTypeLookupBuilt;
-    -}  
     , psLightScissoring          :: Bool                        -- ^ Scissoring for the light?
     , psLightClipPlanes          :: Bool                        -- ^ User clip planes for light?
     , psIlluminationStage        :: IlluminationStage           -- ^ Illumination stage?
     }
-    deriving Eq
+    deriving (Eq,Ord)
 
diff --git a/Graphics/LambdaCube/PixelFormat.hs b/Graphics/LambdaCube/PixelFormat.hs
--- a/Graphics/LambdaCube/PixelFormat.hs
+++ b/Graphics/LambdaCube/PixelFormat.hs
@@ -1,8 +1,5 @@
 module Graphics.LambdaCube.PixelFormat where
 
-import Data.Word
-import Foreign.Ptr
-
 -- | The pixel format used for images, textures, and render surfaces
 data PixelFormat
     = PF_UNKNOWN        -- ^ Unknown pixel format.
@@ -25,32 +22,8 @@
     | PF_A8B8G8R8       -- ^ 32-bit pixel format, 8 bits for blue, green, red and alpha.
     | PF_B8G8R8A8       -- ^ 32-bit pixel format, 8 bits for blue, green, red and alpha.
     | PF_R8G8B8A8       -- ^ 32-bit pixel format, 8 bits for red, green, blue and alpha.
-    | PF_X8R8G8B8       -- ^ 32-bit pixel format, 8 bits for red, 8 bits for green, 8 bits for blue
-                        --   like PF_A8R8G8B8, but alpha will get discarded
-    | PF_X8B8G8R8       -- ^ 32-bit pixel format, 8 bits for blue, 8 bits for green, 8 bits for red
-                        --   like PF_A8B8G8R8, but alpha will get discarded
-{-
-#if OGRE_ENDIAN == OGRE_ENDIAN_BIG
--- ^ 3 byte pixel format, 1 byte for red, 1 byte for green, 1 byte for blue
-PF_BYTE_RGB = PF_R8G8B8,
--- ^ 3 byte pixel format, 1 byte for blue, 1 byte for green, 1 byte for red
-PF_BYTE_BGR = PF_B8G8R8,
--- ^ 4 byte pixel format, 1 byte for blue, 1 byte for green, 1 byte for red and one byte for alpha
-PF_BYTE_BGRA = PF_B8G8R8A8,
--- ^ 4 byte pixel format, 1 byte for red, 1 byte for green, 1 byte for blue, and one byte for alpha
-PF_BYTE_RGBA = PF_R8G8B8A8,
-#else
--- ^ 3 byte pixel format, 1 byte for red, 1 byte for green, 1 byte for blue
-PF_BYTE_RGB = PF_B8G8R8,
--- ^ 3 byte pixel format, 1 byte for blue, 1 byte for green, 1 byte for red
-PF_BYTE_BGR = PF_R8G8B8,
--- ^ 4 byte pixel format, 1 byte for blue, 1 byte for green, 1 byte for red and one byte for alpha
-PF_BYTE_BGRA = PF_A8R8G8B8,
--- ^ 4 byte pixel format, 1 byte for red, 1 byte for green, 1 byte for blue, and one byte for alpha
-PF_BYTE_RGBA = PF_A8B8G8R8,
-#endif        
--}
-
+    | PF_X8R8G8B8       -- ^ 32-bit pixel format, 8 bits for red, 8 bits for green, 8 bits for blue; like PF_A8R8G8B8, but alpha will get discarded
+    | PF_X8B8G8R8       -- ^ 32-bit pixel format, 8 bits for blue, 8 bits for green, 8 bits for red; like PF_A8B8G8R8, but alpha will get discarded
     | PF_A2R10G10B10    -- ^ 32-bit pixel format, 2 bits for alpha, 10 bits for red, green and blue.
     | PF_A2B10G10R10    -- ^ 32-bit pixel format, 10 bits for blue, green and red, 2 bits for alpha.
     | PF_DXT1           -- ^ DDS (DirectDraw Surface) DXT1 format
@@ -58,437 +31,32 @@
     | PF_DXT3           -- ^ DDS (DirectDraw Surface) DXT3 format
     | PF_DXT4           -- ^ DDS (DirectDraw Surface) DXT4 format
     | PF_DXT5           -- ^ DDS (DirectDraw Surface) DXT5 format
-    | PF_FLOAT16_R      -- 16-bit pixel format, 16 bits (float) for red
-    | PF_FLOAT16_RGB    -- 48-bit pixel format, 16 bits (float) for red, 16 bits (float) for green, 16 bits (float) for blue
-    | PF_FLOAT16_RGBA   -- 64-bit pixel format, 16 bits (float) for red, 16 bits (float) for green, 16 bits (float) for blue, 16 bits (float) for alpha
-    | PF_FLOAT32_R      -- 16-bit pixel format, 16 bits (float) for red
-    | PF_FLOAT32_RGB    -- 96-bit pixel format, 32 bits (float) for red, 32 bits (float) for green, 32 bits (float) for blue
-    | PF_FLOAT32_RGBA   -- 128-bit pixel format, 32 bits (float) for red, 32 bits (float) for green, 32 bits (float) for blue, 32 bits (float) for alpha
-    | PF_FLOAT16_GR     -- 32-bit, 2-channel s10e5 floating point pixel format, 16-bit green, 16-bit red
-    | PF_FLOAT32_GR     -- 64-bit, 2-channel floating point pixel format, 32-bit green, 32-bit red
-    | PF_DEPTH          -- Depth texture format
-    | PF_SHORT_RGBA     -- 64-bit pixel format, 16 bits for red, green, blue and alpha
-    | PF_SHORT_GR       -- 32-bit pixel format, 16-bit green, 16-bit red
-    | PF_SHORT_RGB      -- 48-bit pixel format, 16 bits for red, green and blue
-    deriving Eq
+    | PF_FLOAT16_R      -- ^ 16-bit pixel format, 16 bits (float) for red
+    | PF_FLOAT16_RGB    -- ^ 48-bit pixel format, 16 bits (float) for red, 16 bits (float) for green, 16 bits (float) for blue
+    | PF_FLOAT16_RGBA   -- ^ 64-bit pixel format, 16 bits (float) for red, 16 bits (float) for green, 16 bits (float) for blue, 16 bits (float) for alpha
+    | PF_FLOAT32_R      -- ^ 16-bit pixel format, 16 bits (float) for red
+    | PF_FLOAT32_RGB    -- ^ 96-bit pixel format, 32 bits (float) for red, 32 bits (float) for green, 32 bits (float) for blue
+    | PF_FLOAT32_RGBA   -- ^ 128-bit pixel format, 32 bits (float) for red, 32 bits (float) for green, 32 bits (float) for blue, 32 bits (float) for alpha
+    | PF_FLOAT16_GR     -- ^ 32-bit, 2-channel s10e5 floating point pixel format, 16-bit green, 16-bit red
+    | PF_FLOAT32_GR     -- ^ 64-bit, 2-channel floating point pixel format, 32-bit green, 32-bit red
+    | PF_DEPTH          -- ^ Depth texture format
+    | PF_SHORT_RGBA     -- ^ 64-bit pixel format, 16 bits for red, green, blue and alpha
+    | PF_SHORT_GR       -- ^ 32-bit pixel format, 16-bit green, 16-bit red
+    | PF_SHORT_RGB      -- ^ 48-bit pixel format, 16 bits for red, green and blue
+    deriving (Eq,Ord)
 
 -- | Flags defining some on/off properties of pixel formats
-{-
-    PFF_HASALPHA        = 0x00000001,      
-    PFF_COMPRESSED      = 0x00000002,
-    PFF_FLOAT           = 0x00000004,         
-    PFF_DEPTH           = 0x00000008,
-    PFF_NATIVEENDIAN    = 0x00000010,
-    PFF_LUMINANCE       = 0x00000020
--}
 data PixelFormatFlags
     = PFF_HASALPHA      -- ^ This format has an alpha channel
-    | PFF_COMPRESSED    -- ^ This format is compressed. This invalidates the values in elemBytes,
-                        --   elemBits and the bit counts as these might not be fixed in a compressed format.
+    | PFF_COMPRESSED    -- ^ This format is compressed. This invalidates the values in elemBytes, elemBits and the bit counts as these might not be fixed in a compressed format.
     | PFF_FLOAT         -- ^ This is a floating point format
     | PFF_DEPTH         -- ^ This is a depth format (for depth textures)
-    | PFF_NATIVEENDIAN  -- ^ Format is in native endian. Generally true for the 16, 24 and 32 bits
-                        --   formats which can be represented as machine integers.
-    | PFF_LUMINANCE     -- ^ This is an intensity format instead of a RGB one. The luminance
-                        --   replaces R,G and B. (but not A)
+    | PFF_NATIVEENDIAN  -- ^ Format is in native endian. Generally true for the 16, 24 and 32 bits formats which can be represented as machine integers.
+    | PFF_LUMINANCE     -- ^ This is an intensity format instead of a RGB one. The luminance replaces R,G and B. (but not A)
 
 -- | Pixel component format
 data PixelComponentType
-    = PCT_BYTE      -- | Byte per component (8 bit fixed 0.0..1.0)
-    | PCT_SHORT     -- | Short per component (16 bit fixed 0.0..1.0))
-    | PCT_FLOAT16   -- | 16 bit float per component
-    | PCT_FLOAT32   -- | 32 bit float per component
-
-         {-| Structure used to define a box in a 3-D integer space.
-         	Note that the left, top, and front edges are included but the right, 
-         	bottom and back ones are not.
-         -}
---        struct Box
---        {
---            size_t left, top, right, bottom, front, back;
-			-- | Parameterless constructor for setting the members manually
---            Box()
---				: left(0), top(0), right(1), bottom(1), front(0), back(1)
---            {
---            }
-            {-| Define a box from left, top, right and bottom coordinates
-            	This box will have depth one (front=0 and back=1).
-            	@param	l	x value of left edge
-            	@param	t	y value of top edge
-            	@param	r	x value of right edge
-            	@param	b	y value of bottom edge
-            	@note Note that the left, top, and front edges are included 
- 		           	but the right, bottom and back ones are not.
-            -}
---            Box( size_t l, size_t t, size_t r, size_t b ):
---                left(l),
---                top(t),   
---                right(r),
---                bottom(b),
---                front(0),
---                back(1)
---            {
---          		assert(right >= left && bottom >= top && back >= front);
---            }
-            {-| Define a box from left, top, front, right, bottom and back
-            	coordinates.
-            	@param	l	x value of left edge
-            	@param	t	y value of top edge
-            	@param  ff  z value of front edge
-            	@param	r	x value of right edge
-            	@param	b	y value of bottom edge
-            	@param  bb  z value of back edge
-            	@note Note that the left, top, and front edges are included 
- 		           	but the right, bottom and back ones are not.
-            -}
---            Box( size_t l, size_t t, size_t ff, size_t r, size_t b, size_t bb ):
---                left(l),
---                top(t),   
---                right(r),
---                bottom(b),
---                front(ff),
---                back(bb)
---            {
---          		assert(right >= left && bottom >= top && back >= front);
---            }
-            
-            -- | Return true if the other box is a part of this one
---            bool contains(const Box &def) const
---            {
---            	return (def.left >= left && def.top >= top && def.front >= front &&
---					def.right <= right && def.bottom <= bottom && def.back <= back);
---            }
-            
-            -- | Get the width of this box
---            size_t getWidth() const { return right-left; }
-            -- | Get the height of this box
---            size_t getHeight() const { return bottom-top; }
-            -- | Get the depth of this box
---            size_t getDepth() const { return back-front; }
---        };
-
-{-| A primitive describing a volume (3D), image (2D) or line (1D) of pixels in memory.
-    In case of a rectangle, depth must be 1. 
-    Pixels are stored as a succession of "depth" slices, each containing "height" rows of 
-    "width" pixels.
--}
-data PixelBox
-    = PixelBox
-    { pbPixelData       :: Ptr Word8
-    , pbPixelFormat     :: PixelFormat
-    , pbLeft            :: Int
-    , pbTop             :: Int
-    , pbRight           :: Int
-    , pbBottom          :: Int
-    , pbFront           :: Int
-    , pbBack            :: Int
-    }
-        
---    class _OgreExport PixelBox: public Box, public ImageAlloc {
---    public:
-    	-- | Parameter constructor for setting the members manually
---    	PixelBox() {}
---		~PixelBox() {}
-		{-| Constructor providing extents in the form of a Box object. This constructor
-    		assumes the pixel data is laid out consecutively in memory. (this
-    		means row after row, slice after slice, with no space in between)
-    		@param extents	    Extents of the region defined by data
-    		@param pixelFormat	Format of this buffer
-    		@param pixelData	Pointer to the actual data
-    	-}
---		PixelBox(const Box &extents, PixelFormat pixelFormat, void *pixelData=0):
---			Box(extents), data(pixelData), format(pixelFormat)
---		{
---			setConsecutive();
---		}
-    	{-| Constructor providing width, height and depth. This constructor
-    		assumes the pixel data is laid out consecutively in memory. (this
-    		means row after row, slice after slice, with no space in between)
-    		@param width	    Width of the region
-    		@param height	    Height of the region
-    		@param depth	    Depth of the region
-    		@param pixelFormat	Format of this buffer
-    		@param pixelData    Pointer to the actual data
-    	-}
---    	PixelBox(size_t width, size_t height, size_t depth, PixelFormat pixelFormat, void *pixelData=0):
---    		Box(0, 0, 0, width, height, depth),
---    		data(pixelData), format(pixelFormat)
---    	{
---    		setConsecutive();
---    	}
-    	
-        -- | The data pointer 
---        void *data;
-        -- | The pixel format 
---        PixelFormat format;
-        {-| Number of elements between the leftmost pixel of one row and the left
-         	pixel of the next. This value must always be equal to getWidth() (consecutive) 
-			for compressed formats.
-        -}
---        size_t rowPitch;
-        {-| Number of elements between the top left pixel of one (depth) slice and 
-         	the top left pixel of the next. This can be a negative value. Must be a multiple of
-         	rowPitch. This value must always be equal to getWidth()*getHeight() (consecutive) 
-			for compressed formats.
-        -}
---        size_t slicePitch;
-        
-        {-| Set the rowPitch and slicePitch so that the buffer is laid out consecutive 
-         	in memory.
-        -}        
---        void setConsecutive()
---        {
---            rowPitch = getWidth();
---            slicePitch = getWidth()*getHeight();
---        }
-        {-|	Get the number of elements between one past the rightmost pixel of 
-         	one row and the leftmost pixel of the next row. (IE this is zero if rows
-         	are consecutive).
-        -}
---        size_t getRowSkip() const { return rowPitch - getWidth(); }
-        {-| Get the number of elements between one past the right bottom pixel of
-         	one slice and the left top pixel of the next slice. (IE this is zero if slices
-         	are consecutive).
-        -}
---        size_t getSliceSkip() const { return slicePitch - (getHeight() * rowPitch); }
-
-        {-| Return whether this buffer is laid out consecutive in memory (ie the pitches
-         	are equal to the dimensions)
-        -}        
---        bool isConsecutive() const 
---		{ 
---			return rowPitch == getWidth() && slicePitch == getWidth()*getHeight(); 
---		}
-        {-| Return the size (in bytes) this image would take if it was
-        	laid out consecutive in memory
-      	-}
---      	size_t getConsecutiveSize() const;
-      	{-| Return a subvolume of this PixelBox.
-      		@param def	Defines the bounds of the subregion to return
-      		@returns	A pixel box describing the region and the data in it
-      		@remarks	This function does not copy any data, it just returns
-      			a PixelBox object with a data pointer pointing somewhere inside 
-      			the data of object.
-      		@throws	Exception(ERR_INVALIDPARAMS) if def is not fully contained
-      	-}
---      	PixelBox getSubVolume(const Box &def) const;
---    };
-
-{-| Returns the size in bytes of an element of the given pixel format.
- @returns
-       The size in bytes of an element. See Remarks.
- @remarks
-       Passing PF_UNKNOWN will result in returning a size of 0 bytes.
--}
---TODO getNumElemBytes :: PixelFormat -> Int
---static size_t getNumElemBytes( PixelFormat format );
-
-{-| Returns the size in bits of an element of the given pixel format.
-  @returns
-       The size in bits of an element. See Remarks.
-   @remarks
-       Passing PF_UNKNOWN will result in returning a size of 0 bits.
--}
---TODO getNumElemBits :: PixelFormat -> Int
---static size_t getNumElemBits( PixelFormat format );
-
-{-| Returns the size in memory of a region with the given extents and pixel
-	format with consecutive memory layout.
-	@param width
-		The width of the area
-	@param height
-		The height of the area
-	@param depth
-		The depth of the area
-	@param format
-		The format of the area
-  	@returns
-  		The size in bytes
-	@remarks
-		In case that the format is non-compressed, this simply returns
-		width*height*depth*PixelUtil::getNumElemBytes(format). In the compressed
-		case, this does serious magic.
--}
---TODO getMemorySize :: Int -> Int -> Int -> PixelFormat -> Int
---static size_t getMemorySize(size_t width, size_t height, size_t depth, PixelFormat format);
-
-{-| Returns the property flags for this pixel format
-  @returns
-       A bitfield combination of PFF_HASALPHA, PFF_ISCOMPRESSED,
-       PFF_FLOAT, PFF_DEPTH, PFF_NATIVEENDIAN, PFF_LUMINANCE
-  @remarks
-       This replaces the seperate functions for formatHasAlpha, formatIsFloat, ...
--}
---static unsigned int getFlags( PixelFormat format );
-
--- | Shortcut method to determine if the format has an alpha component
---TODO hasAlpha :: PixelFormat -> Bool
---static bool hasAlpha(PixelFormat format);
-
--- | Shortcut method to determine if the format is floating point
---TODO isFloatingPoint :: PixelFormat -> Bool
---static bool isFloatingPoint(PixelFormat format);
-
--- | Shortcut method to determine if the format is compressed
---TODO isCompressed :: PixelFormat -> Bool
---static bool isCompressed(PixelFormat format);
-
--- | Shortcut method to determine if the format is a depth format.
---TODO isDepth :: PixelFormat -> Bool
---static bool isDepth(PixelFormat format);
-
--- | Shortcut method to determine if the format is in native endian format.
---TODO isNativeEndian :: PixelFormat -> Bool
---static bool isNativeEndian(PixelFormat format);
-
--- | Shortcut method to determine if the format is a luminance format.
---TODO isLuminance :: PixelFormat -> Bool
---static bool isLuminance(PixelFormat format);
-
-{-| Return wether a certain image extent is valid for this image format.
-	@param width
-		The width of the area
-	@param height
-		The height of the area
-	@param depth
-		The depth of the area
-	@param format
-		The format of the area
-	@remarks For non-compressed formats, this is always true. For DXT formats,
-	only sizes with a width and height multiple of 4 and depth 1 are allowed.
--}
---TODO isValidExtent :: Int -> Int -> Int -> PixelFormat -> Bool
---static bool isValidExtent(size_t width, size_t height, size_t depth, PixelFormat format);
-
-{-| Gives the number of bits (RGBA) for a format. See remarks.          
-  @remarks      For non-colour formats (dxt, depth) this returns [0,0,0,0].
--}
---TODO static void getBitDepths(PixelFormat format, int rgba[4]);
-
-{-| Gives the masks for the R, G, B and A component
-  @note			Only valid for native endian formats
--}
---TODO static void getBitMasks(PixelFormat format, uint32 rgba[4]);
-
-{-| Gives the bit shifts for R, G, B and A component
-@note			Only valid for native endian formats
--}
---TODO static void getBitShifts(PixelFormat format, unsigned char rgba[4]);
-
--- | Gets the name of an image format
---TODO getFormatName :: PixelFormat -> String
---static String getFormatName(PixelFormat srcformat);
-
-{-| Returns wether the format can be packed or unpacked with the packColour()
-and unpackColour() functions. This is generally not true for compressed and
-depth formats as they are special. It can only be true for formats with a
-fixed element size.
-  @returns 
-       true if yes, otherwise false
--}
---TODO static bool isAccessible(PixelFormat srcformat);
-
-{-| Returns the component type for a certain pixel format. Returns PCT_BYTE
-    in case there is no clear component type like with compressed formats.
-    This is one of PCT_BYTE, PCT_SHORT, PCT_FLOAT16, PCT_FLOAT32.
--}
---TODO getComponentType :: PixelFormat -> PixelComponentType
---static PixelComponentType getComponentType(PixelFormat fmt);
-
-{-| Returns the component count for a certain pixel format. Returns 3(no alpha) or 
-    4 (has alpha) in case there is no clear component type like with compressed formats.
- -}
---TODO getComponentCount :: PixelFormat -> Int
---static size_t getComponentCount(PixelFormat fmt);
-
-{-| Gets the format from given name.
-    @param  name            The string of format name
-    @param  accessibleOnly  If true, non-accessible format will treat as invalid format,
-                            otherwise, all supported format are valid.
-    @param  caseSensitive   Should be set true if string match should use case sensitivity.
-    @returns                The format match the format name, or PF_UNKNOWN if is invalid name.
--}
---TODO static PixelFormat getFormatFromName(const String& name, bool accessibleOnly = false, bool caseSensitive = false);
-
-{-| Gets the BNF expression of the pixel-formats.
-    @note                   The string returned by this function is intented to use as a BNF expression
-                            to work with Compiler2Pass.
-    @param  accessibleOnly  If true, only accessible pixel format will take into account, otherwise all
-                            pixel formats list in PixelFormat enumeration will being returned.
-    @returns                A string contains the BNF expression.
--}
---TODO static String getBNFExpressionOfPixelFormats(bool accessibleOnly = false);
-
-{-| Returns the similar format but acoording with given bit depths.
-    @param fmt      The original foamt.
-    @param integerBits Preferred bit depth (pixel bits) for integer pixel format.
-                    Available values: 0, 16 and 32, where 0 (the default) means as it is.
-    @param floatBits Preferred bit depth (channel bits) for float pixel format.
-                    Available values: 0, 16 and 32, where 0 (the default) means as it is.
-    @returns        The format that similar original format with bit depth according
-                    with preferred bit depth, or original format if no convertion occuring.
--}
---TODO getFormatForBitDepths :: PixelFormat -> Int -> Int -> PixelFormat
---static PixelFormat getFormatForBitDepths(PixelFormat fmt, ushort integerBits, ushort floatBits);
-
-{-| Pack a colour value to memory
-	@param colour	The colour
-	@param pf		Pixelformat in which to write the colour
-	@param dest		Destination memory location
--}
---TODO static void packColour(const ColourValue &colour, const PixelFormat pf,  void* dest);
-{-| Pack a colour value to memory
-	@param r,g,b,a	The four colour components, range 0x00 to 0xFF
-	@param pf		Pixelformat in which to write the colour
-	@param dest		Destination memory location
--}
---TODO static void packColour(const uint8 r, const uint8 g, const uint8 b, const uint8 a, const PixelFormat pf,  void* dest);
- {-| Pack a colour value to memory
-	@param r,g,b,a	The four colour components, range 0.0f to 1.0f
-					(an exception to this case exists for floating point pixel
-					formats, which don't clamp to 0.0f..1.0f)
-	@param pf		Pixelformat in which to write the colour
-	@param dest		Destination memory location
--}
---TODO static void packColour(const float r, const float g, const float b, const float a, const PixelFormat pf,  void* dest);
-
-{-| Unpack a colour value from memory
-	@param colour	The colour is returned here
-	@param pf		Pixelformat in which to read the colour
-	@param src		Source memory location
--}
---TODO static void unpackColour(ColourValue *colour, PixelFormat pf,  const void* src);
-{-| Unpack a colour value from memory
-	@param r,g,b,a	The colour is returned here (as byte)
-	@param pf		Pixelformat in which to read the colour
-	@param src		Source memory location
-	@remarks 	This function returns the colour components in 8 bit precision,
-		this will lose precision when coming from PF_A2R10G10B10 or floating
-		point formats.  
--}
---TODO static void unpackColour(uint8 *r, uint8 *g, uint8 *b, uint8 *a, PixelFormat pf,  const void* src);
-{-| Unpack a colour value from memory
-	@param r,g,b,a	The colour is returned here (as float)
-	@param pf		Pixelformat in which to read the colour
-	@param src		Source memory location
--}
---TODO static void unpackColour(float *r, float *g, float *b, float *a, PixelFormat pf,  const void* src); 
-
-{-| Convert consecutive pixels from one format to another. No dithering or filtering is being done. 
- 	Converting from RGB to luminance takes the R channel.  In case the source and destination format match,
- 	just a copy is done.
- 	@param	src			Pointer to source region
- 	@param	srcFormat	Pixel format of source region
- 	@param   dst			Pointer to destination region
- 	@param	dstFormat	Pixel format of destination region
- -}
---TODO static void bulkPixelConversion(void *src, PixelFormat srcFormat, void *dest, PixelFormat dstFormat, unsigned int count);
-
-{-| Convert pixels from one format to another. No dithering or filtering is being done. Converting
-  	from RGB to luminance takes the R channel. 
- 	@param	src			PixelBox containing the source pixels, pitches and format
- 	@param	dst			PixelBox containing the destination pixels, pitches and format
- 	@remarks The source and destination boxes must have the same
- 	dimensions. In case the source and destination format match, a plain copy is done.
--}
---TODO static void bulkPixelConversion(const PixelBox &src, const PixelBox &dst);
+    = PCT_BYTE      -- ^ Byte per component (8 bit fixed 0.0..1.0)
+    | PCT_SHORT     -- ^ Short per component (16 bit fixed 0.0..1.0))
+    | PCT_FLOAT16   -- ^ 16 bit float per component
+    | PCT_FLOAT32   -- ^ 32 bit float per component
diff --git a/Graphics/LambdaCube/RenderOperation.hs b/Graphics/LambdaCube/RenderOperation.hs
--- a/Graphics/LambdaCube/RenderOperation.hs
+++ b/Graphics/LambdaCube/RenderOperation.hs
@@ -1,31 +1,23 @@
 module Graphics.LambdaCube.RenderOperation where
 
-import Graphics.LambdaCube.HardwareVertexBuffer
 import Graphics.LambdaCube.HardwareIndexBuffer
+import Graphics.LambdaCube.HardwareVertexBuffer
 import Graphics.LambdaCube.VertexIndexData
 
--- | The rendering operation type to perform
+-- | The interpretation of a sequence of vertices.
 data OperationType
-    = OT_POINT_LIST     -- ^ A list of points, 1 vertex per point
-    | OT_LINE_LIST      -- ^ A list of lines, 2 vertices per line
-    | OT_LINE_STRIP     -- ^ A strip of connected lines, 1 vertex per line plus 1 start vertex
-    | OT_TRIANGLE_LIST  -- ^ A list of triangles, 3 vertices per triangle
-    | OT_TRIANGLE_STRIP -- ^ A strip of triangles, 3 vertices for the first triangle, and 1 per triangle after that 
-    | OT_TRIANGLE_FAN   -- ^ A fan of triangles, 3 vertices for the first triangle, and 1 per triangle after that
-    deriving (Eq,Enum)
-
+    = OT_POINT_LIST     -- ^ A list of points, 1 vertex per point.
+    | OT_LINE_LIST      -- ^ A list of lines, 2 vertices per line.
+    | OT_LINE_STRIP     -- ^ A strip of connected lines, 1 vertex per line plus 1 start vertex.
+    | OT_TRIANGLE_LIST  -- ^ A list of triangles, 3 vertices per triangle.
+    | OT_TRIANGLE_STRIP -- ^ A strip of triangles, 3 vertices for the first triangle, and 1 per triangle after that.
+    | OT_TRIANGLE_FAN   -- ^ A fan of triangles, 3 vertices for the first triangle, and 1 per triangle after that.
+    deriving (Eq,Ord,Enum)
 
--- | 'New' rendering operation using vertex buffers.
 data (HardwareVertexBuffer vb, HardwareIndexBuffer ib) => RenderOperation vb ib
     = RenderOperation
     { roVertexData      :: VertexData vb        -- ^ Vertex source data
     , roOperationType   :: OperationType        -- ^ The type of operation to perform
-    {-| Specifies whether to use indexes to determine the vertices to use as input. If false, the vertices are
-        simply read in sequence to define the primitives. If true, indexes are used instead to identify vertices
-        anywhere in the buffer, and allowing vertices to be used more than once.
-        If true, then the indexBuffer, indexStart and numIndexes properties must be valid.
-    -}
     , roIndexData       :: Maybe (IndexData ib) -- ^ Index data - only valid if useIndexes is true
---    , roSrcRenderable   :: Renderable     -- ^ Debug pointer back to renderable which created this
     }
-    deriving Eq
+    deriving (Eq,Ord)
diff --git a/Graphics/LambdaCube/RenderQueue.hs b/Graphics/LambdaCube/RenderQueue.hs
--- a/Graphics/LambdaCube/RenderQueue.hs
+++ b/Graphics/LambdaCube/RenderQueue.hs
@@ -1,60 +1,61 @@
 module Graphics.LambdaCube.RenderQueue where
 
+import Control.Monad
 import Data.IntMap (IntMap)
-import qualified Data.IntMap as IntMap
 import Data.List
 import Data.Maybe
-import Control.Monad
+import Data.Ord
 
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.Utility
-import Graphics.LambdaCube.Pass
+import Graphics.LambdaCube.BlendMode
+import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.HardwareIndexBuffer
+import Graphics.LambdaCube.HardwareVertexBuffer
 import Graphics.LambdaCube.Light
+import Graphics.LambdaCube.Pass
 import Graphics.LambdaCube.RenderOperation
-import Graphics.LambdaCube.VertexIndexData
 import Graphics.LambdaCube.RenderSystem
-import Graphics.LambdaCube.HardwareVertexBuffer
-import Graphics.LambdaCube.HardwareIndexBuffer
 import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.TextureUnitState
-import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.Types
+import Graphics.LambdaCube.Utility
+import Graphics.LambdaCube.VertexIndexData
 
--- Standard Render Queues
-constRenderQueueBackground      = 0   :: Int
-constRenderQueueSkiesEarly      = 5   :: Int  -- ^ First queue (after backgrounds), used for skyboxes if rendered first
-constRenderQueue1               = 10  :: Int
-constRenderQueue2               = 20  :: Int
-constRenderQueueWorldGeometry1  = 25  :: Int
-constRenderQueue3               = 30  :: Int
-constRenderQueue4               = 40  :: Int
-constRenderQueueMain            = 50  :: Int  -- ^ The default render queue
-constRenderQueue6               = 60  :: Int
-constRenderQueue7               = 70  :: Int
-constRenderQueueWorldGeometry2  = 75  :: Int
-constRenderQueue8               = 80  :: Int
-constRenderQueue9               = 90  :: Int
-constRenderQueueSkiesLate       = 95  :: Int  -- ^ Penultimate queue(before overlays), used for skyboxes if rendered last
-constRenderQueueOverlay         = 100 :: Int  -- ^ Use this queue for objects which must be rendered last e.g. overlays
-constRenderQueueMax             = 105 :: Int  -- ^ Final possible render queue, don't exceed this
+-- | Standard render queue priorities.  Note that any enumeration type
+-- can be used to specify render priorities (i.e. top-level drawing
+-- order), this is just a simple convenience type.
+data RenderQueuePriority
+    = RQP_Background
+    | RQP_EarlySky
+    | RQP_EarlyWorld
+    | RQP_Main
+    | RQP_LateWorld
+    | RQP_LateSky
+    | RQP_Overlay
+    deriving Enum
 
-constRenderableDefaultPriority  = 100 :: Int
+-- | The default render queue priority.
+defaultRQP :: Maybe RenderQueuePriority
+defaultRQP = Nothing
 
+renderableDefaultPriority :: Int
+renderableDefaultPriority = 100
+
 data RenderGroupOptions
     = RenderGroupOptions
     { rqoShadowsEnabled :: Bool
     }
 
+defaultRenderGroupOptions :: RenderGroupOptions
 defaultRenderGroupOptions = RenderGroupOptions
     { rqoShadowsEnabled = True
     }
 
--- | Struct associating a single Pass with a single Renderable. 
+-- | Struct associating a single Pass with a single Renderable.
 data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => RenderablePass vb ib t lp
     = RenderablePass
     { rpOperation   :: RenderOperation vb ib
     , rpPass        :: Pass t lp
-    , rpMatrix      :: Matrix4
-    , rpLights      :: [(Matrix4,Light)]
+    , rpMatrix      :: Proj4
+    , rpLights      :: [(Proj4,Light)]
     }
 
 data RenderStatistics
@@ -64,25 +65,22 @@
     , rsBatchCount  :: Int
     }
     deriving Show
-    
+
+emptyRenderStatistics :: RenderStatistics
 emptyRenderStatistics = RenderStatistics
     { rsFaceCount   = 0
     , rsVertexCount = 0
     , rsBatchCount  = 0
     }
 
---renderPassGroup :: RenderSystem -> RenderablePass -> IO ()
+renderPassGroup :: (RenderSystem rs vb ib q t p lp) => FloatType -> rs -> RenderStatistics -> [RenderablePass vb ib t lp] -> IO RenderStatistics
 renderPassGroup time rs rstat r = do
     let pass = rpPass $ head r
         depthBiasConstant   = psDepthBiasConstant pass
         depthBiasPerIter    = psDepthBiasPerIteration pass
         depthBiasSlopeScale = psDepthBiasSlopeScale pass
         iterationCnt        = psPassIterationCount pass
-        geomCmp a b         = rpOperation a == rpOperation b
-        geomSort a b        = case geomCmp a b of
-            { True  -> EQ
-            ; False -> GT
-            }
+        geomCmp             = comparing rpOperation
         renderGeomGrp pass rst r = do
             let rop     = rpOperation $ head r
                 geomCnt = length r
@@ -93,43 +91,46 @@
             unbindGeometry rs rop
 
             -- calculate statistics
-            let val     = if isNothing $ roIndexData rop then vdVertexCount $ roVertexData rop else idIndexCount $ fromJust $ roIndexData rop 
+            let val     = if isNothing $ roIndexData rop then vdVertexCount $ roVertexData rop else idIndexCount $ fromJust $ roIndexData rop
                 val'    = case roOperationType rop of
-                    { OT_TRIANGLE_LIST  -> val `div` 3
-                    ; OT_TRIANGLE_STRIP -> val - 2
-                    ; OT_TRIANGLE_FAN   -> val - 2
-                    ; _ -> 0
-                    }
-            return RenderStatistics
-                { rsFaceCount   = geomCnt * iterationCnt * val' + rsFaceCount rst
-                , rsVertexCount = geomCnt * (vdVertexCount $ roVertexData rop) + rsVertexCount rst
-                , rsBatchCount  = geomCnt * iterationCnt + rsBatchCount rst
+                    OT_TRIANGLE_LIST  -> val `div` 3
+                    OT_TRIANGLE_STRIP -> val - 2
+                    OT_TRIANGLE_FAN   -> val - 2
+                    _ -> 0
+                fc = geomCnt * iterationCnt * val' + rsFaceCount rst
+                vc = geomCnt * (vdVertexCount $ roVertexData rop) + rsVertexCount rst
+                bc = geomCnt * iterationCnt + rsBatchCount rst
+            fc `seq` vc `seq` bc `seq` return RenderStatistics
+                { rsFaceCount   = fc
+                , rsVertexCount = vc
+                , rsBatchCount  = bc
                 }
 
         renderGeom pass r = do
-            setWorldMatrix rs $ rpMatrix r
-
             --TODO: do pass and per light iterations
             --       light list with attributes
             -- filter relevant lights
-            let lights      = drop (psStartLight pass) $ take (psMaxSimultaneousLights pass) $ filter filtL $ rpLights r
-                filtL (m,l) = case psOnlyLightType pass of
-                    { Nothing   -> True
-                    ; Just t    -> t == (lgType l)
-                    }
+            let lights      = {-drop (psStartLight pass) $ take (psMaxSimultaneousLights pass) $ filter filtL $ -}rpLights r
+                --filtL (_,l) = case psOnlyLightType pass of
+                --    Nothing   -> True
+                --    Just t    -> t == (lgType l)
+                dropEmpty [] = False
+                dropEmpty _ = True
                 -- create light groups according requirement (per n light)
-                lightGrp    = case psLightsPerIteration pass of
-                    { Nothing   -> [lights]
-                    ; Just n    -> f n lights
-                    }
+                lightGrp    = filter dropEmpty $ case psLightsPerIteration pass of
+                    Nothing   -> [lights]
+                    Just n    -> f n lights
                 f _ [] = []
                 f n l = h:(f n t)
                   where
                     (h,t) = splitAt n l
             -- render n times each light group
+            --putStrLn $ " iterationCnt: " ++ show iterationCnt ++ " len lightGrp: " ++ show lightGrp
+            setWorldMatrix rs $ rpMatrix r
             forM_ lightGrp $ \l -> do
                 --TODO setup lights
-                --TODO: useLights rs l
+                --print $ ("light cnt:",length l)
+                useLights rs l
                 --TODO: setup per light iteration shader parameters
                 forM_ [1..iterationCnt] $ \pc -> do
                     -- TODO: update iteration dependent parameteres:
@@ -137,89 +138,93 @@
                     -- Update derived depth bias
                     when (pc > 1 && depthBiasPerIter /= 0) $ setDepthBias rs (depthBiasConstant + (fromIntegral pc-1) * depthBiasPerIter) depthBiasSlopeScale
                     render rs $ rpOperation r
-            
-    setPass time rs pass 
+
+    setPass time rs pass
 --    print $ "passGrp len: " ++ (show $ length r) ++ " " ++ show [ tusFrameNames tu | tu <- psTextureUnitStates pass ]
     --TODO: setup global pass related shader parameters
-    --foldM (renderGeomGrp pass) rstat $ groupBy geomCmp $ sortBy geomSort r
-    foldM (renderGeomGrp pass) rstat $ groupSetBy geomCmp r
-   
---[(Matrix4,r,Int,Int)]    -- ^ List of Renderable information including WorldMatrix RenderQueueID and RenderPriority
---renderCollection :: (RenderSystem rs, Renderable r) => rs -> IntMap RenderGroupOptions -> [(Matrix4,r,Int,Int)] -> IO ()
-renderCollection time rs roptMap rstat rl = do
+    foldM' (renderGeomGrp pass) rstat $ groupSetBy geomCmp r
 
-    let passCmp a b = rpPass a == rpPass b
-        passSort a b = case passCmp a b of
-            { True  -> EQ
-            ; False -> GT
-            }
-        --groupPass 
-        
+renderCollection :: (RenderSystem rs vb ib q t p lp) => FloatType -> rs -> IntMap RenderGroupOptions ->
+    [(Proj4,Light)] -> RenderStatistics -> [(Proj4, [RenderEntity vb ib t lp], Int, Int)] -> IO RenderStatistics
+renderCollection time rs _roptMap lights rstat rl = do
+
+    let passCmp = comparing rpPass
+        --groupPass
+
         -- group by pass and geometry
-        --passGroupRenderMethod rst a = foldM (renderPassGroup time rs) rst $ groupBy passCmp $ sortBy passSort a
-        passGroupRenderMethod rst a = foldM (renderPassGroup time rs) rst $ groupSetBy passCmp a
-        
+        passGroupRenderMethod rst a = foldM' (renderPassGroup time rs) rst $ groupSetBy passCmp a
+
         -- sort by distance
-        distanceSortRenderMethod = undefined
-        
+        --distanceSortRenderMethod = undefined
+
         -- simple render
-        simpleRenderMethod = undefined
+        --simpleRenderMethod = undefined
 
-        
-        rents   = concat [r | (m,r,_,_) <- rl]
-        lights  = [] -- TODO
-        (_,_,grpID,_) = head rl
-        ropt = fromMaybe defaultRenderGroupOptions $ IntMap.lookup grpID roptMap
 
+        rents   = concatMap (\(_,r,_,_) -> r) rl
+        --(_,_,grpID,_) = head rl
+        --ropt = fromMaybe defaultRenderGroupOptions $ IntMap.lookup grpID roptMap
+
+        isTransparent p = case separateBlend of
+            True    -> alpha && color
+            False   -> case separateBlendOperation of
+                True    -> alpha && color
+                False   -> color
+          where
+            alpha = sourceFactorAlpha == SBF_ONE && destFactorAlpha == SBF_ZERO
+            color = sourceFactor == SBF_ONE && destFactor == SBF_ZERO
+            Pass
+                { psSeparateBlend               = separateBlend
+                , psSeparateBlendOperation      = separateBlendOperation
+                , psSourceBlendFactor           = sourceFactor
+                , psDestBlendFactor             = destFactor
+                , psSourceBlendFactorAlpha      = sourceFactorAlpha
+                , psDestBlendFactorAlpha        = destFactorAlpha
+                } = p
+
+        hasTransparent l = foldl' (\a b -> a || isTransparent b) False l
+        (solids,transparents) = partition (\a -> hasTransparent $ rePassList a) rents
+
+    --putStr $ "group prio:" ++ show grpID ++ " items: " ++ show (length rl) ++ " "
+    --putStr $ "solids: " ++ show (length solids) ++ " "
+    --putStrLn $ "transparents: " ++ show (length transparents)
+
     -- Do solids
-    rstat1 <- passGroupRenderMethod rstat [RenderablePass ro p m lights | RenderEntity ro pl m <- rents, p <- pl]
-    
+    rstat1 <- passGroupRenderMethod rstat [RenderablePass ro p m lights | RenderEntity ro pl m _ <- solids, p <- pl]
+
+    -- TEMP solution, transparents together
+    rstat2 <- passGroupRenderMethod rstat1 [RenderablePass ro p m lights | RenderEntity ro pl m _ <- transparents, p <- pl]
+
     -- Do unsorted transparents
     --simpleRenderMethod $ rpgTransparentsUnsorted rpg
-    
+
     -- Do transparents (always descending)
     --distanceSortRenderMethod $ rpgTransparents rpg
-    return rstat1
+    return rstat2
 
--- Fast    
+-- Fast
 --renderQueue :: (RenderSystem rs, Renderable r) => rs -> IntMap RenderGroupOptions -> [(Matrix4,r,Int,Int)] -> IO ()
 -- TODO: maybe we should try parallelize this code
 -- HINT: Ogre uses radix sort
-renderQueue time rs roptMap rstat rl = do
-    let grpPriorGroupCmp (_,_,ga,pa) (_,_,gb,pb) = ga == gb && pa == pb
-        grpPriorSortCmp al bl = case ga `compare` gb of
+renderQueue :: (RenderSystem rs vb ib q t p lp) => FloatType -> rs -> IntMap RenderGroupOptions -> RenderStatistics ->
+    [(Proj4,Light)] -> [(Proj4, [RenderEntity vb ib t lp], Int, Int)] -> IO RenderStatistics
+renderQueue time rs roptMap rstat lights renderables = do
+    {-
+    let grpPriorSortCmp al bl = case ga `compare` gb of
             { LT    -> LT
             ; EQ    -> pa `compare` pb
             ; GT    -> GT
             }
           where
-            (_,_,ga,pa) = {-head-} al
-            (_,_,gb,pb) = {-head-} bl
---    foldM (renderCollection rs roptMap) rstat $ groupBy grpPriorGroupCmp $ sortBy grpPriorSortCmp rl
-    foldM (renderCollection time rs roptMap) rstat $ groupSetBy grpPriorGroupCmp rl
-
-----------------------------------------------------------------------------------------------------------------------------
--- Slow code below  --------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------
-{-
-data RenderQueue
-    = RenderQueue
-    { rqGroupMap :: IntMap RenderGroup
-    }
-
-data RenderGroup
-    = RenderGroup
-    { rgPriorityGroups  :: IntMap RenderPriorityGroup
-    , rgShadowsEnabled  :: Bool -- ^ Whether shadows are enabled for this queue
-    }
-
-data RenderPriorityGroup
-    = RenderPriorityGroup
-    { rpgSolidsBasic            :: [RenderablePass] -- ^ Solid pass list, used when no shadows, modulative shadows, or ambient passes for additive
-    , rpgSolidsDiffuseSpecular  :: [RenderablePass] -- ^ Solid per-light pass list, used with additive shadows
-    , rpgSolidsDecal            :: [RenderablePass] -- ^ Solid decal (texture) pass list, used with additive shadows
-    , rpgSolidsNoShadowReceive  :: [RenderablePass] -- ^ Solid pass list, used when shadows are enabled but shadow receive is turned off for these passes
-    , rpgTransparentsUnsorted   :: [RenderablePass] -- ^ Unsorted transparent list
-    , rpgTransparents           :: [RenderablePass] -- ^ Transparent list
-    }
--}
+            (_,_,ga,pa) = head al
+            (_,_,gb,pb) = head bl
+    -}
+    let grpPriorGroupCmp (_,_,ga,_) (_,_,gb,_) = compare ga gb
+        sortedGroups = groupSetBy grpPriorGroupCmp renderables
+--        sortedGroups = sortBy (\((_,_,a,_):_) ((_,_,b,_):_) -> a `compare` b) groups
+--    foldM' (renderCollection rs roptMap) rstat $ groupBy grpPriorGroupCmp $ sortBy grpPriorSortCmp rl
+    --putStrLn $ "renderqueue renderables: " ++ show (length renderables)
+    --putStrLn $ "renderqueue sorted: " ++ show (length sortedGroups)
+    rstatres <- foldM' (renderCollection time rs roptMap lights) rstat sortedGroups
+    --putStrLn " * renderScene end"
+    return rstatres
diff --git a/Graphics/LambdaCube/RenderSystem.hs b/Graphics/LambdaCube/RenderSystem.hs
--- a/Graphics/LambdaCube/RenderSystem.hs
+++ b/Graphics/LambdaCube/RenderSystem.hs
@@ -1,1492 +1,389 @@
-{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-}
-module Graphics.LambdaCube.RenderSystem where
-
-import Data.Word
-import Data.Maybe
-import qualified Data.Set as Set
-import Foreign.C.Types
-import Control.Monad
-
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.Common
-import Graphics.LambdaCube.BlendMode
-import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.GpuProgram
-import Graphics.LambdaCube.TextureUnitState
-import Graphics.LambdaCube.Image
-import Graphics.LambdaCube.Light
-import Graphics.LambdaCube.RenderSystemCapabilities
-import Graphics.LambdaCube.RenderOperation
-import Graphics.LambdaCube.HardwareBuffer
-import Graphics.LambdaCube.HardwareVertexBuffer
-import Graphics.LambdaCube.HardwareIndexBuffer
-import Graphics.LambdaCube.HardwareOcclusionQuery
-import Graphics.LambdaCube.PixelFormat
-import Graphics.LambdaCube.Pass
-
--- | Enum describing the ways to generate texture coordinates
-data TexCoordCalcMethod
-    = TEXCALC_NONE                       -- ^ No calculated texture coordinates
-    | TEXCALC_ENVIRONMENT_MAP            -- ^ Environment map based on vertex normals
-    | TEXCALC_ENVIRONMENT_MAP_PLANAR     -- ^ Environment map based on vertex positions
-    | TEXCALC_ENVIRONMENT_MAP_REFLECTION -- ^ Environment map based on vertex positions
-    | TEXCALC_ENVIRONMENT_MAP_NORMAL     -- ^ Environment map based on vertex positions
-    | TEXCALC_PROJECTIVE_TEXTURE         -- ^ Projective texture
-    deriving Eq
-
--- | Enum describing the various actions which can be taken onthe stencil buffer
-data StencilOperation
-    = SOP_KEEP           -- ^ Leave the stencil buffer unchanged
-    | SOP_ZERO           -- ^ Set the stencil value to zero
-    | SOP_REPLACE        -- ^ Set the stencil value to the reference value
-    | SOP_INCREMENT      -- ^ Increase the stencil value by 1, clamping at the maximum value
-    | SOP_DECREMENT      -- ^ Decrease the stencil value by 1, clamping at 0
-    | SOP_INCREMENT_WRAP -- ^ Increase the stencil value by 1, wrapping back to 0 when incrementing the maximum value
-    | SOP_DECREMENT_WRAP -- ^ Decrease the stencil value by 1, wrapping when decrementing 0
-    | SOP_INVERT         -- ^ Invert the bits of the stencil buffer
-    deriving Eq
-
-{-| Defines the functionality of a 3D API
-@remarks
-The RenderSystem class provides a base interface
-which abstracts the general functionality of the 3D API
-e.g. Direct3D or OpenGL. Whilst a few of the general
-methods have implementations, most of this class is
-abstract, requiring a subclass based on a specific API
-to be constructed to provide the full functionality.
-Note there are 2 levels to the interface - one which
-will be used often by the caller of the Ogre library,
-and one which is at a lower level and will be used by the
-other classes provided by Ogre. These lower level
-methods are prefixed with '_' to differentiate them.
-The advanced user of the library may use these lower
-level methods to access the 3D API at a more fundamental
-level (dealing direct with render states and rendering
-primitives), but still benefiting from Ogre's abstraction
-of exactly which 3D API is in use.
-@author
-Steven Streeting
-@version
-1.0
--}
-class (HardwareVertexBuffer vb, HardwareIndexBuffer ib, HardwareOcclusionQuery q, Texture t, GpuProgram p, LinkedGpuProgram lp) => RenderSystem a vb ib q t p lp | a -> vb ib q t p lp where
-    {-| Create a hardware vertex buffer.
-    @remarks
-        This method creates a new vertex buffer; this will act as a source of geometry
-        data for rendering objects. Note that because the meaning of the contents of
-        the vertex buffer depends on the usage, this method does not specify a
-        vertex format; the user of this buffer can actually insert whatever data 
-        they wish, in any format. However, in order to use this with a RenderOperation,
-        the data in this vertex buffer will have to be associated with a semantic element
-        of the rendering pipeline, e.g. a position, or texture coordinates. This is done 
-        using the VertexDeclaration class, which itself contains VertexElement structures
-        referring to the source data.
-    @remarks Note that because vertex buffers can be shared, they are reference
-        counted so you do not need to worry about destroying themm this will be done
-        automatically.
-    @param vertexSize The size in bytes of each vertex in this buffer; you must calculate
-        this based on the kind of data you expect to populate this buffer with.
-    @param numVerts The number of vertices in this buffer.
-    @param usage One or more members of the HardwareBuffer::Usage enumeration; you are
-        strongly advised to use HBU_STATIC_WRITE_ONLY wherever possible, if you need to 
-        update regularly, consider HBU_DYNAMIC_WRITE_ONLY and useShadowBuffer=true.
-    @param useShadowBuffer If set to true, this buffer will be 'shadowed' by one stored in 
-        system memory rather than GPU or AGP memory. You should set this flag if you intend 
-        to read data back from the vertex buffer, because reading data from a buffer
-    	in the GPU or AGP memory is very expensive, and is in fact impossible if you
-        specify HBU_WRITE_ONLY for the main buffer. If you use this option, all 
-        reads and writes will be done to the shadow buffer, and the shadow buffer will
-        be synchronised with the real buffer at an appropriate time.
-    -}
-    createVertexBuffer              :: a -> Int -> Int -> Usage -> Bool -> IO vb
-    {-| Create a hardware index buffer.
-    @remarks Note that because buffers can be shared, they are reference
-        counted so you do not need to worry about destroying them this will be done
-        automatically.
-    @param itype The type in index, either 16- or 32-bit, depending on how many vertices
-    	you need to be able to address
-    @param numIndexes The number of indexes in the buffer
-    @param usage One or more members of the HardwareBuffer::Usage enumeration.
-    @param useShadowBuffer If set to true, this buffer will be 'shadowed' by one stored in 
-        system memory rather than GPU or AGP memory. You should set this flag if you intend 
-        to read data back from the index buffer, because reading data from a buffer
-    	in the GPU or AGP memory is very expensive, and is in fact impossible if you
-        specify HBU_WRITE_ONLY for the main buffer. If you use this option, all 
-        reads and writes will be done to the shadow buffer, and the shadow buffer will
-        be synchronised with the real buffer at an appropriate time.
-    -}
-    createIndexBuffer               :: a -> IndexType -> Int -> Usage -> Bool -> IO ib
-
-    {-
-        virtual TexturePtr createManual(const String & name, const String& group,
-            TextureType texType, uint width, uint height, uint depth, 
-			int num_mips, PixelFormat format, int usage = TU_DEFAULT, ManualResourceLoader* loader = 0,
-			bool hwGammaCorrection = false, uint fsaa = 0, const String& fsaaHint = StringUtil::BLANK);
-            TextureUsage = bufferUsage::Usage, autoMipmap::Bool, isTarget::Bool
-    -}
-    createTexture                   :: a -> String -> TextureType -> Int -> Int -> Int -> TextureMipmap -> PixelFormat -> TextureUsage -> Bool -> Int -> String -> Maybe [Image] -> IO t
-    --FIXME: TEMP HACK!!!!!
-    dirtyHackCopyTexImage           :: a -> t -> Int -> Int -> Int -> Int -> IO ()
-    createGpuProgram                :: a -> GpuProgramType -> String -> IO (Either p String) -- TODO
-    createLinkedGpuProgram          :: a -> [p] -> IO (Either lp String) -- TODO
-    getName                         :: a -> String                                  -- ^ Returns the name of the rendering system.
-    createOcclusionQuery            :: a -> IO q                                    -- ^ Create an object for performing hardware occlusion queries. 
---    destroyOcclusionQuery           :: a -> q -> IO ()                              -- ^ Destroy a hardware occlusion query object. 
---obsolete    createRenderSystemCapabilities  :: a -> IO RenderSystemCapabilities             -- ^ Query the real capabilities of the GPU and driver in the RenderSystem
---    reinitialise                    :: a -> IO ()                                   -- ^ Restart the renderer (normally following a change in settings).
---    shutdown                        :: a -> IO ()                                   -- ^ Shutdown the renderer and cleanup resources.
-    setAmbientLight                 :: a -> Float -> Float -> Float -> IO ()        -- ^ Sets the colour & strength of the ambient (global directionless) light in the world.
-    setShadingType                  :: a -> ShadeOptions -> IO ()                   -- ^ Sets the type of light shading required (default = Gouraud).
-
-    {-| Sets whether or not dynamic lighting is enabled.
-    @param
-    enabled If true, dynamic lighting is performed on geometry with normals supplied, geometry without
-    normals will not be displayed. If false, no lighting is applied and all geometry will be full brightness.
-    -}
-    setLightingEnabled              :: a -> Bool -> IO ()
-
-    {-| Sets whether or not W-buffers are enabled if they are available for this renderer.
-    @param
-    enabled If true and the renderer supports them W-buffers will be used.  If false 
-    W-buffers will not be used even if available.  W-buffers are enabled by default 
-    for 16bit depth buffers and disabled for all other depths.
-    -}
-    setWBufferEnabled               :: a -> Bool -> IO ()
---    getWBufferEnabled               :: a -> IO Bool                                 -- ^ Returns true if the renderer will try to use W-buffers when avalible.
-
-    {-|	Create a MultiRenderTarget, which is a render target that renders to multiple RenderTextures
-    at once. Surfaces can be bound and unbound at will.
-    This fails if mCapabilities->getNumMultiRenderTargets() is smaller than 2.
-    -}
-    -- TODO: virtual MultiRenderTarget * createMultiRenderTarget(const String & name) = 0; 
-
-    {-| Destroys a render texture -}
-    -- TODO: virtual void destroyRenderTexture(const String& name);
-    {-| Destroys a render target of any sort -}
-    -- TODO: virtual void destroyRenderTarget(const String& name);
-
-    {-| Attaches the passed render target to the render system.
-    -}
-    -- TODO: virtual void attachRenderTarget( RenderTarget &target );
-    {-| Returns a pointer to the render target with the passed name, or NULL if that
-    render target cannot be found.
-    -}
-    -- TODO: virtual RenderTarget * getRenderTarget( const String &name );
-    {-| Detaches the render target with the passed name from the render system and
-    returns a pointer to it.
-    @note
-    If the render target cannot be found, NULL is returned.
-    -}
-    -- TODO: virtual RenderTarget * detachRenderTarget( const String &name );
-
-    -- | Iterator over RenderTargets
-    -- TODO: typedef MapIterator<Ogre::RenderTargetMap> RenderTargetIterator;
-
-    {-| Returns a specialised MapIterator over all render targets attached to the RenderSystem. -}
-    -- TODO: virtual RenderTargetIterator getRenderTargetIterator(void) {
-    -- TODO: 	return RenderTargetIterator( mRenderTargets.begin(), mRenderTargets.end() );
-    -- TODO: }
-
-    {-| Returns a description of an error code.
-    -}
-    -- TODO: virtual String getErrorDescription(long errorNumber) const = 0;
-
-    {-| Defines whether or now fullscreen render windows wait for the vertical blank before flipping buffers.
-    @remarks
-    By default, all rendering windows wait for a vertical blank (when the CRT beam turns off briefly to move
-    from the bottom right of the screen back to the top left) before flipping the screen buffers. This ensures
-    that the image you see on the screen is steady. However it restricts the frame rate to the refresh rate of
-    the monitor, and can slow the frame rate down. You can speed this up by not waiting for the blank, but
-    this has the downside of introducing 'tearing' artefacts where part of the previous frame is still displayed
-    as the buffers are switched. Speed vs quality, you choose.
-    @note
-    Has NO effect on windowed mode render targets. Only affects fullscreen mode.
-    @param
-    enabled If true, the system waits for vertical blanks - quality over speed. If false it doesn't - speed over quality.
-    -}
-    setWaitForVerticalBlank         :: a -> Bool -> IO ()
---    getWaitForVerticalBlank         :: a -> IO Bool                                 -- ^ Returns true if the system is synchronising frames with the monitor vertical blank.
-
-    -- ------------------------------------------------------------------------
-    --                     Internal Rendering Access
-    -- All methods below here are normally only called by other OGRE classes
-    -- They can be called by library user if required
-    -- ------------------------------------------------------------------------
-
-
-    {-| Tells the rendersystem to use the attached set of lights (and no others) 
-    up to the number specified (this allows the same list to be used with different
-    count limits) -}
-    useLights                      :: a -> [(Matrix4,Light)] -> IO ()
---    useLights                      :: a -> [Light] -> Int -> IO ()
-    {-| Are fixed-function lights provided in view space? Affects optimisation. 
-    -}
-    -- TODO: virtual bool areFixedFunctionLightsInViewSpace() const { return false; }
-    setWorldMatrix                 :: a -> Matrix4 -> IO ()                        -- ^ Sets the world transform matrix.
-    --_setWorldMatrices               :: a -> [Matrix4] -> Int -> IO ()               -- ^ Sets multiple world matrices (vertex blending).
-    setViewMatrix                  :: a -> Matrix4 -> IO ()                        -- ^ Sets the view transform matrix
-    setProjectionMatrix            :: a -> Matrix4 -> IO ()                        -- ^ Sets the projection transform matrix
-    
-    {-| Sets the surface properties to be used for future rendering.
-    
-    This method sets the the properties of the surfaces of objects
-    to be rendered after it. In this context these surface properties
-    are the amount of each type of light the object reflects (determining
-    it's colour under different types of light), whether it emits light
-    itself, and how shiny it is. Textures are not dealt with here,
-    see the _setTetxure method for details.
-    This method is used by _setMaterial so does not need to be called
-    direct if that method is being used.
-    
-    @param ambient The amount of ambient (sourceless and directionless)
-    light an object reflects. Affected by the colour/amount of ambient light in the scene.
-    @param diffuse The amount of light from directed sources that is
-    reflected (affected by colour/amount of point, directed and spot light sources)
-    @param specular The amount of specular light reflected. This is also
-    affected by directed light sources but represents the colour at the
-    highlights of the object.
-    @param emissive The colour of light emitted from the object. Note that
-    this will make an object seem brighter and not dependent on lights in
-    the scene, but it will not act as a light, so will not illuminate other
-    objects. Use a light attached to the same SceneNode as the object for this purpose.
-    @param shininess A value which only has an effect on specular highlights (so
-    specular must be non-black). The higher this value, the smaller and crisper the
-    specular highlights will be, imitating a more highly polished surface.
-    This value is not constrained to 0.0-1.0, in fact it is likely to
-    be more (10.0 gives a modest sheen to an object).
-    @param tracking A bit field that describes which of the ambient, diffuse, specular
-    and emissive colours follow the vertex colour of the primitive. When a bit in this field is set
-    its ColourValue is ignored. This is a combination of TVC_AMBIENT, TVC_DIFFUSE, TVC_SPECULAR(note that the shininess value is still
-    taken from shininess) and TVC_EMISSIVE. TVC_NONE means that there will be no material property
-    tracking the vertex colours.
-    -}
-    setSurfaceParams               :: a -> ColourValue -> ColourValue -> ColourValue -> ColourValue -> FloatType -> TrackVertexColourType -> IO ()
-
-    {-| Sets whether or not rendering points using OT_POINT_LIST will 
-    render point sprites (textured quads) or plain points.
-    @param enabled True enables point sprites, false returns to normal
-    point rendering.
-    -}	
-    setPointSpritesEnabled         :: a -> Bool -> IO ()
-
-    {-| Sets the size of points and how they are attenuated with distance.
-    @remarks
-    When performing point rendering or point sprite rendering,
-    point size can be attenuated with distance. The equation for
-    doing this is attenuation = 1 / (constant + linear * dist + quadratic * d^2) .
-    @par
-    For example, to disable distance attenuation (constant screensize) 
-    you would set constant to 1, and linear and quadratic to 0. A
-    standard perspective attenuation would be 0, 1, 0 respectively.
-    -}
-    setPointParameters              :: a -> FloatType -> Bool -> FloatType -> FloatType -> FloatType -> FloatType -> FloatType -> IO ()
-
-
-    setActiveTextureUnit            :: a -> Int -> IO ()
-    {-|
-    Sets the texture to bind to a given texture unit.
-
-    User processes would not normally call this direct unless rendering
-    primitives themselves.
-
-    @param unit The index of the texture unit to modify. Multitexturing 
-    hardware can support multiple units (see 
-    RenderSystemCapabilites::getNumTextureUnits)
-    @param enabled Boolean to turn the unit on/off
-    @param texPtr Pointer to the texture to use.
-    -}
---    setTexture                      :: a -> Int -> Bool -> Maybe t -> IO ()
-    setTexture                      :: a -> Maybe t -> IO ()
-    {-|
-    Sets the texture to bind to a given texture unit.
-
-    User processes would not normally call this direct unless rendering
-    primitives themselves.
-
-    @param unit The index of the texture unit to modify. Multitexturing 
-    hardware can support multiple units (see 
-    RenderSystemCapabilites::getNumTextureUnits)
-    @param enabled Boolean to turn the unit on/off
-    @param texname The name of the texture to use - this should have
-    already been loaded with TextureManager::load.
-    -}
-    --virtual void _setTexture(size_t unit, bool enabled, const String &texname);
-
-    {-| Binds a texture to a vertex sampler.
-    @remarks
-    Not all rendersystems support separate vertex samplers. For those that
-    do, you can set a texture for them, separate to the regular texture
-    samplers, using this method. For those that don't, you should use the
-    regular texture samplers which are shared between the vertex and
-    fragment units; calling this method will throw an exception.
-    @see RenderSystemCapabilites::getVertexTextureUnitsShared
-    -}
-    setVertexTexture               :: a -> Maybe t -> IO ()
-
-    {-|
-    Sets the texture coordinate set to use for a texture unit.
-
-    Meant for use internally - not generally used directly by apps - the Material and TextureUnitState
-    classes let you manage textures far more easily.
-
-    @param unit Texture unit as above
-    @param index The index of the texture coordinate set to use.
-    -}
---    setTextureCoordSet             :: a -> Int -> Int -> IO ()
-
-    {-|
-    Sets a method for automatically calculating texture coordinates for a stage.
-    Should not be used by apps - for use by Ogre only.
-    @param unit Texture unit as above
-    @param m Calculation method to use
-    @param frustum Optional Frustum param, only used for projective effects
-    -}
-    setTextureCoordCalculation     :: a -> TexCoordCalcMethod{- -> Frustum-} -> IO ()
-
-    {-| Sets the texture blend modes from a TextureUnitState record.
-    Meant for use internally only - apps should use the Material
-    and TextureUnitState classes.
-    @param unit Texture unit as above
-    @param bm Details of the blending mode
-    -}
-    setTextureBlendMode            :: a -> LayerBlendModeEx -> LayerBlendModeEx -> IO ()
-
-    {-| Sets the filtering options for a given texture unit.
-    @param unit The texture unit to set the filtering options for
-    @param minFilter The filter used when a texture is reduced in size
-    @param magFilter The filter used when a texture is magnified
-    @param mipFilter The filter used between mipmap levels, FO_NONE disables mipmapping
-    -}
-    setTextureUnitFiltering        :: a -> TextureType -> FilterOptions -> FilterOptions -> FilterOptions -> IO ()
-
-    {-| Sets a single filter for a given texture unit.
-    @param unit The texture unit to set the filtering options for
-    @param ftype The filter type
-    @param filter The filter to be used
-    -}
---    setTextureUnitFiltering        :: a -> Int -> FilterType -> FilterOptions -> IO ()
-
-    {-| Sets the maximal anisotropy for the specified texture unit.-}
-    setTextureLayerAnisotropy      :: a -> TextureType -> Int -> IO ()
-
-    {-| Sets the texture addressing mode for a texture unit.-}
-    setTextureAddressingMode       :: a -> TextureType -> UVWAddressingMode -> IO ()
-
-    {-| Sets the texture border colour for a texture unit.-}
-    setTextureBorderColour         :: a -> TextureType -> ColourValue -> IO ()
-
-    {-| Sets the mipmap bias value for a given texture unit.
-    @remarks
-    This allows you to adjust the mipmap calculation up or down for a
-    given texture unit. Negative values force a larger mipmap to be used, 
-    positive values force a smaller mipmap to be used. Units are in numbers
-    of levels, so +1 forces the mipmaps to one smaller level.
-    @note Only does something if render system has capability RSC_MIPMAP_LOD_BIAS.
-    -}
-    setTextureMipmapBias           :: a -> FloatType -> IO ()
-
-    {-| Sets the texture coordinate transformation matrix for a texture unit.
-    @param unit Texture unit to affect
-    @param xform The 4x4 matrix
-    -}
-    setTextureMatrix               :: a -> Matrix4 -> IO ()
-
-    {-| Sets the global blending factors for combining subsequent renders with the existing frame contents.
-    The result of the blending operation is:</p>
-    <p align="center">final = (texture * sourceFactor) + (pixel * destFactor)</p>
-    Each of the factors is specified as one of a number of options, as specified in the SceneBlendFactor
-    enumerated type.
-    By changing the operation you can change addition between the source and destination pixels to a different operator.
-    @param sourceFactor The source factor in the above calculation, i.e. multiplied by the texture colour components.
-    @param destFactor The destination factor in the above calculation, i.e. multiplied by the pixel colour components.
-    @param op The blend operation mode for combining pixels
-    -}
-    setSceneBlending               :: a -> SceneBlendFactor -> SceneBlendFactor -> SceneBlendOperation -> IO ()
-
-    {-| Sets the global blending factors for combining subsequent renders with the existing frame contents.
-    The result of the blending operation is:</p>
-    <p align="center">final = (texture * sourceFactor) + (pixel * destFactor)</p>
-    Each of the factors is specified as one of a number of options, as specified in the SceneBlendFactor
-    enumerated type.
-    @param sourceFactor The source factor in the above calculation, i.e. multiplied by the texture colour components.
-    @param destFactor The destination factor in the above calculation, i.e. multiplied by the pixel colour components.
-    @param sourceFactorAlpha The source factor in the above calculation for the alpha channel, i.e. multiplied by the texture alpha components.
-    @param destFactorAlpha The destination factor in the above calculation for the alpha channel, i.e. multiplied by the pixel alpha components.
-    @param op The blend operation mode for combining pixels
-    @param alphaOp The blend operation mode for combining pixel alpha values
-    -}
-    setSeparateSceneBlending       :: a -> SceneBlendFactor -> SceneBlendFactor -> SceneBlendFactor -> SceneBlendFactor -> SceneBlendOperation -> SceneBlendOperation -> IO ()
-
-    {-| Sets the global alpha rejection approach for future renders.
-    By default images are rendered regardless of texture alpha. This method lets you change that.
-    @param func The comparison function which must pass for a pixel to be written.
-    @param val The value to compare each pixels alpha value to (0-255)
-    @param alphaToCoverage Whether to enable alpha to coverage, if supported
-    -}
-    setAlphaRejectSettings         :: a -> CompareFunction -> Int -> Bool -> IO ()
-
-    {-| Notify the rendersystem that it should adjust texture projection to be 
-    	relative to a different origin.
-    -}
-    -- TODO: virtual void _setTextureProjectionRelativeTo(bool enabled, const Vector3& pos);
-    {-|
-    * Signifies the beginning of a frame, i.e. the start of rendering on a single viewport. Will occur
-    * several times per complete frame if multiple viewports exist.
-    -}
-    -- TODO: virtual void _beginFrame(void) = 0;
-
-
-    {-|
-    * Ends rendering of a frame to the current viewport.
-    -}
-    -- TODO: virtual void _endFrame(void) = 0;
-    {-|
-    Sets the provided viewport as the active one for future
-    rendering operations. This viewport is aware of it's own
-    camera and render target. Must be implemented by subclass.
-
-    @param target Pointer to the appropriate viewport.
-    -}
-    setViewport                     :: a -> Int -> Int -> Int -> Int -> IO ()
-    {-| Get the current active viewport for rendering. -}
-    -- TODO: virtual Viewport* _getViewport(void);
-
-    {-| Sets the culling mode for the render system based on the 'vertex winding'.
-    A typical way for the rendering engine to cull triangles is based on the
-    'vertex winding' of triangles. Vertex winding refers to the direction in
-    which the vertices are passed or indexed to in the rendering operation as viewed
-    from the camera, and will wither be clockwise or anticlockwise (that's 'counterclockwise' for
-    you Americans out there ;) The default is CULL_CLOCKWISE i.e. that only triangles whose vertices
-    are passed/indexed in anticlockwise order are rendered - this is a common approach and is used in 3D studio models
-    for example. You can alter this culling mode if you wish but it is not advised unless you know what you are doing.
-    You may wish to use the CULL_NONE option for mesh data that you cull yourself where the vertex
-    winding is uncertain.
-    -}
-    setCullingMode                  :: a -> CullingMode -> IO ()
---    getCullingMode                  :: a -> IO CullingMode
-
-    {-| Sets the mode of operation for depth buffer tests from this point onwards.
-    Sometimes you may wish to alter the behaviour of the depth buffer to achieve
-    special effects. Because it's unlikely that you'll set these options for an entire frame,
-    but rather use them to tweak settings between rendering objects, this is an internal
-    method (indicated by the '_' prefix) which will be used by a SceneManager implementation
-    rather than directly from the client application.
-    If this method is never called the settings are automatically the same as the default parameters.
-    @param depthTest If true, the depth buffer is tested for each pixel and the frame buffer is only updated
-    if the depth function test succeeds. If false, no test is performed and pixels are always written.
-    @param depthWrite If true, the depth buffer is updated with the depth of the new pixel if the depth test succeeds.
-    If false, the depth buffer is left unchanged even if a new pixel is written.
-    @param depthFunction Sets the function required for the depth test.
-    -}
-    setDepthBufferParams           :: a -> Bool -> Bool -> CompareFunction -> IO ()
-
-    {-| Sets whether or not the depth buffer check is performed before a pixel write.
-    @param enabled If true, the depth buffer is tested for each pixel and the frame buffer is only updated
-    if the depth function test succeeds. If false, no test is performed and pixels are always written.
-    -}
-    setDepthBufferCheckEnabled     :: a -> Bool -> IO ()
-    {-| Sets whether or not the depth buffer is updated after a pixel write.
-    @param enabled If true, the depth buffer is updated with the depth of the new pixel if the depth test succeeds.
-    If false, the depth buffer is left unchanged even if a new pixel is written.
-    -}
-    setDepthBufferWriteEnabled     :: a -> Bool -> IO ()
-    {-| Sets the comparison function for the depth buffer check.
-    Advanced use only - allows you to choose the function applied to compare the depth values of
-    new and existing pixels in the depth buffer. Only an issue if the deoth buffer check is enabled
-    (see _setDepthBufferCheckEnabled)
-    @param  func The comparison between the new depth and the existing depth which must return true
-    for the new pixel to be written.
-    -}
-    --setDepthBufferFunction         :: a -> CompareFunction -> IO ()
-    setDepthBufferFunction         :: a -> Bool -> CompareFunction -> IO ()
-    {-| Sets whether or not colour buffer writing is enabled, and for which channels. 
-    @remarks
-    For some advanced effects, you may wish to turn off the writing of certain colour
-    channels, or even all of the colour channels so that only the depth buffer is updated
-    in a rendering pass. However, the chances are that you really want to use this option
-    through the Material class.
-    @param red, green, blue, alpha Whether writing is enabled for each of the 4 colour channels. -}
-    setColourBufferWriteEnabled    :: a -> Bool -> Bool -> Bool -> Bool -> IO ()
-    {-| Sets the depth bias, NB you should use the Material version of this. 
-    @remarks
-    When polygons are coplanar, you can get problems with 'depth fighting' where
-    the pixels from the two polys compete for the same screen pixel. This is particularly
-    a problem for decals (polys attached to another surface to represent details such as
-    bulletholes etc.).
-    @par
-    A way to combat this problem is to use a depth bias to adjust the depth buffer value
-    used for the decal such that it is slightly higher than the true value, ensuring that
-    the decal appears on top.
-    @note
-    The final bias value is a combination of a constant bias and a bias proportional
-    to the maximum depth slope of the polygon being rendered. The final bias
-    is constantBias + slopeScaleBias * maxslope. Slope scale biasing is
-    generally preferable but is not available on older hardware.
-    @param constantBias The constant bias value, expressed as a value in 
-    homogeneous depth coordinates.
-    @param slopeScaleBias The bias value which is factored by the maximum slope
-    of the polygon, see the description above. This is not supported by all
-    cards.
-
-    -}
-    setDepthBias                   :: a -> FloatType -> FloatType -> IO ()
-    {-| Sets the fogging mode for future geometry.
-    @param mode Set up the mode of fog as described in the FogMode enum, or set to FOG_NONE to turn off.
-    @param colour The colour of the fog. Either set this to the same as your viewport background colour,
-    or to blend in with a skydome or skybox.
-    @param expDensity The density of the fog in FOG_EXP or FOG_EXP2 mode, as a value between 0 and 1. The default is 1. i.e. completely opaque, lower values can mean
-    that fog never completely obscures the scene.
-    @param linearStart Distance at which linear fog starts to encroach. The distance must be passed
-    as a parametric value between 0 and 1, with 0 being the near clipping plane, and 1 being the far clipping plane. Only applicable if mode is FOG_LINEAR.
-    @param linearEnd Distance at which linear fog becomes completely opaque.The distance must be passed
-    as a parametric value between 0 and 1, with 0 being the near clipping plane, and 1 being the far clipping plane. Only applicable if mode is FOG_LINEAR.
-    -}
-    setFog                         :: a -> FogMode -> ColourValue -> FloatType -> FloatType -> FloatType -> IO ()
-
-    {-| The RenderSystem will keep a count of tris rendered, this resets the count. -}
-    -- TODO: virtual void _beginGeometryCount(void);
-    {-| Reports the number of tris rendered since the last _beginGeometryCount call. -}
-    -- TODO: virtual unsigned int _getFaceCount(void) const;
-    {-| Reports the number of batches rendered since the last _beginGeometryCount call. -}
-    -- TODO: virtual unsigned int _getBatchCount(void) const;
-    {-| Reports the number of vertices passed to the renderer since the last _beginGeometryCount call. -}
-    -- TODO: virtual unsigned int _getVertexCount(void) const;
-
-    {-| Generates a packed data version of the passed in ColourValue suitable for
-    use as with this RenderSystem.
-    @remarks
-    Since different render systems have different colour data formats (eg
-    RGBA for GL, ARGB for D3D) this method allows you to use 1 method for all.
-    @param colour The colour to convert
-    @param pDest Pointer to location to put the result.
-    -}
-    -- TODO: virtual void convertColourValue(const ColourValue& colour, uint32* pDest);
-    {-| Get the native VertexElementType for a compact 32-bit colour value
-    for this rendersystem.
-    -}
-    -- TODO: virtual VertexElementType getColourVertexElementType(void) const = 0;
-
-    {-| Converts a uniform projection matrix to suitable for this render system.
-    @remarks
-    Because different APIs have different requirements (some incompatible) for the
-    projection matrix, this method allows each to implement their own correctly and pass
-    back a generic OGRE matrix for storage in the engine.
-    -}
-    -- TODO: virtual void _convertProjectionMatrix(const Matrix4& matrix,
-	-- TODO:     Matrix4& dest, bool forGpuProgram = false) = 0;
-
-    {-| Builds a perspective projection matrix suitable for this render system.
-    @remarks
-    Because different APIs have different requirements (some incompatible) for the
-    projection matrix, this method allows each to implement their own correctly and pass
-    back a generic OGRE matrix for storage in the engine.
-    -}
-    -- TODO: virtual void _makeProjectionMatrix(const Radian& fovy, Real aspect, Real nearPlane, Real farPlane, 
-	-- TODO:     Matrix4& dest, bool forGpuProgram = false) = 0;
-
-    {-| Builds a perspective projection matrix for the case when frustum is
-    not centered around camera.
-    @remarks
-    Viewport coordinates are in camera coordinate frame, i.e. camera is 
-    at the origin.
-    -}
-    -- TODO: virtual void _makeProjectionMatrix(Real left, Real right, Real bottom, Real top, 
-    -- TODO: 	Real nearPlane, Real farPlane, Matrix4& dest, bool forGpuProgram = false) = 0;
-    {-| Builds an orthographic projection matrix suitable for this render system.
-    @remarks
-    Because different APIs have different requirements (some incompatible) for the
-    projection matrix, this method allows each to implement their own correctly and pass
-    back a generic OGRE matrix for storage in the engine.
-    -}
-    -- TODO: virtual void _makeOrthoMatrix(const Radian& fovy, Real aspect, Real nearPlane, Real farPlane, 
-    -- TODO: 	Matrix4& dest, bool forGpuProgram = false) = 0;
-
-    {-| Update a perspective projection matrix to use 'oblique depth projection'.
-    @remarks
-    This method can be used to change the nature of a perspective 
-    transform in order to make the near plane not perpendicular to the 
-    camera view direction, but to be at some different orientation. 
-    This can be useful for performing arbitrary clipping (e.g. to a 
-    reflection plane) which could otherwise only be done using user
-    clip planes, which are more expensive, and not necessarily supported
-    on all cards.
-    @param matrix The existing projection matrix. Note that this must be a
-    perspective transform (not orthographic), and must not have already
-    been altered by this method. The matrix will be altered in-place.
-    @param plane The plane which is to be used as the clipping plane. This
-    plane must be in CAMERA (view) space.
-    @param forGpuProgram Is this for use with a Gpu program or fixed-function
-    -}
-    -- TODO: virtual void _applyObliqueDepthProjection(Matrix4& matrix, const Plane& plane, 
-    -- TODO: 	bool forGpuProgram) = 0;
-
-    {-| Sets how to rasterise triangles, as points, wireframe or solid polys. -}
-    setPolygonMode                 :: a -> PolygonMode -> IO ()
-
-    {-| Turns stencil buffer checking on or off. 
-    @remarks
-    Stencilling (masking off areas of the rendering target based on the stencil 
-    buffer) can be turned on or off using this method. By default, stencilling is
-    disabled.
-    -}
-    setStencilCheckEnabled          :: a -> Bool -> IO ()
-    {-| Determines if this system supports hardware accelerated stencil buffer. 
-    @remarks
-    Note that the lack of this function doesn't mean you can't do stencilling, but
-    the stencilling operations will be provided in software, which will NOT be
-    fast.
-    @par
-    Generally hardware stencils are only supported in 32-bit colour modes, because
-    the stencil buffer shares the memory of the z-buffer, and in most cards the 
-    z-buffer has to be the same depth as the colour buffer. This means that in 32-bit
-    mode, 24 bits of the z-buffer are depth and 8 bits are stencil. In 16-bit mode there
-    is no room for a stencil (although some cards support a 15:1 depth:stencil option,
-    this isn't useful for very much) so 8 bits of stencil are provided in software.
-    This can mean that if you use stencilling, your applications may be faster in 
-    32-but colour than in 16-bit, which may seem odd to some people.
-    -}
-    {-virtual bool hasHardwareStencil(void) = 0;-}
-
-    {-| This method allows you to set all the stencil buffer parameters in one call.
-    @remarks
-    The stencil buffer is used to mask out pixels in the render target, allowing
-    you to do effects like mirrors, cut-outs, stencil shadows and more. Each of
-    your batches of rendering is likely to ignore the stencil buffer, 
-    update it with new values, or apply it to mask the output of the render.
-    The stencil test is:<PRE>
-    (Reference Value & Mask) CompareFunction (Stencil Buffer Value & Mask)</PRE>
-    The result of this will cause one of 3 actions depending on whether the test fails,
-    succeeds but with the depth buffer check still failing, or succeeds with the
-    depth buffer check passing too.
-    @par
-    Unlike other render states, stencilling is left for the application to turn
-    on and off when it requires. This is because you are likely to want to change
-    parameters between batches of arbitrary objects and control the ordering yourself.
-    In order to batch things this way, you'll want to use OGRE's separate render queue
-    groups (see RenderQueue) and register a RenderQueueListener to get notifications
-    between batches.
-    @par
-    There are individual state change methods for each of the parameters set using 
-    this method. 
-    Note that the default values in this method represent the defaults at system 
-    start up too.
-    @param func The comparison function applied.
-    @param refValue The reference value used in the comparison
-    @param mask The bitmask applied to both the stencil value and the reference value 
-    before comparison
-    @param stencilFailOp The action to perform when the stencil check fails
-    @param depthFailOp The action to perform when the stencil check passes, but the
-    depth buffer check still fails
-    @param passOp The action to take when both the stencil and depth check pass.
-    @param twoSidedOperation If set to true, then if you render both back and front faces 
-    (you'll have to turn off culling) then these parameters will apply for front faces, 
-    and the inverse of them will happen for back faces (keep remains the same).
-    -}
-    setStencilBufferParams          :: a -> CompareFunction -> Word32 -> Word32 -> StencilOperation -> StencilOperation -> StencilOperation -> Bool -> IO ()
-
-
-
-    {-| Sets the current vertex declaration, ie the source of vertex data. -}
---    setVertexDeclaration            :: a -> VertexDeclaration -> IO ()
-    {-| Sets the current vertex buffer binding state. -}
---    setVertexBufferBinding          :: a -> VertexBufferBinding vb -> IO ()
-
-    {-| Sets whether or not normals are to be automatically normalised.
-    @remarks
-    This is useful when, for example, you are scaling SceneNodes such that
-    normals may not be unit-length anymore. Note though that this has an
-    overhead so should not be turn on unless you really need it.
-    @par
-    You should not normally call this direct unless you are rendering
-    world geometry; set it on the Renderable because otherwise it will be
-    overridden by material settings. 
-    -}
-    setNormaliseNormals             :: a -> Bool -> IO ()
-
-    {-|
-    Render something to the active viewport.
-
-    Low-level rendering interface to perform rendering
-    operations. Unlikely to be used directly by client
-    applications, since the SceneManager and various support
-    classes will be responsible for calling this method.
-    Can only be called between _beginScene and _endScene
-
-    @param Iteration count
-    @param op A rendering operation instance, which contains
-    details of the operation to be performed.
-    -}
-    render                          :: a -> RenderOperation vb ib -> IO ()
-    bindGeometry                    :: a -> RenderOperation vb ib -> [TextureUnitState t] -> IO ()
-    unbindGeometry                  :: a -> RenderOperation vb ib -> IO ()
-
-    {-| Gets the capabilities of the render system. -}
-    getCapabilities                 :: a -> RenderSystemCapabilities
-
-    {-| Binds a given GpuProgram (but not the parameters). 
-    @remarks Only one GpuProgram of each type can be bound at once, binding another
-    one will simply replace the existing one.
-    -}
-    bindLinkedGpuProgram            :: a -> lp -> IO ()    
---    bindGpuProgram                  :: a -> GpuProgram -> IO ()
-
-    {-| Bind Gpu program parameters.
-    @param gptype The type of program to bind the parameters to
-    @param params The parameters to bind
-    @param variabilityMask A mask of GpuParamVariability identifying which params need binding
-    -}
---    bindGpuProgramParameters        :: a -> GpuProgramType -> GpuProgramParameters -> Word16 -> IO ()
-
-    {-| Only binds Gpu program parameters used for passes that have more than one iteration rendering
-    -}
---    bindGpuProgramPassIterationParameters :: a -> GpuProgramType -> IO ()
-    {-| Unbinds GpuPrograms of a given GpuProgramType.
-    @remarks
-    This returns the pipeline to fixed-function processing for this type.
-    -}
-    unbindLinkedGpuProgram                :: a -> IO ()
---    unbindGpuProgram                :: a -> GpuProgramType -> IO ()
-
-    {-| Returns whether or not a Gpu program of the given type is currently bound. -}
---    isGpuProgramBound               :: a -> GpuProgramType -> IO Bool
-
-    {-| Sets the user clipping region.
-    -}
-    -- TODO: virtual void setClipPlanes(const PlaneList& clipPlanes);
-
-    {-| Add a user clipping plane. -}
-    -- TODO: virtual void addClipPlane (const Plane &p);
-    {-| Add a user clipping plane. -}
-    -- TODO: virtual void addClipPlane (Real A, Real B, Real C, Real D);
-
-    {-| Clears the user clipping region.
-    -}
-    -- TODO: virtual void resetClipPlanes();
-
-    {-| Utility method for initialising all render targets attached to this rendering system. -}
-    -- TODO: virtual void _initRenderTargets(void);
-
-    {-| Utility method to notify all render targets that a camera has been removed, 
-    in case they were referring to it as their viewer. 
-    -}
-    -- TODO: virtual void _notifyCameraRemoved(const Camera* cam);
-
-    {-| Internal method for updating all render targets attached to this rendering system. -}
-    -- TODO: virtual void _updateAllRenderTargets(bool swapBuffers = true);
-    {-| Internal method for swapping all the buffers on all render targets,
-    if _updateAllRenderTargets was called with a 'false' parameter. -}
-    -- TODO: virtual void _swapAllRenderTargetBuffers(bool waitForVsync = true);
-
-    {-| Gets whether or not vertex windings set should be inverted; this can be important
-    for rendering reflections. -}
-    -- TODO: virtual bool getInvertVertexWinding(void);
-
-    {-| Sets whether or not vertex windings set should be inverted; this can be important
-    for rendering reflections. -}
-    -- TODO: virtual void setInvertVertexWinding(bool invert);
-    {-| Sets the 'scissor region' ie the region of the target in which rendering can take place.
-    @remarks
-    This method allows you to 'mask off' rendering in all but a given rectangular area
-    as identified by the parameters to this method.
-    @note
-    Not all systems support this method. Check the RenderSystemCapabilities for the
-    RSC_SCISSOR_TEST capability to see if it is supported.
-    @param enabled True to enable the scissor test, false to disable it.
-    @param left, top, right, bottom The location of the corners of the rectangle, expressed in
-    <i>pixels</i>.
-    -}
-    setScissorTest                  :: a -> Bool -> Int -> Int -> Int -> Int -> IO ()
-
-    {-| Clears one or more frame buffers on the active render target. 
-    @param buffers Combination of one or more elements of FrameBufferType
-    denoting which buffers are to be cleared
-    @param colour The colour to clear the colour buffer with, if enabled
-    @param depth The value to initialise the depth buffer with, if enabled
-    @param stencil The value to initialise the stencil buffer with, if enabled.
-    -}
-    clearFrameBuffer                :: a -> FrameBufferType -> ColourValue -> FloatType -> Word16 -> IO ()
-    {-| Returns the horizontal texel offset value required for mapping 
-    texel origins to pixel origins in this rendersystem.
-    @remarks
-    Since rendersystems sometimes disagree on the origin of a texel, 
-    mapping from texels to pixels can sometimes be problematic to 
-    implement generically. This method allows you to retrieve the offset
-    required to map the origin of a texel to the origin of a pixel in
-    the horizontal direction.
-    -}
-    getHorizontalTexelOffset        :: a -> IO FloatType
-    {-| Returns the vertical texel offset value required for mapping 
-    texel origins to pixel origins in this rendersystem.
-    @remarks
-    Since rendersystems sometimes disagree on the origin of a texel, 
-    mapping from texels to pixels can sometimes be problematic to 
-    implement generically. This method allows you to retrieve the offset
-    required to map the origin of a texel to the origin of a pixel in
-    the vertical direction.
-    -}
-    getVerticalTexelOffset          :: a -> IO FloatType
-
-    {-| Gets the minimum (closest) depth value to be used when rendering
-    using identity transforms.
-    @remarks
-    When using identity transforms you can manually set the depth
-    of a vertex; however the input values required differ per
-    rendersystem. This method lets you retrieve the correct value.
-    @see Renderable::getUseIdentityView, Renderable::getUseIdentityProjection
-    -}
-    getMinimumDepthInputValue       :: a -> FloatType
-    {-| Gets the maximum (farthest) depth value to be used when rendering
-    using identity transforms.
-    @remarks
-    When using identity transforms you can manually set the depth
-    of a vertex; however the input values required differ per
-    rendersystem. This method lets you retrieve the correct value.
-    @see Renderable::getUseIdentityView, Renderable::getUseIdentityProjection
-    -}
-    getMaximumDepthInputValue       :: a -> FloatType
-    {-| set the current multi pass count value.  This must be set prior to 
-    calling _render() if multiple renderings of the same pass state are 
-    required.
-    @param count Number of times to render the current state.
-    -}
-    -- TODO: virtual void setCurrentPassIterationCount(const size_t count) { mCurrentPassIterationCount = count; }
-
-    {-| Tell the render system whether to derive a depth bias on its own based on 
-    the values passed to it in setCurrentPassIterationCount.
-    The depth bias set will be baseValue + iteration * multiplier
-    @param derive True to tell the RS to derive this automatically
-    @param baseValue The base value to which the multiplier should be
-    added
-    @param multiplier The amount of depth bias to apply per iteration
-    @param slopeScale The constant slope scale bias for completeness
-    -}
-    -- TODO: virtual void setDeriveDepthBias(bool derive, float baseValue = 0.0f,
-    -- TODO: 	float multiplier = 0.0f, float slopeScale = 0.0f)
-    -- TODO: {
-    -- TODO: 	mDerivedDepthBias = derive;
-    -- TODO: 	mDerivedDepthBiasBase = baseValue;
-    -- TODO: 	mDerivedDepthBiasMultiplier = multiplier;
-    -- TODO: 	mDerivedDepthBiasSlopeScale = slopeScale;
-    -- TODO: }
-
-    {-|
-     * Set current render target to target, enabling its device context if needed
-     -}
-    -- TODO: virtual void _setRenderTarget(RenderTarget *target) = 0;
-
-class (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => Renderable r vb ib t lp | r -> vb ib t lp where
-    prepare :: Matrix4 -> r -> [RenderEntity vb ib t lp]
-
-data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => RenderEntity vb ib t lp
-    = RenderEntity
-    { reOperation   :: RenderOperation vb ib
-    , rePassList    :: [Pass t lp]
-    , reMatrix      :: Matrix4
-    }
-
---setPass :: RenderSystem -> Pass -> IO ()
-setPass time rs pass = do
-    let rsc     = getCapabilities rs
-        caps    = rscCapabilities rsc
-        Pass
-            { --psName                     :: String                      -- ^ optional name for the pass
-    
-            -- Colour properties, only applicable in fixed-function passes
-              psAmbient                     = ambient
-            , psDiffuse                     = diffuse
-            , psSpecular                    = specular
-            , psEmissive                    = emissive
-            , psShininess                   = shininess
-            , psTracking                    = vertexColourTracking
-    
-            -- Blending factors
-            , psSourceBlendFactor           = sourceBlendFactor
-            , psDestBlendFactor             = destBlendFactor
-            , psSourceBlendFactorAlpha      = sourceBlendFactorAlpha
-            , psDestBlendFactorAlpha        = destBlendFactorAlpha
-
-            , psSeparateBlend               = separateBlend
-
-            -- Blending operations
-            , psBlendOperation              = blendOperation
-            , psAlphaBlendOperation         = alphaBlendOperation
-            , psSeparateBlendOperation      = separateBlendOperation
-
-            -- Depth buffer settings
-            , psDepthCheck                  = depthCheck
-            , psDepthWrite                  = depthWrite
-            , psDepthFunc                   = depthFunc
-            , psDepthBiasConstant           = depthBiasConstant
-            , psDepthBiasSlopeScale         = depthBiasSlopeScale
---            , psDepthBiasPerIteration    :: FloatType
-
-            -- Colour buffer settings
-            , psColourWrite                 = colourWrite
-    
-            -- Alpha reject settings
-            , psAlphaRejectFunc             = alphaRejectFunc
-            , psAlphaRejectVal              = alphaRejectVal
-            , psAlphaToCoverageEnabled      = alphaToCoverageEnabled
-        
---            , psTransparentSorting       :: Bool                        -- ^ Transparent depth sorting
---            , psTransparentSortingForced :: Bool                        -- ^ Transparent depth sorting forced
-    
-            -- Culling mode
-            , psCullMode                    = cullMode
---            , psManualCullMode           :: ManualCullingMode
-    
-            , psLightingEnabled             = lightingEnabled
---            , psMaxSimultaneousLights    :: Int                         -- ^ Max simultaneous lights
---            , psStartLight               :: Int                         -- ^ Starting light index
---            , psLightsPerIteration       :: Maybe Int                   -- ^ Run this pass once per light? Iterate per how many lights?
---            , psOnlyLightType            :: Maybe LightTypes            -- ^ Should it only be run for a certain light type?
-
-            , psShadeOptions                = shadeOptions
-            , psPolygonMode	                = polygonMode
-
-            -- Normalisation
---            , psNormaliseNormals         :: Bool
-            , psPolygonModeOverrideable     = polygonModeOverrideable
-    
-            -- Fog
-            , psFogOverride                 = fogOverride
-            , psFogMode                     = fogMode
-            , psFogColour                   = fogColour
-            , psFogStart                    = fogStart
-            , psFogEnd                      = fogEnd
-            , psFogDensity                  = fogDensity
-    
-            , psTextureUnitStates           = textureUnitStates
-
-            , psVertexProgramUsage          = vertexProgramUsage
-        --    , psShadowCasterVertexProgramUsage  :: GpuProgramUsage    -- ^ Vertex program details
-        --    , psShadowReceiverVertexProgramUsage    :: GpuProgramUsage  -- ^ Vertex program details
-            , psFragmentProgramUsage        = fragmentProgramUsage
-        --    , psShadowReceiverFragmentProgramUsage  :: GpuProgramUsage  -- ^ Fragment program details
-            , psGeometryProgramUsage        = geometryProgramUsage
-            , psLinkedGpuProgram            = linkedGpuProgram
-        --    , psQueuedForDeletion        :: Bool    -- ^ Is this pass queued for deletion?
-
---            , psPassIterationCount       :: Int                         -- ^ number of pass iterations to perform
-
-            , psPointSize                   = pointSize
-            , psPointMinSize                = pointMinSize
-            , psPointMaxSize                = pointMaxSize
-            , psPointSpritesEnabled         = pointSpritesEnabled
-            , psPointAttenuationEnabled     = pointAttenuationEnabled
---            , psPointAttenuationCoeffs   :: FloatType3                  -- ^ constant, linear, quadratic coeffs
-
-            {-
-        		// TU Content type lookups
-        		typedef vector<unsigned short>::type ContentTypeLookup;
-        		mutable ContentTypeLookup mShadowContentTypeLookup;
-        		mutable bool mContentTypeLookupBuilt;
-            -}  
---            , psLightScissoring          :: Bool                        -- ^ Scissoring for the light?
---            , psLightClipPlanes          :: Bool                        -- ^ User clip planes for light?
---            , psIlluminationStage        :: IlluminationStage           -- ^ Illumination stage?
-            } = pass
-    {-
-	if (!mSuppressRenderStateChanges || evenIfSuppressed)
-	{
-		if (mIlluminationStage == IRS_RENDER_TO_TEXTURE && shadowDerivation)
-		{
-			// Derive a special shadow caster pass from this one
-			pass = deriveShadowCasterPass(pass);
-		}
-		else if (mIlluminationStage == IRS_RENDER_RECEIVER_PASS && shadowDerivation)
-		{
-			pass = deriveShadowReceiverPass(pass);
-		}
-
-        // Tell params about current pass
-        mAutoParamDataSource->setCurrentPass(pass);
-
-		bool passSurfaceAndLightParams = true;
-		bool passFogParams = true;
-    -}
-    let passSurfaceAndLightParams = True
-        passFogParams = True
-
-    case linkedGpuProgram of
-        { Nothing   -> unbindLinkedGpuProgram rs
-        ; Just lp   -> bindLinkedGpuProgram rs lp
-        }
-
-    when passSurfaceAndLightParams $ do
-        -- Set surface reflectance properties, only valid if lighting is enabled
-        when lightingEnabled $
-             setSurfaceParams rs ambient diffuse specular emissive shininess vertexColourTracking
-        -- Dynamic lighting enabled?
-        setLightingEnabled rs lightingEnabled
-        
-    when passFogParams $ do
-        -- New fog params can either be from scene or from material
-        -- TODO: implement override 
-        --setFog rs newFogMode newFogColour newFogDensity newFogStart newFogEnd
-        setFog rs fogMode fogColour fogDensity fogStart fogEnd
-    -- TODO
-    {-
-		if (passFogParams)
-		{
-			// New fog params can either be from scene or from material
-			FogMode newFogMode;
-			ColourValue newFogColour;
-			Real newFogStart, newFogEnd, newFogDensity;
-			if (pass->getFogOverride())
-			{
-				// New fog params from material
-				newFogMode = pass->getFogMode();
-				newFogColour = pass->getFogColour();
-				newFogStart = pass->getFogStart();
-				newFogEnd = pass->getFogEnd();
-				newFogDensity = pass->getFogDensity();
-			}
-			else
-			{
-				// New fog params from scene
-				newFogMode = mFogMode;
-				newFogColour = mFogColour;
-				newFogStart = mFogStart;
-				newFogEnd = mFogEnd;
-				newFogDensity = mFogDensity;
-			}
-
-			/* In D3D, it applies to shaders prior
-			to version vs_3_0 and ps_3_0. And in OGL, it applies to "ARB_fog_XXX" in
-			fragment program, and in other ways, them maybe access by gpu program via
-			"state.fog.XXX".
-			*/
-	        mDestRenderSystem->_setFog(
-		        newFogMode, newFogColour, newFogDensity, newFogStart, newFogEnd);
-		}
-
-        // Tell params about ORIGINAL fog
-		// Need to be able to override fixed function fog, but still have
-		// original fog parameters available to a shader than chooses to use
-        mAutoParamDataSource->setFog(
-            mFogMode, mFogColour, mFogDensity, mFogStart, mFogEnd);
-    -}
-
-    -- The rest of the settings are the same no matter whether we use programs or not
-
-    -- Set scene blending
-    case separateBlend of
-        { True  -> setSeparateSceneBlending rs sourceBlendFactor destBlendFactor
-                                               sourceBlendFactorAlpha destBlendFactorAlpha
-                                               blendOperation
-                                               (if separateBlendOperation then blendOperation else alphaBlendOperation)
-        ; False -> case psSeparateBlendOperation pass of
-                    { True  -> setSeparateSceneBlending rs sourceBlendFactor destBlendFactor
-                                                           sourceBlendFactor destBlendFactor
-                                                           blendOperation alphaBlendOperation
-                    ; False -> setSceneBlending rs sourceBlendFactor destBlendFactor blendOperation
-                    }
-        }
-
-    -- Set point parameters
-    let (pac,pal,paq) = psPointAttenuationCoeffs pass -- TODO: refactor
-    setPointParameters rs pointSize pointAttenuationEnabled pac pal paq pointMinSize pointMaxSize
-
-    when (Set.member RSC_POINT_SPRITES caps) $
-        setPointSpritesEnabled rs pointSpritesEnabled
-    
-    -- Texture unit settings
-    -- TODO
-    {-
-		Pass::ConstTextureUnitStateIterator texIter =  pass->getTextureUnitStateIterator();
-		size_t unit = 0;
-		// Reset the shadow texture index for each pass
-		size_t startLightIndex = pass->getStartLight();
-		size_t shadowTexUnitIndex = 0;
-		size_t shadowTexIndex = mShadowTextures.size();
-		if (mShadowTextureIndexLightList.size() > startLightIndex)
-			shadowTexIndex = mShadowTextureIndexLightList[startLightIndex];
-		while(texIter.hasMoreElements())
-		{
-			TextureUnitState* pTex = texIter.getNext();
-			if (!pass->getIteratePerLight() && 
-				isShadowTechniqueTextureBased() && 
-				pTex->getContentType() == TextureUnitState::CONTENT_SHADOW)
-			{
-				// Need to bind the correct shadow texture, based on the start light
-				// Even though the light list can change per object, our restrictions
-				// say that when texture shadows are enabled, the lights up to the
-				// number of texture shadows will be fixed for all objects
-				// to match the shadow textures that have been generated
-				// see Listener::sortLightsAffectingFrustum and
-				// MovableObject::Listener::objectQueryLights
-				// Note that light iteration throws the indexes out so we don't bind here
-				// if that's the case, we have to bind when lights are iterated
-				// in renderSingleObject
-
-				TexturePtr shadowTex;
-				if (shadowTexIndex < mShadowTextures.size())
-				{
-					shadowTex = getShadowTexture(shadowTexIndex);
-					// Hook up projection frustum
-					Camera *cam = shadowTex->getBuffer()->getRenderTarget()->getViewport(0)->getCamera();
-					// Enable projective texturing if fixed-function, but also need to
-					// disable it explicitly for program pipeline.
-					pTex->setProjectiveTexturing(!pass->hasVertexProgram(), cam);
-					mAutoParamDataSource->setTextureProjector(cam, shadowTexUnitIndex);
-				}
-				else
-				{
-					// Use fallback 'null' shadow texture
-					// no projection since all uniform colour anyway
-					shadowTex = mNullShadowTexture;
-					pTex->setProjectiveTexturing(false);
-					mAutoParamDataSource->setTextureProjector(0, shadowTexUnitIndex);
-
-				}
-				pTex->_setTexturePtr(shadowTex);
-
-				++shadowTexIndex;
-				++shadowTexUnitIndex;
-			}
-			else if (mIlluminationStage == IRS_NONE && pass->hasVertexProgram())
-			{
-				// Manually set texture projector for shaders if present
-				// This won't get set any other way if using manual projection
-				TextureUnitState::EffectMap::const_iterator effi = 
-					pTex->getEffects().find(TextureUnitState::ET_PROJECTIVE_TEXTURE);
-				if (effi != pTex->getEffects().end())
-				{
-					mAutoParamDataSource->setTextureProjector(effi->second.frustum, unit);
-				}
-			}
-			mDestRenderSystem->_setTextureUnitSettings(unit, *pTex);
-			++unit;
-		}
-		// Disable remaining texture units
-		mDestRenderSystem->_disableTextureUnitsFrom(pass->getNumTextureUnitStates());
-    -}
-    -- TODO
-    mapM_ (uncurry $ setTextureUnitSettings time rs) $ zip [0..] textureUnitStates
-
-    -- Disable remaining texture units
-    forM_ [(length textureUnitStates)..((rscNumTextureUnits $ getCapabilities rs) - 1)] $ \tu -> do
-        -- TODO: dont disable disabled texunits
-        setActiveTextureUnit rs tu
-        setTexture rs Nothing
-
-    -- Set up non-texture related material settings
-    -- Depth buffer settings
-    --FIXME: high level haskell gl binding handles depth check activation and depth function in one function
-    setDepthBufferFunction rs depthCheck depthFunc
-    {- -- HINT: GL has unified function for this
-        setDepthBufferFunction rs depthFunc
-        setDepthBufferCheckEnabled rs depthCheck
-    -}
-    setDepthBufferWriteEnabled rs depthWrite
-    setDepthBias rs depthBiasConstant depthBiasSlopeScale
-
-    -- Alpha-reject settings
-    setAlphaRejectSettings rs alphaRejectFunc alphaRejectVal alphaToCoverageEnabled
-
-    -- Set colour write mode
-    -- Right now we only use on/off, not per-channel
-    setColourBufferWriteEnabled rs colourWrite colourWrite colourWrite colourWrite
-    -- TODO
-    {-
-		// Culling mode
-		if (isShadowTechniqueTextureBased() 
-			&& mIlluminationStage == IRS_RENDER_TO_TEXTURE
-			&& mShadowCasterRenderBackFaces
-			&& pass->getCullingMode() == CULL_CLOCKWISE)
-		{
-			// render back faces into shadow caster, can help with depth comparison
-			mPassCullingMode = CULL_ANTICLOCKWISE;
-		}
-		else
-		{
-			mPassCullingMode = pass->getCullingMode();
-		}
-    -}
-    -- TODO: calc cull mode according illumination stage
-    setCullingMode rs cullMode
-    -- Shading
-    setShadingType rs shadeOptions
-    
-    -- Polygon mode
-    unless polygonModeOverrideable $
-        setPolygonMode rs polygonMode
-    
-    -- TODO
-    {-
-		// set pass number
-    	mAutoParamDataSource->setPassNumber( pass->getIndex() );
-
-		// mark global params as dirty
-		mGpuParamsDirty |= (uint16)GPV_GLOBAL;
-    -}
-    return ()
-
-{-
-	const TexturePtr& TextureUnitState::_getTexturePtr(size_t frame) const
-	{
-		if (mContentType == CONTENT_NAMED)
-		{
-			if (frame < mFrames.size() && !mTextureLoadFailed)
-			{
-				ensureLoaded(frame);
-				return mFramePtrs[frame];
-			}
-			else
-			{
-				// Silent fail with empty texture for internal method
-				static TexturePtr nullTexPtr;
-				return nullTexPtr;
-			}
-		}
-		else
-		{
-			// Manually bound texture, no name or loading
-			assert(frame < mFramePtrs.size());
-			return mFramePtrs[frame];
-		}
-	}
--}
-
-{-| Utility function for setting all the properties of a texture unit at once.
-This method is also worth using over the individual texture unit settings because it
-only sets those settings which are different from the current settings for this
-unit, thus minimising render state changes.
--}
---setTextureUnitSettings :: RenderSystem a vb ib q t p => a -> Int -> TextureUnitState t -> IO ()
-setTextureUnitSettings time rs texUnit tl = do
-    -- This method is only ever called to set a texture unit to valid details
-    -- The method _disableTextureUnit is called to turn a unit off
-    let rsc     = getCapabilities rs
-        caps    = rscCapabilities rsc
-        TextureUnitState 
-            { tusAnimDuration           = animDuration
---            , tusCubic                   :: Bool                -- ^ is this a series of 6 2D textures to make up a cube?
-    
-            , tusTextureType            = texType
---            , tusDesiredFormat           :: PixelFormat
---            , tusTextureSrcMipmaps       :: Int                 -- ^ Request number of mipmaps
-
---            , tusTextureCoordSetIndex    :: Int
-            , tusAddressMode            = uvw
-            , tusBorderColour           = borderColour
-
-            , tusColourBlendMode        = colourBlendMode
---            , tusColourBlendFallbackSrc  :: SceneBlendFactor
---            , tusColourBlendFallbackDest :: SceneBlendFactor
-
-            , tusAlphaBlendMode         = alphaBlendMode
-        --        mutable bool mTextureLoadFailed;
-        --    , tusTextureLoadFailed       :: Bool
---            , tusIsAlpha                 :: Bool
---            , tusHwGamma                 :: Bool
-
-        --        mutable bool mRecalcTexMatrix;
-        --        Real mUMod, mVMod;
-        --        Real mUScale, mVScale;
-        --        Radian mRotate;
-        --        mutable Matrix4 mTexModMatrix;
-
-            , tusMinFilter              = minFilter
-            , tusMagFilter              = magFilter
-            , tusMipFilter              = mipFilter
-
-            , tusMaxAniso               = maxAniso
-            , tusMipmapBias             = mipmapBias
-
-        --        bool mIsDefaultAniso;
-        --        bool mIsDefaultFiltering;
-            , tusBindingType            = bindingType
---            , tusContentType             :: ContentType      -- ^ Content type of texture (normal loaded texture, auto-texture)
-
---            , tusFrameNames              :: [String]
-            , tusFrames                 = frames
---            , tusName                    :: String          -- ^ optional name for the TUS
---            , tusTextureAlias            :: String          -- ^ optional alias for texture frames
-            , tusEffects                = effects
-            }   = tl
-        texl    = fromMaybe (error "fromJust 12") frames -- TODO: const TexturePtr& tex = tl._getTexturePtr();
-
-    -- Activate TextureUnit
-    setActiveTextureUnit rs texUnit
-    -- Vertex texture binding?
-    unless (null texl) $ do
-        let tex = case animDuration of
-                { Nothing   -> head texl
-                ; Just 0    -> head texl
-                ; Just d    -> texl !! (floor $ (fromIntegral $ length texl) * (snd $ properFraction $ time / d))
-                }
-        case (Set.member RSC_VERTEX_TEXTURE_FETCH caps && (not $ rscVertexTextureUnitsShared rsc)) of
-            { True  -> case bindingType of
-                { BT_VERTEX -> do
-                    -- Bind vertex texture
-                    setVertexTexture rs $ Just tex
-                    -- bind nothing to fragment unit (hardware isn't shared but fragment
-                    -- unit can't be using the same index
-                    setTexture rs Nothing
-                ; _         -> do
-                    -- vice versa
-                    setVertexTexture rs Nothing
-                    setTexture rs $ Just tex
-                }
-            ; False -> do
-                -- Shared vertex / fragment textures or no vertex texture support
-                -- Bind texture (may be blank)
-                setTexture rs $ Just tex
-            }
-    
-    -- Set texture layer filtering
-    setTextureUnitFiltering rs texType minFilter magFilter mipFilter
-
-    -- Set texture layer filtering
-    when (Set.member RSC_ANISOTROPY caps) $
-        setTextureLayerAnisotropy rs texType maxAniso
-
-    -- Set mipmap biasing
-    when (Set.member RSC_MIPMAP_LOD_BIAS caps) $
-        setTextureMipmapBias rs mipmapBias
-
-    -- Set blend modes
-    -- Check to see if blending is supported
-    when (Set.member RSC_BLENDING caps) $ do
-        setTextureBlendMode rs colourBlendMode alphaBlendMode
-        --HINT: Obsolete below, due to stateful behaviour
-        -- Note, colour before alpha is important
-        --setTextureBlendMode rs colourBlendMode 
-        --setTextureBlendMode rs alphaBlendMode
-
-    -- Texture addressing mode
-    setTextureAddressingMode rs texType uvw
-    -- Set texture border colour only if required
-    when (  amU uvw == TAM_BORDER ||
-            amV uvw == TAM_BORDER ||
-            amW uvw == TAM_BORDER ) $
-        setTextureBorderColour rs texType borderColour
-
-    -- Set texture effects
-    -- TODO
---    mapM_ effects
-    setTextureCoordCalculation rs TEXCALC_NONE
-    forM_ effects $ \ e -> case teType e of
-        { ET_ENVIRONMENT_MAP    -> setTextureCoordCalculation rs TEXCALC_ENVIRONMENT_MAP
-        ; _ -> return ()
-        }
---    effects
-{-
-        // Set texture effects
-        TextureUnitState::EffectMap::iterator effi;
-        // Iterate over new effects
-        bool anyCalcs = false;
-        for (effi = tl.mEffects.begin(); effi != tl.mEffects.end(); ++effi)
-        {
-            switch (effi->second.type)
-            {
-            case TextureUnitState::ET_ENVIRONMENT_MAP:
-                if (effi->second.subtype == TextureUnitState::ENV_CURVED)
-                {
-                    _setTextureCoordCalculation(texUnit, TEXCALC_ENVIRONMENT_MAP);
-                    anyCalcs = true;
-                }
-                else if (effi->second.subtype == TextureUnitState::ENV_PLANAR)
-                {
-                    _setTextureCoordCalculation(texUnit, TEXCALC_ENVIRONMENT_MAP_PLANAR);
-                    anyCalcs = true;
-                }
-                else if (effi->second.subtype == TextureUnitState::ENV_REFLECTION)
-                {
-                    _setTextureCoordCalculation(texUnit, TEXCALC_ENVIRONMENT_MAP_REFLECTION);
-                    anyCalcs = true;
-                }
-                else if (effi->second.subtype == TextureUnitState::ENV_NORMAL)
-                {
-                    _setTextureCoordCalculation(texUnit, TEXCALC_ENVIRONMENT_MAP_NORMAL);
-                    anyCalcs = true;
-                }
-                break;
-            case TextureUnitState::ET_UVSCROLL:
-			case TextureUnitState::ET_USCROLL:
-			case TextureUnitState::ET_VSCROLL:
-            case TextureUnitState::ET_ROTATE:
-            case TextureUnitState::ET_TRANSFORM:
-                break;
-            case TextureUnitState::ET_PROJECTIVE_TEXTURE:
-                _setTextureCoordCalculation(texUnit, TEXCALC_PROJECTIVE_TEXTURE, 
-                    effi->second.frustum);
-                anyCalcs = true;
-                break;
-            }
-        }
-        // Ensure any previous texcoord calc settings are reset if there are now none
-        if (!anyCalcs)
-        {
-            _setTextureCoordCalculation(texUnit, TEXCALC_NONE);
-        }
-
-        // Change tetxure matrix 
-        _setTextureMatrix(texUnit, tl.getTextureTransform());
-    }
--}
-    return ()
-{-
-    const Matrix4& TextureUnitState::getTextureTransform() const
-    {
-        if (mRecalcTexMatrix)
-            recalcTextureMatrix();
-        return mTexModMatrix;
-
-    }
--}
-calcTextureMatrix tus = do
-    return ()
-{-
-    //-----------------------------------------------------------------------
-    void TextureUnitState::recalcTextureMatrix() const
-    {
-        // Assumption: 2D texture coords
-        Matrix4 xform;
-
-        xform = Matrix4::IDENTITY;
-        if (mUScale != 1 || mVScale != 1)
-        {
-            // Offset to center of texture
-            xform[0][0] = 1/mUScale;
-            xform[1][1] = 1/mVScale;
-            // Skip matrix concat since first matrix update
-            xform[0][3] = (-0.5 * xform[0][0]) + 0.5;
-            xform[1][3] = (-0.5 * xform[1][1]) + 0.5;
-        }
-
-        if (mUMod || mVMod)
-        {
-            Matrix4 xlate = Matrix4::IDENTITY;
-
-            xlate[0][3] = mUMod;
-            xlate[1][3] = mVMod;
-
-            xform = xlate * xform;
-        }
-
-        if (mRotate != Radian(0))
-        {
-            Matrix4 rot = Matrix4::IDENTITY;
-            Radian theta ( mRotate );
-            Real cosTheta = Math::Cos(theta);
-            Real sinTheta = Math::Sin(theta);
-
-            rot[0][0] = cosTheta;
-            rot[0][1] = -sinTheta;
-            rot[1][0] = sinTheta;
-            rot[1][1] = cosTheta;
-            // Offset center of rotation to center of texture
-            rot[0][3] = 0.5 + ( (-0.5 * cosTheta) - (-0.5 * sinTheta) );
-            rot[1][3] = 0.5 + ( (-0.5 * sinTheta) + (-0.5 * cosTheta) );
-
-            xform = rot * xform;
-        }
-
-        mTexModMatrix = xform;
-        mRecalcTexMatrix = false;
-
-    }
--}
+{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, ParallelListComp #-}
+module Graphics.LambdaCube.RenderSystem where
+
+import Control.Monad
+import Data.Maybe
+import Data.Word
+import Foreign.Ptr
+import qualified Data.Set as Set
+
+import Graphics.LambdaCube.BlendMode
+import Graphics.LambdaCube.Common
+import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.HardwareBuffer
+import Graphics.LambdaCube.HardwareIndexBuffer
+import Graphics.LambdaCube.HardwareOcclusionQuery
+import Graphics.LambdaCube.HardwareVertexBuffer
+import Graphics.LambdaCube.Image
+import Graphics.LambdaCube.Light
+import Graphics.LambdaCube.Pass
+import Graphics.LambdaCube.PixelFormat
+import Graphics.LambdaCube.RenderOperation
+import Graphics.LambdaCube.RenderSystemCapabilities
+import Graphics.LambdaCube.Texture
+import Graphics.LambdaCube.TextureUnitState
+import Graphics.LambdaCube.Types
+
+data TexCoordCalcMethod
+    = TEXCALC_NONE                       -- ^ No calculated texture coordinates
+    | TEXCALC_ENVIRONMENT_MAP            -- ^ Environment map based on vertex normals
+    | TEXCALC_ENVIRONMENT_MAP_PLANAR     -- ^ Environment map based on vertex positions
+    | TEXCALC_ENVIRONMENT_MAP_REFLECTION -- ^ Environment map based on vertex positions
+    | TEXCALC_ENVIRONMENT_MAP_NORMAL     -- ^ Environment map based on vertex positions
+    | TEXCALC_PROJECTIVE_TEXTURE         -- ^ Projective texture
+    deriving Eq
+
+data StencilOperation
+    = SOP_KEEP           -- ^ Leave the stencil buffer unchanged
+    | SOP_ZERO           -- ^ Set the stencil value to zero
+    | SOP_REPLACE        -- ^ Set the stencil value to the reference value
+    | SOP_INCREMENT      -- ^ Increase the stencil value by 1, clamping at the maximum value
+    | SOP_DECREMENT      -- ^ Decrease the stencil value by 1, clamping at 0
+    | SOP_INCREMENT_WRAP -- ^ Increase the stencil value by 1, wrapping back to 0 when incrementing the maximum value
+    | SOP_DECREMENT_WRAP -- ^ Decrease the stencil value by 1, wrapping when decrementing 0
+    | SOP_INVERT         -- ^ Invert the bits of the stencil buffer
+    deriving Eq
+
+class (HardwareVertexBuffer vb, HardwareIndexBuffer ib, HardwareOcclusionQuery q, Texture t, GpuProgram p, LinkedGpuProgram lp) => RenderSystem rs vb ib q t p lp | rs -> vb ib q t p lp where
+    prepareRender               :: rs -> IO ()
+    finishRender                :: rs -> IO ()
+    createVertexBuffer          :: rs -> Int -> Int -> Usage -> Bool -> IO vb
+    createIndexBuffer           :: rs -> IndexType -> Int -> Usage -> Bool -> IO ib
+    createTexture               :: rs -> String -> TextureType -> Int -> Int -> Int -> TextureMipmap -> PixelFormat -> TextureUsage -> Bool -> Int -> String -> Maybe [Image] -> IO t
+    withFrameBuffer             :: rs -> Int -> Int -> Int -> Int -> (Ptr Word8 -> IO ()) -> IO ()
+    dirtyHackCopyTexImage       :: rs -> t -> Int -> Int -> Int -> Int -> IO () --FIXME: TEMP HACK!!!!!
+    createGpuProgram            :: rs -> GpuProgramType -> String -> IO (Either p String) -- TODO
+    createLinkedGpuProgram      :: rs -> [p] -> IO (Either lp String) -- TODO
+    getName                     :: rs -> String                                  -- ^ Returns the name of the rendering system.
+    createOcclusionQuery        :: rs -> IO q                                    -- ^ Create an object for performing hardware occlusion queries.
+    setAmbientLight             :: rs -> Float -> Float -> Float -> IO ()        -- ^ Sets the colour & strength of the ambient (global directionless) light in the world.
+    setShadingType              :: rs -> ShadeOptions -> IO ()                   -- ^ Sets the type of light shading required (default = Gouraud).
+    setLightingEnabled          :: rs -> Bool -> IO ()
+    setWBufferEnabled           :: rs -> Bool -> IO ()
+    setWaitForVerticalBlank     :: rs -> Bool -> IO ()
+    useLights                   :: rs -> [(Proj4,Light)] -> IO ()
+    setWorldMatrix              :: rs -> Proj4 -> IO ()                        -- ^ Sets the world transform matrix.
+    setViewMatrix               :: rs -> Proj4 -> IO ()                        -- ^ Sets the view transform matrix
+    setProjectionMatrix         :: rs -> Mat4 -> IO ()                        -- ^ Sets the projection transform matrix
+    setSurfaceParams            :: rs -> ColourValue -> ColourValue -> ColourValue -> ColourValue -> FloatType -> TrackVertexColourType -> IO ()
+    setPointSpritesEnabled      :: rs -> Bool -> IO ()
+    setPointParameters          :: rs -> FloatType -> Bool -> FloatType -> FloatType -> FloatType -> FloatType -> FloatType -> IO ()
+    setActiveTextureUnit        :: rs -> Int -> IO ()
+    setTexture                  :: rs -> Maybe t -> IO ()
+    setVertexTexture            :: rs -> Maybe t -> IO ()
+    setTextureCoordCalculation  :: rs -> TexCoordCalcMethod{- -> Frustum-} -> IO ()
+    setTextureBlendMode         :: rs -> LayerBlendModeEx -> LayerBlendModeEx -> IO ()
+    setTextureUnitFiltering     :: rs -> TextureType -> FilterOptions -> FilterOptions -> FilterOptions -> IO ()
+    setTextureLayerAnisotropy   :: rs -> TextureType -> Int -> IO ()
+    setTextureAddressingMode    :: rs -> TextureType -> UVWAddressingMode -> IO ()
+    setTextureBorderColour      :: rs -> TextureType -> ColourValue -> IO ()
+    setTextureMipmapBias        :: rs -> FloatType -> IO ()
+    setTextureMatrix            :: rs -> Proj4 -> IO ()
+    setSceneBlending            :: rs -> SceneBlendFactor -> SceneBlendFactor -> SceneBlendOperation -> IO ()
+    setSeparateSceneBlending    :: rs -> SceneBlendFactor -> SceneBlendFactor -> SceneBlendFactor -> SceneBlendFactor -> SceneBlendOperation -> SceneBlendOperation -> IO ()
+    setAlphaRejectSettings      :: rs -> CompareFunction -> Int -> Bool -> IO ()
+    setViewport                 :: rs -> Int -> Int -> Int -> Int -> IO ()
+    setCullingMode              :: rs -> CullingMode -> IO ()
+    setDepthBufferParams        :: rs -> Bool -> Bool -> CompareFunction -> IO ()
+    setDepthBufferCheckEnabled  :: rs -> Bool -> IO ()
+    setDepthBufferWriteEnabled  :: rs -> Bool -> IO ()
+    setDepthBufferFunction      :: rs -> CompareFunction -> IO ()
+    setColourBufferWriteEnabled :: rs -> Bool -> Bool -> Bool -> Bool -> IO ()
+    setDepthBias                :: rs -> FloatType -> FloatType -> IO ()
+    setFog                      :: rs -> FogMode -> ColourValue -> FloatType -> FloatType -> FloatType -> IO ()
+    setPolygonMode              :: rs -> PolygonMode -> IO ()
+    setStencilCheckEnabled      :: rs -> Bool -> IO ()
+    setStencilBufferParams      :: rs -> CompareFunction -> Word32 -> Word32 -> StencilOperation -> StencilOperation -> StencilOperation -> Bool -> IO ()
+    setNormaliseNormals         :: rs -> Bool -> IO ()
+    render                      :: rs -> RenderOperation vb ib -> IO ()
+    bindGeometry                :: rs -> RenderOperation vb ib -> [TextureUnitState t] -> IO ()
+    unbindGeometry              :: rs -> RenderOperation vb ib -> IO ()
+    getCapabilities             :: rs -> RenderSystemCapabilities
+    bindLinkedGpuProgram        :: rs -> lp -> IO ()
+    unbindLinkedGpuProgram      :: rs -> IO ()
+    setScissorTest              :: rs -> Bool -> Int -> Int -> Int -> Int -> IO ()
+    clearFrameBuffer            :: rs -> FrameBufferType -> ColourValue -> FloatType -> Word16 -> IO ()
+    getHorizontalTexelOffset    :: rs -> IO FloatType
+    getVerticalTexelOffset      :: rs -> IO FloatType
+    getMinimumDepthInputValue   :: rs -> FloatType
+    getMaximumDepthInputValue   :: rs -> FloatType
+
+class (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => Renderable r vb ib t lp | r -> vb ib t lp where
+    prepare :: Proj4 -> r -> [RenderEntity vb ib t lp]
+
+data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => RenderEntity vb ib t lp
+    = RenderEntity
+    { reOperation   :: RenderOperation vb ib
+    , rePassList    :: [Pass t lp]
+    , reMatrix      :: Proj4
+    , reBoundRadius :: FloatType
+    }
+
+setPass :: (RenderSystem rs vb ib q t p lp) => FloatType -> rs -> Pass t lp -> IO ()
+setPass time rs pass = do
+    let rsc     = getCapabilities rs
+        caps    = rscCapabilities rsc
+        Pass
+            { --psName                     :: String                      -- ^ optional name for the pass
+
+            -- Colour properties, only applicable in fixed-function passes
+              psAmbient                     = ambient
+            , psDiffuse                     = diffuse
+            , psSpecular                    = specular
+            , psEmissive                    = emissive
+            , psShininess                   = shininess
+            , psTracking                    = vertexColourTracking
+
+            -- Blending factors
+            , psSourceBlendFactor           = sourceBlendFactor
+            , psDestBlendFactor             = destBlendFactor
+            , psSourceBlendFactorAlpha      = sourceBlendFactorAlpha
+            , psDestBlendFactorAlpha        = destBlendFactorAlpha
+
+            , psSeparateBlend               = separateBlend
+
+            -- Blending operations
+            , psBlendOperation              = blendOperation
+            , psAlphaBlendOperation         = alphaBlendOperation
+            , psSeparateBlendOperation      = separateBlendOperation
+
+            -- Depth buffer settings
+            , psDepthCheck                  = depthCheck
+            , psDepthWrite                  = depthWrite
+            , psDepthFunc                   = depthFunc
+            , psDepthBiasConstant           = depthBiasConstant
+            , psDepthBiasSlopeScale         = depthBiasSlopeScale
+--            , psDepthBiasPerIteration    :: FloatType
+
+            -- Colour buffer settings
+            , psColourWrite                 = colourWrite
+
+            -- Alpha reject settings
+            , psAlphaRejectFunc             = alphaRejectFunc
+            , psAlphaRejectVal              = alphaRejectVal
+            , psAlphaToCoverageEnabled      = alphaToCoverageEnabled
+
+--            , psTransparentSorting       :: Bool                        -- ^ Transparent depth sorting
+--            , psTransparentSortingForced :: Bool                        -- ^ Transparent depth sorting forced
+
+            -- Culling mode
+            , psCullMode                    = cullMode
+--            , psManualCullMode           :: ManualCullingMode
+
+            , psLightingEnabled             = lightingEnabled
+--            , psMaxSimultaneousLights    :: Int                         -- ^ Max simultaneous lights
+--            , psStartLight               :: Int                         -- ^ Starting light index
+--            , psLightsPerIteration       :: Maybe Int                   -- ^ Run this pass once per light? Iterate per how many lights?
+--            , psOnlyLightType            :: Maybe LightTypes            -- ^ Should it only be run for a certain light type?
+
+            , psShadeOptions                = shadeOptions
+            , psPolygonMode	                = polygonMode
+
+            -- Normalisation
+--            , psNormaliseNormals         :: Bool
+            , psPolygonModeOverrideable     = polygonModeOverrideable
+
+            -- Fog
+--            , psFogOverride                 = fogOverride
+            , psFogMode                     = fogMode
+            , psFogColour                   = fogColour
+            , psFogStart                    = fogStart
+            , psFogEnd                      = fogEnd
+            , psFogDensity                  = fogDensity
+
+            , psTextureUnitStates           = textureUnitStates
+
+--            , psVertexProgramUsage          = vertexProgramUsage
+--            , psFragmentProgramUsage        = fragmentProgramUsage
+--            , psGeometryProgramUsage        = geometryProgramUsage
+            , psLinkedGpuProgram            = linkedGpuProgram
+
+--            , psPassIterationCount       :: Int                         -- ^ number of pass iterations to perform
+
+            , psPointSize                   = pointSize
+            , psPointMinSize                = pointMinSize
+            , psPointMaxSize                = pointMaxSize
+            , psPointSpritesEnabled         = pointSpritesEnabled
+            , psPointAttenuationEnabled     = pointAttenuationEnabled
+--            , psPointAttenuationCoeffs   :: FloatType3                  -- ^ constant, linear, quadratic coeffs
+
+--            , psLightScissoring          :: Bool                        -- ^ Scissoring for the light?
+--            , psLightClipPlanes          :: Bool                        -- ^ User clip planes for light?
+--            , psIlluminationStage        :: IlluminationStage           -- ^ Illumination stage?
+            } = pass
+    let passSurfaceAndLightParams = True
+        passFogParams = True
+
+    case linkedGpuProgram of
+        Nothing   -> unbindLinkedGpuProgram rs
+        Just lp   -> bindLinkedGpuProgram rs lp
+
+    when passSurfaceAndLightParams $ do
+        -- Set surface reflectance properties, only valid if lighting is enabled
+        when lightingEnabled $
+             setSurfaceParams rs ambient diffuse specular emissive shininess vertexColourTracking
+        -- Dynamic lighting enabled?
+        setLightingEnabled rs lightingEnabled
+
+    when passFogParams $ do
+        -- New fog params can either be from scene or from material
+        -- TODO: implement override
+        --setFog rs newFogMode newFogColour newFogDensity newFogStart newFogEnd
+        setFog rs fogMode fogColour fogDensity fogStart fogEnd
+    -- TODO
+
+    -- The rest of the settings are the same no matter whether we use programs or not
+
+    -- Set scene blending
+    case separateBlend of
+        True  -> setSeparateSceneBlending rs sourceBlendFactor destBlendFactor
+                 sourceBlendFactorAlpha destBlendFactorAlpha blendOperation
+                 (if separateBlendOperation then blendOperation else alphaBlendOperation)
+        False -> case psSeparateBlendOperation pass of
+            True  -> setSeparateSceneBlending rs sourceBlendFactor destBlendFactor
+                     sourceBlendFactor destBlendFactor blendOperation alphaBlendOperation
+            False -> setSceneBlending rs sourceBlendFactor destBlendFactor blendOperation
+
+    -- Set point parameters
+    let (pac,pal,paq) = psPointAttenuationCoeffs pass -- TODO: refactor
+    setPointParameters rs pointSize pointAttenuationEnabled pac pal paq pointMinSize pointMaxSize
+
+    when (Set.member RSC_POINT_SPRITES caps) $
+        setPointSpritesEnabled rs pointSpritesEnabled
+
+    -- Texture unit settings
+
+    -- TODO
+    sequence_ [setTextureUnitSettings time rs i tus | i <- [0..] | tus <- textureUnitStates]
+
+    -- Disable remaining texture units
+    forM_ [length textureUnitStates..rscNumTextureUnits (getCapabilities rs) - 1] $ \tu -> do
+        -- TODO: dont disable disabled texunits
+        setActiveTextureUnit rs tu
+        setTexture rs Nothing
+
+    -- Set up non-texture related material settings
+    -- Depth buffer settings
+    setDepthBufferFunction rs depthFunc
+    setDepthBufferCheckEnabled rs depthCheck
+    setDepthBufferWriteEnabled rs depthWrite
+    setDepthBias rs depthBiasConstant depthBiasSlopeScale
+
+    -- Alpha-reject settings
+    setAlphaRejectSettings rs alphaRejectFunc alphaRejectVal alphaToCoverageEnabled
+
+    -- Set colour write mode
+    -- Right now we only use on/off, not per-channel
+    setColourBufferWriteEnabled rs colourWrite colourWrite colourWrite colourWrite
+    -- TODO: calc cull mode according illumination stage
+    setCullingMode rs cullMode
+    -- Shading
+    setShadingType rs shadeOptions
+
+    -- Polygon mode
+    unless polygonModeOverrideable $
+        setPolygonMode rs polygonMode
+
+setTextureUnitSettings :: (RenderSystem rs vb ib q t p lp) => FloatType -> rs -> Int -> TextureUnitState t -> IO ()
+setTextureUnitSettings time rs texUnit tl = do
+    let rsc     = getCapabilities rs
+        caps    = rscCapabilities rsc
+        TextureUnitState
+            { tusAnimDuration           = animDuration
+--            , tusCubic                   :: Bool                -- ^ is this a series of 6 2D textures to make up a cube?
+
+            , tusTextureType            = texType
+--            , tusDesiredFormat           :: PixelFormat
+--            , tusTextureSrcMipmaps       :: Int                 -- ^ Request number of mipmaps
+
+--            , tusTextureCoordSetIndex    :: Int
+            , tusAddressMode            = uvw
+            , tusBorderColour           = borderColour
+
+            , tusColourBlendMode        = colourBlendMode
+--            , tusColourBlendFallbackSrc  :: SceneBlendFactor
+--            , tusColourBlendFallbackDest :: SceneBlendFactor
+
+            , tusAlphaBlendMode         = alphaBlendMode
+        --    , tusTextureLoadFailed       :: Bool
+--            , tusIsAlpha                 :: Bool
+--            , tusHwGamma                 :: Bool
+
+            , tusMinFilter              = minFilter
+            , tusMagFilter              = magFilter
+            , tusMipFilter              = mipFilter
+
+            , tusMaxAniso               = maxAniso
+            , tusMipmapBias             = mipmapBias
+
+            , tusBindingType            = bindingType
+--            , tusContentType             :: ContentType      -- ^ Content type of texture (normal loaded texture, auto-texture)
+
+--            , tusFrameNames              :: [String]
+            , tusFrames                 = frames
+--            , tusName                    :: String          -- ^ optional name for the TUS
+--            , tusTextureAlias            :: String          -- ^ optional alias for texture frames
+            , tusEffects                = effects
+            }   = tl
+        texl    = fromMaybe (error "fromJust 12") frames
+
+    -- Activate TextureUnit
+    setActiveTextureUnit rs texUnit
+    -- Vertex texture binding?
+    unless (null texl) $ do
+        let tex = case animDuration of
+                Nothing   -> head texl
+                Just 0    -> head texl
+                Just d    -> texl !! (floor $ (fromIntegral $ length texl) * (snd $ pf $ time / d))
+                  where
+                    pf :: FloatType -> (Int, FloatType)
+                    pf = properFraction
+        case Set.member RSC_VERTEX_TEXTURE_FETCH caps && not (rscVertexTextureUnitsShared rsc) of
+            True  -> case bindingType of
+              BT_VERTEX -> do
+                -- Bind vertex texture
+                setVertexTexture rs $ Just tex
+                -- bind nothing to fragment unit (hardware isn't shared but fragment
+                -- unit can't be using the same index
+                setTexture rs Nothing
+              _         -> do
+                -- vice versa
+                setVertexTexture rs Nothing
+                setTexture rs $ Just tex
+            False -> do
+              -- Shared vertex / fragment textures or no vertex texture support
+              -- Bind texture (may be blank)
+              setTexture rs $ Just tex
+
+    -- Set texture layer filtering
+    setTextureUnitFiltering rs texType minFilter magFilter mipFilter
+
+    -- Set texture layer filtering
+    when (Set.member RSC_ANISOTROPY caps) $
+        setTextureLayerAnisotropy rs texType maxAniso
+
+    -- Set mipmap biasing
+    when (Set.member RSC_MIPMAP_LOD_BIAS caps) $
+        setTextureMipmapBias rs mipmapBias
+
+    -- Set blend modes
+    -- Check to see if blending is supported
+    when (Set.member RSC_BLENDING caps) $ do
+        setTextureBlendMode rs colourBlendMode alphaBlendMode
+        --HINT: Obsolete below, due to stateful behaviour
+        -- Note, colour before alpha is important
+        --setTextureBlendMode rs colourBlendMode
+        --setTextureBlendMode rs alphaBlendMode
+
+    -- Texture addressing mode
+    setTextureAddressingMode rs texType uvw
+    -- Set texture border colour only if required
+    when (amU uvw == TAM_BORDER || amV uvw == TAM_BORDER || amW uvw == TAM_BORDER) $
+        setTextureBorderColour rs texType borderColour
+
+    -- Set texture effects
+    -- TODO
+    setTextureCoordCalculation rs TEXCALC_NONE
+    forM_ effects $ \e -> case teType e of
+        ET_ENVIRONMENT_MAP -> setTextureCoordCalculation rs TEXCALC_ENVIRONMENT_MAP
+        _                  -> return ()
diff --git a/Graphics/LambdaCube/RenderSystem/GL.hs b/Graphics/LambdaCube/RenderSystem/GL.hs
--- a/Graphics/LambdaCube/RenderSystem/GL.hs
+++ b/Graphics/LambdaCube/RenderSystem/GL.hs
@@ -2,11 +2,11 @@
 
 import Graphics.LambdaCube.Entity
 import Graphics.LambdaCube.RenderSystem
-import Graphics.LambdaCube.RenderSystem.GL.GLRenderSystem
-import Graphics.LambdaCube.RenderSystem.GL.GLVertexBuffer
-import Graphics.LambdaCube.RenderSystem.GL.GLIndexBuffer
-import Graphics.LambdaCube.RenderSystem.GL.GLTexture
-import Graphics.LambdaCube.RenderSystem.GL.GLGpuProgram
+import Graphics.LambdaCube.RenderSystem.GL.GpuProgram
+import Graphics.LambdaCube.RenderSystem.GL.IndexBuffer
+import Graphics.LambdaCube.RenderSystem.GL.RenderSystem
+import Graphics.LambdaCube.RenderSystem.GL.Texture
+import Graphics.LambdaCube.RenderSystem.GL.VertexBuffer
 
 type GLEntity = Entity GLVertexBuffer GLIndexBuffer GLTexture GLLinkedGpuProgram
 
diff --git a/Graphics/LambdaCube/RenderSystem/GL/Capabilities.hs b/Graphics/LambdaCube/RenderSystem/GL/Capabilities.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/RenderSystem/GL/Capabilities.hs
@@ -0,0 +1,217 @@
+module Graphics.LambdaCube.RenderSystem.GL.Capabilities where
+
+import qualified Data.Set as Set
+
+import Graphics.Rendering.OpenGL.Raw.Core31
+import qualified Graphics.Rendering.OpenGL.Raw.ARB.Compatibility as Compat
+
+import Graphics.LambdaCube.RenderSystemCapabilities
+import Graphics.LambdaCube.RenderSystem.GL.Utils
+
+mkGLCapabilities :: IO RenderSystemCapabilities
+mkGLCapabilities = do
+    vendorS     <- getString gl_VENDOR
+    extSList    <- getGLExtensions
+    -- setup device name
+    deviceName <- getString gl_RENDERER
+    -- setup vendor
+    let v = words vendorS
+        vendorName = if elem "NVIDIA" v         then GPU_NVIDIA
+                        else if elem "ATI" v    then GPU_ATI
+                        else if elem "Intel" v  then GPU_INTEL
+                        else if elem "S3" v     then GPU_S3
+                        else if elem "Matrox" v then GPU_MATROX
+                        else if elem "3DLabs" v then GPU_3DLABS
+                        else if elem "SiS" v    then GPU_SIS
+                        else GPU_UNKNOWN
+
+    (major,minor) <- getGLVersion
+    -- setup capabilities
+    let ext = Set.fromList extSList
+        glVer a b = major > a || (major >= a && minor >= b)
+        supports s = Set.member s ext
+        driverVersion = DriverVersion (fromIntegral major) (fromIntegral minor) 0 0 -- TODO
+        caps0 =
+            [ RSC_FIXED_FUNCTION        -- Supports fixed-function
+            , RSC_SCISSOR_TEST          -- Scissor test is standard in GL 1.2 (is it emulated on some cards though?)
+            , RSC_USER_CLIP_PLANES      -- As are user clipping planes
+            , RSC_VERTEX_FORMAT_UBYTE4  -- UBYTE4 always supported
+            , RSC_INFINITE_FAR_PLANE    -- Infinite far plane always supported
+            , RSC_TEXTURE_3D            -- 3D textures should be supported by GL 1.2, which is our minimum version
+            ]
+
+        -- Check for hardware mipmapping support.
+        caps1 = if not (glVer 1 4 || supports "GL_SGIS_generate_mipmap") then [] else
+            [RSC_AUTOMIPMAP] -- FIXME
+            {-
+            case vendorName of
+                { GPU_ATI   -> []   -- Apple & Linux ATI drivers have faults in hardware mipmap generation
+                -- The Intel 915G frequently corrupts textures when using hardware mip generation
+    			-- I'm not currently sure how many generations of hardware this affects,
+    			-- so for now, be safe.
+                ; GPU_INTEL -> []
+                ; GPU_SIS   -> []   -- SiS chipsets also seem to have problems with this
+                ; _         -> [RSC_AUTOMIPMAP]
+                }
+            -}
+        -- Check for blending support
+        caps2 = if (glVer 1 3 || supports "GL_ARB_texture_env_combine" || supports "GL_EXT_texture_env_combine") then [RSC_BLENDING] else []
+
+    -- Check for Multitexturing support and set number of texture units
+    numTexUnits <- case glVer 1 3 || supports "GL_ARB_multitexture" of
+        True  -> do
+          --mtu <- getInteger Compat.gl_MAX_TEXTURE_UNITS
+          mtimu <- case supports "GL_ARB_fragment_program" of
+              { True  -> do
+                  -- Also check GL_MAX_TEXTURE_IMAGE_UNITS_ARB since NV at least
+                  -- only increased this on the FX/6x00 series
+                  getInteger gl_MAX_TEXTURE_IMAGE_UNITS
+              ; False -> return 0
+              }
+          -- FIXME: enable at becoming hgl binding
+          return mtimu -- -- $ max mtu (fromIntegral mtimu)
+        False -> return 1
+
+        -- Check for Anisotropy support
+    let caps3 = if (supports "GL_EXT_texture_filter_anisotropic") then [RSC_ANISOTROPY] else []
+
+        -- Check for DOT3 support
+        caps4 = if (glVer 1 3 || supports "GL_ARB_texture_env_dot3" || supports "GL_EXT_texture_env_dot3") then [RSC_DOT3] else []
+
+        -- Check for cube mapping
+        caps5 = if (glVer 1 3 || supports "GL_ARB_texture_cube_map" || supports "GL_EXT_texture_cube_map") then [RSC_CUBEMAPPING] else []
+
+        -- Point sprites
+        caps6 = if (glVer 2 0 || supports "GL_ARB_point_sprite") then [RSC_POINT_SPRITES] else []
+
+        -- Check for point parameters
+        caps7 = if (glVer 1 4) then [RSC_POINT_EXTENDED_PARAMETERS] else []
+        caps8 = if (supports "GL_ARB_point_parameters") then [RSC_POINT_EXTENDED_PARAMETERS_ARB] else []
+        caps9 = if (supports "GL_EXT_point_parameters") then [RSC_POINT_EXTENDED_PARAMETERS_EXT] else []
+
+    -- Check for hardware stencil support and set bit depth
+    stencilBits <- getInteger Compat.gl_STENCIL_BITS
+    let caps10 = if stencilBits > 0 then [RSC_HWSTENCIL] else []
+
+        caps11 = if not (glVer 1 5 || supports "GL_ARB_vertex_buffer_object") then [] else
+            [RSC_VBO] ++ (if not (supports "GL_ARB_vertex_buffer_object") then [RSC_GL1_5_NOVBO] else [])
+-- TODO: haskell gl binding does not support query for GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
+        (prof1,caps12) = if supports "GL_NV_register_combiners2" && supports "GL_NV_texture_shader" then (["fp20"],[RSC_FRAGMENT_PROGRAM]) else ([],[])
+
+        -- check for ATI fragment shader support
+            -- no boolean params allowed
+            -- no integer params allowed
+            -- only 8 Vector4 constant floats supported
+        (prof2,caps13,fragConstBool,fragConstInt,fragConstFloat) = if supports "GL_ATI_fragment_shader" then (["ps_1_4","ps_1_3","ps_1_2","ps_1_1"],[RSC_FRAGMENT_PROGRAM],0,0,8) else ([],[],0,0,0)
+        -- Check if GLSL is supported
+        prof3 = if glVer 2 0 ||
+                (supports "GL_ARB_shading_language_100"
+                && supports "GL_ARB_shader_objects"
+                && supports "GL_ARB_fragment_shader"
+                && supports "GL_ARB_vertex_shader") then ["glsl"] else []
+        -- Check if render to vertex buffer (transform feedback in OpenGL)
+        caps14 = if (glVer 2 0 && supports "GL_NV_transform_feedback") then [RSC_HWRENDER_TO_VERTEX_BUFFER] else []
+        -- Check for texture compression
+        caps15 = if not (glVer 1 3 || supports "GL_ARB_texture_compression") then [] else
+            [RSC_TEXTURE_COMPRESSION]
+            -- Check for dxt compression
+            ++ (if supports "GL_EXT_texture_compression_s3tc" then [RSC_TEXTURE_COMPRESSION_DXT] else [])
+            -- Check for vtc compression
+            ++ (if supports "GL_NV_texture_compression_vtc" then [RSC_TEXTURE_COMPRESSION_VTC] else [])
+
+        -- 2-sided stencil?
+        caps16 = if (glVer 2 0 || supports "GL_EXT_stencil_two_side") then [RSC_TWO_SIDED_STENCIL] else []
+        caps17 = if (glVer 1 4 || supports "GL_EXT_stencil_wrap") then [RSC_STENCIL_WRAP] else []
+
+        -- Check for hardware occlusion support
+        caps18 = case glVer 1 5 || supports "GL_ARB_occlusion_query" of
+            -- Some buggy driver claim that it is GL 1.5 compliant and not support ARB_occlusion_query
+            { True  -> [RSC_HWOCCLUSION] ++ (if not (supports "GL_ARB_occlusion_query") then [RSC_GL1_5_NOHWOCCLUSION] else [])
+            -- Support NV extension too for old hardware
+            ; False -> if supports "GL_NV_occlusion_query" then [RSC_HWOCCLUSION] else []
+            }
+        -- Check for non-power-of-2 texture support
+        caps19 = if (supports "GL_ARB_texture_non_power_of_two") then [RSC_NON_POWER_OF_2_TEXTURES] else []
+
+        -- Check for Float textures
+        caps20 = if (supports "GL_ATI_texture_float" || supports "GL_ARB_texture_float") then [RSC_TEXTURE_FLOAT] else []
+
+    -- Check for framebuffer object extension
+    (numMTR,caps21) <- case supports "GL_EXT_framebuffer_object" of
+        True  -> do
+          -- Probe number of draw buffers
+          -- Only makes sense with FBO support, so probe here
+          (n,c) <- case glVer 2 0 || supports "GL_ARB_draw_buffers" || supports "GL_ATI_draw_buffers" of
+              True  -> do
+                m <- getInteger gl_MAX_DRAW_BUFFERS
+                -- Before GL version 2.0, we need to get one of the extensions
+                let cp = case (glVer 2 0, supports "GL_ARB_draw_buffers", supports "GL_ATI_draw_buffers") of
+                        (False,True,True)     -> [RSC_FBO_ARB,RSC_FBO_ATI]
+                        (False,True,False)    -> [RSC_FBO_ARB]
+                        (False,False,True)    -> [RSC_FBO_ATI]
+                        _                     -> []
+                -- Set FBO flag for all 3 'subtypes'
+                return (m,[RSC_MRT_DIFFERENT_BIT_DEPTHS,RSC_FBO] ++ cp)
+              False -> return (0,[])
+          return (n,RSC_HWRENDER_TO_TEXTURE:c)
+        False -> do
+          return (0,[])
+        ------------------------------------------------------
+        -- FIXE: haskell gl binding does not have query for GL_POINT_SIZE_RANGE
+        -- Point size
+    maxPointSize <- getFloat Compat.gl_POINT_SIZE_MAX
+        -- Vertex texture fetching
+    (numVertTexUnits,caps22,vertTexUnitsShared) <- case supports "GL_ARB_vertex_shader" of
+        True  -> do
+          vunits <- getInteger gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS
+          -- GL always shares vertex and fragment texture units (for now?)
+          return (vunits,if vunits > 0 then [RSC_VERTEX_TEXTURE_FETCH] else [], True)
+        False -> return (0,[],False)
+
+        -- Mipmap LOD biasing?
+    let caps23 = if (glVer 1 4 || supports "GL_EXT_texture_lod_bias") then [RSC_MIPMAP_LOD_BIAS] else []
+
+        -- Alpha to coverage?
+            -- Alpha to coverage always 'supported' when MSAA is available
+            -- although card may ignore it if it doesn't specifically support A2C
+        caps24 = if (supports "GL_ARB_multisample") then [RSC_ALPHA_TO_COVERAGE] else []
+
+        -- Advanced blending operations
+        caps25 = if (glVer 2 0) then [RSC_ADVANCED_BLEND_OPERATIONS] else []
+    return RenderSystemCapabilities
+        { rscDriverVersion                      = driverVersion
+        , rscVendor                             = vendorName
+
+--        , rscNumWorldMatrices                   :: Int              -- ^ The number of world matrices available
+        , rscNumTextureUnits                    = fromIntegral numTexUnits
+        , rscStencilBufferBitDepth              = fromIntegral stencilBits
+--        , rscNumVertexBlendMatrices             :: Int
+        , rscCapabilities                       = Set.fromList $ caps0  ++ caps1  ++ caps2  ++ caps3  ++ caps4  ++ caps5  ++ caps6  ++ caps7  ++ caps8  ++ caps9
+                                                              ++ caps10 ++ caps11 ++ caps12 ++ caps13 ++ caps14 ++ caps15 ++ caps16 ++ caps17 ++ caps18 ++ caps19
+                                                              ++ caps20 ++ caps21 ++ caps22 ++ caps23 ++ caps24 ++ caps25
+
+        , rscDeviceName                         = deviceName
+        , rscRenderSystemName                   = "OpenGL Rendering Subsystem"
+-- TODO
+        , rscVertexProgramConstantFloatCount    = undefined
+        , rscVertexProgramConstantIntCount      = undefined
+        , rscVertexProgramConstantBoolCount     = undefined
+
+        , rscGeometryProgramConstantFloatCount  = undefined
+        , rscGeometryProgramConstantIntCount    = undefined
+        , rscGeometryProgramConstantBoolCount   = undefined
+
+        , rscFragmentProgramConstantFloatCount  = fragConstFloat
+        , rscFragmentProgramConstantIntCount    = fragConstInt
+        , rscFragmentProgramConstantBoolCount   = fragConstBool
+
+        , rscNumMultiRenderTargets              = fromIntegral numMTR
+        , rscMaxPointSize                       = realToFrac maxPointSize
+        , rscNonPOW2TexturesLimited             = False
+        , rscNumVertexTextureUnits              = fromIntegral numVertTexUnits
+        , rscVertexTextureUnitsShared           = vertTexUnitsShared
+-- TODO
+        , rscGeometryProgramNumOutputVertices   = undefined
+
+        , rscSupportedShaderProfiles            = Set.fromList $ prof1 ++ prof2 ++ prof3
+        }
diff --git a/Graphics/LambdaCube/RenderSystem/GL/GLCapabilities.hs b/Graphics/LambdaCube/RenderSystem/GL/GLCapabilities.hs
deleted file mode 100644
--- a/Graphics/LambdaCube/RenderSystem/GL/GLCapabilities.hs
+++ /dev/null
@@ -1,404 +0,0 @@
-module Graphics.LambdaCube.RenderSystem.GL.GLCapabilities where
-
-import Data.Set (Set)
-import qualified Data.Set as Set
-
-import Graphics.Rendering.OpenGL (($=))
-import qualified Graphics.Rendering.OpenGL as GL
-
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.RenderSystemCapabilities
-
-    {-
-       vendor, renderer, glVersion, glExtensions, shadingLanguageVersion,
-       majorMinor, contextProfile
-vendor :: GettableStateVar String
-renderer :: GettableStateVar String
-glVersion :: GettableStateVar String
-glExtensions :: GettableStateVar [String]
-shadingLanguageVersion :: GettableStateVar String
-
-    = DriverVersion 
-    { dvMajor   :: Int
-    , dvMinor   :: Int
-    , dvRelease :: Int
-    , dvBuild   :: Int
-    }
-    -}
-
-
---mkRenderSystemCapabilities :: IO RenderSystemCapabilities
-mkGLCapabilities = do
-    vendorS     <- GL.get GL.vendor
-    versionS    <- GL.get GL.glVersion
-    extSList    <- GL.get GL.glExtensions
-    shLngVerS   <- GL.get GL.shadingLanguageVersion
-
-    -- setup driver version
-    {-
-			StringVector tokens = StringUtil::split(mGLSupport->getGLVersion(), ".");
-
-			if (!tokens.empty())
-			{
-				mDriverVersion.major = StringConverter::parseInt(tokens[0]);
-				if (tokens.size() > 1)
-					mDriverVersion.minor = StringConverter::parseInt(tokens[1]);
-				if (tokens.size() > 2)
-					mDriverVersion.release = StringConverter::parseInt(tokens[2]); 
-			}
-			mDriverVersion.build = 0;
-    -}
-    -- setup device name
-    deviceName <- GL.get GL.renderer
-    {-
-		const char* deviceName = (const char*)glGetString(GL_RENDERER);
-		rsc->setDeviceName(deviceName);
-    -}
-    -- setup vendor    
-    let v = words vendorS
-        vendorName = if elem "NVIDIA" v         then GPU_NVIDIA
-                        else if elem "ATI" v    then GPU_ATI
-                        else if elem "Intel" v  then GPU_INTEL
-                        else if elem "S3" v     then GPU_S3
-                        else if elem "Matrox" v then GPU_MATROX
-                        else if elem "3DLabs" v then GPU_3DLABS
-                        else if elem "SiS" v    then GPU_SIS
-                        else GPU_UNKNOWN
-
-    (major,minor) <- GL.get $ GL.majorMinor GL.glVersion
-    -- setup capabilities
-    let ext = Set.fromList extSList
-        glVer a b = major > a || (major >= a && minor >= b)
-        supports s = Set.member s ext
-        driverVersion = DriverVersion major minor 0 0 -- TODO
-        caps0 =
-            [ RSC_FIXED_FUNCTION        -- Supports fixed-function
-            , RSC_SCISSOR_TEST          -- Scissor test is standard in GL 1.2 (is it emulated on some cards though?)
-            , RSC_USER_CLIP_PLANES      -- As are user clipping planes
-            , RSC_VERTEX_FORMAT_UBYTE4  -- UBYTE4 always supported
-            , RSC_INFINITE_FAR_PLANE    -- Infinite far plane always supported
-            , RSC_TEXTURE_3D            -- 3D textures should be supported by GL 1.2, which is our minimum version
-            ]
-        
-        -- Check for hardware mipmapping support.
-        caps1 = if not (glVer 1 4 || supports "GL_SGIS_generate_mipmap") then [] else
-            [RSC_AUTOMIPMAP] -- FIXME
-            {-
-            case vendorName of
-                { GPU_ATI   -> []   -- Apple & Linux ATI drivers have faults in hardware mipmap generation
-                -- The Intel 915G frequently corrupts textures when using hardware mip generation
-    			-- I'm not currently sure how many generations of hardware this affects, 
-    			-- so for now, be safe. 
-                ; GPU_INTEL -> []
-                ; GPU_SIS   -> []   -- SiS chipsets also seem to have problems with this
-                ; _         -> [RSC_AUTOMIPMAP]
-                }
-            -}
-        -- Check for blending support
-        caps2 = if (glVer 1 3 || supports "GL_ARB_texture_env_combine" || supports "GL_EXT_texture_env_combine") then [RSC_BLENDING] else []
-
-    -- Check for Multitexturing support and set number of texture units
-    numTexUnits <- case glVer 1 3 || supports "GL_ARB_multitexture" of
-        { True  -> do
-            GL.TextureUnit mtu <- GL.get GL.maxTextureUnit
-            mtimu <- case supports "GL_ARB_fragment_program" of 
-                { True  -> do
-                    -- Also check GL_MAX_TEXTURE_IMAGE_UNITS_ARB since NV at least
-                    -- only increased this on the FX/6x00 series
-                    GL.get GL.maxTextureImageUnits
-                ; False -> return 0
-                }
-            -- FIXME: enable at becoming hgl binding
-            return mtimu -- $ max mtu (fromIntegral mtimu)
-        ; False -> return 1
-        }
-
-        -- Check for Anisotropy support
-    let caps3 = if (supports "GL_EXT_texture_filter_anisotropic") then [RSC_ANISOTROPY] else []
-
-        -- Check for DOT3 support
-        caps4 = if (glVer 1 3 || supports "GL_ARB_texture_env_dot3" || supports "GL_EXT_texture_env_dot3") then [RSC_DOT3] else []
-
-        -- Check for cube mapping
-        caps5 = if (glVer 1 3 || supports "GL_ARB_texture_cube_map" || supports "GL_EXT_texture_cube_map") then [RSC_CUBEMAPPING] else []
-
-        -- Point sprites
-        caps6 = if (glVer 2 0 || supports "GL_ARB_point_sprite") then [RSC_POINT_SPRITES] else []
-
-        -- Check for point parameters
-        caps7 = if (glVer 1 4) then [RSC_POINT_EXTENDED_PARAMETERS] else []
-        caps8 = if (supports "GL_ARB_point_parameters") then [RSC_POINT_EXTENDED_PARAMETERS_ARB] else []
-        caps9 = if (supports "GL_EXT_point_parameters") then [RSC_POINT_EXTENDED_PARAMETERS_EXT] else []
-
-    -- Check for hardware stencil support and set bit depth
-    stencilBits <- GL.get GL.stencilBits
-    let caps10 = if stencilBits > 0 then [RSC_HWSTENCIL] else []
-
-        caps11 = if not (glVer 1 5 || supports "GL_ARB_vertex_buffer_object") then [] else
-            [RSC_VBO] ++ (if not (supports "GL_ARB_vertex_buffer_object") then [RSC_GL1_5_NOVBO] else [])
--- TODO: haskell gl binding does not support query for GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
-{-
-		if(GLEW_ARB_vertex_program)
-		{
-			rsc->setCapability(RSC_VERTEX_PROGRAM);
-
-			// Vertex Program Properties
-			rsc->setVertexProgramConstantBoolCount(0);
-			rsc->setVertexProgramConstantIntCount(0);
-
-			GLint floatConstantCount;
-			glGetProgramivARB(GL_VERTEX_PROGRAM_ARB, GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB, &floatConstantCount);
-			rsc->setVertexProgramConstantFloatCount(floatConstantCount);
-
-			rsc->addShaderProfile("arbvp1");
-			if (GLEW_NV_vertex_program2_option)
-			{
-				rsc->addShaderProfile("vp30");
-			}
-
-			if (GLEW_NV_vertex_program3)
-			{
-				rsc->addShaderProfile("vp40");
-			}
-
-			if (GLEW_NV_vertex_program4)
-			{
-				rsc->addShaderProfile("gp4vp");
-				rsc->addShaderProfile("gpu_vp");
-			}
-		}
--}
-        (prof1,caps12) = if supports "GL_NV_register_combiners2" && supports "GL_NV_texture_shader" then (["fp20"],[RSC_FRAGMENT_PROGRAM]) else ([],[])
-
-        -- check for ATI fragment shader support
-            -- no boolean params allowed
-            -- no integer params allowed
-            -- only 8 Vector4 constant floats supported
-        (prof2,caps13,fragConstBool,fragConstInt,fragConstFloat) = if supports "GL_ATI_fragment_shader" then (["ps_1_4","ps_1_3","ps_1_2","ps_1_1"],[RSC_FRAGMENT_PROGRAM],0,0,8) else ([],[],0,0,0)
--- TODO
-------------------------------------------------------------------------------
-{-
-        (prof,cap,fragConstBool,fragConstInt,fragConstFloat) <- case supports "GL_ARB_fragment_program" of
-            { True  -> do
-                -- Fragment Program Properties
-                return ([],[RSC_FRAGMENT_PROGRAM],0,0,)
-            ; False -> ([],[],0,0,0)
-            }
--}
-{-
-
-		if (GLEW_ARB_fragment_program)
-		{
-			rsc->setCapability(RSC_FRAGMENT_PROGRAM);
-
-			// Fragment Program Properties
-			rsc->setFragmentProgramConstantBoolCount(0);
-			rsc->setFragmentProgramConstantIntCount(0);
-
-			GLint floatConstantCount;
-			glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB, &floatConstantCount);
-			rsc->setFragmentProgramConstantFloatCount(floatConstantCount);
-
-			rsc->addShaderProfile("arbfp1");
-			if (GLEW_NV_fragment_program_option)
-			{
-				rsc->addShaderProfile("fp30");
-			}
-
-			if (GLEW_NV_fragment_program2)
-			{
-				rsc->addShaderProfile("fp40");
-			}        
-		}
--}
-------------------------------------------------------------------------------
-        -- Check if GLSL is supported
-        prof3 = if glVer 2 0 ||
-                (supports "GL_ARB_shading_language_100" 
-                && supports "GL_ARB_shader_objects"
-                && supports "GL_ARB_fragment_shader"
-                && supports "GL_ARB_vertex_shader") then ["glsl"] else []
--- TODO
---------------------------------------------------------------------------------------
-        -- Check if geometry shaders are supported
-        {-
-        (cap,prof,boolC,intC,floatC,outVertN) <- case glVer 2 0 && supports "GL_EXT_geometry_shader4" of
-            { True  -> do
-                return ([RSC_GEOMETRY_PROGRAM],["nvgp4","gpu_gp","gp4gp"],0,0,)
-            ; False -> return ([],[],0,0,0,0)
-            }
-        -}
-{-
-		// Check if geometry shaders are supported
-		if (GLEW_VERSION_2_0 &&
-			GLEW_EXT_geometry_shader4)
-		{
-			rsc->setCapability(RSC_GEOMETRY_PROGRAM);
-			rsc->addShaderProfile("nvgp4");
-
-			//Also add the CG profiles
-			rsc->addShaderProfile("gpu_gp");
-			rsc->addShaderProfile("gp4gp");
-
-			rsc->setGeometryProgramConstantBoolCount(0);
-			rsc->setGeometryProgramConstantIntCount(0);
-
-			GLint floatConstantCount;
-			glGetProgramivARB(GL_GEOMETRY_PROGRAM_NV, GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB, &floatConstantCount);
-			rsc->setGeometryProgramConstantFloatCount(floatConstantCount);
-
-			GLint maxOutputVertices;
-			glGetIntegerv(GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT,&maxOutputVertices);
-			rsc->setGeometryProgramNumOutputVertices(maxOutputVertices);
-		}
--}		
---------------------------------------------------------------------------------------
-        -- Check if render to vertex buffer (transform feedback in OpenGL)
-        caps14 = if (glVer 2 0 && supports "GL_NV_transform_feedback") then [RSC_HWRENDER_TO_VERTEX_BUFFER] else []
-
-        -- Check for texture compression
-        caps15 = if not (glVer 1 3 || supports "GL_ARB_texture_compression") then [] else
-            [RSC_TEXTURE_COMPRESSION]
-            -- Check for dxt compression
-            --------------------------------------------------------------------------------
-            {-  FIXME: we should disable DXT on (apple && ati && ppc)
-                -- if defined(__APPLE__) && defined(__PPC__)
-                --			// Apple on ATI & PPC has errors in DXT
-                --			if (mGLSupport->getGLVendor().find("ATI") == std::string::npos)
-                -- endif
-            -}
-            --------------------------------------------------------------------------------
-            ++ (if supports "GL_EXT_texture_compression_s3tc" then [RSC_TEXTURE_COMPRESSION_DXT] else [])
-            -- Check for vtc compression
-            ++ (if supports "GL_NV_texture_compression_vtc" then [RSC_TEXTURE_COMPRESSION_VTC] else [])
-
-        -- 2-sided stencil?
-        caps16 = if (glVer 2 0 || supports "GL_EXT_stencil_two_side") then [RSC_TWO_SIDED_STENCIL] else []
-        caps17 = if (glVer 1 4 || supports "GL_EXT_stencil_wrap") then [RSC_STENCIL_WRAP] else []
-
-        -- Check for hardware occlusion support
-        caps18 = case glVer 1 5 || supports "GL_ARB_occlusion_query" of
-            -- Some buggy driver claim that it is GL 1.5 compliant and not support ARB_occlusion_query
-            { True  -> [RSC_HWOCCLUSION] ++ (if not (supports "GL_ARB_occlusion_query") then [RSC_GL1_5_NOHWOCCLUSION] else [])
-            -- Support NV extension too for old hardware
-            ; False -> if supports "GL_NV_occlusion_query" then [RSC_HWOCCLUSION] else []
-            } 
-        -- Check for non-power-of-2 texture support
-        caps19 = if (supports "GL_ARB_texture_non_power_of_two") then [RSC_NON_POWER_OF_2_TEXTURES] else []
-
-        -- Check for Float textures
-        caps20 = if (supports "GL_ATI_texture_float" || supports "GL_ARB_texture_float") then [RSC_TEXTURE_FLOAT] else []
-
-    -- Check for framebuffer object extension
-    (numMTR,caps21) <- case supports "GL_EXT_framebuffer_object" of
-        { True  -> do
-            -- Probe number of draw buffers
-            -- Only makes sense with FBO support, so probe here
-            (n,c) <- case glVer 2 0 || supports "GL_ARB_draw_buffers" || supports "GL_ATI_draw_buffers" of
-                { True  -> do
-                    m <- GL.get GL.maxDrawBuffers
-                    -- Before GL version 2.0, we need to get one of the extensions
-                    let cp = case (glVer 2 0, supports "GL_ARB_draw_buffers", supports "GL_ATI_draw_buffers") of
-                            { (False,True,True)     -> [RSC_FBO_ARB,RSC_FBO_ATI]
-                            ; (False,True,False)    -> [RSC_FBO_ARB]
-                            ; (False,False,True)    -> [RSC_FBO_ATI]
-                            ; _                     -> []
-                            }
-                    -- Set FBO flag for all 3 'subtypes'
-                    return (m,[RSC_MRT_DIFFERENT_BIT_DEPTHS,RSC_FBO] ++ cp)
-                ; False -> return (0,[])
-                }
-            return (n,RSC_HWRENDER_TO_TEXTURE:c)
-        ; False -> do
-            -- TODO
-            ----------------------------------------------
-            {-
-            // Check GLSupport for PBuffer support
-            if(mGLSupport->supportsPBuffers())
-            {
-                // Use PBuffers
-                rsc->setCapability(RSC_HWRENDER_TO_TEXTURE);
-                rsc->setCapability(RSC_PBUFFER);
-            }
-            -}
-            ----------------------------------------------
-            return (0,[])
-        }
-        ------------------------------------------------------
-        -- FIXE: haskell gl binding does not have query for GL_POINT_SIZE_RANGE
-        -- Point size
-    (_,maxPointSize) <- GL.get GL.pointSizeRange
-        {-
-		if (GLEW_VERSION_1_4)
-		{
-    		float ps;
-    		glGetFloatv(GL_POINT_SIZE_MAX, &ps);
-    		rsc->setMaxPointSize(ps);
-		}
-		else
-		{
-			GLint vSize[2];
-			glGetIntegerv(GL_POINT_SIZE_RANGE,vSize);
-			rsc->setMaxPointSize(vSize[1]);
-		}
-        -}
-        -- Point size: Ends here
-        ------------------------------------------------------
-
-        -- Vertex texture fetching
-    (numVertTexUnits,caps22,vertTexUnitsShared) <- case supports "GL_ARB_vertex_shader" of
-        { True  -> do
-            vunits <- GL.get GL.maxVertexTextureImageUnits
-            -- GL always shares vertex and fragment texture units (for now?)
-            return (vunits,if vunits > 0 then [RSC_VERTEX_TEXTURE_FETCH] else [], True)
-        ; False -> return (0,[],False)
-        }
-        
-        -- Mipmap LOD biasing?
-    let caps23 = if (glVer 1 4 || supports "GL_EXT_texture_lod_bias") then [RSC_MIPMAP_LOD_BIAS] else []
-
-        -- Alpha to coverage?
-            -- Alpha to coverage always 'supported' when MSAA is available
-            -- although card may ignore it if it doesn't specifically support A2C
-        caps24 = if (supports "GL_ARB_multisample") then [RSC_ALPHA_TO_COVERAGE] else []
-
-        -- Advanced blending operations
-        caps25 = if (glVer 2 0) then [RSC_ADVANCED_BLEND_OPERATIONS] else []
-    return RenderSystemCapabilities
-        { rscDriverVersion                      = driverVersion
-        , rscVendor                             = vendorName
-    
---        , rscNumWorldMatrices                   :: Int              -- ^ The number of world matrices available
-        , rscNumTextureUnits                    = fromIntegral numTexUnits
-        , rscStencilBufferBitDepth              = fromIntegral stencilBits
---        , rscNumVertexBlendMatrices             :: Int
-        , rscCapabilities                       = Set.fromList $ caps0  ++ caps1  ++ caps2  ++ caps3  ++ caps4  ++ caps5  ++ caps6  ++ caps7  ++ caps8  ++ caps9 
-                                                              ++ caps10 ++ caps11 ++ caps12 ++ caps13 ++ caps14 ++ caps15 ++ caps16 ++ caps17 ++ caps18 ++ caps19 
-                                                              ++ caps20 ++ caps21 ++ caps22 ++ caps23 ++ caps24 ++ caps25
-    
-        , rscDeviceName                         = deviceName
-        , rscRenderSystemName                   = "OpenGL Rendering Subsystem"
--- TODO    
-        , rscVertexProgramConstantFloatCount    = undefined
-        , rscVertexProgramConstantIntCount      = undefined
-        , rscVertexProgramConstantBoolCount     = undefined
-
-        , rscGeometryProgramConstantFloatCount  = undefined
-        , rscGeometryProgramConstantIntCount    = undefined
-        , rscGeometryProgramConstantBoolCount   = undefined
-
-        , rscFragmentProgramConstantFloatCount  = fragConstFloat
-        , rscFragmentProgramConstantIntCount    = fragConstInt
-        , rscFragmentProgramConstantBoolCount   = fragConstBool
-
-        , rscNumMultiRenderTargets              = fromIntegral numMTR
-        , rscMaxPointSize                       = realToFrac maxPointSize
-        , rscNonPOW2TexturesLimited             = False
-        , rscNumVertexTextureUnits              = fromIntegral numVertTexUnits
-        , rscVertexTextureUnitsShared           = vertTexUnitsShared
--- TODO
-        , rscGeometryProgramNumOutputVertices   = undefined
-
-        , rscSupportedShaderProfiles            = Set.fromList $ prof1 ++ prof2 ++ prof3
-        }
-    
diff --git a/Graphics/LambdaCube/RenderSystem/GL/GLGpuProgram.hs b/Graphics/LambdaCube/RenderSystem/GL/GLGpuProgram.hs
deleted file mode 100644
--- a/Graphics/LambdaCube/RenderSystem/GL/GLGpuProgram.hs
+++ /dev/null
@@ -1,147 +0,0 @@
-module Graphics.LambdaCube.RenderSystem.GL.GLGpuProgram where
-
-import Data.Either
-
-import System.Log.Logger
-import Graphics.Rendering.OpenGL (($=))
-import qualified Graphics.Rendering.OpenGL as GL
-
-import Graphics.LambdaCube.HardwareVertexBuffer
-import Graphics.LambdaCube.GpuProgram
-import Graphics.LambdaCube.GpuProgramParams
-
--- Some drivers (e.g. OS X on nvidia) incorrectly determine the attribute binding automatically
--- and end up aliasing existing built-ins. So avoid! Fixed builtins are: 
-
---  a  builtin				custom attrib name
--- ----------------------------------------------
---	0  gl_Vertex			vertex
---  1  n/a					blendWeights		
---	2  gl_Normal			normal
---	3  gl_Color				colour
---	4  gl_SecondaryColor	secondary_colour
---	5  gl_FogCoord			fog_coord
---  7  n/a					blendIndices
---	8  gl_MultiTexCoord0	uv0
---	9  gl_MultiTexCoord1	uv1
---	10 gl_MultiTexCoord2	uv2
---	11 gl_MultiTexCoord3	uv3
---	12 gl_MultiTexCoord4	uv4
---	13 gl_MultiTexCoord5	uv5
---	14 gl_MultiTexCoord6	uv6, tangent
---	15 gl_MultiTexCoord7	uv7, binormal
-getFixedAttributeIndex :: VertexElementSemantic -> Int -> Int
-getFixedAttributeIndex semantic index = case semantic of
-    { VES_POSITION              -> 0
-    ; VES_BLEND_WEIGHTS         -> 1
-    ; VES_NORMAL                -> 2
-    ; VES_DIFFUSE               -> 3
-    ; VES_SPECULAR              -> 4
-    ; VES_BLEND_INDICES         -> 7
-    ; VES_TEXTURE_COORDINATES   -> 8 + index
-    ; VES_TANGENT               -> 14
-    ; VES_BINORMAL              -> 15
-    --; _ -> error "Missing attribute!"
-    }
-
-isAttributeValid :: VertexElementSemantic -> Int -> Bool
-isAttributeValid semantic index = case semantic of
-    { VES_POSITION              -> False
-    ; VES_NORMAL                -> False
-    ; VES_DIFFUSE               -> False
-    ; VES_SPECULAR              -> False
-    ; VES_TEXTURE_COORDINATES   -> False
-    ; VES_BLEND_WEIGHTS         -> True
-    ; VES_BLEND_INDICES         -> True
-    ; VES_BINORMAL              -> True
-    ; VES_TANGENT               -> True
-    }
-{-
-data GLGpuProgram
-    = GLGpuProgram
-    { glgpType                  :: GpuProgramType        -- ^ The type of the program
-    , glgpFilename              :: String                -- ^ The name of the file to load source from (may be blank)
-    , glgpSource                :: String                -- ^ The assembler source of the program (may be blank until file loaded)
-    , glgpLoadFromFile          :: Bool                  -- ^ Whether we need to load source from file or not
-    , glgpSyntaxCode            :: String                -- ^ Syntax code e.g. arbvp1, vs_2_0 etc
-    , glgpSkeletalAnimation     :: Bool                  -- ^ Does this (vertex) program include skeletal animation?
-    , glgpMorphAnimation        :: Bool                  -- ^ Does this (vertex) program include morph animation?
-    , glgpPoseAnimation         :: Int                   -- ^ Does this (vertex) program include pose animation (count of number of poses supported)
-    , glgpVertexTextureFetch    :: Bool                  -- ^ Does this (vertex) program require support for vertex texture fetch?
-    , glgpNeedsAdjacencyInfo    :: Bool                  -- ^ Does this (geometry) program require adjacency information?
-    , glgpDefaultParams         :: GpuProgramParameters  -- ^ The default parameters for use with this object
-    , glgpCompileError          :: Bool                  -- ^ Did we encounter a compilation error?
-
-    , glgpProgramObject         :: GL.Program
-    }
--}
-data GLGpuProgram
-    = GLGpuProgram
-    { glgpShaderObject          :: Either GL.VertexShader GL.FragmentShader
-    }
-    deriving Eq
-
-data GLLinkedGpuProgram
-    = GLLinkedGpuProgram
-    { gllgpProgramObject        :: GL.Program
-    }
-    deriving Eq
-
-instance LinkedGpuProgram GLLinkedGpuProgram --where
-
-instance GpuProgram GLGpuProgram --where
---    gpType  = undefined
-
-compileShader src = do
-    [shader] <- GL.genObjectNames 1
-    GL.shaderSource shader $= [src]
-    GL.compileShader shader
-
-    -- TEMP CODE
-    infoLog <- GL.get (GL.shaderInfoLog shader)
-    infoM "ResourceLibrary" $ "infoLog cmp " ++ infoLog
-    ok <- GL.get (GL.compileStatus shader)
-    case ok of
-        { False -> do
-            GL.deleteObjectNames [shader]
-            errl <- GL.get GL.errors
-            return $ Right $ "shader compilation failed: " ++ concat [show c ++ " - " ++ m ++ "\n" | GL.Error c m <- errl]
-        ; True  -> return $ Left shader
-        }
-
-mkGLGpuProgram ptype src = case ptype of
-    { GPT_VERTEX_PROGRAM    -> do
-        debugM "ResourceLibrary" $ "compiling vertex shader: "
-        s <- compileShader src
-        case s of
-            { Right m   -> return $ Right m
-            ; Left sh   -> return $ Left $ GLGpuProgram $ Left sh
-            }
-    ; GPT_FRAGMENT_PROGRAM  -> do
-        debugM "ResourceLibrary" $ "compiling fragment shader: "
-        s <- compileShader src
-        case s of
-            { Right m   -> return $ Right m
-            ; Left sh   -> return $ Left $ GLGpuProgram $ Right sh
-            }
-    ; GPT_GEOMETRY_PROGRAM  -> undefined
-    }
-
-mkGLLinkedGpuProgram :: [GLGpuProgram] -> IO (Either GLLinkedGpuProgram String)
-mkGLLinkedGpuProgram pl = do
-    [p] <- GL.genObjectNames 1
-    let vp = lefts $ map glgpShaderObject pl
-        fp = rights $ map glgpShaderObject pl
-    GL.attachedShaders p $= (vp, fp)
-    GL.linkProgram p
-
-    ok <- GL.get (GL.linkStatus p)
-    infoLog <- GL.get (GL.programInfoLog p)
-    infoM "ResourceLibrary"  $ "infoLog link " ++ infoLog
-    case ok of
-        { False -> do
-            GL.deleteObjectNames [p]
-            errl <- GL.get GL.errors
-            return $ Right $ "GpuProgram linking failed: " ++ concat [show c ++ " - " ++ m ++ "\n" | GL.Error c m <- errl]
-        ; True  -> return $ Left $ GLLinkedGpuProgram p
-        }
diff --git a/Graphics/LambdaCube/RenderSystem/GL/GLIndexBuffer.hs b/Graphics/LambdaCube/RenderSystem/GL/GLIndexBuffer.hs
deleted file mode 100644
--- a/Graphics/LambdaCube/RenderSystem/GL/GLIndexBuffer.hs
+++ /dev/null
@@ -1,142 +0,0 @@
-module Graphics.LambdaCube.RenderSystem.GL.GLIndexBuffer where
-
-import Data.Word
-import Data.Maybe
-import Foreign.Marshal.Alloc
-import Foreign.Marshal.Utils
-import Foreign.Storable
-import Foreign.C.Types
-import Foreign.Ptr
-import Data.IORef
-import Control.Monad
-
-import Graphics.Rendering.OpenGL (($=))
-import qualified Graphics.Rendering.OpenGL as GL
-
-import Graphics.LambdaCube.RenderSystem
-import Graphics.LambdaCube.HardwareBuffer
-import Graphics.LambdaCube.HardwareIndexBuffer
-import Graphics.LambdaCube.RenderSystem.GL.GLUtils
-
-
--- | Specialisation of HardwareIndexBuffer for GL
-data GLIndexBuffer
-    = GLIndexBuffer
-    { glibType         :: IndexType
-    , glibNumIndexes   :: Int
-           
-    , glibUsage        :: Usage
-    , glibLockInfo     :: IORef (Maybe (Int,Int,Bool)) -- LockStart LockSize RequireUpdate
-
-    , glibShadowBuffer :: Maybe (Ptr Word8)
-    , glibBufferObject :: Maybe GL.BufferObject
-    }
-    deriving Eq
-    
-instance HardwareIndexBuffer GLIndexBuffer where
-    getIndexType    = glibType
-    getNumIndexes   = glibNumIndexes
-    getIndexSize b  = case getIndexType b of
-        { IT_16BIT -> 2
-        ; IT_32BIT -> 4
-        }
-
-instance HardwareBuffer GLIndexBuffer where
-    getSizeInBytes b    = getIndexSize b * glibNumIndexes b
-    isSystemMemory      = isNothing . glibBufferObject
-    hasShadowBuffer b   = (isJust $ glibShadowBuffer b) && (isJust $ glibBufferObject b)
-    getUsage            = glibUsage
-    isLocked            = glibIsLocked
-    unlock              = glibUnlock
-    lock                = glibLock
-
-glibIsLocked b = do
-    i <- readIORef $ glibLockInfo b
-    return $ isJust i
-
-glibLock a offs len opts = do
-    lockinfo <- readIORef (glibLockInfo a)
-    when (isJust lockinfo) $ error "Cannot lock this buffer, it is already locked!"
-    writeIORef (glibLockInfo a) $ Just (offs,len,opts /= HBL_READ_ONLY)
-    case glibShadowBuffer a of
-        { Just b    -> return $ plusPtr b offs
-        ; Nothing   -> do
-            GL.bindBuffer GL.ElementArrayBuffer $= (glibBufferObject a)
-            -- Discard if required
-            when (opts == HBL_DISCARD) $ GL.bufferData GL.ElementArrayBuffer $= (fromIntegral $ getSizeInBytes a, nullPtr, getGLUsage $ getUsage a)
-            let isWriteOnly = case getUsage a of
-                    { HBU_WRITE_ONLY                        -> True
-                    ; HBU_STATIC_WRITE_ONLY                 -> True
-                    ; HBU_DYNAMIC_WRITE_ONLY                -> True
-                    ; HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE    -> True
-                    ; _                                     -> False
-                    }
-                access = case (isWriteOnly,opts == HBL_READ_ONLY) of
-                    { (False,False) -> GL.ReadWrite
-                    ; (False,True)  -> GL.ReadOnly
-                    ; (True,_)      -> GL.WriteOnly
-                    }
-            mb <- GL.mapBuffer GL.ElementArrayBuffer access
-            case mb of
-                { Just b    -> return $ plusPtr b offs
-                ; Nothing   -> error "Index Buffer: Out of memory"
-                }
-        }
-
-glibUnlock a = do
-    lockinfo <- readIORef (glibLockInfo a)
-    let (lockStart,lockSize,reqUpdate) = case lockinfo of
-            { Just li   -> li
-            ; Nothing   -> error "Cannot unlock this buffer, it is not locked!"
-            }
-    writeIORef (glibLockInfo a) Nothing
-    case glibShadowBuffer a of
-        { Just b    -> when reqUpdate $ do -- If we used the shadow buffer this time...
-            GL.bindBuffer GL.ElementArrayBuffer $= (glibBufferObject a)
-            case lockStart == 0 && lockSize == getSizeInBytes a of
-                { True  -> GL.bufferData GL.ElementArrayBuffer $= (fromIntegral lockSize, b, getGLUsage $ getUsage a)
-                ; False -> GL.bufferSubData GL.ElementArrayBuffer GL.WriteToBuffer (fromIntegral lockStart) (fromIntegral lockSize) b
-                }
-        ; Nothing   -> do
-            GL.bindBuffer GL.ElementArrayBuffer $= (glibBufferObject a)
-            ok <- GL.unmapBuffer GL.ElementArrayBuffer
-            unless ok $ error "Buffer data corrupted, please reload"
-        }
-
---mkGLIndexBuffer :: RenderSystem rs vb _ _ => rs -> IndexType -> Int -> Usage -> Bool -> IO GLIndexBuffer
-mkGLIndexBuffer rs itype numIndexes usage useShadowBuffer = do
-    let isize = case itype of
-        { IT_16BIT -> 2
-        ; IT_32BIT -> 4
-        }
-    lockinfo <- newIORef Nothing
-    [bufferObject] <- GL.genObjectNames 1
-    GL.bindBuffer GL.ElementArrayBuffer $= Just bufferObject
-    GL.bufferData GL.ElementArrayBuffer $= (fromIntegral $ numIndexes * isize, nullPtr, getGLUsage usage)
-    shadowBuffer <- case useShadowBuffer of
-        { True  -> do
-            b <- mallocBytes $ numIndexes * isize
-            return $ Just b
-        ; False -> return Nothing
-        }
-    return $ GLIndexBuffer
-        { glibType         = itype
-        , glibNumIndexes   = numIndexes
-                
-        , glibUsage        = usage
-        , glibLockInfo     = lockinfo
-
-        , glibShadowBuffer = shadowBuffer
-        , glibBufferObject = Just bufferObject
-        }
-
-rmGLIndexBuffer :: GLIndexBuffer -> IO ()
-rmGLIndexBuffer a = do
-    case glibBufferObject a of
-        { Just b    -> GL.deleteObjectNames [b]
-        ; Nothing   -> return ()
-        }
-    case glibShadowBuffer a of
-        { Just b    -> free b
-        ; Nothing   -> return ()
-        }
diff --git a/Graphics/LambdaCube/RenderSystem/GL/GLOcclusionQuery.hs b/Graphics/LambdaCube/RenderSystem/GL/GLOcclusionQuery.hs
deleted file mode 100644
--- a/Graphics/LambdaCube/RenderSystem/GL/GLOcclusionQuery.hs
+++ /dev/null
@@ -1,37 +0,0 @@
-module Graphics.LambdaCube.RenderSystem.GL.GLOcclusionQuery where
-
-import Graphics.Rendering.OpenGL (($=))
-import qualified Graphics.Rendering.OpenGL as GL
-
-import Graphics.LambdaCube.HardwareOcclusionQuery
-
-data GLOcclusionQuery
-    = GLOcclusionQuery
-    { gloqQueryObject    :: GL.QueryObject
-    }
-
-instance HardwareOcclusionQuery GLOcclusionQuery where
-    beginOcclusionQuery     = glBeginOcclusionQuery
-    endOcclusionQuery       = glEndOcclusionQuery
-    pullOcclusionQuery      = glPullOcclusionQuery
---    getLastQuerysPixelcount :: a -> IO Int
-    isStillOutstanding      = glStillOutstanding
-
-mkGLOcclusionQuery = do
-    [q] <- GL.genObjectNames 1
-    return $ GLOcclusionQuery q
-    
-rmGLOcclusionQuery o = do
-    GL.deleteObjectNames [gloqQueryObject o]
-
-glBeginOcclusionQuery o = GL.beginQuery GL.SamplesPassed $ gloqQueryObject o
-    
-glEndOcclusionQuery o = GL.endQuery GL.SamplesPassed
-    
-glPullOcclusionQuery o = do
-    c <- GL.get $ GL.queryResult $ gloqQueryObject o
-    return $ fromIntegral c
-
-glStillOutstanding o = do
-    b <- GL.get $ GL.queryResultAvailable $ gloqQueryObject o
-    return $ not b
diff --git a/Graphics/LambdaCube/RenderSystem/GL/GLRenderSystem.hs b/Graphics/LambdaCube/RenderSystem/GL/GLRenderSystem.hs
deleted file mode 100644
--- a/Graphics/LambdaCube/RenderSystem/GL/GLRenderSystem.hs
+++ /dev/null
@@ -1,1402 +0,0 @@
-{-# LANGUAGE MultiParamTypeClasses #-}
-module Graphics.LambdaCube.RenderSystem.GL.GLRenderSystem where
-
-import Data.IntMap ((!))
-import qualified Data.Map as Map
-import qualified Data.IntMap as IntMap
-import qualified Data.Set as Set
-import Data.IORef
-import Data.Word
-import Data.Maybe
-import Control.Monad
-import Foreign.C.Types
-import Foreign.Ptr
-
-import Graphics.Rendering.OpenGL (($=))
-import qualified Graphics.Rendering.OpenGL as GL
-
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.Common
-import Graphics.LambdaCube.Math
-import Graphics.LambdaCube.BlendMode
-import Graphics.LambdaCube.HardwareBuffer
-import Graphics.LambdaCube.HardwareVertexBuffer
-import Graphics.LambdaCube.HardwareIndexBuffer
-import Graphics.LambdaCube.VertexIndexData
-import Graphics.LambdaCube.RenderOperation
-import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.TextureUnitState
-import Graphics.LambdaCube.GpuProgram
-import Graphics.LambdaCube.RenderSystemCapabilities
-import Graphics.LambdaCube.RenderSystem
-import Graphics.LambdaCube.RenderSystem.GL.GLGpuProgram
-import Graphics.LambdaCube.RenderSystem.GL.GLTexture
-import Graphics.LambdaCube.RenderSystem.GL.GLVertexBuffer
-import Graphics.LambdaCube.RenderSystem.GL.GLIndexBuffer
-import Graphics.LambdaCube.RenderSystem.GL.GLOcclusionQuery
-import Graphics.LambdaCube.RenderSystem.GL.GLUtils
-import Graphics.LambdaCube.RenderSystem.GL.GLCapabilities
-
-data GLRenderSystem
-    = GLRenderSystem
-    { glrsWorldMatrix   :: IORef (GL.GLmatrix GL.GLfloat)
-    , glrsViewMatrix    :: IORef (GL.GLmatrix GL.GLfloat)
-    , glrsCapabilities  :: RenderSystemCapabilities
-    }
-
-mkGLRenderSystem = do
-    mat <- toGLMatrix $ scal 1
-    worldMat <- newIORef mat
-    viewMat <- newIORef mat
-    cap <- mkGLCapabilities
-
-    -- Initialize OpenGL
-    extSList    <- GL.get GL.glExtensions
-    (major,minor) <- GL.get $ GL.majorMinor GL.glVersion
-    -- setup capabilities
-    let ext = Set.fromList extSList
-        glVer a b = major > a || (major >= a && minor >= b)
-        supports s = Set.member s ext
-
-    when (glVer 1 2) $ do
-        -- Set nicer lighting model -- d3d9 has this by default
-        GL.lightModelColorControl $= GL.SeparateSpecularColor
-        GL.lightModelLocalViewer $= GL.Enabled
-
-    when (glVer 1 4) $ do
-        GL.colorSum $= GL.Enabled
-        GL.dither $= GL.Disabled
-
-    -- Check for FSAA
-    when (supports "GL_ARB_multisample") $ do
-        fsaa <- GL.get GL.sampleBuffers
-        when (fsaa > 0) $ 
-            GL.multisample $= GL.Enabled
-
-    return $ GLRenderSystem
-        { glrsWorldMatrix   = worldMat
-        , glrsViewMatrix    = viewMat
-        , glrsCapabilities  = cap
-        }
-
-glDirtyHackCopyTexImage tex x y w h = do
-    GL.textureBinding GL.Texture2D $= (Just $ gltxTextureObject tex)
-            -- only hint code: glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 0, 0, 128, 128, 0);
-    GL.copyTexImage2D Nothing 0 GL.RGBA' (GL.Position (fromIntegral x) (fromIntegral y)) (GL.TextureSize2D (fromIntegral w) (fromIntegral h)) 0
-    
-
-instance RenderSystem GLRenderSystem GLVertexBuffer GLIndexBuffer GLOcclusionQuery GLTexture GLGpuProgram GLLinkedGpuProgram where
-    dirtyHackCopyTexImage _         = glDirtyHackCopyTexImage
-    getName _                       = "OpenGL Rendering Subsystem"
-    getCapabilities                 = glrsCapabilities
-    createVertexBuffer              = mkGLVertexBuffer
-    createIndexBuffer               = mkGLIndexBuffer
-    createOcclusionQuery _          = mkGLOcclusionQuery
-    createTexture rs                = mkGLTexture (glrsCapabilities rs)
-    createGpuProgram _              = mkGLGpuProgram
-    createLinkedGpuProgram _        = mkGLLinkedGpuProgram
-    bindLinkedGpuProgram _          = glBindLinkedGpuProgram
-    unbindLinkedGpuProgram _        = glUnBindLinkedGpuProgram
-    render _                        = glRender
-    bindGeometry _                  = glBindGeometry
-    unbindGeometry rs               = glUnBindGeometry (glrsCapabilities rs)
-    setViewport _ x y w h           = glSetViewport x y w h
-    setPolygonMode _ pm             = glSetPolygonMode pm
-    setWorldMatrix                  = glSetWorldMatrix
-    setViewMatrix                   = glSetViewMatrix
-    setProjectionMatrix _ m         = glSetProjectionMatrix m
-    clearFrameBuffer _ b c d s      = glClearFrameBuffer b c d s
-    setShadingType _                = glSetShadingType
-    setCullingMode _                = glSetCullingMode
-    setAlphaRejectSettings rs       = glSetAlphaRejectSettings (glrsCapabilities rs)
-    setDepthBias _                  = glSetDepthBias
-    setDepthBufferWriteEnabled _    = glSetDepthBufferWriteEnabled
-    setDepthBufferFunction _        = glSetDepthBufferFunction  --FIXME
-    setColourBufferWriteEnabled _   = glSetColourBufferWriteEnabled
-    setSurfaceParams _              = glSetSurfaceParams
-    setLightingEnabled _            = glSetLightingEnabled
-    setFog _                        = glSetFog
-    setSceneBlending _              = glSetSceneBlending
-    setSeparateSceneBlending _      = glSetSeparateSceneBlending
-    setPointParameters              = glSetPointParameters
-    setPointSpritesEnabled rs       = glSetPointSpritesEnabled (glrsCapabilities rs)
-    setActiveTextureUnit _          = glSetActiveTextureUnit
-    setTexture _                    = glSetTexture
-    setTextureAddressingMode _      = glSetTextureAddressingMode
-    setTextureUnitFiltering _       = glSetTextureUnitFiltering
-    setTextureLayerAnisotropy _     = glSetTextureLayerAnisotropy
-    setTextureMipmapBias _          = glSetTextureMipmapBias
-    setTextureMatrix _              = glSetTextureMatrix
-    setTextureBorderColour _        = glSetTextureBorderColour
-    setTextureCoordCalculation _    = glSetTextureCoordCalculation
-    setTextureBlendMode rs          = glSetTextureBlendMode (glrsCapabilities rs)
-    getMinimumDepthInputValue _     = -1
-    getMaximumDepthInputValue _     = 1
-
-    
-glSetDepthBias constantBias slopeScaleBias = case constantBias /= 0 || slopeScaleBias /= 0 of
-    { True  -> do
-        GL.polygonOffsetFill    $= GL.Enabled
-        GL.polygonOffsetPoint   $= GL.Enabled
-        GL.polygonOffsetLine    $= GL.Enabled
-        GL.polygonOffset        $= (realToFrac (-slopeScaleBias), realToFrac (-constantBias))
-    ; False -> do
-        GL.polygonOffsetFill    $= GL.Disabled
-        GL.polygonOffsetPoint   $= GL.Disabled
-        GL.polygonOffsetLine    $= GL.Disabled
-    }
-
-glSetViewport x y w h = do
-    let x' = fromIntegral x
-        y' = fromIntegral y
-        w' = fromIntegral w
-        h' = fromIntegral h
-    GL.viewport $= (GL.Position x' y', GL.Size w' h')
-    GL.scissor $= Just (GL.Position x' y', GL.Size w' h') -- Configure the viewport clipping
-
-glSetPolygonMode pm = case pm of
-    { PM_POINTS     -> GL.polygonMode $= (GL.Point,GL.Point)
-    ; PM_WIREFRAME  -> GL.polygonMode $= (GL.Line,GL.Line)
-    ; PM_SOLID      -> GL.polygonMode $= (GL.Fill,GL.Fill)
-    }
-
-glSetWorldMatrix rs m = do
-    worldMat <- toGLMatrix m
-    writeIORef (glrsWorldMatrix rs) worldMat
-    viewMat <- readIORef $ glrsViewMatrix rs
-    GL.matrixMode $= (GL.Modelview 0)
-    GL.matrix (Just (GL.Modelview 0)) $= viewMat
-    GL.multMatrix worldMat
-
-glSetViewMatrix rs m = do
-    viewMat <- toGLMatrix m
-    writeIORef (glrsViewMatrix rs) viewMat
-    worldMat <- readIORef $ glrsWorldMatrix rs
-    GL.matrixMode $= (GL.Modelview 0)
-    GL.matrix (Just (GL.Modelview 0)) $= viewMat
-    GL.multMatrix worldMat
-
-glSetProjectionMatrix m = do
-    mat <- toGLMatrix m
-    GL.matrix (Just GL.Projection) $= mat
-
-glClearFrameBuffer buffers colour depth stencil = do
-    tmpColorMask    <- GL.get GL.colorMask
-    tmpDepthMask    <- GL.get GL.depthMask
-    tmpStencilMask  <- GL.get GL.stencilMask
-    tmpScissor      <- GL.get GL.scissor
-    
-    when (fbtColour buffers) $ do
-        let (r',g',b',a')   = colour
-            (r,g,b,a)       = (f r',f g',f b',f a')
-            f               :: FloatType -> GL.GLclampf
-            f               = realToFrac
-        GL.colorMask $= GL.Color4 GL.Enabled GL.Enabled GL.Enabled GL.Enabled
-        GL.clearColor $= GL.Color4 r g b a
-
-    when (fbtDepth buffers) $ do
-        let f :: FloatType -> GL.GLclampd
-            f  = realToFrac
-        GL.depthMask $= GL.Enabled
-        GL.clearDepth $= f depth
-        
-    when (fbtStencil buffers) $ do
-        let f :: Word16 -> GL.GLint
-            f  = fromIntegral
-        GL.stencilMask $= (maxBound::GL.GLuint)
-        GL.clearStencil $= f stencil
-    
-    view <- GL.get GL.viewport
-    GL.scissor $= Just view
-
-    -- HINT: workaround for a mesa gma bug
-    when (fbtColour buffers) $ GL.clear [GL.ColorBuffer]
-    when (fbtDepth buffers) $ GL.clear [GL.DepthBuffer]
-    when (fbtStencil buffers) $ GL.clear [GL.StencilBuffer]
-    --GL.clear $ map fst $ filter (\(_,b) -> b) $ zip [GL.ColorBuffer, GL.DepthBuffer, GL.StencilBuffer] [fbtColour buffers, fbtDepth buffers, fbtStencil buffers]
-    
-    GL.scissor $= tmpScissor
-
-    GL.depthMask    $= tmpDepthMask
-    GL.colorMask    $= tmpColorMask
-    GL.stencilMask  $= tmpStencilMask
-    
-
---glBindGeometry :: (HardwareVertexBuffer vb, HardwareIndexBuffer ib) => RenderOperation vb ib -> IO ()
---glBindGeometry :: RenderOperation GLVertexBuffer GLIndexBuffer -> IO ()
-glBindGeometry ro tl = do
-    let multitexturing  = True -- 1 < (rscNumTextureUnits rcap)
-        vertexData      = roVertexData ro
-        decl            = vdVertexDeclaration vertexData
-        checkBinding e  = case vdVertexBufferBinding vertexData of
-                            VertexBufferBinding bm -> veSource e `IntMap.member` bm
-    --  bind vertex elements
-    mapM_ (bindElement ro tl) $ filter checkBinding $ vdElementList decl
-
-    when multitexturing $ GL.clientActiveTexture $= GL.TextureUnit 0
-    --  bind index data and call draw operation
-    case roIndexData ro of 
-        { Just indexData    -> do
-            let indexBuffer = idIndexBuffer indexData
-            GL.bindBuffer GL.ElementArrayBuffer $= glibBufferObject indexBuffer
-        ; Nothing           -> return ()
-        }
-
---glUnBindGeometry :: RenderOperation GLVertexBuffer GLIndexBuffer -> IO ()
-glUnBindGeometry rsc ro = do
-    let multitexturing  = True -- 1 < (rscNumTextureUnits rcap)
-        f :: Int -> GL.GLuint
-        f = fromIntegral
-    
-    GL.clientState  GL.VertexArray $= GL.Disabled
-
-    -- only valid up to GL_MAX_TEXTURE_UNITS, which is recorded in mFixedFunctionTextureUnits
-    case multitexturing of
-        { True  -> do
-            forM_ [0..(rscNumTextureUnits rsc - 1)] $ \stage -> do
-                GL.clientActiveTexture $= (GL.TextureUnit $ f stage)
-                GL.clientState GL.TextureCoordArray $= GL.Disabled
-            GL.clientActiveTexture $= GL.TextureUnit 0
-        ; False -> GL.clientState GL.TextureCoordArray $= GL.Disabled
-        }
-    GL.clientState GL.NormalArray           $= GL.Disabled
-    GL.clientState GL.ColorArray            $= GL.Disabled
-    GL.clientState GL.SecondaryColorArray   $= GL.Disabled
-
-    -- unbind any custom attributes
-    {-
-    for (vector<GLuint>::type::iterator ai = attribsBound.begin(); ai != attribsBound.end(); ++ai)
-    {
-    	glDisableVertexAttribArrayARB(*ai); 
-    }
-    -}
-    
-    -- unbind buffers
-    GL.bindBuffer GL.ElementArrayBuffer $= Nothing
-    GL.bindBuffer GL.ArrayBuffer $= Nothing
-
--- _render :: RenderSystemCapabilities -> RenderOperation -> IO ()
---glRender :: Int -> GLRenderState -> RenderOperation -> IO GLRenderState
---glRender :: (HardwareVertexBuffer vb, HardwareIndexBuffer ib) => Int -> RenderOperation vb ib -> IO ()
-glRender :: RenderOperation GLVertexBuffer GLIndexBuffer -> IO ()
-glRender ro = do
-    -- TODO:
-    --  calculate statistics
-    {-
-        -- Update stats
-        size_t val;
-
-        if (op.useIndexes)
-            val = op.indexData->indexCount;
-        else
-            val = op.vertexData->vertexCount;
-
-        -- account for a pass having multiple iterations
-        if (mCurrentPassIterationCount > 1)
-            val *= mCurrentPassIterationCount;
-		mCurrentPassIterationNum = 0;
-
-        switch(op.operationType)
-        {
-		case RenderOperation::OT_TRIANGLE_LIST:
-            mFaceCount += val / 3;
-            break;
-        case RenderOperation::OT_TRIANGLE_STRIP:
-        case RenderOperation::OT_TRIANGLE_FAN:
-            mFaceCount += val - 2;
-            break;
-	    case RenderOperation::OT_POINT_LIST:
-	    case RenderOperation::OT_LINE_LIST:
-	    case RenderOperation::OT_LINE_STRIP:
-	        break;
-	    }
-
-        mVertexCount += op.vertexData->vertexCount;
-        mBatchCount += mCurrentPassIterationCount;
-
-		-- sort out clip planes
-		-- have to do it here in case of matrix issues
-		if (mClipPlanesDirty)
-		{
-			setClipPlanesImpl(mClipPlanes);
-			mClipPlanesDirty = false;
-		}
-    -}
-        -- TODO
-    let vertexData      = roVertexData ro
-        multitexturing  = True -- 1 < (rscNumTextureUnits rcap)
-        --Use adjacency if there is a geometry program and it requested adjacency info
-        -- TODO
-        --bool useAdjacency = (mGeometryProgramBound && mCurrentGeometryProgram->isAdjacencyInfoRequired());
-        primType        = case roOperationType ro of -- Find the correct type to render
-            { OT_POINT_LIST     -> GL.Points
-            ; OT_LINE_LIST      -> GL.Lines
-            ; OT_LINE_STRIP     -> GL.LineStrip
-            ; OT_TRIANGLE_LIST  -> GL.Triangles
-            ; OT_TRIANGLE_STRIP -> GL.TriangleStrip
-            ; OT_TRIANGLE_FAN   -> GL.TriangleFan
-            }
-        {-
-		GLint primType;
-		switch (op.operationType)
-		{
-		case RenderOperation::OT_POINT_LIST:
-			primType = GL_POINTS;
-			break;
-		case RenderOperation::OT_LINE_LIST:
-			primType = useAdjacency ? GL_LINES_ADJACENCY_EXT : GL_LINES;
-			break;
-		case RenderOperation::OT_LINE_STRIP:
-			primType = useAdjacency ? GL_LINE_STRIP_ADJACENCY_EXT : GL_LINE_STRIP;
-			break;
-		default:
-		case RenderOperation::OT_TRIANGLE_LIST:
-			primType = useAdjacency ? GL_TRIANGLES_ADJACENCY_EXT : GL_TRIANGLES;
-			break;
-		case RenderOperation::OT_TRIANGLE_STRIP:
-			primType = useAdjacency ? GL_TRIANGLE_STRIP_ADJACENCY_EXT : GL_TRIANGLE_STRIP;
-			break;
-		case RenderOperation::OT_TRIANGLE_FAN:
-			primType = GL_TRIANGLE_FAN;
-			break;
-		}
-        -}
-    
-    --  bind index data and call draw operation
-    case roIndexData ro of 
-    { Just indexData  -> do
-        let indexBuffer = idIndexBuffer indexData
-            dp          = if isJust $ glibBufferObject indexBuffer then nullPtr else fromMaybe (error "fromJust 7") $ glibShadowBuffer indexBuffer
-            pBufferData = plusPtr dp $ idIndexStart indexData * getIndexSize indexBuffer
-            indexType   = if getIndexType indexBuffer == IT_16BIT then GL.UnsignedShort else GL.UnsignedInt
-        GL.drawElements primType (fromIntegral (idIndexCount indexData)) indexType pBufferData
-    ; Nothing -> do
-        GL.drawArrays primType 0 (fromIntegral (vdVertexCount vertexData))
-    }
-    
---    GL.color $ GL.Color4 1 1 1 (1 :: GL.GLfloat)
---    GL.secondaryColor $ GL.Color3 0 0 (0 :: GL.GLfloat)
-    return ()
-{-
-    bool RenderSystem::updatePassIterationRenderState(void)
-    {
-        if (mCurrentPassIterationCount <= 1)
-            return false;
-
-        --mCurrentPassIterationCount;
-		++mCurrentPassIterationNum;
-        if (!mActiveVertexGpuProgramParameters.isNull())
-        {
-            mActiveVertexGpuProgramParameters->incPassIterationNumber();
-            bindGpuProgramPassIterationParameters(GPT_VERTEX_PROGRAM);
-        }
-        if (!mActiveGeometryGpuProgramParameters.isNull())
-        {
-            mActiveGeometryGpuProgramParameters->incPassIterationNumber();
-            bindGpuProgramPassIterationParameters(GPT_GEOMETRY_PROGRAM);
-        }
-        if (!mActiveFragmentGpuProgramParameters.isNull())
-        {
-            mActiveFragmentGpuProgramParameters->incPassIterationNumber();
-            bindGpuProgramPassIterationParameters(GPT_FRAGMENT_PROGRAM);
-        }
-        return true;
-    }
-
--}
-
-bindElement rop tl elem = do
-    let vertexData      = roVertexData $ rop
-
-    case vdVertexBufferBinding vertexData of
-        VertexBufferBinding bm -> let vertexBuffer = bm ! (veSource elem) in do
-            dp <- case glvbBufferObject vertexBuffer of
-                { Just b    -> do
-                    GL.bindBuffer GL.ArrayBuffer $= Just b
-                    return nullPtr  
-                ; Nothing   -> return $ fromMaybe (error "fromJust 8") $ glvbShadowBuffer vertexBuffer
-                }
-            let pBufferData     = plusPtr dp $ vdVertexStart vertexData * getVertexSize vertexBuffer + veOffset elem
-                sem             = veSemantic elem
-                isCustomAttrib  = False
-                bindArray t     = do
-                    GL.arrayPointer t $= GL.VertexArrayDescriptor (fromIntegral . getTypeCount . veType $ elem) (getGLType . veType $ elem) (fromIntegral . getVertexSize $ vertexBuffer) pBufferData
-                    GL.clientState  t $= GL.Enabled
-                {-
-                		if (mCurrentVertexProgram)
-                			isCustomAttrib = mCurrentVertexProgram->isAttributeValid(sem, elem->getIndex());
-                -}
-            --bind vertexBuffer
-            case isCustomAttrib of
-                { True  -> do
-                            -- Custom attribute support
-                            -- tangents, binormals, blendweights etc always via this route
-                            -- builtins may be done this way too
-                            let attrib = GL.AttribLocation . fromIntegral . getFixedAttributeIndex sem $ veIndex elem
-                            GL.vertexAttribPointer attrib $= (GL.KeepIntegral,GL.VertexArrayDescriptor (fromIntegral . getTypeCount . veType $ elem) (getGLType . veType $ elem) (fromIntegral . getVertexSize $ vertexBuffer) pBufferData)
-                            GL.vertexAttribArray attrib $= GL.Enabled
-                            --attribsBound.push_back(attrib);
-                ; False -> case sem of -- fixed-function & builtin attribute support
-                            { VES_POSITION              -> bindArray GL.VertexArray
-                            ; VES_NORMAL                -> bindArray GL.NormalArray
-                            ; VES_DIFFUSE               -> bindArray GL.ColorArray
-                            ; VES_SPECULAR              -> bindArray GL.SecondaryColorArray
-                            ; VES_TEXTURE_COORDINATES   -> do
-                            -- TODO
-                                let idx = veIndex elem
-                                    tus = map fst $ filter (\(_,a)-> idx==a) $ zip [0..] $ map tusTextureCoordSetIndex tl
-                                    f :: Int -> GL.GLuint
-                                    f = fromIntegral
-                                forM_ tus $ \tidx -> do
-                                    --print $ "bind stage="++show tidx ++ " texcoord="++show idx
-                                    GL.clientActiveTexture $= (GL.TextureUnit $ f tidx)
-                                    bindArray GL.TextureCoordArray
-                            -- TEMP CODE
-{-          
-                				if (mCurrentVertexProgram)
-                				{
-                					-- Programmable pipeline - direct UV assignment
-                					glClientActiveTextureARB(GL_TEXTURE0 + elem->getIndex());
-                					glTexCoordPointer(
-                						VertexElement::getTypeCount(elem->getType()), 
-                						GLBufferManager::getGLType(elem->getType()),
-                						static_cast<GLsizei>(vertexBuffer->getVertexSize()), 
-                						pBufferData);
-                					glEnableClientState( GL_TEXTURE_COORD_ARRAY );
-                				}
-                				else
-                				{
-                					-- fixed function matching to units based on tex_coord_set
-                					for (i = 0; i < mDisabledTexUnitsFrom; i++)
-                					{
-                						-- Only set this texture unit's texcoord pointer if it
-                						-- is supposed to be using this element's index
-                						if (mTextureCoordIndex[i] == elem->getIndex() && i < mFixedFunctionTextureUnits)
-                						{
-                							if (multitexturing)
-                							glClientActiveTextureARB(GL_TEXTURE0 + i);
-                							glTexCoordPointer(
-                								VertexElement::getTypeCount(elem->getType()), 
-                								GLBufferManager::getGLType(elem->getType()),
-                								static_cast<GLsizei>(vertexBuffer->getVertexSize()), 
-                								pBufferData);
-                							glEnableClientState( GL_TEXTURE_COORD_ARRAY );
-                						}
-                					}
-                				}
--}            
-                            }
-                }
-
-
-glSetShadingType so = case so of
-    { SO_FLAT   -> GL.shadeModel $= GL.Flat
-    ; _         -> GL.shadeModel $= GL.Smooth
-    }
-
-glSetAlphaRejectSettings rsc func value alphaToCoverage = do
-    let caps    = rscCapabilities rsc
-        f       :: Int -> GL.GLclampf
-        f       = fromIntegral
-    case func == CMPF_ALWAYS_PASS of
-        { True  -> do
-            GL.alphaFunc $= Nothing
-            GL.sampleAlphaToCoverage $= GL.Disabled
-        ; False -> do
-            GL.alphaFunc $= Just (convertCompareFunction func, f value / 255)
-            let f x = case x of
-                    { True  -> GL.Enabled
-                    ; False -> GL.Disabled
-                    } 
-            when (Set.member RSC_ALPHA_TO_COVERAGE caps) $ 
-                GL.sampleAlphaToCoverage $= f alphaToCoverage
-        }
-
-glSetDepthBufferWriteEnabled enabled = case enabled of
-    { True  -> GL.depthMask $= GL.Enabled
-    ; False -> GL.depthMask $= GL.Disabled
-    }
-
-glSetDepthBufferFunction enabled func = do
-    GL.depthFunc $= if enabled then Just $ convertCompareFunction func else Nothing
---FIXME: gl haskell binding has unified api for depthFunc 
---glSetDepthBufferCheckEnabled enabled = case enabled of 
-
-glSetPointSpritesEnabled rsc enabled = do
-    case enabled of
-        { True  -> GL.pointSprite $= GL.Enabled
-        ; False -> GL.pointSprite $= GL.Disabled
-        }
-    --FIXME: Haskell GL bininding does not support these
-    {-
-    let maxTex    = rscNumTextureUnits rsc
-    a <- GL.get GL.activeTexture
-    -- Set sprite texture coord generation
-    -- Don't offer this as an option since D3D links it to sprite enabled
-    for (ushort i = 0; i < mFixedFunctionTextureUnits; ++i)
-    {
-        activateGLTextureUnit(i);
-        glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, 
-            enabled ? GL_TRUE : GL_FALSE);
-    }
-    GL.activeTexture $= a
-    -}
-
-glSetSceneBlending sourceFactor destFactor op = do
-    case sourceFactor == SBF_ONE && destFactor == SBF_ZERO of
-        { True  -> GL.blend $= GL.Disabled
-        ; False -> do
-            GL.blend $= GL.Enabled
-            GL.blendFunc $= (getBlendMode sourceFactor, getBlendMode destFactor)
-        }
-    GL.blendEquation $= getBlendEquation op
-    -- FIXME
-    {-
-		if(GLEW_VERSION_1_4 || GLEW_ARB_imaging)
-        {
-			glBlendEquation(func);
-		}
-		else if(GLEW_EXT_blend_minmax && (func == GL_MIN || func == GL_MAX))
-        {
-			glBlendEquationEXT(func);
-		}
-    -}
-
-glSetSurfaceParams ambient diffuse specular emissive shininess (TrackVertexColourType a d s e) = do
-    -- Track vertex colour
-    -- There are actually 15 different combinations for tracking, of which
-    -- GL only supports the most used 5. This means that we have to do some
-    -- magic to find the best match. NOTE: 
-    --  GL_AMBIENT_AND_DIFFUSE != GL_AMBIENT | GL__DIFFUSE
-    case (a,d,s,e) of
-        { (False,False,False,False) -> GL.colorMaterial $= Nothing
-        ; (True,True,_,_)           -> GL.colorMaterial $= Just (GL.FrontAndBack,GL.AmbientAndDiffuse)
-        ; (True,False,_,_)          -> GL.colorMaterial $= Just (GL.FrontAndBack,GL.Ambient)
-        ; (_,True,_,_)              -> GL.colorMaterial $= Just (GL.FrontAndBack,GL.Diffuse)
-        ; (_,_,True,_)              -> GL.colorMaterial $= Just (GL.FrontAndBack,GL.Specular)
-        ; (_,_,_,True)              -> GL.colorMaterial $= Just (GL.FrontAndBack,GL.Emission)
-        }        
-    let f           = realToFrac
-        c (r,g,b,a) = GL.Color4 (f r) (f g) (f b) (f a)
-    GL.materialDiffuse   GL.FrontAndBack $= c diffuse
-    GL.materialAmbient   GL.FrontAndBack $= c ambient
-    GL.materialSpecular  GL.FrontAndBack $= c specular
-    GL.materialEmission  GL.FrontAndBack $= c emissive
-    GL.materialShininess GL.FrontAndBack $= f shininess
-
-glSetLightingEnabled enabled = case enabled of
-    { True  -> GL.lighting $= GL.Enabled
-    ; False -> GL.lighting $= GL.Disabled
-    }
-
-glSetFog mode colour density start end = do
-    let c (r,g,b,a) = GL.Color4 (realToFrac r) (realToFrac g) (realToFrac b) (realToFrac a)
-    case mode of
-        { FOG_NONE  -> do
-            GL.fog      $= GL.Disabled
-        ; FOG_EXP   -> do
-            GL.fog      $= GL.Enabled
-            GL.fogMode  $= (GL.Exp $ realToFrac density)
-            GL.fogColor $= c colour
-        ; FOG_EXP2  -> do
-            GL.fog      $= GL.Enabled
-            GL.fogMode  $= (GL.Exp2 $ realToFrac density)
-            GL.fogColor $= c colour
-        ; FOG_LINEAR-> do
-            GL.fog      $= GL.Enabled
-            GL.fogMode  $= (GL.Linear (realToFrac start) (realToFrac end))
-            GL.fogColor $= c colour
-        }
-
-glSetSeparateSceneBlending sourceFactor destFactor sourceFactorAlpha destFactorAlpha op alphaOp = do
-    case sourceFactor == SBF_ONE && destFactor == SBF_ZERO && 
-            sourceFactorAlpha == SBF_ONE && destFactorAlpha == SBF_ZERO of
-        { True  -> GL.blend $= GL.Disabled
-        ; False -> do
-            let f = getBlendMode
-            GL.blend $= GL.Enabled
-            GL.blendFuncSeparate $= ((f sourceFactor, f sourceFactorAlpha), (f destFactor, f destFactorAlpha))
-        }
-    GL.blendEquationSeparate $= (getBlendEquation op, getBlendEquation alphaOp)
---FIXME: gl binding does not access these
-{-
-		if(GLEW_VERSION_2_0) {
-			glBlendEquationSeparate(func, alphaFunc);
-		}
-		else if(GLEW_EXT_blend_equation_separate) {
-			glBlendEquationSeparateEXT(func, alphaFunc);
-		}
--}
-
-glSetPointParameters rs size attenuationEnabled constant linear quadratic minSize maxSize = do
-    let rsc     = getCapabilities rs
-        caps    = rscCapabilities rsc
-    (size',minSize',maxSize',constant',linear',quadratic') <- case attenuationEnabled of
-        { True  -> do
-            -- Point size is still calculated in pixels even when attenuation is
-            -- enabled, which is pretty awkward, since you typically want a viewport
-            -- independent size if you're looking for attenuation.
-            -- So, scale the point size up by viewport size (this is equivalent to
-            -- what D3D does as standard)
-
-            -- TODO
-        {-
-			size = size * mActiveViewport->getActualHeight();
-			minSize = minSize * mActiveViewport->getActualHeight();
-			if (maxSize == 0.0f)
-				maxSize = mCurrentCapabilities->getMaxPointSize(); // pixels
-			else
-				maxSize = maxSize * mActiveViewport->getActualHeight();
-        -}
-            when (Set.member RSC_VERTEX_PROGRAM caps) $ GL.vertexProgramPointSize $= GL.Enabled
-            -- XXX: why do I need this for results to be consistent with D3D?
-            -- Equations are supposedly the same once you factor in vp height
-            let correction = 0.005
-            return (size,minSize,if maxSize == 0 then rscMaxPointSize rsc else maxSize,constant,linear * correction,quadratic * correction)
-        ; False -> do
-            when (Set.member RSC_VERTEX_PROGRAM caps) $ GL.vertexProgramPointSize $= GL.Disabled
-            return (size,minSize,if maxSize == 0 then rscMaxPointSize rsc else maxSize,constant,linear,quadratic)
-        }
-    --no scaling required
-    -- GL has no disabled flag for this so just set to constant
-    let f = realToFrac
-    GL.pointSize $= f size'
-    GL.pointDistanceAttenuation $= (f constant',f linear',f quadratic')
-    GL.pointSizeRange $= (f minSize',f maxSize')
-    -- FIXME: gl binding handles this
-    {-
-		if (mCurrentCapabilities->hasCapability(RSC_POINT_EXTENDED_PARAMETERS))
-		{
-			glPointParameterfv(GL_POINT_DISTANCE_ATTENUATION, val);
-			glPointParameterf(GL_POINT_SIZE_MIN, minSize);
-			glPointParameterf(GL_POINT_SIZE_MAX, maxSize);
-		} 
-		else if (mCurrentCapabilities->hasCapability(RSC_POINT_EXTENDED_PARAMETERS_ARB))
-		{
-			glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION, val);
-			glPointParameterfARB(GL_POINT_SIZE_MIN, minSize);
-			glPointParameterfARB(GL_POINT_SIZE_MAX, maxSize);
-		} 
-		else if (mCurrentCapabilities->hasCapability(RSC_POINT_EXTENDED_PARAMETERS_EXT))
-		{
-			glPointParameterfvEXT(GL_POINT_DISTANCE_ATTENUATION, val);
-			glPointParameterfEXT(GL_POINT_SIZE_MIN, minSize);
-			glPointParameterfEXT(GL_POINT_SIZE_MAX, maxSize);
-		}
-    -}
-    return ()
-
-glSetActiveTextureUnit stage = do
-    let f :: Int -> GL.GLuint
-        f = fromIntegral
-    GL.activeTexture $= GL.TextureUnit (f stage)
-{-
-			if (GLEW_VERSION_1_2 && unit < getCapabilities()->getNumTextureUnits())
-			{
-				glActiveTextureARB(GL_TEXTURE0 + unit);
-				mActiveTextureUnit = unit;
-				return true;
-			}
-			else if (!unit)
-			{
-				// always ok to use the first unit
-				return true;
-			}
-			else
-			{
-				return false;
-			}
--}    
-
-glSetTexture tex = case tex of
-    { Just t    -> do
-        --TEMP CODE
-        GL.texture GL.Texture1D $= GL.Disabled
-        GL.textureBinding GL.Texture1D $= Nothing
-
-        GL.texture GL.Texture2D $= GL.Disabled
-        GL.textureBinding GL.Texture2D $= Nothing
-
-        GL.texture GL.Texture3D $= GL.Disabled
-        GL.textureBinding GL.Texture3D $= Nothing
-
-        GL.texture GL.TextureCubeMap $= GL.Disabled
-        GL.textureBinding GL.TextureCubeMap $= Nothing
-
-        let target = getGLTextureTarget $ txTextureType t
-        GL.texture target $= GL.Enabled
-        GL.textureBinding target $= (Just $ gltxTextureObject t)
-    ; Nothing   -> do
-        --TODO
-        GL.texture GL.Texture1D $= GL.Disabled
-        GL.textureBinding GL.Texture1D $= Nothing
-
-        GL.texture GL.Texture2D $= GL.Disabled
-        GL.textureBinding GL.Texture2D $= Nothing
-
-        GL.texture GL.Texture3D $= GL.Disabled
-        GL.textureBinding GL.Texture3D $= Nothing
-
-        GL.texture GL.TextureCubeMap $= GL.Disabled
-        GL.textureBinding GL.TextureCubeMap $= Nothing
-    }
-        
-{-
-	void GLRenderSystem::_setTexture(size_t stage, bool enabled, const TexturePtr &texPtr)
-	{
-		GLTexturePtr tex = texPtr;
-
-		GLenum lastTextureType = mTextureTypes[stage];
-
-		if (!activateGLTextureUnit(stage))
-			return;
-
-		if (enabled)
-		{
-			if (!tex.isNull())
-			{
-				// note used
-				tex->touch();
-				mTextureTypes[stage] = tex->getGLTextureTarget();
-			}
-			else
-				// assume 2D
-				mTextureTypes[stage] = GL_TEXTURE_2D;
-
-			if(lastTextureType != mTextureTypes[stage] && lastTextureType != 0)
-			{
-				if (stage < mFixedFunctionTextureUnits)
-				{
-					glDisable( lastTextureType );
-				}
-			}
-
-			if (stage < mFixedFunctionTextureUnits)
-			{
-				glEnable( mTextureTypes[stage] );
-			}
-
-			if(!tex.isNull())
-				glBindTexture( mTextureTypes[stage], tex->getGLID() );
-			else
-				glBindTexture( mTextureTypes[stage], static_cast<GLTextureManager*>(mTextureManager)->getWarningTextureID() );
-		}
-		else
-		{
-			if (stage < mFixedFunctionTextureUnits)
-			{
-				if (lastTextureType != 0)
-				{
-					glDisable( mTextureTypes[stage] );
-				}
-				glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-			}
-			// bind zero texture
-			glBindTexture(GL_TEXTURE_2D, 0); 
-		}
-
-		activateGLTextureUnit(0);
-	}
-
-	void GLRenderSystem::_setTextureCoordSet(size_t stage, size_t index)
-	{
-		mTextureCoordIndex[stage] = index;
-	}
--}
-{-
-	void GLRenderSystem::_useLights(const LightList& lights, unsigned short limit)
-	{
-		// Save previous modelview
-		glMatrixMode(GL_MODELVIEW);
-		glPushMatrix();
-		// just load view matrix (identity world)
-		GLfloat mat[16];
-		makeGLMatrix(mat, mViewMatrix);
-		glLoadMatrixf(mat);
-
-		LightList::const_iterator i, iend;
-		iend = lights.end();
-		unsigned short num = 0;
-		for (i = lights.begin(); i != iend && num < limit; ++i, ++num)
-		{
-			setGLLight(num, *i);
-			mLights[num] = *i;
-		}
-		// Disable extra lights
-		for (; num < mCurrentLights; ++num)
-		{
-			setGLLight(num, NULL);
-			mLights[num] = NULL;
-		}
-		mCurrentLights = std::min(limit, static_cast<unsigned short>(lights.size()));
-
-		setLights();
-
-		// restore previous
-		glPopMatrix();
-
-	}
-
-	void GLRenderSystem::setGLLight(size_t index, Light* lt)
-	{
-		GLenum gl_index = GL_LIGHT0 + index;
-
-		if (!lt)
-		{
-			// Disable in the scene
-			glDisable(gl_index);
-		}
-		else
-		{
-			switch (lt->getType())
-			{
-			case Light::LT_SPOTLIGHT:
-				glLightf( gl_index, GL_SPOT_CUTOFF, 0.5f * lt->getSpotlightOuterAngle().valueDegrees() );
-				glLightf(gl_index, GL_SPOT_EXPONENT, lt->getSpotlightFalloff());
-				break;
-			default:
-				glLightf( gl_index, GL_SPOT_CUTOFF, 180.0 );
-				break;
-			}
-
-			// Color
-			ColourValue col;
-			col = lt->getDiffuseColour();
-
-
-			GLfloat f4vals[4] = {col.r, col.g, col.b, col.a};
-			glLightfv(gl_index, GL_DIFFUSE, f4vals);
-
-			col = lt->getSpecularColour();
-			f4vals[0] = col.r;
-			f4vals[1] = col.g;
-			f4vals[2] = col.b;
-			f4vals[3] = col.a;
-			glLightfv(gl_index, GL_SPECULAR, f4vals);
-
-
-			// Disable ambient light for movables;
-			f4vals[0] = 0;
-			f4vals[1] = 0;
-			f4vals[2] = 0;
-			f4vals[3] = 1;
-			glLightfv(gl_index, GL_AMBIENT, f4vals);
-
-			setGLLightPositionDirection(lt, gl_index);
-
-
-			// Attenuation
-			glLightf(gl_index, GL_CONSTANT_ATTENUATION, lt->getAttenuationConstant());
-			glLightf(gl_index, GL_LINEAR_ATTENUATION, lt->getAttenuationLinear());
-			glLightf(gl_index, GL_QUADRATIC_ATTENUATION, lt->getAttenuationQuadric());
-			// Enable in the scene
-			glEnable(gl_index);
-
-		}
-
-	}
-
-	void GLRenderSystem::setLights()
-	{
-		for (size_t i = 0; i < MAX_LIGHTS; ++i)
-		{
-			if (mLights[i] != NULL)
-			{
-				Light* lt = mLights[i];
-				setGLLightPositionDirection(lt, GL_LIGHT0 + i);
-			}
-		}
-	}
-
-	void GLRenderSystem::setGLLightPositionDirection(Light* lt, GLenum lightindex)
-	{
-		// Set position / direction
-		Vector4 vec;
-		// Use general 4D vector which is the same as GL's approach
-		vec = lt->getAs4DVector(true);
-
-#if OGRE_DOUBLE_PRECISION
-		// Must convert to float*
-		float tmp[4] = {vec.x, vec.y, vec.z, vec.w};
-		glLightfv(lightindex, GL_POSITION, tmp);
-#else
-		glLightfv(lightindex, GL_POSITION, vec.ptr());
-#endif
-		// Set spotlight direction
-		if (lt->getType() == Light::LT_SPOTLIGHT)
-		{
-			vec = lt->getDerivedDirection();
-			vec.w = 0.0; 
-#if OGRE_DOUBLE_PRECISION
-			// Must convert to float*
-			float tmp2[4] = {vec.x, vec.y, vec.z, vec.w};
-			glLightfv(lightindex, GL_SPOT_DIRECTION, tmp2);
-#else
-			glLightfv(lightindex, GL_SPOT_DIRECTION, vec.ptr());
-#endif
-		}
-	}
--}
-
-glSetTextureAddressingMode texTarget (UVWAddressingMode u v w) = do
-    let target = getGLTextureTarget texTarget
-    GL.textureWrapMode target GL.S $= getTextureAddressingMode u
-    GL.textureWrapMode target GL.T $= getTextureAddressingMode v
-    GL.textureWrapMode target GL.R $= getTextureAddressingMode w
-
-glSetTextureBorderColour texTarget (r,g,b,a) = do
-    let target = getGLTextureTarget texTarget
-        f = realToFrac
-    GL.textureBorderColor target $= GL.Color4 (f r) (f g) (f b) (f a)
-
-glSetTextureUnitFiltering texTarget minFilter magFilter mipFilter = do
-    let target  = getGLTextureTarget texTarget
-        mag     = case magFilter of
-            { FO_ANISOTROPIC    -> GL.Linear'
-            ; FO_LINEAR         -> GL.Linear'
-            ; FO_POINT          -> GL.Nearest
-            ; FO_NONE           -> GL.Nearest
-            }
-        min     = case minFilter of
-            { FO_ANISOTROPIC    -> GL.Linear'
-            ; FO_LINEAR         -> GL.Linear'
-            ; FO_POINT          -> GL.Nearest
-            ; FO_NONE           -> GL.Nearest
-            }
-        mip     = case mipFilter of
-            { FO_ANISOTROPIC    -> Just GL.Linear'
-            ; FO_LINEAR         -> Just GL.Linear'
-            ; FO_POINT          -> Just GL.Nearest
-            ; FO_NONE           -> Nothing
-            }
-    GL.textureFilter target $= ((min,mip),mag)
-
-glSetTextureLayerAnisotropy texTarget maxAnisotropy = do
-    let target = getGLTextureTarget texTarget
-    maxSupportedAnisotropy <- GL.get GL.maxTextureMaxAnisotropy
-    GL.textureMaxAnisotropy target $= (min (realToFrac maxAnisotropy) (realToFrac maxSupportedAnisotropy))
-
-glSetTextureMipmapBias bias = do
-    GL.textureUnitLODBias $= realToFrac bias
-
-{-
-    = LayerBlendModeEx
-    { lbBlendType  :: LayerBlendType        -- ^ The type of blending (colour or alpha)
-    , lbOperation  :: LayerBlendOperationEx -- ^ The operation to be applied
-    , lbSource1    :: LayerBlendSource      -- ^ The first source of colour/alpha
-    , lbSource2    :: LayerBlendSource      -- ^ The second source of colour/alpha
-    , lbColourArg1 :: ColourValue           -- ^ Manual colour value for manual source1
-    , lbColourArg2 :: ColourValue           -- ^ Manual colour value for manual source2
-    , lbAlphaArg1  :: FloatType             -- ^ Manual alpha value for manual source1
-    , lbAlphaArg2  :: FloatType             -- ^ Manual alpha value for manual source2
-    , lbFactor     :: FloatType             -- ^ Manual blending factor
-    }
-
-doc: http://www.informit.com/articles/article.aspx?p=770639&seqNum=6
-FIXME: Test this code
--}
-glSetTextureBlendMode rsc colorbm alphabm = do
-    let caps    = rscCapabilities rsc
-        hasDot3 = Set.member RSC_DOT3 caps
-        csrc1op = getLayerBlendSource $ lbSource1 colorbm
-        csrc2op = getLayerBlendSource $ lbSource2 colorbm
-        ccmd    = getTextureCombineFunction hasDot3 $ lbOperation colorbm
-        asrc1op = getLayerBlendSource $ lbSource1 alphabm
-        asrc2op = getLayerBlendSource $ lbSource2 alphabm
-        acmd    = getTextureCombineFunction hasDot3 $ lbOperation alphabm
-        f       = realToFrac
-
-    GL.textureFunction $= GL.Combine
-    GL.combineRGB $= ccmd
-    GL.argRGB GL.Arg0 $= GL.Arg GL.SrcColor csrc1op
-    GL.argRGB GL.Arg1 $= GL.Arg GL.SrcColor csrc2op
-    GL.argRGB GL.Arg2 $= GL.Arg GL.SrcColor GL.Constant
-    GL.combineAlpha $= acmd
-    GL.argAlpha GL.Arg0 $= GL.Arg GL.SrcAlpha asrc1op
-    GL.argAlpha GL.Arg1 $= GL.Arg GL.SrcAlpha asrc2op
-    GL.argAlpha GL.Arg2 $= GL.Arg GL.SrcAlpha GL.Constant
-
-    let argf bm cv1 cv2 = do
-            case lbOperation bm of
-                { LBX_BLEND_DIFFUSE_COLOUR  -> do
-                    GL.argRGB   GL.Arg2 $= GL.Arg GL.SrcColor GL.PrimaryColor
-                    GL.argAlpha GL.Arg2 $= GL.Arg GL.SrcAlpha GL.PrimaryColor
-                ; LBX_BLEND_DIFFUSE_ALPHA   -> do
-                    GL.argRGB   GL.Arg2 $= GL.Arg GL.SrcAlpha GL.PrimaryColor
-                    GL.argAlpha GL.Arg2 $= GL.Arg GL.SrcAlpha GL.PrimaryColor
-                ; LBX_BLEND_TEXTURE_ALPHA   -> do
-                    GL.argRGB   GL.Arg2 $= GL.Arg GL.SrcAlpha GL.CurrentUnit
-                    GL.argAlpha GL.Arg2 $= GL.Arg GL.SrcAlpha GL.CurrentUnit
-                ; LBX_BLEND_CURRENT_ALPHA   -> do
-                    GL.argRGB   GL.Arg2 $= GL.Arg GL.SrcAlpha GL.Previous
-                    GL.argAlpha GL.Arg2 $= GL.Arg GL.SrcAlpha GL.Previous
-                ; LBX_BLEND_MANUAL          -> do
-                    GL.constantColor    $= GL.Color4 0 0 0 (f $ lbFactor bm)
-                ; _                         -> return ()
-                }
-
-            when (LBS_MANUAL == lbSource1 bm) $ 
-                GL.constantColor    $= cv1
-                
-            when (LBS_MANUAL == lbSource2 bm) $
-                GL.constantColor    $= cv2
-
-        (cr1,cg1,cb1,ca1)   = lbColourArg1 colorbm
-        (cr2,cg2,cb2,ca2)   = lbColourArg2 colorbm
-        cf r g b a          = GL.Color4 (f r) (f g) (f b) (f a)
-        aa1                 = lbAlphaArg1 alphabm
-        aa2                 = lbAlphaArg2 alphabm
-    argf colorbm (cf cr1 cg1 cb1 ca1) (cf cr2 cg2 cb2 ca2)
-    argf alphabm (cf cr1 cg1 cb1 aa1) (cf cr2 cg2 cb2 aa2)
-
-    case lbOperation colorbm of
-        { LBX_MODULATE_X2   ->  GL.rgbScale $= 2
-        ; LBX_MODULATE_X4   ->  GL.rgbScale $= 4
-        ; _                 ->  GL.rgbScale $= 1
-        }
-
-    case lbOperation alphabm of
-        { LBX_MODULATE_X2   ->  GL.alphaScale $= 2
-        ; LBX_MODULATE_X4   ->  GL.alphaScale $= 4
-        ; _                 ->  GL.alphaScale $= 1
-        }
-
-glSetCullingMode mode = case mode of
-    { CULL_NONE             -> GL.cullFace $= Nothing
-    ; CULL_CLOCKWISE        -> GL.cullFace $= (Just GL.Back)
-    ; CULL_ANTICLOCKWISE    -> GL.cullFace $= (Just GL.Front)
-    }
-
-glSetColourBufferWriteEnabled r g b a = do
-    let f x = case x of
-            { True  -> GL.Enabled
-            ; False -> GL.Disabled
-            } 
-    GL.colorMask $= GL.Color4 (f r) (f g) (f b) (f a)
-
-glBindLinkedGpuProgram lp = do
-    GL.currentProgram $= Just (gllgpProgramObject lp)
-    --TEMP CODE
-    let p = gllgpProgramObject lp
-    loc_tex0 <- GL.get (GL.uniformLocation p "tex0") 
-    loc_tex1 <- GL.get (GL.uniformLocation p "tex1")
-    (GL.uniform loc_tex0) GL.$=! (GL.Index1 (0::GL.GLint))
-    (GL.uniform loc_tex1) GL.$=! (GL.Index1 (1::GL.GLint))
-
-glUnBindLinkedGpuProgram = do
-    GL.currentProgram $= Nothing
-
-{-
-	void GLRenderSystem::unbindGpuProgram(GpuProgramType gptype)
-	{
-
-		if (gptype == GPT_VERTEX_PROGRAM && mCurrentVertexProgram)
-		{
-			mActiveVertexGpuProgramParameters.setNull();
-			mCurrentVertexProgram->unbindProgram();
-			mCurrentVertexProgram = 0;
-		}
-		else if (gptype == GPT_GEOMETRY_PROGRAM && mCurrentGeometryProgram)
-		{
-			mActiveGeometryGpuProgramParameters.setNull();
-			mCurrentGeometryProgram->unbindProgram();
-			mCurrentGeometryProgram = 0;
-		}
-		else if (gptype == GPT_FRAGMENT_PROGRAM && mCurrentFragmentProgram)
-		{
-			mActiveFragmentGpuProgramParameters.setNull();
-			mCurrentFragmentProgram->unbindProgram();
-			mCurrentFragmentProgram = 0;
-		}
-		RenderSystem::unbindGpuProgram(gptype);
-
-	}
-
-	void RenderSystem::unbindGpuProgram(GpuProgramType gptype)
-	{
-	    switch(gptype)
-	    {
-        case GPT_VERTEX_PROGRAM:
-			// mark clip planes dirty if changed (programmable can change space)
-			if (mVertexProgramBound && !mClipPlanes.empty())
-				mClipPlanesDirty = true;
-            mVertexProgramBound = false;
-	        break;
-        case GPT_GEOMETRY_PROGRAM:
-			mGeometryProgramBound = false;
-			break;
-        case GPT_FRAGMENT_PROGRAM:
-            mFragmentProgramBound = false;
-	        break;
-	    }
-	}
--}
-
---glSetTextureMatrix :: Matrix4 -> IO ()
-glSetTextureMatrix xform = do
-    mat <- toGLMatrix xform
-    GL.matrix (Just GL.Texture) $= mat
-    
-{-
-	void GLRenderSystem::_setTextureMatrix(size_t stage, const Matrix4& xform)
-	{
-		if (stage >= mFixedFunctionTextureUnits)
-		{
-			// Can't do this
-			return;
-		}
-
-		GLfloat mat[16];
-		makeGLMatrix(mat, xform);
-
-		if (!activateGLTextureUnit(stage))
-			return;
-		glMatrixMode(GL_TEXTURE);
-
-		// Load this matrix in
-		glLoadMatrixf(mat);
-
-		if (mUseAutoTextureMatrix)
-		{
-			// Concat auto matrix
-			glMultMatrixf(mAutoTextureMatrix);
-		}
-
-		glMatrixMode(GL_MODELVIEW);
-		activateGLTextureUnit(0);
-	}
--}
-
--- glSetTextureCoordCalculation :: TexCoordCalcMethod -> IO ()
-glSetTextureCoordCalculation m = case m of
-    { TEXCALC_NONE -> do
-        GL.textureGenMode GL.S $= Nothing
-        GL.textureGenMode GL.T $= Nothing
-        GL.textureGenMode GL.R $= Nothing
-        GL.textureGenMode GL.Q $= Nothing
-        
-    ; TEXCALC_ENVIRONMENT_MAP   -> do
-        GL.textureGenMode GL.S $= Just GL.SphereMap
-        GL.textureGenMode GL.T $= Just GL.SphereMap
-        GL.textureGenMode GL.R $= Nothing
-        GL.textureGenMode GL.Q $= Nothing
-        -- TODO
-        {-
-		// Need to use a texture matrix to flip the spheremap
-		mUseAutoTextureMatrix = true;
-		memset(mAutoTextureMatrix, 0, sizeof(GLfloat)*16);
-		mAutoTextureMatrix[0] = mAutoTextureMatrix[10] = mAutoTextureMatrix[15] = 1.0f;
-		mAutoTextureMatrix[5] = -1.0f;
-        -}
-        
-    ; TEXCALC_ENVIRONMENT_MAP_PLANAR -> do
-        GL.textureGenMode GL.S $= Just GL.SphereMap
-        GL.textureGenMode GL.T $= Just GL.SphereMap
-        GL.textureGenMode GL.R $= Nothing
-        GL.textureGenMode GL.Q $= Nothing
-        
-    ; TEXCALC_ENVIRONMENT_MAP_REFLECTION -> do
-        GL.textureGenMode GL.S $= Just GL.ReflectionMap
-        GL.textureGenMode GL.T $= Just GL.ReflectionMap
-        GL.textureGenMode GL.R $= Just GL.ReflectionMap
-        GL.textureGenMode GL.Q $= Nothing
-        {-
-		// We need an extra texture matrix here
-		// This sets the texture matrix to be the inverse of the view matrix
-		mUseAutoTextureMatrix = true;
-		makeGLMatrix( M, mViewMatrix);
-
-		// Transpose 3x3 in order to invert matrix (rotation)
-		// Note that we need to invert the Z _before_ the rotation
-		// No idea why we have to invert the Z at all, but reflection is wrong without it
-		mAutoTextureMatrix[0] = M[0]; mAutoTextureMatrix[1] = M[4]; mAutoTextureMatrix[2] = -M[8];
-		mAutoTextureMatrix[4] = M[1]; mAutoTextureMatrix[5] = M[5]; mAutoTextureMatrix[6] = -M[9];
-		mAutoTextureMatrix[8] = M[2]; mAutoTextureMatrix[9] = M[6]; mAutoTextureMatrix[10] = -M[10];
-		mAutoTextureMatrix[3] = mAutoTextureMatrix[7] = mAutoTextureMatrix[11] = 0.0f;
-		mAutoTextureMatrix[12] = mAutoTextureMatrix[13] = mAutoTextureMatrix[14] = 0.0f;
-		mAutoTextureMatrix[15] = 1.0f;
-        -}
-        
-    ; TEXCALC_ENVIRONMENT_MAP_NORMAL -> do
-        GL.textureGenMode GL.S $= Just GL.NormalMap
-        GL.textureGenMode GL.T $= Just GL.NormalMap
-        GL.textureGenMode GL.R $= Just GL.NormalMap
-        GL.textureGenMode GL.Q $= Nothing
-
-    ; TEXCALC_PROJECTIVE_TEXTURE -> do
-        GL.textureGenMode GL.S $= Just (GL.EyeLinear $ GL.Plane 1 0 0 0)
-        GL.textureGenMode GL.T $= Just (GL.EyeLinear $ GL.Plane 0 1 0 0)
-        GL.textureGenMode GL.R $= Just (GL.EyeLinear $ GL.Plane 0 0 1 0)
-        GL.textureGenMode GL.Q $= Just (GL.EyeLinear $ GL.Plane 0 0 0 1)
-        {-
-		mUseAutoTextureMatrix = true;
-
-		// Set scale and translation matrix for projective textures
-		projectionBias = Matrix4::CLIPSPACE2DTOIMAGESPACE;
-
-		projectionBias = projectionBias * frustum->getProjectionMatrix();
-		if(mTexProjRelative)
-		{
-			Matrix4 viewMatrix;
-			frustum->calcViewMatrixRelative(mTexProjRelativeOrigin, viewMatrix);
-			projectionBias = projectionBias * viewMatrix;
-		}
-		else
-		{
-			projectionBias = projectionBias * frustum->getViewMatrix();
-		}
-		projectionBias = projectionBias * mWorldMatrix;
-
-		makeGLMatrix(mAutoTextureMatrix, projectionBias);
-        -}
-    }
-
-{-
-	void GLRenderSystem::_setTextureCoordCalculation(size_t stage, TexCoordCalcMethod m, 
-		const Frustum* frustum)
-	{
-		if (stage >= mFixedFunctionTextureUnits)
-		{
-			// Can't do this
-			return;
-		}
-
-
-		GLfloat M[16];
-		Matrix4 projectionBias;
-
-		// Default to no extra auto texture matrix
-		mUseAutoTextureMatrix = false;
-
-		GLfloat eyePlaneS[] = {1.0, 0.0, 0.0, 0.0};
-		GLfloat eyePlaneT[] = {0.0, 1.0, 0.0, 0.0};
-		GLfloat eyePlaneR[] = {0.0, 0.0, 1.0, 0.0};
-		GLfloat eyePlaneQ[] = {0.0, 0.0, 0.0, 1.0};
-
-		if (!activateGLTextureUnit(stage))
-			return;
-
-		switch( m )
-		{
-		case TEXCALC_NONE:
-			glDisable( GL_TEXTURE_GEN_S );
-			glDisable( GL_TEXTURE_GEN_T );
-			glDisable( GL_TEXTURE_GEN_R );
-			glDisable( GL_TEXTURE_GEN_Q );
-			break;
-
-		case TEXCALC_ENVIRONMENT_MAP:
-			glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP );
-			glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP );
-
-			glEnable( GL_TEXTURE_GEN_S );
-			glEnable( GL_TEXTURE_GEN_T );
-			glDisable( GL_TEXTURE_GEN_R );
-			glDisable( GL_TEXTURE_GEN_Q );
-
-			// Need to use a texture matrix to flip the spheremap
-			mUseAutoTextureMatrix = true;
-			memset(mAutoTextureMatrix, 0, sizeof(GLfloat)*16);
-			mAutoTextureMatrix[0] = mAutoTextureMatrix[10] = mAutoTextureMatrix[15] = 1.0f;
-			mAutoTextureMatrix[5] = -1.0f;
-
-			break;
-
-		case TEXCALC_ENVIRONMENT_MAP_PLANAR:            
-			// XXX This doesn't seem right?!
-#ifdef GL_VERSION_1_3
-			glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP );
-			glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP );
-			glTexGeni( GL_R, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP );
-
-			glEnable( GL_TEXTURE_GEN_S );
-			glEnable( GL_TEXTURE_GEN_T );
-			glEnable( GL_TEXTURE_GEN_R );
-			glDisable( GL_TEXTURE_GEN_Q );
-#else
-			glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP );
-			glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP );
-
-			glEnable( GL_TEXTURE_GEN_S );
-			glEnable( GL_TEXTURE_GEN_T );
-			glDisable( GL_TEXTURE_GEN_R );
-			glDisable( GL_TEXTURE_GEN_Q );
-#endif
-			break;
-		case TEXCALC_ENVIRONMENT_MAP_REFLECTION:
-
-			glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP );
-			glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP );
-			glTexGeni( GL_R, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP );
-
-			glEnable( GL_TEXTURE_GEN_S );
-			glEnable( GL_TEXTURE_GEN_T );
-			glEnable( GL_TEXTURE_GEN_R );
-			glDisable( GL_TEXTURE_GEN_Q );
-
-			// We need an extra texture matrix here
-			// This sets the texture matrix to be the inverse of the view matrix
-			mUseAutoTextureMatrix = true;
-			makeGLMatrix( M, mViewMatrix);
-
-			// Transpose 3x3 in order to invert matrix (rotation)
-			// Note that we need to invert the Z _before_ the rotation
-			// No idea why we have to invert the Z at all, but reflection is wrong without it
-			mAutoTextureMatrix[0] = M[0]; mAutoTextureMatrix[1] = M[4]; mAutoTextureMatrix[2] = -M[8];
-			mAutoTextureMatrix[4] = M[1]; mAutoTextureMatrix[5] = M[5]; mAutoTextureMatrix[6] = -M[9];
-			mAutoTextureMatrix[8] = M[2]; mAutoTextureMatrix[9] = M[6]; mAutoTextureMatrix[10] = -M[10];
-			mAutoTextureMatrix[3] = mAutoTextureMatrix[7] = mAutoTextureMatrix[11] = 0.0f;
-			mAutoTextureMatrix[12] = mAutoTextureMatrix[13] = mAutoTextureMatrix[14] = 0.0f;
-			mAutoTextureMatrix[15] = 1.0f;
-
-			break;
-		case TEXCALC_ENVIRONMENT_MAP_NORMAL:
-			glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_NORMAL_MAP );
-			glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_NORMAL_MAP );
-			glTexGeni( GL_R, GL_TEXTURE_GEN_MODE, GL_NORMAL_MAP );
-
-			glEnable( GL_TEXTURE_GEN_S );
-			glEnable( GL_TEXTURE_GEN_T );
-			glEnable( GL_TEXTURE_GEN_R );
-			glDisable( GL_TEXTURE_GEN_Q );
-			break;
-		case TEXCALC_PROJECTIVE_TEXTURE:
-			glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
-			glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
-			glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
-			glTexGeni(GL_Q, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR);
-			glTexGenfv(GL_S, GL_EYE_PLANE, eyePlaneS);
-			glTexGenfv(GL_T, GL_EYE_PLANE, eyePlaneT);
-			glTexGenfv(GL_R, GL_EYE_PLANE, eyePlaneR);
-			glTexGenfv(GL_Q, GL_EYE_PLANE, eyePlaneQ);
-			glEnable(GL_TEXTURE_GEN_S);
-			glEnable(GL_TEXTURE_GEN_T);
-			glEnable(GL_TEXTURE_GEN_R);
-			glEnable(GL_TEXTURE_GEN_Q);
-
-			mUseAutoTextureMatrix = true;
-
-			// Set scale and translation matrix for projective textures
-			projectionBias = Matrix4::CLIPSPACE2DTOIMAGESPACE;
-
-			projectionBias = projectionBias * frustum->getProjectionMatrix();
-			if(mTexProjRelative)
-			{
-				Matrix4 viewMatrix;
-				frustum->calcViewMatrixRelative(mTexProjRelativeOrigin, viewMatrix);
-				projectionBias = projectionBias * viewMatrix;
-			}
-			else
-			{
-				projectionBias = projectionBias * frustum->getViewMatrix();
-			}
-			projectionBias = projectionBias * mWorldMatrix;
-
-			makeGLMatrix(mAutoTextureMatrix, projectionBias);
-			break;
-		default:
-			break;
-		}
-		activateGLTextureUnit(0);
-	}
--}    
diff --git a/Graphics/LambdaCube/RenderSystem/GL/GLTexture.hs b/Graphics/LambdaCube/RenderSystem/GL/GLTexture.hs
deleted file mode 100644
--- a/Graphics/LambdaCube/RenderSystem/GL/GLTexture.hs
+++ /dev/null
@@ -1,361 +0,0 @@
-module Graphics.LambdaCube.RenderSystem.GL.GLTexture where
-
-import qualified Data.Set as Set
-import Data.Maybe
-import Control.Monad
-import Foreign.Ptr
-
-import Graphics.Rendering.OpenGL (($=))
-import qualified Graphics.Rendering.OpenGL as GL
-import System.Log.Logger
-
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.PixelFormat
-import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.Image
-import Graphics.LambdaCube.HardwareBuffer
-import Graphics.LambdaCube.RenderSystemCapabilities
-import Graphics.LambdaCube.RenderSystem.GL.GLUtils
-
-data GLTexture
-    = GLTexture
-    { gltxName                      :: String
-    , gltxWidth                     :: Int
-    , gltxHeight                    :: Int
-    , gltxDepth                     :: Int
-    , gltxNumRequestedMipmaps       :: TextureMipmap
-    , gltxNumMipmaps                :: Int
-    , gltxMipmapsHardwareGenerated  :: Bool
-    , gltxGamma                     :: FloatType
-    , gltxHwGamma                   :: Bool
-    , gltxFSAA                      :: Int
-    , gltxFSAAHint                  :: String
-    , gltxTextureType               :: TextureType
-    , gltxFormat                    :: PixelFormat
-    , gltxUsage                     :: TextureUsage
-    , gltxSrcFormat                 :: PixelFormat
-    , gltxSrcWidth                  :: Int
-    , gltxSrcHeight                 :: Int
-    , gltxSrcDepth                  :: Int
-
-    , gltxDesiredFormat             :: PixelFormat
-    , gltxDesiredIntegerBitDepth    :: Int
-    , gltxDesiredFloatBitDepth      :: Int
-    , gltxTreatLuminanceAsAlpha     :: Bool
-    
-    , gltxTextureObject             :: GL.TextureObject
-    }
-
-instance Eq GLTexture where
-    (==) a b    = gltxTextureObject a == gltxTextureObject b
-
-instance HardwareBuffer GLTexture
-
-instance Texture GLTexture where
-    txName                      = gltxName
-    txWidth                     = gltxWidth
-    txHeight                    = gltxHeight
-    txDepth                     = gltxDepth
-    txNumRequestedMipmaps       = gltxNumRequestedMipmaps
-    txNumMipmaps                = gltxNumMipmaps
-    txMipmapsHardwareGenerated  = gltxMipmapsHardwareGenerated
-    txGamma                     = gltxGamma
-    txHwGamma                   = gltxHwGamma
-    txFSAA                      = gltxFSAA
-    txFSAAHint                  = gltxFSAAHint
-    txTextureType               = gltxTextureType
-    txFormat                    = gltxFormat
---    txUsage                     = gltxUsage
-    txSrcFormat                 = gltxSrcFormat
-    txSrcWidth                  = gltxSrcWidth
-    txSrcHeight                 = gltxSrcHeight
-    txSrcDepth                  = gltxSrcDepth
-
-    txDesiredFormat             = gltxDesiredFormat
-    txDesiredIntegerBitDepth    = gltxDesiredIntegerBitDepth
-    txDesiredFloatBitDepth      = gltxDesiredFloatBitDepth
-    txTreatLuminanceAsAlpha     = gltxTreatLuminanceAsAlpha
-
-{-
-    virtual TexturePtr createManual(const String & name, const String& group,
-        TextureType texType, uint width, uint height, uint depth, 
-		int num_mips, PixelFormat format, int usage = TU_DEFAULT, ManualResourceLoader* loader = 0,
-		bool hwGammaCorrection = false, uint fsaa = 0, const String& fsaaHint = StringUtil::BLANK);
--}
---createTexture                   :: a -> String -> TextureType -> Int -> Int -> Int -> Int -> PixelFormat -> TextueUsage -> Bool -> Int -> String -> IO t
-{-
-        virtual TexturePtr createManual(const String & name, const String& group,
-            TextureType texType, uint width, uint height, uint depth, 
-			int num_mips, PixelFormat format, int usage = TU_DEFAULT, ManualResourceLoader* loader = 0,
-			bool hwGammaCorrection = false, uint fsaa = 0, const String& fsaaHint = StringUtil::BLANK);
-            TextureUsage = bufferUsage::Usage, autoMipmap::Bool, isTarget::Bool
-    createTexture                   :: a -> String -> TextureType -> Int -> Int -> Int -> Int -> PixelFormat -> Usage -> Bool -> Bool -> Bool -> Int -> String -> IO t
--}
-mkGLTexture :: RenderSystemCapabilities -> String -> TextureType -> Int -> Int -> Int -> TextureMipmap -> PixelFormat -> TextureUsage -> Bool -> Int -> String -> Maybe [Image] -> IO GLTexture
---FIXME: image parameter is temporary!!!!
-mkGLTexture rcaps name texType width height depth numMips format usage hwGammaCorrection fsaa fsaaHint mimage = do
-    let caps = rscCapabilities rcaps
-    debugM "createTexture" $ "create " ++ show texType ++ " texture: " ++ name
-    
-    when (texType == TEX_TYPE_3D && Set.notMember RSC_TEXTURE_3D caps) $ error "3D Textures not supported before OpenGL 1.2"
-
-    (major,minor) <- GL.get $ GL.majorMinor GL.glVersion
-
-    let glVer a b   = major > a || (major >= a && minor >= b)
-        texTarget   = (getGLTextureTarget texType)
-        -- Convert to nearest power-of-two size if required
-        mWidth      = optionalPO2 rcaps width
-        mHeight     = optionalPO2 rcaps height
-        mDepth      = optionalPO2 rcaps depth
-
-        -- Adjust format if required
-        mFormat     = getNativeFormat texType format False -- TODO
-
-        -- Check requested number of mipmaps
-        maxMips     = getMaxMipmaps mWidth mHeight mDepth mFormat
-        mNumMipmaps = maxMips -- TODO min maxMips numMips
-
-    -- Generate texture name
-    [mTextureID] <- GL.genObjectNames 1 
-
-    -- Set texture type
-    GL.textureBinding texTarget $= Just mTextureID
-    
-    -- This needs to be set otherwise the texture doesn't get rendered
-    when (glVer 1 2) $ GL.textureLevelRange texTarget $= (0,fromIntegral mNumMipmaps)
-    
-    -- Set some misc default parameters so NVidia won't complain, these can of course be changed later
-    GL.textureFilter texTarget $= ((GL.Nearest,Nothing),GL.Nearest)
-
-    when (glVer 1 2) $ do
-        GL.textureWrapMode texTarget GL.S $= (GL.Repeated, GL.ClampToEdge)
-        GL.textureWrapMode texTarget GL.T $= (GL.Repeated, GL.ClampToEdge)
-
-    -- If we can do automip generation and the user desires this, do so
-    let mMipmapsHardwareGenerated = Set.member RSC_AUTOMIPMAP caps
-    -- FIXME
-    {-
-		// NVIDIA 175.16 drivers break hardware mip generation for non-compressed
-		// textures - disable until fixed
-		// Leave hardware gen on compressed textures since that's the only way we
-		// can realistically do it since GLU doesn't support DXT
-		// However DON'T do this on Apple, their drivers aren't subject to this
-		// problem yet and in fact software generation appears to cause a crash 
-		// in some cases which I've yet to track down
-if OGRE_PLATFORM != OGRE_PLATFORM_APPLE
-		if (Root::getSingleton().getRenderSystem()->getCapabilities()->getVendor() == GPU_NVIDIA
-			&& !PixelUtil::isCompressed(mFormat))
-		{
-			mMipmapsHardwareGenerated = false;
-		}
-endif
-    -}
---TODO
-    let moreMips = case numMips of
-            { MIP_UNLIMITED -> True
-            ; MIP_DEFAULT   -> True -- TODO
-            ; MIP_NUMBER n  -> n > 0
-            }
-
-    when (tuAutoMipmap usage && moreMips && mMipmapsHardwareGenerated) $ GL.generateMipmap texTarget $= GL.Enabled
-
-    -- Allocate internal buffer so that glTexSubImageXD can be used
-    -- Internal format
-    let format' = getClosestGLInternalFormat mFormat hwGammaCorrection
-        isCompressed _ = False -- TODO
-    case isCompressed mFormat of
-        { True  -> do
-        {-
-			// Compressed formats
-			size_t size = PixelUtil::getMemorySize(mWidth, mHeight, mDepth, mFormat);
-			// Provide temporary buffer filled with zeroes as glCompressedTexImageXD does not
-			// accept a 0 pointer like normal glTexImageXD
-			// Run through this process for every mipmap to pregenerate mipmap piramid
-			uint8 *tmpdata = new uint8[size];
-			memset(tmpdata, 0, size);
-			
-			for(size_t mip=0; mip<=mNumMipmaps; mip++)
-			{
-				size = PixelUtil::getMemorySize(width, height, depth, mFormat);
-				switch(mTextureType)
-				{
-					case TEX_TYPE_1D:
-						glCompressedTexImage1DARB(GL_TEXTURE_1D, mip, format', 
-							width, 0, 
-							size, tmpdata);
-						break;
-					case TEX_TYPE_2D:
-						glCompressedTexImage2DARB(GL_TEXTURE_2D, mip, format',
-							width, height, 0, 
-							size, tmpdata);
-						break;
-					case TEX_TYPE_3D:
-						glCompressedTexImage3DARB(GL_TEXTURE_3D, mip, format',
-							width, height, depth, 0, 
-							size, tmpdata);
-						break;
-					case TEX_TYPE_CUBE_MAP:
-						for(int face=0; face<6; face++) {
-							glCompressedTexImage2DARB(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, mip, format',
-								width, height, 0, 
-								size, tmpdata);
-						}
-						break;
-				};
-				if(width>1)		width = width/2;
-				if(height>1)	height = height/2;
-				if(depth>1)		depth = depth/2;
-			}
-			delete [] tmpdata;
-        -}
-            
-            -- Compressed formats
-            -- Provide temporary buffer filled with zeroes as glCompressedTexImageXD does not
-            -- accept a 0 pointer like normal glTexImageXD
-            -- TODO: support compressed textures
-            {-
-            let setMip tmpdata (w,h,d) mip = do
-                    -- compressedTexImage1D :: Proxy -> Level -> TextureSize1D -> Border -> CompressedPixelData a -> IO ()
-                    -- CompressedPixelData !CompressedTextureFormat GLsizei (Ptr a)
-                    let size = getMemorySize w h d mFormat
-                    case texType of
-                        { TEX_TYPE_1D       -> GL.compressedTexImage1D GL.NoProxy mip (GL.TextureSize1D w) 0 (GL.CompressedPixelData (CompressedTextureFormat ) size tmpdata)
-                        ; TEX_TYPE_2D       -> 
-                        ; TEX_TYPE_3D       -> 
-                        ; TEX_TYPE_CUBE_MAP -> do
-                        }
-                    return (max 1 (w `div` 2), max 1 (h `div` 2), max 1 (d `div` 2))
-                setMips :: Ptr Word8 -> IO ()
-                setMips tmpdata = do
-                    pokeArray tmpdata $ replicate size 0
-                    -- Run through this process for every mipmap to pregenerate mipmap piramid
-                    foldM_ (setMip tmpdata) (mWidth,mHeight,mDepth) [0..mNumMipmaps]
-            allocaArray (getMemorySize mWidth mHeight mDepth mFormat) setMips
-            -}
-            return ()
-        ; False -> do
-            let setMip (w,h,d) mip = do
-                    -- Normal formats
-                    case texType of
-                        { TEX_TYPE_1D       -> GL.texImage1D GL.NoProxy mip format' (GL.TextureSize1D w) 0 (GL.PixelData GL.RGBA GL.UnsignedByte nullPtr)
-                        ; TEX_TYPE_2D       -> GL.texImage2D Nothing GL.NoProxy mip format' (GL.TextureSize2D w h) 0 (GL.PixelData GL.RGBA GL.UnsignedByte nullPtr)
-                        ; TEX_TYPE_3D       -> GL.texImage3D GL.NoProxy mip format' (GL.TextureSize3D w h d) 0 (GL.PixelData GL.RGBA GL.UnsignedByte nullPtr)
-                        ; TEX_TYPE_CUBE_MAP -> do
-                            GL.texImage2D (Just GL.TextureCubeMapPositiveX) GL.NoProxy mip format' (GL.TextureSize2D w h) 0 (GL.PixelData GL.RGBA GL.UnsignedByte nullPtr)
-                            GL.texImage2D (Just GL.TextureCubeMapNegativeX) GL.NoProxy mip format' (GL.TextureSize2D w h) 0 (GL.PixelData GL.RGBA GL.UnsignedByte nullPtr)
-                            GL.texImage2D (Just GL.TextureCubeMapPositiveY) GL.NoProxy mip format' (GL.TextureSize2D w h) 0 (GL.PixelData GL.RGBA GL.UnsignedByte nullPtr)
-                            GL.texImage2D (Just GL.TextureCubeMapNegativeY) GL.NoProxy mip format' (GL.TextureSize2D w h) 0 (GL.PixelData GL.RGBA GL.UnsignedByte nullPtr)
-                            GL.texImage2D (Just GL.TextureCubeMapPositiveZ) GL.NoProxy mip format' (GL.TextureSize2D w h) 0 (GL.PixelData GL.RGBA GL.UnsignedByte nullPtr)
-                            GL.texImage2D (Just GL.TextureCubeMapNegativeZ) GL.NoProxy mip format' (GL.TextureSize2D w h) 0 (GL.PixelData GL.RGBA GL.UnsignedByte nullPtr)
-                        }
-                    return (max 1 (w `div` 2), max 1 (h `div` 2), max 1 (d `div` 2))
-                f = fromIntegral
-            -- Run through this process to pregenerate mipmap piramid
-            foldM_ setMip (f mWidth,f mHeight,f mDepth) [0..(fromIntegral mNumMipmaps)]
-        }
-
-    -- TODO
-    -- TEMP CODE
-    when (isJust mimage) $ do
-        let images = fromJust mimage
-            imInfo i = (fmt,f w,f h)
-              where
-                f   = fromIntegral
-                fmt = case imFormat i of
-                    { PF_L8         -> GL.Luminance
-                    ; PF_BYTE_LA    -> GL.LuminanceAlpha
-                    ; PF_R8G8B8     -> GL.RGB
-                    ; PF_R8G8B8A8   -> GL.RGBA
-                    }
-                w   = imWidth i
-                h   = imHeight i
-            upload2D target i = do
-                let (fmt,w,h) = imInfo i
-                debugM "createTexture" $ "upload2d: " ++ imName i
-                GL.texImage2D target GL.NoProxy 0 format' (GL.TextureSize2D w h) 0 (GL.PixelData fmt GL.UnsignedByte $ imData i)
-                
-        errl <- GL.get GL.errors
-        unless (null errl) $ debugM "createTexture" $ "glerrors: \"" ++ concat [show c ++ " - " ++ m ++ "\n" | GL.Error c m <- errl] ++ "\""
-        case texType of
-            { TEX_TYPE_1D       -> do
-                let (fmt,w,h) = imInfo image
-                    image     = head images  
-                GL.texImage1D GL.NoProxy 0 format' (GL.TextureSize1D w) 0 (GL.PixelData fmt GL.UnsignedByte $ imData image)
-            ; TEX_TYPE_2D       -> upload2D Nothing $ head images
-            ; TEX_TYPE_CUBE_MAP -> mapM_ (uncurry upload2D) $ zip [ Just GL.TextureCubeMapPositiveZ -- front
-                                                                  , Just GL.TextureCubeMapNegativeZ -- back
-                                                                  , Just GL.TextureCubeMapPositiveY -- up
-                                                                  , Just GL.TextureCubeMapNegativeY -- down
-                                                                  , Just GL.TextureCubeMapNegativeX -- left
-                                                                  , Just GL.TextureCubeMapPositiveX -- right
-                                                                  ] images
-            ; _ -> return ()
-            }            
-    --_createSurfaceList();
-
-    -- Get final internal format
-    -- TODO
-    --mFormat = getBuffer(0,0)->getFormat();
-    debugM "createTexture" $ "created texture: " ++ name
-    return GLTexture
-        { gltxName                      = name
-        , gltxWidth                     = 0 --TODO
-        , gltxHeight                    = 0 --TODO
-        , gltxDepth                     = 0 --TODO
-        , gltxNumRequestedMipmaps       = MIP_DEFAULT --TODO
-        , gltxNumMipmaps                = 0 --TODO
-        , gltxMipmapsHardwareGenerated  = True --TODO
-        , gltxGamma                     = 0 --TODO
-        , gltxHwGamma                   = True --TODO
-        , gltxFSAA                      = 0 --TODO
-        , gltxFSAAHint                  = "" --TODO
-        , gltxTextureType               = texType
-        , gltxFormat                    = PF_R8G8B8 -- TODO
-        , gltxUsage                     = TextureUsage HBU_WRITE_ONLY False False-- TODO
-        , gltxSrcFormat                 = PF_R8G8B8 -- TODO
-        , gltxSrcWidth                  = 0 --TODO
-        , gltxSrcHeight                 = 0 --TODO
-        , gltxSrcDepth                  = 0 --TODO
-    
-        , gltxDesiredFormat             = PF_R8G8B8 --TODO
-        , gltxDesiredIntegerBitDepth    = 0 --TODO
-        , gltxDesiredFloatBitDepth      = 0 --TODO
-        , gltxTreatLuminanceAsAlpha     = True --TODO
-        
-        , gltxTextureObject             = mTextureID
-        }
-{-
-	void GLTexture::_createSurfaceList()
-	{
-		mSurfaceList.clear();
-		
-		// For all faces and mipmaps, store surfaces as HardwarePixelBufferSharedPtr
-		bool wantGeneratedMips = (mUsage & TU_AUTOMIPMAP)!=0;
-		
-		// Do mipmapping in software? (uses GLU) For some cards, this is still needed. Of course,
-		// only when mipmap generation is desired.
-		bool doSoftware = wantGeneratedMips && !mMipmapsHardwareGenerated && getNumMipmaps(); 
-		
-		for(size_t face=0; face<getNumFaces(); face++)
-		{
-			for(size_t mip=0; mip<=getNumMipmaps(); mip++)
-			{
-                GLHardwarePixelBuffer *buf = new GLTextureBuffer(mName, getGLTextureTarget(), mTextureID, face, mip,
-						static_cast<HardwareBuffer::Usage>(mUsage), doSoftware && mip==0, mHwGamma, mFSAA);
-				mSurfaceList.push_back(HardwarePixelBufferSharedPtr(buf));
-                
-                /// Check for error
-                if(buf->getWidth()==0 || buf->getHeight()==0 || buf->getDepth()==0)
-                {
-                    OGRE_EXCEPT(
-                        Exception::ERR_RENDERINGAPI_ERROR, 
-                        "Zero sized texture surface on texture "+getName()+
-                            " face "+StringConverter::toString(face)+
-                            " mipmap "+StringConverter::toString(mip)+
-                            ". Probably, the GL driver refused to create the texture.", 
-                            "GLTexture::_createSurfaceList");
-                }
-			}
-		}
-	}
--}
diff --git a/Graphics/LambdaCube/RenderSystem/GL/GLUtils.hs b/Graphics/LambdaCube/RenderSystem/GL/GLUtils.hs
deleted file mode 100644
--- a/Graphics/LambdaCube/RenderSystem/GL/GLUtils.hs
+++ /dev/null
@@ -1,326 +0,0 @@
-module Graphics.LambdaCube.RenderSystem.GL.GLUtils where
-
-import qualified Data.Set as Set
-import Data.Bits
-import Unsafe.Coerce
-
-import Graphics.Rendering.OpenGL (($=))
-import qualified Graphics.Rendering.OpenGL as GL
-
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.Math
-import Graphics.LambdaCube.Common
-import Graphics.LambdaCube.PixelFormat
-import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.BlendMode
-import Graphics.LambdaCube.HardwareBuffer
-import Graphics.LambdaCube.HardwareVertexBuffer
-import Graphics.LambdaCube.RenderSystemCapabilities
-import Graphics.LambdaCube.TextureUnitState
-
-toGLMatrix :: Matrix4 -> IO (GL.GLmatrix GL.GLfloat)
-toGLMatrix m = GL.newMatrix GL.ColumnMajor $ unsafeCoerce $ toListsMatrix4 m
-
-getGLUsage :: Usage -> GL.BufferUsage
-getGLUsage usage = case usage of
-    { HBU_STATIC                            -> GL.StaticDraw
-    ; HBU_STATIC_WRITE_ONLY                 -> GL.StaticDraw
-    ; HBU_DYNAMIC                           -> GL.DynamicDraw
-    ; HBU_DYNAMIC_WRITE_ONLY                -> GL.DynamicDraw
-    ; HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE    -> GL.StreamDraw
-    ; _                                     -> GL.DynamicDraw
-    }
-
-getGLType :: VertexElementType -> GL.DataType
-getGLType t = case t of
-    { VET_FLOAT1        -> GL.Float
-    ; VET_FLOAT2        -> GL.Float
-    ; VET_FLOAT3        -> GL.Float
-    ; VET_FLOAT4        -> GL.Float
-    ; VET_SHORT1        -> GL.Short
-    ; VET_SHORT2        -> GL.Short
-    ; VET_SHORT3        -> GL.Short
-    ; VET_SHORT4        -> GL.Short
-    ; VET_COLOUR_ABGR   -> GL.UnsignedByte
-    ; VET_COLOUR_ARGB   -> GL.UnsignedByte
-    ; VET_UBYTE4        -> GL.UnsignedByte
-    }
-
-getGLTextureTarget :: TextureType -> GL.TextureTarget
-getGLTextureTarget textureType = case textureType of
-    { TEX_TYPE_1D       -> GL.Texture1D
-    ; TEX_TYPE_2D       -> GL.Texture2D
-    ; TEX_TYPE_3D       -> GL.Texture3D
-    ; TEX_TYPE_CUBE_MAP -> GL.TextureCubeMap
-    }
-
-
-optionalPO2 :: RenderSystemCapabilities -> Int -> Int
-optionalPO2 rcaps value = case Set.member RSC_NON_POWER_OF_2_TEXTURES (rscCapabilities rcaps) of
-    { True  -> value
-    ; False -> 2 ^ ( 1 + log2 (value-1) )
-    }
-  where
-    log2 n = case n of
-      0 -> -1
-      _ -> 1 + log2 (shiftR n 1) 
-
-getMaxMipmaps :: Int -> Int -> Int -> PixelFormat -> Int
-getMaxMipmaps width height depth format = maximum [f width, f height, f depth]
-  where
-    f x = floor $ logBase 2 $ fromIntegral x
-{-
-	size_t GLPixelUtil::getMaxMipmaps(size_t width, size_t height, size_t depth, PixelFormat format)
-	{
-		size_t count = 0;
-		do {
-			if(width>1)		width = width/2;
-			if(height>1)	height = height/2;
-			if(depth>1)		depth = depth/2;
-				
-			count ++;
-		} while(!(width == 1 && height == 1 && depth == 1));
-		
-		return count;
-	}
--}
--- TODO
-getNativeFormat :: TextureType -> PixelFormat -> Bool -> PixelFormat
-getNativeFormat ttype format isTarget = PF_R8G8B8
-{-
-	PixelFormat GLTextureManager::getNativeFormat(TextureType ttype, PixelFormat format, int usage)
-	{
-		// Adjust requested parameters to capabilities
-        const RenderSystemCapabilities *caps = Root::getSingleton().getRenderSystem()->getCapabilities();
-
-		// Check compressed texture support
-		// if a compressed format not supported, revert to PF_A8R8G8B8
-		if(PixelUtil::isCompressed(format) &&
-            !caps->hasCapability( RSC_TEXTURE_COMPRESSION_DXT ))
-		{
-			return PF_A8R8G8B8;
-		}
-		// if floating point textures not supported, revert to PF_A8R8G8B8
-		if(PixelUtil::isFloatingPoint(format) &&
-            !caps->hasCapability( RSC_TEXTURE_FLOAT ))
-		{
-			return PF_A8R8G8B8;
-		}
-        
-        // Check if this is a valid rendertarget format
-		if( usage & TU_RENDERTARGET )
-        {
-            /// Get closest supported alternative
-            /// If mFormat is supported it's returned
-            return GLRTTManager::getSingleton().getSupportedAlternative(format);
-        }
-
-		// Supported
-		return format;
-	}
-
-    PixelFormat GLRTTManager::getSupportedAlternative(PixelFormat format)
-    {
-        if(checkFormat(format))
-            return format;
-        /// Find first alternative
-        PixelComponentType pct = PixelUtil::getComponentType(format);
-        switch(pct)
-        {
-        case PCT_BYTE: format = PF_A8R8G8B8; break;
-        case PCT_SHORT: format = PF_SHORT_RGBA; break;
-        case PCT_FLOAT16: format = PF_FLOAT16_RGBA; break;
-        case PCT_FLOAT32: format = PF_FLOAT32_RGBA; break;
-        case PCT_COUNT: break;
-        }
-        if(checkFormat(format))
-            return format;
-        /// If none at all, return to default
-        return PF_A8R8G8B8;
-    }
--}
-getGLInternalFormat :: PixelFormat -> Bool -> GL.PixelInternalFormat
-getGLInternalFormat mFormat hwGamma = case mFormat of
-    { PF_L8             -> GL.Luminance8
-    ; PF_L16            -> GL.Luminance16
-    ; PF_A8             -> GL.Alpha8
-    ; PF_A4L4           -> GL.Luminance4Alpha4
-    ; PF_BYTE_LA        -> GL.Luminance8Alpha8
-    ; PF_R3G3B2         -> GL.R3G3B2
-    ; PF_A1R5G5B5       -> GL.RGB5A1
-    ; PF_R5G6B5         -> GL.RGB5
-    ; PF_B5G6R5         -> GL.RGB5
-    ; PF_A4R4G4B4       -> GL.RGBA4
-    ; PF_R8G8B8         -> if hwGamma then GL.SRGB8 else GL.RGB8
-    ; PF_B8G8R8         -> if hwGamma then GL.SRGB8 else GL.RGB8
-    ; PF_X8B8G8R8       -> if hwGamma then GL.SRGB8 else GL.RGB8
-    ; PF_X8R8G8B8       -> if hwGamma then GL.SRGB8 else GL.RGB8
-    ; PF_A8R8G8B8       -> if hwGamma then GL.SRGB8Alpha8 else GL.RGBA8
-    ; PF_B8G8R8A8       -> if hwGamma then GL.SRGB8Alpha8 else GL.RGBA8 
-    ; PF_A2R10G10B10    -> GL.RGB10A2
-    ; PF_A2B10G10R10    -> GL.RGB10A2
---FIXME    ; PF_FLOAT16_R      -> GL_LUMINANCE16F_ARB
---FIXME    ; PF_FLOAT16_RGB    -> GL_RGB16F_ARB
---FIXME    ; PF_FLOAT16_GR     -> GL_LUMINANCE_ALPHA16F_ARB
---FIXME    ; PF_FLOAT16_RGBA   -> GL_RGBA16F_ARB
---FIXME    ; PF_FLOAT32_R      -> GL_LUMINANCE32F_ARB
---FIXME    ; PF_FLOAT32_GR     -> GL_LUMINANCE_ALPHA32F_ARB
---FIXME    ; PF_FLOAT32_RGB    -> GL_RGB32F_ARB
---FIXME    ; PF_FLOAT32_RGBA   -> GL_RGBA32F_ARB
-    ; PF_SHORT_RGBA     -> GL.RGBA16
-    ; PF_SHORT_RGB      -> GL.RGB16
-    ; PF_SHORT_GR       -> GL.Luminance16Alpha16
---			case PF_DXT1:
---				if (hwGamma)
---					return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;
---				else
---					return GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
---            case PF_DXT3:
---				if (hwGamma)
---					return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;
---				else
---	                return GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
---            case PF_DXT5:
---				if (hwGamma)
---					return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;
---				else
---	                return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
-    ; _                 -> error "Unsupported pixel format"
-    }
-{-   
-    GLenum GLPixelUtil::getGLInternalFormat(PixelFormat mFormat, bool hwGamma)
-    {
-        switch(mFormat) {
-            default:
-                return GL_NONE;
-        }
-    }
-    GLenum GLPixelUtil::getClosestGLInternalFormat(PixelFormat mFormat, bool hwGamma)
-    {
-        GLenum format = getGLInternalFormat(mFormat, hwGamma);
-        if(format==GL_NONE)
-		{
-			if (hwGamma)
-				return GL_SRGB8;
-			else
-				return GL_RGBA8;
-		}
-        else
-            return format;
-    }
--}
-getClosestGLInternalFormat :: PixelFormat -> Bool -> GL.PixelInternalFormat
-getClosestGLInternalFormat mFormat hwGamma = case mFormat of
-    { PF_L8             -> GL.Luminance8
-    ; PF_L16            -> GL.Luminance16
-    ; PF_A8             -> GL.Alpha8
-    ; PF_A4L4           -> GL.Luminance4Alpha4
-    ; PF_BYTE_LA        -> GL.Luminance8Alpha8
-    ; PF_R3G3B2         -> GL.R3G3B2
-    ; PF_A1R5G5B5       -> GL.RGB5A1
-    ; PF_R5G6B5         -> GL.RGB5
-    ; PF_B5G6R5         -> GL.RGB5
-    ; PF_A4R4G4B4       -> GL.RGBA4
-    ; PF_R8G8B8         -> if hwGamma then GL.SRGB8 else GL.RGB8
-    ; PF_B8G8R8         -> if hwGamma then GL.SRGB8 else GL.RGB8
-    ; PF_X8B8G8R8       -> if hwGamma then GL.SRGB8 else GL.RGB8
-    ; PF_X8R8G8B8       -> if hwGamma then GL.SRGB8 else GL.RGB8
-    ; PF_A8R8G8B8       -> if hwGamma then GL.SRGB8Alpha8 else GL.RGBA8
-    ; PF_B8G8R8A8       -> if hwGamma then GL.SRGB8Alpha8 else GL.RGBA8 
-    ; PF_A2R10G10B10    -> GL.RGB10A2
-    ; PF_A2B10G10R10    -> GL.RGB10A2
---FIXME    ; PF_FLOAT16_R      -> GL_LUMINANCE16F_ARB
---FIXME    ; PF_FLOAT16_RGB    -> GL_RGB16F_ARB
---FIXME    ; PF_FLOAT16_GR     -> GL_LUMINANCE_ALPHA16F_ARB
---FIXME    ; PF_FLOAT16_RGBA   -> GL_RGBA16F_ARB
---FIXME    ; PF_FLOAT32_R      -> GL_LUMINANCE32F_ARB
---FIXME    ; PF_FLOAT32_GR     -> GL_LUMINANCE_ALPHA32F_ARB
---FIXME    ; PF_FLOAT32_RGB    -> GL_RGB32F_ARB
---FIXME    ; PF_FLOAT32_RGBA   -> GL_RGBA32F_ARB
-    ; PF_SHORT_RGBA     -> GL.RGBA16
-    ; PF_SHORT_RGB      -> GL.RGB16
-    ; PF_SHORT_GR       -> GL.Luminance16Alpha16
--- FIXME
---			case PF_DXT1:
---				if (hwGamma)
---					return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;
---				else
---					return GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
---            case PF_DXT3:
---				if (hwGamma)
---					return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;
---				else
---	                return GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
---            case PF_DXT5:
---				if (hwGamma)
---					return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;
---				else
---	                return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
-    ; _                 -> if hwGamma then GL.SRGB8 else GL.RGBA8
-    }
-
-getBlendMode :: SceneBlendFactor -> GL.BlendingFactor
-getBlendMode blend = case blend of
-    { SBF_ONE                       -> GL.One
-    ; SBF_ZERO                      -> GL.Zero
-    ; SBF_DEST_COLOUR               -> GL.DstColor
-    ; SBF_SOURCE_COLOUR             -> GL.SrcColor
-    ; SBF_ONE_MINUS_DEST_COLOUR     -> GL.OneMinusDstColor
-    ; SBF_ONE_MINUS_SOURCE_COLOUR   -> GL.OneMinusSrcColor
-    ; SBF_DEST_ALPHA                -> GL.DstAlpha
-    ; SBF_SOURCE_ALPHA              -> GL.SrcAlpha
-    ; SBF_ONE_MINUS_DEST_ALPHA      -> GL.OneMinusDstAlpha
-    ; SBF_ONE_MINUS_SOURCE_ALPHA    -> GL.OneMinusSrcAlpha
-    }
-
-getBlendEquation op = case op of
-    { SBO_ADD               -> GL.FuncAdd
-    ; SBO_SUBTRACT          -> GL.FuncSubtract
-    ; SBO_REVERSE_SUBTRACT  -> GL.FuncReverseSubtract
-    ; SBO_MIN               -> GL.Min
-    ; SBO_MAX               -> GL.Max
-    }
-
-getTextureAddressingMode tam = case tam of
-    { TAM_WRAP      -> (GL.Repeated, GL.Repeat)
-    ; TAM_MIRROR    -> (GL.Mirrored, GL.Repeat)
-    ; TAM_CLAMP     -> (GL.Repeated, GL.ClampToEdge)
-    ; TAM_BORDER    -> (GL.Repeated, GL.ClampToBorder)
-    }
-
-getLayerBlendSource src = case src of 
-    { LBS_CURRENT   -> GL.Previous
-    ; LBS_TEXTURE   -> GL.CurrentUnit
-    ; LBS_MANUAL    -> GL.Constant
-    ; LBS_DIFFUSE   -> GL.PrimaryColor
-    ; LBS_SPECULAR  -> GL.PrimaryColor
-    }
-
-getTextureCombineFunction hasDot3 op = case op of
-    { LBX_SOURCE1               -> GL.Replace'
-    ; LBX_SOURCE2               -> GL.Replace'
-    ; LBX_MODULATE              -> GL.Modulate'
-    ; LBX_MODULATE_X2           -> GL.Modulate'
-    ; LBX_MODULATE_X4           -> GL.Modulate'
-    ; LBX_ADD                   -> GL.AddUnsigned'
-    ; LBX_ADD_SIGNED            -> GL.AddSigned
-    ; LBX_ADD_SMOOTH            -> GL.Interpolate
-    ; LBX_SUBTRACT              -> GL.Subtract
-    ; LBX_BLEND_DIFFUSE_COLOUR  -> GL.Interpolate
-    ; LBX_BLEND_DIFFUSE_ALPHA   -> GL.Interpolate
-    ; LBX_BLEND_TEXTURE_ALPHA   -> GL.Interpolate
-    ; LBX_BLEND_CURRENT_ALPHA   -> GL.Interpolate
-    ; LBX_BLEND_MANUAL          -> GL.Interpolate
-    ; LBX_DOTPRODUCT            -> if hasDot3 then GL.Dot3RGB else GL.Modulate'
-    }
-
-convertCompareFunction f = case f of
-    { CMPF_ALWAYS_FAIL      -> GL.Never
-    ; CMPF_ALWAYS_PASS      -> GL.Always
-    ; CMPF_LESS             -> GL.Less
-    ; CMPF_LESS_EQUAL       -> GL.Lequal
-    ; CMPF_EQUAL            -> GL.Equal
-    ; CMPF_NOT_EQUAL        -> GL.Notequal
-    ; CMPF_GREATER_EQUAL    -> GL.Gequal
-    ; CMPF_GREATER          -> GL.Greater
-    }
diff --git a/Graphics/LambdaCube/RenderSystem/GL/GLVertexBuffer.hs b/Graphics/LambdaCube/RenderSystem/GL/GLVertexBuffer.hs
deleted file mode 100644
--- a/Graphics/LambdaCube/RenderSystem/GL/GLVertexBuffer.hs
+++ /dev/null
@@ -1,133 +0,0 @@
-module Graphics.LambdaCube.RenderSystem.GL.GLVertexBuffer where
-
-import Data.Word
-import Data.Maybe
-import Foreign.Marshal.Alloc
-import Foreign.Marshal.Utils
-import Foreign.Storable
-import Foreign.C.Types
-import Foreign.Ptr
-import Data.IORef
-import Control.Monad
-
-import Graphics.Rendering.OpenGL (($=))
-import qualified Graphics.Rendering.OpenGL as GL
-
-import Graphics.LambdaCube.RenderSystem
-import Graphics.LambdaCube.HardwareBuffer
-import Graphics.LambdaCube.HardwareVertexBuffer
-import Graphics.LambdaCube.RenderSystem.GL.GLUtils
-
--- | Specialisation of HardwareVertexBuffer for GL
-data GLVertexBuffer
-    = GLVertexBuffer
-    { glvbNumVertices      :: Int
-    , glvbVertexSize       :: Int
-            
-    , glvbUsage            :: Usage
-    , glvbLockInfo         :: IORef (Maybe (Int,Int,Bool)) -- LockStart LockSize RequireUpdate
-    
-    , glvbShadowBuffer     :: Maybe (Ptr Word8)
-    , glvbBufferObject     :: Maybe GL.BufferObject
-    }
-    deriving Eq
-
-instance HardwareVertexBuffer GLVertexBuffer where
-    getVertexSize   = glvbVertexSize
-    getNumVertices  = glvbNumVertices
-
-instance HardwareBuffer GLVertexBuffer where
-    getSizeInBytes b    = glvbVertexSize b * glvbNumVertices b
-    isSystemMemory      = isNothing . glvbBufferObject
-    hasShadowBuffer b   = (isJust $ glvbShadowBuffer b) && (isJust $ glvbBufferObject b)
-    getUsage            = glvbUsage
-    isLocked            = glvbIsLocked
-    unlock              = glvbUnlock
-    lock                = glvbLock
-
-glvbIsLocked b = do
-    i <- readIORef $ glvbLockInfo b
-    return $ isJust i
-
-glvbLock a offs len opts = do
-    lockinfo <- readIORef (glvbLockInfo a)
-    when (isJust lockinfo) $ error "Cannot lock this buffer, it is already locked!"
-    writeIORef (glvbLockInfo a) $ Just (offs,len,opts /= HBL_READ_ONLY)
-    case glvbShadowBuffer a of
-        { Just b    -> return $ plusPtr b offs
-        ; Nothing   -> do
-            GL.bindBuffer GL.ArrayBuffer $= (glvbBufferObject a)
-            -- Discard if required
-            when (opts == HBL_DISCARD) $ GL.bufferData GL.ArrayBuffer $= (fromIntegral $ getSizeInBytes a, nullPtr, getGLUsage $ getUsage a)
-            let isWriteOnly = case getUsage a of
-                    { HBU_WRITE_ONLY                        -> True
-                    ; HBU_STATIC_WRITE_ONLY                 -> True
-                    ; HBU_DYNAMIC_WRITE_ONLY                -> True
-                    ; HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE    -> True
-                    ; _                                     -> False
-                    }
-                access = case (isWriteOnly,opts == HBL_READ_ONLY) of
-                    { (False,False) -> GL.ReadWrite
-                    ; (False,True)  -> GL.ReadOnly
-                    ; (True,_)      -> GL.WriteOnly
-                    }
-            mb <- GL.mapBuffer GL.ArrayBuffer access
-            case mb of
-                { Just b    -> return $ plusPtr b offs
-                ; Nothing   -> error "Vertex Buffer: Out of memory"
-                }
-        }
-
-glvbUnlock a = do
-    lockinfo <- readIORef (glvbLockInfo a)
-    let (lockStart,lockSize,reqUpdate) = case lockinfo of
-            { Just li   -> li
-            ; Nothing   -> error "Cannot unlock this buffer, it is not locked!"
-            }
-    writeIORef (glvbLockInfo a) Nothing
-    case glvbShadowBuffer a of
-        { Just b    -> when reqUpdate $ do -- If we used the shadow buffer this time...
-            GL.bindBuffer GL.ArrayBuffer $= (glvbBufferObject a)
-            case lockStart == 0 && lockSize == getSizeInBytes a of
-                { True  -> GL.bufferData GL.ArrayBuffer $= (fromIntegral lockSize, b, getGLUsage $ getUsage a)
-                ; False -> GL.bufferSubData GL.ArrayBuffer GL.WriteToBuffer (fromIntegral lockStart) (fromIntegral lockSize) b
-                }
-        ; Nothing   -> do
-            GL.bindBuffer GL.ArrayBuffer $= (glvbBufferObject a)
-            ok <- GL.unmapBuffer GL.ArrayBuffer
-            unless ok $ error "Buffer data corrupted, please reload"
-        }
-        
---mkGLVertexBuffer :: RenderSystem rs => rs -> Int -> Int -> Usage -> Bool -> IO GLVertexBuffer
-mkGLVertexBuffer rs vertexSize numVerts usage useShadowBuffer = do
-    lockinfo <- newIORef Nothing
-    [bufferObject] <- GL.genObjectNames 1
-    GL.bindBuffer GL.ArrayBuffer $= Just bufferObject
-    GL.bufferData GL.ArrayBuffer $= (fromIntegral $ numVerts * vertexSize, nullPtr, getGLUsage usage)
-    shadowBuffer <- case useShadowBuffer of
-        { True  -> do
-            b <- mallocBytes $ numVerts * vertexSize
-            return $ Just b
-        ; False -> return Nothing
-        }
-    return $ GLVertexBuffer
-        { glvbNumVertices      = numVerts
-        , glvbVertexSize       = vertexSize
-                
-        , glvbUsage            = usage
-        , glvbLockInfo         = lockinfo
-
-        , glvbShadowBuffer     = shadowBuffer
-        , glvbBufferObject     = Just bufferObject
-        }
-
-rmGLVertexBuffer :: GLVertexBuffer -> IO ()
-rmGLVertexBuffer a = do
-    case glvbBufferObject a of
-        { Just b    -> GL.deleteObjectNames [b]
-        ; Nothing   -> return ()
-        }
-    case glvbShadowBuffer a of
-        { Just b    -> free b
-        ; Nothing   -> return ()
-        }
diff --git a/Graphics/LambdaCube/RenderSystem/GL/GpuProgram.hs b/Graphics/LambdaCube/RenderSystem/GL/GpuProgram.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/RenderSystem/GL/GpuProgram.hs
@@ -0,0 +1,147 @@
+module Graphics.LambdaCube.RenderSystem.GL.GpuProgram where
+
+import Data.List
+import Control.Monad
+import Foreign
+import Foreign.C.String
+
+import Graphics.Rendering.OpenGL.Raw.Core31
+import qualified Graphics.Rendering.OpenGL.Raw.EXT as EXT
+
+import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.HardwareVertexBuffer
+
+-- Some drivers (e.g. OS X on nvidia) incorrectly determine the attribute binding automatically
+-- and end up aliasing existing built-ins. So avoid! Fixed builtins are:
+
+--  a  builtin				custom attrib name
+-- ----------------------------------------------
+--	0  gl_Vertex			vertex
+--  1  n/a					blendWeights
+--	2  gl_Normal			normal
+--	3  gl_Color				colour
+--	4  gl_SecondaryColor	secondary_colour
+--	5  gl_FogCoord			fog_coord
+--  7  n/a					blendIndices
+--	8  gl_MultiTexCoord0	uv0
+--	9  gl_MultiTexCoord1	uv1
+--	10 gl_MultiTexCoord2	uv2
+--	11 gl_MultiTexCoord3	uv3
+--	12 gl_MultiTexCoord4	uv4
+--	13 gl_MultiTexCoord5	uv5
+--	14 gl_MultiTexCoord6	uv6, tangent
+--	15 gl_MultiTexCoord7	uv7, binormal
+getFixedAttributeIndex :: VertexElementSemantic -> Int -> Int
+getFixedAttributeIndex semantic index = case semantic of
+    VES_POSITION              -> 0
+    VES_BLEND_WEIGHTS         -> 1
+    VES_NORMAL                -> 2
+    VES_DIFFUSE               -> 3
+    VES_SPECULAR              -> 4
+    VES_BLEND_INDICES         -> 7
+    VES_TEXTURE_COORDINATES   -> 8 + index
+    VES_TANGENT               -> 14
+    VES_BINORMAL              -> 15
+
+isAttributeValid :: VertexElementSemantic -> Int -> Bool
+isAttributeValid semantic _ = case semantic of
+    VES_POSITION              -> False
+    VES_NORMAL                -> False
+    VES_DIFFUSE               -> False
+    VES_SPECULAR              -> False
+    VES_TEXTURE_COORDINATES   -> False
+    VES_BLEND_WEIGHTS         -> True
+    VES_BLEND_INDICES         -> True
+    VES_BINORMAL              -> True
+    VES_TANGENT               -> True
+
+data GLGpuProgram
+    = GLGpuProgram
+    { glgpShaderObject          :: GLuint
+    }
+    deriving (Eq,Ord)
+
+data GLLinkedGpuProgram
+    = GLLinkedGpuProgram
+    { gllgpProgramObject        :: GLuint
+    }
+    deriving (Eq,Ord)
+
+instance LinkedGpuProgram GLLinkedGpuProgram
+
+instance GpuProgram GLGpuProgram
+
+withGLStringLen :: String -> ((Ptr b, Int) -> IO a) -> IO a
+withGLStringLen s act =
+   withCAStringLen s $ \(p,len) ->
+      act (castPtr p, fromIntegral len)
+
+setShaderSource :: GLuint -> [String] -> IO ()
+setShaderSource shader srcs = do
+   let len = genericLength srcs
+   withMany withGLStringLen srcs $ \charBufsAndLengths -> do
+      let (charBufs, lengths) = unzip charBufsAndLengths
+      withArray charBufs $ \charBufsBuf ->
+         withArray (map fromIntegral lengths) $ \lengthsBuf ->
+            glShaderSource shader len charBufsBuf lengthsBuf
+
+shaderInfoLog :: GLuint -> IO String
+shaderInfoLog a = allocaArray maxLen $ \s -> alloca $ \l -> do
+    glGetShaderInfoLog a (fromIntegral maxLen) l s
+    len <- peek l
+    peekCStringLen (castPtr s, fromIntegral len)
+  where
+    maxLen = 256
+
+programInfoLog :: GLuint -> IO String
+programInfoLog a = allocaArray maxLen $ \s -> alloca $ \l -> do
+    glGetProgramInfoLog a (fromIntegral maxLen) l s
+    len <- peek l
+    peekCStringLen (castPtr s, fromIntegral len)
+  where
+    maxLen = 256
+
+--compileShader :: GpuProgramType -> String -> IO (Either a String)
+compileShader :: Integral a => a -> String -> IO (Either GLuint [Char])
+compileShader ptype src = do
+    shader <- glCreateShader $ fromIntegral ptype
+    setShaderSource shader [src]
+    glCompileShader shader
+
+    -- TEMP CODE
+    infoLog <- shaderInfoLog shader
+    --infoM "ResourceLibrary" $ "shader infoLog cmp " ++ infoLog
+    ok <- alloca $ \buf -> glGetShaderiv shader gl_COMPILE_STATUS buf >> peek buf
+    case ok == fromIntegral gl_TRUE of
+        False -> do
+            glDeleteShader shader
+            --errl <- GL.get GL.errors
+            return $ Right $ "shader compilation failed: " ++ infoLog -- ++ concat [show c ++ " - " ++ m ++ "\n" | GL.Error c m <- errl]
+        True  -> return $ Left shader
+
+mkGLGpuProgram :: GpuProgramType -> String -> IO (Either GLGpuProgram String)
+mkGLGpuProgram ptype src = do
+    let stype = case ptype of
+            GPT_VERTEX_PROGRAM      -> gl_VERTEX_SHADER
+            GPT_FRAGMENT_PROGRAM    -> gl_FRAGMENT_SHADER
+            GPT_GEOMETRY_PROGRAM    -> EXT.gl_GEOMETRY_SHADER
+    s <- compileShader stype src
+    case s of
+        Right m   -> return $ Right m
+        Left sh   -> return $ Left $ GLGpuProgram sh
+
+mkGLLinkedGpuProgram :: [GLGpuProgram] -> IO (Either GLLinkedGpuProgram String)
+mkGLLinkedGpuProgram pl = do
+    p <- glCreateProgram
+    forM_ (map glgpShaderObject pl) $ \sh -> glAttachShader p sh
+    glLinkProgram p
+
+    infoLog <- programInfoLog p
+    -- infoM "ResourceLibrary" $ "program infoLog cmp " ++ infoLog
+    ok <- alloca $ \buf -> glGetProgramiv p gl_LINK_STATUS buf >> peek buf
+    case ok == fromIntegral gl_TRUE of
+        False -> do
+            glDeleteProgram p
+            --errl <- GL.get GL.errors
+            return $ Right $ "GpuProgram linking failed: " ++ infoLog -- ++ concat [show c ++ " - " ++ m ++ "\n" | GL.Error c m <- errl]
+        True  -> return $ Left $ GLLinkedGpuProgram p
diff --git a/Graphics/LambdaCube/RenderSystem/GL/IndexBuffer.hs b/Graphics/LambdaCube/RenderSystem/GL/IndexBuffer.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/RenderSystem/GL/IndexBuffer.hs
@@ -0,0 +1,137 @@
+module Graphics.LambdaCube.RenderSystem.GL.IndexBuffer where
+
+import Control.Applicative
+import Control.Monad
+import Data.IORef
+import Data.Maybe
+import Data.Ord
+import Data.Word
+import Foreign
+
+import Graphics.Rendering.OpenGL.Raw.Core31
+
+import Graphics.LambdaCube.HardwareBuffer
+import Graphics.LambdaCube.HardwareIndexBuffer
+import Graphics.LambdaCube.RenderSystem.GL.Utils
+
+-- | Specialisation of HardwareIndexBuffer for GL
+data GLIndexBuffer
+    = GLIndexBuffer
+    { glibType         :: IndexType
+    , glibNumIndexes   :: Int
+
+    , glibUsage        :: Usage
+    , glibLockInfo     :: IORef (Maybe (Int,Int,Bool)) -- LockStart LockSize RequireUpdate
+
+    , glibShadowBuffer :: Maybe (Ptr Word8)
+    , glibBufferObject :: GLuint
+    }
+    deriving Eq
+
+-- TODO: inconsistent Eq vs. Ord!
+instance Ord GLIndexBuffer where
+    compare = comparing glibBufferObject
+
+instance HardwareIndexBuffer GLIndexBuffer where
+    getIndexType    = glibType
+    getNumIndexes   = glibNumIndexes
+    getIndexSize b  = case getIndexType b of
+        IT_16BIT -> 2
+        IT_32BIT -> 4
+
+instance HardwareBuffer GLIndexBuffer where
+    getSizeInBytes b    = getIndexSize b * glibNumIndexes b
+    isSystemMemory b    = 0 == glibBufferObject b
+    hasShadowBuffer b   = (isJust $ glibShadowBuffer b) && (0 /= glibBufferObject b)
+    getUsage            = glibUsage
+    isLocked            = glibIsLocked
+    unlock              = glibUnlock
+    lock                = glibLock
+
+glibIsLocked :: GLIndexBuffer -> IO Bool
+glibIsLocked b = do
+    i <- readIORef $ glibLockInfo b
+    return $ isJust i
+
+glibLock :: GLIndexBuffer -> Int -> Int -> LockOptions -> IO (Ptr Word8)
+glibLock a offs len opts = do
+    lockinfo <- readIORef (glibLockInfo a)
+    when (isJust lockinfo) $ error "Cannot lock this buffer, it is already locked!"
+    writeIORef (glibLockInfo a) $ Just (offs,len,opts /= HBL_READ_ONLY)
+    case glibShadowBuffer a of
+        Just b    -> do
+            --putStrLn "lock shadow IBO buffer"
+            return $ plusPtr b offs
+        Nothing   -> do
+            --putStrLn "lock IBO buffer"
+            glBindBuffer gl_ELEMENT_ARRAY_BUFFER $ glibBufferObject a
+            -- Discard if required
+            when (opts == HBL_DISCARD) $ glBufferData gl_ELEMENT_ARRAY_BUFFER (fromIntegral $ getSizeInBytes a) nullPtr (getGLUsage $ getUsage a)
+            let isWriteOnly = case getUsage a of
+                    HBU_WRITE_ONLY                        -> True
+                    HBU_STATIC_WRITE_ONLY                 -> True
+                    HBU_DYNAMIC_WRITE_ONLY                -> True
+                    HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE    -> True
+                    _                                     -> False
+                access = case (isWriteOnly,opts == HBL_READ_ONLY) of
+                    (False,False) -> gl_READ_WRITE
+                    (False,True)  -> gl_READ_ONLY
+                    (True,_)      -> gl_WRITE_ONLY
+            b <- glMapBuffer gl_ELEMENT_ARRAY_BUFFER access
+            case b == nullPtr of
+                True   -> error "Index Buffer: Out of memory"
+                False  -> return $ plusPtr b offs
+
+glibUnlock :: GLIndexBuffer -> IO ()
+glibUnlock a = do
+    lockinfo <- readIORef (glibLockInfo a)
+    let (lockStart,lockSize,reqUpdate) = case lockinfo of
+            Just li   -> li
+            Nothing   -> error "Cannot unlock this buffer, it is not locked!"
+    writeIORef (glibLockInfo a) Nothing
+    case glibShadowBuffer a of
+        Just b    -> when reqUpdate $ do -- If we used the shadow buffer this time...
+            --putStrLn "unlock shadow IBO buffer"
+            glBindBuffer gl_ELEMENT_ARRAY_BUFFER $ glibBufferObject a
+            case lockStart == 0 && lockSize == getSizeInBytes a of
+                True  -> glBufferData gl_ELEMENT_ARRAY_BUFFER (fromIntegral lockSize) b (getGLUsage $ getUsage a)
+                False -> glBufferSubData gl_ELEMENT_ARRAY_BUFFER (fromIntegral lockStart) (fromIntegral lockSize) b
+        Nothing   -> do
+            --putStrLn "unlock IBO buffer"
+            glBindBuffer gl_ELEMENT_ARRAY_BUFFER $ glibBufferObject a
+            ok <- glUnmapBuffer gl_ELEMENT_ARRAY_BUFFER
+            unless (ok /= (fromIntegral gl_FALSE)) $ error "Buffer data corrupted, please reload"
+
+mkGLIndexBuffer :: IndexType -> Int -> Usage -> Bool -> IO GLIndexBuffer
+mkGLIndexBuffer itype numIndexes usage useShadowBuffer = do
+    let isize = case itype of
+            IT_16BIT -> 2
+            IT_32BIT -> 4
+        bufferSize = numIndexes * isize
+    bufferObject <- alloca $ \buf -> glGenBuffers 1 buf >> peek buf
+    --putStrLn $ "IBO ID: " ++ show bufferObject
+    lockinfo <- newIORef Nothing
+    glBindBuffer gl_ELEMENT_ARRAY_BUFFER bufferObject
+    glBufferData gl_ELEMENT_ARRAY_BUFFER (fromIntegral bufferSize) nullPtr (getGLUsage usage)
+    shadowBuffer <- case useShadowBuffer of
+        True  -> Just <$> mallocBytes bufferSize
+        False -> return Nothing
+    return $ GLIndexBuffer
+        { glibType         = itype
+        , glibNumIndexes   = numIndexes
+
+        , glibUsage        = usage
+        , glibLockInfo     = lockinfo
+
+        , glibShadowBuffer = shadowBuffer
+        , glibBufferObject = bufferObject
+        }
+
+rmGLIndexBuffer :: GLIndexBuffer -> IO ()
+rmGLIndexBuffer a = do
+    case glibBufferObject a of
+        0 -> return ()
+        b -> with b $ \buf -> glDeleteBuffers 1 buf
+    case glibShadowBuffer a of
+        Just b    -> free b
+        Nothing   -> return ()
diff --git a/Graphics/LambdaCube/RenderSystem/GL/OcclusionQuery.hs b/Graphics/LambdaCube/RenderSystem/GL/OcclusionQuery.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/RenderSystem/GL/OcclusionQuery.hs
@@ -0,0 +1,43 @@
+module Graphics.LambdaCube.RenderSystem.GL.OcclusionQuery where
+
+import Foreign
+import Graphics.Rendering.OpenGL.Raw.Core31
+
+import Graphics.LambdaCube.HardwareOcclusionQuery
+
+data GLOcclusionQuery
+    = GLOcclusionQuery
+    { gloqQueryObject    :: GLuint
+    }
+
+instance HardwareOcclusionQuery GLOcclusionQuery where
+    beginOcclusionQuery     = glBeginOcclusionQuery
+    endOcclusionQuery       = glEndOcclusionQuery
+    pullOcclusionQuery      = glPullOcclusionQuery
+    isStillOutstanding      = glStillOutstanding
+
+mkGLOcclusionQuery :: IO GLOcclusionQuery
+mkGLOcclusionQuery = do
+    q <- alloca $ \buf -> glGenQueries 1 buf >> peek buf
+    return $ GLOcclusionQuery q
+
+rmGLOcclusionQuery :: GLOcclusionQuery -> IO ()
+rmGLOcclusionQuery o = case gloqQueryObject o of
+    0 -> return ()
+    b -> with b $ \buf -> glDeleteQueries 1 buf
+
+glBeginOcclusionQuery :: GLOcclusionQuery -> IO ()
+glBeginOcclusionQuery o = glBeginQuery gl_SAMPLES_PASSED $ gloqQueryObject o
+
+glEndOcclusionQuery :: GLOcclusionQuery -> IO ()
+glEndOcclusionQuery _ = glEndQuery gl_SAMPLES_PASSED
+
+glPullOcclusionQuery :: GLOcclusionQuery -> IO Int
+glPullOcclusionQuery o = do
+    n <- alloca $ \buf -> glGetQueryObjectuiv (gloqQueryObject o) gl_QUERY_RESULT buf >> peek buf
+    return $ fromIntegral n
+
+glStillOutstanding :: GLOcclusionQuery -> IO Bool
+glStillOutstanding o = do
+    b <- alloca $ \buf -> glGetQueryObjectuiv (gloqQueryObject o) gl_QUERY_RESULT_AVAILABLE buf >> peek buf
+    return $ b == fromIntegral gl_FALSE
diff --git a/Graphics/LambdaCube/RenderSystem/GL/RenderSystem.hs b/Graphics/LambdaCube/RenderSystem/GL/RenderSystem.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/RenderSystem/GL/RenderSystem.hs
@@ -0,0 +1,885 @@
+{-# LANGUAGE MultiParamTypeClasses, NamedFieldPuns #-}
+module Graphics.LambdaCube.RenderSystem.GL.RenderSystem where
+
+import Control.Monad
+import Data.IORef
+import Data.IntMap ((!))
+import Data.Maybe
+import Data.Word
+import Foreign
+import Foreign.C.String
+import qualified Data.IntMap as IntMap
+import qualified Data.Set as Set
+
+import Graphics.Rendering.OpenGL.Raw.Core31
+import qualified Graphics.Rendering.OpenGL.Raw.ARB as ARB
+import qualified Graphics.Rendering.OpenGL.Raw.EXT as EXT
+import qualified Graphics.Rendering.OpenGL.Raw.ARB.Compatibility as Compat
+
+import Graphics.LambdaCube.BlendMode
+import Graphics.LambdaCube.Common
+import Graphics.LambdaCube.HardwareIndexBuffer
+import Graphics.LambdaCube.HardwareVertexBuffer
+import Graphics.LambdaCube.Light
+import Graphics.LambdaCube.RenderOperation
+import Graphics.LambdaCube.RenderSystem
+import Graphics.LambdaCube.RenderSystem.GL.Capabilities
+import Graphics.LambdaCube.RenderSystem.GL.GpuProgram
+import Graphics.LambdaCube.RenderSystem.GL.IndexBuffer
+import Graphics.LambdaCube.RenderSystem.GL.OcclusionQuery
+import Graphics.LambdaCube.RenderSystem.GL.Texture
+import Graphics.LambdaCube.RenderSystem.GL.Utils
+import Graphics.LambdaCube.RenderSystem.GL.VertexBuffer
+import Graphics.LambdaCube.RenderSystemCapabilities
+import Graphics.LambdaCube.Texture
+import Graphics.LambdaCube.TextureUnitState
+import Graphics.LambdaCube.Types
+import Graphics.LambdaCube.VertexIndexData
+
+data GLState
+    = GLState
+    { stLight   :: (Proj4,[(Proj4,Light)])
+    , stSurface :: (FloatType4,FloatType4,FloatType4,FloatType4,FloatType,TrackVertexColourType)
+    }
+
+mkGLState :: IO (IORef GLState)
+mkGLState = do
+    let st = GLState
+            { stLight = (idmtx,[])
+            , stSurface = (c,c,c,c,0,TrackVertexColourType False False False False)
+            }
+        c = (0,0,0,0)
+    newIORef st
+
+instance Eq Proj4 where
+    a == b = fromProjective a == fromProjective b
+
+data GLRenderSystem
+    = GLRenderSystem
+    { glrsWorldMatrix   :: IORef Proj4
+    , glrsViewMatrix    :: IORef Proj4
+    , glrsCapabilities  :: RenderSystemCapabilities
+    , glrsState         :: IORef GLState
+    }
+
+mkGLRenderSystem :: IO GLRenderSystem
+mkGLRenderSystem = do
+    worldMat <- newIORef $ idmtx
+    viewMat <- newIORef $ idmtx
+    cap <- mkGLCapabilities
+    glState <- mkGLState
+
+    -- Initialize OpenGL
+    {-
+    glExtensions :: GettableStateVar [String]
+    glExtensions = makeGettableStateVar (fmap words $ getString gl_EXTENSIONS)
+
+    getString :: GLenum -> IO String
+    getString n = glGetString n >>= maybeNullPtr (return "") (peekCString . castPtr)
+
+    maybeNullPtr :: b -> (Ptr a -> b) -> Ptr a -> b
+    maybeNullPtr n f ptr | ptr == nullPtr = n
+                         | otherwise      = f ptr
+    -}
+    (major,minor) <- getGLVersion
+    extSList <- getGLExtensions
+    -- setup capabilities
+    let ext = Set.fromList extSList
+        glVer a b = major > a || (major >= a && minor >= b)
+        supports s = Set.member s ext
+        f = fromIntegral
+
+    when (glVer 1 2) $ do
+        -- Set nicer lighting model -- d3d9 has this by default
+        Compat.glLightModeli Compat.gl_LIGHT_MODEL_COLOR_CONTROL $ f Compat.gl_SEPARATE_SPECULAR_COLOR
+        Compat.glLightModeli Compat.gl_LIGHT_MODEL_LOCAL_VIEWER 1
+
+    when (glVer 1 4) $ do
+        glEnable Compat.gl_COLOR_SUM
+        glDisable gl_DITHER
+
+    -- Check for FSAA
+    when (supports "GL_ARB_multisample") $ do
+        fsaa <- getInteger ARB.gl_SAMPLE_BUFFERS
+        when (fsaa > 0) $ do
+            glEnable ARB.gl_MULTISAMPLE
+            putStrLn $ "Render System " ++ "Using FSAA from GL_ARB_multisample extension."
+
+    return $ GLRenderSystem
+        { glrsWorldMatrix   = worldMat
+        , glrsViewMatrix    = viewMat
+        , glrsCapabilities  = cap
+        , glrsState         = glState
+        }
+
+glWithFrameBuffer :: Int -> Int -> Int -> Int -> (Ptr Word8 -> IO ()) -> IO ()
+glWithFrameBuffer x y w h fn = allocaBytes (w*h*4) $ \p -> do
+    glReadPixels (fromIntegral x) (fromIntegral y) (fromIntegral w) (fromIntegral h) gl_RGBA gl_UNSIGNED_BYTE $ castPtr p
+    fn p
+{-
+copyTexImage2D :: Maybe CubeMapTarget -> Level -> PixelInternalFormat -> Position -> TextureSize2D -> Border -> IO ()
+copyTexImage2D mbCubeMap level int (Position x y) (TextureSize2D w h) border =
+   glCopyTexImage2D
+      (maybe (marshalTextureTarget Texture2D) marshalCubeMapTarget mbCubeMap) level
+      (marshalPixelInternalFormat' int) x y w h border
+-}
+glDirtyHackCopyTexImage :: GLTexture -> Int -> Int -> Int -> Int -> IO ()
+glDirtyHackCopyTexImage tex x y w h = do
+    {-
+    GL.textureBinding GL.Texture2D $= (Just $ gltxTextureObject tex)
+            -- only hint code: glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 0, 0, 128, 128, 0);
+    GL.copyTexImage2D Nothing 0 GL.RGBA' (GL.Position (fromIntegral x) (fromIntegral y)) (GL.TextureSize2D (fromIntegral w) (fromIntegral h)) 0
+    -}
+    glActiveTexture $ fromIntegral gl_TEXTURE0
+    --glEnable gl_TEXTURE_2D
+    glBindTexture gl_TEXTURE_2D $ gltxTextureObject tex
+            -- only hint code: glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 0, 0, 128, 128, 0);
+    glCopyTexImage2D gl_TEXTURE_2D 0 gl_RGBA (fromIntegral x) (fromIntegral y) (fromIntegral w) (fromIntegral h) 0
+
+instance RenderSystem GLRenderSystem GLVertexBuffer GLIndexBuffer GLOcclusionQuery GLTexture GLGpuProgram GLLinkedGpuProgram where
+    withFrameBuffer _               = glWithFrameBuffer
+    dirtyHackCopyTexImage _         = glDirtyHackCopyTexImage
+    getName _                       = "OpenGL Rendering Subsystem"
+    getCapabilities                 = glrsCapabilities
+    createVertexBuffer _            = mkGLVertexBuffer
+    createIndexBuffer _             = mkGLIndexBuffer
+    createOcclusionQuery _          = mkGLOcclusionQuery
+    createTexture rs                = mkGLTexture (glrsCapabilities rs)
+    createGpuProgram _              = mkGLGpuProgram
+    createLinkedGpuProgram _        = mkGLLinkedGpuProgram
+    bindLinkedGpuProgram _          = glBindLinkedGpuProgram
+    unbindLinkedGpuProgram _        = glUnBindLinkedGpuProgram
+    render _                        = glRender
+    bindGeometry _                  = glBindGeometry
+    unbindGeometry rs               = glUnBindGeometry (glrsCapabilities rs)
+    setViewport _ x y w h           = glSetViewport x y w h
+    setPolygonMode _ pm             = glSetPolygonMode pm
+    setWorldMatrix                  = glSetWorldMatrix
+    setViewMatrix                   = glSetViewMatrix
+    setProjectionMatrix _ m         = glSetProjectionMatrix m
+    clearFrameBuffer _ b c d s      = glClearFrameBuffer b c d s
+    setShadingType _                = glSetShadingType
+    setCullingMode _                = glSetCullingMode
+    setAlphaRejectSettings rs       = glSetAlphaRejectSettings (glrsCapabilities rs)
+    setDepthBias _                  = glSetDepthBias
+    setDepthBufferCheckEnabled _    = glSetDepthBufferCheckEnabled
+    setDepthBufferWriteEnabled _    = glSetDepthBufferWriteEnabled
+    setDepthBufferFunction _        = glSetDepthBufferFunction  --FIXME
+    setColourBufferWriteEnabled _   = glSetColourBufferWriteEnabled
+    setSurfaceParams                = glSetSurfaceParams
+    setLightingEnabled _            = glSetLightingEnabled
+    useLights                       = glUseLights
+    setFog _                        = glSetFog
+    setSceneBlending _              = glSetSceneBlending
+    setSeparateSceneBlending _      = glSetSeparateSceneBlending
+    setPointParameters              = glSetPointParameters
+    setPointSpritesEnabled rs       = glSetPointSpritesEnabled (glrsCapabilities rs)
+    setActiveTextureUnit _          = glSetActiveTextureUnit
+    setTexture _                    = glSetTexture
+    setTextureAddressingMode _      = glSetTextureAddressingMode
+    setTextureUnitFiltering _       = glSetTextureUnitFiltering
+    setTextureLayerAnisotropy _     = glSetTextureLayerAnisotropy
+    setTextureMipmapBias _          = glSetTextureMipmapBias
+    setTextureMatrix _              = glSetTextureMatrix
+    setTextureBorderColour _        = glSetTextureBorderColour
+    setTextureCoordCalculation _    = glSetTextureCoordCalculation
+    setTextureBlendMode rs          = glSetTextureBlendMode (glrsCapabilities rs)
+    getMinimumDepthInputValue _     = -1
+    getMaximumDepthInputValue _     = 1
+    prepareRender _                 = glPrepareRender
+    finishRender _                  = glFinishRender
+
+glPrepareRender :: IO ()
+glPrepareRender = do
+    Compat.glColor3f 1 1 1
+    glEnable gl_SCISSOR_TEST
+
+glFinishRender :: IO ()
+glFinishRender = do
+    Compat.glColor3f 1 1 1
+    glDisable gl_SCISSOR_TEST
+
+glSetDepthBias :: FloatType -> FloatType -> IO ()
+glSetDepthBias constantBias slopeScaleBias = case constantBias /= 0 || slopeScaleBias /= 0 of
+    True  -> do
+        glEnable gl_POLYGON_OFFSET_FILL
+        glEnable gl_POLYGON_OFFSET_POINT
+        glEnable gl_POLYGON_OFFSET_LINE
+        glPolygonOffset (realToFrac (-slopeScaleBias)) (realToFrac (-constantBias))
+    False -> do
+        glDisable gl_POLYGON_OFFSET_FILL
+        glDisable gl_POLYGON_OFFSET_POINT
+        glDisable gl_POLYGON_OFFSET_LINE
+
+glSetViewport :: Int -> Int -> Int -> Int -> IO ()
+glSetViewport x y w h = do
+    let x' = fromIntegral x
+        y' = fromIntegral y
+        w' = fromIntegral w
+        h' = fromIntegral h
+    glViewport x' y' w' h'
+    glScissor x' y' w' h' -- Configure the viewport clipping
+
+glSetPolygonMode :: PolygonMode -> IO ()
+glSetPolygonMode pm = case pm of
+    PM_POINTS     -> polygonMode gl_POINT
+    PM_WIREFRAME  -> polygonMode gl_LINE
+    PM_SOLID      -> polygonMode gl_FILL
+  where
+    polygonMode m = do
+        glPolygonMode gl_FRONT m
+        glPolygonMode gl_BACK m
+
+-- TODO: handle double type, currently it supports Float only
+glSetupMatrix :: Proj4 -> Proj4 -> IO ()
+glSetupMatrix vm wm = do
+    Compat.glMatrixMode Compat.gl_MODELVIEW
+    with (wm .*. vm) $ \mp -> do
+        Compat.glLoadMatrixf $ castPtr mp
+
+glSetWorldMatrix :: GLRenderSystem -> Proj4 -> IO ()
+glSetWorldMatrix rs wm = do
+    writeIORef (glrsWorldMatrix rs) wm
+    viewMat <- readIORef $ glrsViewMatrix rs
+    glSetupMatrix viewMat wm
+
+glSetViewMatrix :: GLRenderSystem -> Proj4 -> IO ()
+glSetViewMatrix rs vm = do
+    writeIORef (glrsViewMatrix rs) vm
+    worldMat <- readIORef $ glrsWorldMatrix rs
+    glSetupMatrix vm worldMat
+
+glSetProjectionMatrix :: Mat4 -> IO ()
+glSetProjectionMatrix pm = do
+    Compat.glMatrixMode Compat.gl_PROJECTION
+    with pm $ \pp -> do
+        Compat.glLoadMatrixf $ castPtr pp
+
+glClearFrameBuffer :: FrameBufferType -> FloatType4 -> FloatType -> Word16 -> IO ()
+glClearFrameBuffer buffers colour depth stencil = do
+    tmpColorMask    <- getBoolean4 gl_COLOR_WRITEMASK
+    tmpDepthMask    <- getBoolean gl_DEPTH_WRITEMASK
+    tmpStencilMask  <- getInteger gl_STENCIL_WRITEMASK
+    tmpScissor      <- getInteger4 gl_SCISSOR_BOX
+
+    when (fbtColour buffers) $ do
+        let (r',g',b',a')   = colour
+            (r,g,b,a)       = (f r',f g',f b',f a')
+            f               :: FloatType -> GLclampf
+            f               = realToFrac
+        glColorMask 1 1 1 1
+        glClearColor r g b a
+
+    when (fbtDepth buffers) $ do
+        let f :: FloatType -> GLclampd
+            f  = realToFrac
+        glDepthMask $ fromIntegral gl_TRUE
+        glClearDepth $ f depth
+
+    when (fbtStencil buffers) $ do
+        let f :: Word16 -> GLint
+            f  = fromIntegral
+        glStencilMask 0xFFFFFFFF
+        glClearStencil $ f stencil
+
+    let f  = fromIntegral
+    (x,y,w,h) <- getInteger4 gl_VIEWPORT
+    glScissor x y (f w) (f h)
+
+    -- HINT: workaround for a mesa gma bug
+    when (fbtColour buffers) $ glClear $ fromIntegral gl_COLOR_BUFFER_BIT
+    when (fbtDepth buffers) $ glClear $ fromIntegral gl_DEPTH_BUFFER_BIT
+    when (fbtStencil buffers) $ glClear $ fromIntegral gl_STENCIL_BUFFER_BIT
+    --GL.clear $ map fst $ filter (\(_,b) -> b) $ zip [GL.ColorBuffer, GL.DepthBuffer, GL.StencilBuffer] [fbtColour buffers, fbtDepth buffers, fbtStencil buffers]
+
+    let uncurry4 mf (a,b,c,d) = mf (fromIntegral a) (fromIntegral b) (fromIntegral c) (fromIntegral d)
+        uncurry4b mf (a,b,c,d) = mf (a) (b) (c) (d)
+    uncurry4 glScissor tmpScissor
+    glDepthMask $ fromIntegral tmpDepthMask
+    uncurry4b glColorMask tmpColorMask
+    glStencilMask $ fromIntegral tmpStencilMask
+
+glBindGeometry :: (Texture t) => RenderOperation GLVertexBuffer GLIndexBuffer -> [TextureUnitState t] -> IO ()
+glBindGeometry ro tl = do
+    let multitexturing  = True -- 1 < (rscNumTextureUnits rcap)
+        vertexData      = roVertexData ro
+        decl            = vdVertexDeclaration vertexData
+        checkBinding e  = case vdVertexBufferBinding vertexData of
+            VertexBufferBinding bm -> veSource e `IntMap.member` bm
+    --  bind vertex elements
+    mapM_ (bindElement ro tl) $ filter checkBinding $ vdElementList decl
+
+    when multitexturing $ Compat.glClientActiveTexture gl_TEXTURE0
+    --  bind index data and call draw operation
+    case roIndexData ro of
+        Just indexData    -> glBindBuffer gl_ELEMENT_ARRAY_BUFFER $ glibBufferObject $ idIndexBuffer indexData
+        Nothing           -> return ()
+
+    return ()
+
+glUnBindGeometry :: RenderSystemCapabilities -> RenderOperation GLVertexBuffer GLIndexBuffer -> IO ()
+glUnBindGeometry rsc _ro = do
+    let multitexturing  = True -- 1 < (rscNumTextureUnits rcap)
+        f = fromIntegral
+
+    Compat.glDisableClientState Compat.gl_VERTEX_ARRAY
+    -- only valid up to GL_MAX_TEXTURE_UNITS, which is recorded in mFixedFunctionTextureUnits
+    case multitexturing of
+        True  -> do
+            forM_ [0..(rscNumTextureUnits rsc - 1)] $ \stage -> do
+                Compat.glClientActiveTexture $ fromIntegral gl_TEXTURE0 + f stage
+                Compat.glDisableClientState Compat.gl_TEXTURE_COORD_ARRAY
+            Compat.glClientActiveTexture gl_TEXTURE0
+        False -> Compat.glDisableClientState Compat.gl_TEXTURE_COORD_ARRAY
+    Compat.glDisableClientState Compat.gl_NORMAL_ARRAY
+    Compat.glDisableClientState Compat.gl_COLOR_ARRAY
+    Compat.glDisableClientState Compat.gl_SECONDARY_COLOR_ARRAY
+
+    -- unbind any custom attributes
+
+    -- unbind buffers
+    glBindBuffer gl_ELEMENT_ARRAY_BUFFER 0
+    glBindBuffer gl_ARRAY_BUFFER 0
+    return ()
+
+-- _render :: RenderSystemCapabilities -> RenderOperation -> IO ()
+--glRender :: Int -> GLRenderState -> RenderOperation -> IO GLRenderState
+--glRender :: (HardwareVertexBuffer vb, HardwareIndexBuffer ib) => Int -> RenderOperation vb ib -> IO ()
+glRender :: RenderOperation GLVertexBuffer GLIndexBuffer -> IO ()
+glRender ro = do
+    -- TODO:
+    let vertexData      = roVertexData ro
+        --multitexturing  = True -- 1 < (rscNumTextureUnits rcap)
+        --Use adjacency if there is a geometry program and it requested adjacency info
+        -- TODO
+        --bool useAdjacency = (mGeometryProgramBound && mCurrentGeometryProgram->isAdjacencyInfoRequired());
+        primType        = case roOperationType ro of -- Find the correct type to render
+            OT_POINT_LIST     -> gl_POINTS
+            OT_LINE_LIST      -> gl_LINES
+            OT_LINE_STRIP     -> gl_LINE_STRIP
+            OT_TRIANGLE_LIST  -> gl_TRIANGLES
+            OT_TRIANGLE_STRIP -> gl_TRIANGLE_STRIP
+            OT_TRIANGLE_FAN   -> gl_TRIANGLE_FAN
+
+    --  bind index data and call draw operation
+    case roIndexData ro of
+        Just indexData  -> do
+            let indexBuffer = idIndexBuffer indexData
+                dp          = if 0 /= glibBufferObject indexBuffer then nullPtr else fromMaybe (error "fromJust 7") $ glibShadowBuffer indexBuffer
+                pBufferData = plusPtr dp $ idIndexStart indexData * getIndexSize indexBuffer
+                indexType   = if getIndexType indexBuffer == IT_16BIT then gl_UNSIGNED_SHORT else gl_UNSIGNED_INT
+                --putStrLn $ "glDrawElements (VBI) buf ptr: " ++ show dp ++ " data ptr: " ++ show pBufferData
+            glDrawElements primType (fromIntegral (idIndexCount indexData)) indexType pBufferData
+        Nothing -> do
+            --putStrLn $ "glDrawArrays (VBI)"
+            glDrawArrays primType 0 (fromIntegral (vdVertexCount vertexData))
+
+bindElement :: (Texture t, HardwareIndexBuffer ib) => RenderOperation GLVertexBuffer ib -> [TextureUnitState t] -> VertexElement  -> IO ()
+bindElement rop tl elem = do
+    let vertexData      = roVertexData $ rop
+
+    case vdVertexBufferBinding vertexData of
+        VertexBufferBinding bm -> let vertexBuffer = bm ! (veSource elem) in do
+            dp <- case glvbBufferObject vertexBuffer of
+                0 -> do
+                    return $ fromMaybe (error "fromJust 8") $ glvbShadowBuffer vertexBuffer
+                b -> do
+                    glBindBuffer gl_ARRAY_BUFFER b
+                    return nullPtr
+
+            let pBufferData     = plusPtr dp $ vdVertexStart vertexData * getVertexSize vertexBuffer + veOffset elem
+                sem             = veSemantic elem
+                isCustomAttrib  = False
+                bindWith t     = t (fromIntegral . getTypeCount . veType $ elem) (getGLType . veType $ elem) (fromIntegral . getVertexSize $ vertexBuffer) pBufferData
+                bindWith' t    = t (getGLType . veType $ elem) (fromIntegral . getVertexSize $ vertexBuffer) pBufferData
+            --putStrLn $ show sem ++ " (VBO) buf ptr: " ++ show dp ++ " data ptr: " ++ show pBufferData
+            --bind vertexBuffer
+            case isCustomAttrib of
+                True  -> do
+                    -- Custom attribute support
+                    -- tangents, binormals, blendweights etc always via this route
+                    -- builtins may be done this way too
+                    let attrib = fromIntegral . getFixedAttributeIndex sem $ veIndex elem
+                        normalised = case veType elem of
+                            VET_COLOUR_ABGR -> gl_TRUE
+                            VET_COLOUR_ARGB -> gl_TRUE
+                            _               -> gl_FALSE
+                    glVertexAttribPointer attrib (fromIntegral . getTypeCount . veType $ elem) (getGLType . veType $ elem) (fromIntegral normalised) (fromIntegral . getVertexSize $ vertexBuffer) pBufferData
+                    glEnableVertexAttribArray attrib
+                    --attribsBound.push_back(attrib);
+                False -> case sem of -- fixed-function & builtin attribute support
+                    VES_POSITION              -> bindWith Compat.glVertexPointer >> Compat.glEnableClientState Compat.gl_VERTEX_ARRAY
+                    VES_NORMAL                -> bindWith' Compat.glNormalPointer >> Compat.glEnableClientState Compat.gl_NORMAL_ARRAY
+                    VES_DIFFUSE               -> bindWith Compat.glColorPointer >> Compat.glEnableClientState Compat.gl_COLOR_ARRAY
+                    VES_SPECULAR              -> bindWith Compat.glSecondaryColorPointer >> Compat.glEnableClientState Compat.gl_SECONDARY_COLOR_ARRAY
+                    VES_TEXTURE_COORDINATES   -> do
+                    -- TODO
+                        let idx = veIndex elem
+                            tus = map fst $ filter (\(_,a)-> idx==a) $ zip [0 :: Int ..] $ map tusTextureCoordSetIndex tl
+                        forM_ tus $ \tidx -> do
+                            --print $ "bind stage="++show tidx ++ " texcoord="++show idx
+                            Compat.glClientActiveTexture $ fromIntegral gl_TEXTURE0 + fromIntegral tidx
+                            bindWith Compat.glTexCoordPointer >> Compat.glEnableClientState Compat.gl_TEXTURE_COORD_ARRAY
+                    _ -> error "bindElement"
+
+glSetShadingType :: ShadeOptions -> IO ()
+glSetShadingType so = case so of
+    SO_FLAT   -> Compat.glShadeModel Compat.gl_FLAT
+    _         -> Compat.glShadeModel Compat.gl_SMOOTH
+
+glSetAlphaRejectSettings :: RenderSystemCapabilities -> CompareFunction -> Int  -> Bool -> IO ()
+glSetAlphaRejectSettings rsc func value alphaToCoverage = do
+    let caps    = rscCapabilities rsc
+        f       = fromIntegral :: Int -> GLclampf
+    case func == CMPF_ALWAYS_PASS of
+        { True  -> do
+            glDisable Compat.gl_ALPHA_TEST
+            when (Set.member RSC_ALPHA_TO_COVERAGE caps) $ glDisable gl_SAMPLE_ALPHA_TO_COVERAGE
+        ; False -> do
+            glEnable Compat.gl_ALPHA_TEST
+            Compat.glAlphaFunc (convertCompareFunction func) (f value / 255)
+            when (Set.member RSC_ALPHA_TO_COVERAGE caps) $ case alphaToCoverage of
+                True    -> glEnable gl_SAMPLE_ALPHA_TO_COVERAGE
+                False   -> glDisable gl_SAMPLE_ALPHA_TO_COVERAGE
+        }
+
+glSetDepthBufferCheckEnabled :: Bool -> IO ()
+glSetDepthBufferCheckEnabled enabled = case enabled of
+    { True  -> glClearDepth 1 >> glEnable gl_DEPTH_TEST
+    ; False -> glDisable gl_DEPTH_TEST
+    }
+
+glSetDepthBufferWriteEnabled :: Bool -> IO ()
+glSetDepthBufferWriteEnabled enabled = case enabled of
+    { True  -> glDepthMask $ fromIntegral gl_TRUE
+    ; False -> glDepthMask $ fromIntegral gl_FALSE
+    }
+
+glSetDepthBufferFunction :: CompareFunction -> IO ()
+glSetDepthBufferFunction func = glDepthFunc $ convertCompareFunction func
+
+glSetPointSpritesEnabled :: RenderSystemCapabilities -> Bool -> IO ()
+glSetPointSpritesEnabled rsc enabled = when (Set.member RSC_POINT_SPRITES $ rscCapabilities rsc) $ do
+    case enabled of
+        { True  -> glEnable Compat.gl_POINT_SPRITE
+        ; False -> glDisable Compat.gl_POINT_SPRITE
+        }
+    let en = if enabled then gl_TRUE else gl_FALSE
+    -- Set sprite texture coord generation
+    -- Don't offer this as an option since D3D links it to sprite enabled
+    forM_ [0..rscNumTextureUnits rsc] $ \i -> do
+        glActiveTexture $ fromIntegral gl_TEXTURE0 + fromIntegral i
+        Compat.glTexEnvi Compat.gl_POINT_SPRITE Compat.gl_COORD_REPLACE $ fromIntegral en
+    glActiveTexture $ fromIntegral gl_TEXTURE0
+
+glSetSceneBlending :: SceneBlendFactor -> SceneBlendFactor -> SceneBlendOperation -> IO ()
+glSetSceneBlending sourceFactor destFactor op = do
+    case sourceFactor == SBF_ONE && destFactor == SBF_ZERO of
+        { True  -> glDisable gl_BLEND
+        ; False -> do
+            glEnable gl_BLEND
+            glBlendFunc (getBlendMode sourceFactor) (getBlendMode destFactor)
+        }
+    glBlendEquation $ getBlendEquation op
+
+glSetSurfaceParams :: GLRenderSystem -> FloatType4 -> FloatType4 -> FloatType4 -> FloatType4 -> FloatType -> TrackVertexColourType -> IO ()
+glSetSurfaceParams rs ambient diffuse specular emissive shininess tc@(TrackVertexColourType a d s e) = do
+    st@GLState { stSurface } <- readIORef $ glrsState rs
+    let newSt = (ambient, diffuse, specular, emissive, shininess, tc)
+    when (stSurface /= newSt) $ do
+        writeIORef (glrsState rs) $ st { stSurface = newSt }
+        -- Track vertex colour
+        -- There are actually 15 different combinations for tracking, of which
+        -- GL only supports the most used 5. This means that we have to do some
+        -- magic to find the best match. NOTE:
+        --  GL_AMBIENT_AND_DIFFUSE != GL_AMBIENT | GL__DIFFUSE
+        case (a,d,s,e) of
+            (False,False,False,False) -> glDisable Compat.gl_COLOR_MATERIAL
+            (True,True,_,_)           -> glEnable Compat.gl_COLOR_MATERIAL >> Compat.glColorMaterial gl_FRONT_AND_BACK Compat.gl_AMBIENT_AND_DIFFUSE
+            (True,False,_,_)          -> glEnable Compat.gl_COLOR_MATERIAL >> Compat.glColorMaterial gl_FRONT_AND_BACK Compat.gl_AMBIENT
+            (_,True,_,_)              -> glEnable Compat.gl_COLOR_MATERIAL >> Compat.glColorMaterial gl_FRONT_AND_BACK Compat.gl_DIFFUSE
+            (_,_,True,_)              -> glEnable Compat.gl_COLOR_MATERIAL >> Compat.glColorMaterial gl_FRONT_AND_BACK Compat.gl_SPECULAR
+            (_,_,_,True)              -> glEnable Compat.gl_COLOR_MATERIAL >> Compat.glColorMaterial gl_FRONT_AND_BACK Compat.gl_EMISSION
+        let f           = realToFrac
+            c (r,g,b,a') = [f r, f g, f b, f a']
+        withArray (c diffuse) $ \p -> Compat.glMaterialfv gl_FRONT_AND_BACK Compat.gl_DIFFUSE p
+        withArray (c ambient) $ \p -> Compat.glMaterialfv gl_FRONT_AND_BACK Compat.gl_AMBIENT p
+        withArray (c specular) $ \p -> Compat.glMaterialfv gl_FRONT_AND_BACK Compat.gl_SPECULAR p
+        withArray (c emissive) $ \p -> Compat.glMaterialfv gl_FRONT_AND_BACK Compat.gl_EMISSION p
+        Compat.glMaterialf gl_FRONT_AND_BACK Compat.gl_SHININESS $ f shininess
+
+glSetLightingEnabled :: Bool -> IO ()
+glSetLightingEnabled enabled = case enabled of
+    True  -> glEnable Compat.gl_LIGHTING
+    False -> glDisable Compat.gl_LIGHTING
+
+glSetFog :: FogMode -> FloatType4 -> FloatType -> FloatType -> FloatType -> IO ()
+glSetFog mode (r,g,b,a) density start end = case mode of
+    FOG_NONE  -> glDisable Compat.gl_FOG
+    FOG_EXP   -> setFog $ fromIntegral Compat.gl_EXP
+    FOG_EXP2  -> setFog $ fromIntegral Compat.gl_EXP2
+    FOG_LINEAR-> setFog $ fromIntegral gl_LINEAR
+  where
+    f = realToFrac
+    setFog fm = withArray [r,g,b,a] $ \p -> do
+        glEnable Compat.gl_FOG
+        Compat.glFogi Compat.gl_FOG_MODE fm
+        Compat.glFogfv Compat.gl_FOG_COLOR $ castPtr p
+        Compat.glFogf Compat.gl_FOG_DENSITY $ f density
+        Compat.glFogf Compat.gl_FOG_START $ f start
+        Compat.glFogf Compat.gl_FOG_END $ f end
+
+glSetSeparateSceneBlending :: SceneBlendFactor -> SceneBlendFactor -> SceneBlendFactor -> SceneBlendFactor -> SceneBlendOperation -> SceneBlendOperation -> IO ()
+glSetSeparateSceneBlending sourceFactor destFactor sourceFactorAlpha destFactorAlpha op alphaOp = do
+    case sourceFactor == SBF_ONE && destFactor == SBF_ZERO &&
+            sourceFactorAlpha == SBF_ONE && destFactorAlpha == SBF_ZERO of
+        True  -> glDisable gl_BLEND
+        False -> do
+          let f = getBlendMode
+          glEnable gl_BLEND
+          glBlendFuncSeparate (f sourceFactor)  (f sourceFactorAlpha) (f destFactor) (f destFactorAlpha)
+    glBlendEquationSeparate (getBlendEquation op) (getBlendEquation alphaOp)
+
+glSetPointParameters :: (RenderSystem rs vb ib q t p lp) => rs -> FloatType  -> Bool -> FloatType -> FloatType -> FloatType -> FloatType -> FloatType -> IO ()
+glSetPointParameters rs size attenuationEnabled constant linear quadratic minSize maxSize = do
+    let rsc     = getCapabilities rs
+        caps    = rscCapabilities rsc
+        f = realToFrac
+    (size',_minSize',_maxSize',val') <- case attenuationEnabled of
+        True  -> do
+            when (Set.member RSC_VERTEX_PROGRAM caps) $
+                glEnable gl_VERTEX_PROGRAM_POINT_SIZE
+            let correction = 0.005
+            return (size,minSize,if maxSize == 0 then rscMaxPointSize rsc else maxSize,[f $ constant,f $ linear * correction,f $ quadratic * correction,1])
+        False -> do
+            when (Set.member RSC_VERTEX_PROGRAM caps) $
+                glDisable gl_VERTEX_PROGRAM_POINT_SIZE
+            return (size,minSize,if maxSize == 0 then rscMaxPointSize rsc else maxSize,[1,0,0,1])
+    --no scaling required
+    -- GL has no disabled flag for this so just set to constant
+    glPointSize $ f size'
+    withArray val' $ \val -> case Set.member RSC_POINT_EXTENDED_PARAMETERS caps of
+        True    -> do
+            glPointParameterfv Compat.gl_POINT_DISTANCE_ATTENUATION val
+            glPointParameterf Compat.gl_POINT_SIZE_MIN $ f minSize
+            glPointParameterf Compat.gl_POINT_SIZE_MAX $ f maxSize
+        False   -> case Set.member RSC_POINT_EXTENDED_PARAMETERS_ARB caps of
+            True    -> do
+                ARB.glPointParameterfv Compat.gl_POINT_DISTANCE_ATTENUATION val
+                ARB.glPointParameterf Compat.gl_POINT_SIZE_MIN $ f minSize
+                ARB.glPointParameterf Compat.gl_POINT_SIZE_MAX $ f maxSize
+            False   -> case Set.member RSC_POINT_EXTENDED_PARAMETERS_EXT caps of
+                True    -> do
+                    EXT.glPointParameterfv Compat.gl_POINT_DISTANCE_ATTENUATION val
+                    EXT.glPointParameterf Compat.gl_POINT_SIZE_MIN $ f minSize
+                    EXT.glPointParameterf Compat.gl_POINT_SIZE_MAX $ f maxSize
+                False   -> return ()
+
+glSetActiveTextureUnit :: Int -> IO ()
+glSetActiveTextureUnit stage = do
+    let f = fromIntegral
+    glActiveTexture $ fromIntegral $ gl_TEXTURE0 + f stage
+
+glSetTexture :: Maybe GLTexture -> IO ()
+glSetTexture tex = do
+    glDisable gl_TEXTURE_1D
+    glBindTexture gl_TEXTURE_1D 0
+
+    glDisable gl_TEXTURE_2D
+    glBindTexture gl_TEXTURE_2D 0
+
+    glDisable gl_TEXTURE_3D
+    glBindTexture gl_TEXTURE_3D 0
+
+    glDisable gl_TEXTURE_CUBE_MAP
+    glBindTexture gl_TEXTURE_CUBE_MAP 0
+    case tex of
+        Just t    -> do
+            --TEMP CODE
+            let target = getGLTextureTarget $ txTextureType t
+            glEnable target
+            glBindTexture target $ gltxTextureObject t
+        Nothing   -> return ()
+            --TODO
+
+glUseLights :: GLRenderSystem -> [(Proj4,Light)] -> IO ()
+glUseLights rs lights = do
+    viewMat <- readIORef $ glrsViewMatrix rs
+    worldMat <- readIORef $ glrsWorldMatrix rs
+    st@GLState { stLight } <- readIORef $ glrsState rs
+    when (stLight /= (worldMat, lights)) $ do
+        writeIORef (glrsState rs) $ st { stLight = (worldMat,lights) }
+        glSetupMatrix viewMat idmtx
+
+        -- disable unused lights
+        forM_ [length lights..7] $ \i -> glDisable $ Compat.gl_LIGHT0 + fromIntegral i
+
+        forM_ (zip [0..] $ take 8 lights) $ \(i,(mt,lt)) -> do
+            let gl_index = Compat.gl_LIGHT0 + i
+                rad2deg = 180 / pi
+                f = realToFrac
+                c (r,g,b,a) = [f r, f g, f b, f a]
+                pos1 = _4 $ fromProjective mt
+                --pos0 = extendZero $ (trim pos1 :: Vec3) :: Vec4
+
+            case lgType lt of
+                LT_SPOTLIGHT    -> do
+                    Compat.glLightf gl_index Compat.gl_SPOT_CUTOFF $ realToFrac $ 0.5 * rad2deg * lgSpotOuter lt
+                    Compat.glLightf gl_index Compat.gl_SPOT_EXPONENT $ realToFrac $ lgSpotFalloff lt
+                _ -> Compat.glLightf gl_index Compat.gl_SPOT_CUTOFF 180
+
+            withArray (c $ lgDiffuse lt) $ \p ->
+                Compat.glLightfv gl_index Compat.gl_DIFFUSE p
+
+            withArray (c $ lgSpecular lt) $ \p ->
+                Compat.glLightfv gl_index Compat.gl_SPECULAR p
+
+            -- Disable ambient light for movables
+            withArray [0,0,0,1] $ \p ->
+                Compat.glLightfv gl_index Compat.gl_AMBIENT p
+
+            -- Set position / direction
+            let pos = if lgType lt == LT_DIRECTIONAL then neg dir4 else pos1
+                dir4 = (extendZero $ lgDirection lt :: Vec4) .* (fromProjective mt)
+            --putStrLn $ show (lgType lt) ++ " glPos: " ++ show pos
+            --putStrLn $ " glMat: " ++ show mt
+            with pos $ \p ->
+                Compat.glLightfv gl_index Compat.gl_POSITION $ castPtr p
+
+            -- Set spotlight direction
+            when (lgType lt == LT_SPOTLIGHT) $ with dir4 $ \p ->
+                Compat.glLightfv gl_index Compat.gl_SPOT_DIRECTION $ castPtr p
+
+            -- Attenuation
+            Compat.glLightf gl_index Compat.gl_CONSTANT_ATTENUATION $ realToFrac $ lgAttenuationConst lt
+            Compat.glLightf gl_index Compat.gl_LINEAR_ATTENUATION $ realToFrac $ lgAttenuationLinear lt
+            Compat.glLightf gl_index Compat.gl_QUADRATIC_ATTENUATION $ realToFrac $ lgAttenuationQuad lt
+            -- Enable in the scene
+            --putStrLn $ "setup light " ++ show i ++ " pos: " ++ show pos
+            glEnable gl_index
+        glSetupMatrix viewMat worldMat
+
+glSetTextureAddressingMode :: TextureType -> UVWAddressingMode -> IO ()
+glSetTextureAddressingMode texTarget (UVWAddressingMode u v w) = do
+    let target = getGLTextureTarget texTarget
+    glTexParameteri target gl_TEXTURE_WRAP_S $ fromIntegral $ getTextureAddressingMode u
+    glTexParameteri target gl_TEXTURE_WRAP_T $ fromIntegral $ getTextureAddressingMode v
+    glTexParameteri target gl_TEXTURE_WRAP_R $ fromIntegral $ getTextureAddressingMode w
+
+glSetTextureBorderColour :: TextureType -> FloatType4 -> IO ()
+glSetTextureBorderColour texTarget (r,g,b,a) = withArray [r,g,b,a] $ \p -> do
+    let target = getGLTextureTarget texTarget
+    glTexParameterfv target gl_TEXTURE_BORDER_COLOR $ castPtr p
+
+glSetTextureUnitFiltering :: TextureType  -> FilterOptions  -> FilterOptions -> FilterOptions -> IO ()
+glSetTextureUnitFiltering texTarget minFilter magFilter mipFilter = do
+    let target  = getGLTextureTarget texTarget
+        mag     = case magFilter of
+            FO_ANISOTROPIC    -> gl_LINEAR
+            FO_LINEAR         -> gl_LINEAR
+            FO_POINT          -> gl_NEAREST
+            FO_NONE           -> gl_NEAREST
+        min'    = case minFilter of
+            FO_ANISOTROPIC    -> FO_LINEAR
+            FO_LINEAR         -> FO_LINEAR
+            FO_POINT          -> FO_POINT
+            FO_NONE           -> FO_POINT
+        mip     = case mipFilter of
+            FO_ANISOTROPIC    -> Just FO_LINEAR
+            FO_LINEAR         -> Just FO_LINEAR
+            FO_POINT          -> Just FO_POINT
+            FO_NONE           -> Nothing
+        min'' = case (min',mip) of
+            (FO_POINT,    Nothing)        -> gl_NEAREST
+            (FO_LINEAR,   Nothing)        -> gl_LINEAR
+            (FO_POINT,    Just FO_POINT)  -> gl_NEAREST_MIPMAP_NEAREST
+            (FO_LINEAR,   Just FO_POINT)  -> gl_LINEAR_MIPMAP_NEAREST
+            (FO_POINT,    Just FO_LINEAR) -> gl_NEAREST_MIPMAP_LINEAR
+            (FO_LINEAR,   Just FO_LINEAR) -> gl_LINEAR_MIPMAP_LINEAR
+            _                             -> error "glSetTextureUnitFiltering"
+    glTexParameteri target gl_TEXTURE_MAG_FILTER $ fromIntegral mag
+    glTexParameteri target gl_TEXTURE_MIN_FILTER $ fromIntegral min''
+
+glSetTextureLayerAnisotropy :: TextureType -> Int -> IO ()
+glSetTextureLayerAnisotropy texTarget maxAnisotropy = do
+    largest_supported_anisotropy <- alloca $ \p-> do
+        glGetFloatv EXT.gl_MAX_TEXTURE_MAX_ANISOTROPY p
+        peek p
+    let target = getGLTextureTarget texTarget
+        maxAnisotropy' = if fromIntegral maxAnisotropy > largest_supported_anisotropy then largest_supported_anisotropy else fromIntegral maxAnisotropy
+    glTexParameterf target EXT.gl_TEXTURE_MAX_ANISOTROPY maxAnisotropy'
+
+glSetTextureMipmapBias :: FloatType -> IO ()
+glSetTextureMipmapBias bias = do
+    Compat.glTexEnvf EXT.gl_TEXTURE_FILTER_CONTROL EXT.gl_TEXTURE_LOD_BIAS $ realToFrac bias
+
+{-
+doc: http://www.informit.com/articles/article.aspx?p=770639&seqNum=6
+FIXME: Test this code
+-}
+
+glSetTextureBlendMode :: RenderSystemCapabilities -> LayerBlendModeEx -> LayerBlendModeEx -> IO ()
+glSetTextureBlendMode rsc colorbm alphabm = do
+    let caps    = rscCapabilities rsc
+        hasDot3 = Set.member RSC_DOT3 caps
+        csrc1op = getLayerBlendSource $ lbSource1 colorbm
+        csrc2op = getLayerBlendSource $ lbSource2 colorbm
+        ccmd    = getTextureCombineFunction hasDot3 $ lbOperation colorbm
+        asrc1op = getLayerBlendSource $ lbSource1 alphabm
+        asrc2op = getLayerBlendSource $ lbSource2 alphabm
+        acmd    = getTextureCombineFunction hasDot3 $ lbOperation alphabm
+        f       = realToFrac
+        src2Fun m = do
+            Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_SOURCE2_RGB m
+            Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_SOURCE2_ALPHA m
+        cf (r,g,b,a) = [f r, f g, f b, f a]
+        alphaCol (r,g,b,_) a = cf (r, g, b, a)
+
+    -- Color blending
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_TEXTURE_ENV_MODE $ fromIntegral Compat.gl_COMBINE
+
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_COMBINE_RGB $ fromIntegral ccmd
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_SOURCE0_RGB $ fromIntegral csrc1op
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_SOURCE1_RGB $ fromIntegral csrc2op
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_SOURCE2_RGB $ fromIntegral Compat.gl_CONSTANT
+
+    case lbOperation colorbm of
+        LBX_BLEND_DIFFUSE_COLOUR    -> src2Fun $ fromIntegral Compat.gl_PRIMARY_COLOR
+        LBX_BLEND_DIFFUSE_ALPHA     -> src2Fun $ fromIntegral Compat.gl_PRIMARY_COLOR
+        LBX_BLEND_TEXTURE_ALPHA     -> src2Fun $ fromIntegral gl_TEXTURE
+        LBX_BLEND_CURRENT_ALPHA     -> src2Fun $ fromIntegral Compat.gl_PREVIOUS
+        LBX_BLEND_MANUAL            -> withArray [0, 0, 0, realToFrac $ lbFactor colorbm] $ \p ->
+            Compat.glTexEnvfv Compat.gl_TEXTURE_ENV Compat.gl_TEXTURE_ENV_COLOR p
+        LBX_MODULATE_X2             -> Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_RGB_SCALE 2
+        LBX_MODULATE_X4             -> Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_RGB_SCALE 4
+        _                           -> Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_RGB_SCALE 1
+
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_OPERAND0_RGB $ fromIntegral gl_SRC_COLOR
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_OPERAND1_RGB $ fromIntegral gl_SRC_COLOR
+    case lbOperation colorbm of
+        LBX_BLEND_DIFFUSE_COLOUR    -> Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_OPERAND2_RGB $ fromIntegral gl_SRC_COLOR
+        _                           -> Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_OPERAND2_RGB $ fromIntegral gl_SRC_ALPHA
+
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_OPERAND0_ALPHA $ fromIntegral gl_SRC_ALPHA
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_OPERAND1_ALPHA $ fromIntegral gl_SRC_ALPHA
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_OPERAND2_ALPHA $ fromIntegral gl_SRC_ALPHA
+    when (lbSource1 colorbm == LBS_MANUAL) $ withArray (cf $ lbColourArg1 colorbm) $ \p -> Compat.glTexEnvfv Compat.gl_TEXTURE_ENV Compat.gl_TEXTURE_ENV_COLOR p
+    when (lbSource2 colorbm == LBS_MANUAL) $ withArray (cf $ lbColourArg2 colorbm) $ \p -> Compat.glTexEnvfv Compat.gl_TEXTURE_ENV Compat.gl_TEXTURE_ENV_COLOR p
+
+    -- Alpha blending
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_TEXTURE_ENV_MODE $ fromIntegral Compat.gl_COMBINE
+
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_COMBINE_ALPHA $ fromIntegral acmd
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_SOURCE0_ALPHA $ fromIntegral asrc1op
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_SOURCE1_ALPHA $ fromIntegral asrc2op
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_SOURCE2_ALPHA $ fromIntegral Compat.gl_CONSTANT
+
+    case lbOperation alphabm of
+        LBX_BLEND_DIFFUSE_COLOUR    -> src2Fun $ fromIntegral Compat.gl_PRIMARY_COLOR
+        LBX_BLEND_DIFFUSE_ALPHA     -> src2Fun $ fromIntegral Compat.gl_PRIMARY_COLOR
+        LBX_BLEND_TEXTURE_ALPHA     -> src2Fun $ fromIntegral gl_TEXTURE
+        LBX_BLEND_CURRENT_ALPHA     -> src2Fun $ fromIntegral Compat.gl_PREVIOUS
+        LBX_BLEND_MANUAL            -> withArray [0, 0, 0, realToFrac $ lbFactor alphabm] $ \p ->
+            Compat.glTexEnvfv Compat.gl_TEXTURE_ENV Compat.gl_TEXTURE_ENV_COLOR p
+        LBX_MODULATE_X2             -> Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_ALPHA_SCALE 2
+        LBX_MODULATE_X4             -> Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_ALPHA_SCALE 4
+        _                           -> Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_ALPHA_SCALE 1
+
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_OPERAND0_ALPHA $ fromIntegral gl_SRC_ALPHA
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_OPERAND1_ALPHA $ fromIntegral gl_SRC_ALPHA
+    Compat.glTexEnvi Compat.gl_TEXTURE_ENV Compat.gl_OPERAND2_ALPHA $ fromIntegral gl_SRC_ALPHA
+    when (lbSource1 alphabm == LBS_MANUAL) $ withArray (alphaCol (lbColourArg1 colorbm) (lbAlphaArg1 alphabm)) $ \p -> Compat.glTexEnvfv Compat.gl_TEXTURE_ENV Compat.gl_TEXTURE_ENV_COLOR p
+    when (lbSource2 alphabm == LBS_MANUAL) $ withArray (alphaCol (lbColourArg2 colorbm) (lbAlphaArg2 alphabm)) $ \p -> Compat.glTexEnvfv Compat.gl_TEXTURE_ENV Compat.gl_TEXTURE_ENV_COLOR p
+
+glSetCullingMode :: CullingMode -> IO ()
+glSetCullingMode mode = case mode of
+    CULL_NONE             -> glDisable gl_CULL_FACE
+    CULL_CLOCKWISE        -> glEnable gl_CULL_FACE >> glCullFace gl_BACK
+    CULL_ANTICLOCKWISE    -> glEnable gl_CULL_FACE >> glCullFace gl_FRONT
+
+glSetColourBufferWriteEnabled :: Bool -> Bool -> Bool -> Bool -> IO ()
+glSetColourBufferWriteEnabled r g b a = do
+    let f = fromBool
+    glColorMask (f r) (f g) (f b) (f a)
+
+glBindLinkedGpuProgram :: GLLinkedGpuProgram -> IO ()
+glBindLinkedGpuProgram lp = do
+    let p = gllgpProgramObject lp
+        withGLString :: String -> (Ptr GLchar -> IO a) -> IO a
+        withGLString s act = withCAString s $ act . castPtr
+    glUseProgram p
+    --TEMP CODE
+
+    loc_tex0 <- withGLString "tex0" $ glGetUniformLocation p
+    loc_tex1 <- withGLString "tex1" $ glGetUniformLocation p
+    glUniform1i loc_tex0 0
+    glUniform1i loc_tex1 1
+
+glUnBindLinkedGpuProgram :: IO ()
+glUnBindLinkedGpuProgram = glUseProgram 0
+
+glSetTextureMatrix :: Proj4 -> IO ()
+glSetTextureMatrix xform = do
+    Compat.glMatrixMode gl_TEXTURE
+    with xform $ \p -> do
+        Compat.glLoadMatrixf $ castPtr p
+
+glSetTextureCoordCalculation :: TexCoordCalcMethod -> IO ()
+glSetTextureCoordCalculation m = case m of
+    TEXCALC_NONE -> do
+        glDisable Compat.gl_TEXTURE_GEN_S
+        glDisable Compat.gl_TEXTURE_GEN_T
+        glDisable Compat.gl_TEXTURE_GEN_R
+        glDisable Compat.gl_TEXTURE_GEN_Q
+
+    TEXCALC_ENVIRONMENT_MAP   -> do
+        Compat.glTexGeni Compat.gl_S Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_SPHERE_MAP
+        Compat.glTexGeni Compat.gl_T Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_SPHERE_MAP
+
+        glEnable Compat.gl_TEXTURE_GEN_S
+        glEnable Compat.gl_TEXTURE_GEN_T
+        glDisable Compat.gl_TEXTURE_GEN_R
+        glDisable Compat.gl_TEXTURE_GEN_Q
+
+    TEXCALC_ENVIRONMENT_MAP_PLANAR -> do
+        Compat.glTexGeni Compat.gl_S Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_SPHERE_MAP
+        Compat.glTexGeni Compat.gl_T Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_SPHERE_MAP
+
+        glEnable Compat.gl_TEXTURE_GEN_S
+        glEnable Compat.gl_TEXTURE_GEN_T
+        glDisable Compat.gl_TEXTURE_GEN_R
+        glDisable Compat.gl_TEXTURE_GEN_Q
+
+    TEXCALC_ENVIRONMENT_MAP_REFLECTION -> do
+        Compat.glTexGeni Compat.gl_S Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_REFLECTION_MAP
+        Compat.glTexGeni Compat.gl_T Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_REFLECTION_MAP
+        Compat.glTexGeni Compat.gl_R Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_REFLECTION_MAP
+
+        glEnable Compat.gl_TEXTURE_GEN_S
+        glEnable Compat.gl_TEXTURE_GEN_T
+        glEnable Compat.gl_TEXTURE_GEN_R
+        glDisable Compat.gl_TEXTURE_GEN_Q
+
+    TEXCALC_ENVIRONMENT_MAP_NORMAL -> do
+        Compat.glTexGeni Compat.gl_S Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_NORMAL_MAP
+        Compat.glTexGeni Compat.gl_T Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_NORMAL_MAP
+        Compat.glTexGeni Compat.gl_R Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_NORMAL_MAP
+        glEnable Compat.gl_TEXTURE_GEN_S
+        glEnable Compat.gl_TEXTURE_GEN_T
+        glEnable Compat.gl_TEXTURE_GEN_R
+        glDisable Compat.gl_TEXTURE_GEN_Q
+
+    TEXCALC_PROJECTIVE_TEXTURE -> do
+        Compat.glTexGeni Compat.gl_S Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_EYE_LINEAR
+        Compat.glTexGeni Compat.gl_T Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_EYE_LINEAR
+        Compat.glTexGeni Compat.gl_R Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_EYE_LINEAR
+        Compat.glTexGeni Compat.gl_Q Compat.gl_TEXTURE_GEN_MODE $ fromIntegral Compat.gl_EYE_LINEAR
+        withArray [1, 0, 0, 0] $ \p -> Compat.glTexGenfv Compat.gl_S Compat.gl_EYE_PLANE p
+        withArray [0, 1, 0, 0] $ \p -> Compat.glTexGenfv Compat.gl_T Compat.gl_EYE_PLANE p
+        withArray [0, 0, 1, 0] $ \p -> Compat.glTexGenfv Compat.gl_R Compat.gl_EYE_PLANE p
+        withArray [0, 0, 0, 1] $ \p -> Compat.glTexGenfv Compat.gl_Q Compat.gl_EYE_PLANE p
+        glEnable Compat.gl_TEXTURE_GEN_S
+        glEnable Compat.gl_TEXTURE_GEN_T
+        glEnable Compat.gl_TEXTURE_GEN_R
+        glEnable Compat.gl_TEXTURE_GEN_Q
+
diff --git a/Graphics/LambdaCube/RenderSystem/GL/Texture.hs b/Graphics/LambdaCube/RenderSystem/GL/Texture.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/RenderSystem/GL/Texture.hs
@@ -0,0 +1,220 @@
+module Graphics.LambdaCube.RenderSystem.GL.Texture where
+
+import Control.Monad
+import Data.Maybe
+import Data.Ord
+import Foreign
+import qualified Data.Set as Set
+
+import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
+import Graphics.Rendering.OpenGL.Raw.Core31
+
+import Graphics.LambdaCube.HardwareBuffer
+import Graphics.LambdaCube.Image
+import Graphics.LambdaCube.PixelFormat
+import Graphics.LambdaCube.RenderSystem.GL.Utils
+import Graphics.LambdaCube.RenderSystemCapabilities
+import Graphics.LambdaCube.Texture
+import Graphics.LambdaCube.Types
+
+data GLTexture
+    = GLTexture
+    { gltxName                      :: String
+    , gltxWidth                     :: Int
+    , gltxHeight                    :: Int
+    , gltxDepth                     :: Int
+    , gltxNumRequestedMipmaps       :: TextureMipmap
+    , gltxNumMipmaps                :: Int
+    , gltxMipmapsHardwareGenerated  :: Bool
+    , gltxGamma                     :: FloatType
+    , gltxHwGamma                   :: Bool
+    , gltxFSAA                      :: Int
+    , gltxFSAAHint                  :: String
+    , gltxTextureType               :: TextureType
+    , gltxFormat                    :: PixelFormat
+    , gltxUsage                     :: TextureUsage
+    , gltxSrcFormat                 :: PixelFormat
+    , gltxSrcWidth                  :: Int
+    , gltxSrcHeight                 :: Int
+    , gltxSrcDepth                  :: Int
+
+    , gltxDesiredFormat             :: PixelFormat
+    , gltxDesiredIntegerBitDepth    :: Int
+    , gltxDesiredFloatBitDepth      :: Int
+    , gltxTreatLuminanceAsAlpha     :: Bool
+
+    , gltxTextureObject             :: GLuint
+    }
+
+instance Eq GLTexture where
+    x == y = compare x y == EQ
+
+instance Ord GLTexture where
+    compare = comparing gltxTextureObject
+
+instance HardwareBuffer GLTexture
+
+instance Texture GLTexture where
+    txName                      = gltxName
+    txWidth                     = gltxWidth
+    txHeight                    = gltxHeight
+    txDepth                     = gltxDepth
+    txNumRequestedMipmaps       = gltxNumRequestedMipmaps
+    txNumMipmaps                = gltxNumMipmaps
+    txMipmapsHardwareGenerated  = gltxMipmapsHardwareGenerated
+    txGamma                     = gltxGamma
+    txHwGamma                   = gltxHwGamma
+    txFSAA                      = gltxFSAA
+    txFSAAHint                  = gltxFSAAHint
+    txTextureType               = gltxTextureType
+    txFormat                    = gltxFormat
+    txSrcFormat                 = gltxSrcFormat
+    txSrcWidth                  = gltxSrcWidth
+    txSrcHeight                 = gltxSrcHeight
+    txSrcDepth                  = gltxSrcDepth
+
+    txDesiredFormat             = gltxDesiredFormat
+    txDesiredIntegerBitDepth    = gltxDesiredIntegerBitDepth
+    txDesiredFloatBitDepth      = gltxDesiredFloatBitDepth
+    txTreatLuminanceAsAlpha     = gltxTreatLuminanceAsAlpha
+
+mkGLTexture :: RenderSystemCapabilities -> String -> TextureType -> Int -> Int -> Int -> TextureMipmap -> PixelFormat -> TextureUsage -> Bool -> Int -> String -> Maybe [Image] -> IO GLTexture
+--FIXME: image parameter is temporary!!!!
+mkGLTexture rcaps name texType width height depth numMips format usage hwGammaCorrection _fsaa _fsaaHint mimage = do
+    let caps = rscCapabilities rcaps
+    putStrLn $ "createTexture " ++ "create " ++ show texType ++ " texture: " ++ name
+
+    when (texType == TEX_TYPE_3D && Set.notMember RSC_TEXTURE_3D caps) $ error "3D Textures not supported before OpenGL 1.2"
+
+    (major,minor) <- getGLVersion
+
+    let glVer a b   = major > a || (major >= a && minor >= b)
+        texTarget   = (getGLTextureTarget texType)
+        -- Convert to nearest power-of-two size if required
+        mWidth      = optionalPO2 rcaps width
+        mHeight     = optionalPO2 rcaps height
+        mDepth      = optionalPO2 rcaps depth
+
+        -- Adjust format if required
+        mFormat     = getNativeFormat texType format False -- TODO
+
+        -- Check requested number of mipmaps
+        maxMips     = getMaxMipmaps mWidth mHeight mDepth mFormat
+        mNumMipmaps = maxMips -- TODO min maxMips numMips
+
+    -- Generate texture name
+    mTextureID <- alloca $ \buf -> glGenTextures 1 buf >> peek buf
+
+    -- Set texture type
+    glBindTexture texTarget mTextureID
+
+    -- This needs to be set otherwise the texture doesn't get rendered
+    when (glVer 1 2) $ glTexParameteri texTarget gl_TEXTURE_MAX_LEVEL mNumMipmaps
+
+    -- Set some misc default parameters so NVidia won't complain, these can of course be changed later
+    glTexParameteri texTarget gl_TEXTURE_MIN_FILTER $ fromIntegral gl_NEAREST
+    glTexParameteri texTarget gl_TEXTURE_MAG_FILTER $ fromIntegral gl_NEAREST
+
+    when (glVer 1 2) $ do
+        glTexParameteri texTarget gl_TEXTURE_WRAP_S $ fromIntegral gl_CLAMP_TO_EDGE
+        glTexParameteri texTarget gl_TEXTURE_WRAP_T $ fromIntegral gl_CLAMP_TO_EDGE
+
+    -- If we can do automip generation and the user desires this, do so
+    let mMipmapsHardwareGenerated = Set.member RSC_AUTOMIPMAP caps
+
+    let moreMips = case numMips of
+            MIP_UNLIMITED -> True
+            MIP_DEFAULT   -> True -- TODO
+            MIP_NUMBER n  -> n > 0
+
+    when (tuAutoMipmap usage && moreMips && mMipmapsHardwareGenerated) $ glTexParameteri texTarget gl_GENERATE_MIPMAP $ fromIntegral gl_TRUE
+
+    -- Allocate internal buffer so that glTexSubImageXD can be used
+    -- Internal format
+    let format' = getClosestGLInternalFormat mFormat hwGammaCorrection
+        isCompressed _ = False -- TODO
+    case isCompressed mFormat of
+        True  -> do
+            putStrLn "compressed format is not implemented!"
+        False -> do
+            let setMip (w,h,d) mip = do
+                    -- Normal formats
+                    case texType of
+                        TEX_TYPE_1D       -> glTexImage1D gl_TEXTURE_1D mip format' w 0 gl_RGBA gl_UNSIGNED_BYTE nullPtr
+                        TEX_TYPE_2D       -> glTexImage2D gl_TEXTURE_2D mip format' w h 0 gl_RGBA gl_UNSIGNED_BYTE nullPtr
+                        TEX_TYPE_3D       -> glTexImage3D gl_TEXTURE_3D mip format' w h d 0 gl_RGBA gl_UNSIGNED_BYTE nullPtr
+                        TEX_TYPE_CUBE_MAP -> forM_ [0..5] $ \face ->
+                            glTexImage2D (gl_TEXTURE_CUBE_MAP_POSITIVE_X + face) mip format' w h 0 gl_RGBA gl_UNSIGNED_BYTE nullPtr
+                    return (max 1 (w `div` 2), max 1 (h `div` 2), max 1 (d `div` 2))
+                f = fromIntegral
+            -- Run through this process to pregenerate mipmap piramid
+            foldM_ setMip (f mWidth,f mHeight,f mDepth) [0..(fromIntegral mNumMipmaps)]
+
+    -- TODO
+    -- TEMP CODE
+    when (isJust mimage) $ do
+        let images = fromJust mimage
+            imInfo i = (fmt,f w,f h)
+              where
+                f   = fromIntegral
+                fmt = case imFormat i of
+                    PF_L8         -> gl_LUMINANCE
+                    PF_BYTE_LA    -> gl_LUMINANCE_ALPHA
+                    PF_R8G8B8     -> gl_RGB
+                    PF_R8G8B8A8   -> gl_RGBA
+                    _             -> error "mkGLTexture"
+                w   = imWidth i
+                h   = imHeight i
+            upload2D target i = do
+                let (fmt,w,h) = imInfo i
+                putStrLn $ "createTexture " ++ "upload2d: " ++ imName i
+                glTexImage2D target 0 format' w h 0 fmt gl_UNSIGNED_BYTE $ imDataPtr i
+
+        case texType of
+            TEX_TYPE_1D       -> do
+              let (fmt,w,_h) = imInfo image
+                  image      = head images
+              glTexImage1D gl_TEXTURE_1D 0 format' w 0 fmt gl_UNSIGNED_BYTE $ imDataPtr image
+            TEX_TYPE_2D       -> upload2D gl_TEXTURE_2D $ head images
+            TEX_TYPE_CUBE_MAP -> mapM_ (uncurry upload2D) $ zip [ gl_TEXTURE_CUBE_MAP_POSITIVE_Z -- front
+                                                                , gl_TEXTURE_CUBE_MAP_NEGATIVE_Z -- back
+                                                                , gl_TEXTURE_CUBE_MAP_POSITIVE_Y -- up
+                                                                , gl_TEXTURE_CUBE_MAP_NEGATIVE_Y -- down
+                                                                , gl_TEXTURE_CUBE_MAP_NEGATIVE_X -- left
+                                                                , gl_TEXTURE_CUBE_MAP_POSITIVE_X -- right
+                                                                ] images
+            _ -> return ()
+
+    --_createSurfaceList();
+
+    -- Get final internal format
+    -- TODO
+    --mFormat = getBuffer(0,0)->getFormat();
+    putStrLn $ "createTexture " ++ "created texture: " ++ name
+    return GLTexture
+        { gltxName                      = name
+        , gltxWidth                     = 0 --TODO
+        , gltxHeight                    = 0 --TODO
+        , gltxDepth                     = 0 --TODO
+        , gltxNumRequestedMipmaps       = MIP_DEFAULT --TODO
+        , gltxNumMipmaps                = 0 --TODO
+        , gltxMipmapsHardwareGenerated  = True --TODO
+        , gltxGamma                     = 0 --TODO
+        , gltxHwGamma                   = True --TODO
+        , gltxFSAA                      = 0 --TODO
+        , gltxFSAAHint                  = "" --TODO
+        , gltxTextureType               = texType
+        , gltxFormat                    = PF_R8G8B8 -- TODO
+        , gltxUsage                     = TextureUsage HBU_WRITE_ONLY False False-- TODO
+        , gltxSrcFormat                 = PF_R8G8B8 -- TODO
+        , gltxSrcWidth                  = 0 --TODO
+        , gltxSrcHeight                 = 0 --TODO
+        , gltxSrcDepth                  = 0 --TODO
+
+        , gltxDesiredFormat             = PF_R8G8B8 --TODO
+        , gltxDesiredIntegerBitDepth    = 0 --TODO
+        , gltxDesiredFloatBitDepth      = 0 --TODO
+        , gltxTreatLuminanceAsAlpha     = True --TODO
+
+        , gltxTextureObject             = mTextureID
+        }
diff --git a/Graphics/LambdaCube/RenderSystem/GL/Utils.hs b/Graphics/LambdaCube/RenderSystem/GL/Utils.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/RenderSystem/GL/Utils.hs
@@ -0,0 +1,271 @@
+module Graphics.LambdaCube.RenderSystem.GL.Utils where
+
+import Data.Bits
+import Data.Char
+import qualified Data.Set as Set
+import Foreign
+import Foreign.C.String
+
+import Graphics.Rendering.OpenGL.Raw.Core31
+import qualified Graphics.Rendering.OpenGL.Raw.ARB.Compatibility as Compat
+import qualified Graphics.Rendering.OpenGL.Raw.ARB as ARB
+import qualified Graphics.Rendering.OpenGL.Raw.EXT as EXT
+
+import Graphics.LambdaCube.BlendMode
+import Graphics.LambdaCube.Common
+import Graphics.LambdaCube.HardwareBuffer
+import Graphics.LambdaCube.HardwareVertexBuffer
+import Graphics.LambdaCube.PixelFormat
+import Graphics.LambdaCube.RenderSystemCapabilities
+import Graphics.LambdaCube.Texture
+import Graphics.LambdaCube.TextureUnitState
+
+{-# INLINE peek4 #-}
+peek4 :: Storable a => (a -> a -> a -> a -> b) -> Ptr a -> IO b
+peek4 f = peek4M $ \x y z w -> return (f x y z w)
+
+{-# INLINE peek4M #-}
+peek4M :: Storable a => (a -> a -> a -> a -> IO b) -> Ptr a -> IO b
+peek4M f ptr = do
+   x <- peekElemOff ptr 0
+   y <- peekElemOff ptr 1
+   z <- peekElemOff ptr 2
+   w <- peekElemOff ptr 3
+   f x y z w
+
+getFloat :: GLenum -> IO GLfloat
+getFloat n = alloca $ \i -> do
+    glGetFloatv n i
+    peek i
+
+getInteger :: GLenum -> IO GLint
+getInteger n = alloca $ \i -> do
+    glGetIntegerv n i
+    peek i
+
+getBoolean :: GLenum -> IO GLboolean
+getBoolean n = alloca $ \i -> do
+    glGetBooleanv n i
+    peek i
+
+getBoolean4 :: GLenum -> IO (GLboolean, GLboolean, GLboolean, GLboolean)
+getBoolean4 n = allocaArray 4 $ \buf -> do
+   glGetBooleanv n buf
+   peek4 (,,,) buf
+
+getInteger4 :: GLenum -> IO (GLint, GLint, GLint, GLint)
+getInteger4 n = allocaArray 4 $ \buf -> do
+   glGetIntegerv n buf
+   peek4 (,,,) buf
+
+getString :: GLenum -> IO String
+getString n = glGetString n >>= maybeNullPtr (return "") (peekCString . castPtr)
+  where
+    maybeNullPtr :: b -> (Ptr a -> b) -> Ptr a -> b
+    maybeNullPtr n f ptr | ptr == nullPtr = n
+                         | otherwise      = f ptr
+
+getGLExtensions :: IO [String]
+getGLExtensions = fmap words $ getString gl_EXTENSIONS
+
+getGLVersion :: IO (Int, Int)
+getGLVersion = fmap parse $ getString gl_VERSION
+  where
+    defaultVersion = (-1, -1)
+    parse str = case span isDigit str of
+                    (major@(_:_), '.':rest) ->
+                        case span isDigit rest of
+                            (minor@(_:_), _) -> (read major, read minor)
+                            _ -> defaultVersion
+                    _ -> defaultVersion
+
+getGLUsage :: Usage -> GLenum
+getGLUsage usage = case usage of
+    HBU_STATIC                            -> gl_STATIC_DRAW
+    HBU_STATIC_WRITE_ONLY                 -> gl_STATIC_DRAW
+    HBU_DYNAMIC                           -> gl_DYNAMIC_DRAW
+    HBU_DYNAMIC_WRITE_ONLY                -> gl_DYNAMIC_DRAW
+    HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE    -> gl_STREAM_DRAW
+    _                                     -> gl_DYNAMIC_DRAW
+
+getGLType :: VertexElementType -> GLenum
+getGLType t = case t of
+    VET_FLOAT1        -> gl_FLOAT
+    VET_FLOAT2        -> gl_FLOAT
+    VET_FLOAT3        -> gl_FLOAT
+    VET_FLOAT4        -> gl_FLOAT
+    VET_SHORT1        -> gl_SHORT
+    VET_SHORT2        -> gl_SHORT
+    VET_SHORT3        -> gl_SHORT
+    VET_SHORT4        -> gl_SHORT
+    VET_COLOUR_ABGR   -> gl_UNSIGNED_BYTE
+    VET_COLOUR_ARGB   -> gl_UNSIGNED_BYTE
+    VET_UBYTE4        -> gl_UNSIGNED_BYTE
+
+getGLTextureTarget :: TextureType -> GLenum
+getGLTextureTarget textureType = case textureType of
+    TEX_TYPE_1D       -> gl_TEXTURE_1D
+    TEX_TYPE_2D       -> gl_TEXTURE_2D
+    TEX_TYPE_3D       -> gl_TEXTURE_3D
+    TEX_TYPE_CUBE_MAP -> gl_TEXTURE_CUBE_MAP
+
+optionalPO2 :: RenderSystemCapabilities -> Int -> Int
+optionalPO2 rcaps value = case Set.member RSC_NON_POWER_OF_2_TEXTURES (rscCapabilities rcaps) of
+    True  -> value
+    False -> 2 ^ (1 + log2 (value-1))
+  where
+    log2 :: Int -> Int
+    log2 n = case n of
+      0 -> -1
+      _ -> 1 + log2 (shiftR n 1)
+
+getMaxMipmaps :: Int -> Int -> Int -> PixelFormat -> GLint
+getMaxMipmaps width height depth _format = maximum [f width, f height, f depth]
+  where
+    bits :: Double -> Double
+    bits = logBase 2
+    f x = floor $ bits $ fromIntegral x
+
+-- TODO
+getNativeFormat :: TextureType -> PixelFormat -> Bool -> PixelFormat
+getNativeFormat _ttype _format _isTarget = PF_R8G8B8
+
+getClosestGLInternalFormat :: PixelFormat -> Bool -> GLint
+getClosestGLInternalFormat mFormat hwGamma = fromIntegral $ case mFormat of
+    PF_L8             -> Compat.gl_LUMINANCE8
+    PF_L16            -> Compat.gl_LUMINANCE16
+    PF_A8             -> Compat.gl_ALPHA8
+    PF_A4L4           -> Compat.gl_LUMINANCE4_ALPHA4
+    PF_BYTE_LA        -> Compat.gl_LUMINANCE8_ALPHA8
+    PF_R3G3B2         -> gl_R3_G3_B2
+    PF_A1R5G5B5       -> gl_RGB5_A1
+    PF_R5G6B5         -> gl_RGB5
+    PF_B5G6R5         -> gl_RGB5
+    PF_A4R4G4B4       -> gl_RGBA4
+    PF_R8G8B8         -> if hwGamma then gl_SRGB8 else gl_RGB8
+    PF_B8G8R8         -> if hwGamma then gl_SRGB8 else gl_RGB8
+    PF_X8B8G8R8       -> if hwGamma then gl_SRGB8 else gl_RGB8
+    PF_X8R8G8B8       -> if hwGamma then gl_SRGB8 else gl_RGB8
+    PF_A8R8G8B8       -> if hwGamma then gl_SRGB8_ALPHA8 else gl_RGBA8
+    PF_B8G8R8A8       -> if hwGamma then gl_SRGB8_ALPHA8 else gl_RGBA8
+    PF_A2R10G10B10    -> gl_RGB10_A2
+    PF_A2B10G10R10    -> gl_RGB10_A2
+    PF_FLOAT16_R      -> ARB.gl_LUMINANCE16F
+    PF_FLOAT16_RGB    -> ARB.gl_RGB16F
+    PF_FLOAT16_GR     -> ARB.gl_LUMINANCE_ALPHA16F
+    PF_FLOAT16_RGBA   -> ARB.gl_RGBA16F
+    PF_FLOAT32_R      -> ARB.gl_LUMINANCE32F
+    PF_FLOAT32_GR     -> ARB.gl_LUMINANCE_ALPHA32F
+    PF_FLOAT32_RGB    -> ARB.gl_RGB32F
+    PF_FLOAT32_RGBA   -> ARB.gl_RGBA32F
+    PF_SHORT_RGBA     -> gl_RGBA16
+    PF_SHORT_RGB      -> gl_RGB16
+    PF_SHORT_GR       -> Compat.gl_LUMINANCE16_ALPHA16
+    PF_DXT1           -> if hwGamma then EXT.gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1 else EXT.gl_COMPRESSED_RGBA_S3TC_DXT1
+    PF_DXT3           -> if hwGamma then EXT.gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3 else EXT.gl_COMPRESSED_RGBA_S3TC_DXT3
+    PF_DXT5           -> if hwGamma then EXT.gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5 else EXT.gl_COMPRESSED_RGBA_S3TC_DXT5
+    _                 -> if hwGamma then gl_SRGB8 else gl_RGBA8
+
+{-
+getClosestPixelFormat :: GLenum -> PixelFormat
+getClosestPixelFormat fmt = case fmt of
+    gl_LUMINANCE8                           -> PF_L8
+    gl_LUMINANCE16                          -> PF_L16
+    gl_ALPHA8                               -> PF_A8
+    gl_LUMINANCE4_ALPHA4                    -> PF_BYTE_LA
+    gl_LUMINANCE8_ALPHA8                    -> PF_BYTE_LA
+    gl_R3_G3_B2                             -> PF_R3G3B2
+    gl_RGB5_A1                              -> PF_A1R5G5B5
+    gl_RGB5                                 -> PF_R5G6B5
+    gl_RGBA4                                -> PF_A4R4G4B4
+    gl_RGB8                                 -> PF_X8R8G8B8
+    gl_SRGB8                                -> PF_X8R8G8B8
+    gl_RGBA8                                -> PF_A8R8G8B8
+    gl_SRGB8_ALPHA8                         -> PF_A8R8G8B8
+    gl_RGB10_A2                             -> PF_A2R10G10B10
+    gl_RGBA16                               -> PF_SHORT_RGBA
+    gl_RGB16                                -> PF_SHORT_RGB
+    gl_LUMINANCE16_ALPHA16                  -> PF_SHORT_GR
+    gl_LUMINANCE_FLOAT16_ATI                -> PF_FLOAT16_R
+    gl_LUMINANCE_ALPHA_FLOAT16_ATI          -> PF_FLOAT16_GR
+    gl_LUMINANCE_ALPHA_FLOAT32_ATI          -> PF_FLOAT32_GR
+    gl_LUMINANCE_FLOAT32_ATI                -> PF_FLOAT32_R
+    gl_RGB_FLOAT16_ATI                      -> PF_FLOAT16_RGB
+    gl_RGBA_FLOAT16_ATI                     -> PF_FLOAT16_RGBA
+    gl_RGB_FLOAT32_ATI                      -> PF_FLOAT32_RGB
+    gl_RGBA_FLOAT32_ATI                     -> PF_FLOAT32_RGBA
+    gl_COMPRESSED_RGB_S3TC_DXT1_EXT         -> PF_DXT1
+    gl_COMPRESSED_RGBA_S3TC_DXT1_EXT        -> PF_DXT1
+    gl_COMPRESSED_SRGB_S3TC_DXT1_EXT        -> PF_DXT1
+    gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT  -> PF_DXT1
+    gl_COMPRESSED_RGBA_S3TC_DXT3_EXT        -> PF_DXT3
+    gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT  -> PF_DXT3
+    gl_COMPRESSED_RGBA_S3TC_DXT5_EXT        -> PF_DXT5
+    gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT  -> PF_DXT5
+    _                                       -> PF_A8R8G8B8
+-}
+
+getBlendMode :: SceneBlendFactor -> GLenum
+getBlendMode blend = case blend of
+    SBF_ONE                       -> gl_ONE
+    SBF_ZERO                      -> gl_ZERO
+    SBF_DEST_COLOUR               -> gl_DST_COLOR
+    SBF_SOURCE_COLOUR             -> gl_SRC_COLOR
+    SBF_ONE_MINUS_DEST_COLOUR     -> gl_ONE_MINUS_DST_COLOR
+    SBF_ONE_MINUS_SOURCE_COLOUR   -> gl_ONE_MINUS_SRC_COLOR
+    SBF_DEST_ALPHA                -> gl_DST_ALPHA
+    SBF_SOURCE_ALPHA              -> gl_SRC_ALPHA
+    SBF_ONE_MINUS_DEST_ALPHA      -> gl_ONE_MINUS_DST_ALPHA
+    SBF_ONE_MINUS_SOURCE_ALPHA    -> gl_ONE_MINUS_SRC_ALPHA
+
+getBlendEquation :: SceneBlendOperation -> GLenum
+getBlendEquation op = case op of
+    SBO_ADD               -> gl_FUNC_ADD
+    SBO_SUBTRACT          -> gl_FUNC_SUBTRACT
+    SBO_REVERSE_SUBTRACT  -> gl_FUNC_REVERSE_SUBTRACT
+    SBO_MIN               -> gl_MIN
+    SBO_MAX               -> gl_MAX
+
+getTextureAddressingMode :: TextureAddressingMode -> GLenum
+getTextureAddressingMode tam = case tam of
+    TAM_WRAP      -> gl_REPEAT
+    TAM_MIRROR    -> gl_MIRRORED_REPEAT
+    TAM_CLAMP     -> gl_CLAMP_TO_EDGE
+    TAM_BORDER    -> gl_CLAMP_TO_BORDER
+
+getLayerBlendSource :: LayerBlendSource -> GLenum
+getLayerBlendSource src = case src of
+    LBS_CURRENT   -> Compat.gl_PREVIOUS
+    LBS_TEXTURE   -> gl_TEXTURE
+    LBS_MANUAL    -> Compat.gl_CONSTANT
+    LBS_DIFFUSE   -> Compat.gl_PRIMARY_COLOR
+    LBS_SPECULAR  -> Compat.gl_PRIMARY_COLOR
+
+getTextureCombineFunction :: Bool -> LayerBlendOperationEx -> GLenum
+getTextureCombineFunction hasDot3 op = case op of
+    LBX_SOURCE1               -> gl_REPLACE
+    LBX_SOURCE2               -> gl_REPLACE
+    LBX_MODULATE              -> Compat.gl_MODULATE
+    LBX_MODULATE_X2           -> Compat.gl_MODULATE
+    LBX_MODULATE_X4           -> Compat.gl_MODULATE
+    LBX_ADD                   -> Compat.gl_ADD
+    LBX_ADD_SIGNED            -> Compat.gl_ADD_SIGNED
+    LBX_ADD_SMOOTH            -> Compat.gl_INTERPOLATE
+    LBX_SUBTRACT              -> Compat.gl_SUBTRACT
+    LBX_BLEND_DIFFUSE_COLOUR  -> Compat.gl_INTERPOLATE
+    LBX_BLEND_DIFFUSE_ALPHA   -> Compat.gl_INTERPOLATE
+    LBX_BLEND_TEXTURE_ALPHA   -> Compat.gl_INTERPOLATE
+    LBX_BLEND_CURRENT_ALPHA   -> Compat.gl_INTERPOLATE
+    LBX_BLEND_MANUAL          -> Compat.gl_INTERPOLATE
+    LBX_DOTPRODUCT            -> if hasDot3 then Compat.gl_DOT3_RGB else Compat.gl_MODULATE
+
+convertCompareFunction :: CompareFunction -> GLenum
+convertCompareFunction f = case f of
+    CMPF_ALWAYS_FAIL      -> gl_NEVER
+    CMPF_ALWAYS_PASS      -> gl_ALWAYS
+    CMPF_LESS             -> gl_LESS
+    CMPF_LESS_EQUAL       -> gl_LEQUAL
+    CMPF_EQUAL            -> gl_EQUAL
+    CMPF_NOT_EQUAL        -> gl_NOTEQUAL
+    CMPF_GREATER_EQUAL    -> gl_GEQUAL
+    CMPF_GREATER          -> gl_GREATER
diff --git a/Graphics/LambdaCube/RenderSystem/GL/VertexBuffer.hs b/Graphics/LambdaCube/RenderSystem/GL/VertexBuffer.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/RenderSystem/GL/VertexBuffer.hs
@@ -0,0 +1,131 @@
+module Graphics.LambdaCube.RenderSystem.GL.VertexBuffer where
+
+import Control.Monad
+import Control.Applicative
+import Data.IORef
+import Data.Maybe
+import Data.Ord
+import Data.Word
+import Foreign
+
+import Graphics.Rendering.OpenGL.Raw.Core31
+
+import Graphics.LambdaCube.HardwareBuffer
+import Graphics.LambdaCube.HardwareVertexBuffer
+import Graphics.LambdaCube.RenderSystem.GL.Utils
+
+-- | Specialisation of HardwareVertexBuffer for GL
+data GLVertexBuffer
+    = GLVertexBuffer
+    { glvbNumVertices      :: Int
+    , glvbVertexSize       :: Int
+
+    , glvbUsage            :: Usage
+    , glvbLockInfo         :: IORef (Maybe (Int,Int,Bool)) -- LockStart LockSize RequireUpdate
+
+    , glvbShadowBuffer     :: Maybe (Ptr Word8)
+    , glvbBufferObject     :: GLuint
+    }
+    deriving Eq
+
+-- TODO: inconsistent Eq vs. Ord!
+instance Ord GLVertexBuffer where
+    compare = comparing glvbBufferObject
+
+instance HardwareVertexBuffer GLVertexBuffer where
+    getVertexSize   = glvbVertexSize
+    getNumVertices  = glvbNumVertices
+
+instance HardwareBuffer GLVertexBuffer where
+    getSizeInBytes b    = glvbVertexSize b * glvbNumVertices b
+    isSystemMemory b    = 0 == glvbBufferObject b
+    hasShadowBuffer b   = (isJust $ glvbShadowBuffer b) && (glvbBufferObject b /= 0)
+    getUsage            = glvbUsage
+    isLocked            = glvbIsLocked
+    unlock              = glvbUnlock
+    lock                = glvbLock
+
+glvbIsLocked :: GLVertexBuffer -> IO Bool
+glvbIsLocked b = do
+    i <- readIORef $ glvbLockInfo b
+    return $ isJust i
+
+glvbLock :: GLVertexBuffer -> Int -> Int -> LockOptions -> IO (Ptr Word8)
+glvbLock a offs len opts = do
+    lockinfo <- readIORef (glvbLockInfo a)
+    when (isJust lockinfo) $ error "Cannot lock this buffer, it is already locked!"
+    writeIORef (glvbLockInfo a) $ Just (offs,len,opts /= HBL_READ_ONLY)
+    case glvbShadowBuffer a of
+        Just b    -> do
+            --putStrLn "lock shadow VBO buffer"
+            return $ plusPtr b offs
+        Nothing   -> do
+            --putStrLn "lock VBO buffer"
+            glBindBuffer gl_ARRAY_BUFFER $ glvbBufferObject a
+            -- Discard if required
+            when (opts == HBL_DISCARD) $ glBufferData gl_ARRAY_BUFFER (fromIntegral $ getSizeInBytes a) nullPtr (getGLUsage $ getUsage a)
+            let isWriteOnly = case getUsage a of
+                    HBU_WRITE_ONLY                        -> True
+                    HBU_STATIC_WRITE_ONLY                 -> True
+                    HBU_DYNAMIC_WRITE_ONLY                -> True
+                    HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE    -> True
+                    _                                     -> False
+                access = case (isWriteOnly,opts == HBL_READ_ONLY) of
+                    (False,False) -> gl_READ_WRITE
+                    (False,True)  -> gl_READ_ONLY
+                    (True,_)      -> gl_WRITE_ONLY
+            b <- glMapBuffer gl_ARRAY_BUFFER access
+            case b == nullPtr of
+                True   -> error "Vertex Buffer: Out of memory"
+                False  -> return $ plusPtr b offs
+
+glvbUnlock :: GLVertexBuffer -> IO ()
+glvbUnlock a = do
+    lockinfo <- readIORef (glvbLockInfo a)
+    let (lockStart,lockSize,reqUpdate) = case lockinfo of
+            Just li   -> li
+            Nothing   -> error "Cannot unlock this buffer, it is not locked!"
+    writeIORef (glvbLockInfo a) Nothing
+    case glvbShadowBuffer a of
+        Just b    -> when reqUpdate $ do -- If we used the shadow buffer this time...
+            --putStrLn "unlock shadow VBO buffer"
+            glBindBuffer gl_ARRAY_BUFFER $ glvbBufferObject a
+            case lockStart == 0 && lockSize == getSizeInBytes a of
+                True  -> glBufferData gl_ARRAY_BUFFER (fromIntegral lockSize) b (getGLUsage $ getUsage a)
+                False -> glBufferSubData gl_ARRAY_BUFFER (fromIntegral lockStart) (fromIntegral lockSize) b
+        Nothing   -> do
+            --putStrLn "unlock VBO buffer"
+            glBindBuffer gl_ARRAY_BUFFER $ glvbBufferObject a
+            ok <- glUnmapBuffer gl_ARRAY_BUFFER
+            unless (ok /= (fromIntegral gl_FALSE)) $ error "Buffer data corrupted, please reload"
+
+mkGLVertexBuffer :: Int -> Int -> Usage -> Bool -> IO GLVertexBuffer
+mkGLVertexBuffer vertexSize numVerts usage useShadowBuffer = do
+    let bufferSize = numVerts * vertexSize
+    bufferObject <- alloca $ \buf -> glGenBuffers 1 buf >> peek buf
+    --putStrLn $ "VBO ID: " ++ show bufferObject
+    lockinfo <- newIORef Nothing
+    glBindBuffer gl_ARRAY_BUFFER bufferObject
+    glBufferData gl_ARRAY_BUFFER (fromIntegral bufferSize) nullPtr (getGLUsage usage)
+    shadowBuffer <- case useShadowBuffer of
+        True  -> Just <$> mallocBytes bufferSize
+        False -> return Nothing
+    return $ GLVertexBuffer
+        { glvbNumVertices      = numVerts
+        , glvbVertexSize       = vertexSize
+
+        , glvbUsage            = usage
+        , glvbLockInfo         = lockinfo
+
+        , glvbShadowBuffer     = shadowBuffer
+        , glvbBufferObject     = bufferObject
+        }
+
+rmGLVertexBuffer :: GLVertexBuffer -> IO ()
+rmGLVertexBuffer a = do
+    case glvbBufferObject a of
+        0 -> return ()
+        b -> with b $ \buf -> glDeleteBuffers 1 buf
+    case glvbShadowBuffer a of
+        Just b    -> free b
+        Nothing   -> return ()
diff --git a/Graphics/LambdaCube/RenderSystemCapabilities.hs b/Graphics/LambdaCube/RenderSystemCapabilities.hs
--- a/Graphics/LambdaCube/RenderSystemCapabilities.hs
+++ b/Graphics/LambdaCube/RenderSystemCapabilities.hs
@@ -4,7 +4,6 @@
 
 import Graphics.LambdaCube.Types
 
--- | Enum describing the different hardware capabilities we want to check for
 data Capabilities
     = RSC_AUTOMIPMAP                    -- ^ Supports generating mipmaps in hardware
     | RSC_BLENDING
@@ -42,10 +41,8 @@
     | RSC_ALPHA_TO_COVERAGE             -- ^ Supports Alpha to Coverage (A2C)
     | RSC_ADVANCED_BLEND_OPERATIONS     -- ^ Supports Blending operations other than +
 
-    -- * DirectX specific caps
     | RSC_PERSTAGECONSTANT              -- ^ Is DirectX feature "per stage constants" supported
 
-    -- * GL Specific Caps
     | RSC_GL1_5_NOVBO                   -- ^ Supports openGL GLEW version 1.5
     | RSC_FBO                           -- ^ Support for Frame Buffer Objects (FBOs)
     | RSC_FBO_ARB                       -- ^ Support for Frame Buffer Objects ARB implementation (regular FBO is higher precedence)
@@ -56,8 +53,8 @@
     | RSC_POINT_EXTENDED_PARAMETERS_EXT -- ^ Support for point parameters EXT implementation
     deriving (Eq,Ord)
 
-data DriverVersion 
-    = DriverVersion 
+data DriverVersion
+    = DriverVersion
     { dvMajor   :: Int
     , dvMinor   :: Int
     , dvRelease :: Int
@@ -79,20 +76,13 @@
     | GPU_APPLE -- ^ Apple Software Renderer
     deriving Eq
 
-{-| singleton class for storing the capabilities of the graphics card. 
-@remarks
-This class stores the capabilities of the graphics card.  This
-information is set by the individual render systems.
--}
 data RenderSystemCapabilities
     = RenderSystemCapabilities
     { rscDriverVersion                      :: DriverVersion
     , rscVendor                             :: GPUVendor        -- ^ GPU Vendor
 
---    , rscNumWorldMatrices                   :: Int              -- ^ The number of world matrices available
     , rscNumTextureUnits                    :: Int              -- ^ The number of texture units available
     , rscStencilBufferBitDepth              :: Int              -- ^ The stencil buffer bit depth
---    , rscNumVertexBlendMatrices             :: Int              -- ^ The number of matrices available for hardware blending
     , rscCapabilities                       :: Set Capabilities -- ^ Stores the capabilities flags.
 
     , rscDeviceName                         :: String           -- ^ The name of the device as reported by the render system
@@ -116,4 +106,3 @@
 
     , rscSupportedShaderProfiles            :: Set String       -- ^ The list of supported shader profiles
     }
-
diff --git a/Graphics/LambdaCube/Resource.hs b/Graphics/LambdaCube/Resource.hs
--- a/Graphics/LambdaCube/Resource.hs
+++ b/Graphics/LambdaCube/Resource.hs
@@ -1,25 +1,27 @@
 module Graphics.LambdaCube.Resource where
 
-import qualified Data.List as List
-import Data.Map (Map)
-import qualified Data.Map as Map
 import Control.Monad
+import Control.Monad.Trans
 import System.Directory
 import System.FilePath
+import Data.List
+import qualified Data.Map as Map
+import Data.Maybe
+import Control.Applicative
 
-import qualified Data.ByteString.Lazy as B
-import qualified Data.ByteString as SB
-import Data.ByteString.Internal as B
 import Codec.Archive.Zip
-import System.Log.Logger
+import qualified Data.ByteString.Internal as SB
+import qualified Data.ByteString.Lazy as LB
 
+import Graphics.LambdaCube.Compositor
+import Graphics.LambdaCube.GpuProgram
 import Graphics.LambdaCube.Loader.CompositorScript
 import Graphics.LambdaCube.Loader.MaterialScript
 import Graphics.LambdaCube.Loader.ResourceScript
-import Graphics.LambdaCube.Compositor
 import Graphics.LambdaCube.Material
+import Graphics.LambdaCube.RenderSystem
 import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.Utility
 import Graphics.LambdaCube.World
 
 -- load resources into resource library (initResources :: [ResourceGroup] -> ResourceLibrary)
@@ -36,110 +38,69 @@
     = RI_Material   (String,Material t lp)
     | RI_GpuProgram (String,GpuProgramDescriptor p)
     | RI_Compositor (String,Compositor t lp)
-                
-addConfig cfgFile world = do
-    Just rp <- loadResourcesCfg cfgFile
-    addResourceLibrary rp world
 
-addResourceLibrary resPath w@World { wrResource = res } = do
-    -- fold on every group and path
-    -- getDirectoryContents :: FilePath -> IO [FilePath]
-    -- doesDirectoryExist :: FilePath -> IO Bool
-    -- takeExtension :: FilePath -> String
-    -- TODO:
-    --  scan whole resource path searching for resource files and load them:
-    --    .material
-    --    .program
-    --  add normal (uncompiled) materials to material library
-    let loadResGrp s (_,l) = foldM loadRes s l
-        loadRes l (PathZip,n) = return l
-        loadRes l p@(PathDir,n) = do
+addConfig :: RenderSystem r vb ib q t p lp => FilePath -> LCM (World r vb ib q t p lp) e ()
+addConfig cfgFile = do
+    Just rp <- liftIO $ loadResourcesCfg cfgFile
+    addResourceLibrary rp
+
+-- TODO: LCMify
+
+-- | Add a resource library (essentially a collection of paths) to the
+-- current set of search paths stored in the world.
+addResourceLibrary :: RenderSystem r vb ib q t p lp => [ResourceGroup] -> LCM (World r vb ib q t p lp) e ()
+addResourceLibrary resPath = do
+    world <- peekLCM
+    let res = wrResource world
+        loadResGrp s (_,l) = foldM' loadRes s l
+        loadRes l (PathZip,n) = do
+            ok <- doesFileExist n
+            case ok of
+                True  -> do
+                    a <- toArchive <$> LB.readFile n
+                    foldM' (loadItem (\fn -> return $ fromEntry $ fromJust $ findEntryByPath fn a)) l $ filesInArchive a
+                False -> return l
+        loadRes l (PathDir,n) = do
             ok <- doesDirectoryExist n
             case ok of
-                { True  -> do
+                True  -> do
                     c <- getDirectoryContents n
-                    foldM (loadItem n) l c
-                ; False -> return l
-                }
-        loadItem dn l n = do
+                    foldM' (loadItem (\fn -> LB.readFile $ n ++ "/" ++ fn)) l c
+                False -> return l
+        loadItem loadFun l n = do
             --parseMaterial -> Maybe (mats,verts,frags)
             case takeExtension n of
-                { ".material" -> do
-                    debugM "ResourceLibrary" $ "load: " ++ n
-                    f <- B.readFile $ dn ++ "/" ++ n -- FIXME: this is temporary solution
-                    mb <- parseMaterial n $ map B.w2c $ B.unpack f
+                ".material" -> do
+                    putStrLn $ "ResourceLibrary " ++ "load: " ++ n
+                    f <- loadFun n -- FIXME: this is temporary solution
+                    mb <- parseMaterial n $ map SB.w2c $ LB.unpack f
                     case mb of
-                        { Nothing   -> do
-                            errorM  "ResourceLibrary" $ "Syntax error in file " ++ n
+                        Nothing   -> do
+                            putStrLn $ "ResourceLibrary " ++ "Syntax error in file " ++ n
                             return l
-                        ; Just (ml,vpl,fpl) -> do
+                        Just (ml,vpl,fpl) -> do
                             let ms = [RI_Material (mtName m,m) | m <- ml]
                                 vs = [RI_GpuProgram (gpdName m,m) | m <- vpl]
                                 fs = [RI_GpuProgram (gpdName m,m) | m <- fpl]
                             return $ l ++ ms ++ vs ++ fs
-                        }
-                ; ".compositor" -> do
-                    debugM "ResourceLibrary" $ "load: " ++ n
-                    f <- B.readFile $ dn ++ "/" ++ n -- FIXME: this is temporary solution
-                    mb <- parseCompositor n $ map B.w2c $ B.unpack f
+                ".compositor" -> do
+                    putStrLn $ "ResourceLibrary " ++ "load: " ++ n
+                    f <- loadFun n -- FIXME: this is temporary solution
+                    mb <- parseCompositor n $ map SB.w2c $ LB.unpack f
                     case mb of
-                        { Nothing   -> do
-                            errorM  "ResourceLibrary" $ "Syntax error in file " ++ n
+                        Nothing   -> do
+                            putStrLn $ "ResourceLibrary " ++ "Syntax error in file " ++ n
                             return l
-                        ; Just cl -> do
+                        Just cl -> do
                             return $ l ++ [RI_Compositor (cmpName m,m) | m <- cl]
-                        }
-                ; _ -> return l
-                }
-        insertList = List.foldl' (flip (uncurry Map.insert))
-    l <- foldM loadResGrp [] resPath
-    return w { wrResource = res 
-                { rlResourceGroups = resPath ++ rlResourceGroups res
-                , rlMaterialMap     = insertList (rlMaterialMap res)    [m | (RI_Material m) <- l]
-                , rlGpuProgramMap   = insertList (rlGpuProgramMap res)  [m | (RI_GpuProgram m) <- l]
-                , rlCompositorMap   = insertList (rlCompositorMap res)  [m | (RI_Compositor m) <- l]
-                }
-             }
-               --ResourceLibrary (resPath++path) meshes (Map.union mats materialMap) texes (Map.union shads shaderMap) progs
-
-{-
-loadResourceGroup
-dropResourceGroup
--}
-
-{-
---compileMaterial
--- load textures from disk to opengl
--- drops unnecessary techniques (include,exlude rules)
-compileMaterial :: ResourceLibrary -> String -> IO (ResourceLibrary,Material)
-compileMaterial rlib m = do
-    let mm = (rlMaterialMap rlib)
-    if Map.notMember m mm then error ("Unknown material: " ++ m) else return ()
-    let (mt,mcmt) = mm Map.! m
-    (rlib',cmt) <- if isJust mcmt then return (rlib,fromMaybe (error "fromJust 0") mcmt) else compMat rlib mt -- copy original material data and load texture units
-    return (rlib',cmt) where
-        compMat rl mat@(Material {mtTechnique=techs}) = do
-            debugM "ResourceLibrary" $ "compiling material: " ++ m
-            (rl',techs') <- foldM compTechnique (rl,[]) techs
-            let matmap' = insert m (mat,Just cmt') (rlMaterialMap rl) 
-                cmt' = mat{mtTechnique=techs'}
-            return (rl'{rlMaterialMap=matmap'},cmt')
-        compTechnique (rl,l) t@(Technique {tcPass=p}) = do
-            excl <- excludeTechnique t
-            if excl then return (rl, l) else do
-                (rl',p') <- foldM compPass (rl,[]) p
-                return (rl',(l ++ [t{tcPass=p'}]))
-        compPass (rl,l) p = do
-            (rl',tu') <- foldM compTexUnit (rl,[]) $ psTextureUnit p
-            let (ProgRefName prog) = psShaderProgram p
-            (rl'',prog') <- compileProgram rl' prog
-            return (rl'',(l ++ [p{psTextureUnit=tu', psShaderProgram=(ProgRefObj prog')}]))
-        compTexUnit (rl,l) tu = do
-            (rl',texid) <- loadTexture rl $ head $ tuTexture tu
-            return (rl',(l ++ [tu{tuTextureObject=Just [texid]}]))
-        excludeTechnique t@(Technique {tcPass=p}) = do
-            -- exclude if shaders are not supported
-            version <- GL.get (GL.majorMinor GL.glVersion)
-            let reqShaders = not $ null $ filter (\(Pass {psShaderProgram=(ProgRefName (vp,pp))})-> isJust vp || isJust pp) p
-            if reqShaders && version < (2,0) then return True else return False
--}
+                _ -> return l
+        insertList = foldl' (flip (uncurry Map.insert))
+    l <- liftIO $ foldM' loadResGrp [] resPath
+    pokeLCM $ world
+        { wrResource = res
+              { rlResourceGroups = resPath ++ rlResourceGroups res
+              , rlMaterialMap    = insertList (rlMaterialMap res)   [m | (RI_Material m) <- l]
+              , rlGpuProgramMap  = insertList (rlGpuProgramMap res) [m | (RI_GpuProgram m) <- l]
+              , rlCompositorMap  = insertList (rlCompositorMap res) [m | (RI_Compositor m) <- l]
+              }
+        }
diff --git a/Graphics/LambdaCube/SceneGraph.hs b/Graphics/LambdaCube/SceneGraph.hs
--- a/Graphics/LambdaCube/SceneGraph.hs
+++ b/Graphics/LambdaCube/SceneGraph.hs
@@ -1,141 +1,148 @@
 module Graphics.LambdaCube.SceneGraph where
 
-import Data.Maybe
-import Data.Map as Map hiding (map)
-import qualified Data.IntMap as IntMap
-import Data.List as List
-import Control.Monad
-import System.FilePath
-
-import Data.Graph.Inductive
+import Control.Applicative
+import Data.List (foldl')
 
-import Graphics.LambdaCube.Types
 import Graphics.LambdaCube.Common
-import Graphics.LambdaCube.Math
-import Graphics.LambdaCube.Light
-import Graphics.LambdaCube.Material
 import Graphics.LambdaCube.Entity
-import Graphics.LambdaCube.Resource
+import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.HardwareIndexBuffer
+import Graphics.LambdaCube.HardwareVertexBuffer
+import Graphics.LambdaCube.Light
 import Graphics.LambdaCube.RenderQueue
-import Graphics.LambdaCube.World
-import Graphics.LambdaCube.Texture
 import Graphics.LambdaCube.RenderSystem
-    
---type MkSceneObjectAction = World -> IO (World, SceneObject)
---type MkNodeAction = ResourceLibrary -> IO (ResourceLibrary,(String,String),SceneNode)
-
---simpleCamera :: String -> MkSceneObjectAction
-simpleCamera name w = return (w,cam)
-  where
-    cam = SO_Camera Camera
-        { cmName        = name
-        , cmFov         = 45
-        , cmNear        = 0.1
-        , cmFar         = 5000
-        , cmAspectRatio = Nothing
-        , cmPolygonMode = PM_SOLID
-        }
+import Graphics.LambdaCube.Texture
+import Graphics.LambdaCube.Tree
+import Graphics.LambdaCube.Types
+import Graphics.LambdaCube.World
 
---wireCamera :: String -> MkSceneObjectAction
-wireCamera name w = return (w,cam)
-  where
-    cam = SO_Camera Camera
-        { cmName        = name
-        , cmFov         = 45
-        , cmNear        = 0.1
-        , cmFar         = 5000
-        , cmAspectRatio = Nothing
-        , cmPolygonMode = PM_WIREFRAME
-        }
+type MkSceneObjectAction r vb ib q t p lp e = LCM (World r vb ib q t p lp) e (SceneObject vb ib t lp)
 
---light :: MkSceneObjectAction
-light w = return (w,SO_Light $ Light {})
+type MkNodeAction r vb ib q t p lp e = LCM (World r vb ib q t p lp) e ((String, String), SceneNode vb ib t lp)
 
---camera :: Camera -> MkSceneObjectAction
-camera cam w = return (w,SO_Camera cam)
+-- | Construct a scene object representing a camera with the given
+-- specification.
+camera :: RenderSystem r vb ib q t p lp => Camera -> MkSceneObjectAction r vb ib q t p lp e
+camera = return . SO_Camera
 
---mesh :: String -> MkSceneObjectAction
-mesh name w = do
-    (w',e) <- createEntity w name name
-    return (w', SO_Entity e)
+-- | Construct a scene object representing a basic camera with the
+-- given name.
+simpleCamera :: RenderSystem r vb ib q t p lp => String -> MkSceneObjectAction r vb ib q t p lp e
+simpleCamera name = return $ SO_Camera Camera
+    { cmName        = name
+    , cmFov         = 45
+    , cmNear        = 0.1
+    , cmFar         = 5000
+    , cmAspectRatio = Nothing
+    , cmPolygonMode = PM_SOLID
+    }
 
---meshMat :: String -> [String] -> MkSceneObjectAction
-meshMat name mats w0 = do
-    (w1,e0) <- createEntity w0 name name
-    (w2,e1) <- setEntityMaterial w1 mats e0
-    return (w2, SO_Entity e1)
+-- | Construct a scene object representing a wireframe-mode camera
+-- with the given name.
+wireCamera :: RenderSystem r vb ib q t p lp => String -> MkSceneObjectAction r vb ib q t p lp e
+wireCamera name = return $ SO_Camera Camera
+    { cmName        = name
+    , cmFov         = 45
+    , cmNear        = 0.1
+    , cmFar         = 5000
+    , cmAspectRatio = Nothing
+    , cmPolygonMode = PM_WIREFRAME
+    }
 
---mkNode :: String -> String -> Matrix4 -> [MkSceneObjectAction] -> MkNodeAction
-mkNode parent name t objActs w = do
-    (w',o) <- foldM mkObjs (w,[]) objActs
-    return (w',(parent,name),SceneNode name o t)
-  where
-    mkObjs (w,l) a = do
-        (w',so) <- a w
-        return (w',so:l)
-{-
-addSkyBox :: String -> World -> IO World
-addSkyBox s w@World { wrResource = rl, wrScene = scene } = do
-    (rl',mat) <- compileMaterial rl s
-    return w { wrResource = rl', wrScene = scene{scSky = Just $ SkyBox mat} }
--}
+-- | Construct a scene object representing a light source with the
+-- given specification.
+light :: RenderSystem r vb ib q t p lp => Light -> MkSceneObjectAction r vb ib q t p lp e
+light = return . SO_Light
 
-{-
-data Scene = Scene
-    { scGraph :: Gr String ()
-    -- use: bytestring-trie (efficient ByteString map)
-    , scMap   :: Map String SceneNode
-    , scSky   :: Maybe Sky
-    -- Fog settings
+-- | Construct a scene object representing a basic light source.
+defaultLight :: RenderSystem r vb ib q t p lp => MkSceneObjectAction r vb ib q t p lp e
+defaultLight = light $ Light
+    { lgType                = LT_POINT
+    , lgDiffuse             = (1,1,1,1)
+    , lgDirection           = Vec3 0 0 1
+    , lgSpecular            = (0,0,0,0)
+    , lgSpotOuter           = pi / 180 * 40
+    , lgSpotFalloff         = 1
+    , lgRange               = 100000
+    , lgAttenuationConst    = 1
+    , lgAttenuationLinear   = 0
+    , lgAttenuationQuad     = 0
     }
--}
---addScene :: [MkNodeAction] -> World -> IO World
-addScene nodes w@World { wrResource = rl, wrScene = scene } = do
-    -- done: create scene nodes
-    let mkNodes (w,pl,nl) a = do
-            (w',p,sn) <- a w
-            return (w',p:pl,sn:nl)
-    (w',p,nodel) <- foldM mkNodes (w,[],[]) nodes
-    -- done: register node ids and names to bimap
-    -- done: create graph nodes 
-    -- done: create graph edges
-    let namel = map snName nodel
-        nodeids = newNodes (length nodes) $ scGraph scene
-        m' = (scMap scene) `Map.union` (Map.fromList $ zip namel $ zip nodeids nodel)
-        g = insEdges (map fe p) $ insNodes (zip nodeids namel) $ scGraph scene
-        fe (p,c) = (fst $ m' ! p, fst $ m' ! c,())
-        scene' = scene 
-               { scGraph   = g
-               , scMap     = m'
-               --, scSky     :: Maybe Sky
-               }
 
-    return w' { wrScene = scene' }
-    
---updateTransforms :: [(String,Matrix4)] -> World -> IO World
-updateTransforms l = return . mapScene (\s -> foldr updateSceneNode s l)
+-- | Construct a scene object representing a polygon mesh.
+mesh :: (RenderSystem rs vb ib q t p lp, Enum rqp)
+     => Maybe rqp                               -- ^ Render queue priority (defaults to 'RQP_Main').
+     -> Maybe [String]                          -- ^ The list of materials to overried those supplied by the original mesh.
+     -> String                                  -- ^ The name of the mesh to use as the source.
+     -> MkSceneObjectAction rs vb ib q t p lp e
+mesh renderQueueID materials name = do
+    e <- createEntity name name (maybe (fromEnum RQP_Main) fromEnum renderQueueID)
+    case materials of
+        Nothing -> return (SO_Entity e)
+        Just mats -> SO_Entity <$> setEntityMaterial mats e
+
+-- | Construct a scene graph node description.
+node :: RenderSystem r vb ib q t p lp
+     => String                                    -- ^ The name of the parent node.
+     -> String                                    -- ^ The name of the node.
+     -> Proj4                                     -- ^ The transformation to apply the subtree with the node in its root.
+     -> [MkSceneObjectAction r vb ib q t p lp e]  -- ^ The scene objects that make up the node.
+     -> MkNodeAction r vb ib q t p lp e
+node parent name t objActs = do
+    o <- sequence objActs
+    return ((parent,name),SceneNode name o t)
+
+-- | Add a list of new nodes to the global scene.
+addScene :: RenderSystem r vb ib q t p lp => [MkNodeAction r vb ib q t p lp e] -> LCM (World r vb ib q t p lp) e ()
+addScene nodes = do
+    ns <- sequence nodes
+    graph <- scGraph . wrScene <$> peekLCM
+    let graph' = foldl' regNode graph ns
+        regNode g ((parent,name),node) = case addNode parent name node g of
+            Nothing -> error $ "Unknown parent node: " ++ parent
+            Just g' -> g'
+    updateWorld $ mapScene $ \s -> s { scGraph = graph' }
+
+-- | Update the transformation matrices of the given nodes.
+updateTransforms :: RenderSystem r vb ib q t p lp => [(String, Proj4)] -> LCM (World r vb ib q t p lp) e ()
+updateTransforms l = updateWorld $ mapScene $ \s -> s { scGraph = foldl' update (scGraph s) l }
   where
-    updateSceneNode (name,mat) scene = scene { scMap = Map.insert name (n,sn') m}
-      where
-        m = scMap scene
-        (n,sn) = m ! name
-        sn' = sn {snTransform = mat}
+    update g (name,mat) = updateNode (\sn -> sn { snTransform = mat }) name g
 
---flattenScene :: Scene -> FlattenScene
-flattenScene s = FlattenScene
-                 { fsCamera     = [(m,c) | (m,SO_Camera c) <- fs]
-                 , fsRenderable = [(m,prepare m e,rq,pr) | (m,SO_Entity e) <- fs]
-                 , fsLight      = [(m,l) | (m,SO_Light l) <- fs]
-                 }
+-- | Update the objects associated with the given nodes.
+updateObjects :: RenderSystem rs vb ib q t p lp => [(String, [MkSceneObjectAction rs vb ib q t p lp e])] -> LCM (World rs vb ib q t p lp) e ()
+updateObjects = mapM_ updateSceneNode
   where
-    rq = constRenderQueueMain
-    pr = constRenderableDefaultPriority
-    fs = visitNode s 0 $ transl 0 0 0
+    updateSceneNode (name,objActs) = do
+        o <- sequence objActs
+        updateWorld $ mapScene $ \s ->
+            s { scGraph = updateNode (\sn -> sn {snObject = o}) name (scGraph s) }
 
-    --visitNode :: Scene -> Int -> Matrix4 -> [(Matrix4,SceneObject)]
-    visitNode g n t = [(lt,e) | e <- snObject ln ] ++ (concat [ visitNode g sn lt | sn <- suc (scGraph g) n ])
+flattenScene :: (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => Scene vb ib t lp -> FlattenScene vb ib t lp
+flattenScene scene = FlattenScene
+    { fsCamera     = cs
+    , fsRenderable = rs
+    , fsLight      = ls
+    }
+  where
+    pr = renderableDefaultPriority
+    (cs,rs,ls) = foldr sep ([],[],[])
+                 [(m,o) | (m,os) <- flattenTree trans getObj idmtx (scGraph scene)
+                        , o <- os
+                        ]
       where
-        Just name = lab (scGraph g) n
-        ln = snd $ (scMap g) ! name
-        lt = (snTransform ln) <> t
+        trans t sn = snTransform sn .*. t
+        getObj t sn = (trans t sn, snObject sn)
 
+        sep (m,SO_Camera c) (cs,rs,ls) = ((m,c):cs,rs,ls)
+        sep (m,SO_Entity e) (cs,rs,ls) = (cs,(m,prepare m e,enRenderQueue e,pr):rs,ls)
+        sep (m,SO_Light l)  (cs,rs,ls) = (cs,rs,(m,l):ls)
+
+-- | Render the given target.
+renderWorld :: RenderSystem r vb ib q t p lp
+            => FloatType                          -- ^ The current time in seconds (needed for animation).
+            -> String                             -- ^ The target to render.
+            -> LCM (World r vb ib q t p lp) e ()
+renderWorld time target = do
+    flatScene <- flattenScene . wrScene <$> peekLCM
+    renderFlatScene time target flatScene
diff --git a/Graphics/LambdaCube/Skeleton.hs b/Graphics/LambdaCube/Skeleton.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/Skeleton.hs
@@ -0,0 +1,68 @@
+module Graphics.LambdaCube.Skeleton where
+
+import Graphics.LambdaCube.Types
+
+import Data.Map (Map)
+import Data.Tree
+import qualified Data.Vector as V
+
+data Bone = Bone
+    { bnPosition :: Vec3
+    , bnRotation :: U
+    }
+    deriving Show
+
+data KeyFrame = KeyFrame
+    { kfPosition :: Vec3
+    , kfRotation :: U
+    , kfTime     :: FloatType
+    }
+    deriving Show
+
+data Animation = Animation
+    { anTracks  :: V.Vector [KeyFrame]
+    , anLength  :: FloatType
+    , anName    :: String
+    }
+    deriving Show
+
+data Skeleton = Skeleton
+    { skBones       :: V.Vector Bone
+    , skBoneTree    :: Tree Int
+    , skAnimations  :: Map String Animation
+    }
+    deriving Show
+
+data PoseData = PoseData
+    { pdJointMatrix         :: Proj4
+    , pdInverseBindMatrix   :: Proj4
+    , pdWorldMatrix         :: Proj4
+    , pdSkinningMatrix      :: Proj4
+    }
+
+-- FIXME: remove Data.Vec.LinAlg.Transform3D dependency
+{-
+mat33ToMat44 (a:.b:.c:.()) = (h a):.(h b):.(h c):.(0:.0:.0:.1:.()):.()
+  where
+    h x = Vec.snoc 0 x
+
+poseData :: Skeleton -> Animation -> FloatType -> Vector PoseData
+poseData s a t = visit Nothing idPD $ skBoneTree s
+  where
+    bones = skBones s
+    idPD = V.replicate (V.length $ skBones s) $ PoseData idMat idMat idMat idMat
+    idMat = Vec.identity
+    visit p v (Node i []) = f p i v
+    visit p v (Node i l) = foldl' (visit $ Just i) (f p i v) l
+    f p i v = v // [(i,PoseData jm ibm wm sm)]
+      where
+        b = bones V.! i
+        rot = mat33ToMat44 $ quatToMat $ bnRotation b
+        trans = translation $ bnPosition b
+        jm = rot `multmm` trans
+        ibm = invertMat44 jm
+        wm = pwm `multmm` jm
+        sm = idMat
+        pwm = maybe idMat (\n -> pdWorldMatrix $ v V.! n) p
+
+-}
diff --git a/Graphics/LambdaCube/Technique.hs b/Graphics/LambdaCube/Technique.hs
--- a/Graphics/LambdaCube/Technique.hs
+++ b/Graphics/LambdaCube/Technique.hs
@@ -1,26 +1,21 @@
 module Graphics.LambdaCube.Technique where
 
-import Graphics.LambdaCube.RenderSystemCapabilities
+import Graphics.LambdaCube.GpuProgram
 import Graphics.LambdaCube.Pass
+import Graphics.LambdaCube.RenderSystemCapabilities
 import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.GpuProgram
 
--- | illumination pass state type
 data IlluminationPassesState
     = IPS_COMPILE_DISABLED
     | IPS_NOT_COMPILED
     | IPS_COMPILED
     deriving Eq
 
-{-| Directive used to manually control technique support based on the
-	inclusion or exclusion of some factor.
--}
 data IncludeOrExclude
     = INCLUDE -- ^ Inclusive - only support if present
     | EXCLUDE -- ^ Exclusive - do not support if present
     deriving Eq
 
--- | Rule controlling whether technique is deemed supported based on GPU vendor
 data GPUVendorRule
     = GPUVendorRule
     { gvrVendor           :: GPUVendor
@@ -28,7 +23,6 @@
     }
     deriving Eq
 
--- | Rule controlling whether technique is deemed supported based on GPU device name
 data GPUDeviceNameRule
     = GPUDeviceNameRule
     { gdrDevicePattern    :: String
@@ -37,48 +31,12 @@
     }
     deriving Eq
 
-{-| Class representing an approach to rendering this particular Material. 
-@remarks
-    Ogre will attempt to use the best technique supported by the active hardware, 
-    unless you specifically request a lower detail technique (say for distant
-    rendering).
--}
 data (Texture t, LinkedGpuProgram lp) => Technique t lp
     = Technique
     { tchPasses             :: [Pass t lp]           -- ^ List of primary passes
---    , tchIlluminationPasses :: [IlluminationPass] -- ^ List of derived passes, categorised into IlluminationStage (ordered)
-
---    , tchIsSupported        :: Bool
---    IlluminationPassesState mIlluminationPassesCompilationPhase;
     , tchLodIndex           :: Int              -- ^ LOD level
-    {-| Scheme index, derived from scheme name but the names are held on
-    	MaterialManager, for speed an index is used here.
-    -}
-    , tchSchemeIndex        :: Int 
+    , tchSchemeIndex        :: Int              -- ^ Scheme index, derived from scheme name but the names are held on MaterialManager, for speed an index is used here.
     , tchName               :: String           -- ^ optional name for the technique
-    
-    {-| When casting shadow, if not using default Ogre shadow casting material, or 
-      nor using fixed function casting, mShadowCasterMaterial let you customize per material
-      shadow caster behavior
-    -}
---    , tchShadowCasterMaterial :: Material
-    {-| When casting shadow, if not using default Ogre shadow casting material, or 
-      nor using fixed function casting, mShadowCasterMaterial let you customize per material
-      shadow caster behavior.There only material name is stored so that it can be loaded once all file parsed in a resource group.
-    -}
---    , tchShadowCasterMaterialName :: String
-    {-| When receiving shadow, if not using default Ogre shadow receiving material, or 
-      nor using fixed function texture projection receiving, mShadowReceiverMaterial let you customize per material
-      shadow caster behavior
-    -}
---    , tchShadowReceiverMaterial :: Material
-    {-| When receiving shadow, if not using default Ogre shadow receiving material, or 
-      nor using fixed function texture projection receiving, mShadowReceiverMaterial let you customize per material
-      shadow caster behavior. There only material name is stored so that it can be loaded once all file parsed in a resource group.
-    -}
---    , tchShadowReceiverMaterialName :: String
-
     , tchGPUVendorRules     :: [GPUVendorRule]
     , tchGPUDeviceNameRules :: [GPUDeviceNameRule]
     }
-    
diff --git a/Graphics/LambdaCube/Texture.hs b/Graphics/LambdaCube/Texture.hs
--- a/Graphics/LambdaCube/Texture.hs
+++ b/Graphics/LambdaCube/Texture.hs
@@ -1,54 +1,29 @@
 module Graphics.LambdaCube.Texture where
 
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.PixelFormat
 import Graphics.LambdaCube.HardwareBuffer
-
+import Graphics.LambdaCube.PixelFormat
+import Graphics.LambdaCube.Types
 
--- | Enum identifying the texture usage
 data TextureUsage
     = TextureUsage
     { tuUsage           :: Usage
     , tuAutoMipmap      :: Bool     -- ^ mipmaps will be automatically generated for this texture
-    , tuRenderTarget    :: Bool     -- ^ this texture will be a render target, i.e. used as a target for render to texture
-                                    --   setting this flag will ignore all other texture usages except TU_AUTOMIPMAP
+    , tuRenderTarget    :: Bool     -- ^ this texture will be a render target, i.e. used as a target for render to texture setting this flag will ignore all other texture usages except TU_AUTOMIPMAP
     }
-    deriving Eq
-{-
-enum TextureUsage
-{
-	/// @copydoc HardwareBuffer::Usage
-	TU_STATIC = HardwareBuffer::HBU_STATIC,
-	TU_DYNAMIC = HardwareBuffer::HBU_DYNAMIC,
-	TU_WRITE_ONLY = HardwareBuffer::HBU_WRITE_ONLY,
-	TU_STATIC_WRITE_ONLY = HardwareBuffer::HBU_STATIC_WRITE_ONLY, 
-	TU_DYNAMIC_WRITE_ONLY = HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY,
-	TU_DYNAMIC_WRITE_ONLY_DISCARDABLE = HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE,
-	/// mipmaps will be automatically generated for this texture
-	TU_AUTOMIPMAP = 0x100,
-	/// this texture will be a render target, i.e. used as a target for render to texture
-	/// setting this flag will ignore all other texture usages except TU_AUTOMIPMAP
-	TU_RENDERTARGET = 0x200,
-	/// default to automatic mipmap generation static textures
-	TU_DEFAULT = TU_AUTOMIPMAP | TU_STATIC_WRITE_ONLY
-    
-};
--}
+    deriving (Eq,Ord)
 
--- | Enum identifying the texture type
 data TextureType
     = TEX_TYPE_1D       -- ^ 1D texture, used in combination with 1D texture coordinates
     | TEX_TYPE_2D       -- ^ 2D texture, used in combination with 2D texture coordinates (default)
     | TEX_TYPE_3D       -- ^ 3D volume texture, used in combination with 3D texture coordinates
     | TEX_TYPE_CUBE_MAP -- ^ 3D cube map, used in combination with 3D texture coordinates
-    deriving (Eq,Show)
+    deriving (Eq,Ord,Show)
 
--- | Enum identifying special mipmap numbers
 data TextureMipmap
     = MIP_UNLIMITED -- ^ Generate mipmaps up to 1x1
     | MIP_DEFAULT   -- ^ Use TextureManager default
     | MIP_NUMBER Int
-    deriving Eq
+    deriving (Eq,Ord)
 
 class (Eq a, HardwareBuffer a) => Texture a where
     txName                      :: a -> String
@@ -65,10 +40,9 @@
     txTextureType               :: a -> TextureType
     txFormat                    :: a -> PixelFormat
 
-    --txUsage                     :: a -> TextureUsage
-    txAutoMipmap                :: a -> Bool    -- ^ mipmaps will be automatically generated for this texture
-    txRenderTarget              :: a -> Bool    -- ^ this texture will be a render target, i.e. used as a target for render to texture
-                                                --   setting this flag will ignore all other texture usages except TU_AUTOMIPMAP
+--    txUsage                     :: a -> TextureUsage
+--    txAutoMipmap                :: a -> Bool    -- ^ mipmaps will be automatically generated for this texture
+--    txRenderTarget              :: a -> Bool    -- ^ this texture will be a render target, i.e. used as a target for render to texture setting this flag will ignore all other texture usages except TU_AUTOMIPMAP
 
     txSrcFormat                 :: a -> PixelFormat
     txSrcWidth                  :: a -> Int
diff --git a/Graphics/LambdaCube/TextureUnitState.hs b/Graphics/LambdaCube/TextureUnitState.hs
--- a/Graphics/LambdaCube/TextureUnitState.hs
+++ b/Graphics/LambdaCube/TextureUnitState.hs
@@ -1,17 +1,11 @@
 module Graphics.LambdaCube.TextureUnitState where
 
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.Common
 import Graphics.LambdaCube.BlendMode
+import Graphics.LambdaCube.Common
 import Graphics.LambdaCube.PixelFormat
 import Graphics.LambdaCube.Texture
-
+import Graphics.LambdaCube.Types
 
-{-| Definition of the broad types of texture effect you can apply to a texture unit.
-@note
-    Note that these have no effect when using the programmable pipeline, since their
-    effect is overridden by the vertex / fragment programs.
--}
 data TextureEffectType
     = ET_ENVIRONMENT_MAP    -- ^ Generate all texture coords based on angle between camera and vertex
     | ET_PROJECTIVE_TEXTURE -- ^ Generate texture coords based on a frustum
@@ -20,24 +14,14 @@
     | ET_VSCROLL            -- ^ Constant u/v scrolling effect
     | ET_ROTATE             -- ^ Constant rotation
     | ET_TRANSFORM          -- ^ More complex transform
-    deriving Eq
+    deriving (Eq,Ord)
 
-{-| Enumeration to specify type of envmap.
-@note
-    Note that these have no effect when using the programmable pipeline, since their
-    effect is overridden by the vertex / fragment programs.
--}
 data EnvMapType
     = ENV_PLANAR     -- ^ Envmap based on vector from camera to vertex position, good for planar geometry
     | ENV_CURVED     -- ^ Envmap based on dot of vector from camera to vertex and vertex normal, good for curves
     | ENV_REFLECTION -- ^ Envmap intended to supply reflection vectors for cube mapping
     | ENV_NORMAL     -- ^ Envmap intended to supply normal vectors for cube mapping
-    
-{-| Useful enumeration when dealing with procedural transforms.
-@note
-    Note that these have no effect when using the programmable pipeline, since their
-    effect is overridden by the vertex / fragment programs.
--}
+
 data TextureTransformType
     = TT_TRANSLATE_U
     | TT_TRANSLATE_V
@@ -45,28 +29,21 @@
     | TT_SCALE_V
     | TT_ROTATE
 
-{-| Texture addressing modes - default is TAM_WRAP.
-@note
-    These settings are relevant in both the fixed-function and the
-    programmable pipeline.
--}
 data TextureAddressingMode
     = TAM_WRAP   -- ^ Texture wraps at values over 1.0
     | TAM_MIRROR -- ^ Texture mirrors (flips) at joins over 1.0
     | TAM_CLAMP  -- ^ Texture clamps at 1.0
     | TAM_BORDER -- ^ Texture coordinates outside the range [0.0, 1.0] are set to the border colour
-    deriving Eq
+    deriving (Eq,Ord)
 
--- | Texture addressing mode for each texture coordinate.
-data UVWAddressingMode 
+data UVWAddressingMode
     = UVWAddressingMode
     { amU :: TextureAddressingMode
     , amV :: TextureAddressingMode
     , amW :: TextureAddressingMode
     }
-    deriving Eq
+    deriving (Eq,Ord)
 
--- | Enum identifying the frame indexes for faces of a cube map (not the composite 3D type.
 data TextureCubeFace
     = CUBE_FRONT
     | CUBE_BACK
@@ -86,14 +63,14 @@
     | ET_TRANSFORM          -- ^ More complex transform
 
 xform info:
-    - anim type (scroll,rotate,scale) 
+    - anim type (scroll,rotate,scale)
     - wave type (sine,triangle,square,sawtooth,inversesawtooth)
     - base
     - frequency
     - phase
     - amplitude
 -}
--- | Internal structure defining a texture effect.
+
 data TextureEffect
     = TextureEffect
     { teType        :: TextureEffectType
@@ -106,43 +83,24 @@
     , tePhase       :: FloatType
     , teAmplitude   :: FloatType
     }
-    deriving Eq
+    deriving (Eq,Ord)
 
--- | The type of unit to bind the texture settings to.
 data BindingType
     = BT_FRAGMENT   -- ^ Regular fragment processing unit - the default.
-    | BT_VERTEX     -- ^ Vertex processing unit - indicates this unit will be used for 
+    | BT_VERTEX     -- ^ Vertex processing unit - indicates this unit will be used for
                     --   a vertex texture fetch.
-    deriving Eq
-    
--- | Enum identifying the type of content this texture unit contains.    
+    deriving (Eq,Ord)
+
 data ContentType
     = CONTENT_NAMED  -- ^ Normal texture identified by name
     | CONTENT_SHADOW -- ^ A shadow texture, automatically bound by engine
-    deriving Eq
-
--------------------------------------------------
+    deriving (Eq,Ord)
 
-{-| Class representing the state of a single texture unit during a Pass of a
-    Technique, of a Material.
-@remarks
-    Texture units are pipelines for retrieving texture data for rendering onto
-    your objects in the world. Using them is common to both the fixed-function and 
-    the programmable (vertex and fragment program) pipeline, but some of the 
-    settings will only have an effect in the fixed-function pipeline (for example, 
-    setting a texture rotation will have no effect if you use the programmable
-    pipeline, because this is overridden by the fragment program). The effect
-    of each setting as regards the 2 pipelines is commented in each setting.
-@par
-    When I use the term 'fixed-function pipeline' I mean traditional rendering
-    where you do not use vertex or fragment programs (shaders). Programmable 
-    pipeline means that for this pass you are using vertex or fragment programs.
--}
 data Texture t => TextureUnitState t
     = TextureUnitState
     { tusAnimDuration            :: Maybe FloatType     -- ^ Duration of animation in seconds
     , tusCubic                   :: Bool                -- ^ is this a series of 6 2D textures to make up a cube?
-    
+
     , tusTextureType             :: TextureType
     , tusDesiredFormat           :: PixelFormat
     , tusTextureSrcMipmaps       :: TextureMipmap       -- ^ Request number of mipmaps
@@ -156,18 +114,15 @@
     , tusColourBlendFallbackDest :: SceneBlendFactor
 
     , tusAlphaBlendMode          :: LayerBlendModeEx
---        mutable bool mTextureLoadFailed;
---    , tusTextureLoadFailed       :: Bool
+
     , tusIsAlpha                 :: Bool
     , tusHwGamma                 :: Bool
 
---        mutable bool mRecalcTexMatrix;
     , tusUMod                    :: FloatType
     , tusVMod                    :: FloatType
     , tusUScale                  :: FloatType
     , tusVScale                  :: FloatType
     , tusRotate                  :: FloatType
---        mutable Matrix4 mTexModMatrix;
 
     , tusMinFilter               :: FilterOptions       -- ^ Texture filtering - minification
     , tusMagFilter               :: FilterOptions       -- ^ Texture filtering - magnification
@@ -176,8 +131,6 @@
     , tusMaxAniso                :: Int             -- ^ Texture anisotropy
     , tusMipmapBias              :: FloatType       -- ^ Mipmap bias
 
---        bool mIsDefaultAniso;
---        bool mIsDefaultFiltering;
     , tusBindingType             :: BindingType      -- ^ Binding type (fragment or vertex pipeline)
     , tusContentType             :: ContentType      -- ^ Content type of texture (normal loaded texture, auto-texture)
 
@@ -186,10 +139,5 @@
     , tusName                    :: String          -- ^ optional name for the TUS
     , tusTextureAlias            :: String          -- ^ optional alias for texture frames
     , tusEffects                 :: [TextureEffect]
---------------------------------------
-
-    -- typedef multimap<TextureEffectType, TextureEffect>::type EffectMap;
-    -- EffectMap mEffects;
     }
-    deriving Eq
-
+    deriving (Eq,Ord)
diff --git a/Graphics/LambdaCube/Tree.hs b/Graphics/LambdaCube/Tree.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/Tree.hs
@@ -0,0 +1,80 @@
+{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
+
+module Graphics.LambdaCube.Tree where
+
+import Data.ByteString.Char8 (ByteString)
+import Data.Trie (Trie)
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Trie as T
+import qualified Data.Trie.Convenience as T
+
+-- Contains full paths mapped to data and node names mapped to full
+-- paths, where the path separator is NUL.
+data IndexedTree a = IT String (Trie a) (Trie ByteString) deriving Show
+
+separator :: ByteString
+separator = B.pack "\0"
+
+sep :: Char
+sep = B.head separator
+
+root :: String -> a -> IndexedTree a
+root name dat = IT "\1" (T.singleton nn dat) (T.singleton n nn)
+  where
+    n = B.pack name
+    nn = B.pack "\1"
+
+-- Returns Nothing if parent is not found.  Ignores parent if the node
+-- already exists, and only replaces the data.
+addNode :: String -> String -> a -> IndexedTree a -> Maybe (IndexedTree a)
+addNode parent name dat it@(IT nn dm nm) = case T.member n nm of
+    True -> Just (updateNode (const dat) name it)
+    False -> fmap add (T.lookup p nm)
+  where
+    p = B.pack parent
+    n = B.pack name
+    nn' = nextName nn
+    add path = IT nn' (T.insert path' dat dm) (T.insert n path' nm)
+      where
+        path' = B.intercalate separator [path, B.pack nn']
+
+-- Deletes node with its whole subtree.
+deleteNode :: String -> IndexedTree a -> IndexedTree a
+deleteNode name it@(IT nn dm nm) = case T.lookup n nm of
+    Nothing -> it
+    Just path -> IT nn dm' nm'
+      where
+        subkeys = T.keys (T.submap path dm)
+        subnames = map (snd . B.breakEnd (==sep)) subkeys
+        dm' = T.disunion dm (T.fromListS (map (\k -> (k,undefined)) subkeys))
+        nm' = T.disunion nm (T.fromListS (map (\k -> (k,B.pack "")) subnames))
+  where
+    n = B.pack name
+
+updateNode :: (a -> a) -> String -> IndexedTree a -> IndexedTree a
+updateNode f name it@(IT nn dm nm) = case T.lookup n nm of
+    Nothing -> it
+    Just path -> IT nn (T.adjust f path dm) nm
+  where
+    n = B.pack name
+
+getDataAt :: String -> IndexedTree a -> Maybe a
+getDataAt name (IT _ dm nm) = flip T.lookup dm =<< T.lookup n nm
+  where
+    n = B.pack name
+
+flattenTree :: (a -> b -> a) -> (a -> b -> r) -> a -> IndexedTree b -> [r]
+flattenTree f g acc (IT _ dm _) = go (T.toList dm) [] [acc]
+  where
+    go [] _ _ = []
+    go ((path,dat):pds') [] as@(acc:_) = g acc dat : go pds' [path] (f acc dat:as)
+    go pds@((path,dat):pds') ps@(p:ps') as@(acc:as')
+        | prefix    = g acc dat : go pds' (path:ps) (f acc dat:as)
+        | otherwise = go pds ps' as'
+      where
+        prefix = (p `B.isPrefixOf` path) && (B.index path (B.length p) == sep)
+
+nextName :: String -> String
+nextName "" = "\1"
+nextName ('\255':s) = '\1' : nextName s
+nextName (c:s) = succ c : s
diff --git a/Graphics/LambdaCube/Types.hs b/Graphics/LambdaCube/Types.hs
--- a/Graphics/LambdaCube/Types.hs
+++ b/Graphics/LambdaCube/Types.hs
@@ -1,22 +1,23 @@
-module Graphics.LambdaCube.Types where
+module Graphics.LambdaCube.Types (
+    FloatType, FloatType2, FloatType3, FloatType4,
+    RGB, ColourValue,
+    -- * Reexports
+    module Data.Vect.Float,
+    module Data.Vect.Float.Instances,
+    module Data.Vect.Float.Util.Quaternion
+) where
 
-import Foreign.C.Types
+import Data.Vect.Float
+import Data.Vect.Float.Instances
+import Data.Vect.Float.Util.Quaternion
 
+-- | The floating point type used throughout the engine.  It is
+-- recommended to use this synonym ubiquitously in code interfacing
+-- with LambdaCube.
 type FloatType = Float
 --type FloatType = CFloat
 --type FloatType = Double
 --type FloatType = CDouble
-
-data Matrix4 = Matrix4
-    !FloatType !FloatType !FloatType !FloatType
-    !FloatType !FloatType !FloatType !FloatType
-    !FloatType !FloatType !FloatType !FloatType
-    !FloatType !FloatType !FloatType !FloatType
-    deriving (Read, Show, Eq)
-
-data Vec4 = Vec4 !FloatType !FloatType !FloatType !FloatType
-    deriving (Read, Show, Eq)
-    
 
 type FloatType2 = (FloatType,FloatType)
 type FloatType3 = (FloatType,FloatType,FloatType)
diff --git a/Graphics/LambdaCube/Utility.hs b/Graphics/LambdaCube/Utility.hs
--- a/Graphics/LambdaCube/Utility.hs
+++ b/Graphics/LambdaCube/Utility.hs
@@ -1,7 +1,14 @@
 module Graphics.LambdaCube.Utility where
 
-import Data.List
+import Data.List hiding (transpose)
 
+import Graphics.LambdaCube.Types
+
+groupSetBy :: (a -> a -> Ordering) -> [a] -> [[a]]
+groupSetBy f = groupBy (\x y -> f x y == EQ) . sortBy f
+
+{-
+groupSetBy :: (a -> a -> Bool) -> [a] -> [[a]]
 groupSetBy f l = foldl' g [] l
   where
     g el e = case partition ((f e) . head) el of
@@ -9,3 +16,41 @@
         ; ([gl],el')    -> (e:gl):el'
         ; _ -> error "Invalid case!"
         }
+-}
+
+-- | Perspective transformation matrix.
+perspective :: FloatType  -- ^ Near plane clipping distance (always positive).
+            -> FloatType  -- ^ Far plane clipping distance (always positive).
+            -> FloatType  -- ^ Field of view of the y axis, in radians.
+            -> FloatType  -- ^ Aspect ratio, i.e. screen's width\/height.
+            -> Mat4
+perspective n f fovy aspect = transpose $
+    Mat4 (Vec4 (2*n/(r-l)) 0 (-(r+l)/(r-l)) 0)
+         (Vec4 0 (2*n/(t-b)) ((t+b)/(t-b)) 0)
+         (Vec4 0 0 (-(f+n)/(f-n)) (-2*f*n/(f-n)))
+         (Vec4 0 0 (-1) 0)
+  where
+    t = n*tan(fovy/2)
+    b = -t
+    r = aspect*t
+    l = -r
+
+-- | Pure orientation matrix defined by Euler angles.
+rotationEuler :: Vec3 -> Proj4
+rotationEuler (Vec3 a b c) = orthogonal $ toOrthoUnsafe $ rotMatrixY a .*. rotMatrixX b .*. rotMatrixZ c
+
+-- | Camera transformation matrix.
+lookat :: Vec3   -- ^ Camera position.
+       -> Vec3   -- ^ Target position.
+       -> Vec3   -- ^ Upward direction.
+       -> Proj4
+lookat pos target up = translateBefore4 (neg pos) (orthogonal $ toOrthoUnsafe r)
+  where
+    w = normalize $ pos &- target
+    u = normalize $ up &^ w
+    v = w &^ u
+    r = transpose $ Mat3 u v w
+
+foldM' :: Monad m => (a -> b -> m a) -> a -> [b] -> m a
+foldM' _ a []     = return a
+foldM' f a (x:xs) = f a x >>= \fax -> fax `seq` foldM' f fax xs
diff --git a/Graphics/LambdaCube/VertexBufferVector.hs b/Graphics/LambdaCube/VertexBufferVector.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/LambdaCube/VertexBufferVector.hs
@@ -0,0 +1,253 @@
+module Graphics.LambdaCube.VertexBufferVector where
+
+import Control.Applicative
+import Control.Monad
+import Data.List (foldl')
+import Data.Vector (Vector)
+import Data.Word
+import Foreign.Marshal.Array
+import Foreign.Ptr
+import Foreign.Storable
+import Graphics.LambdaCube.HardwareBuffer
+import Graphics.LambdaCube.HardwareIndexBuffer
+import Graphics.LambdaCube.HardwareVertexBuffer
+import Graphics.LambdaCube.Mesh
+import Graphics.LambdaCube.RenderOperation
+import Graphics.LambdaCube.RenderSystem
+import Graphics.LambdaCube.Types hiding (Vector)
+import Graphics.LambdaCube.VertexIndexData
+import qualified Data.IntMap as IntMap
+import qualified Data.Map as Map
+import qualified Data.Vector as V
+import qualified Data.Vector.Mutable as MV
+
+-- TODO: fix diffuse and specular types
+
+-- | The types of 'VectorVertexData' without the data.
+data VectorVertexType
+    = VVT_POSITION
+    | VVT_BLEND_WEIGHTS
+    | VVT_BLEND_INDICES
+    | VVT_NORMAL
+    | VVT_DIFFUSE
+    | VVT_SPECULAR
+    | VVT_TEXTURE_COORDINATES1
+    | VVT_TEXTURE_COORDINATES2
+    | VVT_TEXTURE_COORDINATES3
+    | VVT_BINORMAL
+    | VVT_TANGENT
+    deriving (Eq,Ord,Show)
+
+-- | Primitive buffer data
+data VectorVertexData
+    = VVD_POSITION              (Vector Vec3)
+    | VVD_BLEND_WEIGHTS         (Vector FloatType)
+    | VVD_BLEND_INDICES         (Vector Int)
+    | VVD_NORMAL                (Vector Vec3)
+    | VVD_DIFFUSE               (Vector Vec4)
+    | VVD_SPECULAR              (Vector Vec4)
+    | VVD_TEXTURE_COORDINATES1  (Vector FloatType)
+    | VVD_TEXTURE_COORDINATES2  (Vector Vec2)
+    | VVD_TEXTURE_COORDINATES3  (Vector Vec3)
+    | VVD_BINORMAL              (Vector Vec3)
+    | VVD_TANGENT               (Vector Vec3)
+    deriving (Show)
+
+type VVB = Vector VectorVertexData
+type VIB = Vector Int
+
+-- | Multimaterial geometry, including a default geometry for
+-- submeshes that don't provide their own.
+data VMesh
+    = VMesh
+    { vmSubMeshList         :: [VSubMesh]  -- ^ The collection of single-material submeshes making up the mesh.
+    , vmSharedVertexData    :: Maybe VVB   -- ^ Default geometry for submeshes.
+    }
+
+-- | Geometry with associated material.
+data VSubMesh
+    = VSubMesh
+    { vsmMaterialName   :: String         -- ^ The material associated with the submesh.
+    , vsmOperationType  :: OperationType  -- ^ The type of primitives making up the geometry.
+    , vsmVertexData     :: Maybe VVB      -- ^ Optional vertex buffer (supplied by the containing mesh if absent).
+    , vsmIndexData      :: Maybe VIB      -- ^ Optional index buffer.
+    }
+
+-- | Extract the type of the vertex data.
+vectorVertexType :: VectorVertexData -> VectorVertexType
+vectorVertexType v = case v of
+    VVD_POSITION _              -> VVT_POSITION
+    VVD_BLEND_WEIGHTS _         -> VVT_BLEND_WEIGHTS
+    VVD_BLEND_INDICES _         -> VVT_BLEND_INDICES
+    VVD_NORMAL _                -> VVT_NORMAL
+    VVD_DIFFUSE _               -> VVT_DIFFUSE
+    VVD_SPECULAR _              -> VVT_SPECULAR
+    VVD_TEXTURE_COORDINATES1 _  -> VVT_TEXTURE_COORDINATES1
+    VVD_TEXTURE_COORDINATES2 _  -> VVT_TEXTURE_COORDINATES2
+    VVD_TEXTURE_COORDINATES3 _  -> VVT_TEXTURE_COORDINATES3
+    VVD_BINORMAL _              -> VVT_BINORMAL
+    VVD_TANGENT _               -> VVT_TANGENT
+
+{-
+    TODO:
+        - implement interleaved to non-interleaved vertex buffer conversion function
+        - implement much faster VectorVertexData conversion via storable vector interface
+-}
+toVectorIndexData :: HardwareIndexBuffer ib => IndexData ib -> IO VIB
+toVectorIndexData idata = do
+    let ib      = idIndexBuffer idata
+        n       = idIndexCount idata
+        isize   = getIndexSize ib
+    buf <- lock ib (idIndexStart idata * isize) (n * isize) HBL_READ_ONLY
+    v <- MV.new n
+    case getIndexType ib of
+        IT_16BIT -> forM [0..n-1] $ \i -> do
+                a <- peek $ plusPtr buf $ i*isize :: IO Word16
+                MV.write v i $ fromIntegral a
+        IT_32BIT -> forM [0..n-1] $ \i -> do
+                a <- peek $ plusPtr buf $ i*isize :: IO Word32
+                MV.write v i $ fromIntegral a
+    unlock ib
+    V.freeze v
+
+fromVectorIndexData :: (RenderSystem rs vb ib q t p lp) => rs -> VIB -> IO (IndexData ib)
+fromVectorIndexData rs vib = do
+    let indexCount      = V.length vib
+        usage           = HBU_STATIC -- TODO
+    -- create IndexData
+    ib <- createIndexBuffer rs IT_32BIT indexCount usage True
+    -- 1. lock buffer
+    ptr <- lock ib 0 (getSizeInBytes ib) HBL_NORMAL
+    -- 2. fill buffer
+    pokeArray (castPtr ptr) $ map (fromIntegral :: Int -> Word32) $ V.toList vib
+    -- 3. unlock buffer
+    unlock ib
+    return $ IndexData
+        { idIndexBuffer = ib
+        , idIndexStart  = 0
+        , idIndexCount  = indexCount
+        }
+
+toVectorVertexData :: HardwareVertexBuffer vb => VertexData vb -> IO (Vector VectorVertexData)
+toVectorVertexData vd = do
+    let n       = vdVertexCount vd
+        vl      = vdElementList $ vdVertexDeclaration vd
+        vbmap   = vbbBindingMap $ vdVertexBufferBinding vd
+        g ve f  = do
+            let vb = vbmap IntMap.! (veSource ve)
+                vsize = getVertexSize vb
+            buf <- lock vb 0 (getSizeInBytes vb) HBL_READ_ONLY
+            let p0 = plusPtr buf $ veOffset ve
+            v <- MV.new n
+            forM [0..n-1] $ \i -> do
+                a <- peek $ plusPtr p0 $ i*vsize
+                MV.write v i $ f a
+            unlock vb
+            V.freeze v
+        gv ve = g ve id
+        gs ve = g ve id
+        createVDVector ve = case (veSemantic ve, veType ve) of
+            (VES_POSITION,VET_FLOAT3)               -> VVD_POSITION <$> gv ve
+            (VES_BLEND_WEIGHTS,VET_FLOAT1)          -> VVD_BLEND_WEIGHTS <$> gs ve
+            (VES_BLEND_INDICES,VET_SHORT1)          -> VVD_BLEND_INDICES <$> gs ve
+            (VES_NORMAL,VET_FLOAT3)                 -> VVD_NORMAL <$> gv ve
+            (VES_DIFFUSE,VET_COLOUR_ABGR)           -> VVD_DIFFUSE <$> gv ve
+            (VES_SPECULAR,VET_COLOUR_ABGR)          -> VVD_SPECULAR <$> gv ve
+            (VES_TEXTURE_COORDINATES,VET_FLOAT1)    -> VVD_TEXTURE_COORDINATES1 <$> gs ve
+            (VES_TEXTURE_COORDINATES,VET_FLOAT2)    -> VVD_TEXTURE_COORDINATES2 <$> gv ve
+            (VES_TEXTURE_COORDINATES,VET_FLOAT3)    -> VVD_TEXTURE_COORDINATES3 <$> gv ve
+            (VES_BINORMAL,VET_FLOAT3)               -> VVD_BINORMAL <$> gv ve
+            (VES_TANGENT,VET_FLOAT3)                -> VVD_TANGENT <$> gv ve
+            _ -> error "Not supported vertex buffer format"
+    l <- mapM createVDVector vl
+    return $ V.fromList l
+
+fromVectorVertexData :: (RenderSystem rs vb ib q t p lp) => rs -> Vector VectorVertexData -> IO (VertexData vb)
+fromVectorVertexData rs vd = do
+    let -- aggregated type: offset, veIndex Map, [VertexElement], vertex count
+        (size,_,elems,vcount) = foldl' f (0,Map.empty,[],0) $ V.toList vd
+        f (o,m,ex,_) ve = (o + getTypeSize vt, Map.insert vs (i+1) m,(vf,VertexElement 0 o vt vs i):ex,vc)
+          where
+            i = (Map.findWithDefault 0 vs m)
+            (vs,vt,vf,vc) = cf ve
+            g a ptr vsize = V.foldM' (\p ed -> do poke (castPtr p) ed; return $ plusPtr p vsize) (plusPtr ptr o) a
+            g' a ptr vsize = V.foldM' (\p ed -> do poke (castPtr p) ed; return $ plusPtr p vsize) (plusPtr ptr o) a
+            cf t = case t of
+                VVD_POSITION a              -> (VES_POSITION,VET_FLOAT3,g a,V.length a)
+                VVD_BLEND_WEIGHTS a         -> (VES_BLEND_WEIGHTS,VET_FLOAT1,g' a,V.length a)
+                VVD_BLEND_INDICES a         -> (VES_BLEND_INDICES,VET_SHORT1,g' a,V.length a)
+                VVD_NORMAL a                -> (VES_NORMAL,VET_FLOAT3,g a,V.length a)
+                VVD_DIFFUSE a               -> (VES_DIFFUSE,VET_COLOUR_ABGR,g a,V.length a)
+                VVD_SPECULAR a              -> (VES_SPECULAR,VET_COLOUR_ABGR,g a,V.length a)
+                VVD_TEXTURE_COORDINATES1 a  -> (VES_TEXTURE_COORDINATES,VET_FLOAT1,g' a,V.length a)
+                VVD_TEXTURE_COORDINATES2 a  -> (VES_TEXTURE_COORDINATES,VET_FLOAT2,g a,V.length a)
+                VVD_TEXTURE_COORDINATES3 a  -> (VES_TEXTURE_COORDINATES,VET_FLOAT3,g a,V.length a)
+                VVD_BINORMAL a              -> (VES_BINORMAL,VET_FLOAT3,g a,V.length a)
+                VVD_TANGENT a               -> (VES_TANGENT,VET_FLOAT3,g a,V.length a)
+        -- create VertexDeclaration
+        decl = VertexDeclaration $ map snd elems
+        -- create VertexBufferBinding
+        usage = HBU_STATIC -- TODO
+
+    --debugM "fromVectorVertexData" $ "gemetry declaration: " ++ show decl
+
+    bufs <- mapM (\s -> createVertexBuffer rs s vcount usage True) [size]
+    let binding = VertexBufferBinding $ IntMap.fromList $ zip [0..] bufs
+        fillBuffer (d,b) = do
+            -- 1. lock buffer
+            ptr <- lock b 0 (getSizeInBytes b) HBL_NORMAL
+            let vsize = getVertexSize b
+                fillAttribute (vf,_) = vf ptr vsize
+            -- 2. fill vertex attributes according declaration
+            mapM_ fillAttribute d
+            -- 3. unlock buffer
+            unlock b
+            -- end fillBuffer
+
+    -- fill buffers with data
+    mapM_ fillBuffer $ zip [elems] bufs
+
+    -- create VertexData
+    return $ VertexData decl binding 0 vcount
+
+-- utility functions
+meshFromV :: (RenderSystem rs vb ib q t p lp) => rs -> VMesh -> IO (Mesh vb ib)
+meshFromV rs vmesh = do
+    let convMVVD mvvd = case mvvd of
+            Nothing -> return Nothing
+            Just vvd -> Just <$> fromVectorVertexData rs vvd
+        convMVID mvid = case mvid of
+            Nothing -> return Nothing
+            Just vid -> Just <$> fromVectorIndexData rs vid
+    sm <- forM (vmSubMeshList vmesh) $ \vsm -> do
+        vdata <- convMVVD $ vsmVertexData vsm
+        idata <- convMVID $ vsmIndexData vsm
+        return $ SubMesh
+            { smOperationType       = vsmOperationType vsm
+            , smVertexData          = vdata
+            , smIndexData           = idata
+            , smMaterialName        = vsmMaterialName vsm
+            }
+    svd <- convMVVD $ vmSharedVertexData vmesh
+    let mesh = Mesh
+            { msSubMeshList                 = sm
+            , msSharedVertexData            = svd
+            , msBoundRadius                 = undefined
+            }
+    r <- calculateBoundingRadius mesh
+    return mesh { msBoundRadius = r }
+
+vFromMesh :: (HardwareVertexBuffer vb, HardwareIndexBuffer ib) => Mesh vb ib -> IO VMesh
+vFromMesh mesh = do
+    let convMVD mvd = case mvd of
+            Nothing -> return Nothing
+            Just vd -> Just <$> toVectorVertexData vd
+        convMID mid = case mid of
+            Nothing -> return Nothing
+            Just ixd -> Just <$> toVectorIndexData ixd
+    vsm <- forM (msSubMeshList mesh) $ \sm -> do
+        vdata <- convMVD $ smVertexData sm
+        idata <- convMID $ smIndexData sm
+        return $ VSubMesh (smMaterialName sm) (smOperationType sm) vdata idata
+    vsvd <- convMVD $ msSharedVertexData mesh
+    return $ VMesh vsm vsvd
diff --git a/Graphics/LambdaCube/VertexIndexData.hs b/Graphics/LambdaCube/VertexIndexData.hs
--- a/Graphics/LambdaCube/VertexIndexData.hs
+++ b/Graphics/LambdaCube/VertexIndexData.hs
@@ -1,239 +1,21 @@
 module Graphics.LambdaCube.VertexIndexData where
 
-import Graphics.LambdaCube.HardwareVertexBuffer
 import Graphics.LambdaCube.HardwareIndexBuffer
+import Graphics.LambdaCube.HardwareVertexBuffer
 
--- | Summary class collecting together vertex source information.
 data HardwareVertexBuffer vb => VertexData vb
     = VertexData
-    { 
-    {-| Declaration of the vertex to be used in this operation.
-    @remarks Note that this is created for you on construction.
-    -}
-      vdVertexDeclaration   :: VertexDeclaration
-    {-| The vertex buffer bindings to be used. 
-    @remarks Note that this is created for you on construction.
-    -}
-    , vdVertexBufferBinding :: VertexBufferBinding vb
-    ---- | Whether this class should delete the declaration and binding
-    --bool mDeleteDclBinding;
-    -- | The base vertex index to start from
-    , vdVertexStart         :: Int
-    -- | The number of vertices used in this operation
-    , vdVertexCount         :: Int
+    { vdVertexDeclaration   :: VertexDeclaration        -- ^ Declaration of the vertex to be used in this operation. remarks Note that this is created for you on construction.
+    , vdVertexBufferBinding :: VertexBufferBinding vb   -- ^ The vertex buffer bindings to be used. remarks Note that this is created for you on construction.
+    , vdVertexStart         :: Int                      -- ^ The base vertex index to start from
+    , vdVertexCount         :: Int                      -- ^ The number of vertices used in this operation
     }
-    deriving Eq
--- | Struct used to hold hardware morph / pose vertex data information
---struct HardwareAnimationData
---{
---	const VertexElement* targetVertexElement;
---	Real parametric;
---};
---typedef vector<HardwareAnimationData>::type HardwareAnimationDataList;
--- | VertexElements used for hardware morph / pose animation
---HardwareAnimationDataList hwAnimationDataList;
--- | Number of hardware animation data items used
---size_t hwAnimDataItemsUsed;
-	
-	{-| Clones this vertex data, potentially including replicating any vertex buffers.
-	@param copyData Whether to create new vertex buffers too or just reference the existing ones
-	@param mgr If supplied, the buffer manager through which copies should be made
-	@remarks The caller is expected to delete the returned pointer when ready
-	-}
---	VertexData* clone(bool copyData = true, HardwareBufferManagerBase* mgr = 0) const;
-
-    {-| Modifies the vertex data to be suitable for use for rendering shadow geometry.
-    @remarks
-        Preparing vertex data to generate a shadow volume involves firstly ensuring that the 
-        vertex buffer containing the positions is a standalone vertex buffer,
-        with no other components in it. This method will therefore break apart any existing
-        vertex buffers if position is sharing a vertex buffer. 
-        Secondly, it will double the size of this vertex buffer so that there are 2 copies of 
-        the position data for the mesh. The first half is used for the original, and the second 
-        half is used for the 'extruded' version. The vertex count used to render will remain 
-        the same though, so as not to add any overhead to regular rendering of the object.
-        Both copies of the position are required in one buffer because shadow volumes stretch 
-        from the original mesh to the extruded version. 
-    @par
-        It's important to appreciate that this method can fundamentally change the structure of your
-        vertex buffers, although in reality they will be new buffers. As it happens, if other 
-        objects are using the original buffers then they will be unaffected because the reference
-        counting will keep them intact. However, if you have made any assumptions about the 
-        structure of the vertex data in the buffers of this object, you may have to rethink them.
-    -}
---    void prepareForShadowVolume(void);
-
-    {-| Additional shadow volume vertex buffer storage. 
-    @remarks
-        This additional buffer is only used where we have prepared this VertexData for
-        use in shadow volume construction, and where the current render system supports
-        vertex programs. This buffer contains the 'w' vertex position component which will
-        be used by that program to differentiate between extruded and non-extruded vertices.
-        This 'w' component cannot be included in the original position buffer because
-        DirectX does not allow 4-component positions in the fixed-function pipeline, and the original
-        position buffer must still be usable for fixed-function rendering.
-    @par    
-        Note that we don't store any vertex declaration or vertex buffer binding here because this
-        can be reused in the shadow algorithm.
-    -}
---    HardwareVertexBufferSharedPtr hardwareShadowVolWBuffer;
-
-
-	{-| Reorganises the data in the vertex buffers according to the 
-		new vertex declaration passed in. Note that new vertex buffers
-		are created and written to, so if the buffers being referenced 
-		by this vertex data object are also used by others, then the 
-		original buffers will not be damaged by this operation.
-		Once this operation has completed, the new declaration 
-		passed in will overwrite the current one.
-	@param newDeclaration The vertex declaration which will be used
-		for the reorganised buffer state. Note that the new declaration
-		must not include any elements which do not already exist in the 
-		current declaration; you can drop elements by 
-		excluding them from the declaration if you wish, however.
-	@param bufferUsages Vector of usage flags which indicate the usage options
-		for each new vertex buffer created. The indexes of the entries must correspond
-		to the buffer binding values referenced in the declaration.
-	@param mgr Optional pointer to the manager to use to create new declarations
-		and buffers etc. If not supplied, the HardwareBufferManager singleton will be used
-	-}
---	void reorganiseBuffers(VertexDeclaration* newDeclaration, const BufferUsageList& bufferUsage, 
---		HardwareBufferManagerBase* mgr = 0);
-
-	{-| Reorganises the data in the vertex buffers according to the 
-		new vertex declaration passed in. Note that new vertex buffers
-		are created and written to, so if the buffers being referenced 
-		by this vertex data object are also used by others, then the 
-		original buffers will not be damaged by this operation.
-		Once this operation has completed, the new declaration 
-		passed in will overwrite the current one.
-        This version of the method derives the buffer usages from the existing
-        buffers, by using the 'most flexible' usage from the equivalent sources.
-	@param newDeclaration The vertex declaration which will be used
-		for the reorganised buffer state. Note that the new delcaration
-		must not include any elements which do not already exist in the 
-		current declaration; you can drop elements by 
-		excluding them from the declaration if you wish, however.
-	@param mgr Optional pointer to the manager to use to create new declarations
-		and buffers etc. If not supplied, the HardwareBufferManager singleton will be used
-	-}
---	void reorganiseBuffers(VertexDeclaration* newDeclaration, HardwareBufferManagerBase* mgr = 0);
-
-    {-| Remove any gaps in the vertex buffer bindings.
-    @remarks
-        This is useful if you've removed elements and buffers from this vertex
-        data and want to remove any gaps in the vertex buffer bindings. This
-        method is mainly useful when reorganising vertex data manually.
-    @note
-        This will cause binding index of the elements in the vertex declaration
-        to be altered to new binding index.
-    -}
---    void closeGapsInBindings(void);
-
-    {-| Remove all vertex buffers that never used by the vertex declaration.
-    @remarks
-        This is useful if you've removed elements from the vertex declaration
-        and want to unreference buffers that never used any more. This method
-        is mainly useful when reorganising vertex data manually.
-    @note
-        This also remove any gaps in the vertex buffer bindings.
-    -}
---    void removeUnusedBuffers(void);
-
-	{-| Convert all packed colour values (VET_COLOUR_*) in buffers used to
-		another type.
-	@param srcType The source colour type to assume if the ambiguous VET_COLOUR
-		is encountered.
-	@param destType The destination colour type, must be VET_COLOUR_ABGR or
-		VET_COLOUR_ARGB.
-	-}
---	void convertPackedColour(VertexElementType srcType, VertexElementType destType);
-
-
-	{-| Allocate elements to serve a holder of morph / pose target data 
-		for hardware morphing / pose blending.
-	@remarks
-		This method will allocate the given number of 3D texture coordinate 
-		sets for use as a morph target or target pose offset (3D position).
-		These elements will be saved in hwAnimationDataList.
-		It will also assume that the source of these new elements will be new
-		buffers which are not bound at this time, so will start the sources to 
-		1 higher than the current highest binding source. The caller is
-		expected to bind these new buffers when appropriate. For morph animation
-		the original position buffer will be the 'from' keyframe data, whilst
-		for pose animation it will be the original vertex data.
-	-}
---	void allocateHardwareAnimationElements(ushort count);
-
-
-
+    deriving (Eq,Ord)
 
--- | Summary class collecting together index data source information.
 data HardwareIndexBuffer ib => IndexData ib
     = IndexData
     { idIndexBuffer :: ib   -- ^ pointer to the HardwareIndexBuffer to use, must be specified if useIndexes = true
     , idIndexStart  :: Int  -- ^ index in the buffer to start from for this operation
     , idIndexCount  :: Int  -- ^ The number of indexes to use from the buffer
     }
-    deriving Eq
-    
-	{-| Clones this index data, potentially including replicating the index buffer.
-	@param copyData Whether to create new buffers too or just reference the existing ones
-	@param mgr If supplied, the buffer manager through which copies should be made
-	@remarks The caller is expected to delete the returned pointer when finished
-	-}
---	IndexData* clone(bool copyData = true, HardwareBufferManagerBase* mgr = 0) const;
-
-	{-| Re-order the indexes in this index data structure to be more
-		vertex cache friendly; that is to re-use the same vertices as close
-		together as possible. 
-	@remarks
-		Can only be used for index data which consists of triangle lists.
-		It would in fact be pointless to use it on triangle strips or fans
-		in any case.
-	-}
---	void optimiseVertexCacheTriList(void);
-
-
-{-| Vertex cache profiler.
-@remarks
-	Utility class for evaluating the effectiveness of the use of the vertex
-	cache by a given index buffer.
--}
-{-
-class _OgreExport VertexCacheProfiler : public BufferAlloc
-{
-	public:
-		enum CacheType {
-			FIFO, LRU
-		};
-
-		VertexCacheProfiler(unsigned int cachesize = 16, CacheType cachetype = FIFO )
-			: size ( cachesize ), type ( cachetype ), tail (0), buffersize (0), hit (0), miss (0)
-		{
-			cache = OGRE_ALLOC_T(uint32, size, MEMCATEGORY_GEOMETRY);
-		};
-
-		~VertexCacheProfiler()
-		{
-			OGRE_FREE(cache, MEMCATEGORY_GEOMETRY);
-		}
-
-		void profile(const HardwareIndexBufferSharedPtr& indexBuffer);
-		void reset() { hit = 0; miss = 0; tail = 0; buffersize = 0; };
-		void flush() { tail = 0; buffersize = 0; };
-
-		unsigned int getHits() { return hit; };
-		unsigned int getMisses() { return miss; };
-		unsigned int getSize() { return size; };
-	private:
-		unsigned int size;
-		uint32 *cache;
-		CacheType type;
-
-		unsigned int tail, buffersize;
-		unsigned int hit, miss;
-
-		bool inCache(unsigned int index);
-};
--}
+    deriving (Eq,Ord)
diff --git a/Graphics/LambdaCube/World.hs b/Graphics/LambdaCube/World.hs
--- a/Graphics/LambdaCube/World.hs
+++ b/Graphics/LambdaCube/World.hs
@@ -1,904 +1,1020 @@
-{-# LANGUAGE MultiParamTypeClasses #-}
-module Graphics.LambdaCube.World where
-
-import Data.Maybe
-import qualified Data.List as List
-import Data.Map (Map,(!))
-import qualified Data.Map as Map
-import Data.IntMap (IntMap)
-import qualified Data.IntMap as IntMap
-import Control.Applicative
-import Control.Monad
-import System.Directory
-import System.FilePath
-
-import System.Log.Logger
-import Data.Graph.Inductive
-import qualified Data.ByteString.Lazy as B
-import qualified Data.ByteString as SB
-import qualified Data.ByteString.Internal as SB
-import Codec.Archive.Zip
-
-import Graphics.LambdaCube.Common
-import Graphics.LambdaCube.Loader.ResourceScript
-import Graphics.LambdaCube.Loader.MeshXML
-import Graphics.LambdaCube.Compositor
-import Graphics.LambdaCube.Material
-import Graphics.LambdaCube.Pass
-import Graphics.LambdaCube.Technique
-import Graphics.LambdaCube.TextureUnitState
-import Graphics.LambdaCube.PixelFormat
-import Graphics.LambdaCube.Math
-import Graphics.LambdaCube.Light
-import Graphics.LambdaCube.Image
-import Graphics.LambdaCube.Entity
-import Graphics.LambdaCube.Mesh
-import Graphics.LambdaCube.Types
-import Graphics.LambdaCube.Texture
-import Graphics.LambdaCube.GpuProgram
-import Graphics.LambdaCube.GpuProgramUsage
-import Graphics.LambdaCube.RenderQueue
-import Graphics.LambdaCube.RenderSystem
-import Graphics.LambdaCube.HardwareBuffer
-import Graphics.LambdaCube.HardwareVertexBuffer
-import Graphics.LambdaCube.HardwareIndexBuffer
---import Graphics.LambdaCube.Resource
-import Graphics.LambdaCube.RenderOperation
-
-
--- * World
-
-data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => FlattenScene vb ib t lp
-    = FlattenScene
-    { fsRenderable  :: [(Matrix4,[RenderEntity vb ib t lp],Int,Int)]    -- ^ List of Renderable information including WorldMatrix RenderQueueID and RenderPriority
-    , fsCamera      :: [(Matrix4,Camera)]
-    , fsLight       :: [(Matrix4,Light)]
-    }
-
-data RenderSystem r vb ib q t p lp => World r vb ib q t p lp
-    = World
-    { wrResource        :: ResourceLibrary vb ib t p lp -- IO related
-    , wrRenderSystem    :: r                            -- IO related
-    , wrScene           :: Scene vb ib t lp
-    , wrTargets         :: Map String (RenderTarget t lp)
-    , wrRenderOptions   :: IntMap RenderGroupOptions
-    , wrImageLoaders    :: [ImageLoader]
-    }
-
-mapResource f w = w { wrResource = f (wrResource w) }
-mapScene f w = w { wrScene = f (wrScene w) }
-mapTargets f w = w { wrTargets = f (wrTargets w) }
-
-mkWorld :: RenderSystem r vb ib q t p lp => r -> [ImageLoader] -> IO (World r vb ib q t p lp)
-mkWorld rs imgLoaders = return World
-          { wrResource      = mkResource
-          , wrRenderSystem  = rs
-          , wrScene         = mkScene
-          , wrTargets       = Map.empty
-          , wrRenderOptions = IntMap.empty 
-          , wrImageLoaders  = imgLoaders
-          }
-
-mkResource :: (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, GpuProgram p, LinkedGpuProgram lp) => ResourceLibrary vb ib t p lp
-mkResource = ResourceLibrary [] Map.empty Map.empty Map.empty Map.empty Map.empty Map.empty
-
-mkScene :: (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => Scene vb ib t lp
---mkScene = Scene (mkUGraph [0] []) (IntMap.fromList [(0, SceneNode "Root" [] (transl 0 0 0))]) (Map.fromList [("Root",0)]) Nothing
--- TODO: update for new scene structure
-mkScene =  Scene
-    { scGraph = mkGraph [(0,"Root")] []
-    -- use: bytestring-trie (efficient ByteString map)
-    , scMap   = Map.fromList [("Root", (0,SceneNode "Root" [] (transl 0 0 0)))]
-    , scSky   = Nothing
-    }
-
--- * Resource
-
-data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, GpuProgram p, LinkedGpuProgram lp) => ResourceLibrary vb ib t p lp
-    = ResourceLibrary
-    { rlResourceGroups      :: [ResourceGroup]
-    , rlMeshMap             :: Map String (Mesh vb ib)
-    , rlMaterialMap         :: Map String (Material t lp)
-    , rlTextureMap          :: Map String t
-    , rlGpuProgramMap       :: Map String (GpuProgramDescriptor p)
-    , rlLinkedGpuProgramMap :: Map (String,String,String) lp
-    , rlCompositorMap       :: Map String (Compositor t lp)
-    }
-
--- * SceneGraph
-
-data Camera
-    = Camera
-    { cmName        :: String
-    , cmFov         :: FloatType
-    , cmNear        :: FloatType
-    , cmFar         :: FloatType
-    , cmAspectRatio :: Maybe FloatType
-    , cmPolygonMode :: PolygonMode      -- ^ Rendering type
-    }
-{-
-        name					CDATA	#IMPLIED
-        id						ID		#IMPLIED
-        FOVy					CDATA	"45"
-        aspectRatio				CDATA	"1.3333333"
-        projectionType			(perspective | orthographic)	"perspective"
-        polygonMode				(points | wireframe | solid)	"solid"
-        useRenderingDistance	(yes | no)						"yes"
-        lodBiasFactor			CDATA	"1.0"
--}
-cameraProjectionMatrix :: FloatType -> Camera -> Matrix4
-cameraProjectionMatrix a cam = perpectiveMatrix fov aspect near far
-  where
-    Camera
-        { cmFov         = fov
-        , cmNear        = near
-        , cmFar         = far
-        , cmAspectRatio = aspectr
-        } = cam
-    aspect = fromMaybe a aspectr
-    
-data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => SceneObject vb ib t lp
-    = SO_Entity (Entity vb ib t lp)
-    | SO_Camera Camera
-    | SO_Light Light
---    | SO_ParticleSystem ParticleSystem
-
---data RenderTarget
---    = RT_MainBuffer
---    | RT_FrameBuffer 
-    
-{-
-data RenderWindow = RenderWindow
-    { rwWidth    :: Int
-    , rwHeight   :: Int
-    , rwViewport :: [Viewport]
-    --, rtTarget -- texture or screen
-    }
--}
-
-data (Texture t, LinkedGpuProgram lp) => RenderTarget t lp
-    = RenderTarget
-    { rtName     :: String
-    , rtWidth    :: Int
-    , rtHeight   :: Int
-    , rtViewport :: [Viewport t lp]
-    , rtTexture  :: Maybe String
-    }
-
-data (Texture t, LinkedGpuProgram lp) => Viewport t lp
-    = Viewport
-    { vpLeft            :: FloatType
-    , vpTop             :: FloatType
-    , vpWidth           :: FloatType
-    , vpHeight          :: FloatType
-    , vpCamera          :: String --Camera
-    , vpCompositors     :: [Compositor t lp]
-    , vpBackColour      :: ColourValue
-    , vpClearEveryFrame :: Bool
-    , vpClearBuffers    :: FrameBufferType
-    }
-
---getViewportSize :: RenderTarget -> Viewport -> (Int,Int,Int,Int)
-getViewportSize t v = (x,y,w,h)
-  where
-    ww = fromIntegral $ rtWidth t
-    wh = fromIntegral $ rtHeight t
-    x = floor $ ww * (vpLeft v)
-    y = floor $ wh * (vpTop v)
-    w = floor $ ww * (vpWidth v)
-    h = floor $ wh * (vpHeight v)
-    
-data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => SceneNode vb ib t lp
-    = SceneNode
-    { snName      :: String
-    , snObject    :: [SceneObject vb ib t lp]
-    , snTransform :: Matrix4
-    }-- deriving (Show,Read)
-    
-data Sky
-    = SkyBox --Material
-    | SkyDome
-    | SkyPlane
-    
-{-
-data Scene = Scene
-    { scGraph :: Gr () ()
---    , scMap     :: Map Int SceneNode
-    , scMap     :: IntMap SceneNode
-    , scNameMap :: Map String Int 
-    , scSky   :: Maybe Sky
-    -- Fog settings
-    }
--}
-
-data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => Scene vb ib t lp
-    = Scene
-    { scGraph :: Gr String ()
-    -- use: bytestring-trie (efficient ByteString map)
-    , scMap   :: Map String (Int,SceneNode vb ib t lp) -- ^ Contains GraphNodeID and SceneNode.
-    , scSky   :: Maybe Sky
-    -- Fog settings
-    }
-
-getMesh name world = case Map.lookup name (rlMeshMap rl) of
-    Nothing -> do
-        f <- loadFile (rlResourceGroups rl) name
-        when (isNothing f) $ error $ "File not found: " ++ name
-        m <- case takeExtension name of
-            ".xml" -> do
-                debugM "ResourceLibrary" $ "parsing mesh XML file " ++ name
-                parseMesh rs $ map SB.w2c $ B.unpack $ fromMaybe (error "fromJust 9") f
-            _ -> error ("Unsupported format!")
-        return (m,world { wrResource = rl { rlMeshMap = Map.insert name m (rlMeshMap rl) } })
-    Just m -> return (m,world)
-  where
-    rl = wrResource world
-    rs = wrRenderSystem world
-
---loadMaterialResources :: ResourceLibrary -> Material -> IO (ResourceLibrary,Material)
-loadMaterialResources rs loaders reslib0 mat = case isJust $ mtSupportedTechniques mat of
-    { True  -> return (reslib0,mat) -- Material is already initialized
-    ; False -> do
-        let isSupportedTech _ = True -- TODO
-            loadImage name = do
-                d <- loadFile (rlResourceGroups reslib0) name
-                case d of
-                    { Just imgdata  -> do
-                        let loadImg img loader = case img of
-                                { Just _    -> return img
-                                ; Nothing   -> loader name imgdata
-                                }
-                        foldM loadImg Nothing loaders
-                    ; Nothing   -> do
-                        debugM "Load image" $ "File not found: " ++ name
-                        return Nothing
-                    }
-            loadTextureUnit (rl0,tl) t = do
-                let loadTexture (rl0',tl') texname = case Map.lookup texname $ rlTextureMap rl0' of
-                        { Just t    -> return (rl0',t:tl')   -- texture is loaded
-                        ; Nothing   -> do   -- we have to create it
-                            -- TODO: create and load texture via render system
-                            i <- loadImage texname
-                            case i of
-                                { Just img  -> do
-                                    {-
-                                        virtual TexturePtr createManual(const String & name, const String& group,
-                                            TextureType texType, uint width, uint height, uint depth, 
-                                			int num_mips, PixelFormat format, int usage = TU_DEFAULT, ManualResourceLoader* loader = 0,
-                                			bool hwGammaCorrection = false, uint fsaa = 0, const String& fsaaHint = StringUtil::BLANK);
-        
-    { imName        :: String
-    , imHeight      :: Int
-    , imWidth       :: Int
-    , imDepth       :: Int
-    , imSize        :: Int
-    , imNumMipmaps  :: Int
---    uint flags;
-    , imFormat      :: PixelFormat
-    , imData        :: (Ptr Word8) -- ^ Image can be empty
-    }
-        mkGLTexture :: String -> TextureType -> Int -> Int -> Int -> Int -> PixelFormat -> TextureUsage -> Bool -> Int -> String -> IO GLTexture
-        mkGLTexture name texType width height depth numMips format usage hwGammaCorrection fsaa fsaaHint = do
-                                    -}
-                                    --createTexture                   :: a -> String -> TextureType -> Int -> Int -> Int -> Int -> PixelFormat -> TextueUsage -> Bool -> Int -> String -> IO t
-                                    let usage = TextureUsage HBU_STATIC True False
-                                    t <- createTexture rs texname (tusTextureType t) (imWidth img) (imHeight img) (imDepth img)
-                                                                  (tusTextureSrcMipmaps t) (tusDesiredFormat t) usage (tusHwGamma t) 0 "" $ Just [img]
-                                    -- TODO
-                                    --let t = undefined
-                                    let texmap = rlTextureMap rl0'
-                                    return (rl0' { rlTextureMap = Map.insert texname t texmap },t:tl')
-                                ; Nothing   -> do
-                                    debugM "Load texture" $ "No proper image codec was found: " ++ texname
-                                    return (rl0',tl')
-                                }
-                        }
-                let loadCubicTexture rl0' texname = case Map.lookup (concat texname) $ rlTextureMap rl0' of
-                        { Just t    -> return (rl0',[t])   -- texture is loaded
-                        ; Nothing   -> do   -- we have to create it
-                            -- TODO: create and load texture via render system
-                            i <- mapM loadImage texname
-                            case all isJust i of
-                                { True  -> do
-                                    let usage = TextureUsage HBU_STATIC True False
-                                        img = fromJust $ head i
-                                    t <- createTexture rs (concat texname) (tusTextureType t) (imWidth img) (imHeight img) (imDepth img)
-                                                                  (tusTextureSrcMipmaps t) (tusDesiredFormat t) usage (tusHwGamma t) 0 "" $ Just $ map fromJust i
-                                    let texmap = rlTextureMap rl0'
-                                    return (rl0' { rlTextureMap = Map.insert (concat texname) t texmap },[t])
-                                ; False -> do
-                                    debugM "Load texture" $ "No proper image codec was found: " ++ concat texname
-                                    return (rl0',[])
-                                }
-                        }
-                -- load textures
-                -- TODO: load all frames
-                (rl1,tex) <- case tusTextureType t of
-                    { TEX_TYPE_CUBE_MAP -> loadCubicTexture rl0 $ tusFrameNames t
-                    ; _ -> foldM loadTexture (rl0,[]) $ tusFrameNames t
-                    }    
-                let frames = reverse tex -- TODO: wrong in cubemap case
-                return (rl1,(t { tusFrames = Just frames }):tl)
-            loadShader (rl0,sl) sn = case Map.lookup sn $ rlGpuProgramMap rl0 of
-                { Nothing   -> do
-                    errorM "loadShader" $ "Unknown GpuProgram: " ++ sn
-                    return (rl0,sl)
-                ; Just gpd    -> case gpdGpuProgram gpd of
-                    { Just p    -> return (rl0,p:sl)
-                    ; Nothing   -> do
-                        -- GpuProgram is not loaded yet
-                        let fname = gpdFilename gpd
-                        msource <- loadFile (rlResourceGroups rl0) fname
-                        case msource of
-                            { Nothing   -> do
-                                errorM "loadShader" $ "GpuProgram source not found: " ++ sn ++ " - " ++ fname
-                                return (rl0,sl)
-                            ; Just src  -> do
-                                eprog <- createGpuProgram rs (gpdType gpd) $ map SB.w2c $ B.unpack src
-                                case eprog of
-                                    { Right err -> do
-                                        errorM "loadShader" $ "Error compile " ++ sn ++ ": " ++ err
-                                        return (rl0,sl)
-                                    ; Left prog -> do
-                                        debugM "loadShader" $ "GpuProgram loaded: " ++ sn
-                                        let gpd'    = gpd { gpdGpuProgram = Just prog }
-                                            gpmap   = Map.insert sn gpd' $ rlGpuProgramMap rl0
-                                        return (rl0 { rlGpuProgramMap = gpmap }, prog:sl)
-                                    }
-                        }
-                    }
-                }
-            loadPass (rl0,pl) p = do
-                -- load GpuPrograms
-                (rl1,mlgp) <- case psLinkedGpuProgram p of
-                    { Just lgp  -> return (rl0,Just lgp)
-                    ; Nothing   -> do
-                        let getName Nothing     = ""
-                            getName (Just u)    = gpuProgramName u
-                            progName            = (getName $ psVertexProgramUsage p, getName $ psFragmentProgramUsage p, getName $ psGeometryProgramUsage p)
-                            (vpn,fpn,gpn)       = progName
-                            gpuprogmap          = rlGpuProgramMap rl0
-                            collectNames cl []  = return cl
-                            collectNames cl nl  = do
-                                -- check list nl
-                                let a = filter (`notElem` cl) nl
-                                    getAttach m = case Map.lookup m gpuprogmap of
-                                        { Nothing   -> do
-                                            errorM "loadShader" $ "Unknown attached GpuProgram: " ++ m
-                                            return []
-                                        ; Just gp   -> return $ gpdAttach gp
-                                        }
-                                b <- mapM getAttach a
-                                collectNames (cl ++ a) $ concat b
-                        -- collect required shaders name list
-                        progNames <- collectNames [] $ filter (/="") [vpn,fpn,gpn]
-                        case null progNames of
-                            { True  -> return (rl0,Nothing)
-                            ; False -> do
-                                -- load all shader
-                                (rl1,progs) <- foldM loadShader (rl0,[]) progNames
-                                case Map.lookup progName $ rlLinkedGpuProgramMap rl1 of
-                                    { Just lp   -> return (rl1,Just lp)
-                                    ; Nothing   -> do
-                                        -- create LinkedGpuProgram
-                                        elprog <- createLinkedGpuProgram rs progs
-                                        case elprog of
-                                            { Right err -> do
-                                                errorM "loadGpuProgram" $ "Error link " ++ (show progName) ++ ": " ++ err
-                                                return (rl1,Nothing)
-                                            ; Left lprog    -> do
-                                                debugM "loadGpuProgram" $ "GpuProgram linked: " ++ (show progName)
-                                                let lprogmap    = rlLinkedGpuProgramMap rl1
-                                                    lprogmap'   = Map.insert progName lprog lprogmap
-                                                return (rl1 { rlLinkedGpuProgramMap = lprogmap' },Just lprog)
-                                            }
-                                    }
-                            }
-                    }
-                -- load textureunitstates (Texture)
-                (rl2,texUnits) <- foldM loadTextureUnit (rl1,[]) $ psTextureUnitStates p
-                return (rl2,(p { psTextureUnitStates = reverse texUnits, psLinkedGpuProgram = mlgp }):pl)
-            loadTechnique (rl0,tl) t = do
-                -- load passes (GpuProgram)
-                (rl1,passes) <- foldM loadPass (rl0,[]) $ tchPasses t
-                return (rl1,(t { tchPasses = reverse passes }):tl)
-        -- select and load supported techniques
-        (reslib1,suppTech) <- foldM loadTechnique (reslib0,[]) $ filter isSupportedTech $ mtTechniques mat
-        -- Insert loaded material into MaterialMap
-        let matmap  = rlMaterialMap reslib1
-            mat'    = mat { mtSupportedTechniques = Just $ reverse suppTech }
-            reslib2 = reslib1 { rlMaterialMap = Map.insert (mtName mat') mat' matmap }
-        return (reslib2,mat')
-    }
-
---getLoadedMaterial :: String -> World -> IO (World,Maybe Material)
---NOTE: this should return with Nothing if there's no supported technique
-getLoadedMaterial matname world0 = case Map.lookup matname $ rlMaterialMap $ wrResource world0 of
-    { Nothing   -> do
-        errorM "loadMaterial" $ "Material not found: " ++ matname
-        return (world0,Nothing)
-    ; Just mat0 -> case isJust $ mtSupportedTechniques mat0 of
-        { True  -> return (world0,Just mat0)
-        ; False -> do
-            let rs      = wrRenderSystem world0
-                loaders = wrImageLoaders world0
-                rl0     = wrResource world0
-            (rl1,mat1) <- loadMaterialResources rs loaders rl0 mat0
-            --TODO: this should return with Nothing if there's no supported technique
-            return (world0 { wrResource = rl1 },Just mat1)
-            }
-    }
-
---setEntityMaterial :: World -> [String] -> Entity -> IO (World,Entity)
-setEntityMaterial world0 mats ent = do
-    let reslib1 = wrResource world0
-        rs      = wrRenderSystem world0
-        loaders = wrImageLoaders world0
-        setSubEntMat (rl1,ses) (sent,matname) = do
-            let matmap  = (rlMaterialMap rl1)
-            (rl2,mat) <- case Map.lookup matname matmap of
-                { Just m    -> do
-                    loadMaterialResources rs loaders rl1 m
-                ; Nothing   -> do
-                    error $ "Material not found: " ++ matname
-                }
-            return (rl2,sent { seMaterial = mat } : ses)
-    
-    (reslib2,subents) <- foldM setSubEntMat (reslib1,[]) $ zip (enSubEntityList ent) mats
-    return (world0 { wrResource = reslib2 },ent { enSubEntityList = reverse subents })
-    
---createEntity :: World -> String -> String -> IO (World,Entity)
-createEntity world0 ename mname = do
-    -- lookup mesh, load if not exists
-    --debugM "ResourceLibrary" $ "creating entity: \"" ++ ename ++ "\" from mesh: \"" ++ mname ++ "\""
-    (mesh,world1) <- getMesh mname world0
-    --debugM "ResourceLibrary" " done"
-
-    let reslib1 = wrResource world1
-        rs      = wrRenderSystem world1
-        loaders = wrImageLoaders world1
-        mkSubent (rl1,ses) smesh = do
-            let matname = (smMaterialName smesh)
-                matmap  = (rlMaterialMap rl1)
-            (rl2,mat) <- case Map.lookup matname matmap of
-                { Just m    -> do
-                    loadMaterialResources rs loaders rl1 m
-                ; Nothing   -> do
-                    --debugM "createEntity" $ "Material not found: " ++ matname
-                    -- TODO
-                    error $ "Material not found: " ++ matname
-                    --loadMaterialResources rs loaders rl1 (matmap ! "WarningMaterial")
-                }
-            return (rl2,SubEntity { seMaterial = mat, seSubMesh = smesh } : ses)
-
-    (reslib2,subents) <- foldM mkSubent (reslib1,[]) (msSubMeshList mesh)
-
-    let ent = Entity
-            { enName          = ename
-            , enRenderQueue   = constRenderQueueMain
-            , enMesh          = mesh
-            , enSubEntityList = reverse subents
-            }
-
-    return (world1 { wrResource = reslib2 },ent)
-
---loadFile :: [ResourceGroup] -> String -> Maybe ByteString
-loadFile respath fname = foldM (\s (_,l)->foldM load s l) Nothing respath
-  where
-    load s@(Just str) _ = return s
-    load s (PathZip,n)  = do
-        -- TODO: this is a naive implementation with poor perfomance
-        f <- B.readFile n
-        let a = toArchive f
-        return $ fmap fromEntry $ findEntryByPath fname a
-    load Nothing (PathDir,n) = do
-        let ffname = (addTrailingPathSeparator n) ++ fname
-        e <- doesFileExist ffname
-        ret <- if e then B.readFile ffname else return B.empty
-        return $ if e then Just ret else Nothing
-
-renderWorld time name flatScene world = do
-    -- TODO
-    -- collect all render textures
-    -- render the world on all render textures
-    -- render the world last to the given named target
-    
-    -- forall viewports:
-    --   setup viewport related matrices
-    --   render scene
-    case Map.lookup name targetMap of
-        { Nothing   -> do
-            debugM "renderWold" $ "RenderTarget not found: " ++ name
-            return world
-        ; Just t    -> do
-            let targets     = Map.elems targetMap
-                (tg,tgs)    = List.partition ((== name) . rtName) targets
-                (rtl,rwl)   = List.partition (isNothing . rtTexture) tgs
-            mapM_ renderTarget $ rtl ++ rwl ++ tg
-            return world
-        }
-  where
-    targetMap   = wrTargets world
-    rs          = wrRenderSystem world
-
-    renderTarget rt = do
-        -- TODO: calc render statistics
-        let t = rtTexture rt
-        -- call setRenderTarget rs
-        mapM_ (renderViewport flatScene rt) $ rtViewport rt    
-        --if isNothing t then return () else do
-            --let tex = txObject $ (rlTextureMap $ wrResource world) ! (fromMaybe (error "fromJust 0") t)
-            --GL.textureBinding GL.Texture2D $= Just tex
-            -- only hint code: glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 0, 0, 128, 128, 0);
-            --GL.copyTexImage2D Nothing 0 GL.RGBA' (GL.Position 0 0) (GL.TextureSize2D w' h') 0
-        --return ()
-    
-    renderViewport fs rtarget v = do
-        let (vx,vy,vw,vh) = getViewportSize rtarget v
-        setViewport rs vx vy vw vh
-        
-        -- Clear the viewport if required
-        when (vpClearEveryFrame v) $
-            clearFrameBuffer rs (vpClearBuffers v) (vpBackColour v) 1 0
-        
-        -- Begin the frame
-        --mDestRenderSystem->_beginFrame();
-        
-        -- Set rasterisation mode
-        setPolygonMode rs $ cmPolygonMode cam
-        
-        -- Set initial camera state
-        setProjectionMatrix rs $ cameraProjectionMatrix (fromIntegral vw / fromIntegral vh) cam
-        
-        --mDestRenderSystem->_setTextureProjectionRelativeTo(mCameraRelativeRendering, camera->getDerivedPosition());
-        --setTextureProjectionRelativeTo
-        
-        setViewMatrix rs cameraViewMatrix 
-        
-        -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-        -- TODO: activate compositor chain render target if necessary
-        -- (re)initialize compositor resources if necessary
-        -- foreach compositor
-        --  select technique
-        --  create render textures
-        --  initialize target passes
-        -- do render
-        -- foreach compositor and target pass
-        --  bind target pass
-        --  execute each composition pass in target pass
-        --HINT:
-            -- 
-
-        -- FIXME: TEMP CODE        
-        unless (null $ vpCompositors v) $ do
-            -- bind render texture
-            return ()
-
-        -- render objects
-        rstat <- renderQueue time rs (wrRenderOptions world) emptyRenderStatistics $ fsRenderable fs
---        print rstat
-
-        -- Compositor
-            -- TargetPass
-                -- Pass
-        forM_ (vpCompositors v) $ \c -> do 
-            let ct = head $ fromMaybe (error "fromJust 112") $ cmpSupportedTechniques c
-            -- select first technique
-            forM (zip [0..] $ ctTargetPasses ct ++ [ctOutputTarget ct]) $ \(ctpidx,ctp) -> do
-            --  -- copy previous output to target's output when input is previous
-                when (ctpInputMode ctp == IM_PREVIOUS) $ do
-                    -- FIXME
-                    dirtyHackCopyTexImage rs (fromMaybe (error "fromJust 212") $ tdTexture $ fromJust $ ctpOutput ctp) vx vy vw vh
-                forM (ctpPasses ctp) $ \cp -> do
-                    -- do composition pass action
-                    case cpType cp of
-                        { PT_RENDERQUAD -> do
-                            -- TODO
-                            -- setup quad material
-                            -- render quad
-                            let quadM   = fromMaybe (error "fromJust 312") $ Map.lookup "Quad.mesh.xml" (rlMeshMap $ wrResource world)
-                                quadSM  = head $ msSubMeshList quadM
-                                quadSE  = SubEntity { seMaterial = fromMaybe (error "fromJust 412") $ cpMaterial cp, seSubMesh = quadSM }
-                                quadE   = Entity "" constRenderQueueMain quadM [quadSE]
-                                quadRE  = head $ prepare (transl 0 0 0) quadE
-                                quadRP  = [RenderablePass (reOperation quadRE) p (transl 0 0 0) [] | p <- rePassList quadRE]
-                            setProjectionMatrix rs $ transl 0 0 0
-                            setViewMatrix rs $ transl 0 0 0
-                            setPolygonMode rs PM_SOLID
-                            renderPassGroup time rs emptyRenderStatistics quadRP
-                            return ()
-                        ; _ -> return ()
-                        }
-{-
-        unless (null $ vpCompositors v) $ do
-            -- FIXME: TEMP CODE        
-            -- unbind render texture, and we'll have the rendered scene in a texture
-            -- create a custom temp pass with temp render texture input
-            -- create quad render operation
-            let quadSM  = head $ msSubMeshList $ fromJust $ Map.lookup "Quad.mesh.xml" (rlMeshMap $ wrResource world)
-                quadRO  = RenderOperation
-                    { roVertexData      = fromJust $ smVertexData quadSM 
-                    , roOperationType   = smOperationType quadSM
-                    , roIndexData       = smIndexData quadSM
-                    }
-                quadP   = head $ tchPasses $ head $ fromJust $ mtSupportedTechniques $ fromJust $ Map.lookup "QuadMaterial" (rlMaterialMap $ wrResource world)
-                quadRP  = RenderablePass
-                    { rpOperation   = quadRO
-                    , rpPass        = quadP'
-                    , rpMatrix      = transl 0 0 0
-                    , rpLights      = []
-                    }
-                rtex    = fromJust $ Map.lookup "RenderTex01" $ (rlTextureMap $ wrResource world)
-                tus     = psTextureUnitStates quadP
-                tu      = head tus
-                tut     = tail tus
-                tu'     = tu { tusFrames = Just [rtex] }
-                quadP'  = quadP { psTextureUnitStates = (tu':tut) }
-            --setProjectionMatrix rs $ cameraProjectionMatrix (fromIntegral vw / fromIntegral vh) cam
-            setProjectionMatrix rs $ transl 0 0 0
-            setViewMatrix rs $ transl 0 0 0
-            dirtyHackCopyTexImage rs rtex vx vy vw vh
-            setPolygonMode rs PM_SOLID
-            renderPassGroup rs [quadRP]
-            -- invert back
-            --dirtyHackCopyTexImage rs rtex vx vy vw vh
--}            --renderPassGroup rs [quadRP]
-            return ()                
-        
-{-
-    = RenderOperation
-    { roVertexData      :: VertexData vb      -- ^ Vertex source data
-    , roOperationType   :: OperationType    -- ^ The type of operation to perform
-    , roIndexData       :: Maybe (IndexData ib)        -- ^ Index data - only valid if useIndexes is true
-    }
-    = RenderablePass
-    { rpOperation   :: RenderOperation vb ib
-    , rpPass        :: Pass t lp
-    , rpMatrix      :: Matrix4
-    , rpLights      :: [(Matrix4,Light)]
-    }
---renderPassGroup :: RenderSystem -> RenderablePass -> IO ()
--} 
-        -- do a manual render for temp pass (we should reset world, view, projection and texture matrix)
-        
-        
----------------------------------------------------------------------
-        -- push flatten scene into a render queue
-        --  collect lights which affect each renderable
-        --  fold addRenderable
-        -- call renderQueue
-        --let addRend (m,rend,grpID,prior) rq = addRenderable m rend (map snd $ fsLight fs) grpID prior rq
-        --renderQueue' rs $ foldr addRend emptyRenderQueue $ fsRenderable fs
-        -- old code below-------------------------------------------------------------------------------------------
-        --mapM_ (renderEntity (wrRenderSystem world)) $ optimize $ foldr (\(m,r) l -> (prepare m r) ++ l) [] [(a,b) | (a,b,_,_) <- fsRenderable fs]
-      where
-        (camMat,cam) = head $ Prelude.filter (\(_,a) -> camName == (cmName a)) cams
-        camName = vpCamera v
-        cams = fsCamera fs
-        (Matrix4
-            r11 r12 r13 _
-            r21 r22 r23 _
-            r31 r32 r33 _
-            tx ty tz _) = camMat
-        {-
-        cameraViewMatrix = (Matrix4
-            r11 r21 r31 0
-            r12 r22 r32 0
-            r13 r23 r33 0
-            (-tx) (-ty) (-tz) 1)
-        -}
-        cameraViewMatrix = camMat
-
---    createTexture                   :: a -> String -> TextureType -> Int -> Int -> Int -> TextureMipmap -> PixelFormat -> TextureUsage -> Bool -> Int -> String -> Image -> IO t
-addRenderTexture n w h world = do
-    let rl = wrResource world
-        tm = rlTextureMap rl
-        rs = wrRenderSystem world
-    t <- createTexture rs n TEX_TYPE_2D w h 1 (MIP_NUMBER 1) PF_R8G8B8A8 (TextureUsage HBU_STATIC True False) False 0 "" Nothing
-    return world { wrResource = rl { rlTextureMap = Map.insert n t tm } }
-    --mapResource f w = w { wrResource = f (wrResource w) }
-
---addRenderWindow :: String -> Int -> Int -> [Viewport] -> World -> IO World    
-addRenderWindow n w h l world = do
-    vl <- mapM (\f -> f world) l
-    let rt = RenderTarget
-            { rtName     = n
-            , rtWidth    = w
-            , rtHeight   = h
-            , rtViewport = vl
-            , rtTexture  = Nothing
-            }
-    return $ mapTargets (Map.insert n rt) world
-
-    {-
-    = Compositor
-    { cmpName                   :: String
-    , cmpTechniques             :: [CompositionTechnique t]
-    , cmpSupportedTechniques    :: Maybe [CompositionTechnique t]
-	}
-
-    = CompositionTechnique
-    { ctTextureDefinitions  :: [TextureDefinition t]
-    , ctTargetPasses        :: [CompositionTargetPass]  -- ^ Intermediate target passes
-    , ctOutputTarget        :: CompositionTargetPass    -- ^ Output target pass (can be only one)
-    , ctSchemeName          :: String                   -- ^ Optional scheme name
-    }
-
-    = TextureDefinition
-    { tdName            :: String
-    , tdWidth           :: Maybe Int        -- Nothing means adapt to target width
-    , tdHeight          :: Maybe Int        -- Nothing means adapt to target height
-    , tdWidthFactor     :: FloatType        -- multiple of target width to use (if width = Nothing)
-    , tdHeightFactor    :: FloatType        -- multiple of target height to use (if height = Nothing)
-    , tdFormatList      :: [PixelFormat]    -- more than one means MRT
-    , tdFsaa            :: Bool             -- FSAA enabled; true = determine from main target (if render_scene), false = disable
-    , tdHwGammaWrite    :: Bool             -- Do sRGB gamma correction on write (only 8-bit per channel formats) 
-    , tdShared          :: Bool             -- whether to use shared textures for this one
-    , tdTexture         :: Maybe t
-    }
-
-    = CompositionTargetPass
-    { ctpInputMode      :: InputMode            -- ^ Input name
-    , ctpOutputName     :: String               -- ^ (local) output texture
-    , ctpOutput         :: Maybe (TextureDefinition t)
-    , ctpPasses         :: [CompositionPass]    -- ^ Passes
-    , ctpOnlyInitial    :: Bool                 -- ^ This target pass is only executed initially after the effect has been enabled.
-    , ctpVisibilityMask :: Word32               -- ^ Visibility mask for this render
-    , ctpLodBias        :: FloatType            -- ^ LOD bias of this render
-    , ctpMaterialScheme :: String               -- ^ Material scheme name
-    , ctpShadowsEnabled :: Bool                 -- ^ Shadows option
-    }
-
-    = InputTex
-    { itName        :: String   -- ^ Name (local) of the input texture
-    , itMrtIndex    :: Int      -- ^ MRT surface index if applicable
-    }
-
-    = CompositionPass
-    { cpType                        :: PassType         -- ^ Type of composition pass
-    , cpIdentifier                  :: Word32           -- ^ Identifier for this pass
-    , cpMaterialName                :: String           -- ^ Material used for rendering
-    , cpMaterial                    :: Maybe (Material t lp)
-    , cpFirstRenderQueue            :: Int              -- ^ [first,last] render queue to render this pass (in case of PT_RENDERSCENE)
-    , cpLastRenderQueue             :: Int
-    , cpClearBuffers                :: (Bool,Bool,Bool) -- ^ Clear buffers (in case of PT_CLEAR), hint: [colour] [depth] [stencil]
-    , cpClearColour                 :: ColourValue      -- ^ Clear colour (in case of PT_CLEAR)
-    , cpClearDepth                  :: FloatType        -- ^ Clear depth (in case of PT_CLEAR)
-    , cpClearStencil                :: Word32           -- ^ Clear stencil value (in case of PT_CLEAR)
-    , cpInputs                      :: IntMap InputTex  -- ^ Inputs (for material used for rendering the quad)
-    , cpStencilCheck                :: Bool             -- ^ Stencil operation parameters
-    , cpStencilFunc                 :: CompareFunction
-    , cpStencilRefValue             :: Word32
-    , cpStencilMask                 :: Word32
-    , cpStencilFailOp               :: StencilOperation
-    , cpStencilDepthFailOp          :: StencilOperation
-    , cpStencilPassOp               :: StencilOperation
-    , cpStencilTwoSidedOperation    :: Bool
-    , cpQuadCornerModified          :: Bool             -- ^ true if quad should not cover whole screen
-    , cpQuadLeft                    :: FloatType        -- ^ quad positions in normalised coordinates [-1;1]x[-1;1] (in case of PT_RENDERQUAD)
-    , cpQuadTop                     :: FloatType
-    , cpQuadRight                   :: FloatType
-    , cpQuadBottom                  :: FloatType
-    , cpQuadFarCorners              :: Bool
-    , cpQuadFarCornersViewSpace     :: Bool
-    }
-
-data PassType
-    = PT_CLEAR          -- ^ Clear target to one colour
-    | PT_STENCIL        -- ^ Set stencil operation
-    | PT_RENDERSCENE    -- ^ Render the scene or part of it
-    | PT_RENDERQUAD     -- ^ Render a full screen quad
-    -}
--- | Create render textures, and setup compositor chain.
-mkCompositorChain wr0 cl0 = do
-    -- do we really need this ???? -- HINT: add an implicit target to first compositor which renders the scene into a viewportsized texture, 
-    -- iterate trough compositors and select first supported technique
-    let rs = wrRenderSystem wr0
-        initCompositor (world0,cl) c = do -- :: (World,[Maybe Compositor]) -> Compositor -> (World,[Maybe Compositor])
-            -- TODO: select first supported technique
-            let ct = head $ cmpTechniques c
-            tds <- forM (ctTextureDefinitions ct) $ \td -> do
-                -- create render textures
-                let w   = fromMaybe 1 $ tdWidth td
-                    h   = fromMaybe 1 $ tdHeight td
-                    txn = (cmpName c ++ "/" ++ tdName td)
-                t <- createTexture rs txn TEX_TYPE_2D w h 1 (MIP_NUMBER 1) (head $ tdFormatList td) (TextureUsage HBU_STATIC True False) False 0 "" Nothing
-                debugM "Initialize Compositor" $ "Created compositor texture: " ++ txn
-                return td { tdTexture = Just t }
-            
-            let texmap  = Map.fromList [(tdName td,td) | td <- tds]
-                onamel  = map ctpOutputName $ ctTargetPasses ct
-                outtexl = [Map.lookup o texmap | o <- onamel]
-                checkTex b tn = case Map.member tn texmap of
-                    { True  -> return b
-                    ; False -> do
-                        errorM "Initialize Compositor" $ "Unknown compositor texture: " ++ tn
-                        return False
-                    }
-            oktex <- foldM checkTex True onamel
-            case oktex of
-                { False -> return (world0,Nothing:cl)
-                ; True  -> do
-                    -- setup compositor target pass output
-                    let tps0 = [tp { ctpOutput = o } | (o,tp) <- zip outtexl $ ctTargetPasses ct]
-                        initPasses (w0,tpl,okPasses) tp = do
-                            let initPass (w0,pl,okPass) cp = case cpType cp of
-                                    { PT_RENDERQUAD -> do
-                                        -- setup composition pass input
-                                        --  load material
-                                        (w1,mmat) <- getLoadedMaterial (cpMaterialName cp) w0
-                                        case mmat of
-                                            { Nothing   -> return (w1,cp:pl,False)
-                                            ; Just mat  -> do
-                                                --  check pass input texture names
-                                                okInput <- foldM checkTex True [itName it | it <- IntMap.elems $ cpInputs cp]
-                                                case okInput of
-                                                    { False -> return (w1,cp:pl,False)
-                                                    ; True  -> do
-                                                        -- foreach material pass and for each textureunitstate
-                                                        --  setup texture when it's a RT
-                                                        let fp p = p { psTextureUnitStates = tul' }
-                                                              where
-                                                                tul'    = [tu { tusFrames = fromMaybe (tusFrames tu) $ ft i } | (i,tu) <- tusl]
-                                                                ft i    = case IntMap.lookup i $ cpInputs cp of
-                                                                            { Nothing   -> Nothing
-                                                                            ; Just it   -> Just $ Just [fromJust $ tdTexture $ texmap Map.! (itName it)]
-                                                                            }
-                                                                tusl    = zip [0..] $ psTextureUnitStates p
-                                                            mat' = mat { mtSupportedTechniques = Just [tch { tchPasses = [fp p | p <- tchPasses tch] } | tch <- fromJust $ mtSupportedTechniques mat] } 
-                                                        --return with modified pass attached to the list
-                                                        return (w1,(cp { cpMaterial = Just mat' }):pl,okPass)
-                                                    }
-                                            }
-                                    ; _ -> return (w0,cp:pl,okPass)
-                                    }
-                            
-                            (w1,pl,okPasses') <- foldM initPass (w0,[],okPasses) $ ctpPasses tp
-                            return (w1,(tp { ctpPasses = reverse pl }):tpl, okPasses')
-                    
-                    (world1,tps1,okInit1) <- foldM initPasses (world0,[],True) tps0
-                    (world2,motp,okInit2) <- initPasses (world1,[],okInit1) $ ctOutputTarget ct
-                    case okInit2 of
-                        { False -> return (world2,Nothing:cl)
-                        ; True  -> do
-                            let otp     = head motp
-                                tps2    = reverse tps1 -- [tp | Just tp <- tps1]
-                            return (world2,(Just c { cmpSupportedTechniques = Just [ct { ctTextureDefinitions = tds, ctTargetPasses = tps2, ctOutputTarget = otp }] }):cl)
-                        }
-                }
-    -- setup compositor target pass input
-    (wr1,cl1) <- foldM initCompositor (wr0,[]) cl0
-    let cl2 = reverse [c | Just c <- cl1]
-    -- TODO: setup compositor chain connection
-    return (wr1,cl2)
-
--- | Create a viewport and attach given compositors.
-mkViewport x y w h cam cnl world0 = do
-    -- collect compositors
-    let compMap = rlCompositorMap $ wrResource world0
-        getCompositor l cn = case Map.lookup cn compMap of
-            { Nothing   -> do
-                errorM "ApplyCompositor" $ "Unknown compositor: " ++ cn
-                return l
-            ; Just c    -> return $ c:l
-            }
-        
-    -- setup compositor chain
-    cl0 <- foldM getCompositor [] cnl
-    (world1,cl1) <- mkCompositorChain world0 $ reverse cl0
-    return Viewport
-        { vpLeft            = x
-        , vpTop             = y
-        , vpWidth           = w
-        , vpHeight          = h
-        , vpCamera          = cam
-        , vpCompositors     = cl1
-        , vpBackColour      = (0,0,0,0)
-        , vpClearEveryFrame = True
-        , vpClearBuffers    = FrameBufferType True True False
-        }
-
---updateTargetSize :: String -> Int -> Int -> World -> IO World
-updateTargetSize n w h = return . mapTargets (Map.adjust f n)
-  where 
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# LANGUAGE MultiParamTypeClasses, ExistentialQuantification, Rank2Types, NamedFieldPuns #-}
+
+module Graphics.LambdaCube.World where
+
+import Control.Applicative
+import Control.Monad
+import Control.Monad.Fix
+import Control.Monad.Trans
+import System.Directory
+import System.FilePath
+
+import Data.List
+import Data.IntMap (IntMap)
+import Data.Map (Map)
+import Data.Maybe
+import qualified Data.IntMap as IntMap
+import qualified Data.Map as Map
+
+import Codec.Archive.Zip
+import qualified Data.ByteString.Char8 as SB8
+import qualified Data.ByteString as SB
+import qualified Data.ByteString.Internal as SB
+import qualified Data.ByteString.Lazy as LB
+
+import Graphics.LambdaCube.Common
+import Graphics.LambdaCube.Compositor
+import Graphics.LambdaCube.Entity
+import Graphics.LambdaCube.Frustum
+import Graphics.LambdaCube.GpuProgram
+import Graphics.LambdaCube.GpuProgramUsage
+import Graphics.LambdaCube.HardwareBuffer
+import Graphics.LambdaCube.HardwareIndexBuffer
+import Graphics.LambdaCube.HardwareVertexBuffer
+import Graphics.LambdaCube.Image
+import Graphics.LambdaCube.Light
+import Graphics.LambdaCube.Loader.MeshXML
+import Graphics.LambdaCube.Loader.ResourceScript
+import Graphics.LambdaCube.Material
+import Graphics.LambdaCube.Mesh
+import Graphics.LambdaCube.Pass
+import Graphics.LambdaCube.PixelFormat
+import Graphics.LambdaCube.RenderQueue
+import Graphics.LambdaCube.RenderSystem
+import Graphics.LambdaCube.Technique
+import Graphics.LambdaCube.Texture
+import Graphics.LambdaCube.TextureUnitState
+import Graphics.LambdaCube.Tree
+import Graphics.LambdaCube.Types
+import Graphics.LambdaCube.Utility
+import Graphics.LambdaCube.VertexBufferVector
+
+-- * World transformation
+
+newtype LCM w e a = LCM { unLCM :: forall r . (a -> w -> IO r) -> (e -> w -> IO r) -> w -> IO r }
+
+instance Functor (LCM w e) where
+    fmap = liftM
+
+instance Applicative (LCM w e) where
+    pure = return
+    (<*>) = ap
+
+instance Monad (LCM w e) where
+    return x = LCM (\k t w -> k x w)
+    LCM lc >>= f = LCM (\k t -> lc (\x -> unLCM (f x) k t) t)
+
+instance MonadIO (LCM w e) where
+    liftIO m = LCM (\k t w -> m >>= \x -> k x w)
+
+-- | Embed a LambdaCube program in IO. The embedding manages a world,
+-- therefore it requires all the information to create one: the render
+-- system and a list of image loaders.
+runLCM :: (RenderSystem r vb ib q t1 p lp) => r
+       -> [ImageLoader]
+       -> LCM (World r vb ib q t1 p lp) e a
+       -> IO ()
+runLCM renderSystem imageLoaders (LCM lc) = do
+    let nop _ _ = return ()
+    lc nop nop (mkWorld renderSystem imageLoaders)
+
+-- Run a world transforming IO action in LCM.
+inLCM :: (w -> IO w) -> LCM w e ()
+inLCM act = LCM (\k t w -> act w >>= k ())
+
+-- Get the current state of the world.
+peekLCM :: LCM w e w
+peekLCM = LCM (\k t w -> k w w)
+
+-- Set the current state of the world.
+pokeLCM :: w -> LCM w e ()
+pokeLCM w' = LCM (\k t w -> k () w')
+
+-- Bypass the rest of the computation and throw an out-of-band value.
+throwLCM :: e -> LCM w e a
+throwLCM x = LCM (\k t w -> t x w)
+
+-- Join the normal and the out-of-band result of a computation: if a
+-- value was thrown, return it, otherwise return the result of the
+-- computation.
+catchLCM :: LCM w a a -> LCM w e a
+catchLCM (LCM lc) = LCM (\k t w -> lc k k w)
+
+errorLCM :: String -> String -> LCM w e ()
+errorLCM ty msg = liftIO $ putStrLn $ ty ++ msg
+
+debugLCM :: String -> String -> LCM w e ()
+debugLCM ty msg = liftIO $ putStrLn $ ty ++ msg
+
+-- * World
+
+data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => FlattenScene vb ib t lp
+    = FlattenScene
+    { fsRenderable  :: [(Proj4,[RenderEntity vb ib t lp],Int,Int)]    -- ^ List of Renderable information including WorldMatrix RenderQueueID and RenderPriority
+    , fsCamera      :: [(Proj4,Camera)]
+    , fsLight       :: [(Proj4,Light)]
+    }
+
+data RenderSystem r vb ib q t p lp => World r vb ib q t p lp
+    = World
+    { wrResource        :: ResourceLibrary vb ib t p lp -- IO related
+    , wrRenderSystem    :: r                            -- IO related
+    , wrScene           :: Scene vb ib t lp
+    , wrTargets         :: Map String (RenderTarget t lp)
+    , wrRenderOptions   :: IntMap RenderGroupOptions
+    , wrImageLoaders    :: [ImageLoader]
+    }
+
+updateWorld :: (w -> w) -> LCM w e ()
+updateWorld f = do
+    world <- peekLCM
+    pokeLCM $! f world
+
+updateResource :: (RenderSystem r vb ib q t p lp) => (ResourceLibrary vb ib t p lp -> ResourceLibrary vb ib t p lp) -> LCM (World r vb ib q t p lp) e ()
+updateResource f = do
+    world@World { wrResource = res } <- peekLCM
+    let res' = f res
+    res' `seq` pokeLCM $ world { wrResource = res' }
+
+{-
+mapResource :: (RenderSystem r vb ib q t p lp) => (ResourceLibrary vb ib t p lp -> ResourceLibrary vb ib t p lp) -> World r vb ib q t p lp -> World r vb ib q t p lp
+mapResource f w = w { wrResource = f (wrResource w) }
+-}
+
+mapScene :: (RenderSystem r vb ib q t p lp) => (Scene vb ib t lp -> Scene vb ib t lp) -> World r vb ib q t p lp -> World r vb ib q t p lp
+mapScene f w = w { wrScene = f (wrScene w) }
+
+mapTargets :: (RenderSystem r vb ib q t p lp) => (Map String (RenderTarget t lp) -> Map String (RenderTarget t lp)) -> World r vb ib q t p lp -> World r vb ib q t p lp
+mapTargets f w = w { wrTargets = f (wrTargets w) }
+
+mkWorld :: RenderSystem r vb ib q t p lp => r -> [ImageLoader] -> World r vb ib q t p lp
+mkWorld rs imgLoaders = World
+     { wrResource      = mkResource
+     , wrRenderSystem  = rs
+     , wrScene         = mkScene
+     , wrTargets       = Map.empty
+     , wrRenderOptions = IntMap.empty
+     , wrImageLoaders  = imgLoaders
+     }
+
+mkResource :: (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, GpuProgram p, LinkedGpuProgram lp) => ResourceLibrary vb ib t p lp
+mkResource = ResourceLibrary [] Map.empty Map.empty Map.empty Map.empty Map.empty Map.empty
+
+mkScene :: (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => Scene vb ib t lp
+mkScene =  Scene
+    { scGraph = root "Root" (SceneNode "Root" [] idmtx)
+    , scSky   = Nothing
+    }
+
+-- * Resource
+
+data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, GpuProgram p, LinkedGpuProgram lp) => ResourceLibrary vb ib t p lp
+    = ResourceLibrary
+    { rlResourceGroups      :: [ResourceGroup]
+    , rlMeshMap             :: Map String (Mesh vb ib)
+    , rlMaterialMap         :: Map String (Material t lp)
+    , rlTextureMap          :: Map String t
+    , rlGpuProgramMap       :: Map String (GpuProgramDescriptor p)
+    , rlLinkedGpuProgramMap :: Map (String,String,String) lp
+    , rlCompositorMap       :: Map String (Compositor t lp)
+    }
+
+-- * SceneGraph
+
+-- | Camera description.
+data Camera
+    = Camera
+    { cmName        :: String           -- ^ The name of the camera.
+    , cmFov         :: FloatType        -- ^ Field of view in radians.
+    , cmNear        :: FloatType        -- ^ Near plane clipping distance.
+    , cmFar         :: FloatType        -- ^ Far plane clipping distance.
+    , cmAspectRatio :: Maybe FloatType  -- ^ Camera aspect ratio (width/height).
+    , cmPolygonMode :: PolygonMode      -- ^ Rendering type.
+    }
+{-
+        name                                        CDATA        #IMPLIED
+        id                                                ID                #IMPLIED
+        FOVy                                        CDATA        "45"
+        aspectRatio                                CDATA        "1.3333333"
+        projectionType                        (perspective | orthographic)        "perspective"
+        polygonMode                                (points | wireframe | solid)        "solid"
+        useRenderingDistance        (yes | no)                                                "yes"
+        lodBiasFactor                        CDATA        "1.0"
+-}
+cameraProjectionMatrix :: FloatType -> Camera -> Mat4
+cameraProjectionMatrix a cam = perspective near far fov aspect
+  where
+    Camera
+        { cmFov         = fov
+        , cmNear        = near
+        , cmFar         = far
+        , cmAspectRatio = aspectr
+        } = cam
+    aspect = fromMaybe a aspectr
+
+data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => SceneObject vb ib t lp
+    = SO_Entity (Entity vb ib t lp)
+    | SO_Camera Camera
+    | SO_Light Light
+--    | SO_ParticleSystem ParticleSystem
+
+--data RenderTarget
+--    = RT_MainBuffer
+--    | RT_FrameBuffer
+
+{-
+data RenderWindow = RenderWindow
+    { rwWidth    :: Int
+    , rwHeight   :: Int
+    , rwViewport :: [Viewport]
+    --, rtTarget -- texture or screen
+    }
+-}
+
+data (Texture t, LinkedGpuProgram lp) => RenderTarget t lp
+    = RenderTarget
+    { rtName     :: String
+    , rtWidth    :: Int
+    , rtHeight   :: Int
+    , rtViewport :: [Viewport t lp]
+    , rtTexture  :: Maybe String
+    }
+
+data (Texture t, LinkedGpuProgram lp) => Viewport t lp
+    = Viewport
+    { vpLeft            :: FloatType
+    , vpTop             :: FloatType
+    , vpWidth           :: FloatType
+    , vpHeight          :: FloatType
+    , vpCamera          :: String --Camera
+    , vpCompositors     :: [Compositor t lp]
+    , vpBackColour      :: ColourValue
+    , vpClearEveryFrame :: Bool
+    , vpClearBuffers    :: FrameBufferType
+    }
+
+getViewportSize :: (Texture t, LinkedGpuProgram lp) => RenderTarget t lp -> Viewport t lp -> (Int,Int,Int,Int)
+getViewportSize t v = (x,y,w,h)
+  where
+    ww = fromIntegral $ rtWidth t
+    wh = fromIntegral $ rtHeight t
+    x = floor $ ww * (vpLeft v)
+    y = floor $ wh * (vpTop v)
+    w = floor $ ww * (vpWidth v)
+    h = floor $ wh * (vpHeight v)
+
+data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => SceneNode vb ib t lp
+    = SceneNode
+    { snName      :: String
+    , snObject    :: [SceneObject vb ib t lp]
+    , snTransform :: Proj4
+    }-- deriving (Show,Read)
+
+data Sky
+    = SkyBox --Material
+    | SkyDome
+    | SkyPlane
+
+{-
+data Scene = Scene
+    { scGraph :: Gr () ()
+--    , scMap     :: Map Int SceneNode
+    , scMap     :: IntMap SceneNode
+    , scNameMap :: Map String Int
+    , scSky   :: Maybe Sky
+    -- Fog settings
+    }
+-}
+
+data (HardwareVertexBuffer vb, HardwareIndexBuffer ib, Texture t, LinkedGpuProgram lp) => Scene vb ib t lp
+    = Scene
+    { scGraph :: IndexedTree (SceneNode vb ib t lp)
+    , scSky   :: Maybe Sky
+    -- Fog settings
+    }
+
+-- | Add a new vector mesh to the world.
+addVMesh :: RenderSystem r vb ib q t p lp
+         => String  -- ^ The name of the mesh in the world.
+         -> VMesh   -- ^ The mesh to add.
+         -> LCM (World r vb ib q t p lp) e ()
+addVMesh name vmesh = do
+    world <- peekLCM
+    mesh <- liftIO $ meshFromV (wrRenderSystem world) vmesh
+    pokeLCM $ addMesh name mesh world
+
+-- | Retrieve a vector mesh from the world by name.
+getVMesh :: RenderSystem r vb ib q t p lp => String -> LCM (World r vb ib q t p lp) e VMesh
+getVMesh name = do
+    mesh <- getMesh name
+    liftIO $ vFromMesh mesh
+
+addMesh :: RenderSystem r vb ib q t p lp => String -> Mesh vb ib -> World r vb ib q t p lp -> World r vb ib q1 t p lp
+addMesh name mesh world = world { wrResource = rl { rlMeshMap = Map.insert name mesh (rlMeshMap rl) } }
+  where
+    rl = wrResource world
+
+getMesh :: RenderSystem r vb ib q t p lp => String -> LCM (World r vb ib q t p lp) e (Mesh vb ib)
+getMesh name = catchLCM $ do
+    World { wrResource, wrRenderSystem } <- peekLCM
+    let mm@ ~(Just m) = Map.lookup name (rlMeshMap wrResource)
+    when (isJust mm) $ throwLCM m
+    f <- readFile' name
+    m <- liftIO $ case takeExtension name of
+        ".xml" -> do
+            putStrLn $ "ResourceLibrary " ++ "parsing mesh XML file " ++ name
+            parseMesh wrRenderSystem $ SB8.unpack f
+        _ -> error "Unsupported format!"
+        {-
+         f <- loadFile (rlResourceGroups rl) name
+         when (isNothing f) $ error $ "File not found: " ++ name
+         case takeExtension name of
+             ".xml" -> do
+                 debugM "ResourceLibrary" $ "parsing mesh XML file " ++ name
+                 parseMesh rs $ map SB.w2c $ LB.unpack $ fromMaybe (error "fromJust 9") f
+             _ -> error ("Unsupported format!")
+        -}
+    updateResource $ \rl -> rl { rlMeshMap = Map.insert name m (rlMeshMap rl) }
+    return m
+
+--loadMaterialResources :: RenderSystem rs vb ib q t p lp =>
+--    rs -> [FilePath -> LB.ByteString -> IO (Maybe Image)] -> ResourceLibrary vb ib t p lp ->
+--    Material t lp -> IO (ResourceLibrary vb ib t p lp, Material t lp)
+loadMaterialResources :: RenderSystem rs vb ib q t p lp =>
+    Material t lp -> LCM (World rs vb ib q t p lp) e (Material t lp)
+loadMaterialResources mat = catchLCM $ do
+    when (isJust (mtSupportedTechniques mat)) $ throwLCM mat -- Material is already initialized
+
+    -- select and load supported techniques
+    suppTech <- forM (filter isSupportedTech (mtTechniques mat)) $ \tech -> do
+        -- load passes (GpuProgram)
+        passes <- forM (tchPasses tech) $ \pass -> do
+            lgp <- loadGpuProgram pass
+            tuss <- forM (psTextureUnitStates pass) loadTextureUnit
+            return $ pass
+                { psTextureUnitStates = tuss
+                , psLinkedGpuProgram = lgp
+                }
+
+        return (tech { tchPasses = passes })
+
+    -- Insert loaded material into MaterialMap
+    let mat' = mat { mtSupportedTechniques = Just suppTech }
+    updateResource $ \rl -> rl { rlMaterialMap = Map.insert (mtName mat') mat' (rlMaterialMap rl) }
+
+    return mat'
+  where
+    isSupportedTech _ = True -- TODO
+
+    loadGpuProgram pass = catchLCM $ do
+        let mlgp = psLinkedGpuProgram pass
+        when (isJust mlgp) $ throwLCM mlgp
+
+        world@World { wrRenderSystem = rs, wrResource = reslib } <- peekLCM
+        let gpuprogmap = rlGpuProgramMap reslib
+            progName@(vpn,fpn,gpn) =
+                (getName (psVertexProgramUsage pass),
+                 getName (psFragmentProgramUsage pass),
+                 getName (psGeometryProgramUsage pass))
+              where
+                getName = maybe "" gpuProgramName
+
+        -- collect required shaders name list
+        progNames <- flip fix ([],filter (/="") [vpn,fpn,gpn]) $ \loop (cl,nl) ->
+            case nl of
+                [] -> return cl
+                _  -> do
+                    let fnl = filter (`notElem` cl) nl
+                    nl' <- forM fnl $ \m -> case Map.lookup m gpuprogmap of
+                        Nothing -> do
+                            errorLCM "loadShader" $ "Unknown attached GpuProgram: " ++ m
+                            return []
+                        Just gp -> return (gpdAttach gp)
+                    loop (cl ++ fnl, concat nl')
+
+        when (null progNames) $ throwLCM Nothing
+
+        -- load all shaders
+        progs <- fmap catMaybes . forM progNames $ \sn -> catchLCM $ do
+            reslib <- wrResource <$> peekLCM
+
+            let mgpd@ ~(Just gpd) = Map.lookup sn (rlGpuProgramMap reslib)
+            when (isNothing mgpd) $ do
+                errorLCM "loadShader" $ "Unknown GpuProgram: " ++ sn
+                throwLCM Nothing
+
+            let mp = gpdGpuProgram gpd
+            when (isJust mp) $ throwLCM mp
+
+            -- GpuProgram is not loaded yet
+            let fname = gpdFilename gpd
+            msrc@ ~(Just src) <- liftIO $ loadFile (rlResourceGroups reslib) fname
+            when (isNothing msrc) $ do
+                errorLCM "loadShader" $ "GpuProgram source not found: " ++ sn ++ " - " ++ fname
+                throwLCM Nothing
+
+            eprog <- liftIO $ createGpuProgram rs (gpdType gpd) (map SB.w2c (LB.unpack src))
+            case eprog of
+                Right err -> do
+                    errorLCM "loadShader" $ "Error compile " ++ sn ++ ": " ++ err
+                    return Nothing
+                Left prog -> do
+                    debugLCM "loadShader" $ "GpuProgram loaded: " ++ sn
+                    let mprog = Just prog
+                        gpmap = Map.insert sn (gpd { gpdGpuProgram = mprog }) (rlGpuProgramMap reslib)
+                    updateResource $ \rl -> rl { rlGpuProgramMap = gpmap }
+                    return mprog
+
+        mlp <- Map.lookup progName . rlLinkedGpuProgramMap . wrResource <$> peekLCM
+        when (isJust mlp) $ throwLCM mlp
+
+        -- create LinkedGpuProgram
+        elprog <- liftIO $ createLinkedGpuProgram rs progs
+        case elprog of
+            Right err -> do
+              errorLCM "loadGpuProgram" $ "Error link " ++ show progName ++ ": " ++ err
+              return Nothing
+            Left lprog -> do
+              debugLCM "loadGpuProgram" $ "GpuProgram linked: " ++ show progName
+              lgpmap <- rlLinkedGpuProgramMap . wrResource <$> peekLCM
+              updateResource $ \rl -> rl { rlLinkedGpuProgramMap = Map.insert progName lprog lgpmap }
+              return (Just lprog)
+
+    loadImage name = do
+        World { wrResource, wrImageLoaders } <- peekLCM
+        d <- liftIO $ loadFile (rlResourceGroups wrResource) name
+        case d of
+            Just imgdata -> liftIO $ foldM' loadImg Nothing wrImageLoaders
+              where
+                loadImg Nothing loader = loader name imgdata
+                loadImg img     _      = return img
+            Nothing -> do
+                debugLCM "Load image" $ "File not found: " ++ name
+                return Nothing
+
+    loadTextureUnit t = do
+        World { wrRenderSystem } <- peekLCM
+        let loadTexture texname = catchLCM $ do
+                reslib <- wrResource <$> peekLCM
+                let mt = Map.lookup texname (rlTextureMap reslib)
+                when (isJust mt) $ throwLCM mt -- texture is loaded
+
+                -- we have to create the texture
+                -- TODO: create and load texture via render system
+{-
+  virtual TexturePtr createManual(const String & name, const String& group,
+      TextureType texType, uint width, uint height, uint depth,
+                  int num_mips, PixelFormat format, int usage = TU_DEFAULT, ManualResourceLoader* loader = 0,
+                  bool hwGammaCorrection = false, uint fsaa = 0, const String& fsaaHint = StringUtil::BLANK);
+
+  { imName        :: String
+  , imHeight      :: Int
+  , imWidth       :: Int
+  , imDepth       :: Int
+  , imSize        :: Int
+  , imNumMipmaps  :: Int
+--  uint flags;
+  , imFormat      :: PixelFormat
+  , imData        :: (Ptr Word8) -- ^ Image can be empty
+  }
+  mkGLTexture :: String -> TextureType -> Int -> Int -> Int -> Int -> PixelFormat -> TextureUsage -> Bool -> Int -> String -> IO GLTexture
+  mkGLTexture name texType width height depth numMips format usage hwGammaCorrection fsaa fsaaHint = do
+--createTexture :: a -> String -> TextureType -> Int -> Int -> Int -> Int -> PixelFormat -> TextueUsage -> Bool -> Int -> String -> IO t
+-}
+                mi@ ~(Just img) <- loadImage texname
+                when (isNothing mi) $ do
+                    debugLCM "Load texture" $ "No proper image codec was found: " ++ texname
+                    throwLCM Nothing
+
+                let usage = TextureUsage HBU_STATIC True False
+                t <- liftIO $ createTexture wrRenderSystem texname (tusTextureType t)
+                     (imWidth img) (imHeight img) (imDepth img)
+                     (tusTextureSrcMipmaps t) (tusDesiredFormat t) usage (tusHwGamma t) 0 "" (Just [img])
+                -- TODO
+                --let t = undefined
+                let texmap = rlTextureMap reslib
+                updateResource $ \rl -> rl { rlTextureMap = Map.insert texname t texmap }
+                return (Just t)
+
+            loadCubicTexture texname = catchLCM $ do
+                texmap <- rlTextureMap . wrResource <$> peekLCM
+                let mt = Map.lookup (concat texname) texmap
+                when (isJust mt) $ throwLCM mt -- texture is loaded
+
+                -- we have to create the texture
+                -- TODO: create and load texture via render system
+                i <- forM texname loadImage
+                unless (all isJust i) $ do
+                    debugLCM "Load texture" $ "No proper image codec was found: " ++ concat texname
+                    throwLCM Nothing
+
+                let usage = TextureUsage HBU_STATIC True False
+                    Just img : _ = i
+                t <- liftIO $ createTexture wrRenderSystem (concat texname) (tusTextureType t)
+                     (imWidth img) (imHeight img) (imDepth img)
+                     (tusTextureSrcMipmaps t) (tusDesiredFormat t) usage (tusHwGamma t) 0 "" (Just (map fromJust i))
+                updateResource $ \rl -> rl { rlTextureMap = Map.insert (concat texname) t texmap }
+                return (Just t)
+        -- load textures
+        -- TODO: load all frames
+        frames <- case tusTextureType t of
+            TEX_TYPE_CUBE_MAP -> maybeToList <$> loadCubicTexture (tusFrameNames t)
+            _                 -> catMaybes <$> forM (tusFrameNames t) loadTexture
+        return $ t { tusFrames = Just frames }
+
+
+--NOTE: this should return with Nothing if there's no supported technique
+--getLoadedMaterial :: (RenderSystem rs vb ib q t p lp) => String -> World rs vb ib q t p lp -> IO (World rs vb ib q t p lp, Maybe (Material t lp))
+getLoadedMaterial :: RenderSystem r vb ib q t p lp => String -> LCM (World r vb ib q t p lp) e (Maybe (Material t lp))
+getLoadedMaterial matname = do
+    matmap <- rlMaterialMap . wrResource <$> peekLCM
+    case Map.lookup matname matmap of
+        Nothing -> do
+            errorLCM "loadMaterial" $ "Material not found: " ++ matname
+            return Nothing
+        Just m  -> case mtSupportedTechniques m of
+            Just _  -> return (Just m)
+            --TODO: this should return with Nothing if there's no supported technique
+            Nothing -> Just <$> loadMaterialResources m
+
+setEntityMaterial :: RenderSystem r vb ib q t p lp => [String] -> Entity vb ib t lp -> LCM (World r vb ib q t p lp) e (Entity vb ib t lp)
+setEntityMaterial mats ent = do
+    subents <- forM (zip (enSubEntityList ent) mats) $ \(sent,matname) -> do
+        matmap <- rlMaterialMap . wrResource <$> peekLCM
+        mat <- case Map.lookup matname matmap of
+            Just m  -> loadMaterialResources m
+            Nothing -> error $ "Material not found: " ++ matname
+        return (sent { seMaterial = mat })
+
+    return (ent { enSubEntityList = subents })
+
+createEntity :: (RenderSystem r vb ib q t p lp, Enum rqp) => String -> String -> rqp -> LCM (World r vb ib q t p lp) e (Entity vb ib t lp)
+createEntity ename mname renderQueueID = do
+    -- lookup mesh, load if not exists
+    --debugM "ResourceLibrary" $ "creating entity: \"" ++ ename ++ "\" from mesh: \"" ++ mname ++ "\""
+    mesh <- getMesh mname
+    --debugM "ResourceLibrary" " done"
+
+    subents <- forM (msSubMeshList mesh) $ \smesh -> do
+        matmap <- rlMaterialMap . wrResource <$> peekLCM
+        let matname = smMaterialName smesh
+        mat <- case Map.lookup matname matmap of
+            Just m  -> loadMaterialResources m
+            Nothing -> error $ "Material not found: " ++ matname
+                       --debugM "createEntity" $ "Material not found: " ++ matname
+                       -- TODO
+                       --loadMaterialResources (matmap ! "WarningMaterial")
+        return (SubEntity { seMaterial = mat, seSubMesh = smesh })
+
+    return $ Entity
+        { enName          = ename
+        , enRenderQueue   = fromEnum renderQueueID
+        , enMesh          = mesh
+        , enSubEntityList = subents
+        }
+
+-- | Get the raw data for a resource in a lazy bytestring given its
+-- path.  The data is cached, so this does not necessarily require
+-- disk I/O.
+readFile :: RenderSystem r vb ib q t p lp => FilePath -> LCM (World r vb ib q t p lp) e LB.ByteString
+readFile fname = do
+    world <- peekLCM
+    f <- liftIO $ loadFile (rlResourceGroups (wrResource world)) fname
+    case f of
+        Nothing -> throwLCM $ error $ "File not found: " ++ fname
+        Just d  -> return d
+
+-- | Get the raw data for a resource in a strict bytestring given its
+-- path.  The data is cached, so this does not necessarily require
+-- disk I/O.
+readFile' :: RenderSystem r vb ib q t p lp => FilePath -> LCM (World r vb ib q t p lp) e SB.ByteString
+readFile' fname = SB.concat <$> LB.toChunks <$> Graphics.LambdaCube.World.readFile fname
+
+loadFile :: [ResourceGroup] -> FilePath -> IO (Maybe LB.ByteString)
+loadFile respath fname = foldM' (\s (_,l) -> foldM' load s l) Nothing respath
+  where
+    load s@(Just str) _ = return s
+    load s (PathZip,n)  = do
+        -- TODO: this is a naive implementation with poor perfomance
+        f <- LB.readFile n
+        let a = toArchive f
+        return $ fmap fromEntry $ findEntryByPath fname a
+    load Nothing (PathDir,n) = do
+        let ffname = (addTrailingPathSeparator n) ++ fname
+        e <- doesFileExist ffname
+        ret <- if e then LB.readFile ffname else return LB.empty
+        return $ if e then Just ret else Nothing
+
+renderFlatScene :: RenderSystem r vb ib q t p lp => FloatType -> String -> FlattenScene vb ib t lp -> LCM (World r vb ib q t p lp) e ()
+renderFlatScene time name flatScene = do
+    World { wrTargets, wrRenderSystem = rs, wrRenderOptions, wrResource } <- peekLCM
+    let renderTarget rt = do
+            -- TODO: calc render statistics
+            let t = rtTexture rt
+            -- call setRenderTarget rs
+            mapM_ (renderViewport flatScene rt) $ rtViewport rt
+            --if isNothing t then return () else do
+                --let tex = txObject $ (rlTextureMap $ wrResource world) ! (fromMaybe (error "fromJust 0") t)
+                --GL.textureBinding GL.Texture2D $= Just tex
+                -- only hint code: glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 0, 0, 128, 128, 0);
+                --GL.copyTexImage2D Nothing 0 GL.RGBA' (GL.Position 0 0) (GL.TextureSize2D w' h') 0
+            --return ()
+
+        renderViewport fs rtarget v = do
+            let (vx,vy,vw,vh) = getViewportSize rtarget v
+                (camMat,cam) = head $ Prelude.filter (\(_,a) -> camName == (cmName a)) $ fsCamera fs
+                camName = vpCamera v
+                cameraViewMatrix = inverse camMat
+                projectionMatrix = cameraProjectionMatrix (fromIntegral vw / fromIntegral vh) cam
+                camFrustum = frustumFromMatrix $ (fromProjective cameraViewMatrix) .*. projectionMatrix
+
+            setViewport rs vx vy vw vh
+
+            -- Clear the viewport if required
+            when (vpClearEveryFrame v) $
+                clearFrameBuffer rs (vpClearBuffers v) (vpBackColour v) 1 0
+
+            -- Begin the frame
+            --mDestRenderSystem->_beginFrame();
+
+            -- Set rasterisation mode
+            setPolygonMode rs $ cmPolygonMode cam
+
+            -- Set initial camera state
+            setProjectionMatrix rs projectionMatrix
+
+            --mDestRenderSystem->_setTextureProjectionRelativeTo(mCameraRelativeRendering, camera->getDerivedPosition());
+            --setTextureProjectionRelativeTo
+
+            setViewMatrix rs cameraViewMatrix
+
+            -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+            -- TODO: activate compositor chain render target if necessary
+            -- (re)initialize compositor resources if necessary
+            -- foreach compositor
+            --  select technique
+            --  create render textures
+            --  initialize target passes
+            -- do render
+            -- foreach compositor and target pass
+            --  bind target pass
+            --  execute each composition pass in target pass
+            --HINT:
+                --
+
+            -- FIXME: TEMP CODE
+            unless (null $ vpCompositors v) $ do
+                -- bind render texture
+                return ()
+
+            --TODO: cull scene
+            -- sphereInFrustum p r fr
+            --fsRenderable  :: [(Mat44FT,[RenderEntity vb ib t lp],Int,Int)]
+            let culledScene = cull (fsRenderable fs)
+                  where
+                    cull rs = [(reMat,rel',rqid,rprio) | (reMat,rel,rqid,rprio) <- rs,
+                               let p = trim (_4 (fromProjective reMat))
+                                   r re = norm $ (Vec3 (reBoundRadius re) 0 0) .* (trim (fromProjective reMat) :: Mat3)
+                                   rel' = [re | re <- rel, sphereInFrustum p (r re) camFrustum],
+                               not (null rel')]
+            --putStrLn $ "full: " ++ (show $ length (fsRenderable fs)) ++ " culled: " ++ (show $ length culledScene)
+            -- render objects
+            rstat <- renderQueue time rs wrRenderOptions emptyRenderStatistics (fsLight fs) culledScene
+    --        print rstat
+
+            -- Compositor
+                -- TargetPass
+                    -- Pass
+            forM_ (vpCompositors v) $ \c -> do
+                let ct = head $ fromMaybe (error "fromJust 112") $ cmpSupportedTechniques c
+                -- select first technique
+                forM (ctTargetPasses ct ++ [ctOutputTarget ct]) $ \ctp -> do
+                --  -- copy previous output to target's output when input is previous
+                    when (ctpInputMode ctp == IM_PREVIOUS) $ do
+                        -- FIXME
+                        dirtyHackCopyTexImage rs (fromMaybe (error "fromJust 212") $ tdTexture $ fromJust $ ctpOutput ctp) vx vy vw vh
+                    forM (ctpPasses ctp) $ \cp -> do
+                        -- do composition pass action
+                        case cpType cp of
+                            PT_RENDERQUAD -> do
+                              -- TODO
+                              -- setup quad material
+                              -- render quad
+                              let quadM   = fromMaybe (error "fromJust 312") $ Map.lookup "Quad.mesh.xml" (rlMeshMap wrResource)
+                                  quadSM  = head $ msSubMeshList quadM
+                                  quadSE  = SubEntity { seMaterial = fromMaybe (error "fromJust 412") $ cpMaterial cp, seSubMesh = quadSM }
+                                  quadE   = Entity "" (fromEnum RQP_Main) quadM [quadSE]
+                                  quadRE  = head $ prepare idmtx quadE
+                                  quadRP  = [RenderablePass (reOperation quadRE) p idmtx [(idmtx,defaultLight)] | p <- rePassList quadRE]
+                                  defaultLight = Light
+                                      { lgType                = LT_POINT
+                                      , lgDiffuse             = (1,1,1,1)
+                                      , lgDirection           = Vec3 0 0 1
+                                      , lgSpecular            = (0,0,0,0)
+                                      , lgSpotOuter           = pi / 180 * 40
+                                      , lgSpotFalloff         = 1
+                                      , lgRange               = 100000
+                                      , lgAttenuationConst    = 1
+                                      , lgAttenuationLinear   = 0
+                                      , lgAttenuationQuad     = 0
+                                      }
+                              setProjectionMatrix rs idmtx
+                              setViewMatrix rs idmtx
+                              setWorldMatrix rs idmtx
+                              setPolygonMode rs PM_SOLID
+                              renderPassGroup time rs emptyRenderStatistics quadRP
+                              return ()
+                            _ -> return ()
+    {-
+            unless (null $ vpCompositors v) $ do
+                -- FIXME: TEMP CODE
+                -- unbind render texture, and we'll have the rendered scene in a texture
+                -- create a custom temp pass with temp render texture input
+                -- create quad render operation
+                let quadSM  = head $ msSubMeshList $ fromJust $ Map.lookup "Quad.mesh.xml" (rlMeshMap $ wrResource world)
+                    quadRO  = RenderOperation
+                        { roVertexData      = fromJust $ smVertexData quadSM
+                        , roOperationType   = smOperationType quadSM
+                        , roIndexData       = smIndexData quadSM
+                        }
+                    quadP   = head $ tchPasses $ head $ fromJust $ mtSupportedTechniques $ fromJust $ Map.lookup "QuadMaterial" (rlMaterialMap $ wrResource world)
+                    quadRP  = RenderablePass
+                        { rpOperation   = quadRO
+                        , rpPass        = quadP'
+                        , rpMatrix      = transl 0 0 0
+                        , rpLights      = []
+                        }
+                    rtex    = fromJust $ Map.lookup "RenderTex01" $ (rlTextureMap $ wrResource world)
+                    tus     = psTextureUnitStates quadP
+                    tu      = head tus
+                    tut     = tail tus
+                    tu'     = tu { tusFrames = Just [rtex] }
+                    quadP'  = quadP { psTextureUnitStates = (tu':tut) }
+                --setProjectionMatrix rs $ cameraProjectionMatrix (fromIntegral vw / fromIntegral vh) cam
+                setProjectionMatrix rs $ transl 0 0 0
+                setViewMatrix rs $ transl 0 0 0
+                dirtyHackCopyTexImage rs rtex vx vy vw vh
+                setPolygonMode rs PM_SOLID
+                renderPassGroup rs [quadRP]
+                -- invert back
+                --dirtyHackCopyTexImage rs rtex vx vy vw vh
+    -}            --renderPassGroup rs [quadRP]
+
+    -- TODO
+    -- collect all render textures
+    -- render the world on all render textures
+    -- render the world last to the given named target
+
+    -- forall viewports:
+    --   setup viewport related matrices
+    --   render scene
+    case Map.lookup name wrTargets of
+        Nothing -> debugLCM "renderWold" $ "RenderTarget not found: " ++ name
+        Just t  -> do
+            let targets   = Map.elems wrTargets
+                (tg,tgs)  = partition ((== name) . rtName) targets
+                (rtl,rwl) = partition (isNothing . rtTexture) tgs
+            liftIO $ prepareRender rs >> mapM_ renderTarget (rtl ++ rwl ++ tg) >> finishRender rs
+{-
+    = RenderOperation
+    { roVertexData      :: VertexData vb      -- ^ Vertex source data
+    , roOperationType   :: OperationType    -- ^ The type of operation to perform
+    , roIndexData       :: Maybe (IndexData ib)        -- ^ Index data - only valid if useIndexes is true
+    }
+    = RenderablePass
+    { rpOperation   :: RenderOperation vb ib
+    , rpPass        :: Pass t lp
+    , rpMatrix      :: Matrix4
+    , rpLights      :: [(Matrix4,Light)]
+    }
+--renderPassGroup :: RenderSystem -> RenderablePass -> IO ()
+-}
+        -- do a manual render for temp pass (we should reset world, view, projection and texture matrix)
+
+
+---------------------------------------------------------------------
+        -- push flatten scene into a render queue
+        --  collect lights which affect each renderable
+        --  fold addRenderable
+        -- call renderQueue
+        --let addRend (m,rend,grpID,prior) rq = addRenderable m rend (map snd $ fsLight fs) grpID prior rq
+        --renderQueue' rs $ foldr addRend emptyRenderQueue $ fsRenderable fs
+        -- old code below-------------------------------------------------------------------------------------------
+        --mapM_ (renderEntity (wrRenderSystem world)) $ optimize $ foldr (\(m,r) l -> (prepare m r) ++ l) [] [(a,b) | (a,b,_,_) <- fsRenderable fs]
+
+-- | Create a new texture.
+addRenderTexture :: RenderSystem r vb ib q a p lp
+                 => String  -- ^ The name of the texture.
+                 -> Int     -- ^ Width in texels.
+                 -> Int     -- ^ Height in texels.
+                 -> LCM (World r vb ib q a p lp) e ()
+addRenderTexture n w h = do
+    World { wrRenderSystem, wrResource } <- peekLCM
+    let tm = rlTextureMap wrResource
+    t <- liftIO $ createTexture wrRenderSystem n TEX_TYPE_2D w h 1 (MIP_NUMBER 1) PF_R8G8B8A8 (TextureUsage HBU_STATIC True False) False 0 "" Nothing
+    updateResource $ \rl -> rl { rlTextureMap = Map.insert n t tm }
+
+-- | Specify the viewports to display in the window.
+addRenderWindow :: RenderSystem r vb ib q t p lp
+                => String                                            -- ^ The name of the window.
+                -> Int                                               -- ^ The width of the window in pixels.
+                -> Int                                               -- ^ The height of the window in pixels.
+                -> [LCM (World r vb ib q t p lp) e (Viewport t lp)]  -- ^ The actions describing the viewports to use.
+                -> LCM (World r vb ib q t p lp) e ()
+addRenderWindow n w h l = do
+    vl <- sequence l
+    let rt = RenderTarget
+            { rtName     = n
+            , rtWidth    = w
+            , rtHeight   = h
+            , rtViewport = vl
+            , rtTexture  = Nothing
+            }
+    updateWorld (mapTargets (Map.insert n rt))
+
+    {-
+    = Compositor
+    { cmpName                   :: String
+    , cmpTechniques             :: [CompositionTechnique t]
+    , cmpSupportedTechniques    :: Maybe [CompositionTechnique t]
+    }
+
+    = CompositionTechnique
+    { ctTextureDefinitions  :: [TextureDefinition t]
+    , ctTargetPasses        :: [CompositionTargetPass]  -- ^ Intermediate target passes
+    , ctOutputTarget        :: CompositionTargetPass    -- ^ Output target pass (can be only one)
+    , ctSchemeName          :: String                   -- ^ Optional scheme name
+    }
+
+    = TextureDefinition
+    { tdName            :: String
+    , tdWidth           :: Maybe Int        -- Nothing means adapt to target width
+    , tdHeight          :: Maybe Int        -- Nothing means adapt to target height
+    , tdWidthFactor     :: FloatType        -- multiple of target width to use (if width = Nothing)
+    , tdHeightFactor    :: FloatType        -- multiple of target height to use (if height = Nothing)
+    , tdFormatList      :: [PixelFormat]    -- more than one means MRT
+    , tdFsaa            :: Bool             -- FSAA enabled; true = determine from main target (if render_scene), false = disable
+    , tdHwGammaWrite    :: Bool             -- Do sRGB gamma correction on write (only 8-bit per channel formats)
+    , tdShared          :: Bool             -- whether to use shared textures for this one
+    , tdTexture         :: Maybe t
+    }
+
+    = CompositionTargetPass
+    { ctpInputMode      :: InputMode            -- ^ Input name
+    , ctpOutputName     :: String               -- ^ (local) output texture
+    , ctpOutput         :: Maybe (TextureDefinition t)
+    , ctpPasses         :: [CompositionPass]    -- ^ Passes
+    , ctpOnlyInitial    :: Bool                 -- ^ This target pass is only executed initially after the effect has been enabled.
+    , ctpVisibilityMask :: Word32               -- ^ Visibility mask for this render
+    , ctpLodBias        :: FloatType            -- ^ LOD bias of this render
+    , ctpMaterialScheme :: String               -- ^ Material scheme name
+    , ctpShadowsEnabled :: Bool                 -- ^ Shadows option
+    }
+
+    = InputTex
+    { itName        :: String   -- ^ Name (local) of the input texture
+    , itMrtIndex    :: Int      -- ^ MRT surface index if applicable
+    }
+
+    = CompositionPass
+    { cpType                        :: PassType         -- ^ Type of composition pass
+    , cpIdentifier                  :: Word32           -- ^ Identifier for this pass
+    , cpMaterialName                :: String           -- ^ Material used for rendering
+    , cpMaterial                    :: Maybe (Material t lp)
+    , cpFirstRenderQueue            :: Int              -- ^ [first,last] render queue to render this pass (in case of PT_RENDERSCENE)
+    , cpLastRenderQueue             :: Int
+    , cpClearBuffers                :: (Bool,Bool,Bool) -- ^ Clear buffers (in case of PT_CLEAR), hint: [colour] [depth] [stencil]
+    , cpClearColour                 :: ColourValue      -- ^ Clear colour (in case of PT_CLEAR)
+    , cpClearDepth                  :: FloatType        -- ^ Clear depth (in case of PT_CLEAR)
+    , cpClearStencil                :: Word32           -- ^ Clear stencil value (in case of PT_CLEAR)
+    , cpInputs                      :: IntMap InputTex  -- ^ Inputs (for material used for rendering the quad)
+    , cpStencilCheck                :: Bool             -- ^ Stencil operation parameters
+    , cpStencilFunc                 :: CompareFunction
+    , cpStencilRefValue             :: Word32
+    , cpStencilMask                 :: Word32
+    , cpStencilFailOp               :: StencilOperation
+    , cpStencilDepthFailOp          :: StencilOperation
+    , cpStencilPassOp               :: StencilOperation
+    , cpStencilTwoSidedOperation    :: Bool
+    , cpQuadCornerModified          :: Bool             -- ^ true if quad should not cover whole screen
+    , cpQuadLeft                    :: FloatType        -- ^ quad positions in normalised coordinates [-1;1]x[-1;1] (in case of PT_RENDERQUAD)
+    , cpQuadTop                     :: FloatType
+    , cpQuadRight                   :: FloatType
+    , cpQuadBottom                  :: FloatType
+    , cpQuadFarCorners              :: Bool
+    , cpQuadFarCornersViewSpace     :: Bool
+    }
+
+data PassType
+    = PT_CLEAR          -- ^ Clear target to one colour
+    | PT_STENCIL        -- ^ Set stencil operation
+    | PT_RENDERSCENE    -- ^ Render the scene or part of it
+    | PT_RENDERQUAD     -- ^ Render a full screen quad
+    -}
+
+-- | Create render textures, and setup compositor chain.
+mkCompositorChain :: RenderSystem r vb ib q t p lp => [Compositor t lp] -> LCM (World r vb ib q t p lp) e [Compositor t lp]
+mkCompositorChain cl = do
+    rs <- wrRenderSystem <$> peekLCM
+    -- do we really need this ???? -- HINT: add an implicit target to first compositor which renders the scene into a viewportsized texture,
+    -- iterate trough compositors and select first supported technique
+    let initCompositor c = catchLCM $ do -- :: (World,[Maybe Compositor]) -> Compositor -> (World,[Maybe Compositor])
+            -- TODO: select first supported technique
+            let ct = head $ cmpTechniques c
+            tds <- forM (ctTextureDefinitions ct) $ \td -> do
+                -- create render textures
+                let w   = fromMaybe 1 $ tdWidth td
+                    h   = fromMaybe 1 $ tdHeight td
+                    txn = (cmpName c ++ "/" ++ tdName td)
+                t <- liftIO $ createTexture rs txn TEX_TYPE_2D w h 1 (MIP_NUMBER 1) (head $ tdFormatList td) (TextureUsage HBU_STATIC True False) False 0 "" Nothing
+                debugLCM "Initialize Compositor" $ "Created compositor texture: " ++ txn
+                return td { tdTexture = Just t }
+
+            let texmap  = Map.fromList [(tdName td,td) | td <- tds]
+                onamel  = map ctpOutputName $ ctTargetPasses ct
+                outtexl = [Map.lookup o texmap | o <- onamel]
+                checkTex tn = unless (Map.member tn texmap) $ do
+                    errorLCM "Initialize Compositor" $ "Unknown compositor texture: " ++ tn
+                    throwLCM Nothing
+
+            forM_ onamel checkTex
+
+            -- setup compositor target pass output
+            let initPasses tp = do
+                    pl <- forM (ctpPasses tp) $ \cp -> case cpType cp of
+                        PT_RENDERQUAD -> do
+                            -- setup composition pass input
+                            --  load material
+                            mmat@ ~(Just mat) <- getLoadedMaterial (cpMaterialName cp)
+                            when (isNothing mmat) $ throwLCM Nothing
+
+                            --  check pass input texture names
+                            forM_ [itName it | it <- IntMap.elems $ cpInputs cp] checkTex
+
+                            -- foreach material pass and for each textureunitstate
+                            --  setup texture when it's a RT
+                            let fp p = p { psTextureUnitStates = tul' }
+                                  where
+                                    tul' = [tu { tusFrames = fromMaybe (tusFrames tu) (ft i) } | (i,tu) <- tusl]
+                                    ft i = case IntMap.lookup i (cpInputs cp) of
+                                               Nothing -> Nothing
+                                               Just it -> Just $ Just [fromJust $ tdTexture $ texmap Map.! (itName it)]
+                                    tusl = zip [0..] $ psTextureUnitStates p
+                                mat' = mat { mtSupportedTechniques = Just [tch { tchPasses = [fp p | p <- tchPasses tch] } | tch <- fromJust $ mtSupportedTechniques mat] }
+                            --return with modified pass attached to the list
+                            return (cp { cpMaterial = Just mat' })
+                        _ -> return cp
+                    return (tp { ctpPasses = pl })
+
+            tps <- forM [tp { ctpOutput = o } | (o,tp) <- zip outtexl (ctTargetPasses ct)] initPasses
+            otp <- initPasses (ctOutputTarget ct)
+            let ct' = ct { ctTextureDefinitions = tds, ctTargetPasses = tps, ctOutputTarget = otp }
+            return (Just c { cmpSupportedTechniques = Just [ct'] })
+
+    -- setup compositor target pass input
+    -- TODO: setup compositor chain connection
+    catMaybes <$> forM cl initCompositor
+
+-- | Create a viewport and attach given compositors.
+viewport :: RenderSystem r vb ib q t p lp
+         => FloatType  -- ^ Viewport x position.
+         -> FloatType  -- ^ Viewport y position.
+         -> FloatType  -- ^ Viewport width.
+         -> FloatType  -- ^ Viewport height.
+         -> String     -- ^ The camera associated with the viewport.
+         -> [String]   -- ^ The compositor chain to process the image with.
+         -> LCM (World r vb ib q t p lp) e (Viewport t lp)
+viewport x y w h cam cnl = do
+    compMap <- rlCompositorMap . wrResource <$> peekLCM
+    -- collect compositors
+    let getCompositor l cn = case Map.lookup cn compMap of
+            Nothing -> do
+              errorLCM "ApplyCompositor" $ "Unknown compositor: " ++ cn
+              return l
+            Just c  -> return $ c:l
+
+    -- setup compositor chain
+    cl0 <- foldM' getCompositor [] cnl
+    cl1 <- mkCompositorChain (reverse cl0)
+    return Viewport
+        { vpLeft            = x
+        , vpTop             = y
+        , vpWidth           = w
+        , vpHeight          = h
+        , vpCamera          = cam
+        , vpCompositors     = cl1
+        , vpBackColour      = (0,0,0,0)
+        , vpClearEveryFrame = True
+        , vpClearBuffers    = FrameBufferType True True False
+        }
+
+-- | Adjust the dimensions of a given render target.
+updateTargetSize :: RenderSystem rs vb ib q t p lp
+                 => String  -- ^ The target to adjust.
+                 -> Int     -- ^ The new width.
+                 -> Int     -- ^ The new height.
+                 -> LCM (World rs vb ib q t p lp) e ()
+updateTargetSize n w h = updateWorld (mapTargets (Map.adjust f n))
+  where
     f t = t { rtWidth = w, rtHeight = h }
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2009, Csaba Hruska
+Copyright (c) 2009-2011, Csaba Hruska
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/README b/README
--- a/README
+++ b/README
@@ -16,3 +16,78 @@
 
 You can use the addConfig function (found in comments in all the
 examples) to load this file.
+
+
+Internals:
+    Internals overview:
+        ...
+    
+    render pipeline:
+        Scene       ->  FlattenScene    ->  RenderQueue     ->  RenderablePass
+         |-> Light       |-> Light          (optimize            - setup light and pass
+         |-> Camera      |-> Camera          render              - render each RenderOperation (call RenderSystem's render function)
+         |-> Entity      |-> RenderEntity    operations)
+         
+         for each RenderTarget
+            renderViewport
+
+    data types:
+        - RenderSystem related typeclasses
+            - HardwareBuffer
+            - HardwareVertexBuffer
+            - HardwareIndexBuffer
+            - Texture
+            - GpuProgram
+            - LinkedGpuProgram
+            - RenderSystemCapabilities
+        - World (top level data structure)
+            low level model data types:
+                - VertexData
+                - IndexData
+                - VertexDeclaration
+                - VertexBufferBinding
+            high level model data types:
+                - SubMesh
+                - Mesh
+                - VectorVertexData
+            material data types:
+                - Material
+                - Technique
+                - Pass
+                - TextureUnitState
+            scene related data types:
+                - FlattenScene
+                - SceneObject
+                  - Entity
+                        - SubEntity
+                    - Camera
+                    - Light
+                - SceneNode
+                - Scene
+                    - MkSceneObjectAction
+                    - MkNodeAction
+                - Frustum
+            high level render related data types:
+                - Compositor
+                - RenderTarget
+                - Viewport
+                - 
+            low level rendering related data types:
+                - Renderable (type class)
+                - RenderEntity
+                - RenderOperation
+                - RenderablePass
+                - 
+            resource related data types:
+                - ResourceLibrary
+                - 
+
+User Guide:
+    - lambdacube is a rendering engine, does not care with window management and input handling.
+    - usage:
+        - create render system
+        - create world:
+            - init world with render system and resource paths and loaders
+            - create the scene
+        - render loop:
+            - derive a world data for each new frame, with required world modifications
diff --git a/lambdacube-engine.cabal b/lambdacube-engine.cabal
--- a/lambdacube-engine.cabal
+++ b/lambdacube-engine.cabal
@@ -1,114 +1,121 @@
 name: lambdacube-engine
-version: 0.1.2
+version: 0.2.1
 cabal-version: >= 1.6 && < 2
 build-type: Simple
 license: BSD3
 license-file: LICENSE
-author: Csaba Hruska
+author: Csaba Hruska, Gergely Patai
 maintainer: csaba (dot) hruska (at) gmail (dot) com
 stability: experimental
 homepage: http://www.haskell.org/haskellwiki/LambdaCubeEngine
+bug-reports: http://code.google.com/p/lambdacube/issues
 category: Graphics
-tested-with: GHC == 6.10.1, GHC == 6.10.4
-synopsis: 3D rendering engine entirely written in Haskell
-description: 
+tested-with: GHC == 6.10.1, GHC == 6.10.4, GHC == 7.0.3
+synopsis: 3D rendering engine written entirely in Haskell
+description:
   LambdaCube is a 3D rendering engine written entirely in Haskell.
   It targets newer graphics hardware. The engine uses Ogre3D's mesh
   and material file format. The main goal of this project is to
   provide a modern and feature rich graphical backend for various
-  haskell projects (e.g. FRP libraries).
+  Haskell projects (e.g. FRP libraries).
+  .
+  While the interface looks huge on the surface, the only part of
+  interest to application developers is the "Graphics.LambdaCube"
+  module, and possibly "Graphics.LambdaCube.Loader.StbImage".  The
+  rest is only exposed to make low-level interfacing possible.
 extra-source-files:
   CHANGES
   README
-  Graphics/LambdaCube/Loader/Makefile
   Graphics/LambdaCube/Loader/CompositorScriptScanner.x
   Graphics/LambdaCube/Loader/FontDefinitionScriptScanner.x
+  Graphics/LambdaCube/Loader/Makefile
   Graphics/LambdaCube/Loader/MaterialScriptScanner.x
   Graphics/LambdaCube/Loader/OverlayScriptScanner.x
   Graphics/LambdaCube/Loader/ResourceScriptScanner.x
 
 library
-  build-depends: 
+  build-depends:
+    OpenGLRaw,
+    vect >= 0.4.6 && < 1,
+    array >= 0.2.0.0 && < 1,
     base >= 4.0.0.0 && < 5,
-    zip-archive >= 0.1.1.3 && < 1,
     binary >= 0.5.0.1 && < 1,
-    uulib >= 0.9.10 && < 1,
-    OpenGL >= 2.2.3 && < 3,
+    bitmap >= 0.0.1 && < 0.1,
     bytestring >= 0.9.1.4 && < 1,
-    xml >= 1.3 && < 2,
-    stb-image >= 0.1.3 && < 0.2,
-    filepath >= 1.1.0.1 && < 2,
-    directory >= 1.0.0.2 && < 2,
-    array >= 0.2.0.0 && < 1,
     containers >= 0.2 && < 1,
-    fgl >= 5.4.2.2 && < 6,
-    hslogger >= 1.0.7 && < 2
+    directory >= 1.0.0.2 && < 2,
+    filepath >= 1.1.0.1 && < 2,
+    stb-image >= 0.2 && < 0.3,
+    uulib >= 0.9.10 && < 1,
+    vector,
+    vector-algorithms,
+    bytestring-trie >= 0.2 && < 0.3,
+    xml >= 1.3 && < 2,
+    zip-archive >= 0.1.1.3 && < 1,
+    mtl >= 2 && < 3
   exposed-modules:
     Graphics.LambdaCube
+    Graphics.LambdaCube.AnimationState
+    Graphics.LambdaCube.BlendMode
+    Graphics.LambdaCube.Common
     Graphics.LambdaCube.Compositor
---    Graphics.LambdaCube.HardwareBufferManager
-    Graphics.LambdaCube.World
-    Graphics.LambdaCube.Light
+    Graphics.LambdaCube.Entity
+    Graphics.LambdaCube.Frustum
     Graphics.LambdaCube.GpuProgram
---    Graphics.LambdaCube.MovableObject
-    Graphics.LambdaCube.TextureUnitState
-    Graphics.LambdaCube.VertexIndexData
     Graphics.LambdaCube.GpuProgramParams
-    Graphics.LambdaCube.Types
-    Graphics.LambdaCube.Image
---    Graphics.LambdaCube.HardwarePixelBuffer
-    Graphics.LambdaCube.Common
-    Graphics.LambdaCube.HardwareIndexBuffer
-    Graphics.LambdaCube.Texture
---    Graphics.LambdaCube.ParticleSystem
-    Graphics.LambdaCube.Technique
     Graphics.LambdaCube.GpuProgramUsage
-    Graphics.LambdaCube.PixelFormat
-    Graphics.LambdaCube.AnimationState
-    Graphics.LambdaCube.Pass
-    Graphics.LambdaCube.Material
-    Graphics.LambdaCube.RenderSystemCapabilities
---    Graphics.LambdaCube.Overlay
---    Graphics.LambdaCube.Loader.ParticleSystemScript
+    Graphics.LambdaCube.HardwareBuffer
+    Graphics.LambdaCube.HardwareIndexBuffer
+    Graphics.LambdaCube.HardwareOcclusionQuery
+    Graphics.LambdaCube.HardwareVertexBuffer
+    Graphics.LambdaCube.Image
+    Graphics.LambdaCube.Light
+    Graphics.LambdaCube.Loader.CompositorScript
     Graphics.LambdaCube.Loader.Generated.CompositorScriptScanner
-    Graphics.LambdaCube.Loader.Generated.ResourceScriptScanner
---    Graphics.LambdaCube.Loader.Generated.FontDefinitionScriptScanner
     Graphics.LambdaCube.Loader.Generated.MaterialScriptScanner
---    Graphics.LambdaCube.Loader.Generated.OverlayScriptScanner
-    Graphics.LambdaCube.Loader.MeshXML
+    Graphics.LambdaCube.Loader.Generated.ResourceScriptScanner
     Graphics.LambdaCube.Loader.MaterialScript
---    Graphics.LambdaCube.Loader.LMeshBinary
+    Graphics.LambdaCube.Loader.MeshXML
     Graphics.LambdaCube.Loader.ParserUtil
---    Graphics.LambdaCube.Loader.OverlayScript
-    Graphics.LambdaCube.Loader.CompositorScript
-    Graphics.LambdaCube.Loader.StbImage
     Graphics.LambdaCube.Loader.ResourceScript
-    Graphics.LambdaCube.Math
-    Graphics.LambdaCube.SceneGraph
-    Graphics.LambdaCube.HardwareBuffer
-    Graphics.LambdaCube.Resource
+    Graphics.LambdaCube.Loader.SkeletonXML
+    Graphics.LambdaCube.Loader.StbImage
+    Graphics.LambdaCube.Material
     Graphics.LambdaCube.Mesh
-    Graphics.LambdaCube.RenderSystem
+    Graphics.LambdaCube.MeshUtil
+    Graphics.LambdaCube.Pass
+    Graphics.LambdaCube.PixelFormat
+    Graphics.LambdaCube.RenderOperation
     Graphics.LambdaCube.RenderQueue
-    Graphics.LambdaCube.Frustum
+    Graphics.LambdaCube.RenderSystem
     Graphics.LambdaCube.RenderSystem.GL
-    Graphics.LambdaCube.RenderSystem.GL.GLGpuProgram
-    Graphics.LambdaCube.RenderSystem.GL.GLCapabilities
-    Graphics.LambdaCube.RenderSystem.GL.GLTexture
-    Graphics.LambdaCube.RenderSystem.GL.GLUtils
-    Graphics.LambdaCube.RenderSystem.GL.GLOcclusionQuery
-    Graphics.LambdaCube.RenderSystem.GL.GLRenderSystem
-    Graphics.LambdaCube.RenderSystem.GL.GLVertexBuffer
-    Graphics.LambdaCube.RenderSystem.GL.GLIndexBuffer
-    Graphics.LambdaCube.Entity
-    Graphics.LambdaCube.HardwareVertexBuffer
-    Graphics.LambdaCube.BlendMode
-    Graphics.LambdaCube.RenderOperation
+    Graphics.LambdaCube.RenderSystem.GL.Capabilities
+    Graphics.LambdaCube.RenderSystem.GL.GpuProgram
+    Graphics.LambdaCube.RenderSystem.GL.IndexBuffer
+    Graphics.LambdaCube.RenderSystem.GL.OcclusionQuery
+    Graphics.LambdaCube.RenderSystem.GL.RenderSystem
+    Graphics.LambdaCube.RenderSystem.GL.Texture
+    Graphics.LambdaCube.RenderSystem.GL.Utils
+    Graphics.LambdaCube.RenderSystem.GL.VertexBuffer
+    Graphics.LambdaCube.RenderSystemCapabilities
+    Graphics.LambdaCube.Resource
+    Graphics.LambdaCube.SceneGraph
+    Graphics.LambdaCube.Skeleton
+    Graphics.LambdaCube.Technique
+    Graphics.LambdaCube.Texture
+    Graphics.LambdaCube.TextureUnitState
+    Graphics.LambdaCube.Tree
+    Graphics.LambdaCube.Types
     Graphics.LambdaCube.Utility
-    Graphics.LambdaCube.HardwareOcclusionQuery
+    Graphics.LambdaCube.VertexBufferVector
+    Graphics.LambdaCube.VertexIndexData
+    Graphics.LambdaCube.World
 
---    Graphics.LambdaCube
---    Graphics.LambdaCube.Loader.StbImage
---    Graphics.LambdaCube.RenderSystem.GL
+--    Graphics.LambdaCube.Loader.Generated.FontDefinitionScriptScanner
+--    Graphics.LambdaCube.Loader.Generated.OverlayScriptScanner
+--    Graphics.LambdaCube.Loader.OverlayScript
+--    Graphics.LambdaCube.Loader.ParticleSystemScript
+--    Graphics.LambdaCube.Overlay
+--    Graphics.LambdaCube.ParticleSystem
 
-  ghc-options: -O2 -Wall
+  ghc-options: -O2 -fspec-constr-count=12 -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing
