packages feed

glsl 0.0.0.1 → 0.0.1.0

raw patch · 30 files changed

+19380/−718 lines, 30 filesdep +QuickCheckdep +binarydep +directoryPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: QuickCheck, binary, directory, vector

API changes (from Hackage documentation)

- Language.GLSL.Optimizer.Liveness: instance Language.GLSL.Types.Annot Language.GLSL.Optimizer.Liveness.Liveness
- Language.GLSL.Types: AssignStmt :: Name -> Expr -> Stmt a
- Language.GLSL.Types: AtomExpr :: ExprAtom -> Expr
- Language.GLSL.Types: BOpAnd :: BinaryOp
- Language.GLSL.Types: BOpDiv :: BinaryOp
- Language.GLSL.Types: BOpGE :: BinaryOp
- Language.GLSL.Types: BOpGT :: BinaryOp
- Language.GLSL.Types: BOpLE :: BinaryOp
- Language.GLSL.Types: BOpLT :: BinaryOp
- Language.GLSL.Types: BOpMinus :: BinaryOp
- Language.GLSL.Types: BOpMul :: BinaryOp
- Language.GLSL.Types: BOpOr :: BinaryOp
- Language.GLSL.Types: BOpPlus :: BinaryOp
- Language.GLSL.Types: BinaryExpr :: ExprAtom -> BinaryOp -> ExprAtom -> Expr
- Language.GLSL.Types: Cast :: Cast
- Language.GLSL.Types: DeclStmt :: LocalDecl -> Stmt a
- Language.GLSL.Types: EmitFragDepth :: Emit
- Language.GLSL.Types: EmitPosition :: Expr -> Emit
- Language.GLSL.Types: EmitStmt :: Emit -> Stmt a
- Language.GLSL.Types: FunCallExpr :: FunName -> [ExprAtom] -> Expr
- Language.GLSL.Types: GDecl :: GDeclKind -> Type -> Name -> GlobalDecl
- Language.GLSL.Types: GLSL :: Version -> [TopDecl a] -> GLSL a
- Language.GLSL.Types: GkIn :: GDeclKind
- Language.GLSL.Types: GkOut :: GDeclKind
- Language.GLSL.Types: GkUniform :: GDeclKind
- Language.GLSL.Types: GlobalDecl :: GlobalDecl -> TopDecl a
- Language.GLSL.Types: IdentifierExpr :: NameExpr -> ExprAtom
- Language.GLSL.Types: IfStmt :: NameId -> [StmtAnnot a] -> [StmtAnnot a] -> Stmt a
- Language.GLSL.Types: LDecl :: Type -> NameId -> Maybe Expr -> LocalDecl
- Language.GLSL.Types: LayoutDecl :: LayoutSpec -> GlobalDecl -> TopDecl a
- Language.GLSL.Types: LayoutLocation :: Int -> LayoutSpec
- Language.GLSL.Types: LayoutStd140 :: LayoutSpec
- Language.GLSL.Types: LitFloatExpr :: Cast -> Float -> ExprAtom
- Language.GLSL.Types: LitIntExpr :: Cast -> Int -> ExprAtom
- Language.GLSL.Types: MatIndexExpr :: NameExpr -> Swizzle -> Swizzle -> ExprAtom
- Language.GLSL.Types: Name :: Namespace -> NameId -> Name
- Language.GLSL.Types: NameExpr :: Name -> NameExpr
- Language.GLSL.Types: NameId :: Int -> NameId
- Language.GLSL.Types: NoCast :: Cast
- Language.GLSL.Types: NsIn :: Namespace
- Language.GLSL.Types: NsOut :: Namespace
- Language.GLSL.Types: NsS :: Namespace
- Language.GLSL.Types: NsT :: Namespace
- Language.GLSL.Types: NsU :: Namespace
- Language.GLSL.Types: NsVF :: Namespace
- Language.GLSL.Types: Param :: ParamKind -> LocalDecl -> ParamDecl
- Language.GLSL.Types: PkIn :: ParamKind
- Language.GLSL.Types: PkInout :: ParamKind
- Language.GLSL.Types: PkOut :: ParamKind
- Language.GLSL.Types: PrimAbs :: FunName
- Language.GLSL.Types: PrimAsin :: FunName
- Language.GLSL.Types: PrimAtan :: FunName
- Language.GLSL.Types: PrimCos :: FunName
- Language.GLSL.Types: PrimCross :: FunName
- Language.GLSL.Types: PrimDot :: FunName
- Language.GLSL.Types: PrimFloor :: FunName
- Language.GLSL.Types: PrimFract :: FunName
- Language.GLSL.Types: PrimLength :: FunName
- Language.GLSL.Types: PrimMain :: FunName
- Language.GLSL.Types: PrimMat3x3 :: FunName
- Language.GLSL.Types: PrimMat4x4 :: FunName
- Language.GLSL.Types: PrimMod :: FunName
- Language.GLSL.Types: PrimNormalize :: FunName
- Language.GLSL.Types: PrimPow :: FunName
- Language.GLSL.Types: PrimSin :: FunName
- Language.GLSL.Types: PrimSmoothstep :: FunName
- Language.GLSL.Types: PrimSqrt :: FunName
- Language.GLSL.Types: PrimStep :: FunName
- Language.GLSL.Types: PrimTan :: FunName
- Language.GLSL.Types: PrimVec2 :: FunName
- Language.GLSL.Types: PrimVec3 :: FunName
- Language.GLSL.Types: PrimVec4 :: FunName
- Language.GLSL.Types: ProcDecl :: ProcName -> [ParamDecl] -> [StmtAnnot a] -> TopDecl a
- Language.GLSL.Types: ProcMain :: ProcName
- Language.GLSL.Types: ProcName :: NameId -> ProcName
- Language.GLSL.Types: SA :: a -> Stmt a -> StmtAnnot a
- Language.GLSL.Types: SwizzleExpr :: NameId -> Swizzle -> ExprAtom
- Language.GLSL.Types: TextureExpr :: ExprAtom -> ExprAtom -> ExprAtom -> Expr
- Language.GLSL.Types: TyBool :: Type
- Language.GLSL.Types: TyFloat :: Type
- Language.GLSL.Types: TyMat :: Int -> Int -> Type
- Language.GLSL.Types: TySampler2D :: Type
- Language.GLSL.Types: TyStruct :: NameId -> [(Type, NameId)] -> Type
- Language.GLSL.Types: TyVec :: Int -> Type
- Language.GLSL.Types: UOpMinus :: UnaryOp
- Language.GLSL.Types: UOpNot :: UnaryOp
- Language.GLSL.Types: UnaryExpr :: UnaryOp -> ExprAtom -> Expr
- Language.GLSL.Types: UniformExpr :: NameId -> NameId -> NameExpr
- Language.GLSL.Types: VecIndexExpr :: NameExpr -> Swizzle -> ExprAtom
- Language.GLSL.Types: Version :: Int -> Version
- Language.GLSL.Types: W :: Swizzle
- Language.GLSL.Types: X :: Swizzle
- Language.GLSL.Types: Y :: Swizzle
- Language.GLSL.Types: Z :: Swizzle
- Language.GLSL.Types: [annot] :: StmtAnnot a -> a
- Language.GLSL.Types: [unAnnot] :: StmtAnnot a -> Stmt a
- Language.GLSL.Types: class Annot a
- Language.GLSL.Types: data BinaryOp
- Language.GLSL.Types: data Cast
- Language.GLSL.Types: data Emit
- Language.GLSL.Types: data Expr
- Language.GLSL.Types: data ExprAtom
- Language.GLSL.Types: data FunName
- Language.GLSL.Types: data GDeclKind
- Language.GLSL.Types: data GLSL a
- Language.GLSL.Types: data GlobalDecl
- Language.GLSL.Types: data LayoutSpec
- Language.GLSL.Types: data LocalDecl
- Language.GLSL.Types: data Name
- Language.GLSL.Types: data NameExpr
- Language.GLSL.Types: data Namespace
- Language.GLSL.Types: data ParamDecl
- Language.GLSL.Types: data ParamKind
- Language.GLSL.Types: data ProcName
- Language.GLSL.Types: data Stmt a
- Language.GLSL.Types: data StmtAnnot a
- Language.GLSL.Types: data Swizzle
- Language.GLSL.Types: data TopDecl a
- Language.GLSL.Types: data Type
- Language.GLSL.Types: data UnaryOp
- Language.GLSL.Types: instance (Language.GLSL.Types.Annot a, Language.GLSL.Types.Annot b) => Language.GLSL.Types.Annot (a, b)
- Language.GLSL.Types: instance Data.Foldable.Foldable Language.GLSL.Types.GLSL
- Language.GLSL.Types: instance Data.Foldable.Foldable Language.GLSL.Types.Stmt
- Language.GLSL.Types: instance Data.Foldable.Foldable Language.GLSL.Types.StmtAnnot
- Language.GLSL.Types: instance Data.Foldable.Foldable Language.GLSL.Types.TopDecl
- Language.GLSL.Types: instance Data.Traversable.Traversable Language.GLSL.Types.GLSL
- Language.GLSL.Types: instance Data.Traversable.Traversable Language.GLSL.Types.Stmt
- Language.GLSL.Types: instance Data.Traversable.Traversable Language.GLSL.Types.StmtAnnot
- Language.GLSL.Types: instance Data.Traversable.Traversable Language.GLSL.Types.TopDecl
- Language.GLSL.Types: instance GHC.Base.Applicative Language.GLSL.Types.Stmt
- Language.GLSL.Types: instance GHC.Base.Applicative Language.GLSL.Types.StmtAnnot
- Language.GLSL.Types: instance GHC.Base.Functor Language.GLSL.Types.GLSL
- Language.GLSL.Types: instance GHC.Base.Functor Language.GLSL.Types.Stmt
- Language.GLSL.Types: instance GHC.Base.Functor Language.GLSL.Types.StmtAnnot
- Language.GLSL.Types: instance GHC.Base.Functor Language.GLSL.Types.TopDecl
- Language.GLSL.Types: instance GHC.Classes.Eq Language.GLSL.Types.BinaryOp
- Language.GLSL.Types: instance GHC.Classes.Eq Language.GLSL.Types.FunName
- Language.GLSL.Types: instance GHC.Classes.Eq Language.GLSL.Types.NameId
- Language.GLSL.Types: instance GHC.Classes.Eq Language.GLSL.Types.Namespace
- Language.GLSL.Types: instance GHC.Classes.Eq Language.GLSL.Types.Swizzle
- Language.GLSL.Types: instance GHC.Classes.Eq Language.GLSL.Types.Type
- Language.GLSL.Types: instance GHC.Classes.Eq Language.GLSL.Types.UnaryOp
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.BinaryOp
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.Cast
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.Emit
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.Expr
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.ExprAtom
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.FunName
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.GDeclKind
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.GlobalDecl
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.LayoutSpec
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.LocalDecl
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.Name
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.NameExpr
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.NameId
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.Namespace
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.ParamDecl
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.ParamKind
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.ProcName
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.Swizzle
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.Type
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.UnaryOp
- Language.GLSL.Types: instance GHC.Show.Show Language.GLSL.Types.Version
- Language.GLSL.Types: instance GHC.Show.Show a => GHC.Show.Show (Language.GLSL.Types.GLSL a)
- Language.GLSL.Types: instance GHC.Show.Show a => GHC.Show.Show (Language.GLSL.Types.Stmt a)
- Language.GLSL.Types: instance GHC.Show.Show a => GHC.Show.Show (Language.GLSL.Types.StmtAnnot a)
- Language.GLSL.Types: instance GHC.Show.Show a => GHC.Show.Show (Language.GLSL.Types.TopDecl a)
- Language.GLSL.Types: instance Language.GLSL.Types.Annot ()
- Language.GLSL.Types: newtype NameId
- Language.GLSL.Types: newtype Version
- Language.GLSL.Types: parseAnnot :: Annot a => Parser a
- Language.GLSL.Types: parseBinaryOp :: Parser BinaryOp
- Language.GLSL.Types: parseEmit :: Parser Emit
- Language.GLSL.Types: parseExpr :: Parser Expr
- Language.GLSL.Types: parseExprAtom :: Parser ExprAtom
- Language.GLSL.Types: parseFunName :: Parser FunName
- Language.GLSL.Types: parseGDeclKind :: Parser GDeclKind
- Language.GLSL.Types: parseGLSL :: Annot a => Parser (GLSL a)
- Language.GLSL.Types: parseGlobalDecl :: Parser GlobalDecl
- Language.GLSL.Types: parseLayoutSpec :: Parser LayoutSpec
- Language.GLSL.Types: parseLocalDecl :: Parser LocalDecl
- Language.GLSL.Types: parseName :: Parser Name
- Language.GLSL.Types: parseNameExpr :: Parser NameExpr
- Language.GLSL.Types: parseNameId :: Parser NameId
- Language.GLSL.Types: parseNamespace :: Parser Namespace
- Language.GLSL.Types: parseParamDecl :: Parser ParamDecl
- Language.GLSL.Types: parseParamKind :: Parser ParamKind
- Language.GLSL.Types: parseProcName :: Parser ProcName
- Language.GLSL.Types: parseShader :: Annot a => Text -> Either String (GLSL a)
- Language.GLSL.Types: parseStmt :: Annot a => Parser (Stmt a)
- Language.GLSL.Types: parseStmtAnnot :: Annot a => Parser (StmtAnnot a)
- Language.GLSL.Types: parseSwizzle :: Parser Swizzle
- Language.GLSL.Types: parseTest :: Show a => Parser a -> Text -> IO ()
- Language.GLSL.Types: parseTopDecl :: Annot a => Parser (TopDecl a)
- Language.GLSL.Types: parseType :: Parser Type
- Language.GLSL.Types: parseUnaryOp :: Parser UnaryOp
- Language.GLSL.Types: parseVecIndex :: Parser Swizzle
- Language.GLSL.Types: parseVersion :: Parser Version
- Language.GLSL.Types: pp :: (a -> Builder) -> a -> String
- Language.GLSL.Types: ppAnnot :: Annot a => a -> Maybe Builder
- Language.GLSL.Types: ppBinaryOp :: BinaryOp -> Builder
- Language.GLSL.Types: ppEmit :: Emit -> Builder
- Language.GLSL.Types: ppExpr :: Expr -> Builder
- Language.GLSL.Types: ppExprAtom :: ExprAtom -> Builder
- Language.GLSL.Types: ppFloat :: Float -> Builder
- Language.GLSL.Types: ppFunName :: FunName -> Builder
- Language.GLSL.Types: ppGDeclKind :: GDeclKind -> Builder
- Language.GLSL.Types: ppGLSL :: Annot a => GLSL a -> Builder
- Language.GLSL.Types: ppGlobalDecl :: GlobalDecl -> Builder
- Language.GLSL.Types: ppInt :: Int -> Builder
- Language.GLSL.Types: ppL :: (a -> Builder) -> [a] -> Builder
- Language.GLSL.Types: ppLayoutSpec :: LayoutSpec -> Builder
- Language.GLSL.Types: ppLocalDecl :: LocalDecl -> Builder
- Language.GLSL.Types: ppName :: Name -> Builder
- Language.GLSL.Types: ppNameExpr :: NameExpr -> Builder
- Language.GLSL.Types: ppNameId :: NameId -> Builder
- Language.GLSL.Types: ppNamespace :: Namespace -> Builder
- Language.GLSL.Types: ppParamDecl :: ParamDecl -> Builder
- Language.GLSL.Types: ppParamKind :: ParamKind -> Builder
- Language.GLSL.Types: ppProcName :: ProcName -> Builder
- Language.GLSL.Types: ppS :: Builder -> (a -> Builder) -> [a] -> Builder
- Language.GLSL.Types: ppStmt :: Annot a => Stmt a -> Builder
- Language.GLSL.Types: ppStmtAnnot :: Annot a => StmtAnnot a -> Builder
- Language.GLSL.Types: ppSwizzle :: Swizzle -> Builder
- Language.GLSL.Types: ppTopDecl :: Annot a => TopDecl a -> Builder
- Language.GLSL.Types: ppType :: Type -> Builder
- Language.GLSL.Types: ppUnaryOp :: UnaryOp -> Builder
- Language.GLSL.Types: ppVecIndex :: Swizzle -> Builder
- Language.GLSL.Types: ppVersion :: Version -> Builder
- Language.GLSL.Types: ppl :: (a -> Builder) -> [a] -> String
- Language.GLSL.Types: printShader :: Annot a => GLSL a -> Text
- Language.GLSL.Types: t :: Show a => Parser a -> String -> IO ()
+ Language.GLSL.AST: AssignStmt :: Name -> Expr -> Stmt a
+ Language.GLSL.AST: AtomExpr :: ExprAtom -> Expr
+ Language.GLSL.AST: BOpAnd :: BinaryOp
+ Language.GLSL.AST: BOpDiv :: BinaryOp
+ Language.GLSL.AST: BOpGE :: BinaryOp
+ Language.GLSL.AST: BOpGT :: BinaryOp
+ Language.GLSL.AST: BOpLE :: BinaryOp
+ Language.GLSL.AST: BOpLT :: BinaryOp
+ Language.GLSL.AST: BOpMinus :: BinaryOp
+ Language.GLSL.AST: BOpMul :: BinaryOp
+ Language.GLSL.AST: BOpOr :: BinaryOp
+ Language.GLSL.AST: BOpPlus :: BinaryOp
+ Language.GLSL.AST: BinaryExpr :: ExprAtom -> BinaryOp -> ExprAtom -> Expr
+ Language.GLSL.AST: Cast :: Cast
+ Language.GLSL.AST: DeclStmt :: LocalDecl -> Stmt a
+ Language.GLSL.AST: EmitFragDepth :: Emit
+ Language.GLSL.AST: EmitPosition :: Expr -> Emit
+ Language.GLSL.AST: EmitStmt :: Emit -> Stmt a
+ Language.GLSL.AST: FunCallExpr :: FunName -> [ExprAtom] -> Expr
+ Language.GLSL.AST: GDecl :: GDeclKind -> Type -> Name -> GlobalDecl
+ Language.GLSL.AST: GLSL :: Version -> [TopDecl a] -> GLSL a
+ Language.GLSL.AST: GkIn :: GDeclKind
+ Language.GLSL.AST: GkOut :: GDeclKind
+ Language.GLSL.AST: GkUniform :: GDeclKind
+ Language.GLSL.AST: GlobalDecl :: GlobalDecl -> TopDecl a
+ Language.GLSL.AST: IdentifierExpr :: NameExpr -> ExprAtom
+ Language.GLSL.AST: IfStmt :: NameId -> [StmtAnnot a] -> [StmtAnnot a] -> Stmt a
+ Language.GLSL.AST: LDecl :: Type -> NameId -> Maybe Expr -> LocalDecl
+ Language.GLSL.AST: LayoutDecl :: LayoutSpec -> GlobalDecl -> TopDecl a
+ Language.GLSL.AST: LayoutLocation :: Int -> LayoutSpec
+ Language.GLSL.AST: LayoutStd140 :: LayoutSpec
+ Language.GLSL.AST: LitFloatExpr :: Cast -> Float -> ExprAtom
+ Language.GLSL.AST: LitIntExpr :: Cast -> Int -> ExprAtom
+ Language.GLSL.AST: MatIndexExpr :: NameExpr -> Swizzle -> Swizzle -> ExprAtom
+ Language.GLSL.AST: Name :: Namespace -> NameId -> Name
+ Language.GLSL.AST: NameExpr :: Name -> NameExpr
+ Language.GLSL.AST: NameId :: Int -> NameId
+ Language.GLSL.AST: NoCast :: Cast
+ Language.GLSL.AST: NsIn :: Namespace
+ Language.GLSL.AST: NsOut :: Namespace
+ Language.GLSL.AST: NsS :: Namespace
+ Language.GLSL.AST: NsT :: Namespace
+ Language.GLSL.AST: NsU :: Namespace
+ Language.GLSL.AST: NsVF :: Namespace
+ Language.GLSL.AST: Param :: ParamKind -> LocalDecl -> ParamDecl
+ Language.GLSL.AST: PkIn :: ParamKind
+ Language.GLSL.AST: PkInout :: ParamKind
+ Language.GLSL.AST: PkOut :: ParamKind
+ Language.GLSL.AST: PrimAbs :: FunName
+ Language.GLSL.AST: PrimAsin :: FunName
+ Language.GLSL.AST: PrimAtan :: FunName
+ Language.GLSL.AST: PrimCos :: FunName
+ Language.GLSL.AST: PrimCross :: FunName
+ Language.GLSL.AST: PrimDot :: FunName
+ Language.GLSL.AST: PrimFloor :: FunName
+ Language.GLSL.AST: PrimFract :: FunName
+ Language.GLSL.AST: PrimLength :: FunName
+ Language.GLSL.AST: PrimMat3x3 :: FunName
+ Language.GLSL.AST: PrimMat4x4 :: FunName
+ Language.GLSL.AST: PrimMod :: FunName
+ Language.GLSL.AST: PrimNormalize :: FunName
+ Language.GLSL.AST: PrimPow :: FunName
+ Language.GLSL.AST: PrimSin :: FunName
+ Language.GLSL.AST: PrimSmoothstep :: FunName
+ Language.GLSL.AST: PrimSqrt :: FunName
+ Language.GLSL.AST: PrimStep :: FunName
+ Language.GLSL.AST: PrimTan :: FunName
+ Language.GLSL.AST: PrimVec2 :: FunName
+ Language.GLSL.AST: PrimVec3 :: FunName
+ Language.GLSL.AST: PrimVec4 :: FunName
+ Language.GLSL.AST: ProcDecl :: ProcName -> [ParamDecl] -> [StmtAnnot a] -> TopDecl a
+ Language.GLSL.AST: ProcMain :: ProcName
+ Language.GLSL.AST: ProcName :: NameId -> ProcName
+ Language.GLSL.AST: SA :: a -> Stmt a -> StmtAnnot a
+ Language.GLSL.AST: SwizzleExpr :: NameId -> Swizzle -> ExprAtom
+ Language.GLSL.AST: TextureExpr :: ExprAtom -> ExprAtom -> ExprAtom -> Expr
+ Language.GLSL.AST: TyBool :: Type
+ Language.GLSL.AST: TyFloat :: Type
+ Language.GLSL.AST: TyMat :: Int -> Int -> Type
+ Language.GLSL.AST: TySampler2D :: Type
+ Language.GLSL.AST: TyStruct :: NameId -> [(Type, NameId)] -> Type
+ Language.GLSL.AST: TyVec :: Int -> Type
+ Language.GLSL.AST: UOpMinus :: UnaryOp
+ Language.GLSL.AST: UOpNot :: UnaryOp
+ Language.GLSL.AST: UnaryExpr :: UnaryOp -> ExprAtom -> Expr
+ Language.GLSL.AST: UniformExpr :: NameId -> NameId -> NameExpr
+ Language.GLSL.AST: VecIndexExpr :: NameExpr -> Swizzle -> ExprAtom
+ Language.GLSL.AST: Version :: Int -> Version
+ Language.GLSL.AST: W :: Swizzle
+ Language.GLSL.AST: X :: Swizzle
+ Language.GLSL.AST: Y :: Swizzle
+ Language.GLSL.AST: Z :: Swizzle
+ Language.GLSL.AST: [annot] :: StmtAnnot a -> a
+ Language.GLSL.AST: [unAnnot] :: StmtAnnot a -> Stmt a
+ Language.GLSL.AST: argCountForFunName :: FunName -> Int
+ Language.GLSL.AST: class Annot a
+ Language.GLSL.AST: data BinaryOp
+ Language.GLSL.AST: data Cast
+ Language.GLSL.AST: data Emit
+ Language.GLSL.AST: data Expr
+ Language.GLSL.AST: data ExprAtom
+ Language.GLSL.AST: data FunName
+ Language.GLSL.AST: data GDeclKind
+ Language.GLSL.AST: data GLSL a
+ Language.GLSL.AST: data GlobalDecl
+ Language.GLSL.AST: data LayoutSpec
+ Language.GLSL.AST: data LocalDecl
+ Language.GLSL.AST: data Name
+ Language.GLSL.AST: data NameExpr
+ Language.GLSL.AST: data Namespace
+ Language.GLSL.AST: data ParamDecl
+ Language.GLSL.AST: data ParamKind
+ Language.GLSL.AST: data ProcName
+ Language.GLSL.AST: data Stmt a
+ Language.GLSL.AST: data StmtAnnot a
+ Language.GLSL.AST: data Swizzle
+ Language.GLSL.AST: data TopDecl a
+ Language.GLSL.AST: data Type
+ Language.GLSL.AST: data UnaryOp
+ Language.GLSL.AST: instance (Language.GLSL.AST.Annot a, Language.GLSL.AST.Annot b) => Language.GLSL.AST.Annot (a, b)
+ Language.GLSL.AST: instance Data.Foldable.Foldable Language.GLSL.AST.GLSL
+ Language.GLSL.AST: instance Data.Foldable.Foldable Language.GLSL.AST.Stmt
+ Language.GLSL.AST: instance Data.Foldable.Foldable Language.GLSL.AST.StmtAnnot
+ Language.GLSL.AST: instance Data.Foldable.Foldable Language.GLSL.AST.TopDecl
+ Language.GLSL.AST: instance Data.Traversable.Traversable Language.GLSL.AST.GLSL
+ Language.GLSL.AST: instance Data.Traversable.Traversable Language.GLSL.AST.Stmt
+ Language.GLSL.AST: instance Data.Traversable.Traversable Language.GLSL.AST.StmtAnnot
+ Language.GLSL.AST: instance Data.Traversable.Traversable Language.GLSL.AST.TopDecl
+ Language.GLSL.AST: instance GHC.Base.Applicative Language.GLSL.AST.Stmt
+ Language.GLSL.AST: instance GHC.Base.Applicative Language.GLSL.AST.StmtAnnot
+ Language.GLSL.AST: instance GHC.Base.Functor Language.GLSL.AST.GLSL
+ Language.GLSL.AST: instance GHC.Base.Functor Language.GLSL.AST.Stmt
+ Language.GLSL.AST: instance GHC.Base.Functor Language.GLSL.AST.StmtAnnot
+ Language.GLSL.AST: instance GHC.Base.Functor Language.GLSL.AST.TopDecl
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.BinaryOp
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.Cast
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.Emit
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.Expr
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.ExprAtom
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.FunName
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.GDeclKind
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.GlobalDecl
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.LayoutSpec
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.LocalDecl
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.Name
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.NameExpr
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.NameId
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.Namespace
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.ParamDecl
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.ParamKind
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.ProcName
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.Swizzle
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.Type
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.UnaryOp
+ Language.GLSL.AST: instance GHC.Classes.Eq Language.GLSL.AST.Version
+ Language.GLSL.AST: instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.GLSL.AST.GLSL a)
+ Language.GLSL.AST: instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.GLSL.AST.Stmt a)
+ Language.GLSL.AST: instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.GLSL.AST.StmtAnnot a)
+ Language.GLSL.AST: instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.GLSL.AST.TopDecl a)
+ Language.GLSL.AST: instance GHC.Generics.Generic (Language.GLSL.AST.GLSL a)
+ Language.GLSL.AST: instance GHC.Generics.Generic (Language.GLSL.AST.Stmt a)
+ Language.GLSL.AST: instance GHC.Generics.Generic (Language.GLSL.AST.StmtAnnot a)
+ Language.GLSL.AST: instance GHC.Generics.Generic (Language.GLSL.AST.TopDecl a)
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.BinaryOp
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.Cast
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.Emit
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.Expr
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.ExprAtom
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.FunName
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.GDeclKind
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.GlobalDecl
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.LayoutSpec
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.LocalDecl
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.Name
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.NameExpr
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.NameId
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.Namespace
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.ParamDecl
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.ParamKind
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.ProcName
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.Swizzle
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.Type
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.UnaryOp
+ Language.GLSL.AST: instance GHC.Generics.Generic Language.GLSL.AST.Version
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.BinaryOp
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.Cast
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.Emit
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.Expr
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.ExprAtom
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.FunName
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.GDeclKind
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.GlobalDecl
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.LayoutSpec
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.LocalDecl
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.Name
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.NameExpr
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.NameId
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.Namespace
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.ParamDecl
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.ParamKind
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.ProcName
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.Swizzle
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.Type
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.UnaryOp
+ Language.GLSL.AST: instance GHC.Show.Show Language.GLSL.AST.Version
+ Language.GLSL.AST: instance GHC.Show.Show a => GHC.Show.Show (Language.GLSL.AST.GLSL a)
+ Language.GLSL.AST: instance GHC.Show.Show a => GHC.Show.Show (Language.GLSL.AST.Stmt a)
+ Language.GLSL.AST: instance GHC.Show.Show a => GHC.Show.Show (Language.GLSL.AST.StmtAnnot a)
+ Language.GLSL.AST: instance GHC.Show.Show a => GHC.Show.Show (Language.GLSL.AST.TopDecl a)
+ Language.GLSL.AST: instance Language.GLSL.AST.Annot ()
+ Language.GLSL.AST: isIdentifierExpr :: ExprAtom -> Bool
+ Language.GLSL.AST: isLitExpr :: ExprAtom -> Bool
+ Language.GLSL.AST: newtype NameId
+ Language.GLSL.AST: newtype Version
+ Language.GLSL.AST: parseAnnot :: Annot a => Parser a
+ Language.GLSL.AST: ppAnnot :: Annot a => a -> Maybe Builder
+ Language.GLSL.BitCode: assemble :: BitsStmt -> Word64
+ Language.GLSL.BitCode: encodeArgs :: FunName -> [ExprAtom] -> (BitsExprAtom, BitsExprAtom)
+ Language.GLSL.BitCode: encodeBinaryOp :: BinaryOp -> BitsBinaryOp
+ Language.GLSL.BitCode: encodeEmit :: Maybe ConstExprs -> Emit -> (B, BitsExpr)
+ Language.GLSL.BitCode: encodeExpr :: Maybe ConstExprs -> Expr -> BitsExpr
+ Language.GLSL.BitCode: encodeExprAtom :: ExprAtom -> BitsExprAtom
+ Language.GLSL.BitCode: encodeExprAtomType :: ExprAtom -> (B, B, B)
+ Language.GLSL.BitCode: encodeFunName :: FunName -> BitsFunName
+ Language.GLSL.BitCode: encodeLocalDecl :: Maybe ConstExprs -> LocalDecl -> (BitsType, B, BitsExpr)
+ Language.GLSL.BitCode: encodeStmt :: Maybe ConstExprs -> Stmt a -> [BitsStmt]
+ Language.GLSL.BitCode: encodeSwizzle :: Swizzle -> (B, B)
+ Language.GLSL.BitCode: encodeType :: Type -> BitsType
+ Language.GLSL.BitCode: encodeUnaryOp :: UnaryOp -> (B, B)
+ Language.GLSL.BitCode: encodeVecSize :: Int -> Int -> (B, B)
+ Language.GLSL.BitCode: main :: IO ()
+ Language.GLSL.BitCode: parse :: Text -> Either String (GLSL ())
+ Language.GLSL.BitCode: toInt :: B -> Word64
+ Language.GLSL.BitCode: type BitsBinaryOp = (B, B, B, B)
+ Language.GLSL.BitCode: type BitsExpr = ((B, B), BitsFunName, BitsExprAtom, BitsExprAtom)
+ Language.GLSL.BitCode: type BitsExprAtom = ((B, B, B), ((B, B), (B, B)))
+ Language.GLSL.BitCode: type BitsFunName = (B, B, B, B, B)
+ Language.GLSL.BitCode: type BitsStmt = ((B, B), (BitsType, B, BitsExpr))
+ Language.GLSL.BitCode: type BitsType = ((B, B), (B, B))
+ Language.GLSL.ConstExpr: empty :: ConstExprs
+ Language.GLSL.Internal.Bits: I :: B
+ Language.GLSL.Internal.Bits: O :: B
+ Language.GLSL.Internal.Bits: class Bits a
+ Language.GLSL.Internal.Bits: class Expandable a b
+ Language.GLSL.Internal.Bits: data B
+ Language.GLSL.Internal.Bits: expand :: Expandable a b => a -> b
+ Language.GLSL.Internal.Bits: fill :: Bits a => B -> a
+ Language.GLSL.Internal.Bits: flat :: Bits a => a -> [B]
+ Language.GLSL.Internal.Bits: instance (Language.GLSL.Internal.Bits.Bits a, Language.GLSL.Internal.Bits.Bits b) => Language.GLSL.Internal.Bits.Bits (a, b)
+ Language.GLSL.Internal.Bits: instance (Language.GLSL.Internal.Bits.Bits a, Language.GLSL.Internal.Bits.Bits b, Language.GLSL.Internal.Bits.Bits c) => Language.GLSL.Internal.Bits.Bits (a, b, c)
+ Language.GLSL.Internal.Bits: instance (Language.GLSL.Internal.Bits.Bits a, Language.GLSL.Internal.Bits.Bits b, Language.GLSL.Internal.Bits.Bits c, Language.GLSL.Internal.Bits.Bits d) => Language.GLSL.Internal.Bits.Bits (a, b, c, d)
+ Language.GLSL.Internal.Bits: instance (Language.GLSL.Internal.Bits.Bits a, Language.GLSL.Internal.Bits.Bits b, Language.GLSL.Internal.Bits.Bits c, Language.GLSL.Internal.Bits.Bits d, Language.GLSL.Internal.Bits.Bits e) => Language.GLSL.Internal.Bits.Bits (a, b, c, d, e)
+ Language.GLSL.Internal.Bits: instance GHC.Classes.Eq Language.GLSL.Internal.Bits.B
+ Language.GLSL.Internal.Bits: instance GHC.Show.Show Language.GLSL.Internal.Bits.B
+ Language.GLSL.Internal.Bits: instance Language.GLSL.Internal.Bits.Bits Language.GLSL.Internal.Bits.B
+ Language.GLSL.Internal.Bits: instance Language.GLSL.Internal.Bits.Expandable (Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B) (Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B)
+ Language.GLSL.Internal.Bits: instance Language.GLSL.Internal.Bits.Expandable (Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B) (Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B)
+ Language.GLSL.Internal.Bits: instance Language.GLSL.Internal.Bits.Expandable (Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B) (Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B, Language.GLSL.Internal.Bits.B)
+ Language.GLSL.Internal.Bits: instance Language.GLSL.Internal.Bits.Expandable a a
+ Language.GLSL.Internal.Bits: one :: Bits a => a
+ Language.GLSL.Internal.Bits: unflat :: Bits a => [B] -> Maybe (a, [B])
+ Language.GLSL.Internal.Bits: zero :: Bits a => a
+ Language.GLSL.Optimizer.Liveness: instance Language.GLSL.AST.Annot Language.GLSL.Optimizer.Liveness.Liveness
+ Language.GLSL.Parser: parseBinaryOp :: Parser BinaryOp
+ Language.GLSL.Parser: parseEmit :: Parser Emit
+ Language.GLSL.Parser: parseExpr :: Parser Expr
+ Language.GLSL.Parser: parseExprAtom :: Parser ExprAtom
+ Language.GLSL.Parser: parseFunName :: Parser FunName
+ Language.GLSL.Parser: parseGDeclKind :: Parser GDeclKind
+ Language.GLSL.Parser: parseGLSL :: Annot a => Parser (GLSL a)
+ Language.GLSL.Parser: parseGlobalDecl :: Parser GlobalDecl
+ Language.GLSL.Parser: parseLayoutSpec :: Parser LayoutSpec
+ Language.GLSL.Parser: parseLocalDecl :: Parser LocalDecl
+ Language.GLSL.Parser: parseName :: Parser Name
+ Language.GLSL.Parser: parseNameExpr :: Parser NameExpr
+ Language.GLSL.Parser: parseNameId :: Parser NameId
+ Language.GLSL.Parser: parseNamespace :: Parser Namespace
+ Language.GLSL.Parser: parseParamDecl :: Parser ParamDecl
+ Language.GLSL.Parser: parseParamKind :: Parser ParamKind
+ Language.GLSL.Parser: parseProcName :: Parser ProcName
+ Language.GLSL.Parser: parseShader :: Annot a => Text -> Either String (GLSL a)
+ Language.GLSL.Parser: parseStmt :: Annot a => Parser (Stmt a)
+ Language.GLSL.Parser: parseStmtAnnot :: Annot a => Parser (StmtAnnot a)
+ Language.GLSL.Parser: parseSwizzle :: Parser Swizzle
+ Language.GLSL.Parser: parseTest :: Show a => Parser a -> Text -> IO ()
+ Language.GLSL.Parser: parseTopDecl :: Annot a => Parser (TopDecl a)
+ Language.GLSL.Parser: parseType :: Parser Type
+ Language.GLSL.Parser: parseUnaryOp :: Parser UnaryOp
+ Language.GLSL.Parser: parseVecIndex :: Parser Swizzle
+ Language.GLSL.Parser: parseVersion :: Parser Version
+ Language.GLSL.Parser: t :: Show a => Parser a -> String -> IO ()
+ Language.GLSL.PrettyPrint: pp :: (a -> Builder) -> a -> String
+ Language.GLSL.PrettyPrint: ppBinaryOp :: BinaryOp -> Builder
+ Language.GLSL.PrettyPrint: ppEmit :: Emit -> Builder
+ Language.GLSL.PrettyPrint: ppExpr :: Expr -> Builder
+ Language.GLSL.PrettyPrint: ppExprAtom :: ExprAtom -> Builder
+ Language.GLSL.PrettyPrint: ppFloat :: Float -> Builder
+ Language.GLSL.PrettyPrint: ppFunName :: FunName -> Builder
+ Language.GLSL.PrettyPrint: ppGDeclKind :: GDeclKind -> Builder
+ Language.GLSL.PrettyPrint: ppGLSL :: Annot a => GLSL a -> Builder
+ Language.GLSL.PrettyPrint: ppGlobalDecl :: GlobalDecl -> Builder
+ Language.GLSL.PrettyPrint: ppInt :: Int -> Builder
+ Language.GLSL.PrettyPrint: ppL :: (a -> Builder) -> [a] -> Builder
+ Language.GLSL.PrettyPrint: ppLayoutSpec :: LayoutSpec -> Builder
+ Language.GLSL.PrettyPrint: ppLocalDecl :: LocalDecl -> Builder
+ Language.GLSL.PrettyPrint: ppName :: Name -> Builder
+ Language.GLSL.PrettyPrint: ppNameExpr :: NameExpr -> Builder
+ Language.GLSL.PrettyPrint: ppNameId :: NameId -> Builder
+ Language.GLSL.PrettyPrint: ppNamespace :: Namespace -> Builder
+ Language.GLSL.PrettyPrint: ppParamDecl :: ParamDecl -> Builder
+ Language.GLSL.PrettyPrint: ppParamKind :: ParamKind -> Builder
+ Language.GLSL.PrettyPrint: ppProcName :: ProcName -> Builder
+ Language.GLSL.PrettyPrint: ppS :: Builder -> (a -> Builder) -> [a] -> Builder
+ Language.GLSL.PrettyPrint: ppStmt :: Annot a => Stmt a -> Builder
+ Language.GLSL.PrettyPrint: ppStmtAnnot :: Annot a => StmtAnnot a -> Builder
+ Language.GLSL.PrettyPrint: ppSwizzle :: Swizzle -> Builder
+ Language.GLSL.PrettyPrint: ppTopDecl :: Annot a => TopDecl a -> Builder
+ Language.GLSL.PrettyPrint: ppType :: Type -> Builder
+ Language.GLSL.PrettyPrint: ppUnaryOp :: UnaryOp -> Builder
+ Language.GLSL.PrettyPrint: ppVecIndex :: Swizzle -> Builder
+ Language.GLSL.PrettyPrint: ppVersion :: Version -> Builder
+ Language.GLSL.PrettyPrint: ppl :: (a -> Builder) -> [a] -> String
+ Language.GLSL.PrettyPrint: pps :: Builder -> (a -> Builder) -> [a] -> String
+ Language.GLSL.PrettyPrint: printShader :: Annot a => GLSL a -> Text
- Language.GLSL.Optimizer.Deinline: allEqual :: ConstExprs -> [StmtAnnot a] -> Bool
+ Language.GLSL.Optimizer.Deinline: allEqual :: Maybe ConstExprs -> [StmtAnnot a] -> Bool
- Language.GLSL.Optimizer.Deinline: deleteBody :: ConstExprs -> [StmtAnnot a] -> [StmtAnnot a] -> [StmtAnnot a]
+ Language.GLSL.Optimizer.Deinline: deleteBody :: Maybe ConstExprs -> [StmtAnnot a] -> [StmtAnnot a] -> [StmtAnnot a]
- Language.GLSL.Optimizer.Deinline: findBody :: Config -> ConstExprs -> [StmtAnnot a] -> Maybe [StmtAnnot a]
+ Language.GLSL.Optimizer.Deinline: findBody :: Config -> Maybe ConstExprs -> [StmtAnnot a] -> Maybe [StmtAnnot a]
- Language.GLSL.StructuralEquality: eqEmit :: Emit -> Emit -> Bool
+ Language.GLSL.StructuralEquality: eqEmit :: Maybe ConstExprs -> Emit -> Emit -> Bool
- Language.GLSL.StructuralEquality: eqExpr :: Expr -> Expr -> Bool
+ Language.GLSL.StructuralEquality: eqExpr :: Maybe ConstExprs -> Expr -> Expr -> Bool
- Language.GLSL.StructuralEquality: eqLocalDecl :: LocalDecl -> LocalDecl -> Bool
+ Language.GLSL.StructuralEquality: eqLocalDecl :: Maybe ConstExprs -> LocalDecl -> LocalDecl -> Bool
- Language.GLSL.StructuralEquality: eqStmt :: ConstExprs -> Stmt a -> Stmt a -> Bool
+ Language.GLSL.StructuralEquality: eqStmt :: Maybe ConstExprs -> Stmt a -> Stmt a -> Bool
- Language.GLSL.StructuralEquality: eqStmtAnnot :: ConstExprs -> StmtAnnot a -> StmtAnnot a -> Bool
+ Language.GLSL.StructuralEquality: eqStmtAnnot :: Maybe ConstExprs -> StmtAnnot a -> StmtAnnot a -> Bool
- Language.GLSL.StructuralEquality: eqStmtAnnots :: ConstExprs -> [(StmtAnnot a, StmtAnnot a)] -> Bool
+ Language.GLSL.StructuralEquality: eqStmtAnnots :: Maybe ConstExprs -> [(StmtAnnot a, StmtAnnot a)] -> Bool

Files

glsl.cabal view
@@ -1,5 +1,5 @@ name:           glsl-version:        0.0.0.1+version:        0.0.1.0 cabal-version:  >= 1.10 build-type:     Simple author:         Pippijn van Steenhoven@@ -11,15 +11,21 @@ homepage:       https://github.com/homectl/glsl synopsis:       Parser and optimizer for a small subset of GLSL description:-                Parser and optimizer for a small subset of GLSL.--                This package can parse a very small subset of GLSL, namely-                exactly the subset emitted by GPipe-Core. It can evaluate the-                code and return the computed result. This is useful for-                debugging shaders generated by GPipe-Core.+  Parser and optimizer for a small subset of GLSL.+  .+  This package can parse a very small subset of GLSL, namely exactly the subset+  emitted by GPipe-Core. It can evaluate the code and return the computed+  result. This is useful for debugging shaders generated by GPipe-Core. maintainer:     Pippijn van Steenhoven data-files:     CHANGELOG.md +extra-source-files:+  test/data/large-shaders/lambdacnc.frag+  test/data/large-shaders/lambdacnc.vert+  test/data/large-shaders/small.vert+  test/data/large-shaders/xax.frag+  test/data/large-shaders/xax.vert+ source-repository head   type:     git   location: https://github.com/homectl/workspace@@ -29,22 +35,27 @@   default-language: Haskell2010   hs-source-dirs: src   exposed-modules:+      Language.GLSL.AST+      Language.GLSL.BitCode       Language.GLSL.ConstExpr       Language.GLSL.Decls+      Language.GLSL.Internal.Bits       Language.GLSL.Optimizer.Deinline       Language.GLSL.Optimizer.DFG       Language.GLSL.Optimizer.FunctionGenerator       Language.GLSL.Optimizer.Liveness       Language.GLSL.Optimizer+      Language.GLSL.Parser+      Language.GLSL.PrettyPrint       Language.GLSL.Runtime.Eval       Language.GLSL.Runtime.Math       Language.GLSL.Runtime.PrimFuns       Language.GLSL.Runtime.Value       Language.GLSL.StructuralEquality-      Language.GLSL.Types   build-depends:       base                          >= 4.9 && < 5     , attoparsec                    >= 0.10 && < 0.15+    , binary                        >= 0.5 && < 0.11     , containers                    >= 0.5 && < 0.7     , fgl                           >= 5.3 && < 6     , graphviz                      >= 2999.10 && < 2999.21@@ -62,9 +73,13 @@   type: exitcode-stdio-1.0   main-is:          testsuite.hs   other-modules:+      Language.GLSL.BitCodeSpec+      Language.GLSL.Internal.BitsSpec       Language.GLSL.Optimizer.DeinlineSpec       Language.GLSL.GLSLSpec+      Language.GLSL.StructuralEqualitySpec       Test.GLSL+      Test.GLSL.Arbitrary   ghc-options:       -Wall       -threaded@@ -72,11 +87,15 @@       hspec-discover:hspec-discover   build-depends:       base+    , QuickCheck     , attoparsec+    , binary     , bytestring+    , directory     , glsl     , hspec     , text+    , vector  executable optshader   default-language: Haskell2010
+ src/Language/GLSL/AST.hs view
@@ -0,0 +1,243 @@+{-# LANGUAGE DeriveFunctor     #-}+{-# LANGUAGE DeriveGeneric     #-}+{-# LANGUAGE DeriveTraversable #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData        #-}+module Language.GLSL.AST where++import           Control.Applicative              (Applicative (..))+import           Data.Attoparsec.ByteString.Char8 (Parser)+import qualified Data.Text.Lazy.Builder           as LTB+import           GHC.Generics                     (Generic)+++data GLSL a = GLSL Version [TopDecl a]+  deriving (Generic, Show, Eq, Functor, Foldable, Traversable)++newtype Version = Version Int+  deriving (Generic, Show, Eq)++data TopDecl a+  = LayoutDecl LayoutSpec GlobalDecl+  | GlobalDecl GlobalDecl+  | ProcDecl ProcName [ParamDecl] [StmtAnnot a]+  deriving (Generic, Show, Eq, Functor, Foldable, Traversable)++data ProcName+  = ProcMain+  | ProcName NameId+  deriving (Generic, Show, Eq)++data LayoutSpec+  = LayoutStd140+  | LayoutLocation Int+  deriving (Generic, Show, Eq)++data ParamDecl+  = Param ParamKind LocalDecl+  deriving (Generic, Show, Eq)++data ParamKind+  = PkIn+  | PkOut+  | PkInout+  deriving (Generic, Show, Eq)++data LocalDecl+  = LDecl Type NameId (Maybe Expr)+  deriving (Generic, Show, Eq)++data GlobalDecl+  = GDecl GDeclKind Type Name+  deriving (Generic, Show, Eq)++data GDeclKind+  = GkIn+  | GkOut+  | GkUniform+  deriving (Generic, Show, Eq)++data Type+  = TyBool+  | TyFloat+  | TySampler2D+  | TyVec Int+  | TyMat Int Int+  | TyStruct NameId [(Type, NameId)]+  deriving (Generic, Show, Eq)++newtype NameId = NameId Int+  deriving (Generic, Show, Eq)++data Name+  = Name Namespace NameId+  deriving (Generic, Show, Eq)++data Namespace+  = NsT+  | NsS+  | NsU+  | NsVF+  | NsIn+  | NsOut+  deriving (Generic, Show, Eq)++data FunName+  = PrimAbs+  | PrimAsin+  | PrimAtan+  | PrimCos+  | PrimCross+  | PrimDot+  | PrimFloor+  | PrimFract+  | PrimLength+  | PrimMat3x3+  | PrimMat4x4+  | PrimMod+  | PrimNormalize+  | PrimPow+  | PrimSin+  | PrimSmoothstep+  | PrimSqrt+  | PrimStep+  | PrimTan+  | PrimVec2+  | PrimVec3+  | PrimVec4+  deriving (Generic, Show, Eq)++data Swizzle+  = X | Y | Z | W+  deriving (Generic, Show, Eq)++data NameExpr+  = NameExpr Name+  | UniformExpr NameId NameId+  deriving (Generic, Show, Eq)++data Cast+  = Cast+  | NoCast+  deriving (Generic, Show, Eq)++data ExprAtom+  = LitIntExpr Cast Int+  | LitFloatExpr Cast Float+  | IdentifierExpr NameExpr+  | SwizzleExpr NameId Swizzle+  | VecIndexExpr NameExpr Swizzle+  | MatIndexExpr NameExpr Swizzle Swizzle+  deriving (Generic, Show, Eq)++data Expr+  = UnaryExpr UnaryOp ExprAtom+  | BinaryExpr ExprAtom BinaryOp ExprAtom+  | FunCallExpr FunName [ExprAtom]+  | TextureExpr ExprAtom ExprAtom ExprAtom+  | AtomExpr ExprAtom+  deriving (Generic, Show, Eq)++data BinaryOp+  = BOpPlus+  | BOpMinus+  | BOpMul+  | BOpDiv+  | BOpGE+  | BOpGT+  | BOpLE+  | BOpLT+  | BOpAnd+  | BOpOr+  deriving (Generic, Show, Eq)++data UnaryOp+  = UOpMinus+  | UOpNot+  deriving (Generic, Show, Eq)++data StmtAnnot a = SA+  { annot   :: a+  , unAnnot :: Stmt a+  }+  deriving (Generic, Show, Eq, Functor, Foldable, Traversable)++instance Applicative StmtAnnot where+  pure a = SA a (pure a)+  liftA2 f a b = SA (f (annot a) (annot b)) $ liftA2 f (unAnnot a) (unAnnot b)++data Stmt a+  = AssignStmt Name Expr+  | DeclStmt LocalDecl+  | EmitStmt Emit+  | IfStmt NameId [StmtAnnot a] [StmtAnnot a]+  deriving (Generic, Show, Eq, Functor, Foldable, Traversable)++instance Applicative Stmt where+  -- Arbitrary decision because "pure" doesn't really make sense.+  pure _ = EmitStmt EmitFragDepth++  liftA2 f (IfStmt n t1 e1) (IfStmt _ t2 e2) = IfStmt n+    ((zipWith . liftA2) f t1 t2)+    ((zipWith . liftA2) f e1 e2)+  liftA2 _ (AssignStmt n e) _ = AssignStmt n e+  liftA2 _ (DeclStmt d) _ = DeclStmt d+  liftA2 _ (EmitStmt e) _ = EmitStmt e+  liftA2 _ (IfStmt n _ _) _ = IfStmt n [] []+++data Emit+  = EmitPosition Expr+  | EmitFragDepth+  deriving (Generic, Show, Eq)+++class Annot a where+  parseAnnot :: Parser a+  ppAnnot :: a -> Maybe LTB.Builder++instance Annot () where+  parseAnnot = pure ()+  ppAnnot = const Nothing++instance (Annot a, Annot b) => Annot (a, b) where+  parseAnnot = error "not implemented"+  ppAnnot (a, b) = do+    ppA <- ppAnnot a+    ppB <- ppAnnot b+    return $ "(" <> ppA <> ", " <> ppB <> ")"++----------------------------------++argCountForFunName :: FunName -> Int+argCountForFunName PrimAbs        = 1+argCountForFunName PrimAsin       = 1+argCountForFunName PrimAtan       = 2+argCountForFunName PrimCos        = 1+argCountForFunName PrimCross      = 2+argCountForFunName PrimDot        = 2+argCountForFunName PrimFloor      = 1+argCountForFunName PrimFract      = 1+argCountForFunName PrimLength     = 1+argCountForFunName PrimMat3x3     = 3+argCountForFunName PrimMat4x4     = 4+argCountForFunName PrimMod        = 2+argCountForFunName PrimNormalize  = 1+argCountForFunName PrimPow        = 2+argCountForFunName PrimSin        = 1+argCountForFunName PrimSmoothstep = 3+argCountForFunName PrimSqrt       = 1+argCountForFunName PrimStep       = 2+argCountForFunName PrimTan        = 1+argCountForFunName PrimVec2       = 2+argCountForFunName PrimVec3       = 3+argCountForFunName PrimVec4       = 4++isLitExpr :: ExprAtom -> Bool+isLitExpr LitFloatExpr{} = True+isLitExpr LitIntExpr{}   = True+isLitExpr _              = False++isIdentifierExpr :: ExprAtom -> Bool+isIdentifierExpr IdentifierExpr{} = True+isIdentifierExpr _                = False
+ src/Language/GLSL/BitCode.hs view
@@ -0,0 +1,295 @@+{-# LANGUAGE BinaryLiterals        #-}+{-# LANGUAGE FlexibleInstances     #-}+{-# LANGUAGE LambdaCase            #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings     #-}+{-# LANGUAGE TupleSections         #-}+{-# LANGUAGE ViewPatterns          #-}+{-# OPTIONS_GHC -Wno-missing-signatures #-}+module Language.GLSL.BitCode where++import           Data.Bits                   (shiftL, (.|.))+import qualified Data.Text.Lazy              as LT+import qualified Data.Text.Lazy.IO           as IO+import           Data.Word                   (Word64)+import           Debug.Trace                 (trace)+import           Language.GLSL.AST+import           Language.GLSL.ConstExpr     (ConstExprs)+import qualified Language.GLSL.ConstExpr     as ConstExpr+import           Language.GLSL.Internal.Bits (B (..), expand, flat, zero)+import           Language.GLSL.Parser        (parseShader)+import           Language.GLSL.PrettyPrint+++assemble :: BitsStmt -> Word64+assemble bits = trace (show bits) $+  foldr (\(toInt -> a) b -> (a `shiftL` 1) .|. b) 0 $ flat bits++toInt :: B -> Word64+toInt O = 0+toInt I = 1++type BitsStmt = ((B,B), (BitsType, B, BitsExpr))+encodeStmt :: Maybe ConstExprs -> Stmt a -> [BitsStmt]+encodeStmt ce = \case+  AssignStmt _ e ->+    [(bitsAssignStmt, (zero, zero, encodeExpr ce e))]+  DeclStmt d ->+    [(bitsDeclStmt, encodeLocalDecl ce d)]+  EmitStmt e ->+    [(bitsEmitStmt, uncurry (zero,,) $ encodeEmit ce e)]+  IfStmt _ t e -> do+    [(bitsIfStmt, ((bitsThenStmt, zero), zero, zero))]+    ++ concatMap (encodeStmt ce . unAnnot) t+    ++ [(bitsIfStmt, ((bitsElseStmt, zero), zero, zero))]+    ++ concatMap (encodeStmt ce . unAnnot) e+    ++ [(bitsIfStmt, ((bitsEndifStmt, zero), zero, zero))]+  where+    -- 2 bits encode which statement this is.+    bitsAssignStmt     = (O,O)+    bitsDeclStmt       = (O,I)+    bitsEmitStmt       = (I,O)+    bitsIfStmt         = (I,I)++    -- For IfStmt, we need to know when "else" branch starts and when it's over.+    -- We encode that in the next 2 bits for the IfStmt encoding.+    bitsThenStmt       = (O,O)+    bitsElseStmt       = (O,I)+    bitsEndifStmt      = (I,O)++encodeLocalDecl :: Maybe ConstExprs -> LocalDecl -> (BitsType, B, BitsExpr)+encodeLocalDecl _ (LDecl ty _ Nothing) =+  -- 1 bit encodes whether the declaration has an initialiser.+  (encodeType ty, O, zero)+encodeLocalDecl ce (LDecl ty _ (Just e)) =+  (encodeType ty, I, encodeExpr ce e)++-- | 2 bits encode the type, then 2 bits encode the vec/mat size.+type BitsType = ((B,B), (B,B))+encodeType :: Type -> BitsType+encodeType = \case+  TyBool      -> (bitsTyBool, (O,O))+  TyFloat     -> (bitsTyFloat, (O,O))+  TyVec i     -> (bitsTyVec, encodeVecSize i i)+  TyMat i j   -> (bitsTyMat, encodeVecSize i j)+  TySampler2D -> error "no encoding for local sampler declarations"+  TyStruct{}  -> error "no encoding for local struct declarations"+  where+    -- 2 bits encode the type of a LocalDecl.+    bitsTyBool         = (O,O)+    bitsTyFloat        = (O,I)+    bitsTyVec          = (I,O)+    bitsTyMat          = (I,I)++encodeVecSize :: Int -> Int -> (B,B)+encodeVecSize i j | i /= j = error "no encoding for non-square matrices"+encodeVecSize i _ = case i of+  2 -> bitsVecSize2+  3 -> bitsVecSize3+  4 -> bitsVecSize4+  _ -> error $ "no encoding for vec/mat size: " <> show i+  where+    -- 2 bits encode the size of TyVec/TyMat. We only allow square matrices, so+    -- the size of mat2x2 has the same encoding as the size of vec2.+    bitsVecSize2       = (O,O)+    bitsVecSize3       = (O,I)+    bitsVecSize4       = (I,O)++encodeEmit :: Maybe ConstExprs -> Emit -> (B, BitsExpr)+encodeEmit _ EmitFragDepth     = (O,zero)+encodeEmit ce (EmitPosition e) = (I,encodeExpr ce e)++type BitsExpr = ((B,B), BitsFunName, BitsExprAtom, BitsExprAtom)+encodeExpr :: Maybe ConstExprs -> Expr -> BitsExpr+encodeExpr (Just ce) e | ConstExpr.isConstExpr ce e =+  -- Constant expressions are encoded as atom expressions with the "constant+  -- expression" operator 0b11.+  ((O,O), expand (I,I), zero, zero)+encodeExpr _ expr = case expr of+  UnaryExpr o e -> (bitsUnaryExpr, expand $ encodeUnaryOp o, encodeExprAtom e, zero)+  BinaryExpr l o r -> (bitsBinaryExpr, expand $ encodeBinaryOp o, encodeExprAtom l, encodeExprAtom r)+  TextureExpr t x y -> (bitsTextureExpr, zero, zero, zero)+  FunCallExpr f args -> uncurry (bitsFunCallExpr, encodeFunName f,,) $ encodeArgs f args+  AtomExpr e -> (bitsAtomExpr, expand bitsUOpIdentity, encodeExprAtom e, zero)+  where+    -- 2 bits encode the expression type.+    bitsUnaryExpr      = (O,O)+    bitsBinaryExpr     = (O,I)+    bitsFunCallExpr    = (I,O)+    bitsTextureExpr    = (I,I)+    -- AtomExpr is a encoded as UnaryExpr with a zero operator.+    bitsAtomExpr       = bitsUnaryExpr+    bitsUOpIdentity    = (O,O)++-- | Implements special encodings for functions with more than 2 args.++-- Because we can't encode all the args individually, we take shortcuts where we+-- know something about how a function tends to be called.+encodeArgs :: FunName -> [ExprAtom] -> (BitsExprAtom, BitsExprAtom)+encodeArgs PrimSmoothstep [a,b,c] | isLitExpr a && isLitExpr b =+  (encodeExprAtom c, zero)+encodeArgs PrimVec4 args@[a,_,_,d] | all isLitExpr args =+  (encodeExprAtom a, encodeExprAtom d)+encodeArgs PrimVec4 [a,b,c,d] | all isIdentifierExpr [a,b,c] && isLitExpr d =+  (encodeExprAtom a, encodeExprAtom d)+encodeArgs PrimVec4 args@[a,_,_,d] | all isIdentifierExpr args =+  (encodeExprAtom a, encodeExprAtom d)+encodeArgs PrimMat4x4 args@[a,_,_,d] | all isIdentifierExpr args =+  (encodeExprAtom a, encodeExprAtom d)++encodeArgs _ [] = (zero, zero)+encodeArgs _ [a] = (encodeExprAtom a, zero)+encodeArgs _ [a,b] = (encodeExprAtom a, encodeExprAtom b)+encodeArgs f args =+  error $ "unsupported argument list for '" <> pp ppFunName f <> "': "+        <> pps ", " ppExprAtom args++encodeUnaryOp :: UnaryOp -> (B,B)+encodeUnaryOp = \case+  UOpMinus -> bitsUOpMinus+  UOpNot   -> bitsUOpNot+  where+    -- 2 bits encode encode the unary operator. 0 is AtomExpr (no operator or+    -- unary "+", i.e. the identity operator).+    bitsUOpMinus       = (O,I)+    bitsUOpNot         = (I,O)++-- | 4 bits encode the binary operator.+type BitsBinaryOp = (B,B,B,B)+encodeBinaryOp :: BinaryOp -> BitsBinaryOp+encodeBinaryOp = \case+  BOpPlus  -> bitsBOpPlus+  BOpMinus -> bitsBOpMinus+  BOpMul   -> bitsBOpMul+  BOpDiv   -> bitsBOpDiv+  BOpGE    -> bitsBOpGE+  BOpGT    -> bitsBOpGT+  BOpLE    -> bitsBOpLE+  BOpLT    -> bitsBOpLT+  BOpAnd   -> bitsBOpAnd+  BOpOr    -> bitsBOpOr+  where+    bitsBOpPlus        = (O,O,O,O)+    bitsBOpMinus       = (O,O,O,I)+    bitsBOpMul         = (O,O,I,O)+    bitsBOpDiv         = (O,O,I,I)+    bitsBOpGE          = (O,I,O,O)+    bitsBOpGT          = (O,I,O,I)+    bitsBOpLE          = (O,I,I,O)+    bitsBOpLT          = (O,I,I,I)+    bitsBOpAnd         = (I,O,O,O)+    bitsBOpOr          = (I,O,O,I)++-- | 5 bits encode the function name for FunCallExpr.+type BitsFunName = (B,B,B,B,B)+encodeFunName :: FunName -> BitsFunName+encodeFunName = \case+  PrimAbs        -> bitsPrimAbs+  PrimAsin       -> bitsPrimAsin+  PrimAtan       -> bitsPrimAtan+  PrimCos        -> bitsPrimCos+  PrimCross      -> bitsPrimCross+  PrimDot        -> bitsPrimDot+  PrimFloor      -> bitsPrimFloor+  PrimFract      -> bitsPrimFract+  PrimLength     -> bitsPrimLength+  PrimMat3x3     -> bitsPrimMat3x3+  PrimMat4x4     -> bitsPrimMat4x4+  PrimMod        -> bitsPrimMod+  PrimNormalize  -> bitsPrimNormalize+  PrimPow        -> bitsPrimPow+  PrimSin        -> bitsPrimSin+  PrimSmoothstep -> bitsPrimSmoothstep+  PrimSqrt       -> bitsPrimSqrt+  PrimStep       -> bitsPrimStep+  PrimTan        -> bitsPrimTan+  PrimVec2       -> bitsPrimVec2+  PrimVec3       -> bitsPrimVec3+  PrimVec4       -> bitsPrimVec4+  where+    bitsPrimAbs        = (O,O,O,O,O)+    bitsPrimAsin       = (O,O,O,O,I)+    bitsPrimAtan       = (O,O,O,I,O)+    bitsPrimCos        = (O,O,O,I,I)+    bitsPrimCross      = (O,O,I,O,O)+    bitsPrimDot        = (O,O,I,O,I)+    bitsPrimFloor      = (O,O,I,I,O)+    bitsPrimFract      = (O,O,I,I,I)+    bitsPrimLength     = (O,I,O,O,O)+    bitsPrimMat3x3     = (O,I,O,O,I)+    bitsPrimMat4x4     = (O,I,O,I,O)+    bitsPrimMod        = (O,I,O,I,I)+    bitsPrimNormalize  = (O,I,I,O,O)+    bitsPrimPow        = (O,I,I,O,I)+    bitsPrimSin        = (O,I,I,I,O)+    bitsPrimSmoothstep = (O,I,I,I,I)+    bitsPrimSqrt       = (I,O,O,O,O)+    bitsPrimStep       = (I,O,O,O,I)+    bitsPrimTan        = (I,O,O,I,O)+    bitsPrimVec2       = (I,O,O,I,I)+    bitsPrimVec3       = (I,O,I,O,O)+    bitsPrimVec4       = (I,O,I,O,I)++-- | ExprAtom type is encoded in 3 bits.+encodeExprAtomType :: ExprAtom -> (B,B,B)+encodeExprAtomType = \case+  LitIntExpr{}     -> bitsLitExpr+  LitFloatExpr{}   -> bitsLitExpr+  IdentifierExpr{} -> bitsIdentifierExpr+  SwizzleExpr{}    -> bitsSwizzleExpr+  VecIndexExpr{}   -> bitsVecIndexExpr+  MatIndexExpr{}   -> bitsMatIndexExpr+  where+    -- Literals are encoded the same.+    bitsLitExpr        = (O,O,O)+    bitsIdentifierExpr = (O,O,I)+    bitsSwizzleExpr    = (O,I,O)+    bitsVecIndexExpr   = (O,I,I)+    bitsMatIndexExpr   = (I,O,O)++-- ExprAtom is encoded in 7 bits: 3 bits for type and 4 bits for arguments.+--+-- We only need the full 4 bits for MatIndexExpr arguments which can be any of+-- the 16 positions in the matrix indexing operation.+type BitsExprAtom = ((B,B,B), ((B,B), (B,B)))+encodeExprAtom :: ExprAtom -> BitsExprAtom+encodeExprAtom e = (encodeExprAtomType e, encodeOperand e)+  where+    encodeOperand (SwizzleExpr _ i)    = (encodeSwizzle i, (O,O))+    encodeOperand (VecIndexExpr _ i)   = (encodeSwizzle i, (O,O))+    encodeOperand (MatIndexExpr _ i j) = (encodeSwizzle i, encodeSwizzle j)+    encodeOperand _                    = ((O,O),(O,O))++-- Swizzle/VecIndex is encoded in 2 bits.+encodeSwizzle :: Swizzle -> (B,B)+encodeSwizzle = \case+  X -> bitsSwizzleX+  Y -> bitsSwizzleY+  Z -> bitsSwizzleZ+  W -> bitsSwizzleW+  where+    bitsSwizzleX       = (O,O)+    bitsSwizzleY       = (O,I)+    bitsSwizzleZ       = (I,O)+    bitsSwizzleW       = (I,I)+++parse :: LT.Text -> Either String (GLSL ())+parse = parseShader++main :: IO ()+main = do+  putStrLn "Loading shader source..."+  -- inText <- IO.readFile "../large-shaders/lambdacnc.frag"+  -- inText <- IO.readFile "../large-shaders/lambdacnc.vert"+  -- inText <- IO.readFile "../large-shaders/lambdaray.frag"+  -- inText <- IO.readFile "../large-shaders/xax.frag"+  -- inText <- IO.readFile "../large-shaders/xax.vert"+  inText <- IO.readFile "../large-shaders/small.vert"+  putStrLn "Parsing shader source..."+  case parse inText of+    Left err -> writeFile "../opt.glsl" $ "// Error\n" <> err+    Right (GLSL _ (reverse -> (ProcDecl _ _ ss):_)) ->+      mapM_ (print . encodeStmt Nothing . unAnnot) ss+    Right _ ->+      return ()
src/Language/GLSL/ConstExpr.hs view
@@ -2,13 +2,17 @@   ( ConstExprs   , collectConstExprs   , isConstExpr+  , empty   ) where -import qualified Data.IntSet         as S-import           Language.GLSL.Types+import qualified Data.IntSet       as S+import           Language.GLSL.AST   newtype ConstExprs = ConstExprs S.IntSet++empty :: ConstExprs+empty = ConstExprs S.empty  collectConstExprs :: [StmtAnnot a] -> ConstExprs collectConstExprs = ConstExprs . foldr (add . unAnnot) S.empty
src/Language/GLSL/Decls.hs view
@@ -2,9 +2,9 @@ {-# LANGUAGE StrictData      #-} module Language.GLSL.Decls where -import qualified Data.IntMap.Strict  as M-import           Language.GLSL.Types (Name (..), NameExpr (..), NameId (..),-                                      Namespace (..))+import qualified Data.IntMap.Strict as M+import           Language.GLSL.AST  (Name (..), NameExpr (..), NameId (..),+                                     Namespace (..))   data Decls a = Decls
+ src/Language/GLSL/Internal/Bits.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE FlexibleInstances     #-}+{-# LANGUAGE MultiParamTypeClasses #-}+module Language.GLSL.Internal.Bits where++data B = O | I+  deriving (Show, Eq)++class Bits a where+  fill :: B -> a+  flat :: a -> [B]+  unflat :: [B] -> Maybe (a, [B])++instance Bits B where+  fill b = b+  flat a = [a]+  unflat (x:xs) = Just (x, xs)+  unflat _      = Nothing+instance (Bits a,Bits b) => Bits (a,b) where+  fill b = (fill b,fill b)+  flat (a,b) = flat a ++ flat b+  unflat xs = do+    (a,xsa) <- unflat xs+    (b,xsb) <- unflat xsa+    return ((a,b),xsb)+instance (Bits a,Bits b,Bits c) => Bits (a,b,c) where+  fill b = (fill b,fill b,fill b)+  flat (a,b,c) = flat a ++ flat b ++ flat c+  unflat xs = do+    (a,xsa) <- unflat xs+    (b,xsb) <- unflat xsa+    (c,xsc) <- unflat xsb+    return ((a,b,c),xsc)+instance (Bits a,Bits b,Bits c,Bits d) => Bits (a,b,c,d) where+  fill b = (fill b,fill b,fill b,fill b)+  flat (a,b,c,d) = flat a ++ flat b ++ flat c ++ flat d+  unflat xs = do+    (a,xsa) <- unflat xs+    (b,xsb) <- unflat xsa+    (c,xsc) <- unflat xsb+    (d,xsd) <- unflat xsc+    return ((a,b,c,d),xsd)+instance (Bits a,Bits b,Bits c,Bits d, Bits e) => Bits (a,b,c,d,e) where+  fill b = (fill b,fill b,fill b,fill b,fill b)+  flat (a,b,c,d,e) = flat a ++ flat b ++ flat c ++ flat d ++ flat e+  unflat xs = do+    (a,xsa) <- unflat xs+    (b,xsb) <- unflat xsa+    (c,xsc) <- unflat xsb+    (d,xsd) <- unflat xsc+    (e,xse) <- unflat xsd+    return ((a,b,c,d,e),xse)++zero, one :: Bits a => a+zero = fill O+one = fill I++class Expandable a b where+  expand :: a -> b++instance Expandable a a where+  expand x = x+-- TODO: can this be more generic?+instance Expandable (B,B) (B,B,B,B,B) where+  expand (a,b) = expand (a,b,O)+instance Expandable (B,B,B) (B,B,B,B,B) where+  expand (a,b,c) = expand (a,b,c,O)+instance Expandable (B,B,B,B) (B,B,B,B,B) where+  expand (a,b,c,d) = expand (a,b,c,d,O)
src/Language/GLSL/Optimizer.hs view
@@ -6,11 +6,12 @@ import           Data.Attoparsec.ByteString.Char8 (Parser) import qualified Data.Text.Lazy                   as LT import qualified Data.Text.Lazy.IO                as IO+import           Language.GLSL.AST                (Annot, GLSL) import qualified Language.GLSL.Optimizer.Deinline as Deinline import qualified Language.GLSL.Optimizer.Liveness as Liveness-import           Language.GLSL.Types              (Annot, GLSL, parseGLSL,-                                                   parseShader, parseTest,-                                                   printShader)+import           Language.GLSL.Parser             (parseGLSL, parseShader,+                                                   parseTest)+import           Language.GLSL.PrettyPrint        (printShader)   optimizeShader :: LT.Text -> Either String LT.Text
src/Language/GLSL/Optimizer/DFG.hs view
@@ -13,8 +13,9 @@ import qualified Data.GraphViz             as GV import qualified Data.GraphViz.Printing    as GV import qualified Data.Text.Lazy.IO         as IO+import           Language.GLSL.AST import           Language.GLSL.Decls-import           Language.GLSL.Types       hiding (t)+import           Language.GLSL.PrettyPrint (pp, ppName, ppNamespace)  -------------------------------------------------------------------------------- 
src/Language/GLSL/Optimizer/Deinline.hs view
@@ -7,11 +7,12 @@ import qualified Data.List                                 as List import           Data.Maybe                                (listToMaybe) import           Debug.Trace                               (trace)+import           Language.GLSL.AST import           Language.GLSL.ConstExpr                   (ConstExprs,                                                             collectConstExprs) import qualified Language.GLSL.Optimizer.FunctionGenerator as FunctionGenerator+import           Language.GLSL.PrettyPrint                 (pp, ppTopDecl) import qualified Language.GLSL.StructuralEquality          as StructuralEquality-import           Language.GLSL.Types   data Config = Config@@ -57,7 +58,7 @@  diStmts :: Annot a => Config -> [StmtAnnot a] -> [StmtAnnot a] diStmts config ss =-  let ce = collectConstExprs ss in+  let ce = Just (collectConstExprs ss) in   case findBody config ce ss of     Nothing -> ss     Just body ->@@ -70,7 +71,7 @@   -- | Remove all occurrences of 'body' from 'ss'.-deleteBody :: ConstExprs -> [StmtAnnot a] -> [StmtAnnot a] -> [StmtAnnot a]+deleteBody :: Maybe ConstExprs -> [StmtAnnot a] -> [StmtAnnot a] -> [StmtAnnot a] deleteBody ce body = go []   where     go acc [] = reverse acc@@ -80,7 +81,7 @@         else go (s:acc) ss  -findBody :: Config -> ConstExprs -> [StmtAnnot a] -> Maybe [StmtAnnot a]+findBody :: Config -> Maybe ConstExprs -> [StmtAnnot a] -> Maybe [StmtAnnot a] findBody _ _ [] = Nothing findBody Config{..} _ (_:ss) | length ss < windowSize = Nothing findBody config@Config{..} ce (_:ss) =@@ -139,6 +140,6 @@ transpose = getZipList . traverse ZipList  -- | Check for each statement whether it's structurally equal to the first one.-allEqual :: ConstExprs -> [StmtAnnot a] -> Bool+allEqual :: Maybe ConstExprs -> [StmtAnnot a] -> Bool allEqual _ []      = True allEqual ce (x:xs) = all (StructuralEquality.eqStmtAnnot ce x) xs
src/Language/GLSL/Optimizer/FunctionGenerator.hs view
@@ -1,6 +1,6 @@ module Language.GLSL.Optimizer.FunctionGenerator where -import           Language.GLSL.Types+import           Language.GLSL.AST   makeFunction :: [StmtAnnot a] -> TopDecl a
src/Language/GLSL/Optimizer/Liveness.hs view
@@ -3,7 +3,7 @@  import qualified Data.IntSet            as S import qualified Data.Text.Lazy.Builder as LTB-import           Language.GLSL.Types    hiding (t)+import           Language.GLSL.AST   newtype Liveness = Liveness { unLiveness :: S.IntSet }
+ src/Language/GLSL/Parser.hs view
@@ -0,0 +1,306 @@+{-# LANGUAGE DeriveFunctor     #-}+{-# LANGUAGE DeriveTraversable #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData        #-}+{-# OPTIONS_GHC -Wno-name-shadowing #-}+{-# LANGUAGE DeriveGeneric     #-}+module Language.GLSL.Parser where++import           Control.Applicative              ((<|>))+import           Data.Attoparsec.ByteString.Char8 (IResult (..), Parser, char,+                                                   decimal, endOfInput, many1,+                                                   option, parse, parseOnly,+                                                   rational, scientific, sepBy1)+import qualified Data.Scientific                  as Sci+import qualified Data.Text.Encoding               as T+import qualified Data.Text.Lazy                   as LT+import           Language.GLSL.AST+++parseShader :: Annot a => LT.Text -> Either String (GLSL a)+parseShader = parseOnly parseGLSL . T.encodeUtf8 . LT.toStrict++-- | Parse GLSL++parseGLSL :: Annot a => Parser (GLSL a)+parseGLSL = GLSL+  <$> parseVersion+  <*> ("\n" >> many1 parseTopDecl >>= (endOfInput >>) . pure)++-- | Parse Version++parseVersion :: Parser Version+parseVersion = Version <$> ("#version " >> decimal)++-- | Parse TopDecl++parseTopDecl :: Annot a => Parser (TopDecl a)+parseTopDecl = layoutDecl <|> globalDecl <|> procDecl+  where+    layoutDecl = LayoutDecl+      <$> ("layout(" >> parseLayoutSpec)+      <*> (") " >> parseGlobalDecl)++    globalDecl = GlobalDecl+      <$> parseGlobalDecl++    procDecl = ProcDecl+      <$> ("void " >> parseProcName)+      <*> ("() " >> pure [])+      -- <*> ("{\n" >> many1 parseStmtAnnot)+      <*> ("{\n" >> many1 parseStmtAnnot >>= ("}\n" >>) . pure)++-- | Parse ProcName++parseProcName :: Parser ProcName+parseProcName =+  ("main" >> pure ProcMain)+  <|> ("p" >> ProcName <$> parseNameId)++-- | Parse LayoutSpec++parseLayoutSpec :: Parser LayoutSpec+parseLayoutSpec =+  ("std140" >> pure LayoutStd140)+  <|> ("location = " >> LayoutLocation <$> decimal)++-- | Parse ParamDecl++parseParamDecl :: Parser ParamDecl+parseParamDecl = Param+  <$> parseParamKind+  <*> (" " >> parseLocalDecl)++-- | Parse ParamKind++parseParamKind :: Parser ParamKind+parseParamKind = (char ' ' <|> pure ' ') >>+  ("in" >> return PkIn) <|>+  ("out" >> return PkOut) <|>+  ("inout" >> return PkInout)++-- | Parse LocalDecl++parseLocalDecl :: Parser LocalDecl+parseLocalDecl = LDecl+  <$> parseType+  <*> (" t" >> parseNameId)+  <*> (option Nothing (" = " >> Just <$> parseExpr) >>= (";\n" >>) . pure)++-- | Parse GlobalDecl++parseGlobalDecl :: Parser GlobalDecl+parseGlobalDecl = GDecl+  <$> parseGDeclKind+  <*> (" " >> parseType)+  <*> (" " >> parseName >>= (";\n" >>) . pure)++-- | Parse GDeclKind++parseGDeclKind :: Parser GDeclKind+parseGDeclKind =+  ("in" >> return GkIn) <|>+  ("out" >> return GkOut) <|>+  ("uniform" >> return GkUniform)++-- | Parse Type++parseType :: Parser Type+parseType =+  ("bool" >> return TyBool)+  <|> ("float" >> return TyFloat)+  <|> ("sampler2D" >> return TySampler2D)+  <|> ("vec" >> TyVec <$> decimal)+  <|> ("mat" >> TyMat <$> decimal <*> ("x" >> decimal))+  <|> tyStruct+  where+    tyStruct = TyStruct+      <$> ("uBlock" >> parseNameId)+      <*> (" {\n" >> many1 parseStructMember >>= ("}" >>) . pure)++    parseStructMember :: Parser (Type, NameId)+    parseStructMember = (,)+      <$> parseType+      <*> (" u" >> parseNameId >>= (";\n" >>) . pure)++-- | Parse NameId++parseNameId :: Parser NameId+parseNameId = NameId+  <$> decimal++-- | Parse Name++parseName :: Parser Name+parseName = Name+  <$> parseNamespace+  <*> parseNameId++-- | Parse Namespace++parseNamespace :: Parser Namespace+parseNamespace =+  ("in" >> pure NsIn)+  <|> ("out" >> pure NsOut)+  <|> ("vf" >> pure NsVF)+  <|> (char 't' >> pure NsT)+  <|> (char 'u' >> pure NsU)+  <|> (char 's' >> pure NsS)++-- | Parse FunName++parseFunName :: Parser FunName+parseFunName =+  ("abs" >> pure PrimAbs)+  <|> ("asin" >> pure PrimAsin)+  <|> ("atan" >> pure PrimAtan)+  <|> ("cos" >> pure PrimCos)+  <|> ("cross" >> pure PrimCross)+  <|> ("dot" >> pure PrimDot)+  <|> ("floor" >> pure PrimFloor)+  <|> ("fract" >> pure PrimFract)+  <|> ("length" >> pure PrimLength)+  <|> ("mat3x3" >> pure PrimMat3x3)+  <|> ("mat4x4" >> pure PrimMat4x4)+  <|> ("mod" >> pure PrimMod)+  <|> ("normalize" >> pure PrimNormalize)+  <|> ("pow" >> pure PrimPow)+  <|> ("sin" >> pure PrimSin)+  <|> ("smoothstep" >> pure PrimSmoothstep)+  <|> ("sqrt" >> pure PrimSqrt)+  <|> ("step" >> pure PrimStep)+  <|> ("tan" >> pure PrimTan)+  <|> ("vec2" >> pure PrimVec2)+  <|> ("vec3" >> pure PrimVec3)+  <|> ("vec4" >> pure PrimVec4)++-- | Parse Swizzle++parseSwizzle :: Parser Swizzle+parseSwizzle =+  (char 'x' >> pure X)+  <|> (char 'y' >> pure Y)+  <|> (char 'z' >> pure Z)+  <|> (char 'w' >> pure W)++-- | Parse VecIndex (Swizzle)++parseVecIndex :: Parser Swizzle+parseVecIndex =+  (char '0' >> pure X)+  <|> (char '1' >> pure Y)+  <|> (char '2' >> pure Z)+  <|> (char '3' >> pure W)++-- | Parse NameExpr++parseNameExpr :: Parser NameExpr+parseNameExpr =+  UniformExpr <$> (char 'u' >> parseNameId) <*> (".u" >> parseNameId)+  <|> NameExpr <$> parseName++-- | Parse ExprAtom++parseExprAtom :: Parser ExprAtom+parseExprAtom =+  litNumber <$> scientific+  <|> LitIntExpr Cast <$> ("int(" >> decimal >>= (")" >>) . pure)+  <|> LitFloatExpr Cast <$> ("float(" >> rational >>= (")" >>) . pure)+  <|> SwizzleExpr <$> (char 't' >> parseNameId) <*> (char '.' >> parseSwizzle)+  <|> MatIndexExpr <$> parseNameExpr <*> ("[" >> parseVecIndex) <*> ("][" >> parseVecIndex >>= ("]" >>) . pure)+  <|> VecIndexExpr <$> parseNameExpr <*> ("[" >> parseVecIndex >>= ("]" >>) . pure)+  <|> IdentifierExpr <$> parseNameExpr+  where+    litNumber s =+      let e = Sci.base10Exponent s+          c = Sci.coefficient s+      in if e >= 0+          then LitIntExpr NoCast (fromInteger (c * 10 ^ e))+          else LitFloatExpr NoCast (Sci.toRealFloat s)++-- | Parse Expr++parseExpr :: Parser Expr+parseExpr =+  (char '(' >> operatorExpr >>= (char ')' >>) . pure)+  <|> textureExpr+  <|> funCallExpr+  <|> AtomExpr <$> parseExprAtom++  where+    operatorExpr =+      BinaryExpr <$> parseExprAtom <*> parseBinaryOp <*> parseExprAtom+      <|> UnaryExpr <$> parseUnaryOp <*> parseExprAtom++    textureExpr = TextureExpr+      <$> ("texture(" >> parseExprAtom)+      <*> (",vec2(" >> parseExprAtom)+      <*> ("," >> parseExprAtom >>= ("))" >>) . pure)++    funCallExpr = FunCallExpr+      <$> parseFunName+      <*> (char '(' >> sepBy1 parseExprAtom (char ',') >>= (char ')' >>) . pure)++-- | Parse BinaryOp++parseBinaryOp :: Parser BinaryOp+parseBinaryOp =+  (char '+' >> pure BOpPlus)+  <|> (char '-' >> pure BOpMinus)+  <|> (char '*' >> pure BOpMul)+  <|> (char '/' >> pure BOpDiv)+  <|> (">=" >> pure BOpGE)+  <|> (">" >> pure BOpGT)+  <|> ("<=" >> pure BOpLE)+  <|> ("<" >> pure BOpLT)+  <|> ("&&" >> pure BOpAnd)+  <|> ("||" >> pure BOpOr)++-- | Parse UnaryOp++parseUnaryOp :: Parser UnaryOp+parseUnaryOp =+  (char '-' >> pure UOpMinus)+  <|> (char '!' >> pure UOpMinus)++-- | Parse StmtAnnot++parseStmtAnnot :: Annot a => Parser (StmtAnnot a)+parseStmtAnnot = SA <$> parseAnnot <*> parseStmt++-- | Parse Stmt++parseStmt :: Annot a => Parser (Stmt a)+parseStmt =+  IfStmt <$> ("if(t" >> parseNameId >>= ("){\n" >>) . pure)+         <*> many1 parseStmtAnnot+         <*> ("} else {\n" >> many1 parseStmtAnnot >>= ("}\n" >>) . pure)+  <|> AssignStmt <$> parseName <*> (" = " >> parseExpr >>= (";\n" >>) . pure)+  <|> DeclStmt <$> parseLocalDecl+  <|> EmitStmt <$> parseEmit++-- | Parse Emit++parseEmit :: Parser Emit+parseEmit =+  EmitPosition <$> ("gl_Position = " >> parseExpr >>= (";\n" >>) . pure)+  <|> ("gl_FragDepth = gl_FragCoord[2];\n" >> pure EmitFragDepth)++------------------++parseTest :: Show a => Parser a -> LT.Text -> IO ()+parseTest p input =+  let r = show . fromPartial . parse p . T.encodeUtf8 . LT.toStrict $ input in+  if length r > 600+    then+      let start = take 500 r+          end = reverse $ take 100 $ reverse r+      in+      putStrLn $ start <> " ... " <> end+    else putStrLn r+  where+    fromPartial (Partial cont) = cont mempty+    fromPartial r              = r++t :: Show a => Parser a -> String -> IO ()+t p = parseTest p . LT.pack
+ src/Language/GLSL/PrettyPrint.hs view
@@ -0,0 +1,261 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData        #-}+module Language.GLSL.PrettyPrint where++import           Data.List                        (intersperse)+import qualified Data.Text.Lazy                   as LT+import qualified Data.Text.Lazy.Builder           as LTB+import qualified Data.Text.Lazy.Builder.Int       as LTB+import qualified Data.Text.Lazy.Builder.RealFloat as LTB+import           Language.GLSL.AST+++printShader :: Annot a => GLSL a -> LT.Text+printShader = LTB.toLazyText . ppGLSL++-- | Pretty-print GLSL++ppGLSL :: Annot a => GLSL a -> LTB.Builder+ppGLSL (GLSL v decls) =+  ppVersion v+  <> "\n" <> ppL ppTopDecl decls++-- | Pretty-print Version++ppVersion :: Version -> LTB.Builder+ppVersion (Version v) = "#version " <> ppInt v++-- | Pretty-print TopDecl++ppTopDecl :: Annot a => TopDecl a -> LTB.Builder+ppTopDecl (LayoutDecl e d) = "layout(" <> ppLayoutSpec e <> ") " <> ppGlobalDecl d+ppTopDecl (GlobalDecl d) = ppGlobalDecl d+ppTopDecl (ProcDecl n a b) =+  "void " <> ppProcName n+  <> "(" <> ppS "," ppParamDecl a <> ") {\n"+  <> ppL ppStmtAnnot b+  <> "}\n"++-- | Pretty-print ProcName++ppProcName :: ProcName -> LTB.Builder+ppProcName ProcMain     = "main"+ppProcName (ProcName n) = "p" <> ppNameId n++-- | Pretty-print LayoutSpec++ppLayoutSpec :: LayoutSpec -> LTB.Builder+ppLayoutSpec LayoutStd140       = "std140"+ppLayoutSpec (LayoutLocation l) = "location = " <> ppInt l++-- | Pretty-print ParamDecl++ppParamDecl :: ParamDecl -> LTB.Builder+ppParamDecl (Param k d) =+  ppParamKind k <> " " <> ppLocalDecl d++-- | Pretty-print ParamKind++ppParamKind :: ParamKind -> LTB.Builder+ppParamKind PkIn    = "in"+ppParamKind PkOut   = "out"+ppParamKind PkInout = "inout"++-- | Pretty-print LocalDecl++ppLocalDecl :: LocalDecl -> LTB.Builder+ppLocalDecl (LDecl t n Nothing) =+  ppType t+  <> " t" <> ppNameId n <> ";\n"+ppLocalDecl (LDecl t n (Just e)) =+  ppType t+  <> " t" <> ppNameId n+  <> " = " <> ppExpr e <> ";\n"++-- | Pretty-print GlobalDecl++ppGlobalDecl :: GlobalDecl -> LTB.Builder+ppGlobalDecl (GDecl k t n) =+  ppGDeclKind k+  <> " " <> ppType t+  <> " " <> ppName n <> ";\n"++-- | Pretty-print GDeclKind++ppGDeclKind :: GDeclKind -> LTB.Builder+ppGDeclKind GkIn      = "in"+ppGDeclKind GkOut     = "out"+ppGDeclKind GkUniform = "uniform"++-- | Pretty-print Type++ppType :: Type -> LTB.Builder+ppType TyBool = "bool"+ppType TyFloat = "float"+ppType TySampler2D = "sampler2D"+ppType (TyVec n) = "vec" <> ppInt n+ppType (TyMat n m) = "mat" <> ppInt n <> "x" <> ppInt m+ppType (TyStruct n ms) =+  "uBlock" <> ppNameId n+  <> " {\n" <> ppL ppStructMember ms <> "}"+  where ppStructMember (t, m) = ppType t <> " u" <> ppNameId m <> ";\n"++-- | Pretty-print NameId++ppNameId :: NameId -> LTB.Builder+ppNameId (NameId n) = ppInt n++-- | Pretty-print Name++ppName :: Name -> LTB.Builder+ppName (Name ns n) = ppNamespace ns <> ppNameId n++-- | Pretty-print Namespace++ppNamespace :: Namespace -> LTB.Builder+ppNamespace NsT   = "t"+ppNamespace NsS   = "s"+ppNamespace NsU   = "u"+ppNamespace NsVF  = "vf"+ppNamespace NsIn  = "in"+ppNamespace NsOut = "out"++-- | Pretty-print FunName++ppFunName :: FunName -> LTB.Builder+ppFunName PrimAbs        = "abs"+ppFunName PrimAsin       = "asin"+ppFunName PrimAtan       = "atan"+ppFunName PrimCos        = "cos"+ppFunName PrimCross      = "cross"+ppFunName PrimDot        = "dot"+ppFunName PrimFloor      = "floor"+ppFunName PrimFract      = "fract"+ppFunName PrimLength     = "length"+ppFunName PrimMat3x3     = "mat3x3"+ppFunName PrimMat4x4     = "mat4x4"+ppFunName PrimMod        = "mod"+ppFunName PrimNormalize  = "normalize"+ppFunName PrimPow        = "pow"+ppFunName PrimSin        = "sin"+ppFunName PrimSmoothstep = "smoothstep"+ppFunName PrimSqrt       = "sqrt"+ppFunName PrimStep       = "step"+ppFunName PrimTan        = "tan"+ppFunName PrimVec2       = "vec2"+ppFunName PrimVec3       = "vec3"+ppFunName PrimVec4       = "vec4"++-- | Pretty-print Swizzle++ppSwizzle :: Swizzle -> LTB.Builder+ppSwizzle X = "x"+ppSwizzle Y = "y"+ppSwizzle Z = "z"+ppSwizzle W = "w"++-- | Pretty-print VecIndex (Swizzle)++ppVecIndex :: Swizzle -> LTB.Builder+ppVecIndex X = "0"+ppVecIndex Y = "1"+ppVecIndex Z = "2"+ppVecIndex W = "3"++-- | Pretty-print NameExpr++ppNameExpr :: NameExpr -> LTB.Builder+ppNameExpr (NameExpr n)      = ppName n+ppNameExpr (UniformExpr n m) = "u" <> ppNameId n <> ".u" <> ppNameId m++-- | Pretty-print ExprAtom++ppExprAtom :: ExprAtom -> LTB.Builder+ppExprAtom (LitIntExpr Cast i)     = "int(" <> ppInt i <> ")"+ppExprAtom (LitIntExpr NoCast i)   = ppInt i+ppExprAtom (LitFloatExpr Cast n)   = "float(" <> ppFloat n <> ")"+ppExprAtom (LitFloatExpr NoCast r) = ppFloat r+ppExprAtom (IdentifierExpr n)      = ppNameExpr n+ppExprAtom (SwizzleExpr n m)       = "t" <> ppNameId n <> "." <> ppSwizzle m+ppExprAtom (VecIndexExpr n i)      = ppNameExpr n <> "[" <> ppVecIndex i <> "]"+ppExprAtom (MatIndexExpr n i j)    = ppNameExpr n <> "[" <> ppVecIndex i <> "]" <> "[" <> ppVecIndex j <> "]"++-- | Pretty-print Expr++ppExpr :: Expr -> LTB.Builder+ppExpr (AtomExpr e) = ppExprAtom e+ppExpr (UnaryExpr o e) = "(" <> ppUnaryOp o <> ppExprAtom e <> ")"+ppExpr (BinaryExpr l o r) = "(" <> ppExprAtom l <> ppBinaryOp o <> ppExprAtom r <> ")"+ppExpr (FunCallExpr n args) = ppFunName n <> "(" <> ppS "," ppExprAtom args <> ")"+ppExpr (TextureExpr t x y) = "texture(" <> ppExprAtom t <> ",vec2(" <> ppExprAtom x <> "," <> ppExprAtom y <> "))"++-- | Pretty-print BinaryOp++ppBinaryOp :: BinaryOp -> LTB.Builder+ppBinaryOp BOpPlus  = "+"+ppBinaryOp BOpMinus = "-"+ppBinaryOp BOpMul   = "*"+ppBinaryOp BOpDiv   = "/"+ppBinaryOp BOpGE    = ">="+ppBinaryOp BOpGT    = ">"+ppBinaryOp BOpLE    = "<="+ppBinaryOp BOpLT    = "<"+ppBinaryOp BOpAnd   = "&&"+ppBinaryOp BOpOr    = "||"++-- | Pretty-print UnaryOp++ppUnaryOp :: UnaryOp -> LTB.Builder+ppUnaryOp UOpMinus = "-"+ppUnaryOp UOpNot   = "!"++-- | Pretty-print StmtAnnot++ppStmtAnnot :: Annot a => StmtAnnot a -> LTB.Builder+ppStmtAnnot (SA a s) =+  maybe "" (\ltb -> "// " <> ltb <> "\n") (ppAnnot a) <> ppStmt s++-- | Pretty-print Stmt++ppStmt :: Annot a => Stmt a -> LTB.Builder+ppStmt (AssignStmt n e) = ppName n <> " = " <> ppExpr e <> ";\n"+ppStmt (DeclStmt d) = ppLocalDecl d+ppStmt (EmitStmt e) = ppEmit e+ppStmt (IfStmt c t e) =+  "if(t" <> ppNameId c <> "){\n"+  <> ppL ppStmtAnnot t+  <> "} else {\n"+  <> ppL ppStmtAnnot e+  <> "}\n"++-- | Pretty-print Emit++ppEmit :: Emit -> LTB.Builder+ppEmit (EmitPosition e) = "gl_Position = " <> ppExpr e <> ";\n"+ppEmit EmitFragDepth    = "gl_FragDepth = gl_FragCoord[2];\n"++-- | Pretty-printing utility++ppInt :: Int -> LTB.Builder+ppInt = LTB.decimal++ppFloat :: Float -> LTB.Builder+ppFloat = LTB.realFloat++ppL :: (a -> LTB.Builder) -> [a] -> LTB.Builder+ppL printer = mconcat . map printer++ppS :: LTB.Builder -> (a -> LTB.Builder) -> [a] -> LTB.Builder+ppS sep printer = mconcat . intersperse sep . map printer++----------------------------------+-- Pretty-printing to String++pp :: (a -> LTB.Builder) -> a -> String+pp printer = LT.unpack . LTB.toLazyText . printer++ppl :: (a -> LTB.Builder) -> [a] -> String+ppl printer = LT.unpack . LTB.toLazyText . ppL printer++pps :: LTB.Builder -> (a -> LTB.Builder) -> [a] -> String+pps sep printer = LT.unpack . LTB.toLazyText . ppS sep printer
src/Language/GLSL/Runtime/Eval.hs view
@@ -15,9 +15,14 @@ import qualified Data.Text.Lazy                   as LT import qualified Data.Text.Lazy.IO                as IO import qualified Debug.Trace                      as Trace+import           Language.GLSL.AST import           Language.GLSL.Decls              (addDecl, addDeclN, addDeclNE,                                                    emptyDecls, getDeclNE,                                                    toUniformId)+import           Language.GLSL.Parser             (parseShader)+import           Language.GLSL.PrettyPrint        (pp, ppExpr, ppGlobalDecl,+                                                   ppNameExpr, ppSwizzle,+                                                   ppVecIndex) import qualified Language.GLSL.Runtime.PrimFuns   as PrimFuns import           Language.GLSL.Runtime.Value      (Eval, EvalResult (..),                                                    EvalState (..), Proc (..),@@ -25,7 +30,6 @@                                                    evalBinaryOp, evalCoerce,                                                    evalUnaryOp, isNaNValue,                                                    roundValue)-import           Language.GLSL.Types import           Linear                           (R1 (..), R2 (..), R3 (..),                                                    R4 (..)) 
src/Language/GLSL/Runtime/PrimFuns.hs view
@@ -1,11 +1,11 @@ module Language.GLSL.Runtime.PrimFuns where  import           Control.Monad               ((>=>))+import           Language.GLSL.AST           (FunName (..), Type (..))+import           Language.GLSL.PrettyPrint   (pp, ppFunName) import           Language.GLSL.Runtime.Math  (floor, fract, mod, smoothstep,                                               step) import           Language.GLSL.Runtime.Value (Eval, Value (..), evalCoerce)-import           Language.GLSL.Types         (FunName (..), Type (..), pp,-                                              ppFunName) import           Linear import           Prelude                     hiding (floor, mod) 
src/Language/GLSL/Runtime/Value.hs view
@@ -4,8 +4,11 @@  import           Control.Monad.Trans.State.Strict (StateT) import qualified Data.IntMap                      as M+import           Language.GLSL.AST                (BinaryOp (..), ParamDecl,+                                                   StmtAnnot, Type (..),+                                                   UnaryOp (..)) import           Language.GLSL.Decls              (Decls)-import           Language.GLSL.Types+import           Language.GLSL.PrettyPrint        (pp, ppType) import           Linear                           (M44, V2, V3, V4, (!*!), (!*))  data Proc
src/Language/GLSL/StructuralEquality.hs view
@@ -1,46 +1,53 @@ -- | Structural equality, ignoring the variable names. module Language.GLSL.StructuralEquality where +import           Language.GLSL.AST import           Language.GLSL.ConstExpr (ConstExprs, isConstExpr)-import           Language.GLSL.Types  -eqStmtAnnots :: ConstExprs -> [(StmtAnnot a, StmtAnnot a)] -> Bool+eqStmtAnnots :: Maybe ConstExprs -> [(StmtAnnot a, StmtAnnot a)] -> Bool eqStmtAnnots ce = all (uncurry (eqStmtAnnot ce)) -eqStmtAnnot :: ConstExprs -> StmtAnnot a -> StmtAnnot a -> Bool+eqStmtAnnot :: Maybe ConstExprs -> StmtAnnot a -> StmtAnnot a -> Bool eqStmtAnnot ce (SA _ a) (SA _ b) = eqStmt ce a b  -eqStmt :: ConstExprs -> Stmt a -> Stmt a -> Bool+eqStmt :: Maybe ConstExprs -> Stmt a -> Stmt a -> Bool eqStmt ce (AssignStmt _ ea) (AssignStmt _ eb) =-  -- We consider constant expressions to be equal, since we can just pass that-  -- constant into the function as an argument. Most of the time, it's small-  -- things like 1.0 or (-1.0) (possibly in a t-var, hence the ConstExprs set).-  isConstExpr ce ea && isConstExpr ce eb ||-  eqExpr ea eb-eqStmt _ (DeclStmt da) (DeclStmt db) =-  eqLocalDecl da db-eqStmt _ (EmitStmt ea) (EmitStmt eb) =-  eqEmit ea eb+  eqExpr ce ea eb+eqStmt ce (DeclStmt da) (DeclStmt db) =+  eqLocalDecl ce da db+eqStmt ce (EmitStmt ea) (EmitStmt eb) =+  eqEmit ce ea eb eqStmt ce (IfStmt _ ta ea) (IfStmt _ tb eb) =+  length ta == length tb &&+  length ea == length eb &&   eqStmtAnnots ce (zip ta tb) &&   eqStmtAnnots ce (zip ea eb) eqStmt _ _ _ = False  -eqExpr :: Expr -> Expr -> Bool-eqExpr (AtomExpr ea) (AtomExpr eb) =+eqExpr :: Maybe ConstExprs -> Expr -> Expr -> Bool+-- We consider constant expressions to be equal, since we can just pass that+-- constant into the function as an argument. Most of the time, it's small+-- things like 1.0 or (-1.0) (possibly in a t-var, hence the ConstExprs set).+eqExpr (Just ce) a b | isConstExpr ce a && isConstExpr ce b = True+eqExpr _ (AtomExpr ea) (AtomExpr eb) =   eqExprAtom ea eb-eqExpr (UnaryExpr ua ea) (UnaryExpr ub eb) =-  ua == ub && eqExprAtom ea eb-eqExpr (FunCallExpr fa aa) (FunCallExpr fb ab) =-  fa == fb && all (uncurry eqExprAtom) (zip aa ab)-eqExpr (TextureExpr ta xa ya) (TextureExpr tb xb yb) =+eqExpr _ (UnaryExpr ua ea) (UnaryExpr ub eb) =+  ua == ub &&+  eqExprAtom ea eb+eqExpr _ (FunCallExpr fa aa) (FunCallExpr fb ab) =+  fa == fb &&+  length aa == length ab &&+  all (uncurry eqExprAtom) (zip aa ab)+eqExpr _ (TextureExpr ta xa ya) (TextureExpr tb xb yb) =   all (uncurry eqExprAtom) [(ta, tb), (xa, xb), (ya, yb)]-eqExpr (BinaryExpr la oa ra) (BinaryExpr lb ob rb) =-  oa == ob && eqExprAtom la lb && eqExprAtom ra rb-eqExpr _ _ =+eqExpr _ (BinaryExpr la oa ra) (BinaryExpr lb ob rb) =+  oa == ob &&+  eqExprAtom la lb &&+  eqExprAtom ra rb+eqExpr _ _ _ =   False  @@ -64,24 +71,24 @@ --   this is rare enough so it won't increase the average function parameter --   list length too much. eqNameExpr :: NameExpr -> NameExpr -> Bool-eqNameExpr (UniformExpr na ma) (UniformExpr nb mb) = na == nb && ma == mb+-- eqNameExpr (UniformExpr na ma) (UniformExpr nb mb) = na == nb && ma == mb -- eqName (Name NsT _) (Name NsT _)   = True -- eqName (Name nsa na) (Name nsb nb) = nsa == nsb && na == nb eqNameExpr _ _                                     = True -eqLocalDecl :: LocalDecl -> LocalDecl -> Bool-eqLocalDecl (LDecl tya _ ea) (LDecl tyb _ eb) =-  eqType tya tyb && eqMaybe eqExpr ea eb+eqLocalDecl :: Maybe ConstExprs -> LocalDecl -> LocalDecl -> Bool+eqLocalDecl ce (LDecl tya _ ea) (LDecl tyb _ eb) =+  eqType tya tyb && eqMaybe (eqExpr ce) ea eb   eqType :: Type -> Type -> Bool eqType = (==)  -eqEmit :: Emit -> Emit -> Bool-eqEmit (EmitPosition a) (EmitPosition b) = eqExpr a b-eqEmit EmitFragDepth EmitFragDepth       = True-eqEmit _ _                               = False+eqEmit :: Maybe ConstExprs -> Emit -> Emit -> Bool+eqEmit ce (EmitPosition a) (EmitPosition b) = eqExpr ce a b+eqEmit _ EmitFragDepth EmitFragDepth        = True+eqEmit _ _ _                                = False   eqMaybe :: (a -> a -> Bool) -> Maybe a -> Maybe a -> Bool
− src/Language/GLSL/Types.hs
@@ -1,650 +0,0 @@-{-# LANGUAGE DeriveFunctor     #-}-{-# LANGUAGE DeriveTraversable #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE StrictData        #-}-{-# OPTIONS_GHC -Wno-name-shadowing #-}-module Language.GLSL.Types where--import           Control.Applicative              (Applicative (..), (<|>))-import           Data.Attoparsec.ByteString.Char8 (IResult (Partial), Parser,-                                                   char, decimal, endOfInput,-                                                   many1, option, parse,-                                                   parseOnly, rational,-                                                   scientific, sepBy1)-import           Data.List                        (intersperse)-import qualified Data.Scientific                  as Sci-import qualified Data.Text.Encoding               as T-import qualified Data.Text.Lazy                   as LT-import qualified Data.Text.Lazy.Builder           as LTB-import qualified Data.Text.Lazy.Builder.Int       as LTB-import qualified Data.Text.Lazy.Builder.RealFloat as LTB---parseShader :: Annot a => LT.Text -> Either String (GLSL a)-parseShader = parseOnly parseGLSL . T.encodeUtf8 . LT.toStrict--printShader :: Annot a => GLSL a -> LT.Text-printShader = LTB.toLazyText . ppGLSL---data GLSL a = GLSL Version [TopDecl a]-  deriving (Show, Functor, Foldable, Traversable)--parseGLSL :: Annot a => Parser (GLSL a)-parseGLSL = GLSL-  <$> parseVersion-  <*> ("\n" >> many1 parseTopDecl >>= (endOfInput >>) . pure)--ppGLSL :: Annot a => GLSL a -> LTB.Builder-ppGLSL (GLSL v decls) =-  ppVersion v-  <> "\n" <> ppL ppTopDecl decls--newtype Version = Version Int-  deriving (Show)--parseVersion :: Parser Version-parseVersion = Version <$> ("#version " >> decimal)--ppVersion :: Version -> LTB.Builder-ppVersion (Version v) = "#version " <> ppInt v--data TopDecl a-  = LayoutDecl LayoutSpec GlobalDecl-  | GlobalDecl GlobalDecl-  | ProcDecl ProcName [ParamDecl] [StmtAnnot a]-  deriving (Show, Functor, Foldable, Traversable)--parseTopDecl :: Annot a => Parser (TopDecl a)-parseTopDecl = layoutDecl <|> globalDecl <|> procDecl-  where-    layoutDecl = LayoutDecl-      <$> ("layout(" >> parseLayoutSpec)-      <*> (") " >> parseGlobalDecl)--    globalDecl = GlobalDecl-      <$> parseGlobalDecl--    procDecl = ProcDecl-      <$> ("void " >> parseProcName)-      <*> ("() " >> pure [])-      -- <*> ("{\n" >> many1 parseStmtAnnot)-      <*> ("{\n" >> many1 parseStmtAnnot >>= ("}\n" >>) . pure)--ppTopDecl :: Annot a => TopDecl a -> LTB.Builder-ppTopDecl (LayoutDecl e d) = "layout(" <> ppLayoutSpec e <> ") " <> ppGlobalDecl d-ppTopDecl (GlobalDecl d) = ppGlobalDecl d-ppTopDecl (ProcDecl n a b) =-  "void " <> ppProcName n-  <> "(" <> ppS "," ppParamDecl a <> ") {\n"-  <> ppL ppStmtAnnot b-  <> "}\n"--data ProcName-  = ProcMain-  | ProcName NameId-  deriving (Show)--parseProcName :: Parser ProcName-parseProcName =-  ("main" >> pure ProcMain)-  <|> ("p" >> ProcName <$> parseNameId)--ppProcName :: ProcName -> LTB.Builder-ppProcName ProcMain     = "main"-ppProcName (ProcName n) = "p" <> ppNameId n--data LayoutSpec-  = LayoutStd140-  | LayoutLocation Int-  deriving (Show)--parseLayoutSpec :: Parser LayoutSpec-parseLayoutSpec =-  ("std140" >> pure LayoutStd140)-  <|> ("location = " >> LayoutLocation <$> decimal)--ppLayoutSpec :: LayoutSpec -> LTB.Builder-ppLayoutSpec LayoutStd140       = "std140"-ppLayoutSpec (LayoutLocation l) = "location = " <> ppInt l--data ParamDecl-  = Param ParamKind LocalDecl-  deriving (Show)--parseParamDecl :: Parser ParamDecl-parseParamDecl = Param-  <$> parseParamKind-  <*> (" " >> parseLocalDecl)--ppParamDecl :: ParamDecl -> LTB.Builder-ppParamDecl (Param k d) =-  ppParamKind k <> " " <> ppLocalDecl d--data ParamKind-  = PkIn-  | PkOut-  | PkInout-  deriving (Show)--parseParamKind :: Parser ParamKind-parseParamKind = (char ' ' <|> pure ' ') >>-  ("in" >> return PkIn) <|>-  ("out" >> return PkOut) <|>-  ("inout" >> return PkInout)--ppParamKind :: ParamKind -> LTB.Builder-ppParamKind PkIn    = "in"-ppParamKind PkOut   = "out"-ppParamKind PkInout = "inout"--data LocalDecl-  = LDecl Type NameId (Maybe Expr)-  deriving (Show)--parseLocalDecl :: Parser LocalDecl-parseLocalDecl = LDecl-  <$> parseType-  <*> (" t" >> parseNameId)-  <*> (option Nothing (" = " >> Just <$> parseExpr) >>= (";\n" >>) . pure)--ppLocalDecl :: LocalDecl -> LTB.Builder-ppLocalDecl (LDecl t n Nothing) =-  ppType t-  <> " t" <> ppNameId n <> ";\n"-ppLocalDecl (LDecl t n (Just e)) =-  ppType t-  <> " t" <> ppNameId n-  <> " = " <> ppExpr e <> ";\n"--data GlobalDecl-  = GDecl GDeclKind Type Name-  deriving (Show)--parseGlobalDecl :: Parser GlobalDecl-parseGlobalDecl = GDecl-  <$> parseGDeclKind-  <*> (" " >> parseType)-  <*> (" " >> parseName >>= (";\n" >>) . pure)--ppGlobalDecl :: GlobalDecl -> LTB.Builder-ppGlobalDecl (GDecl k t n) =-  ppGDeclKind k-  <> " " <> ppType t-  <> " " <> ppName n <> ";\n"--data GDeclKind-  = GkIn-  | GkOut-  | GkUniform-  deriving (Show)--parseGDeclKind :: Parser GDeclKind-parseGDeclKind =-  ("in" >> return GkIn) <|>-  ("out" >> return GkOut) <|>-  ("uniform" >> return GkUniform)--ppGDeclKind :: GDeclKind -> LTB.Builder-ppGDeclKind GkIn      = "in"-ppGDeclKind GkOut     = "out"-ppGDeclKind GkUniform = "uniform"--data Type-  = TyBool-  | TyFloat-  | TySampler2D-  | TyVec Int-  | TyMat Int Int-  | TyStruct NameId [(Type, NameId)]-  deriving (Show, Eq)--parseType :: Parser Type-parseType =-  ("bool" >> return TyBool)-  <|> ("float" >> return TyFloat)-  <|> ("sampler2D" >> return TySampler2D)-  <|> ("vec" >> TyVec <$> decimal)-  <|> ("mat" >> TyMat <$> decimal <*> ("x" >> decimal))-  <|> tyStruct-  where-    tyStruct = TyStruct-      <$> ("uBlock" >> parseNameId)-      <*> (" {\n" >> many1 parseStructMember >>= ("}" >>) . pure)--    parseStructMember :: Parser (Type, NameId)-    parseStructMember = (,)-      <$> parseType-      <*> (" u" >> parseNameId >>= (";\n" >>) . pure)--ppType :: Type -> LTB.Builder-ppType TyBool = "bool"-ppType TyFloat = "float"-ppType TySampler2D = "sampler2D"-ppType (TyVec n) = "vec" <> ppInt n-ppType (TyMat n m) = "mat" <> ppInt n <> "x" <> ppInt m-ppType (TyStruct n ms) =-  "uBlock" <> ppNameId n-  <> " {\n" <> ppL ppStructMember ms <> "}"-  where ppStructMember (t, n) = ppType t <> " u" <> ppNameId n <> ";\n"--newtype NameId = NameId Int-  deriving (Show, Eq)--parseNameId :: Parser NameId-parseNameId = NameId-  <$> decimal--ppNameId :: NameId -> LTB.Builder-ppNameId (NameId n) = ppInt n--data Name-  = Name Namespace NameId-  deriving (Show)--parseName :: Parser Name-parseName = Name-  <$> parseNamespace-  <*> parseNameId--ppName :: Name -> LTB.Builder-ppName (Name ns n) = ppNamespace ns <> ppNameId n--data Namespace-  = NsT-  | NsS-  | NsU-  | NsVF-  | NsIn-  | NsOut-  deriving (Show, Eq)--parseNamespace :: Parser Namespace-parseNamespace =-  ("in" >> pure NsIn)-  <|> ("out" >> pure NsOut)-  <|> ("vf" >> pure NsVF)-  <|> (char 't' >> pure NsT)-  <|> (char 'u' >> pure NsU)-  <|> (char 's' >> pure NsS)--ppNamespace :: Namespace -> LTB.Builder-ppNamespace NsT   = "t"-ppNamespace NsS   = "s"-ppNamespace NsU   = "u"-ppNamespace NsVF  = "vf"-ppNamespace NsIn  = "in"-ppNamespace NsOut = "out"--data FunName-  = PrimMain-  | PrimMat3x3-  | PrimMat4x4-  | PrimVec2-  | PrimVec3-  | PrimVec4-  | PrimPow-  | PrimDot-  | PrimCos-  | PrimAtan-  | PrimMod-  | PrimAbs-  | PrimCross-  | PrimLength-  | PrimAsin-  | PrimSmoothstep-  | PrimStep-  | PrimFract-  | PrimFloor-  | PrimSin-  | PrimTan-  | PrimSqrt-  | PrimNormalize-  deriving (Show, Eq)--parseFunName :: Parser FunName-parseFunName =-  ("main" >> pure PrimMain)-  <|> ("mat3x3" >> pure PrimMat3x3)-  <|> ("mat4x4" >> pure PrimMat4x4)-  <|> ("vec2" >> pure PrimVec2)-  <|> ("vec3" >> pure PrimVec3)-  <|> ("vec4" >> pure PrimVec4)-  <|> ("pow" >> pure PrimPow)-  <|> ("dot" >> pure PrimDot)-  <|> ("cos" >> pure PrimCos)-  <|> ("atan" >> pure PrimAtan)-  <|> ("mod" >> pure PrimMod)-  <|> ("abs" >> pure PrimAbs)-  <|> ("cross" >> pure PrimCross)-  <|> ("length" >> pure PrimLength)-  <|> ("asin" >> pure PrimAsin)-  <|> ("smoothstep" >> pure PrimSmoothstep)-  <|> ("step" >> pure PrimStep)-  <|> ("fract" >> pure PrimFract)-  <|> ("floor" >> pure PrimFloor)-  <|> ("sin" >> pure PrimSin)-  <|> ("tan" >> pure PrimTan)-  <|> ("sqrt" >> pure PrimSqrt)-  <|> ("normalize" >> pure PrimNormalize)--ppFunName :: FunName -> LTB.Builder-ppFunName PrimMain       = "main"-ppFunName PrimMat3x3     = "mat3x3"-ppFunName PrimMat4x4     = "mat4x4"-ppFunName PrimVec2       = "vec2"-ppFunName PrimVec3       = "vec3"-ppFunName PrimVec4       = "vec4"-ppFunName PrimPow        = "pow"-ppFunName PrimDot        = "dot"-ppFunName PrimCos        = "cos"-ppFunName PrimAtan       = "atan"-ppFunName PrimMod        = "mod"-ppFunName PrimAbs        = "abs"-ppFunName PrimCross      = "cross"-ppFunName PrimLength     = "length"-ppFunName PrimAsin       = "asin"-ppFunName PrimSmoothstep = "smoothstep"-ppFunName PrimStep       = "step"-ppFunName PrimFract      = "fract"-ppFunName PrimFloor      = "floor"-ppFunName PrimSin        = "sin"-ppFunName PrimTan        = "tan"-ppFunName PrimSqrt       = "sqrt"-ppFunName PrimNormalize  = "normalize"--data Swizzle-  = X | Y | Z | W-  deriving (Show, Eq)--parseSwizzle :: Parser Swizzle-parseSwizzle =-  (char 'x' >> pure X)-  <|> (char 'y' >> pure Y)-  <|> (char 'z' >> pure Z)-  <|> (char 'w' >> pure W)--ppSwizzle :: Swizzle -> LTB.Builder-ppSwizzle X = "x"-ppSwizzle Y = "y"-ppSwizzle Z = "z"-ppSwizzle W = "w"--parseVecIndex :: Parser Swizzle-parseVecIndex =-  (char '0' >> pure X)-  <|> (char '1' >> pure Y)-  <|> (char '2' >> pure Z)-  <|> (char '3' >> pure W)--ppVecIndex :: Swizzle -> LTB.Builder-ppVecIndex X = "0"-ppVecIndex Y = "1"-ppVecIndex Z = "2"-ppVecIndex W = "3"--data NameExpr-  = NameExpr Name-  | UniformExpr NameId NameId-  deriving (Show)--parseNameExpr :: Parser NameExpr-parseNameExpr =-  UniformExpr <$> (char 'u' >> parseNameId) <*> (".u" >> parseNameId)-  <|> NameExpr <$> parseName--ppNameExpr :: NameExpr -> LTB.Builder-ppNameExpr (NameExpr n) = ppName n-ppNameExpr (UniformExpr n m) = "u" <> ppNameId n <> ".u" <> ppNameId m--data Cast-  = Cast-  | NoCast-  deriving (Show)--data ExprAtom-  = LitIntExpr Cast Int-  | LitFloatExpr Cast Float-  | IdentifierExpr NameExpr-  | SwizzleExpr NameId Swizzle-  | VecIndexExpr NameExpr Swizzle-  | MatIndexExpr NameExpr Swizzle Swizzle-  deriving (Show)--parseExprAtom :: Parser ExprAtom-parseExprAtom =-  litNumber <$> scientific-  <|> LitIntExpr Cast <$> ("int(" >> decimal >>= (")" >>) . pure)-  <|> LitFloatExpr Cast <$> ("float(" >> rational >>= (")" >>) . pure)-  <|> SwizzleExpr <$> (char 't' >> parseNameId) <*> (char '.' >> parseSwizzle)-  <|> MatIndexExpr <$> parseNameExpr <*> ("[" >> parseVecIndex) <*> ("][" >> parseVecIndex >>= ("]" >>) . pure)-  <|> VecIndexExpr <$> parseNameExpr <*> ("[" >> parseVecIndex >>= ("]" >>) . pure)-  <|> IdentifierExpr <$> parseNameExpr-  where-    litNumber s =-      let e = Sci.base10Exponent s-          c = Sci.coefficient s-      in if e >= 0-          then LitIntExpr NoCast (fromInteger (c * 10 ^ e))-          else LitFloatExpr NoCast (Sci.toRealFloat s)--ppExprAtom :: ExprAtom -> LTB.Builder-ppExprAtom (LitIntExpr Cast i)     = "int(" <> ppInt i <> ")"-ppExprAtom (LitIntExpr NoCast i)   = ppInt i-ppExprAtom (LitFloatExpr Cast n)   = "float(" <> ppFloat n <> ")"-ppExprAtom (LitFloatExpr NoCast r) = ppFloat r-ppExprAtom (IdentifierExpr n)      = ppNameExpr n-ppExprAtom (SwizzleExpr n m)       = "t" <> ppNameId n <> "." <> ppSwizzle m-ppExprAtom (VecIndexExpr n i)      = ppNameExpr n <> "[" <> ppVecIndex i <> "]"-ppExprAtom (MatIndexExpr n i j)    = ppNameExpr n <> "[" <> ppVecIndex i <> "]" <> "[" <> ppVecIndex j <> "]"--data Expr-  = UnaryExpr UnaryOp ExprAtom-  | BinaryExpr ExprAtom BinaryOp ExprAtom-  | FunCallExpr FunName [ExprAtom]-  | TextureExpr ExprAtom ExprAtom ExprAtom-  | AtomExpr ExprAtom-  deriving (Show)--parseExpr :: Parser Expr-parseExpr =-  (char '(' >> operatorExpr >>= (char ')' >>) . pure)-  <|> textureExpr-  <|> funCallExpr-  <|> AtomExpr <$> parseExprAtom--  where-    operatorExpr =-      BinaryExpr <$> parseExprAtom <*> parseBinaryOp <*> parseExprAtom-      <|> UnaryExpr <$> parseUnaryOp <*> parseExprAtom--    textureExpr = TextureExpr-      <$> ("texture(" >> parseExprAtom)-      <*> (",vec2(" >> parseExprAtom)-      <*> ("," >> parseExprAtom >>= ("))" >>) . pure)--    funCallExpr = FunCallExpr-      <$> parseFunName-      <*> (char '(' >> sepBy1 parseExprAtom (char ',') >>= (char ')' >>) . pure)--ppExpr :: Expr -> LTB.Builder-ppExpr (AtomExpr e) = ppExprAtom e-ppExpr (UnaryExpr o e) = "(" <> ppUnaryOp o <> ppExprAtom e <> ")"-ppExpr (BinaryExpr l o r) = "(" <> ppExprAtom l <> ppBinaryOp o <> ppExprAtom r <> ")"-ppExpr (FunCallExpr n args) = ppFunName n <> "(" <> ppS "," ppExprAtom args <> ")"-ppExpr (TextureExpr t x y) = "texture(" <> ppExprAtom t <> ",vec2(" <> ppExprAtom x <> "," <> ppExprAtom y <> "))"--data BinaryOp-  = BOpPlus-  | BOpMinus-  | BOpMul-  | BOpDiv-  | BOpGE-  | BOpGT-  | BOpLE-  | BOpLT-  | BOpAnd-  | BOpOr-  deriving (Show, Eq)--parseBinaryOp :: Parser BinaryOp-parseBinaryOp =-  (char '+' >> pure BOpPlus)-  <|> (char '-' >> pure BOpMinus)-  <|> (char '*' >> pure BOpMul)-  <|> (char '/' >> pure BOpDiv)-  <|> (">=" >> pure BOpGE)-  <|> (">" >> pure BOpGT)-  <|> ("<=" >> pure BOpLE)-  <|> ("<" >> pure BOpLT)-  <|> ("&&" >> pure BOpAnd)-  <|> ("||" >> pure BOpOr)--ppBinaryOp :: BinaryOp -> LTB.Builder-ppBinaryOp BOpPlus  = "+"-ppBinaryOp BOpMinus = "-"-ppBinaryOp BOpMul   = "*"-ppBinaryOp BOpDiv   = "/"-ppBinaryOp BOpGE    = ">="-ppBinaryOp BOpGT    = ">"-ppBinaryOp BOpLE    = "<="-ppBinaryOp BOpLT    = "<"-ppBinaryOp BOpAnd   = "&&"-ppBinaryOp BOpOr    = "||"--data UnaryOp-  = UOpMinus-  | UOpNot-  deriving (Show, Eq)--parseUnaryOp :: Parser UnaryOp-parseUnaryOp =-  (char '-' >> pure UOpMinus)-  <|> (char '!' >> pure UOpMinus)--ppUnaryOp :: UnaryOp -> LTB.Builder-ppUnaryOp UOpMinus = "-"-ppUnaryOp UOpNot   = "!"--data StmtAnnot a = SA-  { annot   :: a-  , unAnnot :: Stmt a-  }-  deriving (Show, Functor, Foldable, Traversable)--instance Applicative StmtAnnot where-  pure a = SA a (pure a)-  liftA2 f a b = SA (f (annot a) (annot b)) $ liftA2 f (unAnnot a) (unAnnot b)--parseStmtAnnot :: Annot a => Parser (StmtAnnot a)-parseStmtAnnot = SA <$> parseAnnot <*> parseStmt--ppStmtAnnot :: Annot a => StmtAnnot a -> LTB.Builder-ppStmtAnnot (SA a s) =-  maybe "" (\ltb -> "// " <> ltb <> "\n") (ppAnnot a) <> ppStmt s--data Stmt a-  = AssignStmt Name Expr-  | DeclStmt LocalDecl-  | EmitStmt Emit-  | IfStmt NameId [StmtAnnot a] [StmtAnnot a]-  deriving (Show, Functor, Foldable, Traversable)--instance Applicative Stmt where-  -- Arbitrary decision because "pure" doesn't really make sense.-  pure _ = EmitStmt EmitFragDepth--  liftA2 f (IfStmt n t1 e1) (IfStmt _ t2 e2) = IfStmt n-    ((zipWith . liftA2) f t1 t2)-    ((zipWith . liftA2) f e1 e2)-  liftA2 _ (AssignStmt n e) _ = AssignStmt n e-  liftA2 _ (DeclStmt d) _ = DeclStmt d-  liftA2 _ (EmitStmt e) _ = EmitStmt e-  liftA2 _ (IfStmt n _ _) _ = IfStmt n [] []---parseStmt :: Annot a => Parser (Stmt a)-parseStmt =-  IfStmt <$> ("if(t" >> parseNameId >>= ("){\n" >>) . pure)-         <*> many1 parseStmtAnnot-         <*> ("} else {\n" >> many1 parseStmtAnnot >>= ("}\n" >>) . pure)-  <|> AssignStmt <$> parseName <*> (" = " >> parseExpr >>= (";\n" >>) . pure)-  <|> DeclStmt <$> parseLocalDecl-  <|> EmitStmt <$> parseEmit--ppStmt :: Annot a => Stmt a -> LTB.Builder-ppStmt (AssignStmt n e) = ppName n <> " = " <> ppExpr e <> ";\n"-ppStmt (DeclStmt d) = ppLocalDecl d-ppStmt (EmitStmt e) = ppEmit e-ppStmt (IfStmt c t e) =-  "if(t" <> ppNameId c <> "){\n"-  <> ppL ppStmtAnnot t-  <> "} else {\n"-  <> ppL ppStmtAnnot e-  <> "}\n"--data Emit-  = EmitPosition Expr-  | EmitFragDepth-  deriving (Show)--parseEmit :: Parser Emit-parseEmit =-  EmitPosition <$> ("gl_Position = " >> parseExpr >>= (";\n" >>) . pure)-  <|> ("gl_FragDepth = gl_FragCoord[2];\n" >> pure EmitFragDepth)--ppEmit :: Emit -> LTB.Builder-ppEmit (EmitPosition e) = "gl_Position = " <> ppExpr e <> ";\n"-ppEmit EmitFragDepth    = "gl_FragDepth = gl_FragCoord[2];\n"--ppInt :: Int -> LTB.Builder-ppInt = LTB.decimal--ppFloat :: Float -> LTB.Builder-ppFloat = LTB.realFloat--ppL :: (a -> LTB.Builder) -> [a] -> LTB.Builder-ppL printer = mconcat . map printer--ppS :: LTB.Builder -> (a -> LTB.Builder) -> [a] -> LTB.Builder-ppS sep printer = mconcat . intersperse sep . map printer--class Annot a where-  parseAnnot :: Parser a-  ppAnnot :: a -> Maybe LTB.Builder--instance Annot () where-  parseAnnot = pure ()-  ppAnnot = const Nothing--instance (Annot a, Annot b) => Annot (a, b) where-  parseAnnot = error "not implemented"-  ppAnnot (a, b) = do-    ppA <- ppAnnot a-    ppB <- ppAnnot b-    return $ "(" <> ppA <> ", " <> ppB <> ")"--------------------------------------parseTest :: Show a => Parser a -> LT.Text -> IO ()-parseTest p input =-  let r = show . fromPartial . parse p . T.encodeUtf8 . LT.toStrict $ input in-  if length r > 600-    then-      let start = take 500 r-          end = reverse $ take 100 $ reverse r-      in-      putStrLn $ start <> " ... " <> end-    else putStrLn r-  where-    fromPartial (Partial cont) = cont mempty-    fromPartial r              = r--t :: Show a => Parser a -> String -> IO ()-t p = parseTest p . LT.pack--pp :: (a -> LTB.Builder) -> a -> String-pp printer = LT.unpack . LTB.toLazyText . printer--ppl :: (a -> LTB.Builder) -> [a] -> String-ppl printer = LT.unpack . LTB.toLazyText . ppL printer
+ test/Language/GLSL/BitCodeSpec.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE OverloadedStrings   #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE ViewPatterns        #-}+module Language.GLSL.BitCodeSpec where++import           Test.GLSL.Arbitrary              ()+import           Test.Hspec                       (Spec, describe, it, runIO,+                                                   shouldBe, shouldNotBe)+import           Test.Hspec.QuickCheck            (prop)+import           Test.QuickCheck                  (forAllShrink, shrink)+import qualified Test.QuickCheck.Gen              as Gen++import           Control.Monad                    (forM_, unless, when)+import qualified Data.Text.Lazy.IO                as IO+import qualified Data.Vector                      as V+import           Language.GLSL.AST+import           Language.GLSL.BitCode            (encodeStmt)+import qualified Language.GLSL.ConstExpr          as ConstExpr+import           Language.GLSL.Parser             (parseShader)+import           Language.GLSL.StructuralEquality (eqStmt)+import qualified System.Directory                 as Dir++-- Run an exhaustive n^2 test comparing every line to every other line in the+-- test file. This takes around 13 seconds on my laptop.+exhaustive :: Bool+exhaustive = False++getStatements :: FilePath -> IO (V.Vector (Stmt ()))+getStatements path = do+  inTopDir <- Dir.doesDirectoryExist "glsl"+  when inTopDir $ Dir.setCurrentDirectory "glsl"+  glsl <- parseShader <$> IO.readFile path+  case glsl of+    Left err ->+      fail err+    Right (GLSL _ (reverse -> (ProcDecl _ _ ss):_)) ->+      return . V.fromList . map unAnnot $ ss+    Right _ ->+      fail "test file does not end with a main function"+++encodeStmtSpec :: Maybe ConstExpr.ConstExprs -> Spec+encodeStmtSpec ce = do+  prop "should produce the same encoding for structurally equal statements" $+    \(s1 :: Stmt ()) (s2 :: Stmt ()) ->+      let enc1 = encodeStmt ce s1+          enc2 = encodeStmt ce s2+      in+      when (eqStmt ce s1 s2) $+        enc1 `shouldBe` enc2++  prop "should produce different encoding for structurally different statements" $+    \(s1 :: Stmt ()) (s2 :: Stmt ()) ->+      let enc1 = encodeStmt ce s1+          enc2 = encodeStmt ce s2+      in+      unless (eqStmt ce s1 s2) $+        enc1 `shouldNotBe` enc2+++testFileSpec :: FilePath -> Spec+testFileSpec filename = do+  stmts <- runIO $ getStatements $ "test/data/large-shaders/" <> filename+  let forAllStmt p = forAllShrink (+          (stmts V.!) <$> Gen.chooseBoundedIntegral (0, V.length stmts - 1))+        shrink p++  it ("should be able to encode all statements from " <> filename) $ do+    forM_ stmts $ \s ->+      encodeStmt Nothing s+      `shouldBe`+      encodeStmt Nothing s++  prop ("should obey (a = b) => enc a = enc b for all pairs in " <> filename) $+    forAllStmt $ \s1 -> forAllStmt $ \s2 ->+        let enc1 = encodeStmt Nothing s1+            enc2 = encodeStmt Nothing s2+        in+        if eqStmt Nothing s1 s2+          then enc1 `shouldBe` enc2+          else enc1 `shouldNotBe` enc2++  when exhaustive $+    it ("should obey (a = b) => enc a = enc b for every single pair in " <> filename) $+      forM_ [0..V.length stmts - 1] $ \i -> forM_ [i..V.length stmts - 1] $ \j ->+          let s1 = stmts V.! i+              s2 = stmts V.! j+              enc1 = encodeStmt Nothing s1+              enc2 = encodeStmt Nothing s2+          in+          if eqStmt Nothing s1 s2+            then enc1 `shouldBe` enc2+            else enc1 `shouldNotBe` enc2++++spec :: Spec+spec = do+  describe "encodeStmt" $ do+    encodeStmtSpec Nothing++  describe "encodeStmt with ConstExpr" $ do+    encodeStmtSpec $ Just ConstExpr.empty++  -- testFileSpec "lambdacnc.frag"+  -- testFileSpec "lambdacnc.vert"+  testFileSpec "xax.frag"+  -- testFileSpec "xax.vert"
test/Language/GLSL/GLSLSpec.hs view
@@ -5,7 +5,8 @@  import           Control.Applicative              (liftA2) import           Data.Attoparsec.ByteString.Char8 (decimal)-import qualified Language.GLSL.Types    as GLSL+import qualified Language.GLSL.AST                as GLSL+import qualified Language.GLSL.PrettyPrint        as GLSL import           Test.GLSL                        (Transform, shouldTransformTo,                                                    with) 
+ test/Language/GLSL/Internal/BitsSpec.hs view
@@ -0,0 +1,20 @@+{-# LANGUAGE OverloadedStrings #-}+module Language.GLSL.Internal.BitsSpec where++import           Test.Hspec                  (Spec, describe, it, shouldBe)++import           Language.GLSL.Internal.Bits (B (I, O), flat, unflat)++spec :: Spec+spec = do+  describe "flat" $ do+    it "should preserve the order of the input" $+      flat ((O,I),I,(I,O,O,I))+      `shouldBe`+      [O,I,I,I,O,O,I]++  describe "unflat" $ do+    it "should preserve the order of the input and consume all input" $+      unflat [O,I,I,I,O,O,I]+      `shouldBe`+      Just (((O,I),I,(I,O,O,I)),[])
+ test/Language/GLSL/StructuralEqualitySpec.hs view
@@ -0,0 +1,46 @@+{-# LANGUAGE OverloadedStrings   #-}+{-# LANGUAGE ScopedTypeVariables #-}+module Language.GLSL.StructuralEqualitySpec where++import           Test.GLSL.Arbitrary              ()+import           Test.Hspec                       (Spec, describe, it, shouldBe)+import           Test.Hspec.QuickCheck            (prop)++import           Control.Monad                    (when)+import           Language.GLSL.AST+import qualified Language.GLSL.ConstExpr          as ConstExpr+import           Language.GLSL.StructuralEquality (eqStmt)++ce :: Maybe ConstExpr.ConstExprs+ce = Just ConstExpr.empty++spec :: Spec+spec = do+  describe "eqStmt" $ do+    prop "should obey (a = b) & (b = c) => (a = c)" $+      \(a :: Stmt ()) (b :: Stmt ()) (c :: Stmt ()) ->+        when (eqStmt ce a b && eqStmt ce b c) $+          eqStmt ce a c `shouldBe` True++    prop "should obey (a = b) & (b != c) => (a != c)" $+      \(a :: Stmt ()) (b :: Stmt ()) (c :: Stmt ()) ->+        when (eqStmt ce a b && not (eqStmt ce b c)) $+          eqStmt ce a c `shouldBe` False++    prop "should be True for (a == b)" $+      \(a :: Stmt ()) ->+        eqStmt ce a a `shouldBe` True++    it "should differentiate constant expressions if we pass no ConstExpr" $+      let n = Name NsT (NameId 0)+          a = AssignStmt n (UnaryExpr UOpMinus (LitIntExpr NoCast 0))+          b = AssignStmt n (FunCallExpr PrimAsin [])+      in+      eqStmt Nothing a b `shouldBe` False++    it "should treat constant expressions as equal if we pass ConstExpr" $+      let n = Name NsT (NameId 0)+          a = AssignStmt n (UnaryExpr UOpMinus (LitIntExpr NoCast 0))+          b = AssignStmt n (FunCallExpr PrimAsin [])+      in+      eqStmt ce a b `shouldBe` True
test/Test/GLSL.hs view
@@ -1,14 +1,16 @@ {-# LANGUAGE OverloadedStrings #-} module Test.GLSL where -import           Test.Hspec                        (Expectation, shouldBe)+import           Test.Hspec                       (Expectation, shouldBe) -import           Data.Attoparsec.ByteString.Char8  (many1, parseOnly)-import qualified Data.ByteString.Char8             as BS-import           Data.String                       (fromString)-import qualified Data.Text.Lazy                    as LT-import qualified Data.Text.Lazy.Builder            as LTB-import qualified Language.GLSL.Types     as GLSL+import           Data.Attoparsec.ByteString.Char8 (many1, parseOnly)+import qualified Data.ByteString.Char8            as BS+import           Data.String                      (fromString)+import qualified Data.Text.Lazy                   as LT+import qualified Data.Text.Lazy.Builder           as LTB+import qualified Language.GLSL.AST                as GLSL+import qualified Language.GLSL.Parser             as GLSL+import qualified Language.GLSL.PrettyPrint        as GLSL   type Transform a b = [GLSL.StmtAnnot a] -> [GLSL.StmtAnnot b]
+ test/Test/GLSL/Arbitrary.hs view
@@ -0,0 +1,111 @@+{-# OPTIONS_GHC -Wno-orphans #-}+module Test.GLSL.Arbitrary where++import           Language.GLSL.AST+import           Test.QuickCheck.Arbitrary (Arbitrary (..), genericShrink)+import qualified Test.QuickCheck.Gen       as Gen+++instance Arbitrary a => Arbitrary (Stmt a) where+  shrink = genericShrink+  arbitrary = Gen.sized $ \sz -> Gen.oneof+    [ AssignStmt <$> arbitrary <*> arbitrary+    , DeclStmt <$> arbitrary+    , EmitStmt <$> arbitrary+    , IfStmt <$> arbitrary+        <*> Gen.resize (sz`div`4) arbitrary+        <*> Gen.resize (sz`div`4) arbitrary+    ]++instance Arbitrary ExprAtom where+  shrink = genericShrink+  arbitrary = Gen.oneof+    [ LitIntExpr NoCast <$> arbitrary+    , IdentifierExpr <$> arbitrary+    , SwizzleExpr <$> arbitrary <*> arbitrary+    , VecIndexExpr <$> arbitrary <*> arbitrary+    , MatIndexExpr <$> arbitrary <*> arbitrary <*> arbitrary+    ]++instance Arbitrary Expr where+  shrink = filter isValidExpr . genericShrink+  arbitrary = Gen.oneof+    [ UnaryExpr <$> arbitrary <*> arbitrary+    , BinaryExpr <$> arbitrary <*> arbitrary <*> arbitrary+    , FunCallExpr <$> arbitrary <*> arbArgs+    -- , TextureExpr <$> arbitrary <*> arbitrary <*> arbitrary+    , AtomExpr <$> arbitrary+    ]+    where+      arbArgs :: Gen.Gen [ExprAtom]+      arbArgs = pure []++isValidExpr :: Expr -> Bool+isValidExpr (FunCallExpr f args) = length args == argCountForFunName f+isValidExpr _                    = True++instance Arbitrary Emit where+  shrink = genericShrink+  arbitrary = Gen.oneof+    [ pure EmitFragDepth+    , EmitPosition <$> arbitrary+    ]++++instance Arbitrary a => Arbitrary (StmtAnnot a) where+  shrink = genericShrink+  arbitrary = SA <$> arbitrary <*> arbitrary++instance Arbitrary LocalDecl where+  shrink = genericShrink+  arbitrary = LDecl <$> arbitrary <*> arbitrary <*> arbitrary++instance Arbitrary Type where+  arbitrary = Gen.elements+    [ TyBool+    , TyFloat+    , TyVec 4+    , TyMat 4 4+    ]++instance Arbitrary NameId where+  shrink = genericShrink+  arbitrary = NameId <$> arbitrary++instance Arbitrary Namespace where+  arbitrary = pure NsT++instance Arbitrary Name where+  shrink = genericShrink+  arbitrary = Name <$> arbitrary <*> arbitrary++instance Arbitrary FunName where+  arbitrary = Gen.elements+    [ PrimAbs+    , PrimAsin+    ]++instance Arbitrary UnaryOp where+  arbitrary = Gen.elements+    [ UOpMinus+    , UOpNot+    ]++instance Arbitrary BinaryOp where+  arbitrary = Gen.elements+    [ BOpPlus+    , BOpMinus+    ]++instance Arbitrary Cast where+  shrink = genericShrink+  arbitrary = Gen.elements [NoCast, Cast]++instance Arbitrary NameExpr where+  shrink = genericShrink+  arbitrary = NameExpr <$> arbitrary++instance Arbitrary Swizzle where+  shrink = genericShrink+  arbitrary = Gen.elements [X, Y, Z, W]
+ test/data/large-shaders/lambdacnc.frag view
@@ -0,0 +1,956 @@+#version 450+layout(location = 0) out vec4 out0;+layout(location = 1) out vec4 out1;+layout(std140) uniform uBlock5 {+float u0;+float u4;+float u8;+float u12;+float u16;+float u20;+float u24;+} u5;+layout(std140) uniform uBlock6 {+float u0;+float u4;+float u8;+float u12;+float u16;+float u20;+float u24;+float u28;+} u6;+layout(std140) uniform uBlock7 {+float u0;+float u4;+float u8;+float u12;+float u16;+float u20;+} u7;+layout(std140) uniform uBlock8 {+float u0;+float u4;+float u8;+float u12;+float u16;+float u20;+} u8;+uniform sampler2D s10;+uniform sampler2D s11;+uniform sampler2D s12;+in float vf0;+in float vf1;+in float vf2;+in float vf3;+in float vf4;+in float vf5;+in float vf6;+in float vf7;+in float vf8;+in float vf9;+in float vf10;+in float vf11;+in float vf12;+in float vf13;+in float vf14;+in float vf15;+in float vf16;+in float vf17;+void main() {+vec4 t0 = vec4(u7.u0,u7.u4,u7.u8,1);+float t1 = (u5.u0/2);+float t2 = cos(t1);+float t3 = sin(t1);+float t4 = (-t3);+vec4 t5 = vec4(t2,t4,0,0);+float t6 = sin(t1);+vec4 t7 = vec4(t6,t2,0,0);+vec4 t8 = vec4(0,0,1,0);+vec4 t9 = vec4(0,0,0,1);+mat4x4 t10 = mat4x4(t5,t7,t8,t9);+vec4 t11 = (t0*t10);+float t12 = (t11[0]-vf2);+float t13 = (t12*t12);+float t14 = (t11[1]-vf3);+float t15 = (t14*t14);+float t16 = (t13+t15);+float t17 = (t11[2]-vf4);+float t18 = (t17*t17);+float t19 = (t16+t18);+float t20 = (t11[3]-vf5);+float t21 = (t20*t20);+float t22 = (t19+t21);+float t23 = sqrt(t22);+float t24 = (t12/t23);+float t25 = (vf6*t24);+float t26 = (t14/t23);+float t27 = (vf7*t26);+float t28 = (t25+t27);+float t29 = (t17/t23);+float t30 = (vf8*t29);+float t31 = (t28+t30);+float t32 = (t20/t23);+float t33 = (vf9*t32);+float t34 = (t31+t33);+bool t35 = (t34>=0);+float t36;+if(t35){+t36 = t34;+} else {+t36 = 0;+}+float t37 = (u7.u12*t36);+float t38 = (vf12/vf13);+float t39 = (t38*float(0.5));+float t40 = (t39+float(0.5));+vec4 t41 = vec4(vf6,vf7,vf8,vf9);+float t42 = (t11[0]-vf2);+float t43 = (t11[1]-vf3);+float t44 = (t11[2]-vf4);+float t45 = (t11[3]-vf5);+vec4 t46 = vec4(t42,t43,t44,t45);+vec4 t47 = normalize(t46);+vec4 t48 = vec4(t47[0],t47[1],t47[2],t47[3]);+float t49 = dot(t41,t48);+float t50 = (float(1.0)-t49);+float t51 = (float(5.0e-4)*t50);+bool t52 = (t51>=float(5.0e-5));+float t53;+if(t52){+t53 = t51;+} else {+t53 = float(5.0e-5);+}+float t54 = (t40-t53);+float t55 = (vf10/vf13);+float t56 = (t55*float(0.5));+float t57 = (t56+float(0.5));+float t58 = (float(1.0)/600);+float t59 = (0*t58);+float t60 = (t57+t59);+float t61 = (vf11/vf13);+float t62 = (t61*float(0.5));+float t63 = (t62+float(0.5));+float t64 = (0*t58);+float t65 = (t63+t64);+vec4 t66 = texture(s10,vec2(t60,t65));+bool t67 = (t54>t66.x);+float t68;+if(t67){+t68 = float(0.1);+} else {+t68 = float(1.0);+}+float t69 = (0+t68);+float t70 = (vf12/vf13);+float t71 = (t70*float(0.5));+float t72 = (t71+float(0.5));+vec4 t73 = vec4(vf6,vf7,vf8,vf9);+float t74 = (t11[0]-vf2);+float t75 = (t11[1]-vf3);+float t76 = (t11[2]-vf4);+float t77 = (t11[3]-vf5);+vec4 t78 = vec4(t74,t75,t76,t77);+vec4 t79 = normalize(t78);+vec4 t80 = vec4(t79[0],t79[1],t79[2],t79[3]);+float t81 = dot(t73,t80);+float t82 = (float(1.0)-t81);+float t83 = (float(5.0e-4)*t82);+bool t84 = (t83>=float(5.0e-5));+float t85;+if(t84){+t85 = t83;+} else {+t85 = float(5.0e-5);+}+float t86 = (t72-t85);+float t87 = (vf10/vf13);+float t88 = (t87*float(0.5));+float t89 = (t88+float(0.5));+float t90 = (-1);+float t91 = (t90*t58);+float t92 = (t89+t91);+float t93 = (vf11/vf13);+float t94 = (t93*float(0.5));+float t95 = (t94+float(0.5));+float t96 = (t90*t58);+float t97 = (t95+t96);+vec4 t98 = texture(s10,vec2(t92,t97));+bool t99 = (t86>t98.x);+float t100;+if(t99){+t100 = float(0.1);+} else {+t100 = float(1.0);+}+float t101 = (t69+t100);+float t102 = (vf12/vf13);+float t103 = (t102*float(0.5));+float t104 = (t103+float(0.5));+vec4 t105 = vec4(vf6,vf7,vf8,vf9);+float t106 = (t11[0]-vf2);+float t107 = (t11[1]-vf3);+float t108 = (t11[2]-vf4);+float t109 = (t11[3]-vf5);+vec4 t110 = vec4(t106,t107,t108,t109);+vec4 t111 = normalize(t110);+vec4 t112 = vec4(t111[0],t111[1],t111[2],t111[3]);+float t113 = dot(t105,t112);+float t114 = (float(1.0)-t113);+float t115 = (float(5.0e-4)*t114);+bool t116 = (t115>=float(5.0e-5));+float t117;+if(t116){+t117 = t115;+} else {+t117 = float(5.0e-5);+}+float t118 = (t104-t117);+float t119 = (vf10/vf13);+float t120 = (t119*float(0.5));+float t121 = (t120+float(0.5));+float t122 = (-1);+float t123 = (t122*t58);+float t124 = (t121+t123);+float t125 = (vf11/vf13);+float t126 = (t125*float(0.5));+float t127 = (t126+float(0.5));+float t128 = (0*t58);+float t129 = (t127+t128);+vec4 t130 = texture(s10,vec2(t124,t129));+bool t131 = (t118>t130.x);+float t132;+if(t131){+t132 = float(0.1);+} else {+t132 = float(1.0);+}+float t133 = (t101+t132);+float t134 = (vf12/vf13);+float t135 = (t134*float(0.5));+float t136 = (t135+float(0.5));+vec4 t137 = vec4(vf6,vf7,vf8,vf9);+float t138 = (t11[0]-vf2);+float t139 = (t11[1]-vf3);+float t140 = (t11[2]-vf4);+float t141 = (t11[3]-vf5);+vec4 t142 = vec4(t138,t139,t140,t141);+vec4 t143 = normalize(t142);+vec4 t144 = vec4(t143[0],t143[1],t143[2],t143[3]);+float t145 = dot(t137,t144);+float t146 = (float(1.0)-t145);+float t147 = (float(5.0e-4)*t146);+bool t148 = (t147>=float(5.0e-5));+float t149;+if(t148){+t149 = t147;+} else {+t149 = float(5.0e-5);+}+float t150 = (t136-t149);+float t151 = (vf10/vf13);+float t152 = (t151*float(0.5));+float t153 = (t152+float(0.5));+float t154 = (-1);+float t155 = (t154*t58);+float t156 = (t153+t155);+float t157 = (vf11/vf13);+float t158 = (t157*float(0.5));+float t159 = (t158+float(0.5));+float t160 = (1*t58);+float t161 = (t159+t160);+vec4 t162 = texture(s10,vec2(t156,t161));+bool t163 = (t150>t162.x);+float t164;+if(t163){+t164 = float(0.1);+} else {+t164 = float(1.0);+}+float t165 = (t133+t164);+float t166 = (vf12/vf13);+float t167 = (t166*float(0.5));+float t168 = (t167+float(0.5));+vec4 t169 = vec4(vf6,vf7,vf8,vf9);+float t170 = (t11[0]-vf2);+float t171 = (t11[1]-vf3);+float t172 = (t11[2]-vf4);+float t173 = (t11[3]-vf5);+vec4 t174 = vec4(t170,t171,t172,t173);+vec4 t175 = normalize(t174);+vec4 t176 = vec4(t175[0],t175[1],t175[2],t175[3]);+float t177 = dot(t169,t176);+float t178 = (float(1.0)-t177);+float t179 = (float(5.0e-4)*t178);+bool t180 = (t179>=float(5.0e-5));+float t181;+if(t180){+t181 = t179;+} else {+t181 = float(5.0e-5);+}+float t182 = (t168-t181);+float t183 = (vf10/vf13);+float t184 = (t183*float(0.5));+float t185 = (t184+float(0.5));+float t186 = (0*t58);+float t187 = (t185+t186);+float t188 = (vf11/vf13);+float t189 = (t188*float(0.5));+float t190 = (t189+float(0.5));+float t191 = (-1);+float t192 = (t191*t58);+float t193 = (t190+t192);+vec4 t194 = texture(s10,vec2(t187,t193));+bool t195 = (t182>t194.x);+float t196;+if(t195){+t196 = float(0.1);+} else {+t196 = float(1.0);+}+float t197 = (t165+t196);+float t198 = (vf12/vf13);+float t199 = (t198*float(0.5));+float t200 = (t199+float(0.5));+vec4 t201 = vec4(vf6,vf7,vf8,vf9);+float t202 = (t11[0]-vf2);+float t203 = (t11[1]-vf3);+float t204 = (t11[2]-vf4);+float t205 = (t11[3]-vf5);+vec4 t206 = vec4(t202,t203,t204,t205);+vec4 t207 = normalize(t206);+vec4 t208 = vec4(t207[0],t207[1],t207[2],t207[3]);+float t209 = dot(t201,t208);+float t210 = (float(1.0)-t209);+float t211 = (float(5.0e-4)*t210);+bool t212 = (t211>=float(5.0e-5));+float t213;+if(t212){+t213 = t211;+} else {+t213 = float(5.0e-5);+}+float t214 = (t200-t213);+float t215 = (vf10/vf13);+float t216 = (t215*float(0.5));+float t217 = (t216+float(0.5));+float t218 = (0*t58);+float t219 = (t217+t218);+float t220 = (vf11/vf13);+float t221 = (t220*float(0.5));+float t222 = (t221+float(0.5));+float t223 = (1*t58);+float t224 = (t222+t223);+vec4 t225 = texture(s10,vec2(t219,t224));+bool t226 = (t214>t225.x);+float t227;+if(t226){+t227 = float(0.1);+} else {+t227 = float(1.0);+}+float t228 = (t197+t227);+float t229 = (vf12/vf13);+float t230 = (t229*float(0.5));+float t231 = (t230+float(0.5));+vec4 t232 = vec4(vf6,vf7,vf8,vf9);+float t233 = (t11[0]-vf2);+float t234 = (t11[1]-vf3);+float t235 = (t11[2]-vf4);+float t236 = (t11[3]-vf5);+vec4 t237 = vec4(t233,t234,t235,t236);+vec4 t238 = normalize(t237);+vec4 t239 = vec4(t238[0],t238[1],t238[2],t238[3]);+float t240 = dot(t232,t239);+float t241 = (float(1.0)-t240);+float t242 = (float(5.0e-4)*t241);+bool t243 = (t242>=float(5.0e-5));+float t244;+if(t243){+t244 = t242;+} else {+t244 = float(5.0e-5);+}+float t245 = (t231-t244);+float t246 = (vf10/vf13);+float t247 = (t246*float(0.5));+float t248 = (t247+float(0.5));+float t249 = (1*t58);+float t250 = (t248+t249);+float t251 = (vf11/vf13);+float t252 = (t251*float(0.5));+float t253 = (t252+float(0.5));+float t254 = (-1);+float t255 = (t254*t58);+float t256 = (t253+t255);+vec4 t257 = texture(s10,vec2(t250,t256));+bool t258 = (t245>t257.x);+float t259;+if(t258){+t259 = float(0.1);+} else {+t259 = float(1.0);+}+float t260 = (t228+t259);+float t261 = (vf12/vf13);+float t262 = (t261*float(0.5));+float t263 = (t262+float(0.5));+vec4 t264 = vec4(vf6,vf7,vf8,vf9);+float t265 = (t11[0]-vf2);+float t266 = (t11[1]-vf3);+float t267 = (t11[2]-vf4);+float t268 = (t11[3]-vf5);+vec4 t269 = vec4(t265,t266,t267,t268);+vec4 t270 = normalize(t269);+vec4 t271 = vec4(t270[0],t270[1],t270[2],t270[3]);+float t272 = dot(t264,t271);+float t273 = (float(1.0)-t272);+float t274 = (float(5.0e-4)*t273);+bool t275 = (t274>=float(5.0e-5));+float t276;+if(t275){+t276 = t274;+} else {+t276 = float(5.0e-5);+}+float t277 = (t263-t276);+float t278 = (vf10/vf13);+float t279 = (t278*float(0.5));+float t280 = (t279+float(0.5));+float t281 = (1*t58);+float t282 = (t280+t281);+float t283 = (vf11/vf13);+float t284 = (t283*float(0.5));+float t285 = (t284+float(0.5));+float t286 = (0*t58);+float t287 = (t285+t286);+vec4 t288 = texture(s10,vec2(t282,t287));+bool t289 = (t277>t288.x);+float t290;+if(t289){+t290 = float(0.1);+} else {+t290 = float(1.0);+}+float t291 = (t260+t290);+float t292 = (vf12/vf13);+float t293 = (t292*float(0.5));+float t294 = (t293+float(0.5));+vec4 t295 = vec4(vf6,vf7,vf8,vf9);+float t296 = (t11[0]-vf2);+float t297 = (t11[1]-vf3);+float t298 = (t11[2]-vf4);+float t299 = (t11[3]-vf5);+vec4 t300 = vec4(t296,t297,t298,t299);+vec4 t301 = normalize(t300);+vec4 t302 = vec4(t301[0],t301[1],t301[2],t301[3]);+float t303 = dot(t295,t302);+float t304 = (float(1.0)-t303);+float t305 = (float(5.0e-4)*t304);+bool t306 = (t305>=float(5.0e-5));+float t307;+if(t306){+t307 = t305;+} else {+t307 = float(5.0e-5);+}+float t308 = (t294-t307);+float t309 = (vf10/vf13);+float t310 = (t309*float(0.5));+float t311 = (t310+float(0.5));+float t312 = (1*t58);+float t313 = (t311+t312);+float t314 = (vf11/vf13);+float t315 = (t314*float(0.5));+float t316 = (t315+float(0.5));+float t317 = (1*t58);+float t318 = (t316+t317);+vec4 t319 = texture(s10,vec2(t313,t318));+bool t320 = (t308>t319.x);+float t321;+if(t320){+t321 = float(0.1);+} else {+t321 = float(1.0);+}+float t322 = (t291+t321);+float t323 = (t322/9);+float t324 = (t37*t323);+vec4 t325 = vec4(u8.u0,u8.u4,u8.u8,1);+vec4 t326 = vec4(t2,t4,0,0);+vec4 t327 = vec4(t6,t2,0,0);+vec4 t328 = vec4(0,0,1,0);+vec4 t329 = vec4(0,0,0,1);+mat4x4 t330 = mat4x4(t326,t327,t328,t329);+vec4 t331 = (t325*t330);+float t332 = (t331[0]-vf2);+float t333 = (t332*t332);+float t334 = (t331[1]-vf3);+float t335 = (t334*t334);+float t336 = (t333+t335);+float t337 = (t331[2]-vf4);+float t338 = (t337*t337);+float t339 = (t336+t338);+float t340 = (t331[3]-vf5);+float t341 = (t340*t340);+float t342 = (t339+t341);+float t343 = sqrt(t342);+float t344 = (t332/t343);+float t345 = (vf6*t344);+float t346 = (t334/t343);+float t347 = (vf7*t346);+float t348 = (t345+t347);+float t349 = (t337/t343);+float t350 = (vf8*t349);+float t351 = (t348+t350);+float t352 = (t340/t343);+float t353 = (vf9*t352);+float t354 = (t351+t353);+bool t355 = (t354>=0);+float t356;+if(t355){+t356 = t354;+} else {+t356 = 0;+}+float t357 = (u8.u12*t356);+float t358 = (vf16/vf17);+float t359 = (t358*float(0.5));+float t360 = (t359+float(0.5));+vec4 t361 = vec4(vf6,vf7,vf8,vf9);+float t362 = (t331[0]-vf2);+float t363 = (t331[1]-vf3);+float t364 = (t331[2]-vf4);+float t365 = (t331[3]-vf5);+vec4 t366 = vec4(t362,t363,t364,t365);+vec4 t367 = normalize(t366);+vec4 t368 = vec4(t367[0],t367[1],t367[2],t367[3]);+float t369 = dot(t361,t368);+float t370 = (float(1.0)-t369);+float t371 = (float(5.0e-4)*t370);+bool t372 = (t371>=float(5.0e-5));+float t373;+if(t372){+t373 = t371;+} else {+t373 = float(5.0e-5);+}+float t374 = (t360-t373);+float t375 = (vf14/vf17);+float t376 = (t375*float(0.5));+float t377 = (t376+float(0.5));+float t378 = (0*t58);+float t379 = (t377+t378);+float t380 = (vf15/vf17);+float t381 = (t380*float(0.5));+float t382 = (t381+float(0.5));+float t383 = (0*t58);+float t384 = (t382+t383);+vec4 t385 = texture(s11,vec2(t379,t384));+bool t386 = (t374>t385.x);+float t387;+if(t386){+t387 = float(0.1);+} else {+t387 = float(1.0);+}+float t388 = (0+t387);+float t389 = (vf16/vf17);+float t390 = (t389*float(0.5));+float t391 = (t390+float(0.5));+vec4 t392 = vec4(vf6,vf7,vf8,vf9);+float t393 = (t331[0]-vf2);+float t394 = (t331[1]-vf3);+float t395 = (t331[2]-vf4);+float t396 = (t331[3]-vf5);+vec4 t397 = vec4(t393,t394,t395,t396);+vec4 t398 = normalize(t397);+vec4 t399 = vec4(t398[0],t398[1],t398[2],t398[3]);+float t400 = dot(t392,t399);+float t401 = (float(1.0)-t400);+float t402 = (float(5.0e-4)*t401);+bool t403 = (t402>=float(5.0e-5));+float t404;+if(t403){+t404 = t402;+} else {+t404 = float(5.0e-5);+}+float t405 = (t391-t404);+float t406 = (vf14/vf17);+float t407 = (t406*float(0.5));+float t408 = (t407+float(0.5));+float t409 = (t90*t58);+float t410 = (t408+t409);+float t411 = (vf15/vf17);+float t412 = (t411*float(0.5));+float t413 = (t412+float(0.5));+float t414 = (t90*t58);+float t415 = (t413+t414);+vec4 t416 = texture(s11,vec2(t410,t415));+bool t417 = (t405>t416.x);+float t418;+if(t417){+t418 = float(0.1);+} else {+t418 = float(1.0);+}+float t419 = (t388+t418);+float t420 = (vf16/vf17);+float t421 = (t420*float(0.5));+float t422 = (t421+float(0.5));+vec4 t423 = vec4(vf6,vf7,vf8,vf9);+float t424 = (t331[0]-vf2);+float t425 = (t331[1]-vf3);+float t426 = (t331[2]-vf4);+float t427 = (t331[3]-vf5);+vec4 t428 = vec4(t424,t425,t426,t427);+vec4 t429 = normalize(t428);+vec4 t430 = vec4(t429[0],t429[1],t429[2],t429[3]);+float t431 = dot(t423,t430);+float t432 = (float(1.0)-t431);+float t433 = (float(5.0e-4)*t432);+bool t434 = (t433>=float(5.0e-5));+float t435;+if(t434){+t435 = t433;+} else {+t435 = float(5.0e-5);+}+float t436 = (t422-t435);+float t437 = (vf14/vf17);+float t438 = (t437*float(0.5));+float t439 = (t438+float(0.5));+float t440 = (t122*t58);+float t441 = (t439+t440);+float t442 = (vf15/vf17);+float t443 = (t442*float(0.5));+float t444 = (t443+float(0.5));+float t445 = (0*t58);+float t446 = (t444+t445);+vec4 t447 = texture(s11,vec2(t441,t446));+bool t448 = (t436>t447.x);+float t449;+if(t448){+t449 = float(0.1);+} else {+t449 = float(1.0);+}+float t450 = (t419+t449);+float t451 = (vf16/vf17);+float t452 = (t451*float(0.5));+float t453 = (t452+float(0.5));+vec4 t454 = vec4(vf6,vf7,vf8,vf9);+float t455 = (t331[0]-vf2);+float t456 = (t331[1]-vf3);+float t457 = (t331[2]-vf4);+float t458 = (t331[3]-vf5);+vec4 t459 = vec4(t455,t456,t457,t458);+vec4 t460 = normalize(t459);+vec4 t461 = vec4(t460[0],t460[1],t460[2],t460[3]);+float t462 = dot(t454,t461);+float t463 = (float(1.0)-t462);+float t464 = (float(5.0e-4)*t463);+bool t465 = (t464>=float(5.0e-5));+float t466;+if(t465){+t466 = t464;+} else {+t466 = float(5.0e-5);+}+float t467 = (t453-t466);+float t468 = (vf14/vf17);+float t469 = (t468*float(0.5));+float t470 = (t469+float(0.5));+float t471 = (t154*t58);+float t472 = (t470+t471);+float t473 = (vf15/vf17);+float t474 = (t473*float(0.5));+float t475 = (t474+float(0.5));+float t476 = (1*t58);+float t477 = (t475+t476);+vec4 t478 = texture(s11,vec2(t472,t477));+bool t479 = (t467>t478.x);+float t480;+if(t479){+t480 = float(0.1);+} else {+t480 = float(1.0);+}+float t481 = (t450+t480);+float t482 = (vf16/vf17);+float t483 = (t482*float(0.5));+float t484 = (t483+float(0.5));+vec4 t485 = vec4(vf6,vf7,vf8,vf9);+float t486 = (t331[0]-vf2);+float t487 = (t331[1]-vf3);+float t488 = (t331[2]-vf4);+float t489 = (t331[3]-vf5);+vec4 t490 = vec4(t486,t487,t488,t489);+vec4 t491 = normalize(t490);+vec4 t492 = vec4(t491[0],t491[1],t491[2],t491[3]);+float t493 = dot(t485,t492);+float t494 = (float(1.0)-t493);+float t495 = (float(5.0e-4)*t494);+bool t496 = (t495>=float(5.0e-5));+float t497;+if(t496){+t497 = t495;+} else {+t497 = float(5.0e-5);+}+float t498 = (t484-t497);+float t499 = (vf14/vf17);+float t500 = (t499*float(0.5));+float t501 = (t500+float(0.5));+float t502 = (0*t58);+float t503 = (t501+t502);+float t504 = (vf15/vf17);+float t505 = (t504*float(0.5));+float t506 = (t505+float(0.5));+float t507 = (t191*t58);+float t508 = (t506+t507);+vec4 t509 = texture(s11,vec2(t503,t508));+bool t510 = (t498>t509.x);+float t511;+if(t510){+t511 = float(0.1);+} else {+t511 = float(1.0);+}+float t512 = (t481+t511);+float t513 = (vf16/vf17);+float t514 = (t513*float(0.5));+float t515 = (t514+float(0.5));+vec4 t516 = vec4(vf6,vf7,vf8,vf9);+float t517 = (t331[0]-vf2);+float t518 = (t331[1]-vf3);+float t519 = (t331[2]-vf4);+float t520 = (t331[3]-vf5);+vec4 t521 = vec4(t517,t518,t519,t520);+vec4 t522 = normalize(t521);+vec4 t523 = vec4(t522[0],t522[1],t522[2],t522[3]);+float t524 = dot(t516,t523);+float t525 = (float(1.0)-t524);+float t526 = (float(5.0e-4)*t525);+bool t527 = (t526>=float(5.0e-5));+float t528;+if(t527){+t528 = t526;+} else {+t528 = float(5.0e-5);+}+float t529 = (t515-t528);+float t530 = (vf14/vf17);+float t531 = (t530*float(0.5));+float t532 = (t531+float(0.5));+float t533 = (0*t58);+float t534 = (t532+t533);+float t535 = (vf15/vf17);+float t536 = (t535*float(0.5));+float t537 = (t536+float(0.5));+float t538 = (1*t58);+float t539 = (t537+t538);+vec4 t540 = texture(s11,vec2(t534,t539));+bool t541 = (t529>t540.x);+float t542;+if(t541){+t542 = float(0.1);+} else {+t542 = float(1.0);+}+float t543 = (t512+t542);+float t544 = (vf16/vf17);+float t545 = (t544*float(0.5));+float t546 = (t545+float(0.5));+vec4 t547 = vec4(vf6,vf7,vf8,vf9);+float t548 = (t331[0]-vf2);+float t549 = (t331[1]-vf3);+float t550 = (t331[2]-vf4);+float t551 = (t331[3]-vf5);+vec4 t552 = vec4(t548,t549,t550,t551);+vec4 t553 = normalize(t552);+vec4 t554 = vec4(t553[0],t553[1],t553[2],t553[3]);+float t555 = dot(t547,t554);+float t556 = (float(1.0)-t555);+float t557 = (float(5.0e-4)*t556);+bool t558 = (t557>=float(5.0e-5));+float t559;+if(t558){+t559 = t557;+} else {+t559 = float(5.0e-5);+}+float t560 = (t546-t559);+float t561 = (vf14/vf17);+float t562 = (t561*float(0.5));+float t563 = (t562+float(0.5));+float t564 = (1*t58);+float t565 = (t563+t564);+float t566 = (vf15/vf17);+float t567 = (t566*float(0.5));+float t568 = (t567+float(0.5));+float t569 = (t254*t58);+float t570 = (t568+t569);+vec4 t571 = texture(s11,vec2(t565,t570));+bool t572 = (t560>t571.x);+float t573;+if(t572){+t573 = float(0.1);+} else {+t573 = float(1.0);+}+float t574 = (t543+t573);+float t575 = (vf16/vf17);+float t576 = (t575*float(0.5));+float t577 = (t576+float(0.5));+vec4 t578 = vec4(vf6,vf7,vf8,vf9);+float t579 = (t331[0]-vf2);+float t580 = (t331[1]-vf3);+float t581 = (t331[2]-vf4);+float t582 = (t331[3]-vf5);+vec4 t583 = vec4(t579,t580,t581,t582);+vec4 t584 = normalize(t583);+vec4 t585 = vec4(t584[0],t584[1],t584[2],t584[3]);+float t586 = dot(t578,t585);+float t587 = (float(1.0)-t586);+float t588 = (float(5.0e-4)*t587);+bool t589 = (t588>=float(5.0e-5));+float t590;+if(t589){+t590 = t588;+} else {+t590 = float(5.0e-5);+}+float t591 = (t577-t590);+float t592 = (vf14/vf17);+float t593 = (t592*float(0.5));+float t594 = (t593+float(0.5));+float t595 = (1*t58);+float t596 = (t594+t595);+float t597 = (vf15/vf17);+float t598 = (t597*float(0.5));+float t599 = (t598+float(0.5));+float t600 = (0*t58);+float t601 = (t599+t600);+vec4 t602 = texture(s11,vec2(t596,t601));+bool t603 = (t591>t602.x);+float t604;+if(t603){+t604 = float(0.1);+} else {+t604 = float(1.0);+}+float t605 = (t574+t604);+float t606 = (vf16/vf17);+float t607 = (t606*float(0.5));+float t608 = (t607+float(0.5));+vec4 t609 = vec4(vf6,vf7,vf8,vf9);+float t610 = (t331[0]-vf2);+float t611 = (t331[1]-vf3);+float t612 = (t331[2]-vf4);+float t613 = (t331[3]-vf5);+vec4 t614 = vec4(t610,t611,t612,t613);+vec4 t615 = normalize(t614);+vec4 t616 = vec4(t615[0],t615[1],t615[2],t615[3]);+float t617 = dot(t609,t616);+float t618 = (float(1.0)-t617);+float t619 = (float(5.0e-4)*t618);+bool t620 = (t619>=float(5.0e-5));+float t621;+if(t620){+t621 = t619;+} else {+t621 = float(5.0e-5);+}+float t622 = (t608-t621);+float t623 = (vf14/vf17);+float t624 = (t623*float(0.5));+float t625 = (t624+float(0.5));+float t626 = (1*t58);+float t627 = (t625+t626);+float t628 = (vf15/vf17);+float t629 = (t628*float(0.5));+float t630 = (t629+float(0.5));+float t631 = (1*t58);+float t632 = (t630+t631);+vec4 t633 = texture(s11,vec2(t627,t632));+bool t634 = (t622>t633.x);+float t635;+if(t634){+t635 = float(0.1);+} else {+t635 = float(1.0);+}+float t636 = (t605+t635);+float t637 = (t636/9);+float t638 = (t357*t637);+float t639 = (0+0);+float t640 = (0+t639);+float t641 = (0+t640);+float t642 = (0+t641);+float t643 = (0+t642);+float t644 = (0+t643);+float t645 = (0+t644);+float t646 = (t638+t645);+float t647 = (t324+t646);+float t648 = (u5.u24*t647);+float t649 = (vf0/100000);+float t650 = (vf1/100000);+vec4 t651 = texture(s12,vec2(t649,t650));+float t652 = (u6.u12*t651.x);+float t653 = (t648*t652);+float t654 = (u7.u16*t36);+float t655 = (t654*t323);+float t656 = (u8.u16*t356);+float t657 = (t656*t637);+float t658 = (0+0);+float t659 = (0+t658);+float t660 = (0+t659);+float t661 = (0+t660);+float t662 = (0+t661);+float t663 = (0+t662);+float t664 = (0+t663);+float t665 = (t657+t664);+float t666 = (t655+t665);+float t667 = (u5.u24*t666);+float t668 = (u6.u16*t651.x);+float t669 = (t667*t668);+float t670 = (u7.u20*t36);+float t671 = (t670*t323);+float t672 = (u8.u20*t356);+float t673 = (t672*t637);+float t674 = (0+0);+float t675 = (0+t674);+float t676 = (0+t675);+float t677 = (0+t676);+float t678 = (0+t677);+float t679 = (0+t678);+float t680 = (0+t679);+float t681 = (t673+t680);+float t682 = (t671+t681);+float t683 = (u5.u24*t682);+float t684 = (u6.u20*t651.x);+float t685 = (t683*t684);+out0 = vec4(t653,t669,t685,1);+vec3 t686 = vec3(t653,t669,t685);+vec3 t687 = vec3(float(0.2126),float(0.7152),float(7.22e-2));+float t688 = dot(t686,t687);+bool t689 = (t688>float(1.0));+float t690;+float t691;+float t692;+if(t689){+t690 = t653;+t691 = t669;+t692 = t685;+} else {+t690 = 0;+t691 = 0;+t692 = 0;+}+out1 = vec4(t690,t691,t692,1);+gl_FragDepth = gl_FragCoord[2];+}
+ test/data/large-shaders/lambdacnc.vert view
@@ -0,0 +1,757 @@+#version 450+out float vf0;+out float vf1;+out float vf2;+out float vf3;+out float vf4;+out float vf5;+out float vf6;+out float vf7;+out float vf8;+out float vf9;+out float vf10;+out float vf11;+out float vf12;+out float vf13;+out float vf14;+out float vf15;+out float vf16;+out float vf17;+layout(std140) uniform uBlock1 {+float u0;+float u4;+float u8;+float u12;+float u16;+float u20;+float u24;+} u1;+layout(std140) uniform uBlock2 {+float u0;+float u4;+float u8;+float u12;+float u16;+float u20;+float u24;+float u28;+} u2;+layout(std140) uniform uBlock3 {+float u0;+float u4;+float u8;+float u12;+float u16;+float u20;+} u3;+layout(std140) uniform uBlock4 {+float u0;+float u4;+float u8;+float u12;+float u16;+float u20;+} u4;+in vec3 in0;+in vec3 in1;+void main() {+vec3 t0 = in0;+vf0 = t0.x;+vf1 = t0.y;+float t1 = (t0.x+u2.u0);+float t2 = (t0.y+u2.u4);+float t3 = (t0.z+u2.u8);+float t4 = (1+0);+vec4 t5 = vec4(t1,t2,t3,t4);+float t6 = (3.1415927/2);+float t7 = cos(t6);+float t8 = sin(t6);+float t9 = (-t8);+vec4 t10 = vec4(t7,t9,0,0);+vec4 t11 = vec4(t8,t7,0,0);+vec4 t12 = vec4(0,0,1,0);+vec4 t13 = vec4(0,0,0,1);+mat4x4 t14 = mat4x4(t10,t11,t12,t13);+vec4 t15 = (t5*t14);+vf2 = t15[0];+vf3 = t15[1];+vf4 = t15[2];+vf5 = t15[3];+vec3 t16 = in1;+vec4 t17 = vec4(t16.x,t16.y,t16.z,1);+vec4 t18 = vec4(t7,t9,0,0);+vec4 t19 = vec4(t8,t7,0,0);+vec4 t20 = vec4(0,0,1,0);+vec4 t21 = vec4(0,0,0,1);+mat4x4 t22 = mat4x4(t18,t19,t20,t21);+vec4 t23 = (t17*t22);+vf6 = t23[0];+vf7 = t23[1];+vf8 = t23[2];+vf9 = t23[3];+vec4 t24 = vec4(t15[0],t15[1],t15[2],t15[3]);+float t25 = (-80000);+float t26 = (t25-80000);+float t27 = (1/t26);+float t28 = (2*t27);+float t29 = (-t28);+vec4 t30 = vec4(u3.u0,u3.u4,u3.u8,1);+float t31 = (u1.u0/2);+float t32 = cos(t31);+float t33 = sin(t31);+float t34 = (-t33);+vec4 t35 = vec4(t32,t34,0,0);+float t36 = sin(t31);+vec4 t37 = vec4(t36,t32,0,0);+vec4 t38 = vec4(0,0,1,0);+vec4 t39 = vec4(0,0,0,1);+mat4x4 t40 = mat4x4(t35,t37,t38,t39);+vec4 t41 = (t30*t40);+float t42 = (0-t41[1]);+float t43 = (0-t41[0]);+float t44 = (t43*t43);+float t45 = (t42*t42);+float t46 = (t44+t45);+float t47 = (0-t41[2]);+float t48 = (t47*t47);+float t49 = (t46+t48);+float t50 = sqrt(t49);+float t51 = (t42/t50);+float t52 = (t51*1);+float t53 = (t47/t50);+float t54 = (t53*0);+float t55 = (t52-t54);+float t56 = (t55*t55);+float t57 = (t53*0);+float t58 = (t43/t50);+float t59 = (t58*1);+float t60 = (t57-t59);+float t61 = (t60*t60);+float t62 = (t56+t61);+float t63 = (t58*0);+float t64 = (t51*0);+float t65 = (t63-t64);+float t66 = (t65*t65);+float t67 = (t62+t66);+float t68 = sqrt(t67);+float t69 = (t55/t68);+float t70 = (t29*t69);+float t71 = (0+t70);+float t72 = (t60/t68);+float t73 = (t72*t53);+float t74 = (t65/t68);+float t75 = (t74*t51);+float t76 = (t73-t75);+float t77 = (0*t76);+float t78 = (t71+t77);+float t79 = (-t58);+float t80 = (0*t79);+float t81 = (t78+t80);+float t82 = (80000+t25);+float t83 = (t82*t27);+float t84 = (t83*0);+float t85 = (t81+t84);+float t86 = (t29*t72);+float t87 = (0+t86);+float t88 = (t74*t58);+float t89 = (t69*t53);+float t90 = (t88-t89);+float t91 = (0*t90);+float t92 = (t87+t91);+float t93 = (-t51);+float t94 = (0*t93);+float t95 = (t92+t94);+float t96 = (t83*0);+float t97 = (t95+t96);+float t98 = (t29*t74);+float t99 = (0+t98);+float t100 = (t69*t51);+float t101 = (t72*t58);+float t102 = (t100-t101);+float t103 = (0*t102);+float t104 = (t99+t103);+float t105 = (-t53);+float t106 = (0*t105);+float t107 = (t104+t106);+float t108 = (t83*0);+float t109 = (t107+t108);+float t110 = (t69*t41[0]);+float t111 = (t72*t41[1]);+float t112 = (t110+t111);+float t113 = (t74*t41[2]);+float t114 = (t112+t113);+float t115 = (-t114);+float t116 = (t29*t115);+float t117 = (0+t116);+float t118 = (t76*t41[0]);+float t119 = (t90*t41[1]);+float t120 = (t118+t119);+float t121 = (t102*t41[2]);+float t122 = (t120+t121);+float t123 = (-t122);+float t124 = (0*t123);+float t125 = (t117+t124);+float t126 = (t58*t41[0]);+float t127 = (t51*t41[1]);+float t128 = (t126+t127);+float t129 = (t53*t41[2]);+float t130 = (t128+t129);+float t131 = (0*t130);+float t132 = (t125+t131);+float t133 = (t83*1);+float t134 = (t132+t133);+vec4 t135 = vec4(t85,t97,t109,t134);+float t136 = (0*t69);+float t137 = (0+t136);+float t138 = (-50000);+float t139 = (t138-50000);+float t140 = (1/t139);+float t141 = (2*t140);+float t142 = (-t141);+float t143 = (t142*t76);+float t144 = (t137+t143);+float t145 = (0*t79);+float t146 = (t144+t145);+float t147 = (50000+t138);+float t148 = (t147*t140);+float t149 = (t148*0);+float t150 = (t146+t149);+float t151 = (0*t72);+float t152 = (0+t151);+float t153 = (t142*t90);+float t154 = (t152+t153);+float t155 = (0*t93);+float t156 = (t154+t155);+float t157 = (t148*0);+float t158 = (t156+t157);+float t159 = (0*t74);+float t160 = (0+t159);+float t161 = (t142*t102);+float t162 = (t160+t161);+float t163 = (0*t105);+float t164 = (t162+t163);+float t165 = (t148*0);+float t166 = (t164+t165);+float t167 = (0*t115);+float t168 = (0+t167);+float t169 = (t142*t123);+float t170 = (t168+t169);+float t171 = (0*t130);+float t172 = (t170+t171);+float t173 = (t148*1);+float t174 = (t172+t173);+vec4 t175 = vec4(t150,t158,t166,t174);+float t176 = (0*t69);+float t177 = (0+t176);+float t178 = (0*t76);+float t179 = (t177+t178);+float t180 = (3000-350000);+float t181 = (1/t180);+float t182 = (2*t181);+float t183 = (t182*t79);+float t184 = (t179+t183);+float t185 = (350000+3000);+float t186 = (t185*t181);+float t187 = (t186*0);+float t188 = (t184+t187);+float t189 = (0*t72);+float t190 = (0+t189);+float t191 = (0*t90);+float t192 = (t190+t191);+float t193 = (t182*t93);+float t194 = (t192+t193);+float t195 = (t186*0);+float t196 = (t194+t195);+float t197 = (0*t74);+float t198 = (0+t197);+float t199 = (0*t102);+float t200 = (t198+t199);+float t201 = (t182*t105);+float t202 = (t200+t201);+float t203 = (t186*0);+float t204 = (t202+t203);+float t205 = (0*t115);+float t206 = (0+t205);+float t207 = (0*t123);+float t208 = (t206+t207);+float t209 = (t182*t130);+float t210 = (t208+t209);+float t211 = (t186*1);+float t212 = (t210+t211);+vec4 t213 = vec4(t188,t196,t204,t212);+float t214 = (0*t69);+float t215 = (0+t214);+float t216 = (0*t76);+float t217 = (t215+t216);+float t218 = (0*t79);+float t219 = (t217+t218);+float t220 = (1*0);+float t221 = (t219+t220);+float t222 = (0*t72);+float t223 = (0+t222);+float t224 = (0*t90);+float t225 = (t223+t224);+float t226 = (0*t93);+float t227 = (t225+t226);+float t228 = (1*0);+float t229 = (t227+t228);+float t230 = (0*t74);+float t231 = (0+t230);+float t232 = (0*t102);+float t233 = (t231+t232);+float t234 = (0*t105);+float t235 = (t233+t234);+float t236 = (1*0);+float t237 = (t235+t236);+float t238 = (0*t115);+float t239 = (0+t238);+float t240 = (0*t123);+float t241 = (t239+t240);+float t242 = (0*t130);+float t243 = (t241+t242);+float t244 = (1*1);+float t245 = (t243+t244);+vec4 t246 = vec4(t221,t229,t237,t245);+mat4x4 t247 = mat4x4(t135,t175,t213,t246);+vec4 t248 = (t24*t247);+vf10 = t248[0];+vf11 = t248[1];+vf12 = t248[2];+vf13 = t248[3];+vec4 t249 = vec4(t15[0],t15[1],t15[2],t15[3]);+float t250 = (-80000);+float t251 = (t250-80000);+float t252 = (1/t251);+float t253 = (2*t252);+float t254 = (-t253);+vec4 t255 = vec4(u4.u0,u4.u4,u4.u8,1);+vec4 t256 = vec4(t32,t34,0,0);+vec4 t257 = vec4(t36,t32,0,0);+vec4 t258 = vec4(0,0,1,0);+vec4 t259 = vec4(0,0,0,1);+mat4x4 t260 = mat4x4(t256,t257,t258,t259);+vec4 t261 = (t255*t260);+float t262 = (0-t261[1]);+float t263 = (0-t261[0]);+float t264 = (t263*t263);+float t265 = (t262*t262);+float t266 = (t264+t265);+float t267 = (0-t261[2]);+float t268 = (t267*t267);+float t269 = (t266+t268);+float t270 = sqrt(t269);+float t271 = (t262/t270);+float t272 = (t271*1);+float t273 = (t267/t270);+float t274 = (t273*0);+float t275 = (t272-t274);+float t276 = (t275*t275);+float t277 = (t273*0);+float t278 = (t263/t270);+float t279 = (t278*1);+float t280 = (t277-t279);+float t281 = (t280*t280);+float t282 = (t276+t281);+float t283 = (t278*0);+float t284 = (t271*0);+float t285 = (t283-t284);+float t286 = (t285*t285);+float t287 = (t282+t286);+float t288 = sqrt(t287);+float t289 = (t275/t288);+float t290 = (t254*t289);+float t291 = (0+t290);+float t292 = (t280/t288);+float t293 = (t292*t273);+float t294 = (t285/t288);+float t295 = (t294*t271);+float t296 = (t293-t295);+float t297 = (0*t296);+float t298 = (t291+t297);+float t299 = (-t278);+float t300 = (0*t299);+float t301 = (t298+t300);+float t302 = (80000+t250);+float t303 = (t302*t252);+float t304 = (t303*0);+float t305 = (t301+t304);+float t306 = (t254*t292);+float t307 = (0+t306);+float t308 = (t294*t278);+float t309 = (t289*t273);+float t310 = (t308-t309);+float t311 = (0*t310);+float t312 = (t307+t311);+float t313 = (-t271);+float t314 = (0*t313);+float t315 = (t312+t314);+float t316 = (t303*0);+float t317 = (t315+t316);+float t318 = (t254*t294);+float t319 = (0+t318);+float t320 = (t289*t271);+float t321 = (t292*t278);+float t322 = (t320-t321);+float t323 = (0*t322);+float t324 = (t319+t323);+float t325 = (-t273);+float t326 = (0*t325);+float t327 = (t324+t326);+float t328 = (t303*0);+float t329 = (t327+t328);+float t330 = (t289*t261[0]);+float t331 = (t292*t261[1]);+float t332 = (t330+t331);+float t333 = (t294*t261[2]);+float t334 = (t332+t333);+float t335 = (-t334);+float t336 = (t254*t335);+float t337 = (0+t336);+float t338 = (t296*t261[0]);+float t339 = (t310*t261[1]);+float t340 = (t338+t339);+float t341 = (t322*t261[2]);+float t342 = (t340+t341);+float t343 = (-t342);+float t344 = (0*t343);+float t345 = (t337+t344);+float t346 = (t278*t261[0]);+float t347 = (t271*t261[1]);+float t348 = (t346+t347);+float t349 = (t273*t261[2]);+float t350 = (t348+t349);+float t351 = (0*t350);+float t352 = (t345+t351);+float t353 = (t303*1);+float t354 = (t352+t353);+vec4 t355 = vec4(t305,t317,t329,t354);+float t356 = (0*t289);+float t357 = (0+t356);+float t358 = (-50000);+float t359 = (t358-50000);+float t360 = (1/t359);+float t361 = (2*t360);+float t362 = (-t361);+float t363 = (t362*t296);+float t364 = (t357+t363);+float t365 = (0*t299);+float t366 = (t364+t365);+float t367 = (50000+t358);+float t368 = (t367*t360);+float t369 = (t368*0);+float t370 = (t366+t369);+float t371 = (0*t292);+float t372 = (0+t371);+float t373 = (t362*t310);+float t374 = (t372+t373);+float t375 = (0*t313);+float t376 = (t374+t375);+float t377 = (t368*0);+float t378 = (t376+t377);+float t379 = (0*t294);+float t380 = (0+t379);+float t381 = (t362*t322);+float t382 = (t380+t381);+float t383 = (0*t325);+float t384 = (t382+t383);+float t385 = (t368*0);+float t386 = (t384+t385);+float t387 = (0*t335);+float t388 = (0+t387);+float t389 = (t362*t343);+float t390 = (t388+t389);+float t391 = (0*t350);+float t392 = (t390+t391);+float t393 = (t368*1);+float t394 = (t392+t393);+vec4 t395 = vec4(t370,t378,t386,t394);+float t396 = (0*t289);+float t397 = (0+t396);+float t398 = (0*t296);+float t399 = (t397+t398);+float t400 = (3000-350000);+float t401 = (1/t400);+float t402 = (2*t401);+float t403 = (t402*t299);+float t404 = (t399+t403);+float t405 = (350000+3000);+float t406 = (t405*t401);+float t407 = (t406*0);+float t408 = (t404+t407);+float t409 = (0*t292);+float t410 = (0+t409);+float t411 = (0*t310);+float t412 = (t410+t411);+float t413 = (t402*t313);+float t414 = (t412+t413);+float t415 = (t406*0);+float t416 = (t414+t415);+float t417 = (0*t294);+float t418 = (0+t417);+float t419 = (0*t322);+float t420 = (t418+t419);+float t421 = (t402*t325);+float t422 = (t420+t421);+float t423 = (t406*0);+float t424 = (t422+t423);+float t425 = (0*t335);+float t426 = (0+t425);+float t427 = (0*t343);+float t428 = (t426+t427);+float t429 = (t402*t350);+float t430 = (t428+t429);+float t431 = (t406*1);+float t432 = (t430+t431);+vec4 t433 = vec4(t408,t416,t424,t432);+float t434 = (0*t289);+float t435 = (0+t434);+float t436 = (0*t296);+float t437 = (t435+t436);+float t438 = (0*t299);+float t439 = (t437+t438);+float t440 = (1*0);+float t441 = (t439+t440);+float t442 = (0*t292);+float t443 = (0+t442);+float t444 = (0*t310);+float t445 = (t443+t444);+float t446 = (0*t313);+float t447 = (t445+t446);+float t448 = (1*0);+float t449 = (t447+t448);+float t450 = (0*t294);+float t451 = (0+t450);+float t452 = (0*t322);+float t453 = (t451+t452);+float t454 = (0*t325);+float t455 = (t453+t454);+float t456 = (1*0);+float t457 = (t455+t456);+float t458 = (0*t335);+float t459 = (0+t458);+float t460 = (0*t343);+float t461 = (t459+t460);+float t462 = (0*t350);+float t463 = (t461+t462);+float t464 = (1*1);+float t465 = (t463+t464);+vec4 t466 = vec4(t441,t449,t457,t465);+mat4x4 t467 = mat4x4(t355,t395,t433,t466);+vec4 t468 = (t249*t467);+vf14 = t468[0];+vf15 = t468[1];+vf16 = t468[2];+vf17 = t468[3];+vec4 t469 = vec4(t15[0],t15[1],t15[2],t15[3]);+float t470 = (u1.u4/u1.u8);+float t471 = (30*3.1415927);+float t472 = (t471/180);+float t473 = (t472/2);+float t474 = tan(t473);+float t475 = (t470*t474);+float t476 = (1/t475);+float t477 = (0-u1.u16);+float t478 = (0-u1.u12);+float t479 = (t478*t478);+float t480 = (t477*t477);+float t481 = (t479+t480);+float t482 = (10000-u1.u20);+float t483 = (t482*t482);+float t484 = (t481+t483);+float t485 = sqrt(t484);+float t486 = (t477/t485);+float t487 = (t486*1);+float t488 = (t482/t485);+float t489 = (t488*0);+float t490 = (t487-t489);+float t491 = (t490*t490);+float t492 = (t488*0);+float t493 = (t478/t485);+float t494 = (t493*1);+float t495 = (t492-t494);+float t496 = (t495*t495);+float t497 = (t491+t496);+float t498 = (t493*0);+float t499 = (t486*0);+float t500 = (t498-t499);+float t501 = (t500*t500);+float t502 = (t497+t501);+float t503 = sqrt(t502);+float t504 = (t490/t503);+float t505 = (t476*t504);+float t506 = (0+t505);+float t507 = (t495/t503);+float t508 = (t507*t488);+float t509 = (t500/t503);+float t510 = (t509*t486);+float t511 = (t508-t510);+float t512 = (0*t511);+float t513 = (t506+t512);+float t514 = (-t493);+float t515 = (0*t514);+float t516 = (t513+t515);+float t517 = (0*0);+float t518 = (t516+t517);+float t519 = (t476*t507);+float t520 = (0+t519);+float t521 = (t509*t493);+float t522 = (t504*t488);+float t523 = (t521-t522);+float t524 = (0*t523);+float t525 = (t520+t524);+float t526 = (-t486);+float t527 = (0*t526);+float t528 = (t525+t527);+float t529 = (0*0);+float t530 = (t528+t529);+float t531 = (t476*t509);+float t532 = (0+t531);+float t533 = (t504*t486);+float t534 = (t507*t493);+float t535 = (t533-t534);+float t536 = (0*t535);+float t537 = (t532+t536);+float t538 = (-t488);+float t539 = (0*t538);+float t540 = (t537+t539);+float t541 = (0*0);+float t542 = (t540+t541);+float t543 = (t504*u1.u12);+float t544 = (t507*u1.u16);+float t545 = (t543+t544);+float t546 = (t509*u1.u20);+float t547 = (t545+t546);+float t548 = (-t547);+float t549 = (t476*t548);+float t550 = (0+t549);+float t551 = (t511*u1.u12);+float t552 = (t523*u1.u16);+float t553 = (t551+t552);+float t554 = (t535*u1.u20);+float t555 = (t553+t554);+float t556 = (-t555);+float t557 = (0*t556);+float t558 = (t550+t557);+float t559 = (t493*u1.u12);+float t560 = (t486*u1.u16);+float t561 = (t559+t560);+float t562 = (t488*u1.u20);+float t563 = (t561+t562);+float t564 = (0*t563);+float t565 = (t558+t564);+float t566 = (0*1);+float t567 = (t565+t566);+vec4 t568 = vec4(t518,t530,t542,t567);+float t569 = (0*t504);+float t570 = (0+t569);+float t571 = (1/t474);+float t572 = (t571*t511);+float t573 = (t570+t572);+float t574 = (0*t514);+float t575 = (t573+t574);+float t576 = (0*0);+float t577 = (t575+t576);+float t578 = (0*t507);+float t579 = (0+t578);+float t580 = (t571*t523);+float t581 = (t579+t580);+float t582 = (0*t526);+float t583 = (t581+t582);+float t584 = (0*0);+float t585 = (t583+t584);+float t586 = (0*t509);+float t587 = (0+t586);+float t588 = (t571*t535);+float t589 = (t587+t588);+float t590 = (0*t538);+float t591 = (t589+t590);+float t592 = (0*0);+float t593 = (t591+t592);+float t594 = (0*t548);+float t595 = (0+t594);+float t596 = (t571*t556);+float t597 = (t595+t596);+float t598 = (0*t563);+float t599 = (t597+t598);+float t600 = (0*1);+float t601 = (t599+t600);+vec4 t602 = vec4(t577,t585,t593,t601);+float t603 = (0*t504);+float t604 = (0+t603);+float t605 = (0*t511);+float t606 = (t604+t605);+float t607 = (350000+3000);+float t608 = (350000-3000);+float t609 = (t607/t608);+float t610 = (-t609);+float t611 = (t610*t514);+float t612 = (t606+t611);+float t613 = (float(0.5)/350000);+float t614 = (float(0.5)/3000);+float t615 = (t613-t614);+float t616 = (1/t615);+float t617 = (t616*0);+float t618 = (t612+t617);+float t619 = (0*t507);+float t620 = (0+t619);+float t621 = (0*t523);+float t622 = (t620+t621);+float t623 = (t610*t526);+float t624 = (t622+t623);+float t625 = (t616*0);+float t626 = (t624+t625);+float t627 = (0*t509);+float t628 = (0+t627);+float t629 = (0*t535);+float t630 = (t628+t629);+float t631 = (t610*t538);+float t632 = (t630+t631);+float t633 = (t616*0);+float t634 = (t632+t633);+float t635 = (0*t548);+float t636 = (0+t635);+float t637 = (0*t556);+float t638 = (t636+t637);+float t639 = (t610*t563);+float t640 = (t638+t639);+float t641 = (t616*1);+float t642 = (t640+t641);+vec4 t643 = vec4(t618,t626,t634,t642);+float t644 = (0*t504);+float t645 = (0+t644);+float t646 = (0*t511);+float t647 = (t645+t646);+float t648 = (-1);+float t649 = (t648*t514);+float t650 = (t647+t649);+float t651 = (0*0);+float t652 = (t650+t651);+float t653 = (0*t507);+float t654 = (0+t653);+float t655 = (0*t523);+float t656 = (t654+t655);+float t657 = (t648*t526);+float t658 = (t656+t657);+float t659 = (0*0);+float t660 = (t658+t659);+float t661 = (0*t509);+float t662 = (0+t661);+float t663 = (0*t535);+float t664 = (t662+t663);+float t665 = (t648*t538);+float t666 = (t664+t665);+float t667 = (0*0);+float t668 = (t666+t667);+float t669 = (0*t548);+float t670 = (0+t669);+float t671 = (0*t556);+float t672 = (t670+t671);+float t673 = (t648*t563);+float t674 = (t672+t673);+float t675 = (0*1);+float t676 = (t674+t675);+vec4 t677 = vec4(t652,t660,t668,t676);+mat4x4 t678 = mat4x4(t568,t602,t643,t677);+vec4 t679 = (t469*t678);+gl_Position = vec4(t679[0],t679[1],t679[2],t679[3]);+}
+ test/data/large-shaders/small.vert view
@@ -0,0 +1,31 @@+#version 450+out float vf0;+out float vf1;+layout(std140) uniform uBlock1 {+float u0;+float u4;+float u8;+float u12;+float u16;+float u20;+float u24;+float u28;+} u1;+in vec2 in0;+void main() {+vec2 t0 = in0;+float t1 = (t0.x+1);+float t2 = (t1/2);+vf0 = t2;+float t3 = (t0.y+1);+float t4 = (t3/2);+vf1 = t4;+float t5 = (t0.x*u1.u28);+float t6 = (1-u1.u28);+float t7 = (t5-t6);+float t8 = (t7+u1.u0);+float t9 = (t0.y*u1.u28);+float t10 = (t9-t6);+float t11 = (t10+u1.u4);+gl_Position = vec4(t8,t11,0,1);+}
+ test/data/large-shaders/xax.frag view
@@ -0,0 +1,15683 @@+#version 450+layout(location = 0) out vec4 out0;+layout(std140) uniform uBlock4 {+float u0;+} u4;+layout(std140) uniform uBlock6 {+float u0;+} u6;+layout(std140) uniform uBlock8 {+float u0;+} u8;+in float vf0;+in float vf1;+in float vf2;+void main() {+float t0 = (0*0);+float t1 = (1-0);+float t2 = (float(0.7)*t1);+float t3 = (t0+t2);+float t4 = (vf0*vf0);+float t5 = (vf2*vf2);+float t6 = (t4+t5);+float t7 = sqrt(t6);+float t8 = atan(t7,vf1);+float t9 = (3.1415927/2);+float t10 = (t8-t9);+float t11 = (float(22.4)/180);+float t12 = (t11*3.1415927);+float t13 = (t12/2);+float t14 = sin(t13);+float t15 = sin(t12);+float t16 = (1*t15);+float t17 = cos(0);+float t18 = (t16*t17);+float t19 = (t18*0);+float t20 = sin(t12);+float t21 = (1*t20);+float t22 = sin(0);+float t23 = (t21*t22);+float t24 = (t23*0);+float t25 = (t19-t24);+float t26 = cos(t12);+float t27 = (1*t26);+float t28 = (t27*0);+float t29 = (t18*1);+float t30 = (t28-t29);+float t31 = (t30*t30);+float t32 = (t25*t25);+float t33 = (t31+t32);+float t34 = (t23*1);+float t35 = (t27*0);+float t36 = (t34-t35);+float t37 = (t36*t36);+float t38 = (t33+t37);+float t39 = sqrt(t38);+float t40 = (t25/t39);+float t41 = (t14*t40);+float t42 = (t41*t41);+float t43 = (t36/t39);+float t44 = (t14*t43);+float t45 = (t44*t44);+float t46 = (t42+t45);+float t47 = (2*t46);+float t48 = (1-t47);+float t49 = (float(27.4)*840);+float t50 = (u4.u0/t49);+float t51 = (t50*3.1415927);+float t52 = (t51*2);+float t53 = sin(t52);+float t54 = (t53*float(2.5e-3));+float t55 = (t48*t54);+float t56 = (t30/t39);+float t57 = (t14*t56);+float t58 = (t57*t41);+float t59 = cos(t13);+float t60 = (t44*t59);+float t61 = (t58-t60);+float t62 = (2*t61);+float t63 = (t62*0);+float t64 = (t55+t63);+float t65 = (t57*t44);+float t66 = (t41*t59);+float t67 = (t65+t66);+float t68 = (2*t67);+float t69 = (u4.u0/t49);+float t70 = (t69*3.1415927);+float t71 = (t70*2);+float t72 = cos(t71);+float t73 = (t72*float(2.5e-3));+float t74 = (t68*t73);+float t75 = (t64+t74);+float t76 = (t75*t75);+float t77 = (t65-t66);+float t78 = (2*t77);+float t79 = (t78*t54);+float t80 = (t41*t44);+float t81 = (t57*t59);+float t82 = (t80+t81);+float t83 = (2*t82);+float t84 = (t83*0);+float t85 = (t79+t84);+float t86 = (t57*t57);+float t87 = (t86+t42);+float t88 = (2*t87);+float t89 = (1-t88);+float t90 = (t89*t73);+float t91 = (t85+t90);+float t92 = (t91*t91);+float t93 = (t76+t92);+float t94 = sqrt(t93);+float t95 = (t58+t60);+float t96 = (2*t95);+float t97 = (t96*t54);+float t98 = (t86+t45);+float t99 = (2*t98);+float t100 = (1-t99);+float t101 = (t100*0);+float t102 = (t97+t101);+float t103 = (t80-t81);+float t104 = (2*t103);+float t105 = (t104*t73);+float t106 = (t102+t105);+float t107 = atan(t94,t106);+float t108 = (3.1415927/2);+float t109 = (t107-t108);+float t110 = (t10-t109);+float t111 = abs(t110);+float t112 = (t111/2);+float t113 = sin(t112);+float t114 = (t113*t113);+float t115 = cos(t109);+float t116 = cos(t10);+float t117 = (t115*t116);+float t118 = atan(vf0,vf2);+float t119 = (t118+3.1415927);+float t120 = (3.1415927*2);+float t121 = mod(t119,t120);+float t122 = (t121-3.1415927);+float t123 = atan(t75,t91);+float t124 = (t123+3.1415927);+float t125 = (3.1415927*2);+float t126 = mod(t124,t125);+float t127 = (t126-3.1415927);+float t128 = (t122-t127);+float t129 = abs(t128);+float t130 = (t129/2);+float t131 = sin(t130);+float t132 = (t131*t131);+float t133 = (t117*t132);+float t134 = (t114+t133);+float t135 = sqrt(t134);+float t136 = asin(t135);+float t137 = (2*t136);+float t138 = (t75*t75);+float t139 = (t106*t106);+float t140 = (t138+t139);+float t141 = (t91*t91);+float t142 = (t140+t141);+float t143 = sqrt(t142);+float t144 = (t143*float(1.4959787e8));+float t145 = (2*t144);+float t146 = (float(3474.4)/t145);+float t147 = asin(t146);+float t148 = (2*t147);+float t149 = (t148*4);+float t150 = (t137/t149);+float t151 = smoothstep(float(0.95),1,t150);+float t152 = (1-t151);+float t153 = (1-t152);+float t154 = (t153*0);+float t155 = (t152+t154);+float t156 = (t3*t155);+float t157 = (t12/2);+float t158 = sin(t157);+float t159 = sin(t12);+float t160 = (1*t159);+float t161 = cos(0);+float t162 = (t160*t161);+float t163 = (t162*0);+float t164 = sin(t12);+float t165 = (1*t164);+float t166 = sin(0);+float t167 = (t165*t166);+float t168 = (t167*0);+float t169 = (t163-t168);+float t170 = cos(t12);+float t171 = (1*t170);+float t172 = (t171*0);+float t173 = (t162*1);+float t174 = (t172-t173);+float t175 = (t174*t174);+float t176 = (t169*t169);+float t177 = (t175+t176);+float t178 = (t167*1);+float t179 = (t171*0);+float t180 = (t178-t179);+float t181 = (t180*t180);+float t182 = (t177+t181);+float t183 = sqrt(t182);+float t184 = (t169/t183);+float t185 = (t158*t184);+float t186 = (t185*t185);+float t187 = (t180/t183);+float t188 = (t158*t187);+float t189 = (t188*t188);+float t190 = (t186+t189);+float t191 = (2*t190);+float t192 = (1-t191);+float t193 = (365*840);+float t194 = (u4.u0/t193);+float t195 = (t194*3.1415927);+float t196 = (t195*2);+float t197 = sin(t196);+float t198 = (t197*1);+float t199 = (-1);+float t200 = (t198*t199);+float t201 = (t192*t200);+float t202 = (t174/t183);+float t203 = (t158*t202);+float t204 = (t203*t185);+float t205 = cos(t157);+float t206 = (t188*t205);+float t207 = (t204-t206);+float t208 = (2*t207);+float t209 = (t208*0);+float t210 = (t201+t209);+float t211 = (t203*t188);+float t212 = (t185*t205);+float t213 = (t211+t212);+float t214 = (2*t213);+float t215 = (u4.u0/t193);+float t216 = (t215*3.1415927);+float t217 = (t216*2);+float t218 = cos(t217);+float t219 = (t218*1);+float t220 = (t219*t199);+float t221 = (t214*t220);+float t222 = (t210+t221);+float t223 = (t222*t222);+float t224 = (t211-t212);+float t225 = (2*t224);+float t226 = (t225*t200);+float t227 = (t185*t188);+float t228 = (t203*t205);+float t229 = (t227+t228);+float t230 = (2*t229);+float t231 = (t230*0);+float t232 = (t226+t231);+float t233 = (t203*t203);+float t234 = (t233+t186);+float t235 = (2*t234);+float t236 = (1-t235);+float t237 = (t236*t220);+float t238 = (t232+t237);+float t239 = (t238*t238);+float t240 = (t223+t239);+float t241 = sqrt(t240);+float t242 = (t204+t206);+float t243 = (2*t242);+float t244 = (t243*t200);+float t245 = (t233+t189);+float t246 = (2*t245);+float t247 = (1-t246);+float t248 = (t247*0);+float t249 = (t244+t248);+float t250 = (t227-t228);+float t251 = (2*t250);+float t252 = (t251*t220);+float t253 = (t249+t252);+float t254 = atan(t241,t253);+float t255 = (3.1415927/2);+float t256 = (t254-t255);+vec4 t257 = vec4(0,1,0,0);+float t258 = mod(u4.u0,840);+float t259 = (t258/840);+float t260 = (t259*3.1415927);+float t261 = (t260*2);+float t262 = (t261/2);+float t263 = sin(t262);+float t264 = (0*0);+float t265 = (1*1);+float t266 = (t264+t265);+float t267 = (0*0);+float t268 = (t266+t267);+float t269 = sqrt(t268);+float t270 = (1/t269);+float t271 = (t263*t270);+float t272 = (t271*t271);+float t273 = (0/t269);+float t274 = (t263*t273);+float t275 = (t274*t274);+float t276 = (t272+t275);+float t277 = (2*t276);+float t278 = (1-t277);+float t279 = (3.1415927/4);+float t280 = (t279/2);+float t281 = sin(t280);+float t282 = sin(t279);+float t283 = (1*t282);+float t284 = cos(0);+float t285 = (t283*t284);+float t286 = (t285*0);+float t287 = sin(t279);+float t288 = (1*t287);+float t289 = sin(0);+float t290 = (t288*t289);+float t291 = (t290*0);+float t292 = (t286-t291);+float t293 = cos(t279);+float t294 = (1*t293);+float t295 = (t294*0);+float t296 = (t285*1);+float t297 = (t295-t296);+float t298 = (t297*t297);+float t299 = (t292*t292);+float t300 = (t298+t299);+float t301 = (t290*1);+float t302 = (t294*0);+float t303 = (t301-t302);+float t304 = (t303*t303);+float t305 = (t300+t304);+float t306 = sqrt(t305);+float t307 = (t292/t306);+float t308 = (t281*t307);+float t309 = (t308*t308);+float t310 = (t303/t306);+float t311 = (t281*t310);+float t312 = (t311*t311);+float t313 = (t309+t312);+float t314 = (2*t313);+float t315 = (1-t314);+float t316 = (t278*t315);+float t317 = (0+t316);+float t318 = (0/t269);+float t319 = (t263*t318);+float t320 = (t319*t271);+float t321 = cos(t262);+float t322 = (t274*t321);+float t323 = (t320-t322);+float t324 = (2*t323);+float t325 = (t297/t306);+float t326 = (t281*t325);+float t327 = (t326*t308);+float t328 = cos(t280);+float t329 = (t311*t328);+float t330 = (t327+t329);+float t331 = (2*t330);+float t332 = (t324*t331);+float t333 = (t317+t332);+float t334 = (t319*t274);+float t335 = (t271*t321);+float t336 = (t334+t335);+float t337 = (2*t336);+float t338 = (t326*t311);+float t339 = (t308*t328);+float t340 = (t338-t339);+float t341 = (2*t340);+float t342 = (t337*t341);+float t343 = (t333+t342);+float t344 = (t327-t329);+float t345 = (2*t344);+float t346 = (t278*t345);+float t347 = (0+t346);+float t348 = (t326*t326);+float t349 = (t348+t312);+float t350 = (2*t349);+float t351 = (1-t350);+float t352 = (t324*t351);+float t353 = (t347+t352);+float t354 = (t308*t311);+float t355 = (t326*t328);+float t356 = (t354+t355);+float t357 = (2*t356);+float t358 = (t337*t357);+float t359 = (t353+t358);+float t360 = (t338+t339);+float t361 = (2*t360);+float t362 = (t278*t361);+float t363 = (0+t362);+float t364 = (t354-t355);+float t365 = (2*t364);+float t366 = (t324*t365);+float t367 = (t363+t366);+float t368 = (t348+t309);+float t369 = (2*t368);+float t370 = (1-t369);+float t371 = (t337*t370);+float t372 = (t367+t371);+vec4 t373 = vec4(t343,t359,t372,0);+float t374 = (t320+t322);+float t375 = (2*t374);+float t376 = (t375*t315);+float t377 = (0+t376);+float t378 = (t319*t319);+float t379 = (t378+t275);+float t380 = (2*t379);+float t381 = (1-t380);+float t382 = (t381*t331);+float t383 = (t377+t382);+float t384 = (t271*t274);+float t385 = (t319*t321);+float t386 = (t384-t385);+float t387 = (2*t386);+float t388 = (t387*t341);+float t389 = (t383+t388);+float t390 = (t375*t345);+float t391 = (0+t390);+float t392 = (t381*t351);+float t393 = (t391+t392);+float t394 = (t387*t357);+float t395 = (t393+t394);+float t396 = (t375*t361);+float t397 = (0+t396);+float t398 = (t381*t365);+float t399 = (t397+t398);+float t400 = (t387*t370);+float t401 = (t399+t400);+vec4 t402 = vec4(t389,t395,t401,0);+float t403 = (t334-t335);+float t404 = (2*t403);+float t405 = (t404*t315);+float t406 = (0+t405);+float t407 = (t384+t385);+float t408 = (2*t407);+float t409 = (t408*t331);+float t410 = (t406+t409);+float t411 = (t378+t272);+float t412 = (2*t411);+float t413 = (1-t412);+float t414 = (t413*t341);+float t415 = (t410+t414);+float t416 = (t404*t345);+float t417 = (0+t416);+float t418 = (t408*t351);+float t419 = (t417+t418);+float t420 = (t413*t357);+float t421 = (t419+t420);+float t422 = (t404*t361);+float t423 = (0+t422);+float t424 = (t408*t365);+float t425 = (t423+t424);+float t426 = (t413*t370);+float t427 = (t425+t426);+vec4 t428 = vec4(t415,t421,t427,0);+vec4 t429 = vec4(0,0,0,1);+mat4x4 t430 = mat4x4(t373,t402,t428,t429);+vec4 t431 = (t257*t430);+float t432 = (t431[0]*t431[0]);+float t433 = (t431[2]*t431[2]);+float t434 = (t432+t433);+float t435 = sqrt(t434);+float t436 = atan(t435,t431[1]);+float t437 = (3.1415927/2);+float t438 = (t436-t437);+float t439 = (t256-t438);+float t440 = abs(t439);+float t441 = (t440/2);+float t442 = sin(t441);+float t443 = (t442*t442);+float t444 = cos(t438);+float t445 = cos(t256);+float t446 = (t444*t445);+float t447 = atan(t222,t238);+float t448 = (t447+3.1415927);+float t449 = (3.1415927*2);+float t450 = mod(t448,t449);+float t451 = (t450-3.1415927);+float t452 = atan(t431[0],t431[2]);+float t453 = (t452+3.1415927);+float t454 = (3.1415927*2);+float t455 = mod(t453,t454);+float t456 = (t455-3.1415927);+float t457 = (t451-t456);+float t458 = abs(t457);+float t459 = (t458/2);+float t460 = sin(t459);+float t461 = (t460*t460);+float t462 = (t446*t461);+float t463 = (t443+t462);+float t464 = sqrt(t463);+float t465 = asin(t464);+float t466 = (2*t465);+float t467 = (3.1415927-t466);+float t468 = (t467/3.1415927);+float t469 = smoothstep(float(0.48),float(0.59),t468);+float t470 = (float(0.0)*t469);+float t471 = (float(1.0)+t470);+float t472 = (1-t155);+float t473 = (t471*t472);+float t474 = (t156+t473);+float t475 = (3.1415927/2);+float t476 = (t8-t475);+float t477 = (3.1415927/2);+float t478 = (t254-t477);+float t479 = (t476-t478);+float t480 = abs(t479);+float t481 = (t480/2);+float t482 = sin(t481);+float t483 = (t482*t482);+float t484 = cos(t478);+float t485 = cos(t476);+float t486 = (t484*t485);+float t487 = (t118+3.1415927);+float t488 = (3.1415927*2);+float t489 = mod(t487,t488);+float t490 = (t489-3.1415927);+float t491 = (t447+3.1415927);+float t492 = (3.1415927*2);+float t493 = mod(t491,t492);+float t494 = (t493-3.1415927);+float t495 = (t490-t494);+float t496 = abs(t495);+float t497 = (t496/2);+float t498 = sin(t497);+float t499 = (t498*t498);+float t500 = (t486*t499);+float t501 = (t483+t500);+float t502 = sqrt(t501);+float t503 = asin(t502);+float t504 = (2*t503);+float t505 = (t222*t222);+float t506 = (t253*t253);+float t507 = (t505+t506);+float t508 = (t238*t238);+float t509 = (t507+t508);+float t510 = sqrt(t509);+float t511 = (t510*float(1.4959787e8));+float t512 = (2*t511);+float t513 = (1392684/t512);+float t514 = asin(t513);+float t515 = (2*t514);+float t516 = (t515*4);+float t517 = (t504/t516);+float t518 = smoothstep(float(0.95),1,t517);+float t519 = (1-t518);+float t520 = (float(0.0)*t469);+float t521 = (t519+t520);+float t522 = (1-t521);+float t523 = (t522*t155);+float t524 = (t521+t523);+float t525 = (t474*t524);+float t526 = (3.1415927/2);+float t527 = (t8-t526);+float t528 = (t12/2);+float t529 = sin(t528);+float t530 = sin(t12);+float t531 = (1*t530);+float t532 = cos(0);+float t533 = (t531*t532);+float t534 = (t533*0);+float t535 = sin(t12);+float t536 = (1*t535);+float t537 = sin(0);+float t538 = (t536*t537);+float t539 = (t538*0);+float t540 = (t534-t539);+float t541 = cos(t12);+float t542 = (1*t541);+float t543 = (t542*0);+float t544 = (t533*1);+float t545 = (t543-t544);+float t546 = (t545*t545);+float t547 = (t540*t540);+float t548 = (t546+t547);+float t549 = (t538*1);+float t550 = (t542*0);+float t551 = (t549-t550);+float t552 = (t551*t551);+float t553 = (t548+t552);+float t554 = sqrt(t553);+float t555 = (t540/t554);+float t556 = (t529*t555);+float t557 = (t556*t556);+float t558 = (t551/t554);+float t559 = (t529*t558);+float t560 = (t559*t559);+float t561 = (t557+t560);+float t562 = (2*t561);+float t563 = (1-t562);+float t564 = (float(686.971)*840);+float t565 = (u4.u0/t564);+float t566 = (t565*3.1415927);+float t567 = (t566*2);+float t568 = sin(t567);+float t569 = (t568*float(1.5));+float t570 = (u4.u0/t193);+float t571 = (t570*3.1415927);+float t572 = (t571*2);+float t573 = sin(t572);+float t574 = (t573*1);+float t575 = (t569-t574);+float t576 = (t563*t575);+float t577 = (t545/t554);+float t578 = (t529*t577);+float t579 = (t578*t556);+float t580 = cos(t528);+float t581 = (t559*t580);+float t582 = (t579-t581);+float t583 = (2*t582);+float t584 = (t583*0);+float t585 = (t576+t584);+float t586 = (t578*t559);+float t587 = (t556*t580);+float t588 = (t586+t587);+float t589 = (2*t588);+float t590 = (u4.u0/t564);+float t591 = (t590*3.1415927);+float t592 = (t591*2);+float t593 = cos(t592);+float t594 = (t593*float(1.5));+float t595 = (u4.u0/t193);+float t596 = (t595*3.1415927);+float t597 = (t596*2);+float t598 = cos(t597);+float t599 = (t598*1);+float t600 = (t594-t599);+float t601 = (t589*t600);+float t602 = (t585+t601);+float t603 = (t602*t602);+float t604 = (t586-t587);+float t605 = (2*t604);+float t606 = (t605*t575);+float t607 = (t556*t559);+float t608 = (t578*t580);+float t609 = (t607+t608);+float t610 = (2*t609);+float t611 = (t610*0);+float t612 = (t606+t611);+float t613 = (t578*t578);+float t614 = (t613+t557);+float t615 = (2*t614);+float t616 = (1-t615);+float t617 = (t616*t600);+float t618 = (t612+t617);+float t619 = (t618*t618);+float t620 = (t603+t619);+float t621 = sqrt(t620);+float t622 = (t579+t581);+float t623 = (2*t622);+float t624 = (t623*t575);+float t625 = (t613+t560);+float t626 = (2*t625);+float t627 = (1-t626);+float t628 = (t627*0);+float t629 = (t624+t628);+float t630 = (t607-t608);+float t631 = (2*t630);+float t632 = (t631*t600);+float t633 = (t629+t632);+float t634 = atan(t621,t633);+float t635 = (3.1415927/2);+float t636 = (t634-t635);+float t637 = (t527-t636);+float t638 = abs(t637);+float t639 = (t638/2);+float t640 = sin(t639);+float t641 = (t640*t640);+float t642 = cos(t636);+float t643 = cos(t527);+float t644 = (t642*t643);+float t645 = (t118+3.1415927);+float t646 = (3.1415927*2);+float t647 = mod(t645,t646);+float t648 = (t647-3.1415927);+float t649 = atan(t602,t618);+float t650 = (t649+3.1415927);+float t651 = (3.1415927*2);+float t652 = mod(t650,t651);+float t653 = (t652-3.1415927);+float t654 = (t648-t653);+float t655 = abs(t654);+float t656 = (t655/2);+float t657 = sin(t656);+float t658 = (t657*t657);+float t659 = (t644*t658);+float t660 = (t641+t659);+float t661 = sqrt(t660);+float t662 = asin(t661);+float t663 = (2*t662);+float t664 = (t602*t602);+float t665 = (t633*t633);+float t666 = (t664+t665);+float t667 = (t618*t618);+float t668 = (t666+t667);+float t669 = sqrt(t668);+float t670 = (t669*float(1.4959787e8));+float t671 = (2*t670);+float t672 = (6780/t671);+float t673 = asin(t672);+float t674 = (2*t673);+float t675 = (t674*4);+float t676 = (t663/t675);+float t677 = step(1,t676);+float t678 = (1-t677);+float t679 = (float(1.0)*t678);+float t680 = (1-t524);+float t681 = (t679*t680);+float t682 = (t525+t681);+float t683 = (1-t679);+float t684 = (t683*t524);+float t685 = (t679+t684);+float t686 = (t682*t685);+float t687 = (3.1415927/2);+float t688 = (t8-t687);+float t689 = (t12/2);+float t690 = sin(t689);+float t691 = sin(t12);+float t692 = (1*t691);+float t693 = cos(0);+float t694 = (t692*t693);+float t695 = (t694*0);+float t696 = sin(t12);+float t697 = (1*t696);+float t698 = sin(0);+float t699 = (t697*t698);+float t700 = (t699*0);+float t701 = (t695-t700);+float t702 = cos(t12);+float t703 = (1*t702);+float t704 = (t703*0);+float t705 = (t694*1);+float t706 = (t704-t705);+float t707 = (t706*t706);+float t708 = (t701*t701);+float t709 = (t707+t708);+float t710 = (t699*1);+float t711 = (t703*0);+float t712 = (t710-t711);+float t713 = (t712*t712);+float t714 = (t709+t713);+float t715 = sqrt(t714);+float t716 = (t701/t715);+float t717 = (t690*t716);+float t718 = (t717*t717);+float t719 = (t712/t715);+float t720 = (t690*t719);+float t721 = (t720*t720);+float t722 = (t718+t721);+float t723 = (2*t722);+float t724 = (1-t723);+float t725 = (float(224.7)*840);+float t726 = (u4.u0/t725);+float t727 = (t726*3.1415927);+float t728 = (t727*2);+float t729 = sin(t728);+float t730 = (t729*float(0.7205));+float t731 = (u4.u0/t193);+float t732 = (t731*3.1415927);+float t733 = (t732*2);+float t734 = sin(t733);+float t735 = (t734*1);+float t736 = (t730-t735);+float t737 = (t724*t736);+float t738 = (t706/t715);+float t739 = (t690*t738);+float t740 = (t739*t717);+float t741 = cos(t689);+float t742 = (t720*t741);+float t743 = (t740-t742);+float t744 = (2*t743);+float t745 = (t744*0);+float t746 = (t737+t745);+float t747 = (t739*t720);+float t748 = (t717*t741);+float t749 = (t747+t748);+float t750 = (2*t749);+float t751 = (u4.u0/t725);+float t752 = (t751*3.1415927);+float t753 = (t752*2);+float t754 = cos(t753);+float t755 = (t754*float(0.7205));+float t756 = (u4.u0/t193);+float t757 = (t756*3.1415927);+float t758 = (t757*2);+float t759 = cos(t758);+float t760 = (t759*1);+float t761 = (t755-t760);+float t762 = (t750*t761);+float t763 = (t746+t762);+float t764 = (t763*t763);+float t765 = (t747-t748);+float t766 = (2*t765);+float t767 = (t766*t736);+float t768 = (t717*t720);+float t769 = (t739*t741);+float t770 = (t768+t769);+float t771 = (2*t770);+float t772 = (t771*0);+float t773 = (t767+t772);+float t774 = (t739*t739);+float t775 = (t774+t718);+float t776 = (2*t775);+float t777 = (1-t776);+float t778 = (t777*t761);+float t779 = (t773+t778);+float t780 = (t779*t779);+float t781 = (t764+t780);+float t782 = sqrt(t781);+float t783 = (t740+t742);+float t784 = (2*t783);+float t785 = (t784*t736);+float t786 = (t774+t721);+float t787 = (2*t786);+float t788 = (1-t787);+float t789 = (t788*0);+float t790 = (t785+t789);+float t791 = (t768-t769);+float t792 = (2*t791);+float t793 = (t792*t761);+float t794 = (t790+t793);+float t795 = atan(t782,t794);+float t796 = (3.1415927/2);+float t797 = (t795-t796);+float t798 = (t688-t797);+float t799 = abs(t798);+float t800 = (t799/2);+float t801 = sin(t800);+float t802 = (t801*t801);+float t803 = cos(t797);+float t804 = cos(t688);+float t805 = (t803*t804);+float t806 = (t118+3.1415927);+float t807 = (3.1415927*2);+float t808 = mod(t806,t807);+float t809 = (t808-3.1415927);+float t810 = atan(t763,t779);+float t811 = (t810+3.1415927);+float t812 = (3.1415927*2);+float t813 = mod(t811,t812);+float t814 = (t813-3.1415927);+float t815 = (t809-t814);+float t816 = abs(t815);+float t817 = (t816/2);+float t818 = sin(t817);+float t819 = (t818*t818);+float t820 = (t805*t819);+float t821 = (t802+t820);+float t822 = sqrt(t821);+float t823 = asin(t822);+float t824 = (2*t823);+float t825 = (t763*t763);+float t826 = (t794*t794);+float t827 = (t825+t826);+float t828 = (t779*t779);+float t829 = (t827+t828);+float t830 = sqrt(t829);+float t831 = (t830*float(1.4959787e8));+float t832 = (2*t831);+float t833 = (float(12103.6)/t832);+float t834 = asin(t833);+float t835 = (2*t834);+float t836 = (t835*4);+float t837 = (t824/t836);+float t838 = step(1,t837);+float t839 = (1-t838);+float t840 = (float(1.0)*t839);+float t841 = (1-t685);+float t842 = (t840*t841);+float t843 = (t686+t842);+float t844 = (1-t840);+float t845 = (t844*t685);+float t846 = (t840+t845);+float t847 = (t843*t846);+float t848 = (3.1415927/2);+float t849 = (t8-t848);+float t850 = (t12/2);+float t851 = sin(t850);+float t852 = sin(t12);+float t853 = (1*t852);+float t854 = cos(0);+float t855 = (t853*t854);+float t856 = (t855*0);+float t857 = sin(t12);+float t858 = (1*t857);+float t859 = sin(0);+float t860 = (t858*t859);+float t861 = (t860*0);+float t862 = (t856-t861);+float t863 = cos(t12);+float t864 = (1*t863);+float t865 = (t864*0);+float t866 = (t855*1);+float t867 = (t865-t866);+float t868 = (t867*t867);+float t869 = (t862*t862);+float t870 = (t868+t869);+float t871 = (t860*1);+float t872 = (t864*0);+float t873 = (t871-t872);+float t874 = (t873*t873);+float t875 = (t870+t874);+float t876 = sqrt(t875);+float t877 = (t862/t876);+float t878 = (t851*t877);+float t879 = (t878*t878);+float t880 = (t873/t876);+float t881 = (t851*t880);+float t882 = (t881*t881);+float t883 = (t879+t882);+float t884 = (2*t883);+float t885 = (1-t884);+float t886 = (float(4332.59)*840);+float t887 = (u4.u0/t886);+float t888 = (t887*3.1415927);+float t889 = (t888*2);+float t890 = sin(t889);+float t891 = (t890*float(5.2));+float t892 = (u4.u0/t193);+float t893 = (t892*3.1415927);+float t894 = (t893*2);+float t895 = sin(t894);+float t896 = (t895*1);+float t897 = (t891-t896);+float t898 = (t885*t897);+float t899 = (t867/t876);+float t900 = (t851*t899);+float t901 = (t900*t878);+float t902 = cos(t850);+float t903 = (t881*t902);+float t904 = (t901-t903);+float t905 = (2*t904);+float t906 = (t905*0);+float t907 = (t898+t906);+float t908 = (t900*t881);+float t909 = (t878*t902);+float t910 = (t908+t909);+float t911 = (2*t910);+float t912 = (u4.u0/t886);+float t913 = (t912*3.1415927);+float t914 = (t913*2);+float t915 = cos(t914);+float t916 = (t915*float(5.2));+float t917 = (u4.u0/t193);+float t918 = (t917*3.1415927);+float t919 = (t918*2);+float t920 = cos(t919);+float t921 = (t920*1);+float t922 = (t916-t921);+float t923 = (t911*t922);+float t924 = (t907+t923);+float t925 = (t924*t924);+float t926 = (t908-t909);+float t927 = (2*t926);+float t928 = (t927*t897);+float t929 = (t878*t881);+float t930 = (t900*t902);+float t931 = (t929+t930);+float t932 = (2*t931);+float t933 = (t932*0);+float t934 = (t928+t933);+float t935 = (t900*t900);+float t936 = (t935+t879);+float t937 = (2*t936);+float t938 = (1-t937);+float t939 = (t938*t922);+float t940 = (t934+t939);+float t941 = (t940*t940);+float t942 = (t925+t941);+float t943 = sqrt(t942);+float t944 = (t901+t903);+float t945 = (2*t944);+float t946 = (t945*t897);+float t947 = (t935+t882);+float t948 = (2*t947);+float t949 = (1-t948);+float t950 = (t949*0);+float t951 = (t946+t950);+float t952 = (t929-t930);+float t953 = (2*t952);+float t954 = (t953*t922);+float t955 = (t951+t954);+float t956 = atan(t943,t955);+float t957 = (3.1415927/2);+float t958 = (t956-t957);+float t959 = (t849-t958);+float t960 = abs(t959);+float t961 = (t960/2);+float t962 = sin(t961);+float t963 = (t962*t962);+float t964 = cos(t958);+float t965 = cos(t849);+float t966 = (t964*t965);+float t967 = (t118+3.1415927);+float t968 = (3.1415927*2);+float t969 = mod(t967,t968);+float t970 = (t969-3.1415927);+float t971 = atan(t924,t940);+float t972 = (t971+3.1415927);+float t973 = (3.1415927*2);+float t974 = mod(t972,t973);+float t975 = (t974-3.1415927);+float t976 = (t970-t975);+float t977 = abs(t976);+float t978 = (t977/2);+float t979 = sin(t978);+float t980 = (t979*t979);+float t981 = (t966*t980);+float t982 = (t963+t981);+float t983 = sqrt(t982);+float t984 = asin(t983);+float t985 = (2*t984);+float t986 = (t924*t924);+float t987 = (t955*t955);+float t988 = (t986+t987);+float t989 = (t940*t940);+float t990 = (t988+t989);+float t991 = sqrt(t990);+float t992 = (t991*float(1.4959787e8));+float t993 = (2*t992);+float t994 = (140000/t993);+float t995 = asin(t994);+float t996 = (2*t995);+float t997 = (t996*4);+float t998 = (t985/t997);+float t999 = step(1,t998);+float t1000 = (1-t999);+float t1001 = step(float(0.98),t998);+float t1002 = cos(t956);+float t1003 = (1*t1002);+float t1004 = (t1003*0);+float t1005 = sin(t956);+float t1006 = (1*t1005);+float t1007 = cos(t971);+float t1008 = (t1006*t1007);+float t1009 = (t1008*1);+float t1010 = (t1004-t1009);+float t1011 = sin(t8);+float t1012 = (1*t1011);+float t1013 = sin(t118);+float t1014 = (t1012*t1013);+float t1015 = (t1010*t1014);+float t1016 = (t1008*0);+float t1017 = sin(t956);+float t1018 = (1*t1017);+float t1019 = sin(t971);+float t1020 = (t1018*t1019);+float t1021 = (t1020*0);+float t1022 = (t1016-t1021);+float t1023 = cos(t8);+float t1024 = (1*t1023);+float t1025 = (t1022*t1024);+float t1026 = (t1015+t1025);+float t1027 = (t1020*1);+float t1028 = (t1003*0);+float t1029 = (t1027-t1028);+float t1030 = sin(t8);+float t1031 = (1*t1030);+float t1032 = cos(t118);+float t1033 = (t1031*t1032);+float t1034 = (t1029*t1033);+float t1035 = (t1026+t1034);+float t1036 = (t1022*t1008);+float t1037 = (t1029*t1003);+float t1038 = (t1036-t1037);+float t1039 = (t1038*t1014);+float t1040 = (t1029*t1020);+float t1041 = (t1010*t1008);+float t1042 = (t1040-t1041);+float t1043 = (t1042*t1024);+float t1044 = (t1039+t1043);+float t1045 = (t1010*t1003);+float t1046 = (t1022*t1020);+float t1047 = (t1045-t1046);+float t1048 = (t1047*t1033);+float t1049 = (t1044+t1048);+float t1050 = atan(t1035,t1049);+float t1051 = (t1050+3.1415927);+float t1052 = (t1051/3.1415927);+float t1053 = (t1052*2);+float t1054 = (t1053*12);+float t1055 = fract(t1054);+float t1056 = step(float(0.75),t1055);+float t1057 = step(float(0.5),t998);+float t1058 = (t1056*t1057);+float t1059 = (t1001+t1058);+bool t1060 = (1<=t1059);+float t1061;+if(t1060){+t1061 = 1;+} else {+t1061 = t1059;+}+float t1062 = (float(0.6)*t1061);+float t1063 = (float(1.0)*t1061);+float t1064 = (t1062*t1063);+float t1065 = (1-t1063);+float t1066 = (float(6.0e-2)*t1065);+float t1067 = (t1064+t1066);+float t1068 = (t998*3.1415927);+float t1069 = cos(t1068);+float t1070 = (t1069/2);+float t1071 = (t1070+float(0.5));+float t1072 = (t1071+float(0.5));+float t1073 = (t1067*t1072);+float t1074 = (1-float(1.0));+float t1075 = (t1074*t1063);+float t1076 = (float(1.0)+t1075);+float t1077 = (t1076*t1072);+float t1078 = (t1073*t1077);+float t1079 = (1-t1077);+float t1080 = (0*t1079);+float t1081 = (t1078+t1080);+float t1082 = (t1000*t1081);+float t1083 = (1-t846);+float t1084 = (t1082*t1083);+float t1085 = (t847+t1084);+float t1086 = (1-1);+float t1087 = (t1086*t1077);+float t1088 = (1+t1087);+float t1089 = (t1000*t1088);+float t1090 = (1-t1089);+float t1091 = (t1090*t846);+float t1092 = (t1089+t1091);+float t1093 = (t1085*t1092);+float t1094 = (3.1415927/2);+float t1095 = (t8-t1094);+float t1096 = (t12/2);+float t1097 = sin(t1096);+float t1098 = sin(t12);+float t1099 = (1*t1098);+float t1100 = cos(0);+float t1101 = (t1099*t1100);+float t1102 = (t1101*0);+float t1103 = sin(t12);+float t1104 = (1*t1103);+float t1105 = sin(0);+float t1106 = (t1104*t1105);+float t1107 = (t1106*0);+float t1108 = (t1102-t1107);+float t1109 = cos(t12);+float t1110 = (1*t1109);+float t1111 = (t1110*0);+float t1112 = (t1101*1);+float t1113 = (t1111-t1112);+float t1114 = (t1113*t1113);+float t1115 = (t1108*t1108);+float t1116 = (t1114+t1115);+float t1117 = (t1106*1);+float t1118 = (t1110*0);+float t1119 = (t1117-t1118);+float t1120 = (t1119*t1119);+float t1121 = (t1116+t1120);+float t1122 = sqrt(t1121);+float t1123 = (t1108/t1122);+float t1124 = (t1097*t1123);+float t1125 = (t1124*t1124);+float t1126 = (t1119/t1122);+float t1127 = (t1097*t1126);+float t1128 = (t1127*t1127);+float t1129 = (t1125+t1128);+float t1130 = (2*t1129);+float t1131 = (1-t1130);+float t1132 = (float(10759.22)*840);+float t1133 = (u4.u0/t1132);+float t1134 = (t1133*3.1415927);+float t1135 = (t1134*2);+float t1136 = sin(t1135);+float t1137 = (t1136*float(9.5));+float t1138 = (u4.u0/t193);+float t1139 = (t1138*3.1415927);+float t1140 = (t1139*2);+float t1141 = sin(t1140);+float t1142 = (t1141*1);+float t1143 = (t1137-t1142);+float t1144 = (t1131*t1143);+float t1145 = (t1113/t1122);+float t1146 = (t1097*t1145);+float t1147 = (t1146*t1124);+float t1148 = cos(t1096);+float t1149 = (t1127*t1148);+float t1150 = (t1147-t1149);+float t1151 = (2*t1150);+float t1152 = (t1151*0);+float t1153 = (t1144+t1152);+float t1154 = (t1146*t1127);+float t1155 = (t1124*t1148);+float t1156 = (t1154+t1155);+float t1157 = (2*t1156);+float t1158 = (u4.u0/t1132);+float t1159 = (t1158*3.1415927);+float t1160 = (t1159*2);+float t1161 = cos(t1160);+float t1162 = (t1161*float(9.5));+float t1163 = (u4.u0/t193);+float t1164 = (t1163*3.1415927);+float t1165 = (t1164*2);+float t1166 = cos(t1165);+float t1167 = (t1166*1);+float t1168 = (t1162-t1167);+float t1169 = (t1157*t1168);+float t1170 = (t1153+t1169);+float t1171 = (t1170*t1170);+float t1172 = (t1154-t1155);+float t1173 = (2*t1172);+float t1174 = (t1173*t1143);+float t1175 = (t1124*t1127);+float t1176 = (t1146*t1148);+float t1177 = (t1175+t1176);+float t1178 = (2*t1177);+float t1179 = (t1178*0);+float t1180 = (t1174+t1179);+float t1181 = (t1146*t1146);+float t1182 = (t1181+t1125);+float t1183 = (2*t1182);+float t1184 = (1-t1183);+float t1185 = (t1184*t1168);+float t1186 = (t1180+t1185);+float t1187 = (t1186*t1186);+float t1188 = (t1171+t1187);+float t1189 = sqrt(t1188);+float t1190 = (t1147+t1149);+float t1191 = (2*t1190);+float t1192 = (t1191*t1143);+float t1193 = (t1181+t1128);+float t1194 = (2*t1193);+float t1195 = (1-t1194);+float t1196 = (t1195*0);+float t1197 = (t1192+t1196);+float t1198 = (t1175-t1176);+float t1199 = (2*t1198);+float t1200 = (t1199*t1168);+float t1201 = (t1197+t1200);+float t1202 = atan(t1189,t1201);+float t1203 = (3.1415927/2);+float t1204 = (t1202-t1203);+float t1205 = (t1095-t1204);+float t1206 = abs(t1205);+float t1207 = (t1206/2);+float t1208 = sin(t1207);+float t1209 = (t1208*t1208);+float t1210 = cos(t1204);+float t1211 = cos(t1095);+float t1212 = (t1210*t1211);+float t1213 = (t118+3.1415927);+float t1214 = (3.1415927*2);+float t1215 = mod(t1213,t1214);+float t1216 = (t1215-3.1415927);+float t1217 = atan(t1170,t1186);+float t1218 = (t1217+3.1415927);+float t1219 = (3.1415927*2);+float t1220 = mod(t1218,t1219);+float t1221 = (t1220-3.1415927);+float t1222 = (t1216-t1221);+float t1223 = abs(t1222);+float t1224 = (t1223/2);+float t1225 = sin(t1224);+float t1226 = (t1225*t1225);+float t1227 = (t1212*t1226);+float t1228 = (t1209+t1227);+float t1229 = sqrt(t1228);+float t1230 = asin(t1229);+float t1231 = (2*t1230);+float t1232 = (t1170*t1170);+float t1233 = (t1201*t1201);+float t1234 = (t1232+t1233);+float t1235 = (t1186*t1186);+float t1236 = (t1234+t1235);+float t1237 = sqrt(t1236);+float t1238 = (t1237*float(1.4959787e8));+float t1239 = (2*t1238);+float t1240 = (118000/t1239);+float t1241 = asin(t1240);+float t1242 = (2*t1241);+float t1243 = (t1242*4);+float t1244 = (t1231/t1243);+float t1245 = step(1,t1244);+float t1246 = (1-t1245);+float t1247 = (float(0.9)*t1246);+float t1248 = (1-t1092);+float t1249 = (t1247*t1248);+float t1250 = (t1093+t1249);+float t1251 = (float(1.0)*t1246);+float t1252 = (1-t1251);+float t1253 = (t1252*t1092);+float t1254 = (t1251+t1253);+float t1255 = (t1250*t1254);+float t1256 = smoothstep(float(0.45),float(0.55),t468);+float t1257 = (float(0.3)*t1256);+float t1258 = (1-t1256);+float t1259 = (float(0.5)*t1258);+float t1260 = (t1257+t1259);+float t1261 = (3.1415927/2);+float t1262 = (t8-t1261);+float t1263 = (3.1415927/2);+float t1264 = (t436-t1263);+float t1265 = (t1262-t1264);+float t1266 = abs(t1265);+float t1267 = (t1266/2);+float t1268 = sin(t1267);+float t1269 = (t1268*t1268);+float t1270 = cos(t1264);+float t1271 = cos(t1262);+float t1272 = (t1270*t1271);+float t1273 = (t118+3.1415927);+float t1274 = (3.1415927*2);+float t1275 = mod(t1273,t1274);+float t1276 = (t1275-3.1415927);+float t1277 = (t452+3.1415927);+float t1278 = (3.1415927*2);+float t1279 = mod(t1277,t1278);+float t1280 = (t1279-3.1415927);+float t1281 = (t1276-t1280);+float t1282 = abs(t1281);+float t1283 = (t1282/2);+float t1284 = sin(t1283);+float t1285 = (t1284*t1284);+float t1286 = (t1272*t1285);+float t1287 = (t1269+t1286);+float t1288 = sqrt(t1287);+float t1289 = asin(t1288);+float t1290 = (2*t1289);+float t1291 = (3.1415927-t1290);+float t1292 = (t1291/3.1415927);+float t1293 = (t1292-float(0.5));+float t1294 = (-2);+float t1295 = (t1293*t1294);+float t1296 = (1-t1295);+float t1297 = (float(0.8)*t1296);+float t1298 = smoothstep(float(0.4),float(0.6),t468);+float t1299 = (t1298*3.1415927);+float t1300 = sin(t1299);+float t1301 = (t1297*t1300);+float t1302 = (3.1415927/2);+float t1303 = (t8-t1302);+float t1304 = (3.1415927/2);+float t1305 = (t254-t1304);+float t1306 = (t1303-t1305);+float t1307 = abs(t1306);+float t1308 = (t1307/2);+float t1309 = sin(t1308);+float t1310 = (t1309*t1309);+float t1311 = cos(t1305);+float t1312 = cos(t1303);+float t1313 = (t1311*t1312);+float t1314 = (t118+3.1415927);+float t1315 = (3.1415927*2);+float t1316 = mod(t1314,t1315);+float t1317 = (t1316-3.1415927);+float t1318 = (t447+3.1415927);+float t1319 = (3.1415927*2);+float t1320 = mod(t1318,t1319);+float t1321 = (t1320-3.1415927);+float t1322 = (t1317-t1321);+float t1323 = abs(t1322);+float t1324 = (t1323/2);+float t1325 = sin(t1324);+float t1326 = (t1325*t1325);+float t1327 = (t1313*t1326);+float t1328 = (t1310+t1327);+float t1329 = sqrt(t1328);+float t1330 = asin(t1329);+float t1331 = (2*t1330);+float t1332 = (3.1415927-t1331);+float t1333 = (t1332/3.1415927);+float t1334 = smoothstep(float(0.5),float(0.7),t1333);+float t1335 = (t1301*t1334);+float t1336 = (t1260+t1335);+float t1337 = (u8.u0*t1336);+float t1338 = (t1333/2);+float t1339 = (t1338+float(0.5));+float t1340 = smoothstep(float(0.3),float(0.6),t468);+float t1341 = (t1339*t1340);+float t1342 = (u8.u0*t1341);+float t1343 = (t1337*t1342);+float t1344 = (3.1415927/36);+float t1345 = (t8/t1344);+float t1346 = floor(t1345);+float t1347 = (t1346/36);+float t1348 = (t1346/36);+float t1349 = (t1348*float(842.378));+float t1350 = fract(t1349);+float t1351 = (t1350+float(45.32));+float t1352 = (t1351+u6.u0);+float t1353 = (t1350*t1352);+float t1354 = (t1346/36);+float t1355 = (t1354*3.1415927);+float t1356 = sin(t1355);+float t1357 = (36*t1356);+float t1358 = floor(t1357);+float t1359 = (t1358+1);+float t1360 = (3.1415927/t1359);+float t1361 = (t118/t1360);+float t1362 = floor(t1361);+float t1363 = (t1362/t1359);+float t1364 = (t1363*float(1734.048));+float t1365 = fract(t1364);+float t1366 = (t1365+float(45.32));+float t1367 = (t1366+u6.u0);+float t1368 = (t1365*t1367);+float t1369 = (t1353+t1368);+float t1370 = (t1350+t1369);+float t1371 = (t1365+t1369);+float t1372 = (t1370*t1371);+float t1373 = fract(t1372);+float t1374 = (t1373*5);+float t1375 = (t1347+t1374);+float t1376 = fract(t1375);+float t1377 = (t1376*12000);+float t1378 = (t1377/1000);+bool t1379 = (1<=t1378);+float t1380;+if(t1379){+t1380 = 1;+} else {+t1380 = t1378;+}+float t1381 = (t1377-6000);+float t1382 = (t1381/8000);+bool t1383 = (0>=t1382);+float t1384;+if(t1383){+t1384 = 0;+} else {+t1384 = t1382;+}+float t1385 = (t1380-t1384);+float t1386 = (t1373*173);+float t1387 = fract(t1386);+float t1388 = step(float(0.66),t1387);+float t1389 = (t1388*3);+float t1390 = (3+t1389);+float t1391 = (3.1415927/t1390);+float t1392 = cos(t1391);+float t1393 = (1-t1392);+float t1394 = (t1346*t1344);+float t1395 = (t1346/36);+float t1396 = (t1395*float(842.378));+float t1397 = fract(t1396);+float t1398 = (t1397+float(45.32));+float t1399 = (t1398+u6.u0);+float t1400 = (t1397*t1399);+float t1401 = (t1362/t1359);+float t1402 = (t1401*float(1734.048));+float t1403 = fract(t1402);+float t1404 = (t1403+float(45.32));+float t1405 = (t1404+u6.u0);+float t1406 = (t1403*t1405);+float t1407 = (t1400+t1406);+float t1408 = (t1397+t1407);+float t1409 = (t1403+t1407);+float t1410 = (t1408*t1409);+float t1411 = fract(t1410);+float t1412 = (t1411*float(2852.02));+float t1413 = fract(t1412);+float t1414 = (t1413-float(0.5));+float t1415 = (t1414*t1344);+float t1416 = (t1415*float(0.75));+float t1417 = (t1394+t1416);+float t1418 = cos(t1417);+float t1419 = (1*t1418);+float t1420 = (t1419*0);+float t1421 = sin(t1417);+float t1422 = (1*t1421);+float t1423 = (3.1415927/t1359);+float t1424 = (t1362*t1423);+float t1425 = (t1411*float(97372.83));+float t1426 = fract(t1425);+float t1427 = (t1426-float(0.5));+float t1428 = (3.1415927/t1359);+float t1429 = (t1427*t1428);+float t1430 = (t1429*float(0.75));+float t1431 = (t1424+t1430);+float t1432 = (t1431+3.1415927);+float t1433 = (3.1415927*2);+float t1434 = mod(t1432,t1433);+float t1435 = (t1434-3.1415927);+float t1436 = cos(t1435);+float t1437 = (t1422*t1436);+float t1438 = (t1437*1);+float t1439 = (t1420-t1438);+float t1440 = sin(t8);+float t1441 = (1*t1440);+float t1442 = sin(t118);+float t1443 = (t1441*t1442);+float t1444 = (t1439*t1443);+float t1445 = (t1437*0);+float t1446 = sin(t1417);+float t1447 = (1*t1446);+float t1448 = sin(t1435);+float t1449 = (t1447*t1448);+float t1450 = (t1449*0);+float t1451 = (t1445-t1450);+float t1452 = cos(t8);+float t1453 = (1*t1452);+float t1454 = (t1451*t1453);+float t1455 = (t1444+t1454);+float t1456 = (t1449*1);+float t1457 = (t1419*0);+float t1458 = (t1456-t1457);+float t1459 = sin(t8);+float t1460 = (1*t1459);+float t1461 = cos(t118);+float t1462 = (t1460*t1461);+float t1463 = (t1458*t1462);+float t1464 = (t1455+t1463);+float t1465 = (t1451*t1437);+float t1466 = (t1458*t1419);+float t1467 = (t1465-t1466);+float t1468 = (t1467*t1443);+float t1469 = (t1458*t1449);+float t1470 = (t1439*t1437);+float t1471 = (t1469-t1470);+float t1472 = (t1471*t1453);+float t1473 = (t1468+t1472);+float t1474 = (t1439*t1419);+float t1475 = (t1451*t1449);+float t1476 = (t1474-t1475);+float t1477 = (t1476*t1462);+float t1478 = (t1473+t1477);+float t1479 = atan(t1464,t1478);+float t1480 = (t1479+3.1415927);+float t1481 = (t1387*3.1415927);+float t1482 = (t1480+t1481);+float t1483 = (3.1415927*2);+float t1484 = (t1482/t1483);+float t1485 = fract(t1484);+float t1486 = (t1485*t1390);+float t1487 = fract(t1486);+float t1488 = (t1487*2);+float t1489 = (t1488-1);+float t1490 = abs(t1489);+float t1491 = (t1490*t1490);+float t1492 = (t1393*t1491);+float t1493 = (t1392+t1492);+float t1494 = (t1373*float(8.0e-3));+float t1495 = (float(1.0e-3)+t1494);+float t1496 = step(float(0.66),t1387);+float t1497 = (t1496*float(3.0e-3));+float t1498 = (t1495-t1497);+float t1499 = (t1498*float(0.8));+float t1500 = (t1493*t1499);+float t1501 = (3.1415927/2);+float t1502 = (t1417-t1501);+float t1503 = (3.1415927/2);+float t1504 = (t8-t1503);+float t1505 = (t1502-t1504);+float t1506 = abs(t1505);+float t1507 = (t1506/2);+float t1508 = sin(t1507);+float t1509 = (t1508*t1508);+float t1510 = cos(t1504);+float t1511 = cos(t1502);+float t1512 = (t1510*t1511);+float t1513 = (t1435+3.1415927);+float t1514 = (3.1415927*2);+float t1515 = mod(t1513,t1514);+float t1516 = (t1515-3.1415927);+float t1517 = (t118+3.1415927);+float t1518 = (3.1415927*2);+float t1519 = mod(t1517,t1518);+float t1520 = (t1519-3.1415927);+float t1521 = (t1516-t1520);+float t1522 = abs(t1521);+float t1523 = (t1522/2);+float t1524 = sin(t1523);+float t1525 = (t1524*t1524);+float t1526 = (t1512*t1525);+float t1527 = (t1509+t1526);+float t1528 = sqrt(t1527);+float t1529 = asin(t1528);+float t1530 = (2*t1529);+float t1531 = step(t1500,t1530);+float t1532 = (1-t1531);+float t1533 = (t1385*t1532);+float t1534 = (3.1415927/2);+float t1535 = (t8-t1534);+float t1536 = (3.1415927/2);+float t1537 = (t1417-t1536);+float t1538 = (t1535-t1537);+float t1539 = abs(t1538);+float t1540 = (t1539/2);+float t1541 = sin(t1540);+float t1542 = (t1541*t1541);+float t1543 = cos(t1537);+float t1544 = cos(t1535);+float t1545 = (t1543*t1544);+float t1546 = (t118+3.1415927);+float t1547 = (3.1415927*2);+float t1548 = mod(t1546,t1547);+float t1549 = (t1548-3.1415927);+float t1550 = (t1435+3.1415927);+float t1551 = (3.1415927*2);+float t1552 = mod(t1550,t1551);+float t1553 = (t1552-3.1415927);+float t1554 = (t1549-t1553);+float t1555 = abs(t1554);+float t1556 = (t1555/2);+float t1557 = sin(t1556);+float t1558 = (t1557*t1557);+float t1559 = (t1545*t1558);+float t1560 = (t1542+t1559);+float t1561 = sqrt(t1560);+float t1562 = asin(t1561);+float t1563 = (2*t1562);+float t1564 = (1/t1563);+float t1565 = (t1564*t1499);+float t1566 = (t1565*float(1.25e-2));+float t1567 = (u4.u0*t1373);+float t1568 = cos(t1567);+float t1569 = (t1568+1);+float t1570 = (t1569/2);+float t1571 = (t1566*t1570);+float t1572 = (t1571*t1385);+float t1573 = (t1533+t1572);+float t1574 = (0+t1573);+float t1575 = (t1346/36);+float t1576 = (t1346/36);+float t1577 = (t1576*float(842.378));+float t1578 = fract(t1577);+float t1579 = (t1578+float(45.32));+float t1580 = (t1579+u6.u0);+float t1581 = (t1578*t1580);+float t1582 = (t1362+1);+float t1583 = (t1582/t1359);+float t1584 = (t1583*float(1734.048));+float t1585 = fract(t1584);+float t1586 = (t1585+float(45.32));+float t1587 = (t1586+u6.u0);+float t1588 = (t1585*t1587);+float t1589 = (t1581+t1588);+float t1590 = (t1578+t1589);+float t1591 = (t1585+t1589);+float t1592 = (t1590*t1591);+float t1593 = fract(t1592);+float t1594 = (t1593*5);+float t1595 = (t1575+t1594);+float t1596 = fract(t1595);+float t1597 = (t1596*12000);+float t1598 = (t1597/1000);+bool t1599 = (1<=t1598);+float t1600;+if(t1599){+t1600 = 1;+} else {+t1600 = t1598;+}+float t1601 = (t1597-6000);+float t1602 = (t1601/8000);+bool t1603 = (0>=t1602);+float t1604;+if(t1603){+t1604 = 0;+} else {+t1604 = t1602;+}+float t1605 = (t1600-t1604);+float t1606 = (t1593*173);+float t1607 = fract(t1606);+float t1608 = step(float(0.66),t1607);+float t1609 = (t1608*3);+float t1610 = (3+t1609);+float t1611 = (3.1415927/t1610);+float t1612 = cos(t1611);+float t1613 = (1-t1612);+float t1614 = (t1346*t1344);+float t1615 = (t1346/36);+float t1616 = (t1615*float(842.378));+float t1617 = fract(t1616);+float t1618 = (t1617+float(45.32));+float t1619 = (t1618+u6.u0);+float t1620 = (t1617*t1619);+float t1621 = (t1582/t1359);+float t1622 = (t1621*float(1734.048));+float t1623 = fract(t1622);+float t1624 = (t1623+float(45.32));+float t1625 = (t1624+u6.u0);+float t1626 = (t1623*t1625);+float t1627 = (t1620+t1626);+float t1628 = (t1617+t1627);+float t1629 = (t1623+t1627);+float t1630 = (t1628*t1629);+float t1631 = fract(t1630);+float t1632 = (t1631*float(2852.02));+float t1633 = fract(t1632);+float t1634 = (t1633-float(0.5));+float t1635 = (t1634*t1344);+float t1636 = (t1635*float(0.75));+float t1637 = (t1614+t1636);+float t1638 = cos(t1637);+float t1639 = (1*t1638);+float t1640 = (t1639*0);+float t1641 = sin(t1637);+float t1642 = (1*t1641);+float t1643 = (3.1415927/t1359);+float t1644 = (t1582*t1643);+float t1645 = (t1631*float(97372.83));+float t1646 = fract(t1645);+float t1647 = (t1646-float(0.5));+float t1648 = (3.1415927/t1359);+float t1649 = (t1647*t1648);+float t1650 = (t1649*float(0.75));+float t1651 = (t1644+t1650);+float t1652 = (t1651+3.1415927);+float t1653 = mod(t1652,t1433);+float t1654 = (t1653-3.1415927);+float t1655 = cos(t1654);+float t1656 = (t1642*t1655);+float t1657 = (t1656*1);+float t1658 = (t1640-t1657);+float t1659 = sin(t8);+float t1660 = (1*t1659);+float t1661 = sin(t118);+float t1662 = (t1660*t1661);+float t1663 = (t1658*t1662);+float t1664 = (t1656*0);+float t1665 = sin(t1637);+float t1666 = (1*t1665);+float t1667 = sin(t1654);+float t1668 = (t1666*t1667);+float t1669 = (t1668*0);+float t1670 = (t1664-t1669);+float t1671 = cos(t8);+float t1672 = (1*t1671);+float t1673 = (t1670*t1672);+float t1674 = (t1663+t1673);+float t1675 = (t1668*1);+float t1676 = (t1639*0);+float t1677 = (t1675-t1676);+float t1678 = sin(t8);+float t1679 = (1*t1678);+float t1680 = cos(t118);+float t1681 = (t1679*t1680);+float t1682 = (t1677*t1681);+float t1683 = (t1674+t1682);+float t1684 = (t1670*t1656);+float t1685 = (t1677*t1639);+float t1686 = (t1684-t1685);+float t1687 = (t1686*t1662);+float t1688 = (t1677*t1668);+float t1689 = (t1658*t1656);+float t1690 = (t1688-t1689);+float t1691 = (t1690*t1672);+float t1692 = (t1687+t1691);+float t1693 = (t1658*t1639);+float t1694 = (t1670*t1668);+float t1695 = (t1693-t1694);+float t1696 = (t1695*t1681);+float t1697 = (t1692+t1696);+float t1698 = atan(t1683,t1697);+float t1699 = (t1698+3.1415927);+float t1700 = (t1607*3.1415927);+float t1701 = (t1699+t1700);+float t1702 = (t1701/t1483);+float t1703 = fract(t1702);+float t1704 = (t1703*t1610);+float t1705 = fract(t1704);+float t1706 = (t1705*2);+float t1707 = (t1706-1);+float t1708 = abs(t1707);+float t1709 = (t1708*t1708);+float t1710 = (t1613*t1709);+float t1711 = (t1612+t1710);+float t1712 = (t1593*float(8.0e-3));+float t1713 = (float(1.0e-3)+t1712);+float t1714 = step(float(0.66),t1607);+float t1715 = (t1714*float(3.0e-3));+float t1716 = (t1713-t1715);+float t1717 = (t1716*float(0.8));+float t1718 = (t1711*t1717);+float t1719 = (3.1415927/2);+float t1720 = (t1637-t1719);+float t1721 = (3.1415927/2);+float t1722 = (t8-t1721);+float t1723 = (t1720-t1722);+float t1724 = abs(t1723);+float t1725 = (t1724/2);+float t1726 = sin(t1725);+float t1727 = (t1726*t1726);+float t1728 = cos(t1722);+float t1729 = cos(t1720);+float t1730 = (t1728*t1729);+float t1731 = (t1654+3.1415927);+float t1732 = (3.1415927*2);+float t1733 = mod(t1731,t1732);+float t1734 = (t1733-3.1415927);+float t1735 = (t118+3.1415927);+float t1736 = (3.1415927*2);+float t1737 = mod(t1735,t1736);+float t1738 = (t1737-3.1415927);+float t1739 = (t1734-t1738);+float t1740 = abs(t1739);+float t1741 = (t1740/2);+float t1742 = sin(t1741);+float t1743 = (t1742*t1742);+float t1744 = (t1730*t1743);+float t1745 = (t1727+t1744);+float t1746 = sqrt(t1745);+float t1747 = asin(t1746);+float t1748 = (2*t1747);+float t1749 = step(t1718,t1748);+float t1750 = (1-t1749);+float t1751 = (t1605*t1750);+float t1752 = (3.1415927/2);+float t1753 = (t8-t1752);+float t1754 = (3.1415927/2);+float t1755 = (t1637-t1754);+float t1756 = (t1753-t1755);+float t1757 = abs(t1756);+float t1758 = (t1757/2);+float t1759 = sin(t1758);+float t1760 = (t1759*t1759);+float t1761 = cos(t1755);+float t1762 = cos(t1753);+float t1763 = (t1761*t1762);+float t1764 = (t118+3.1415927);+float t1765 = (3.1415927*2);+float t1766 = mod(t1764,t1765);+float t1767 = (t1766-3.1415927);+float t1768 = (t1654+3.1415927);+float t1769 = (3.1415927*2);+float t1770 = mod(t1768,t1769);+float t1771 = (t1770-3.1415927);+float t1772 = (t1767-t1771);+float t1773 = abs(t1772);+float t1774 = (t1773/2);+float t1775 = sin(t1774);+float t1776 = (t1775*t1775);+float t1777 = (t1763*t1776);+float t1778 = (t1760+t1777);+float t1779 = sqrt(t1778);+float t1780 = asin(t1779);+float t1781 = (2*t1780);+float t1782 = (1/t1781);+float t1783 = (t1782*t1717);+float t1784 = (t1783*float(1.25e-2));+float t1785 = (u4.u0*t1593);+float t1786 = cos(t1785);+float t1787 = (t1786+1);+float t1788 = (t1787/2);+float t1789 = (t1784*t1788);+float t1790 = (t1789*t1605);+float t1791 = (t1751+t1790);+float t1792 = (t1574+t1791);+float t1793 = (t1346/36);+float t1794 = (t1346/36);+float t1795 = (t1794*float(842.378));+float t1796 = fract(t1795);+float t1797 = (t1796+float(45.32));+float t1798 = (t1797+u6.u0);+float t1799 = (t1796*t1798);+float t1800 = (t1362+2);+float t1801 = (t1800/t1359);+float t1802 = (t1801*float(1734.048));+float t1803 = fract(t1802);+float t1804 = (t1803+float(45.32));+float t1805 = (t1804+u6.u0);+float t1806 = (t1803*t1805);+float t1807 = (t1799+t1806);+float t1808 = (t1796+t1807);+float t1809 = (t1803+t1807);+float t1810 = (t1808*t1809);+float t1811 = fract(t1810);+float t1812 = (t1811*5);+float t1813 = (t1793+t1812);+float t1814 = fract(t1813);+float t1815 = (t1814*12000);+float t1816 = (t1815/1000);+bool t1817 = (1<=t1816);+float t1818;+if(t1817){+t1818 = 1;+} else {+t1818 = t1816;+}+float t1819 = (t1815-6000);+float t1820 = (t1819/8000);+bool t1821 = (0>=t1820);+float t1822;+if(t1821){+t1822 = 0;+} else {+t1822 = t1820;+}+float t1823 = (t1818-t1822);+float t1824 = (t1811*173);+float t1825 = fract(t1824);+float t1826 = step(float(0.66),t1825);+float t1827 = (t1826*3);+float t1828 = (3+t1827);+float t1829 = (3.1415927/t1828);+float t1830 = cos(t1829);+float t1831 = (1-t1830);+float t1832 = (t1346*t1344);+float t1833 = (t1346/36);+float t1834 = (t1833*float(842.378));+float t1835 = fract(t1834);+float t1836 = (t1835+float(45.32));+float t1837 = (t1836+u6.u0);+float t1838 = (t1835*t1837);+float t1839 = (t1800/t1359);+float t1840 = (t1839*float(1734.048));+float t1841 = fract(t1840);+float t1842 = (t1841+float(45.32));+float t1843 = (t1842+u6.u0);+float t1844 = (t1841*t1843);+float t1845 = (t1838+t1844);+float t1846 = (t1835+t1845);+float t1847 = (t1841+t1845);+float t1848 = (t1846*t1847);+float t1849 = fract(t1848);+float t1850 = (t1849*float(2852.02));+float t1851 = fract(t1850);+float t1852 = (t1851-float(0.5));+float t1853 = (t1852*t1344);+float t1854 = (t1853*float(0.75));+float t1855 = (t1832+t1854);+float t1856 = cos(t1855);+float t1857 = (1*t1856);+float t1858 = (t1857*0);+float t1859 = sin(t1855);+float t1860 = (1*t1859);+float t1861 = (3.1415927/t1359);+float t1862 = (t1800*t1861);+float t1863 = (t1849*float(97372.83));+float t1864 = fract(t1863);+float t1865 = (t1864-float(0.5));+float t1866 = (3.1415927/t1359);+float t1867 = (t1865*t1866);+float t1868 = (t1867*float(0.75));+float t1869 = (t1862+t1868);+float t1870 = (t1869+3.1415927);+float t1871 = mod(t1870,t1433);+float t1872 = (t1871-3.1415927);+float t1873 = cos(t1872);+float t1874 = (t1860*t1873);+float t1875 = (t1874*1);+float t1876 = (t1858-t1875);+float t1877 = sin(t8);+float t1878 = (1*t1877);+float t1879 = sin(t118);+float t1880 = (t1878*t1879);+float t1881 = (t1876*t1880);+float t1882 = (t1874*0);+float t1883 = sin(t1855);+float t1884 = (1*t1883);+float t1885 = sin(t1872);+float t1886 = (t1884*t1885);+float t1887 = (t1886*0);+float t1888 = (t1882-t1887);+float t1889 = cos(t8);+float t1890 = (1*t1889);+float t1891 = (t1888*t1890);+float t1892 = (t1881+t1891);+float t1893 = (t1886*1);+float t1894 = (t1857*0);+float t1895 = (t1893-t1894);+float t1896 = sin(t8);+float t1897 = (1*t1896);+float t1898 = cos(t118);+float t1899 = (t1897*t1898);+float t1900 = (t1895*t1899);+float t1901 = (t1892+t1900);+float t1902 = (t1888*t1874);+float t1903 = (t1895*t1857);+float t1904 = (t1902-t1903);+float t1905 = (t1904*t1880);+float t1906 = (t1895*t1886);+float t1907 = (t1876*t1874);+float t1908 = (t1906-t1907);+float t1909 = (t1908*t1890);+float t1910 = (t1905+t1909);+float t1911 = (t1876*t1857);+float t1912 = (t1888*t1886);+float t1913 = (t1911-t1912);+float t1914 = (t1913*t1899);+float t1915 = (t1910+t1914);+float t1916 = atan(t1901,t1915);+float t1917 = (t1916+3.1415927);+float t1918 = (t1825*3.1415927);+float t1919 = (t1917+t1918);+float t1920 = (t1919/t1483);+float t1921 = fract(t1920);+float t1922 = (t1921*t1828);+float t1923 = fract(t1922);+float t1924 = (t1923*2);+float t1925 = (t1924-1);+float t1926 = abs(t1925);+float t1927 = (t1926*t1926);+float t1928 = (t1831*t1927);+float t1929 = (t1830+t1928);+float t1930 = (t1811*float(8.0e-3));+float t1931 = (float(1.0e-3)+t1930);+float t1932 = step(float(0.66),t1825);+float t1933 = (t1932*float(3.0e-3));+float t1934 = (t1931-t1933);+float t1935 = (t1934*float(0.8));+float t1936 = (t1929*t1935);+float t1937 = (3.1415927/2);+float t1938 = (t1855-t1937);+float t1939 = (3.1415927/2);+float t1940 = (t8-t1939);+float t1941 = (t1938-t1940);+float t1942 = abs(t1941);+float t1943 = (t1942/2);+float t1944 = sin(t1943);+float t1945 = (t1944*t1944);+float t1946 = cos(t1940);+float t1947 = cos(t1938);+float t1948 = (t1946*t1947);+float t1949 = (t1872+3.1415927);+float t1950 = (3.1415927*2);+float t1951 = mod(t1949,t1950);+float t1952 = (t1951-3.1415927);+float t1953 = (t118+3.1415927);+float t1954 = (3.1415927*2);+float t1955 = mod(t1953,t1954);+float t1956 = (t1955-3.1415927);+float t1957 = (t1952-t1956);+float t1958 = abs(t1957);+float t1959 = (t1958/2);+float t1960 = sin(t1959);+float t1961 = (t1960*t1960);+float t1962 = (t1948*t1961);+float t1963 = (t1945+t1962);+float t1964 = sqrt(t1963);+float t1965 = asin(t1964);+float t1966 = (2*t1965);+float t1967 = step(t1936,t1966);+float t1968 = (1-t1967);+float t1969 = (t1823*t1968);+float t1970 = (3.1415927/2);+float t1971 = (t8-t1970);+float t1972 = (3.1415927/2);+float t1973 = (t1855-t1972);+float t1974 = (t1971-t1973);+float t1975 = abs(t1974);+float t1976 = (t1975/2);+float t1977 = sin(t1976);+float t1978 = (t1977*t1977);+float t1979 = cos(t1973);+float t1980 = cos(t1971);+float t1981 = (t1979*t1980);+float t1982 = (t118+3.1415927);+float t1983 = (3.1415927*2);+float t1984 = mod(t1982,t1983);+float t1985 = (t1984-3.1415927);+float t1986 = (t1872+3.1415927);+float t1987 = (3.1415927*2);+float t1988 = mod(t1986,t1987);+float t1989 = (t1988-3.1415927);+float t1990 = (t1985-t1989);+float t1991 = abs(t1990);+float t1992 = (t1991/2);+float t1993 = sin(t1992);+float t1994 = (t1993*t1993);+float t1995 = (t1981*t1994);+float t1996 = (t1978+t1995);+float t1997 = sqrt(t1996);+float t1998 = asin(t1997);+float t1999 = (2*t1998);+float t2000 = (1/t1999);+float t2001 = (t2000*t1935);+float t2002 = (t2001*float(1.25e-2));+float t2003 = (u4.u0*t1811);+float t2004 = cos(t2003);+float t2005 = (t2004+1);+float t2006 = (t2005/2);+float t2007 = (t2002*t2006);+float t2008 = (t2007*t1823);+float t2009 = (t1969+t2008);+float t2010 = (t1792+t2009);+float t2011 = (t1346+1);+float t2012 = (t2011/36);+float t2013 = (t2011/36);+float t2014 = (t2013*float(842.378));+float t2015 = fract(t2014);+float t2016 = (t2015+float(45.32));+float t2017 = (t2016+u6.u0);+float t2018 = (t2015*t2017);+float t2019 = (t2011/36);+float t2020 = (t2019*3.1415927);+float t2021 = sin(t2020);+float t2022 = (36*t2021);+float t2023 = floor(t2022);+float t2024 = (t2023+1);+float t2025 = (3.1415927/t2024);+float t2026 = (t118/t2025);+float t2027 = floor(t2026);+float t2028 = (t2027/t2024);+float t2029 = (t2028*float(1734.048));+float t2030 = fract(t2029);+float t2031 = (t2030+float(45.32));+float t2032 = (t2031+u6.u0);+float t2033 = (t2030*t2032);+float t2034 = (t2018+t2033);+float t2035 = (t2015+t2034);+float t2036 = (t2030+t2034);+float t2037 = (t2035*t2036);+float t2038 = fract(t2037);+float t2039 = (t2038*5);+float t2040 = (t2012+t2039);+float t2041 = fract(t2040);+float t2042 = (t2041*12000);+float t2043 = (t2042/1000);+bool t2044 = (1<=t2043);+float t2045;+if(t2044){+t2045 = 1;+} else {+t2045 = t2043;+}+float t2046 = (t2042-6000);+float t2047 = (t2046/8000);+bool t2048 = (0>=t2047);+float t2049;+if(t2048){+t2049 = 0;+} else {+t2049 = t2047;+}+float t2050 = (t2045-t2049);+float t2051 = (t2038*173);+float t2052 = fract(t2051);+float t2053 = step(float(0.66),t2052);+float t2054 = (t2053*3);+float t2055 = (3+t2054);+float t2056 = (3.1415927/t2055);+float t2057 = cos(t2056);+float t2058 = (1-t2057);+float t2059 = (t2011*t1344);+float t2060 = (t2011/36);+float t2061 = (t2060*float(842.378));+float t2062 = fract(t2061);+float t2063 = (t2062+float(45.32));+float t2064 = (t2063+u6.u0);+float t2065 = (t2062*t2064);+float t2066 = (t2027/t2024);+float t2067 = (t2066*float(1734.048));+float t2068 = fract(t2067);+float t2069 = (t2068+float(45.32));+float t2070 = (t2069+u6.u0);+float t2071 = (t2068*t2070);+float t2072 = (t2065+t2071);+float t2073 = (t2062+t2072);+float t2074 = (t2068+t2072);+float t2075 = (t2073*t2074);+float t2076 = fract(t2075);+float t2077 = (t2076*float(2852.02));+float t2078 = fract(t2077);+float t2079 = (t2078-float(0.5));+float t2080 = (t2079*t1344);+float t2081 = (t2080*float(0.75));+float t2082 = (t2059+t2081);+float t2083 = cos(t2082);+float t2084 = (1*t2083);+float t2085 = (t2084*0);+float t2086 = sin(t2082);+float t2087 = (1*t2086);+float t2088 = (3.1415927/t2024);+float t2089 = (t2027*t2088);+float t2090 = (t2076*float(97372.83));+float t2091 = fract(t2090);+float t2092 = (t2091-float(0.5));+float t2093 = (3.1415927/t2024);+float t2094 = (t2092*t2093);+float t2095 = (t2094*float(0.75));+float t2096 = (t2089+t2095);+float t2097 = (t2096+3.1415927);+float t2098 = mod(t2097,t1433);+float t2099 = (t2098-3.1415927);+float t2100 = cos(t2099);+float t2101 = (t2087*t2100);+float t2102 = (t2101*1);+float t2103 = (t2085-t2102);+float t2104 = sin(t8);+float t2105 = (1*t2104);+float t2106 = sin(t118);+float t2107 = (t2105*t2106);+float t2108 = (t2103*t2107);+float t2109 = (t2101*0);+float t2110 = sin(t2082);+float t2111 = (1*t2110);+float t2112 = sin(t2099);+float t2113 = (t2111*t2112);+float t2114 = (t2113*0);+float t2115 = (t2109-t2114);+float t2116 = cos(t8);+float t2117 = (1*t2116);+float t2118 = (t2115*t2117);+float t2119 = (t2108+t2118);+float t2120 = (t2113*1);+float t2121 = (t2084*0);+float t2122 = (t2120-t2121);+float t2123 = sin(t8);+float t2124 = (1*t2123);+float t2125 = cos(t118);+float t2126 = (t2124*t2125);+float t2127 = (t2122*t2126);+float t2128 = (t2119+t2127);+float t2129 = (t2115*t2101);+float t2130 = (t2122*t2084);+float t2131 = (t2129-t2130);+float t2132 = (t2131*t2107);+float t2133 = (t2122*t2113);+float t2134 = (t2103*t2101);+float t2135 = (t2133-t2134);+float t2136 = (t2135*t2117);+float t2137 = (t2132+t2136);+float t2138 = (t2103*t2084);+float t2139 = (t2115*t2113);+float t2140 = (t2138-t2139);+float t2141 = (t2140*t2126);+float t2142 = (t2137+t2141);+float t2143 = atan(t2128,t2142);+float t2144 = (t2143+3.1415927);+float t2145 = (t2052*3.1415927);+float t2146 = (t2144+t2145);+float t2147 = (t2146/t1483);+float t2148 = fract(t2147);+float t2149 = (t2148*t2055);+float t2150 = fract(t2149);+float t2151 = (t2150*2);+float t2152 = (t2151-1);+float t2153 = abs(t2152);+float t2154 = (t2153*t2153);+float t2155 = (t2058*t2154);+float t2156 = (t2057+t2155);+float t2157 = (t2038*float(8.0e-3));+float t2158 = (float(1.0e-3)+t2157);+float t2159 = step(float(0.66),t2052);+float t2160 = (t2159*float(3.0e-3));+float t2161 = (t2158-t2160);+float t2162 = (t2161*float(0.8));+float t2163 = (t2156*t2162);+float t2164 = (3.1415927/2);+float t2165 = (t2082-t2164);+float t2166 = (3.1415927/2);+float t2167 = (t8-t2166);+float t2168 = (t2165-t2167);+float t2169 = abs(t2168);+float t2170 = (t2169/2);+float t2171 = sin(t2170);+float t2172 = (t2171*t2171);+float t2173 = cos(t2167);+float t2174 = cos(t2165);+float t2175 = (t2173*t2174);+float t2176 = (t2099+3.1415927);+float t2177 = (3.1415927*2);+float t2178 = mod(t2176,t2177);+float t2179 = (t2178-3.1415927);+float t2180 = (t118+3.1415927);+float t2181 = (3.1415927*2);+float t2182 = mod(t2180,t2181);+float t2183 = (t2182-3.1415927);+float t2184 = (t2179-t2183);+float t2185 = abs(t2184);+float t2186 = (t2185/2);+float t2187 = sin(t2186);+float t2188 = (t2187*t2187);+float t2189 = (t2175*t2188);+float t2190 = (t2172+t2189);+float t2191 = sqrt(t2190);+float t2192 = asin(t2191);+float t2193 = (2*t2192);+float t2194 = step(t2163,t2193);+float t2195 = (1-t2194);+float t2196 = (t2050*t2195);+float t2197 = (3.1415927/2);+float t2198 = (t8-t2197);+float t2199 = (3.1415927/2);+float t2200 = (t2082-t2199);+float t2201 = (t2198-t2200);+float t2202 = abs(t2201);+float t2203 = (t2202/2);+float t2204 = sin(t2203);+float t2205 = (t2204*t2204);+float t2206 = cos(t2200);+float t2207 = cos(t2198);+float t2208 = (t2206*t2207);+float t2209 = (t118+3.1415927);+float t2210 = (3.1415927*2);+float t2211 = mod(t2209,t2210);+float t2212 = (t2211-3.1415927);+float t2213 = (t2099+3.1415927);+float t2214 = (3.1415927*2);+float t2215 = mod(t2213,t2214);+float t2216 = (t2215-3.1415927);+float t2217 = (t2212-t2216);+float t2218 = abs(t2217);+float t2219 = (t2218/2);+float t2220 = sin(t2219);+float t2221 = (t2220*t2220);+float t2222 = (t2208*t2221);+float t2223 = (t2205+t2222);+float t2224 = sqrt(t2223);+float t2225 = asin(t2224);+float t2226 = (2*t2225);+float t2227 = (1/t2226);+float t2228 = (t2227*t2162);+float t2229 = (t2228*float(1.25e-2));+float t2230 = (u4.u0*t2038);+float t2231 = cos(t2230);+float t2232 = (t2231+1);+float t2233 = (t2232/2);+float t2234 = (t2229*t2233);+float t2235 = (t2234*t2050);+float t2236 = (t2196+t2235);+float t2237 = (t2010+t2236);+float t2238 = (t1346*t1344);+float t2239 = (t1346/36);+float t2240 = (t2239*float(842.378));+float t2241 = fract(t2240);+float t2242 = (t2241+float(45.32));+float t2243 = (t2242+u6.u0);+float t2244 = (t2241*t2243);+float t2245 = (t1582/t1359);+float t2246 = (t2245*float(1734.048));+float t2247 = fract(t2246);+float t2248 = (t2247+float(45.32));+float t2249 = (t2248+u6.u0);+float t2250 = (t2247*t2249);+float t2251 = (t2244+t2250);+float t2252 = (t2241+t2251);+float t2253 = (t2247+t2251);+float t2254 = (t2252*t2253);+float t2255 = fract(t2254);+float t2256 = (t2255*float(2852.02));+float t2257 = fract(t2256);+float t2258 = (t2257-float(0.5));+float t2259 = (t2258*t1344);+float t2260 = (t2259*float(0.75));+float t2261 = (t2238+t2260);+float t2262 = (3.1415927/2);+float t2263 = (t2261-t2262);+float t2264 = (t1346*t1344);+float t2265 = (t1346/36);+float t2266 = (t2265*float(842.378));+float t2267 = fract(t2266);+float t2268 = (t2267+float(45.32));+float t2269 = (t2268+u6.u0);+float t2270 = (t2267*t2269);+float t2271 = (t1362/t1359);+float t2272 = (t2271*float(1734.048));+float t2273 = fract(t2272);+float t2274 = (t2273+float(45.32));+float t2275 = (t2274+u6.u0);+float t2276 = (t2273*t2275);+float t2277 = (t2270+t2276);+float t2278 = (t2267+t2277);+float t2279 = (t2273+t2277);+float t2280 = (t2278*t2279);+float t2281 = fract(t2280);+float t2282 = (t2281*float(2852.02));+float t2283 = fract(t2282);+float t2284 = (t2283-float(0.5));+float t2285 = (t2284*t1344);+float t2286 = (t2285*float(0.75));+float t2287 = (t2264+t2286);+float t2288 = (3.1415927/2);+float t2289 = (t2287-t2288);+float t2290 = (t2263-t2289);+float t2291 = abs(t2290);+float t2292 = (t2291/2);+float t2293 = sin(t2292);+float t2294 = (t2293*t2293);+float t2295 = cos(t2289);+float t2296 = cos(t2263);+float t2297 = (t2295*t2296);+float t2298 = (3.1415927/t1359);+float t2299 = (t1582*t2298);+float t2300 = (t2255*float(97372.83));+float t2301 = fract(t2300);+float t2302 = (t2301-float(0.5));+float t2303 = (3.1415927/t1359);+float t2304 = (t2302*t2303);+float t2305 = (t2304*float(0.75));+float t2306 = (t2299+t2305);+float t2307 = (t2306+3.1415927);+float t2308 = mod(t2307,t1433);+float t2309 = (t2308-3.1415927);+float t2310 = (t2309+3.1415927);+float t2311 = (3.1415927*2);+float t2312 = mod(t2310,t2311);+float t2313 = (t2312-3.1415927);+float t2314 = (3.1415927/t1359);+float t2315 = (t1362*t2314);+float t2316 = (t2281*float(97372.83));+float t2317 = fract(t2316);+float t2318 = (t2317-float(0.5));+float t2319 = (3.1415927/t1359);+float t2320 = (t2318*t2319);+float t2321 = (t2320*float(0.75));+float t2322 = (t2315+t2321);+float t2323 = (t2322+3.1415927);+float t2324 = mod(t2323,t1433);+float t2325 = (t2324-3.1415927);+float t2326 = (t2325+3.1415927);+float t2327 = (3.1415927*2);+float t2328 = mod(t2326,t2327);+float t2329 = (t2328-3.1415927);+float t2330 = (t2313-t2329);+float t2331 = abs(t2330);+float t2332 = (t2331/2);+float t2333 = sin(t2332);+float t2334 = (t2333*t2333);+float t2335 = (t2297*t2334);+float t2336 = (t2294+t2335);+float t2337 = sqrt(t2336);+float t2338 = asin(t2337);+float t2339 = (2*t2338);+float t2340 = (3.1415927/2);+float t2341 = (t8-t2340);+float t2342 = (3.1415927/2);+float t2343 = (t2287-t2342);+float t2344 = (t2341-t2343);+float t2345 = abs(t2344);+float t2346 = (t2345/2);+float t2347 = sin(t2346);+float t2348 = (t2347*t2347);+float t2349 = cos(t2343);+float t2350 = cos(t2341);+float t2351 = (t2349*t2350);+float t2352 = (t118+3.1415927);+float t2353 = (3.1415927*2);+float t2354 = mod(t2352,t2353);+float t2355 = (t2354-3.1415927);+float t2356 = (t2325+3.1415927);+float t2357 = (3.1415927*2);+float t2358 = mod(t2356,t2357);+float t2359 = (t2358-3.1415927);+float t2360 = (t2355-t2359);+float t2361 = abs(t2360);+float t2362 = (t2361/2);+float t2363 = sin(t2362);+float t2364 = (t2363*t2363);+float t2365 = (t2351*t2364);+float t2366 = (t2348+t2365);+float t2367 = sqrt(t2366);+float t2368 = asin(t2367);+float t2369 = (2*t2368);+float t2370 = (t2339-t2369);+float t2371 = (3.1415927/2);+float t2372 = (t8-t2371);+float t2373 = (3.1415927/2);+float t2374 = (t2261-t2373);+float t2375 = (t2372-t2374);+float t2376 = abs(t2375);+float t2377 = (t2376/2);+float t2378 = sin(t2377);+float t2379 = (t2378*t2378);+float t2380 = cos(t2374);+float t2381 = cos(t2372);+float t2382 = (t2380*t2381);+float t2383 = (t118+3.1415927);+float t2384 = (3.1415927*2);+float t2385 = mod(t2383,t2384);+float t2386 = (t2385-3.1415927);+float t2387 = (t2309+3.1415927);+float t2388 = (3.1415927*2);+float t2389 = mod(t2387,t2388);+float t2390 = (t2389-3.1415927);+float t2391 = (t2386-t2390);+float t2392 = abs(t2391);+float t2393 = (t2392/2);+float t2394 = sin(t2393);+float t2395 = (t2394*t2394);+float t2396 = (t2382*t2395);+float t2397 = (t2379+t2396);+float t2398 = sqrt(t2397);+float t2399 = asin(t2398);+float t2400 = (2*t2399);+float t2401 = (t2370-t2400);+float t2402 = abs(t2401);+bool t2403 = (float(1.0e-4)>t2402);+float t2404;+if(t2403){+float t2405 = cos(t2287);+float t2406 = (1*t2405);+float t2407 = sin(t2261);+float t2408 = (1*t2407);+float t2409 = cos(t2309);+float t2410 = (t2408*t2409);+float t2411 = (t2406*t2410);+float t2412 = sin(t2287);+float t2413 = (1*t2412);+float t2414 = cos(t2325);+float t2415 = (t2413*t2414);+float t2416 = cos(t2261);+float t2417 = (1*t2416);+float t2418 = (t2415*t2417);+float t2419 = (t2411-t2418);+float t2420 = sin(t8);+float t2421 = (1*t2420);+float t2422 = sin(t118);+float t2423 = (t2421*t2422);+float t2424 = (t2419*t2423);+float t2425 = sin(t2261);+float t2426 = (1*t2425);+float t2427 = sin(t2309);+float t2428 = (t2426*t2427);+float t2429 = (t2415*t2428);+float t2430 = sin(t2287);+float t2431 = (1*t2430);+float t2432 = sin(t2325);+float t2433 = (t2431*t2432);+float t2434 = (t2433*t2410);+float t2435 = (t2429-t2434);+float t2436 = cos(t8);+float t2437 = (1*t2436);+float t2438 = (t2435*t2437);+float t2439 = (t2424+t2438);+float t2440 = (t2433*t2417);+float t2441 = (t2406*t2428);+float t2442 = (t2440-t2441);+float t2443 = sin(t8);+float t2444 = (1*t2443);+float t2445 = cos(t118);+float t2446 = (t2444*t2445);+float t2447 = (t2442*t2446);+float t2448 = (t2439+t2447);+float t2449 = abs(t2448);+t2404 = t2449;+} else {+float t2450 = (3.1415927/2);+float t2451 = (t8-t2450);+float t2452 = (3.1415927/2);+float t2453 = (t2261-t2452);+float t2454 = (t2451-t2453);+float t2455 = abs(t2454);+float t2456 = (t2455/2);+float t2457 = sin(t2456);+float t2458 = (t2457*t2457);+float t2459 = cos(t2453);+float t2460 = cos(t2451);+float t2461 = (t2459*t2460);+float t2462 = (t118+3.1415927);+float t2463 = (3.1415927*2);+float t2464 = mod(t2462,t2463);+float t2465 = (t2464-3.1415927);+float t2466 = (t2309+3.1415927);+float t2467 = (3.1415927*2);+float t2468 = mod(t2466,t2467);+float t2469 = (t2468-3.1415927);+float t2470 = (t2465-t2469);+float t2471 = abs(t2470);+float t2472 = (t2471/2);+float t2473 = sin(t2472);+float t2474 = (t2473*t2473);+float t2475 = (t2461*t2474);+float t2476 = (t2458+t2475);+float t2477 = sqrt(t2476);+float t2478 = asin(t2477);+float t2479 = (2*t2478);+float t2480 = abs(t2479);+float t2481 = (3.1415927/2);+float t2482 = (t8-t2481);+float t2483 = (3.1415927/2);+float t2484 = (t2287-t2483);+float t2485 = (t2482-t2484);+float t2486 = abs(t2485);+float t2487 = (t2486/2);+float t2488 = sin(t2487);+float t2489 = (t2488*t2488);+float t2490 = cos(t2484);+float t2491 = cos(t2482);+float t2492 = (t2490*t2491);+float t2493 = (t118+3.1415927);+float t2494 = (3.1415927*2);+float t2495 = mod(t2493,t2494);+float t2496 = (t2495-3.1415927);+float t2497 = (t2325+3.1415927);+float t2498 = (3.1415927*2);+float t2499 = mod(t2497,t2498);+float t2500 = (t2499-3.1415927);+float t2501 = (t2496-t2500);+float t2502 = abs(t2501);+float t2503 = (t2502/2);+float t2504 = sin(t2503);+float t2505 = (t2504*t2504);+float t2506 = (t2492*t2505);+float t2507 = (t2489+t2506);+float t2508 = sqrt(t2507);+float t2509 = asin(t2508);+float t2510 = (2*t2509);+float t2511 = abs(t2510);+bool t2512 = (t2480>=t2511);+float t2513;+if(t2512){+t2513 = t2480;+} else {+t2513 = t2511;+}+t2404 = t2513;+}+float t2514 = abs(t2404);+float t2515 = step(float(2.0e-4),t2514);+float t2516 = (1-t2515);+float t2517 = (t1346*t1582);+float t2518 = (t2517*float(842.378));+float t2519 = fract(t2518);+float t2520 = (t2519+float(45.32));+float t2521 = (t2520+u6.u0);+float t2522 = (t2519*t2521);+float t2523 = (t1362*t1346);+float t2524 = (t2523*float(1734.048));+float t2525 = fract(t2524);+float t2526 = (t2525+float(45.32));+float t2527 = (t2526+u6.u0);+float t2528 = (t2525*t2527);+float t2529 = (t2522+t2528);+float t2530 = (t2519+t2529);+float t2531 = (t2525+t2529);+float t2532 = (t2530*t2531);+float t2533 = fract(t2532);+float t2534 = step(float(0.2),t2533);+float t2535 = (t2516*t2534);+float t2536 = (3.1415927/2);+float t2537 = (t2261-t2536);+float t2538 = (3.1415927/2);+float t2539 = (t2287-t2538);+float t2540 = (t2537-t2539);+float t2541 = abs(t2540);+float t2542 = (t2541/2);+float t2543 = sin(t2542);+float t2544 = (t2543*t2543);+float t2545 = cos(t2539);+float t2546 = cos(t2537);+float t2547 = (t2545*t2546);+float t2548 = (t2309+3.1415927);+float t2549 = (3.1415927*2);+float t2550 = mod(t2548,t2549);+float t2551 = (t2550-3.1415927);+float t2552 = (t2325+3.1415927);+float t2553 = (3.1415927*2);+float t2554 = mod(t2552,t2553);+float t2555 = (t2554-3.1415927);+float t2556 = (t2551-t2555);+float t2557 = abs(t2556);+float t2558 = (t2557/2);+float t2559 = sin(t2558);+float t2560 = (t2559*t2559);+float t2561 = (t2547*t2560);+float t2562 = (t2544+t2561);+float t2563 = sqrt(t2562);+float t2564 = asin(t2563);+float t2565 = (2*t2564);+float t2566 = (t2565/t1344);+float t2567 = (1-t2566);+float t2568 = (t1346/36);+float t2569 = (t2568*float(842.378));+float t2570 = fract(t2569);+float t2571 = (t2570+float(45.32));+float t2572 = (t2571+u6.u0);+float t2573 = (t2570*t2572);+float t2574 = (t1362/t1359);+float t2575 = (t2574*float(1734.048));+float t2576 = fract(t2575);+float t2577 = (t2576+float(45.32));+float t2578 = (t2577+u6.u0);+float t2579 = (t2576*t2578);+float t2580 = (t2573+t2579);+float t2581 = (t2570+t2580);+float t2582 = (t2576+t2580);+float t2583 = (t2581*t2582);+float t2584 = fract(t2583);+float t2585 = (t2584*float(8.0e-3));+float t2586 = (float(1.0e-3)+t2585);+float t2587 = (t2584*173);+float t2588 = fract(t2587);+float t2589 = step(float(0.66),t2588);+float t2590 = (t2589*float(3.0e-3));+float t2591 = (t2586-t2590);+float t2592 = (t2591*float(0.8));+float t2593 = (t1346/36);+float t2594 = (t2593*float(842.378));+float t2595 = fract(t2594);+float t2596 = (t2595+float(45.32));+float t2597 = (t2596+u6.u0);+float t2598 = (t2595*t2597);+float t2599 = (t1582/t1359);+float t2600 = (t2599*float(1734.048));+float t2601 = fract(t2600);+float t2602 = (t2601+float(45.32));+float t2603 = (t2602+u6.u0);+float t2604 = (t2601*t2603);+float t2605 = (t2598+t2604);+float t2606 = (t2595+t2605);+float t2607 = (t2601+t2605);+float t2608 = (t2606*t2607);+float t2609 = fract(t2608);+float t2610 = (t2609*float(8.0e-3));+float t2611 = (float(1.0e-3)+t2610);+float t2612 = (t2609*173);+float t2613 = fract(t2612);+float t2614 = step(float(0.66),t2613);+float t2615 = (t2614*float(3.0e-3));+float t2616 = (t2611-t2615);+float t2617 = (t2616*float(0.8));+float t2618 = (t2592-t2617);+float t2619 = abs(t2618);+float t2620 = (t2619-float(1.0e-3));+float t2621 = (t2620/float(8.0e-3));+float t2622 = (1-t2621);+float t2623 = (t2622*t2622);+float t2624 = (t2567*t2623);+float t2625 = (t2535*t2624);+float t2626 = (u4.u0*t2533);+float t2627 = (t2626*3);+float t2628 = sin(t2627);+float t2629 = (t2628+1);+float t2630 = (t2629/2);+float t2631 = (t2630*float(0.66));+float t2632 = (t2631+float(0.33));+float t2633 = (t2625*t2632);+float t2634 = (float(0.2)*t2633);+bool t2635 = (0>=t2634);+float t2636;+if(t2635){+t2636 = 0;+} else {+t2636 = t2634;+}+float t2637 = (t2636*1);+float t2638 = (t2237+t2637);+float t2639 = (t2011*t1344);+float t2640 = (t2011/36);+float t2641 = (t2640*float(842.378));+float t2642 = fract(t2641);+float t2643 = (t2642+float(45.32));+float t2644 = (t2643+u6.u0);+float t2645 = (t2642*t2644);+float t2646 = (t2027/t2024);+float t2647 = (t2646*float(1734.048));+float t2648 = fract(t2647);+float t2649 = (t2648+float(45.32));+float t2650 = (t2649+u6.u0);+float t2651 = (t2648*t2650);+float t2652 = (t2645+t2651);+float t2653 = (t2642+t2652);+float t2654 = (t2648+t2652);+float t2655 = (t2653*t2654);+float t2656 = fract(t2655);+float t2657 = (t2656*float(2852.02));+float t2658 = fract(t2657);+float t2659 = (t2658-float(0.5));+float t2660 = (t2659*t1344);+float t2661 = (t2660*float(0.75));+float t2662 = (t2639+t2661);+float t2663 = (3.1415927/2);+float t2664 = (t2662-t2663);+float t2665 = (t1346*t1344);+float t2666 = (t1346/36);+float t2667 = (t2666*float(842.378));+float t2668 = fract(t2667);+float t2669 = (t2668+float(45.32));+float t2670 = (t2669+u6.u0);+float t2671 = (t2668*t2670);+float t2672 = (t1362/t1359);+float t2673 = (t2672*float(1734.048));+float t2674 = fract(t2673);+float t2675 = (t2674+float(45.32));+float t2676 = (t2675+u6.u0);+float t2677 = (t2674*t2676);+float t2678 = (t2671+t2677);+float t2679 = (t2668+t2678);+float t2680 = (t2674+t2678);+float t2681 = (t2679*t2680);+float t2682 = fract(t2681);+float t2683 = (t2682*float(2852.02));+float t2684 = fract(t2683);+float t2685 = (t2684-float(0.5));+float t2686 = (t2685*t1344);+float t2687 = (t2686*float(0.75));+float t2688 = (t2665+t2687);+float t2689 = (3.1415927/2);+float t2690 = (t2688-t2689);+float t2691 = (t2664-t2690);+float t2692 = abs(t2691);+float t2693 = (t2692/2);+float t2694 = sin(t2693);+float t2695 = (t2694*t2694);+float t2696 = cos(t2690);+float t2697 = cos(t2664);+float t2698 = (t2696*t2697);+float t2699 = (3.1415927/t2024);+float t2700 = (t2027*t2699);+float t2701 = (t2656*float(97372.83));+float t2702 = fract(t2701);+float t2703 = (t2702-float(0.5));+float t2704 = (3.1415927/t2024);+float t2705 = (t2703*t2704);+float t2706 = (t2705*float(0.75));+float t2707 = (t2700+t2706);+float t2708 = (t2707+3.1415927);+float t2709 = mod(t2708,t1433);+float t2710 = (t2709-3.1415927);+float t2711 = (t2710+3.1415927);+float t2712 = (3.1415927*2);+float t2713 = mod(t2711,t2712);+float t2714 = (t2713-3.1415927);+float t2715 = (3.1415927/t1359);+float t2716 = (t1362*t2715);+float t2717 = (t2682*float(97372.83));+float t2718 = fract(t2717);+float t2719 = (t2718-float(0.5));+float t2720 = (3.1415927/t1359);+float t2721 = (t2719*t2720);+float t2722 = (t2721*float(0.75));+float t2723 = (t2716+t2722);+float t2724 = (t2723+3.1415927);+float t2725 = mod(t2724,t1433);+float t2726 = (t2725-3.1415927);+float t2727 = (t2726+3.1415927);+float t2728 = (3.1415927*2);+float t2729 = mod(t2727,t2728);+float t2730 = (t2729-3.1415927);+float t2731 = (t2714-t2730);+float t2732 = abs(t2731);+float t2733 = (t2732/2);+float t2734 = sin(t2733);+float t2735 = (t2734*t2734);+float t2736 = (t2698*t2735);+float t2737 = (t2695+t2736);+float t2738 = sqrt(t2737);+float t2739 = asin(t2738);+float t2740 = (2*t2739);+float t2741 = (3.1415927/2);+float t2742 = (t8-t2741);+float t2743 = (3.1415927/2);+float t2744 = (t2688-t2743);+float t2745 = (t2742-t2744);+float t2746 = abs(t2745);+float t2747 = (t2746/2);+float t2748 = sin(t2747);+float t2749 = (t2748*t2748);+float t2750 = cos(t2744);+float t2751 = cos(t2742);+float t2752 = (t2750*t2751);+float t2753 = (t118+3.1415927);+float t2754 = (3.1415927*2);+float t2755 = mod(t2753,t2754);+float t2756 = (t2755-3.1415927);+float t2757 = (t2726+3.1415927);+float t2758 = (3.1415927*2);+float t2759 = mod(t2757,t2758);+float t2760 = (t2759-3.1415927);+float t2761 = (t2756-t2760);+float t2762 = abs(t2761);+float t2763 = (t2762/2);+float t2764 = sin(t2763);+float t2765 = (t2764*t2764);+float t2766 = (t2752*t2765);+float t2767 = (t2749+t2766);+float t2768 = sqrt(t2767);+float t2769 = asin(t2768);+float t2770 = (2*t2769);+float t2771 = (t2740-t2770);+float t2772 = (3.1415927/2);+float t2773 = (t8-t2772);+float t2774 = (3.1415927/2);+float t2775 = (t2662-t2774);+float t2776 = (t2773-t2775);+float t2777 = abs(t2776);+float t2778 = (t2777/2);+float t2779 = sin(t2778);+float t2780 = (t2779*t2779);+float t2781 = cos(t2775);+float t2782 = cos(t2773);+float t2783 = (t2781*t2782);+float t2784 = (t118+3.1415927);+float t2785 = (3.1415927*2);+float t2786 = mod(t2784,t2785);+float t2787 = (t2786-3.1415927);+float t2788 = (t2710+3.1415927);+float t2789 = (3.1415927*2);+float t2790 = mod(t2788,t2789);+float t2791 = (t2790-3.1415927);+float t2792 = (t2787-t2791);+float t2793 = abs(t2792);+float t2794 = (t2793/2);+float t2795 = sin(t2794);+float t2796 = (t2795*t2795);+float t2797 = (t2783*t2796);+float t2798 = (t2780+t2797);+float t2799 = sqrt(t2798);+float t2800 = asin(t2799);+float t2801 = (2*t2800);+float t2802 = (t2771-t2801);+float t2803 = abs(t2802);+bool t2804 = (float(1.0e-4)>t2803);+float t2805;+if(t2804){+float t2806 = cos(t2688);+float t2807 = (1*t2806);+float t2808 = sin(t2662);+float t2809 = (1*t2808);+float t2810 = cos(t2710);+float t2811 = (t2809*t2810);+float t2812 = (t2807*t2811);+float t2813 = sin(t2688);+float t2814 = (1*t2813);+float t2815 = cos(t2726);+float t2816 = (t2814*t2815);+float t2817 = cos(t2662);+float t2818 = (1*t2817);+float t2819 = (t2816*t2818);+float t2820 = (t2812-t2819);+float t2821 = sin(t8);+float t2822 = (1*t2821);+float t2823 = sin(t118);+float t2824 = (t2822*t2823);+float t2825 = (t2820*t2824);+float t2826 = sin(t2662);+float t2827 = (1*t2826);+float t2828 = sin(t2710);+float t2829 = (t2827*t2828);+float t2830 = (t2816*t2829);+float t2831 = sin(t2688);+float t2832 = (1*t2831);+float t2833 = sin(t2726);+float t2834 = (t2832*t2833);+float t2835 = (t2834*t2811);+float t2836 = (t2830-t2835);+float t2837 = cos(t8);+float t2838 = (1*t2837);+float t2839 = (t2836*t2838);+float t2840 = (t2825+t2839);+float t2841 = (t2834*t2818);+float t2842 = (t2807*t2829);+float t2843 = (t2841-t2842);+float t2844 = sin(t8);+float t2845 = (1*t2844);+float t2846 = cos(t118);+float t2847 = (t2845*t2846);+float t2848 = (t2843*t2847);+float t2849 = (t2840+t2848);+float t2850 = abs(t2849);+t2805 = t2850;+} else {+float t2851 = (3.1415927/2);+float t2852 = (t8-t2851);+float t2853 = (3.1415927/2);+float t2854 = (t2662-t2853);+float t2855 = (t2852-t2854);+float t2856 = abs(t2855);+float t2857 = (t2856/2);+float t2858 = sin(t2857);+float t2859 = (t2858*t2858);+float t2860 = cos(t2854);+float t2861 = cos(t2852);+float t2862 = (t2860*t2861);+float t2863 = (t118+3.1415927);+float t2864 = (3.1415927*2);+float t2865 = mod(t2863,t2864);+float t2866 = (t2865-3.1415927);+float t2867 = (t2710+3.1415927);+float t2868 = (3.1415927*2);+float t2869 = mod(t2867,t2868);+float t2870 = (t2869-3.1415927);+float t2871 = (t2866-t2870);+float t2872 = abs(t2871);+float t2873 = (t2872/2);+float t2874 = sin(t2873);+float t2875 = (t2874*t2874);+float t2876 = (t2862*t2875);+float t2877 = (t2859+t2876);+float t2878 = sqrt(t2877);+float t2879 = asin(t2878);+float t2880 = (2*t2879);+float t2881 = abs(t2880);+float t2882 = (3.1415927/2);+float t2883 = (t8-t2882);+float t2884 = (3.1415927/2);+float t2885 = (t2688-t2884);+float t2886 = (t2883-t2885);+float t2887 = abs(t2886);+float t2888 = (t2887/2);+float t2889 = sin(t2888);+float t2890 = (t2889*t2889);+float t2891 = cos(t2885);+float t2892 = cos(t2883);+float t2893 = (t2891*t2892);+float t2894 = (t118+3.1415927);+float t2895 = (3.1415927*2);+float t2896 = mod(t2894,t2895);+float t2897 = (t2896-3.1415927);+float t2898 = (t2726+3.1415927);+float t2899 = (3.1415927*2);+float t2900 = mod(t2898,t2899);+float t2901 = (t2900-3.1415927);+float t2902 = (t2897-t2901);+float t2903 = abs(t2902);+float t2904 = (t2903/2);+float t2905 = sin(t2904);+float t2906 = (t2905*t2905);+float t2907 = (t2893*t2906);+float t2908 = (t2890+t2907);+float t2909 = sqrt(t2908);+float t2910 = asin(t2909);+float t2911 = (2*t2910);+float t2912 = abs(t2911);+bool t2913 = (t2881>=t2912);+float t2914;+if(t2913){+t2914 = t2881;+} else {+t2914 = t2912;+}+t2805 = t2914;+}+float t2915 = abs(t2805);+float t2916 = step(float(2.0e-4),t2915);+float t2917 = (1-t2916);+float t2918 = (t1346*t2027);+float t2919 = (t2918*float(842.378));+float t2920 = fract(t2919);+float t2921 = (t2920+float(45.32));+float t2922 = (t2921+u6.u0);+float t2923 = (t2920*t2922);+float t2924 = (t1362*t2011);+float t2925 = (t2924*float(1734.048));+float t2926 = fract(t2925);+float t2927 = (t2926+float(45.32));+float t2928 = (t2927+u6.u0);+float t2929 = (t2926*t2928);+float t2930 = (t2923+t2929);+float t2931 = (t2920+t2930);+float t2932 = (t2926+t2930);+float t2933 = (t2931*t2932);+float t2934 = fract(t2933);+float t2935 = step(float(0.2),t2934);+float t2936 = (t2917*t2935);+float t2937 = (3.1415927/2);+float t2938 = (t2662-t2937);+float t2939 = (3.1415927/2);+float t2940 = (t2688-t2939);+float t2941 = (t2938-t2940);+float t2942 = abs(t2941);+float t2943 = (t2942/2);+float t2944 = sin(t2943);+float t2945 = (t2944*t2944);+float t2946 = cos(t2940);+float t2947 = cos(t2938);+float t2948 = (t2946*t2947);+float t2949 = (t2710+3.1415927);+float t2950 = (3.1415927*2);+float t2951 = mod(t2949,t2950);+float t2952 = (t2951-3.1415927);+float t2953 = (t2726+3.1415927);+float t2954 = (3.1415927*2);+float t2955 = mod(t2953,t2954);+float t2956 = (t2955-3.1415927);+float t2957 = (t2952-t2956);+float t2958 = abs(t2957);+float t2959 = (t2958/2);+float t2960 = sin(t2959);+float t2961 = (t2960*t2960);+float t2962 = (t2948*t2961);+float t2963 = (t2945+t2962);+float t2964 = sqrt(t2963);+float t2965 = asin(t2964);+float t2966 = (2*t2965);+float t2967 = (t2966/t1344);+float t2968 = (1-t2967);+float t2969 = (t1346/36);+float t2970 = (t2969*float(842.378));+float t2971 = fract(t2970);+float t2972 = (t2971+float(45.32));+float t2973 = (t2972+u6.u0);+float t2974 = (t2971*t2973);+float t2975 = (t1362/t1359);+float t2976 = (t2975*float(1734.048));+float t2977 = fract(t2976);+float t2978 = (t2977+float(45.32));+float t2979 = (t2978+u6.u0);+float t2980 = (t2977*t2979);+float t2981 = (t2974+t2980);+float t2982 = (t2971+t2981);+float t2983 = (t2977+t2981);+float t2984 = (t2982*t2983);+float t2985 = fract(t2984);+float t2986 = (t2985*float(8.0e-3));+float t2987 = (float(1.0e-3)+t2986);+float t2988 = (t2985*173);+float t2989 = fract(t2988);+float t2990 = step(float(0.66),t2989);+float t2991 = (t2990*float(3.0e-3));+float t2992 = (t2987-t2991);+float t2993 = (t2992*float(0.8));+float t2994 = (t2011/36);+float t2995 = (t2994*float(842.378));+float t2996 = fract(t2995);+float t2997 = (t2996+float(45.32));+float t2998 = (t2997+u6.u0);+float t2999 = (t2996*t2998);+float t3000 = (t2027/t2024);+float t3001 = (t3000*float(1734.048));+float t3002 = fract(t3001);+float t3003 = (t3002+float(45.32));+float t3004 = (t3003+u6.u0);+float t3005 = (t3002*t3004);+float t3006 = (t2999+t3005);+float t3007 = (t2996+t3006);+float t3008 = (t3002+t3006);+float t3009 = (t3007*t3008);+float t3010 = fract(t3009);+float t3011 = (t3010*float(8.0e-3));+float t3012 = (float(1.0e-3)+t3011);+float t3013 = (t3010*173);+float t3014 = fract(t3013);+float t3015 = step(float(0.66),t3014);+float t3016 = (t3015*float(3.0e-3));+float t3017 = (t3012-t3016);+float t3018 = (t3017*float(0.8));+float t3019 = (t2993-t3018);+float t3020 = abs(t3019);+float t3021 = (t3020-float(1.0e-3));+float t3022 = (t3021/float(8.0e-3));+float t3023 = (1-t3022);+float t3024 = (t3023*t3023);+float t3025 = (t2968*t3024);+float t3026 = (t2936*t3025);+float t3027 = (u4.u0*t2934);+float t3028 = (t3027*3);+float t3029 = sin(t3028);+float t3030 = (t3029+1);+float t3031 = (t3030/2);+float t3032 = (t3031*float(0.66));+float t3033 = (t3032+float(0.33));+float t3034 = (t3026*t3033);+float t3035 = (float(0.2)*t3034);+bool t3036 = (0>=t3035);+float t3037;+if(t3036){+t3037 = 0;+} else {+t3037 = t3035;+}+float t3038 = (t3037*1);+float t3039 = (t2638+t3038);+float t3040 = (t2011*t1344);+float t3041 = (t2011/36);+float t3042 = (t3041*float(842.378));+float t3043 = fract(t3042);+float t3044 = (t3043+float(45.32));+float t3045 = (t3044+u6.u0);+float t3046 = (t3043*t3045);+float t3047 = (t2027+1);+float t3048 = (t3047/t2024);+float t3049 = (t3048*float(1734.048));+float t3050 = fract(t3049);+float t3051 = (t3050+float(45.32));+float t3052 = (t3051+u6.u0);+float t3053 = (t3050*t3052);+float t3054 = (t3046+t3053);+float t3055 = (t3043+t3054);+float t3056 = (t3050+t3054);+float t3057 = (t3055*t3056);+float t3058 = fract(t3057);+float t3059 = (t3058*float(2852.02));+float t3060 = fract(t3059);+float t3061 = (t3060-float(0.5));+float t3062 = (t3061*t1344);+float t3063 = (t3062*float(0.75));+float t3064 = (t3040+t3063);+float t3065 = (3.1415927/2);+float t3066 = (t3064-t3065);+float t3067 = (t2011*t1344);+float t3068 = (t2011/36);+float t3069 = (t3068*float(842.378));+float t3070 = fract(t3069);+float t3071 = (t3070+float(45.32));+float t3072 = (t3071+u6.u0);+float t3073 = (t3070*t3072);+float t3074 = (t2027/t2024);+float t3075 = (t3074*float(1734.048));+float t3076 = fract(t3075);+float t3077 = (t3076+float(45.32));+float t3078 = (t3077+u6.u0);+float t3079 = (t3076*t3078);+float t3080 = (t3073+t3079);+float t3081 = (t3070+t3080);+float t3082 = (t3076+t3080);+float t3083 = (t3081*t3082);+float t3084 = fract(t3083);+float t3085 = (t3084*float(2852.02));+float t3086 = fract(t3085);+float t3087 = (t3086-float(0.5));+float t3088 = (t3087*t1344);+float t3089 = (t3088*float(0.75));+float t3090 = (t3067+t3089);+float t3091 = (3.1415927/2);+float t3092 = (t3090-t3091);+float t3093 = (t3066-t3092);+float t3094 = abs(t3093);+float t3095 = (t3094/2);+float t3096 = sin(t3095);+float t3097 = (t3096*t3096);+float t3098 = cos(t3092);+float t3099 = cos(t3066);+float t3100 = (t3098*t3099);+float t3101 = (3.1415927/t2024);+float t3102 = (t3047*t3101);+float t3103 = (t3058*float(97372.83));+float t3104 = fract(t3103);+float t3105 = (t3104-float(0.5));+float t3106 = (3.1415927/t2024);+float t3107 = (t3105*t3106);+float t3108 = (t3107*float(0.75));+float t3109 = (t3102+t3108);+float t3110 = (t3109+3.1415927);+float t3111 = mod(t3110,t1433);+float t3112 = (t3111-3.1415927);+float t3113 = (t3112+3.1415927);+float t3114 = (3.1415927*2);+float t3115 = mod(t3113,t3114);+float t3116 = (t3115-3.1415927);+float t3117 = (3.1415927/t2024);+float t3118 = (t2027*t3117);+float t3119 = (t3084*float(97372.83));+float t3120 = fract(t3119);+float t3121 = (t3120-float(0.5));+float t3122 = (3.1415927/t2024);+float t3123 = (t3121*t3122);+float t3124 = (t3123*float(0.75));+float t3125 = (t3118+t3124);+float t3126 = (t3125+3.1415927);+float t3127 = mod(t3126,t1433);+float t3128 = (t3127-3.1415927);+float t3129 = (t3128+3.1415927);+float t3130 = (3.1415927*2);+float t3131 = mod(t3129,t3130);+float t3132 = (t3131-3.1415927);+float t3133 = (t3116-t3132);+float t3134 = abs(t3133);+float t3135 = (t3134/2);+float t3136 = sin(t3135);+float t3137 = (t3136*t3136);+float t3138 = (t3100*t3137);+float t3139 = (t3097+t3138);+float t3140 = sqrt(t3139);+float t3141 = asin(t3140);+float t3142 = (2*t3141);+float t3143 = (3.1415927/2);+float t3144 = (t8-t3143);+float t3145 = (3.1415927/2);+float t3146 = (t3090-t3145);+float t3147 = (t3144-t3146);+float t3148 = abs(t3147);+float t3149 = (t3148/2);+float t3150 = sin(t3149);+float t3151 = (t3150*t3150);+float t3152 = cos(t3146);+float t3153 = cos(t3144);+float t3154 = (t3152*t3153);+float t3155 = (t118+3.1415927);+float t3156 = (3.1415927*2);+float t3157 = mod(t3155,t3156);+float t3158 = (t3157-3.1415927);+float t3159 = (t3128+3.1415927);+float t3160 = (3.1415927*2);+float t3161 = mod(t3159,t3160);+float t3162 = (t3161-3.1415927);+float t3163 = (t3158-t3162);+float t3164 = abs(t3163);+float t3165 = (t3164/2);+float t3166 = sin(t3165);+float t3167 = (t3166*t3166);+float t3168 = (t3154*t3167);+float t3169 = (t3151+t3168);+float t3170 = sqrt(t3169);+float t3171 = asin(t3170);+float t3172 = (2*t3171);+float t3173 = (t3142-t3172);+float t3174 = (3.1415927/2);+float t3175 = (t8-t3174);+float t3176 = (3.1415927/2);+float t3177 = (t3064-t3176);+float t3178 = (t3175-t3177);+float t3179 = abs(t3178);+float t3180 = (t3179/2);+float t3181 = sin(t3180);+float t3182 = (t3181*t3181);+float t3183 = cos(t3177);+float t3184 = cos(t3175);+float t3185 = (t3183*t3184);+float t3186 = (t118+3.1415927);+float t3187 = (3.1415927*2);+float t3188 = mod(t3186,t3187);+float t3189 = (t3188-3.1415927);+float t3190 = (t3112+3.1415927);+float t3191 = (3.1415927*2);+float t3192 = mod(t3190,t3191);+float t3193 = (t3192-3.1415927);+float t3194 = (t3189-t3193);+float t3195 = abs(t3194);+float t3196 = (t3195/2);+float t3197 = sin(t3196);+float t3198 = (t3197*t3197);+float t3199 = (t3185*t3198);+float t3200 = (t3182+t3199);+float t3201 = sqrt(t3200);+float t3202 = asin(t3201);+float t3203 = (2*t3202);+float t3204 = (t3173-t3203);+float t3205 = abs(t3204);+bool t3206 = (float(1.0e-4)>t3205);+float t3207;+if(t3206){+float t3208 = cos(t3090);+float t3209 = (1*t3208);+float t3210 = sin(t3064);+float t3211 = (1*t3210);+float t3212 = cos(t3112);+float t3213 = (t3211*t3212);+float t3214 = (t3209*t3213);+float t3215 = sin(t3090);+float t3216 = (1*t3215);+float t3217 = cos(t3128);+float t3218 = (t3216*t3217);+float t3219 = cos(t3064);+float t3220 = (1*t3219);+float t3221 = (t3218*t3220);+float t3222 = (t3214-t3221);+float t3223 = sin(t8);+float t3224 = (1*t3223);+float t3225 = sin(t118);+float t3226 = (t3224*t3225);+float t3227 = (t3222*t3226);+float t3228 = sin(t3064);+float t3229 = (1*t3228);+float t3230 = sin(t3112);+float t3231 = (t3229*t3230);+float t3232 = (t3218*t3231);+float t3233 = sin(t3090);+float t3234 = (1*t3233);+float t3235 = sin(t3128);+float t3236 = (t3234*t3235);+float t3237 = (t3236*t3213);+float t3238 = (t3232-t3237);+float t3239 = cos(t8);+float t3240 = (1*t3239);+float t3241 = (t3238*t3240);+float t3242 = (t3227+t3241);+float t3243 = (t3236*t3220);+float t3244 = (t3209*t3231);+float t3245 = (t3243-t3244);+float t3246 = sin(t8);+float t3247 = (1*t3246);+float t3248 = cos(t118);+float t3249 = (t3247*t3248);+float t3250 = (t3245*t3249);+float t3251 = (t3242+t3250);+float t3252 = abs(t3251);+t3207 = t3252;+} else {+float t3253 = (3.1415927/2);+float t3254 = (t8-t3253);+float t3255 = (3.1415927/2);+float t3256 = (t3064-t3255);+float t3257 = (t3254-t3256);+float t3258 = abs(t3257);+float t3259 = (t3258/2);+float t3260 = sin(t3259);+float t3261 = (t3260*t3260);+float t3262 = cos(t3256);+float t3263 = cos(t3254);+float t3264 = (t3262*t3263);+float t3265 = (t118+3.1415927);+float t3266 = (3.1415927*2);+float t3267 = mod(t3265,t3266);+float t3268 = (t3267-3.1415927);+float t3269 = (t3112+3.1415927);+float t3270 = (3.1415927*2);+float t3271 = mod(t3269,t3270);+float t3272 = (t3271-3.1415927);+float t3273 = (t3268-t3272);+float t3274 = abs(t3273);+float t3275 = (t3274/2);+float t3276 = sin(t3275);+float t3277 = (t3276*t3276);+float t3278 = (t3264*t3277);+float t3279 = (t3261+t3278);+float t3280 = sqrt(t3279);+float t3281 = asin(t3280);+float t3282 = (2*t3281);+float t3283 = abs(t3282);+float t3284 = (3.1415927/2);+float t3285 = (t8-t3284);+float t3286 = (3.1415927/2);+float t3287 = (t3090-t3286);+float t3288 = (t3285-t3287);+float t3289 = abs(t3288);+float t3290 = (t3289/2);+float t3291 = sin(t3290);+float t3292 = (t3291*t3291);+float t3293 = cos(t3287);+float t3294 = cos(t3285);+float t3295 = (t3293*t3294);+float t3296 = (t118+3.1415927);+float t3297 = (3.1415927*2);+float t3298 = mod(t3296,t3297);+float t3299 = (t3298-3.1415927);+float t3300 = (t3128+3.1415927);+float t3301 = (3.1415927*2);+float t3302 = mod(t3300,t3301);+float t3303 = (t3302-3.1415927);+float t3304 = (t3299-t3303);+float t3305 = abs(t3304);+float t3306 = (t3305/2);+float t3307 = sin(t3306);+float t3308 = (t3307*t3307);+float t3309 = (t3295*t3308);+float t3310 = (t3292+t3309);+float t3311 = sqrt(t3310);+float t3312 = asin(t3311);+float t3313 = (2*t3312);+float t3314 = abs(t3313);+bool t3315 = (t3283>=t3314);+float t3316;+if(t3315){+t3316 = t3283;+} else {+t3316 = t3314;+}+t3207 = t3316;+}+float t3317 = abs(t3207);+float t3318 = step(float(2.0e-4),t3317);+float t3319 = (1-t3318);+float t3320 = (t2011*t3047);+float t3321 = (t3320*float(842.378));+float t3322 = fract(t3321);+float t3323 = (t3322+float(45.32));+float t3324 = (t3323+u6.u0);+float t3325 = (t3322*t3324);+float t3326 = (t2027*t2011);+float t3327 = (t3326*float(1734.048));+float t3328 = fract(t3327);+float t3329 = (t3328+float(45.32));+float t3330 = (t3329+u6.u0);+float t3331 = (t3328*t3330);+float t3332 = (t3325+t3331);+float t3333 = (t3322+t3332);+float t3334 = (t3328+t3332);+float t3335 = (t3333*t3334);+float t3336 = fract(t3335);+float t3337 = step(float(0.2),t3336);+float t3338 = (t3319*t3337);+float t3339 = (3.1415927/2);+float t3340 = (t3064-t3339);+float t3341 = (3.1415927/2);+float t3342 = (t3090-t3341);+float t3343 = (t3340-t3342);+float t3344 = abs(t3343);+float t3345 = (t3344/2);+float t3346 = sin(t3345);+float t3347 = (t3346*t3346);+float t3348 = cos(t3342);+float t3349 = cos(t3340);+float t3350 = (t3348*t3349);+float t3351 = (t3112+3.1415927);+float t3352 = (3.1415927*2);+float t3353 = mod(t3351,t3352);+float t3354 = (t3353-3.1415927);+float t3355 = (t3128+3.1415927);+float t3356 = (3.1415927*2);+float t3357 = mod(t3355,t3356);+float t3358 = (t3357-3.1415927);+float t3359 = (t3354-t3358);+float t3360 = abs(t3359);+float t3361 = (t3360/2);+float t3362 = sin(t3361);+float t3363 = (t3362*t3362);+float t3364 = (t3350*t3363);+float t3365 = (t3347+t3364);+float t3366 = sqrt(t3365);+float t3367 = asin(t3366);+float t3368 = (2*t3367);+float t3369 = (t3368/t1344);+float t3370 = (1-t3369);+float t3371 = (t2011/36);+float t3372 = (t3371*float(842.378));+float t3373 = fract(t3372);+float t3374 = (t3373+float(45.32));+float t3375 = (t3374+u6.u0);+float t3376 = (t3373*t3375);+float t3377 = (t2027/t2024);+float t3378 = (t3377*float(1734.048));+float t3379 = fract(t3378);+float t3380 = (t3379+float(45.32));+float t3381 = (t3380+u6.u0);+float t3382 = (t3379*t3381);+float t3383 = (t3376+t3382);+float t3384 = (t3373+t3383);+float t3385 = (t3379+t3383);+float t3386 = (t3384*t3385);+float t3387 = fract(t3386);+float t3388 = (t3387*float(8.0e-3));+float t3389 = (float(1.0e-3)+t3388);+float t3390 = (t3387*173);+float t3391 = fract(t3390);+float t3392 = step(float(0.66),t3391);+float t3393 = (t3392*float(3.0e-3));+float t3394 = (t3389-t3393);+float t3395 = (t3394*float(0.8));+float t3396 = (t2011/36);+float t3397 = (t3396*float(842.378));+float t3398 = fract(t3397);+float t3399 = (t3398+float(45.32));+float t3400 = (t3399+u6.u0);+float t3401 = (t3398*t3400);+float t3402 = (t3047/t2024);+float t3403 = (t3402*float(1734.048));+float t3404 = fract(t3403);+float t3405 = (t3404+float(45.32));+float t3406 = (t3405+u6.u0);+float t3407 = (t3404*t3406);+float t3408 = (t3401+t3407);+float t3409 = (t3398+t3408);+float t3410 = (t3404+t3408);+float t3411 = (t3409*t3410);+float t3412 = fract(t3411);+float t3413 = (t3412*float(8.0e-3));+float t3414 = (float(1.0e-3)+t3413);+float t3415 = (t3412*173);+float t3416 = fract(t3415);+float t3417 = step(float(0.66),t3416);+float t3418 = (t3417*float(3.0e-3));+float t3419 = (t3414-t3418);+float t3420 = (t3419*float(0.8));+float t3421 = (t3395-t3420);+float t3422 = abs(t3421);+float t3423 = (t3422-float(1.0e-3));+float t3424 = (t3423/float(8.0e-3));+float t3425 = (1-t3424);+float t3426 = (t3425*t3425);+float t3427 = (t3370*t3426);+float t3428 = (t3338*t3427);+float t3429 = (u4.u0*t3336);+float t3430 = (t3429*3);+float t3431 = sin(t3430);+float t3432 = (t3431+1);+float t3433 = (t3432/2);+float t3434 = (t3433*float(0.66));+float t3435 = (t3434+float(0.33));+float t3436 = (t3428*t3435);+float t3437 = (float(0.2)*t3436);+bool t3438 = (0>=t3437);+float t3439;+if(t3438){+t3439 = 0;+} else {+t3439 = t3437;+}+float t3440 = (t3439*1);+float t3441 = (t3039+t3440);+float t3442 = (t2011*t1344);+float t3443 = (t2011/36);+float t3444 = (t3443*float(842.378));+float t3445 = fract(t3444);+float t3446 = (t3445+float(45.32));+float t3447 = (t3446+u6.u0);+float t3448 = (t3445*t3447);+float t3449 = (t3047/t2024);+float t3450 = (t3449*float(1734.048));+float t3451 = fract(t3450);+float t3452 = (t3451+float(45.32));+float t3453 = (t3452+u6.u0);+float t3454 = (t3451*t3453);+float t3455 = (t3448+t3454);+float t3456 = (t3445+t3455);+float t3457 = (t3451+t3455);+float t3458 = (t3456*t3457);+float t3459 = fract(t3458);+float t3460 = (t3459*float(2852.02));+float t3461 = fract(t3460);+float t3462 = (t3461-float(0.5));+float t3463 = (t3462*t1344);+float t3464 = (t3463*float(0.75));+float t3465 = (t3442+t3464);+float t3466 = (3.1415927/2);+float t3467 = (t3465-t3466);+float t3468 = (t1346*t1344);+float t3469 = (t1346/36);+float t3470 = (t3469*float(842.378));+float t3471 = fract(t3470);+float t3472 = (t3471+float(45.32));+float t3473 = (t3472+u6.u0);+float t3474 = (t3471*t3473);+float t3475 = (t1582/t1359);+float t3476 = (t3475*float(1734.048));+float t3477 = fract(t3476);+float t3478 = (t3477+float(45.32));+float t3479 = (t3478+u6.u0);+float t3480 = (t3477*t3479);+float t3481 = (t3474+t3480);+float t3482 = (t3471+t3481);+float t3483 = (t3477+t3481);+float t3484 = (t3482*t3483);+float t3485 = fract(t3484);+float t3486 = (t3485*float(2852.02));+float t3487 = fract(t3486);+float t3488 = (t3487-float(0.5));+float t3489 = (t3488*t1344);+float t3490 = (t3489*float(0.75));+float t3491 = (t3468+t3490);+float t3492 = (3.1415927/2);+float t3493 = (t3491-t3492);+float t3494 = (t3467-t3493);+float t3495 = abs(t3494);+float t3496 = (t3495/2);+float t3497 = sin(t3496);+float t3498 = (t3497*t3497);+float t3499 = cos(t3493);+float t3500 = cos(t3467);+float t3501 = (t3499*t3500);+float t3502 = (3.1415927/t2024);+float t3503 = (t3047*t3502);+float t3504 = (t3459*float(97372.83));+float t3505 = fract(t3504);+float t3506 = (t3505-float(0.5));+float t3507 = (3.1415927/t2024);+float t3508 = (t3506*t3507);+float t3509 = (t3508*float(0.75));+float t3510 = (t3503+t3509);+float t3511 = (t3510+3.1415927);+float t3512 = mod(t3511,t1433);+float t3513 = (t3512-3.1415927);+float t3514 = (t3513+3.1415927);+float t3515 = (3.1415927*2);+float t3516 = mod(t3514,t3515);+float t3517 = (t3516-3.1415927);+float t3518 = (3.1415927/t1359);+float t3519 = (t1582*t3518);+float t3520 = (t3485*float(97372.83));+float t3521 = fract(t3520);+float t3522 = (t3521-float(0.5));+float t3523 = (3.1415927/t1359);+float t3524 = (t3522*t3523);+float t3525 = (t3524*float(0.75));+float t3526 = (t3519+t3525);+float t3527 = (t3526+3.1415927);+float t3528 = mod(t3527,t1433);+float t3529 = (t3528-3.1415927);+float t3530 = (t3529+3.1415927);+float t3531 = (3.1415927*2);+float t3532 = mod(t3530,t3531);+float t3533 = (t3532-3.1415927);+float t3534 = (t3517-t3533);+float t3535 = abs(t3534);+float t3536 = (t3535/2);+float t3537 = sin(t3536);+float t3538 = (t3537*t3537);+float t3539 = (t3501*t3538);+float t3540 = (t3498+t3539);+float t3541 = sqrt(t3540);+float t3542 = asin(t3541);+float t3543 = (2*t3542);+float t3544 = (3.1415927/2);+float t3545 = (t8-t3544);+float t3546 = (3.1415927/2);+float t3547 = (t3491-t3546);+float t3548 = (t3545-t3547);+float t3549 = abs(t3548);+float t3550 = (t3549/2);+float t3551 = sin(t3550);+float t3552 = (t3551*t3551);+float t3553 = cos(t3547);+float t3554 = cos(t3545);+float t3555 = (t3553*t3554);+float t3556 = (t118+3.1415927);+float t3557 = (3.1415927*2);+float t3558 = mod(t3556,t3557);+float t3559 = (t3558-3.1415927);+float t3560 = (t3529+3.1415927);+float t3561 = (3.1415927*2);+float t3562 = mod(t3560,t3561);+float t3563 = (t3562-3.1415927);+float t3564 = (t3559-t3563);+float t3565 = abs(t3564);+float t3566 = (t3565/2);+float t3567 = sin(t3566);+float t3568 = (t3567*t3567);+float t3569 = (t3555*t3568);+float t3570 = (t3552+t3569);+float t3571 = sqrt(t3570);+float t3572 = asin(t3571);+float t3573 = (2*t3572);+float t3574 = (t3543-t3573);+float t3575 = (3.1415927/2);+float t3576 = (t8-t3575);+float t3577 = (3.1415927/2);+float t3578 = (t3465-t3577);+float t3579 = (t3576-t3578);+float t3580 = abs(t3579);+float t3581 = (t3580/2);+float t3582 = sin(t3581);+float t3583 = (t3582*t3582);+float t3584 = cos(t3578);+float t3585 = cos(t3576);+float t3586 = (t3584*t3585);+float t3587 = (t118+3.1415927);+float t3588 = (3.1415927*2);+float t3589 = mod(t3587,t3588);+float t3590 = (t3589-3.1415927);+float t3591 = (t3513+3.1415927);+float t3592 = (3.1415927*2);+float t3593 = mod(t3591,t3592);+float t3594 = (t3593-3.1415927);+float t3595 = (t3590-t3594);+float t3596 = abs(t3595);+float t3597 = (t3596/2);+float t3598 = sin(t3597);+float t3599 = (t3598*t3598);+float t3600 = (t3586*t3599);+float t3601 = (t3583+t3600);+float t3602 = sqrt(t3601);+float t3603 = asin(t3602);+float t3604 = (2*t3603);+float t3605 = (t3574-t3604);+float t3606 = abs(t3605);+bool t3607 = (float(1.0e-4)>t3606);+float t3608;+if(t3607){+float t3609 = cos(t3491);+float t3610 = (1*t3609);+float t3611 = sin(t3465);+float t3612 = (1*t3611);+float t3613 = cos(t3513);+float t3614 = (t3612*t3613);+float t3615 = (t3610*t3614);+float t3616 = sin(t3491);+float t3617 = (1*t3616);+float t3618 = cos(t3529);+float t3619 = (t3617*t3618);+float t3620 = cos(t3465);+float t3621 = (1*t3620);+float t3622 = (t3619*t3621);+float t3623 = (t3615-t3622);+float t3624 = sin(t8);+float t3625 = (1*t3624);+float t3626 = sin(t118);+float t3627 = (t3625*t3626);+float t3628 = (t3623*t3627);+float t3629 = sin(t3465);+float t3630 = (1*t3629);+float t3631 = sin(t3513);+float t3632 = (t3630*t3631);+float t3633 = (t3619*t3632);+float t3634 = sin(t3491);+float t3635 = (1*t3634);+float t3636 = sin(t3529);+float t3637 = (t3635*t3636);+float t3638 = (t3637*t3614);+float t3639 = (t3633-t3638);+float t3640 = cos(t8);+float t3641 = (1*t3640);+float t3642 = (t3639*t3641);+float t3643 = (t3628+t3642);+float t3644 = (t3637*t3621);+float t3645 = (t3610*t3632);+float t3646 = (t3644-t3645);+float t3647 = sin(t8);+float t3648 = (1*t3647);+float t3649 = cos(t118);+float t3650 = (t3648*t3649);+float t3651 = (t3646*t3650);+float t3652 = (t3643+t3651);+float t3653 = abs(t3652);+t3608 = t3653;+} else {+float t3654 = (3.1415927/2);+float t3655 = (t8-t3654);+float t3656 = (3.1415927/2);+float t3657 = (t3465-t3656);+float t3658 = (t3655-t3657);+float t3659 = abs(t3658);+float t3660 = (t3659/2);+float t3661 = sin(t3660);+float t3662 = (t3661*t3661);+float t3663 = cos(t3657);+float t3664 = cos(t3655);+float t3665 = (t3663*t3664);+float t3666 = (t118+3.1415927);+float t3667 = (3.1415927*2);+float t3668 = mod(t3666,t3667);+float t3669 = (t3668-3.1415927);+float t3670 = (t3513+3.1415927);+float t3671 = (3.1415927*2);+float t3672 = mod(t3670,t3671);+float t3673 = (t3672-3.1415927);+float t3674 = (t3669-t3673);+float t3675 = abs(t3674);+float t3676 = (t3675/2);+float t3677 = sin(t3676);+float t3678 = (t3677*t3677);+float t3679 = (t3665*t3678);+float t3680 = (t3662+t3679);+float t3681 = sqrt(t3680);+float t3682 = asin(t3681);+float t3683 = (2*t3682);+float t3684 = abs(t3683);+float t3685 = (3.1415927/2);+float t3686 = (t8-t3685);+float t3687 = (3.1415927/2);+float t3688 = (t3491-t3687);+float t3689 = (t3686-t3688);+float t3690 = abs(t3689);+float t3691 = (t3690/2);+float t3692 = sin(t3691);+float t3693 = (t3692*t3692);+float t3694 = cos(t3688);+float t3695 = cos(t3686);+float t3696 = (t3694*t3695);+float t3697 = (t118+3.1415927);+float t3698 = (3.1415927*2);+float t3699 = mod(t3697,t3698);+float t3700 = (t3699-3.1415927);+float t3701 = (t3529+3.1415927);+float t3702 = (3.1415927*2);+float t3703 = mod(t3701,t3702);+float t3704 = (t3703-3.1415927);+float t3705 = (t3700-t3704);+float t3706 = abs(t3705);+float t3707 = (t3706/2);+float t3708 = sin(t3707);+float t3709 = (t3708*t3708);+float t3710 = (t3696*t3709);+float t3711 = (t3693+t3710);+float t3712 = sqrt(t3711);+float t3713 = asin(t3712);+float t3714 = (2*t3713);+float t3715 = abs(t3714);+bool t3716 = (t3684>=t3715);+float t3717;+if(t3716){+t3717 = t3684;+} else {+t3717 = t3715;+}+t3608 = t3717;+}+float t3718 = abs(t3608);+float t3719 = step(float(2.0e-4),t3718);+float t3720 = (1-t3719);+float t3721 = (t1346*t3047);+float t3722 = (t3721*float(842.378));+float t3723 = fract(t3722);+float t3724 = (t3723+float(45.32));+float t3725 = (t3724+u6.u0);+float t3726 = (t3723*t3725);+float t3727 = (t1582*t2011);+float t3728 = (t3727*float(1734.048));+float t3729 = fract(t3728);+float t3730 = (t3729+float(45.32));+float t3731 = (t3730+u6.u0);+float t3732 = (t3729*t3731);+float t3733 = (t3726+t3732);+float t3734 = (t3723+t3733);+float t3735 = (t3729+t3733);+float t3736 = (t3734*t3735);+float t3737 = fract(t3736);+float t3738 = step(float(0.2),t3737);+float t3739 = (t3720*t3738);+float t3740 = (3.1415927/2);+float t3741 = (t3465-t3740);+float t3742 = (3.1415927/2);+float t3743 = (t3491-t3742);+float t3744 = (t3741-t3743);+float t3745 = abs(t3744);+float t3746 = (t3745/2);+float t3747 = sin(t3746);+float t3748 = (t3747*t3747);+float t3749 = cos(t3743);+float t3750 = cos(t3741);+float t3751 = (t3749*t3750);+float t3752 = (t3513+3.1415927);+float t3753 = (3.1415927*2);+float t3754 = mod(t3752,t3753);+float t3755 = (t3754-3.1415927);+float t3756 = (t3529+3.1415927);+float t3757 = (3.1415927*2);+float t3758 = mod(t3756,t3757);+float t3759 = (t3758-3.1415927);+float t3760 = (t3755-t3759);+float t3761 = abs(t3760);+float t3762 = (t3761/2);+float t3763 = sin(t3762);+float t3764 = (t3763*t3763);+float t3765 = (t3751*t3764);+float t3766 = (t3748+t3765);+float t3767 = sqrt(t3766);+float t3768 = asin(t3767);+float t3769 = (2*t3768);+float t3770 = (t3769/t1344);+float t3771 = (1-t3770);+float t3772 = (t1346/36);+float t3773 = (t3772*float(842.378));+float t3774 = fract(t3773);+float t3775 = (t3774+float(45.32));+float t3776 = (t3775+u6.u0);+float t3777 = (t3774*t3776);+float t3778 = (t1582/t1359);+float t3779 = (t3778*float(1734.048));+float t3780 = fract(t3779);+float t3781 = (t3780+float(45.32));+float t3782 = (t3781+u6.u0);+float t3783 = (t3780*t3782);+float t3784 = (t3777+t3783);+float t3785 = (t3774+t3784);+float t3786 = (t3780+t3784);+float t3787 = (t3785*t3786);+float t3788 = fract(t3787);+float t3789 = (t3788*float(8.0e-3));+float t3790 = (float(1.0e-3)+t3789);+float t3791 = (t3788*173);+float t3792 = fract(t3791);+float t3793 = step(float(0.66),t3792);+float t3794 = (t3793*float(3.0e-3));+float t3795 = (t3790-t3794);+float t3796 = (t3795*float(0.8));+float t3797 = (t2011/36);+float t3798 = (t3797*float(842.378));+float t3799 = fract(t3798);+float t3800 = (t3799+float(45.32));+float t3801 = (t3800+u6.u0);+float t3802 = (t3799*t3801);+float t3803 = (t3047/t2024);+float t3804 = (t3803*float(1734.048));+float t3805 = fract(t3804);+float t3806 = (t3805+float(45.32));+float t3807 = (t3806+u6.u0);+float t3808 = (t3805*t3807);+float t3809 = (t3802+t3808);+float t3810 = (t3799+t3809);+float t3811 = (t3805+t3809);+float t3812 = (t3810*t3811);+float t3813 = fract(t3812);+float t3814 = (t3813*float(8.0e-3));+float t3815 = (float(1.0e-3)+t3814);+float t3816 = (t3813*173);+float t3817 = fract(t3816);+float t3818 = step(float(0.66),t3817);+float t3819 = (t3818*float(3.0e-3));+float t3820 = (t3815-t3819);+float t3821 = (t3820*float(0.8));+float t3822 = (t3796-t3821);+float t3823 = abs(t3822);+float t3824 = (t3823-float(1.0e-3));+float t3825 = (t3824/float(8.0e-3));+float t3826 = (1-t3825);+float t3827 = (t3826*t3826);+float t3828 = (t3771*t3827);+float t3829 = (t3739*t3828);+float t3830 = (u4.u0*t3737);+float t3831 = (t3830*3);+float t3832 = sin(t3831);+float t3833 = (t3832+1);+float t3834 = (t3833/2);+float t3835 = (t3834*float(0.66));+float t3836 = (t3835+float(0.33));+float t3837 = (t3829*t3836);+float t3838 = (float(0.2)*t3837);+bool t3839 = (0>=t3838);+float t3840;+if(t3839){+t3840 = 0;+} else {+t3840 = t3838;+}+float t3841 = (t3840*1);+float t3842 = (t3441+t3841);+float t3843 = (t2011*t1344);+float t3844 = (t2011/36);+float t3845 = (t3844*float(842.378));+float t3846 = fract(t3845);+float t3847 = (t3846+float(45.32));+float t3848 = (t3847+u6.u0);+float t3849 = (t3846*t3848);+float t3850 = (t3047/t2024);+float t3851 = (t3850*float(1734.048));+float t3852 = fract(t3851);+float t3853 = (t3852+float(45.32));+float t3854 = (t3853+u6.u0);+float t3855 = (t3852*t3854);+float t3856 = (t3849+t3855);+float t3857 = (t3846+t3856);+float t3858 = (t3852+t3856);+float t3859 = (t3857*t3858);+float t3860 = fract(t3859);+float t3861 = (t3860*float(2852.02));+float t3862 = fract(t3861);+float t3863 = (t3862-float(0.5));+float t3864 = (t3863*t1344);+float t3865 = (t3864*float(0.75));+float t3866 = (t3843+t3865);+float t3867 = (3.1415927/2);+float t3868 = (t3866-t3867);+float t3869 = (t1346*t1344);+float t3870 = (t1346/36);+float t3871 = (t3870*float(842.378));+float t3872 = fract(t3871);+float t3873 = (t3872+float(45.32));+float t3874 = (t3873+u6.u0);+float t3875 = (t3872*t3874);+float t3876 = (t1362/t1359);+float t3877 = (t3876*float(1734.048));+float t3878 = fract(t3877);+float t3879 = (t3878+float(45.32));+float t3880 = (t3879+u6.u0);+float t3881 = (t3878*t3880);+float t3882 = (t3875+t3881);+float t3883 = (t3872+t3882);+float t3884 = (t3878+t3882);+float t3885 = (t3883*t3884);+float t3886 = fract(t3885);+float t3887 = (t3886*float(2852.02));+float t3888 = fract(t3887);+float t3889 = (t3888-float(0.5));+float t3890 = (t3889*t1344);+float t3891 = (t3890*float(0.75));+float t3892 = (t3869+t3891);+float t3893 = (3.1415927/2);+float t3894 = (t3892-t3893);+float t3895 = (t3868-t3894);+float t3896 = abs(t3895);+float t3897 = (t3896/2);+float t3898 = sin(t3897);+float t3899 = (t3898*t3898);+float t3900 = cos(t3894);+float t3901 = cos(t3868);+float t3902 = (t3900*t3901);+float t3903 = (3.1415927/t2024);+float t3904 = (t3047*t3903);+float t3905 = (t3860*float(97372.83));+float t3906 = fract(t3905);+float t3907 = (t3906-float(0.5));+float t3908 = (3.1415927/t2024);+float t3909 = (t3907*t3908);+float t3910 = (t3909*float(0.75));+float t3911 = (t3904+t3910);+float t3912 = (t3911+3.1415927);+float t3913 = mod(t3912,t1433);+float t3914 = (t3913-3.1415927);+float t3915 = (t3914+3.1415927);+float t3916 = (3.1415927*2);+float t3917 = mod(t3915,t3916);+float t3918 = (t3917-3.1415927);+float t3919 = (3.1415927/t1359);+float t3920 = (t1362*t3919);+float t3921 = (t3886*float(97372.83));+float t3922 = fract(t3921);+float t3923 = (t3922-float(0.5));+float t3924 = (3.1415927/t1359);+float t3925 = (t3923*t3924);+float t3926 = (t3925*float(0.75));+float t3927 = (t3920+t3926);+float t3928 = (t3927+3.1415927);+float t3929 = mod(t3928,t1433);+float t3930 = (t3929-3.1415927);+float t3931 = (t3930+3.1415927);+float t3932 = (3.1415927*2);+float t3933 = mod(t3931,t3932);+float t3934 = (t3933-3.1415927);+float t3935 = (t3918-t3934);+float t3936 = abs(t3935);+float t3937 = (t3936/2);+float t3938 = sin(t3937);+float t3939 = (t3938*t3938);+float t3940 = (t3902*t3939);+float t3941 = (t3899+t3940);+float t3942 = sqrt(t3941);+float t3943 = asin(t3942);+float t3944 = (2*t3943);+float t3945 = (3.1415927/2);+float t3946 = (t8-t3945);+float t3947 = (3.1415927/2);+float t3948 = (t3892-t3947);+float t3949 = (t3946-t3948);+float t3950 = abs(t3949);+float t3951 = (t3950/2);+float t3952 = sin(t3951);+float t3953 = (t3952*t3952);+float t3954 = cos(t3948);+float t3955 = cos(t3946);+float t3956 = (t3954*t3955);+float t3957 = (t118+3.1415927);+float t3958 = (3.1415927*2);+float t3959 = mod(t3957,t3958);+float t3960 = (t3959-3.1415927);+float t3961 = (t3930+3.1415927);+float t3962 = (3.1415927*2);+float t3963 = mod(t3961,t3962);+float t3964 = (t3963-3.1415927);+float t3965 = (t3960-t3964);+float t3966 = abs(t3965);+float t3967 = (t3966/2);+float t3968 = sin(t3967);+float t3969 = (t3968*t3968);+float t3970 = (t3956*t3969);+float t3971 = (t3953+t3970);+float t3972 = sqrt(t3971);+float t3973 = asin(t3972);+float t3974 = (2*t3973);+float t3975 = (t3944-t3974);+float t3976 = (3.1415927/2);+float t3977 = (t8-t3976);+float t3978 = (3.1415927/2);+float t3979 = (t3866-t3978);+float t3980 = (t3977-t3979);+float t3981 = abs(t3980);+float t3982 = (t3981/2);+float t3983 = sin(t3982);+float t3984 = (t3983*t3983);+float t3985 = cos(t3979);+float t3986 = cos(t3977);+float t3987 = (t3985*t3986);+float t3988 = (t118+3.1415927);+float t3989 = (3.1415927*2);+float t3990 = mod(t3988,t3989);+float t3991 = (t3990-3.1415927);+float t3992 = (t3914+3.1415927);+float t3993 = (3.1415927*2);+float t3994 = mod(t3992,t3993);+float t3995 = (t3994-3.1415927);+float t3996 = (t3991-t3995);+float t3997 = abs(t3996);+float t3998 = (t3997/2);+float t3999 = sin(t3998);+float t4000 = (t3999*t3999);+float t4001 = (t3987*t4000);+float t4002 = (t3984+t4001);+float t4003 = sqrt(t4002);+float t4004 = asin(t4003);+float t4005 = (2*t4004);+float t4006 = (t3975-t4005);+float t4007 = abs(t4006);+bool t4008 = (float(1.0e-4)>t4007);+float t4009;+if(t4008){+float t4010 = cos(t3892);+float t4011 = (1*t4010);+float t4012 = sin(t3866);+float t4013 = (1*t4012);+float t4014 = cos(t3914);+float t4015 = (t4013*t4014);+float t4016 = (t4011*t4015);+float t4017 = sin(t3892);+float t4018 = (1*t4017);+float t4019 = cos(t3930);+float t4020 = (t4018*t4019);+float t4021 = cos(t3866);+float t4022 = (1*t4021);+float t4023 = (t4020*t4022);+float t4024 = (t4016-t4023);+float t4025 = sin(t8);+float t4026 = (1*t4025);+float t4027 = sin(t118);+float t4028 = (t4026*t4027);+float t4029 = (t4024*t4028);+float t4030 = sin(t3866);+float t4031 = (1*t4030);+float t4032 = sin(t3914);+float t4033 = (t4031*t4032);+float t4034 = (t4020*t4033);+float t4035 = sin(t3892);+float t4036 = (1*t4035);+float t4037 = sin(t3930);+float t4038 = (t4036*t4037);+float t4039 = (t4038*t4015);+float t4040 = (t4034-t4039);+float t4041 = cos(t8);+float t4042 = (1*t4041);+float t4043 = (t4040*t4042);+float t4044 = (t4029+t4043);+float t4045 = (t4038*t4022);+float t4046 = (t4011*t4033);+float t4047 = (t4045-t4046);+float t4048 = sin(t8);+float t4049 = (1*t4048);+float t4050 = cos(t118);+float t4051 = (t4049*t4050);+float t4052 = (t4047*t4051);+float t4053 = (t4044+t4052);+float t4054 = abs(t4053);+t4009 = t4054;+} else {+float t4055 = (3.1415927/2);+float t4056 = (t8-t4055);+float t4057 = (3.1415927/2);+float t4058 = (t3866-t4057);+float t4059 = (t4056-t4058);+float t4060 = abs(t4059);+float t4061 = (t4060/2);+float t4062 = sin(t4061);+float t4063 = (t4062*t4062);+float t4064 = cos(t4058);+float t4065 = cos(t4056);+float t4066 = (t4064*t4065);+float t4067 = (t118+3.1415927);+float t4068 = (3.1415927*2);+float t4069 = mod(t4067,t4068);+float t4070 = (t4069-3.1415927);+float t4071 = (t3914+3.1415927);+float t4072 = (3.1415927*2);+float t4073 = mod(t4071,t4072);+float t4074 = (t4073-3.1415927);+float t4075 = (t4070-t4074);+float t4076 = abs(t4075);+float t4077 = (t4076/2);+float t4078 = sin(t4077);+float t4079 = (t4078*t4078);+float t4080 = (t4066*t4079);+float t4081 = (t4063+t4080);+float t4082 = sqrt(t4081);+float t4083 = asin(t4082);+float t4084 = (2*t4083);+float t4085 = abs(t4084);+float t4086 = (3.1415927/2);+float t4087 = (t8-t4086);+float t4088 = (3.1415927/2);+float t4089 = (t3892-t4088);+float t4090 = (t4087-t4089);+float t4091 = abs(t4090);+float t4092 = (t4091/2);+float t4093 = sin(t4092);+float t4094 = (t4093*t4093);+float t4095 = cos(t4089);+float t4096 = cos(t4087);+float t4097 = (t4095*t4096);+float t4098 = (t118+3.1415927);+float t4099 = (3.1415927*2);+float t4100 = mod(t4098,t4099);+float t4101 = (t4100-3.1415927);+float t4102 = (t3930+3.1415927);+float t4103 = (3.1415927*2);+float t4104 = mod(t4102,t4103);+float t4105 = (t4104-3.1415927);+float t4106 = (t4101-t4105);+float t4107 = abs(t4106);+float t4108 = (t4107/2);+float t4109 = sin(t4108);+float t4110 = (t4109*t4109);+float t4111 = (t4097*t4110);+float t4112 = (t4094+t4111);+float t4113 = sqrt(t4112);+float t4114 = asin(t4113);+float t4115 = (2*t4114);+float t4116 = abs(t4115);+bool t4117 = (t4085>=t4116);+float t4118;+if(t4117){+t4118 = t4085;+} else {+t4118 = t4116;+}+t4009 = t4118;+}+float t4119 = abs(t4009);+float t4120 = step(float(2.0e-4),t4119);+float t4121 = (1-t4120);+float t4122 = (t1346*t3047);+float t4123 = (t4122*float(842.378));+float t4124 = fract(t4123);+float t4125 = (t4124+float(45.32));+float t4126 = (t4125+u6.u0);+float t4127 = (t4124*t4126);+float t4128 = (t1362*t2011);+float t4129 = (t4128*float(1734.048));+float t4130 = fract(t4129);+float t4131 = (t4130+float(45.32));+float t4132 = (t4131+u6.u0);+float t4133 = (t4130*t4132);+float t4134 = (t4127+t4133);+float t4135 = (t4124+t4134);+float t4136 = (t4130+t4134);+float t4137 = (t4135*t4136);+float t4138 = fract(t4137);+float t4139 = step(float(0.2),t4138);+float t4140 = (t4121*t4139);+float t4141 = (3.1415927/2);+float t4142 = (t3866-t4141);+float t4143 = (3.1415927/2);+float t4144 = (t3892-t4143);+float t4145 = (t4142-t4144);+float t4146 = abs(t4145);+float t4147 = (t4146/2);+float t4148 = sin(t4147);+float t4149 = (t4148*t4148);+float t4150 = cos(t4144);+float t4151 = cos(t4142);+float t4152 = (t4150*t4151);+float t4153 = (t3914+3.1415927);+float t4154 = (3.1415927*2);+float t4155 = mod(t4153,t4154);+float t4156 = (t4155-3.1415927);+float t4157 = (t3930+3.1415927);+float t4158 = (3.1415927*2);+float t4159 = mod(t4157,t4158);+float t4160 = (t4159-3.1415927);+float t4161 = (t4156-t4160);+float t4162 = abs(t4161);+float t4163 = (t4162/2);+float t4164 = sin(t4163);+float t4165 = (t4164*t4164);+float t4166 = (t4152*t4165);+float t4167 = (t4149+t4166);+float t4168 = sqrt(t4167);+float t4169 = asin(t4168);+float t4170 = (2*t4169);+float t4171 = (t4170/t1344);+float t4172 = (1-t4171);+float t4173 = (t1346/36);+float t4174 = (t4173*float(842.378));+float t4175 = fract(t4174);+float t4176 = (t4175+float(45.32));+float t4177 = (t4176+u6.u0);+float t4178 = (t4175*t4177);+float t4179 = (t1362/t1359);+float t4180 = (t4179*float(1734.048));+float t4181 = fract(t4180);+float t4182 = (t4181+float(45.32));+float t4183 = (t4182+u6.u0);+float t4184 = (t4181*t4183);+float t4185 = (t4178+t4184);+float t4186 = (t4175+t4185);+float t4187 = (t4181+t4185);+float t4188 = (t4186*t4187);+float t4189 = fract(t4188);+float t4190 = (t4189*float(8.0e-3));+float t4191 = (float(1.0e-3)+t4190);+float t4192 = (t4189*173);+float t4193 = fract(t4192);+float t4194 = step(float(0.66),t4193);+float t4195 = (t4194*float(3.0e-3));+float t4196 = (t4191-t4195);+float t4197 = (t4196*float(0.8));+float t4198 = (t2011/36);+float t4199 = (t4198*float(842.378));+float t4200 = fract(t4199);+float t4201 = (t4200+float(45.32));+float t4202 = (t4201+u6.u0);+float t4203 = (t4200*t4202);+float t4204 = (t3047/t2024);+float t4205 = (t4204*float(1734.048));+float t4206 = fract(t4205);+float t4207 = (t4206+float(45.32));+float t4208 = (t4207+u6.u0);+float t4209 = (t4206*t4208);+float t4210 = (t4203+t4209);+float t4211 = (t4200+t4210);+float t4212 = (t4206+t4210);+float t4213 = (t4211*t4212);+float t4214 = fract(t4213);+float t4215 = (t4214*float(8.0e-3));+float t4216 = (float(1.0e-3)+t4215);+float t4217 = (t4214*173);+float t4218 = fract(t4217);+float t4219 = step(float(0.66),t4218);+float t4220 = (t4219*float(3.0e-3));+float t4221 = (t4216-t4220);+float t4222 = (t4221*float(0.8));+float t4223 = (t4197-t4222);+float t4224 = abs(t4223);+float t4225 = (t4224-float(1.0e-3));+float t4226 = (t4225/float(8.0e-3));+float t4227 = (1-t4226);+float t4228 = (t4227*t4227);+float t4229 = (t4172*t4228);+float t4230 = (t4140*t4229);+float t4231 = (u4.u0*t4138);+float t4232 = (t4231*3);+float t4233 = sin(t4232);+float t4234 = (t4233+1);+float t4235 = (t4234/2);+float t4236 = (t4235*float(0.66));+float t4237 = (t4236+float(0.33));+float t4238 = (t4230*t4237);+float t4239 = (float(0.2)*t4238);+bool t4240 = (0>=t4239);+float t4241;+if(t4240){+t4241 = 0;+} else {+t4241 = t4239;+}+float t4242 = (t4241*1);+float t4243 = (t3842+t4242);+float t4244 = (t1346*t1344);+float t4245 = (t1346/36);+float t4246 = (t4245*float(842.378));+float t4247 = fract(t4246);+float t4248 = (t4247+float(45.32));+float t4249 = (t4248+u6.u0);+float t4250 = (t4247*t4249);+float t4251 = (t1800/t1359);+float t4252 = (t4251*float(1734.048));+float t4253 = fract(t4252);+float t4254 = (t4253+float(45.32));+float t4255 = (t4254+u6.u0);+float t4256 = (t4253*t4255);+float t4257 = (t4250+t4256);+float t4258 = (t4247+t4257);+float t4259 = (t4253+t4257);+float t4260 = (t4258*t4259);+float t4261 = fract(t4260);+float t4262 = (t4261*float(2852.02));+float t4263 = fract(t4262);+float t4264 = (t4263-float(0.5));+float t4265 = (t4264*t1344);+float t4266 = (t4265*float(0.75));+float t4267 = (t4244+t4266);+float t4268 = (3.1415927/2);+float t4269 = (t4267-t4268);+float t4270 = (t1346*t1344);+float t4271 = (t1346/36);+float t4272 = (t4271*float(842.378));+float t4273 = fract(t4272);+float t4274 = (t4273+float(45.32));+float t4275 = (t4274+u6.u0);+float t4276 = (t4273*t4275);+float t4277 = (t1582/t1359);+float t4278 = (t4277*float(1734.048));+float t4279 = fract(t4278);+float t4280 = (t4279+float(45.32));+float t4281 = (t4280+u6.u0);+float t4282 = (t4279*t4281);+float t4283 = (t4276+t4282);+float t4284 = (t4273+t4283);+float t4285 = (t4279+t4283);+float t4286 = (t4284*t4285);+float t4287 = fract(t4286);+float t4288 = (t4287*float(2852.02));+float t4289 = fract(t4288);+float t4290 = (t4289-float(0.5));+float t4291 = (t4290*t1344);+float t4292 = (t4291*float(0.75));+float t4293 = (t4270+t4292);+float t4294 = (3.1415927/2);+float t4295 = (t4293-t4294);+float t4296 = (t4269-t4295);+float t4297 = abs(t4296);+float t4298 = (t4297/2);+float t4299 = sin(t4298);+float t4300 = (t4299*t4299);+float t4301 = cos(t4295);+float t4302 = cos(t4269);+float t4303 = (t4301*t4302);+float t4304 = (3.1415927/t1359);+float t4305 = (t1800*t4304);+float t4306 = (t4261*float(97372.83));+float t4307 = fract(t4306);+float t4308 = (t4307-float(0.5));+float t4309 = (3.1415927/t1359);+float t4310 = (t4308*t4309);+float t4311 = (t4310*float(0.75));+float t4312 = (t4305+t4311);+float t4313 = (t4312+3.1415927);+float t4314 = mod(t4313,t1433);+float t4315 = (t4314-3.1415927);+float t4316 = (t4315+3.1415927);+float t4317 = (3.1415927*2);+float t4318 = mod(t4316,t4317);+float t4319 = (t4318-3.1415927);+float t4320 = (3.1415927/t1359);+float t4321 = (t1582*t4320);+float t4322 = (t4287*float(97372.83));+float t4323 = fract(t4322);+float t4324 = (t4323-float(0.5));+float t4325 = (3.1415927/t1359);+float t4326 = (t4324*t4325);+float t4327 = (t4326*float(0.75));+float t4328 = (t4321+t4327);+float t4329 = (t4328+3.1415927);+float t4330 = mod(t4329,t1433);+float t4331 = (t4330-3.1415927);+float t4332 = (t4331+3.1415927);+float t4333 = (3.1415927*2);+float t4334 = mod(t4332,t4333);+float t4335 = (t4334-3.1415927);+float t4336 = (t4319-t4335);+float t4337 = abs(t4336);+float t4338 = (t4337/2);+float t4339 = sin(t4338);+float t4340 = (t4339*t4339);+float t4341 = (t4303*t4340);+float t4342 = (t4300+t4341);+float t4343 = sqrt(t4342);+float t4344 = asin(t4343);+float t4345 = (2*t4344);+float t4346 = (3.1415927/2);+float t4347 = (t8-t4346);+float t4348 = (3.1415927/2);+float t4349 = (t4293-t4348);+float t4350 = (t4347-t4349);+float t4351 = abs(t4350);+float t4352 = (t4351/2);+float t4353 = sin(t4352);+float t4354 = (t4353*t4353);+float t4355 = cos(t4349);+float t4356 = cos(t4347);+float t4357 = (t4355*t4356);+float t4358 = (t118+3.1415927);+float t4359 = (3.1415927*2);+float t4360 = mod(t4358,t4359);+float t4361 = (t4360-3.1415927);+float t4362 = (t4331+3.1415927);+float t4363 = (3.1415927*2);+float t4364 = mod(t4362,t4363);+float t4365 = (t4364-3.1415927);+float t4366 = (t4361-t4365);+float t4367 = abs(t4366);+float t4368 = (t4367/2);+float t4369 = sin(t4368);+float t4370 = (t4369*t4369);+float t4371 = (t4357*t4370);+float t4372 = (t4354+t4371);+float t4373 = sqrt(t4372);+float t4374 = asin(t4373);+float t4375 = (2*t4374);+float t4376 = (t4345-t4375);+float t4377 = (3.1415927/2);+float t4378 = (t8-t4377);+float t4379 = (3.1415927/2);+float t4380 = (t4267-t4379);+float t4381 = (t4378-t4380);+float t4382 = abs(t4381);+float t4383 = (t4382/2);+float t4384 = sin(t4383);+float t4385 = (t4384*t4384);+float t4386 = cos(t4380);+float t4387 = cos(t4378);+float t4388 = (t4386*t4387);+float t4389 = (t118+3.1415927);+float t4390 = (3.1415927*2);+float t4391 = mod(t4389,t4390);+float t4392 = (t4391-3.1415927);+float t4393 = (t4315+3.1415927);+float t4394 = (3.1415927*2);+float t4395 = mod(t4393,t4394);+float t4396 = (t4395-3.1415927);+float t4397 = (t4392-t4396);+float t4398 = abs(t4397);+float t4399 = (t4398/2);+float t4400 = sin(t4399);+float t4401 = (t4400*t4400);+float t4402 = (t4388*t4401);+float t4403 = (t4385+t4402);+float t4404 = sqrt(t4403);+float t4405 = asin(t4404);+float t4406 = (2*t4405);+float t4407 = (t4376-t4406);+float t4408 = abs(t4407);+bool t4409 = (float(1.0e-4)>t4408);+float t4410;+if(t4409){+float t4411 = cos(t4293);+float t4412 = (1*t4411);+float t4413 = sin(t4267);+float t4414 = (1*t4413);+float t4415 = cos(t4315);+float t4416 = (t4414*t4415);+float t4417 = (t4412*t4416);+float t4418 = sin(t4293);+float t4419 = (1*t4418);+float t4420 = cos(t4331);+float t4421 = (t4419*t4420);+float t4422 = cos(t4267);+float t4423 = (1*t4422);+float t4424 = (t4421*t4423);+float t4425 = (t4417-t4424);+float t4426 = sin(t8);+float t4427 = (1*t4426);+float t4428 = sin(t118);+float t4429 = (t4427*t4428);+float t4430 = (t4425*t4429);+float t4431 = sin(t4267);+float t4432 = (1*t4431);+float t4433 = sin(t4315);+float t4434 = (t4432*t4433);+float t4435 = (t4421*t4434);+float t4436 = sin(t4293);+float t4437 = (1*t4436);+float t4438 = sin(t4331);+float t4439 = (t4437*t4438);+float t4440 = (t4439*t4416);+float t4441 = (t4435-t4440);+float t4442 = cos(t8);+float t4443 = (1*t4442);+float t4444 = (t4441*t4443);+float t4445 = (t4430+t4444);+float t4446 = (t4439*t4423);+float t4447 = (t4412*t4434);+float t4448 = (t4446-t4447);+float t4449 = sin(t8);+float t4450 = (1*t4449);+float t4451 = cos(t118);+float t4452 = (t4450*t4451);+float t4453 = (t4448*t4452);+float t4454 = (t4445+t4453);+float t4455 = abs(t4454);+t4410 = t4455;+} else {+float t4456 = (3.1415927/2);+float t4457 = (t8-t4456);+float t4458 = (3.1415927/2);+float t4459 = (t4267-t4458);+float t4460 = (t4457-t4459);+float t4461 = abs(t4460);+float t4462 = (t4461/2);+float t4463 = sin(t4462);+float t4464 = (t4463*t4463);+float t4465 = cos(t4459);+float t4466 = cos(t4457);+float t4467 = (t4465*t4466);+float t4468 = (t118+3.1415927);+float t4469 = (3.1415927*2);+float t4470 = mod(t4468,t4469);+float t4471 = (t4470-3.1415927);+float t4472 = (t4315+3.1415927);+float t4473 = (3.1415927*2);+float t4474 = mod(t4472,t4473);+float t4475 = (t4474-3.1415927);+float t4476 = (t4471-t4475);+float t4477 = abs(t4476);+float t4478 = (t4477/2);+float t4479 = sin(t4478);+float t4480 = (t4479*t4479);+float t4481 = (t4467*t4480);+float t4482 = (t4464+t4481);+float t4483 = sqrt(t4482);+float t4484 = asin(t4483);+float t4485 = (2*t4484);+float t4486 = abs(t4485);+float t4487 = (3.1415927/2);+float t4488 = (t8-t4487);+float t4489 = (3.1415927/2);+float t4490 = (t4293-t4489);+float t4491 = (t4488-t4490);+float t4492 = abs(t4491);+float t4493 = (t4492/2);+float t4494 = sin(t4493);+float t4495 = (t4494*t4494);+float t4496 = cos(t4490);+float t4497 = cos(t4488);+float t4498 = (t4496*t4497);+float t4499 = (t118+3.1415927);+float t4500 = (3.1415927*2);+float t4501 = mod(t4499,t4500);+float t4502 = (t4501-3.1415927);+float t4503 = (t4331+3.1415927);+float t4504 = (3.1415927*2);+float t4505 = mod(t4503,t4504);+float t4506 = (t4505-3.1415927);+float t4507 = (t4502-t4506);+float t4508 = abs(t4507);+float t4509 = (t4508/2);+float t4510 = sin(t4509);+float t4511 = (t4510*t4510);+float t4512 = (t4498*t4511);+float t4513 = (t4495+t4512);+float t4514 = sqrt(t4513);+float t4515 = asin(t4514);+float t4516 = (2*t4515);+float t4517 = abs(t4516);+bool t4518 = (t4486>=t4517);+float t4519;+if(t4518){+t4519 = t4486;+} else {+t4519 = t4517;+}+t4410 = t4519;+}+float t4520 = abs(t4410);+float t4521 = step(float(2.0e-4),t4520);+float t4522 = (1-t4521);+float t4523 = (t1346*t1800);+float t4524 = (t4523*float(842.378));+float t4525 = fract(t4524);+float t4526 = (t4525+float(45.32));+float t4527 = (t4526+u6.u0);+float t4528 = (t4525*t4527);+float t4529 = (t1582*t1346);+float t4530 = (t4529*float(1734.048));+float t4531 = fract(t4530);+float t4532 = (t4531+float(45.32));+float t4533 = (t4532+u6.u0);+float t4534 = (t4531*t4533);+float t4535 = (t4528+t4534);+float t4536 = (t4525+t4535);+float t4537 = (t4531+t4535);+float t4538 = (t4536*t4537);+float t4539 = fract(t4538);+float t4540 = step(float(0.2),t4539);+float t4541 = (t4522*t4540);+float t4542 = (3.1415927/2);+float t4543 = (t4267-t4542);+float t4544 = (3.1415927/2);+float t4545 = (t4293-t4544);+float t4546 = (t4543-t4545);+float t4547 = abs(t4546);+float t4548 = (t4547/2);+float t4549 = sin(t4548);+float t4550 = (t4549*t4549);+float t4551 = cos(t4545);+float t4552 = cos(t4543);+float t4553 = (t4551*t4552);+float t4554 = (t4315+3.1415927);+float t4555 = (3.1415927*2);+float t4556 = mod(t4554,t4555);+float t4557 = (t4556-3.1415927);+float t4558 = (t4331+3.1415927);+float t4559 = (3.1415927*2);+float t4560 = mod(t4558,t4559);+float t4561 = (t4560-3.1415927);+float t4562 = (t4557-t4561);+float t4563 = abs(t4562);+float t4564 = (t4563/2);+float t4565 = sin(t4564);+float t4566 = (t4565*t4565);+float t4567 = (t4553*t4566);+float t4568 = (t4550+t4567);+float t4569 = sqrt(t4568);+float t4570 = asin(t4569);+float t4571 = (2*t4570);+float t4572 = (t4571/t1344);+float t4573 = (1-t4572);+float t4574 = (t1346/36);+float t4575 = (t4574*float(842.378));+float t4576 = fract(t4575);+float t4577 = (t4576+float(45.32));+float t4578 = (t4577+u6.u0);+float t4579 = (t4576*t4578);+float t4580 = (t1582/t1359);+float t4581 = (t4580*float(1734.048));+float t4582 = fract(t4581);+float t4583 = (t4582+float(45.32));+float t4584 = (t4583+u6.u0);+float t4585 = (t4582*t4584);+float t4586 = (t4579+t4585);+float t4587 = (t4576+t4586);+float t4588 = (t4582+t4586);+float t4589 = (t4587*t4588);+float t4590 = fract(t4589);+float t4591 = (t4590*float(8.0e-3));+float t4592 = (float(1.0e-3)+t4591);+float t4593 = (t4590*173);+float t4594 = fract(t4593);+float t4595 = step(float(0.66),t4594);+float t4596 = (t4595*float(3.0e-3));+float t4597 = (t4592-t4596);+float t4598 = (t4597*float(0.8));+float t4599 = (t1346/36);+float t4600 = (t4599*float(842.378));+float t4601 = fract(t4600);+float t4602 = (t4601+float(45.32));+float t4603 = (t4602+u6.u0);+float t4604 = (t4601*t4603);+float t4605 = (t1800/t1359);+float t4606 = (t4605*float(1734.048));+float t4607 = fract(t4606);+float t4608 = (t4607+float(45.32));+float t4609 = (t4608+u6.u0);+float t4610 = (t4607*t4609);+float t4611 = (t4604+t4610);+float t4612 = (t4601+t4611);+float t4613 = (t4607+t4611);+float t4614 = (t4612*t4613);+float t4615 = fract(t4614);+float t4616 = (t4615*float(8.0e-3));+float t4617 = (float(1.0e-3)+t4616);+float t4618 = (t4615*173);+float t4619 = fract(t4618);+float t4620 = step(float(0.66),t4619);+float t4621 = (t4620*float(3.0e-3));+float t4622 = (t4617-t4621);+float t4623 = (t4622*float(0.8));+float t4624 = (t4598-t4623);+float t4625 = abs(t4624);+float t4626 = (t4625-float(1.0e-3));+float t4627 = (t4626/float(8.0e-3));+float t4628 = (1-t4627);+float t4629 = (t4628*t4628);+float t4630 = (t4573*t4629);+float t4631 = (t4541*t4630);+float t4632 = (u4.u0*t4539);+float t4633 = (t4632*3);+float t4634 = sin(t4633);+float t4635 = (t4634+1);+float t4636 = (t4635/2);+float t4637 = (t4636*float(0.66));+float t4638 = (t4637+float(0.33));+float t4639 = (t4631*t4638);+float t4640 = (float(0.2)*t4639);+bool t4641 = (0>=t4640);+float t4642;+if(t4641){+t4642 = 0;+} else {+t4642 = t4640;+}+float t4643 = (t4642*1);+float t4644 = (t4243+t4643);+float t4645 = (t1346*t1344);+float t4646 = (t1346/36);+float t4647 = (t4646*float(842.378));+float t4648 = fract(t4647);+float t4649 = (t4648+float(45.32));+float t4650 = (t4649+u6.u0);+float t4651 = (t4648*t4650);+float t4652 = (t1362+2);+float t4653 = (t4652/t2024);+float t4654 = (t4653*float(1734.048));+float t4655 = fract(t4654);+float t4656 = (t4655+float(45.32));+float t4657 = (t4656+u6.u0);+float t4658 = (t4655*t4657);+float t4659 = (t4651+t4658);+float t4660 = (t4648+t4659);+float t4661 = (t4655+t4659);+float t4662 = (t4660*t4661);+float t4663 = fract(t4662);+float t4664 = (t4663*float(2852.02));+float t4665 = fract(t4664);+float t4666 = (t4665-float(0.5));+float t4667 = (t4666*t1344);+float t4668 = (t4667*float(0.75));+float t4669 = (t4645+t4668);+float t4670 = (3.1415927/2);+float t4671 = (t4669-t4670);+float t4672 = (t2011*t1344);+float t4673 = (t2011/36);+float t4674 = (t4673*float(842.378));+float t4675 = fract(t4674);+float t4676 = (t4675+float(45.32));+float t4677 = (t4676+u6.u0);+float t4678 = (t4675*t4677);+float t4679 = (t3047/t2024);+float t4680 = (t4679*float(1734.048));+float t4681 = fract(t4680);+float t4682 = (t4681+float(45.32));+float t4683 = (t4682+u6.u0);+float t4684 = (t4681*t4683);+float t4685 = (t4678+t4684);+float t4686 = (t4675+t4685);+float t4687 = (t4681+t4685);+float t4688 = (t4686*t4687);+float t4689 = fract(t4688);+float t4690 = (t4689*float(2852.02));+float t4691 = fract(t4690);+float t4692 = (t4691-float(0.5));+float t4693 = (t4692*t1344);+float t4694 = (t4693*float(0.75));+float t4695 = (t4672+t4694);+float t4696 = (3.1415927/2);+float t4697 = (t4695-t4696);+float t4698 = (t4671-t4697);+float t4699 = abs(t4698);+float t4700 = (t4699/2);+float t4701 = sin(t4700);+float t4702 = (t4701*t4701);+float t4703 = cos(t4697);+float t4704 = cos(t4671);+float t4705 = (t4703*t4704);+float t4706 = (3.1415927/t2024);+float t4707 = (t4652*t4706);+float t4708 = (t4663*float(97372.83));+float t4709 = fract(t4708);+float t4710 = (t4709-float(0.5));+float t4711 = (3.1415927/t2024);+float t4712 = (t4710*t4711);+float t4713 = (t4712*float(0.75));+float t4714 = (t4707+t4713);+float t4715 = (t4714+3.1415927);+float t4716 = mod(t4715,t1433);+float t4717 = (t4716-3.1415927);+float t4718 = (t4717+3.1415927);+float t4719 = (3.1415927*2);+float t4720 = mod(t4718,t4719);+float t4721 = (t4720-3.1415927);+float t4722 = (3.1415927/t2024);+float t4723 = (t3047*t4722);+float t4724 = (t4689*float(97372.83));+float t4725 = fract(t4724);+float t4726 = (t4725-float(0.5));+float t4727 = (3.1415927/t2024);+float t4728 = (t4726*t4727);+float t4729 = (t4728*float(0.75));+float t4730 = (t4723+t4729);+float t4731 = (t4730+3.1415927);+float t4732 = mod(t4731,t1433);+float t4733 = (t4732-3.1415927);+float t4734 = (t4733+3.1415927);+float t4735 = (3.1415927*2);+float t4736 = mod(t4734,t4735);+float t4737 = (t4736-3.1415927);+float t4738 = (t4721-t4737);+float t4739 = abs(t4738);+float t4740 = (t4739/2);+float t4741 = sin(t4740);+float t4742 = (t4741*t4741);+float t4743 = (t4705*t4742);+float t4744 = (t4702+t4743);+float t4745 = sqrt(t4744);+float t4746 = asin(t4745);+float t4747 = (2*t4746);+float t4748 = (3.1415927/2);+float t4749 = (t8-t4748);+float t4750 = (3.1415927/2);+float t4751 = (t4695-t4750);+float t4752 = (t4749-t4751);+float t4753 = abs(t4752);+float t4754 = (t4753/2);+float t4755 = sin(t4754);+float t4756 = (t4755*t4755);+float t4757 = cos(t4751);+float t4758 = cos(t4749);+float t4759 = (t4757*t4758);+float t4760 = (t118+3.1415927);+float t4761 = (3.1415927*2);+float t4762 = mod(t4760,t4761);+float t4763 = (t4762-3.1415927);+float t4764 = (t4733+3.1415927);+float t4765 = (3.1415927*2);+float t4766 = mod(t4764,t4765);+float t4767 = (t4766-3.1415927);+float t4768 = (t4763-t4767);+float t4769 = abs(t4768);+float t4770 = (t4769/2);+float t4771 = sin(t4770);+float t4772 = (t4771*t4771);+float t4773 = (t4759*t4772);+float t4774 = (t4756+t4773);+float t4775 = sqrt(t4774);+float t4776 = asin(t4775);+float t4777 = (2*t4776);+float t4778 = (t4747-t4777);+float t4779 = (3.1415927/2);+float t4780 = (t8-t4779);+float t4781 = (3.1415927/2);+float t4782 = (t4669-t4781);+float t4783 = (t4780-t4782);+float t4784 = abs(t4783);+float t4785 = (t4784/2);+float t4786 = sin(t4785);+float t4787 = (t4786*t4786);+float t4788 = cos(t4782);+float t4789 = cos(t4780);+float t4790 = (t4788*t4789);+float t4791 = (t118+3.1415927);+float t4792 = (3.1415927*2);+float t4793 = mod(t4791,t4792);+float t4794 = (t4793-3.1415927);+float t4795 = (t4717+3.1415927);+float t4796 = (3.1415927*2);+float t4797 = mod(t4795,t4796);+float t4798 = (t4797-3.1415927);+float t4799 = (t4794-t4798);+float t4800 = abs(t4799);+float t4801 = (t4800/2);+float t4802 = sin(t4801);+float t4803 = (t4802*t4802);+float t4804 = (t4790*t4803);+float t4805 = (t4787+t4804);+float t4806 = sqrt(t4805);+float t4807 = asin(t4806);+float t4808 = (2*t4807);+float t4809 = (t4778-t4808);+float t4810 = abs(t4809);+bool t4811 = (float(1.0e-4)>t4810);+float t4812;+if(t4811){+float t4813 = cos(t4695);+float t4814 = (1*t4813);+float t4815 = sin(t4669);+float t4816 = (1*t4815);+float t4817 = cos(t4717);+float t4818 = (t4816*t4817);+float t4819 = (t4814*t4818);+float t4820 = sin(t4695);+float t4821 = (1*t4820);+float t4822 = cos(t4733);+float t4823 = (t4821*t4822);+float t4824 = cos(t4669);+float t4825 = (1*t4824);+float t4826 = (t4823*t4825);+float t4827 = (t4819-t4826);+float t4828 = sin(t8);+float t4829 = (1*t4828);+float t4830 = sin(t118);+float t4831 = (t4829*t4830);+float t4832 = (t4827*t4831);+float t4833 = sin(t4669);+float t4834 = (1*t4833);+float t4835 = sin(t4717);+float t4836 = (t4834*t4835);+float t4837 = (t4823*t4836);+float t4838 = sin(t4695);+float t4839 = (1*t4838);+float t4840 = sin(t4733);+float t4841 = (t4839*t4840);+float t4842 = (t4841*t4818);+float t4843 = (t4837-t4842);+float t4844 = cos(t8);+float t4845 = (1*t4844);+float t4846 = (t4843*t4845);+float t4847 = (t4832+t4846);+float t4848 = (t4841*t4825);+float t4849 = (t4814*t4836);+float t4850 = (t4848-t4849);+float t4851 = sin(t8);+float t4852 = (1*t4851);+float t4853 = cos(t118);+float t4854 = (t4852*t4853);+float t4855 = (t4850*t4854);+float t4856 = (t4847+t4855);+float t4857 = abs(t4856);+t4812 = t4857;+} else {+float t4858 = (3.1415927/2);+float t4859 = (t8-t4858);+float t4860 = (3.1415927/2);+float t4861 = (t4669-t4860);+float t4862 = (t4859-t4861);+float t4863 = abs(t4862);+float t4864 = (t4863/2);+float t4865 = sin(t4864);+float t4866 = (t4865*t4865);+float t4867 = cos(t4861);+float t4868 = cos(t4859);+float t4869 = (t4867*t4868);+float t4870 = (t118+3.1415927);+float t4871 = (3.1415927*2);+float t4872 = mod(t4870,t4871);+float t4873 = (t4872-3.1415927);+float t4874 = (t4717+3.1415927);+float t4875 = (3.1415927*2);+float t4876 = mod(t4874,t4875);+float t4877 = (t4876-3.1415927);+float t4878 = (t4873-t4877);+float t4879 = abs(t4878);+float t4880 = (t4879/2);+float t4881 = sin(t4880);+float t4882 = (t4881*t4881);+float t4883 = (t4869*t4882);+float t4884 = (t4866+t4883);+float t4885 = sqrt(t4884);+float t4886 = asin(t4885);+float t4887 = (2*t4886);+float t4888 = abs(t4887);+float t4889 = (3.1415927/2);+float t4890 = (t8-t4889);+float t4891 = (3.1415927/2);+float t4892 = (t4695-t4891);+float t4893 = (t4890-t4892);+float t4894 = abs(t4893);+float t4895 = (t4894/2);+float t4896 = sin(t4895);+float t4897 = (t4896*t4896);+float t4898 = cos(t4892);+float t4899 = cos(t4890);+float t4900 = (t4898*t4899);+float t4901 = (t118+3.1415927);+float t4902 = (3.1415927*2);+float t4903 = mod(t4901,t4902);+float t4904 = (t4903-3.1415927);+float t4905 = (t4733+3.1415927);+float t4906 = (3.1415927*2);+float t4907 = mod(t4905,t4906);+float t4908 = (t4907-3.1415927);+float t4909 = (t4904-t4908);+float t4910 = abs(t4909);+float t4911 = (t4910/2);+float t4912 = sin(t4911);+float t4913 = (t4912*t4912);+float t4914 = (t4900*t4913);+float t4915 = (t4897+t4914);+float t4916 = sqrt(t4915);+float t4917 = asin(t4916);+float t4918 = (2*t4917);+float t4919 = abs(t4918);+bool t4920 = (t4888>=t4919);+float t4921;+if(t4920){+t4921 = t4888;+} else {+t4921 = t4919;+}+t4812 = t4921;+}+float t4922 = abs(t4812);+float t4923 = step(float(2.0e-4),t4922);+float t4924 = (1-t4923);+float t4925 = (t2011*t4652);+float t4926 = (t4925*float(842.378));+float t4927 = fract(t4926);+float t4928 = (t4927+float(45.32));+float t4929 = (t4928+u6.u0);+float t4930 = (t4927*t4929);+float t4931 = (t3047*t1346);+float t4932 = (t4931*float(1734.048));+float t4933 = fract(t4932);+float t4934 = (t4933+float(45.32));+float t4935 = (t4934+u6.u0);+float t4936 = (t4933*t4935);+float t4937 = (t4930+t4936);+float t4938 = (t4927+t4937);+float t4939 = (t4933+t4937);+float t4940 = (t4938*t4939);+float t4941 = fract(t4940);+float t4942 = step(float(0.2),t4941);+float t4943 = (t4924*t4942);+float t4944 = (3.1415927/2);+float t4945 = (t4669-t4944);+float t4946 = (3.1415927/2);+float t4947 = (t4695-t4946);+float t4948 = (t4945-t4947);+float t4949 = abs(t4948);+float t4950 = (t4949/2);+float t4951 = sin(t4950);+float t4952 = (t4951*t4951);+float t4953 = cos(t4947);+float t4954 = cos(t4945);+float t4955 = (t4953*t4954);+float t4956 = (t4717+3.1415927);+float t4957 = (3.1415927*2);+float t4958 = mod(t4956,t4957);+float t4959 = (t4958-3.1415927);+float t4960 = (t4733+3.1415927);+float t4961 = (3.1415927*2);+float t4962 = mod(t4960,t4961);+float t4963 = (t4962-3.1415927);+float t4964 = (t4959-t4963);+float t4965 = abs(t4964);+float t4966 = (t4965/2);+float t4967 = sin(t4966);+float t4968 = (t4967*t4967);+float t4969 = (t4955*t4968);+float t4970 = (t4952+t4969);+float t4971 = sqrt(t4970);+float t4972 = asin(t4971);+float t4973 = (2*t4972);+float t4974 = (t4973/t1344);+float t4975 = (1-t4974);+float t4976 = (t2011/36);+float t4977 = (t4976*float(842.378));+float t4978 = fract(t4977);+float t4979 = (t4978+float(45.32));+float t4980 = (t4979+u6.u0);+float t4981 = (t4978*t4980);+float t4982 = (t3047/t2024);+float t4983 = (t4982*float(1734.048));+float t4984 = fract(t4983);+float t4985 = (t4984+float(45.32));+float t4986 = (t4985+u6.u0);+float t4987 = (t4984*t4986);+float t4988 = (t4981+t4987);+float t4989 = (t4978+t4988);+float t4990 = (t4984+t4988);+float t4991 = (t4989*t4990);+float t4992 = fract(t4991);+float t4993 = (t4992*float(8.0e-3));+float t4994 = (float(1.0e-3)+t4993);+float t4995 = (t4992*173);+float t4996 = fract(t4995);+float t4997 = step(float(0.66),t4996);+float t4998 = (t4997*float(3.0e-3));+float t4999 = (t4994-t4998);+float t5000 = (t4999*float(0.8));+float t5001 = (t1346/36);+float t5002 = (t5001*float(842.378));+float t5003 = fract(t5002);+float t5004 = (t5003+float(45.32));+float t5005 = (t5004+u6.u0);+float t5006 = (t5003*t5005);+float t5007 = (t4652/t2024);+float t5008 = (t5007*float(1734.048));+float t5009 = fract(t5008);+float t5010 = (t5009+float(45.32));+float t5011 = (t5010+u6.u0);+float t5012 = (t5009*t5011);+float t5013 = (t5006+t5012);+float t5014 = (t5003+t5013);+float t5015 = (t5009+t5013);+float t5016 = (t5014*t5015);+float t5017 = fract(t5016);+float t5018 = (t5017*float(8.0e-3));+float t5019 = (float(1.0e-3)+t5018);+float t5020 = (t5017*173);+float t5021 = fract(t5020);+float t5022 = step(float(0.66),t5021);+float t5023 = (t5022*float(3.0e-3));+float t5024 = (t5019-t5023);+float t5025 = (t5024*float(0.8));+float t5026 = (t5000-t5025);+float t5027 = abs(t5026);+float t5028 = (t5027-float(1.0e-3));+float t5029 = (t5028/float(8.0e-3));+float t5030 = (1-t5029);+float t5031 = (t5030*t5030);+float t5032 = (t4975*t5031);+float t5033 = (t4943*t5032);+float t5034 = (u4.u0*t4941);+float t5035 = (t5034*3);+float t5036 = sin(t5035);+float t5037 = (t5036+1);+float t5038 = (t5037/2);+float t5039 = (t5038*float(0.66));+float t5040 = (t5039+float(0.33));+float t5041 = (t5033*t5040);+float t5042 = (float(0.2)*t5041);+bool t5043 = (0>=t5042);+float t5044;+if(t5043){+t5044 = 0;+} else {+t5044 = t5042;+}+float t5045 = (t5044*1);+float t5046 = (t4644+t5045);+float t5047 = (t1346*t1344);+float t5048 = (t1346/36);+float t5049 = (t5048*float(842.378));+float t5050 = fract(t5049);+float t5051 = (t5050+float(45.32));+float t5052 = (t5051+u6.u0);+float t5053 = (t5050*t5052);+float t5054 = (t4652/t2024);+float t5055 = (t5054*float(1734.048));+float t5056 = fract(t5055);+float t5057 = (t5056+float(45.32));+float t5058 = (t5057+u6.u0);+float t5059 = (t5056*t5058);+float t5060 = (t5053+t5059);+float t5061 = (t5050+t5060);+float t5062 = (t5056+t5060);+float t5063 = (t5061*t5062);+float t5064 = fract(t5063);+float t5065 = (t5064*float(2852.02));+float t5066 = fract(t5065);+float t5067 = (t5066-float(0.5));+float t5068 = (t5067*t1344);+float t5069 = (t5068*float(0.75));+float t5070 = (t5047+t5069);+float t5071 = (3.1415927/2);+float t5072 = (t5070-t5071);+float t5073 = (t1346*t1344);+float t5074 = (t1346/36);+float t5075 = (t5074*float(842.378));+float t5076 = fract(t5075);+float t5077 = (t5076+float(45.32));+float t5078 = (t5077+u6.u0);+float t5079 = (t5076*t5078);+float t5080 = (t1800/t1359);+float t5081 = (t5080*float(1734.048));+float t5082 = fract(t5081);+float t5083 = (t5082+float(45.32));+float t5084 = (t5083+u6.u0);+float t5085 = (t5082*t5084);+float t5086 = (t5079+t5085);+float t5087 = (t5076+t5086);+float t5088 = (t5082+t5086);+float t5089 = (t5087*t5088);+float t5090 = fract(t5089);+float t5091 = (t5090*float(2852.02));+float t5092 = fract(t5091);+float t5093 = (t5092-float(0.5));+float t5094 = (t5093*t1344);+float t5095 = (t5094*float(0.75));+float t5096 = (t5073+t5095);+float t5097 = (3.1415927/2);+float t5098 = (t5096-t5097);+float t5099 = (t5072-t5098);+float t5100 = abs(t5099);+float t5101 = (t5100/2);+float t5102 = sin(t5101);+float t5103 = (t5102*t5102);+float t5104 = cos(t5098);+float t5105 = cos(t5072);+float t5106 = (t5104*t5105);+float t5107 = (3.1415927/t2024);+float t5108 = (t4652*t5107);+float t5109 = (t5064*float(97372.83));+float t5110 = fract(t5109);+float t5111 = (t5110-float(0.5));+float t5112 = (3.1415927/t2024);+float t5113 = (t5111*t5112);+float t5114 = (t5113*float(0.75));+float t5115 = (t5108+t5114);+float t5116 = (t5115+3.1415927);+float t5117 = mod(t5116,t1433);+float t5118 = (t5117-3.1415927);+float t5119 = (t5118+3.1415927);+float t5120 = (3.1415927*2);+float t5121 = mod(t5119,t5120);+float t5122 = (t5121-3.1415927);+float t5123 = (3.1415927/t1359);+float t5124 = (t1800*t5123);+float t5125 = (t5090*float(97372.83));+float t5126 = fract(t5125);+float t5127 = (t5126-float(0.5));+float t5128 = (3.1415927/t1359);+float t5129 = (t5127*t5128);+float t5130 = (t5129*float(0.75));+float t5131 = (t5124+t5130);+float t5132 = (t5131+3.1415927);+float t5133 = mod(t5132,t1433);+float t5134 = (t5133-3.1415927);+float t5135 = (t5134+3.1415927);+float t5136 = (3.1415927*2);+float t5137 = mod(t5135,t5136);+float t5138 = (t5137-3.1415927);+float t5139 = (t5122-t5138);+float t5140 = abs(t5139);+float t5141 = (t5140/2);+float t5142 = sin(t5141);+float t5143 = (t5142*t5142);+float t5144 = (t5106*t5143);+float t5145 = (t5103+t5144);+float t5146 = sqrt(t5145);+float t5147 = asin(t5146);+float t5148 = (2*t5147);+float t5149 = (3.1415927/2);+float t5150 = (t8-t5149);+float t5151 = (3.1415927/2);+float t5152 = (t5096-t5151);+float t5153 = (t5150-t5152);+float t5154 = abs(t5153);+float t5155 = (t5154/2);+float t5156 = sin(t5155);+float t5157 = (t5156*t5156);+float t5158 = cos(t5152);+float t5159 = cos(t5150);+float t5160 = (t5158*t5159);+float t5161 = (t118+3.1415927);+float t5162 = (3.1415927*2);+float t5163 = mod(t5161,t5162);+float t5164 = (t5163-3.1415927);+float t5165 = (t5134+3.1415927);+float t5166 = (3.1415927*2);+float t5167 = mod(t5165,t5166);+float t5168 = (t5167-3.1415927);+float t5169 = (t5164-t5168);+float t5170 = abs(t5169);+float t5171 = (t5170/2);+float t5172 = sin(t5171);+float t5173 = (t5172*t5172);+float t5174 = (t5160*t5173);+float t5175 = (t5157+t5174);+float t5176 = sqrt(t5175);+float t5177 = asin(t5176);+float t5178 = (2*t5177);+float t5179 = (t5148-t5178);+float t5180 = (3.1415927/2);+float t5181 = (t8-t5180);+float t5182 = (3.1415927/2);+float t5183 = (t5070-t5182);+float t5184 = (t5181-t5183);+float t5185 = abs(t5184);+float t5186 = (t5185/2);+float t5187 = sin(t5186);+float t5188 = (t5187*t5187);+float t5189 = cos(t5183);+float t5190 = cos(t5181);+float t5191 = (t5189*t5190);+float t5192 = (t118+3.1415927);+float t5193 = (3.1415927*2);+float t5194 = mod(t5192,t5193);+float t5195 = (t5194-3.1415927);+float t5196 = (t5118+3.1415927);+float t5197 = (3.1415927*2);+float t5198 = mod(t5196,t5197);+float t5199 = (t5198-3.1415927);+float t5200 = (t5195-t5199);+float t5201 = abs(t5200);+float t5202 = (t5201/2);+float t5203 = sin(t5202);+float t5204 = (t5203*t5203);+float t5205 = (t5191*t5204);+float t5206 = (t5188+t5205);+float t5207 = sqrt(t5206);+float t5208 = asin(t5207);+float t5209 = (2*t5208);+float t5210 = (t5179-t5209);+float t5211 = abs(t5210);+bool t5212 = (float(1.0e-4)>t5211);+float t5213;+if(t5212){+float t5214 = cos(t5096);+float t5215 = (1*t5214);+float t5216 = sin(t5070);+float t5217 = (1*t5216);+float t5218 = cos(t5118);+float t5219 = (t5217*t5218);+float t5220 = (t5215*t5219);+float t5221 = sin(t5096);+float t5222 = (1*t5221);+float t5223 = cos(t5134);+float t5224 = (t5222*t5223);+float t5225 = cos(t5070);+float t5226 = (1*t5225);+float t5227 = (t5224*t5226);+float t5228 = (t5220-t5227);+float t5229 = sin(t8);+float t5230 = (1*t5229);+float t5231 = sin(t118);+float t5232 = (t5230*t5231);+float t5233 = (t5228*t5232);+float t5234 = sin(t5070);+float t5235 = (1*t5234);+float t5236 = sin(t5118);+float t5237 = (t5235*t5236);+float t5238 = (t5224*t5237);+float t5239 = sin(t5096);+float t5240 = (1*t5239);+float t5241 = sin(t5134);+float t5242 = (t5240*t5241);+float t5243 = (t5242*t5219);+float t5244 = (t5238-t5243);+float t5245 = cos(t8);+float t5246 = (1*t5245);+float t5247 = (t5244*t5246);+float t5248 = (t5233+t5247);+float t5249 = (t5242*t5226);+float t5250 = (t5215*t5237);+float t5251 = (t5249-t5250);+float t5252 = sin(t8);+float t5253 = (1*t5252);+float t5254 = cos(t118);+float t5255 = (t5253*t5254);+float t5256 = (t5251*t5255);+float t5257 = (t5248+t5256);+float t5258 = abs(t5257);+t5213 = t5258;+} else {+float t5259 = (3.1415927/2);+float t5260 = (t8-t5259);+float t5261 = (3.1415927/2);+float t5262 = (t5070-t5261);+float t5263 = (t5260-t5262);+float t5264 = abs(t5263);+float t5265 = (t5264/2);+float t5266 = sin(t5265);+float t5267 = (t5266*t5266);+float t5268 = cos(t5262);+float t5269 = cos(t5260);+float t5270 = (t5268*t5269);+float t5271 = (t118+3.1415927);+float t5272 = (3.1415927*2);+float t5273 = mod(t5271,t5272);+float t5274 = (t5273-3.1415927);+float t5275 = (t5118+3.1415927);+float t5276 = (3.1415927*2);+float t5277 = mod(t5275,t5276);+float t5278 = (t5277-3.1415927);+float t5279 = (t5274-t5278);+float t5280 = abs(t5279);+float t5281 = (t5280/2);+float t5282 = sin(t5281);+float t5283 = (t5282*t5282);+float t5284 = (t5270*t5283);+float t5285 = (t5267+t5284);+float t5286 = sqrt(t5285);+float t5287 = asin(t5286);+float t5288 = (2*t5287);+float t5289 = abs(t5288);+float t5290 = (3.1415927/2);+float t5291 = (t8-t5290);+float t5292 = (3.1415927/2);+float t5293 = (t5096-t5292);+float t5294 = (t5291-t5293);+float t5295 = abs(t5294);+float t5296 = (t5295/2);+float t5297 = sin(t5296);+float t5298 = (t5297*t5297);+float t5299 = cos(t5293);+float t5300 = cos(t5291);+float t5301 = (t5299*t5300);+float t5302 = (t118+3.1415927);+float t5303 = (3.1415927*2);+float t5304 = mod(t5302,t5303);+float t5305 = (t5304-3.1415927);+float t5306 = (t5134+3.1415927);+float t5307 = (3.1415927*2);+float t5308 = mod(t5306,t5307);+float t5309 = (t5308-3.1415927);+float t5310 = (t5305-t5309);+float t5311 = abs(t5310);+float t5312 = (t5311/2);+float t5313 = sin(t5312);+float t5314 = (t5313*t5313);+float t5315 = (t5301*t5314);+float t5316 = (t5298+t5315);+float t5317 = sqrt(t5316);+float t5318 = asin(t5317);+float t5319 = (2*t5318);+float t5320 = abs(t5319);+bool t5321 = (t5289>=t5320);+float t5322;+if(t5321){+t5322 = t5289;+} else {+t5322 = t5320;+}+t5213 = t5322;+}+float t5323 = abs(t5213);+float t5324 = step(float(2.0e-4),t5323);+float t5325 = (1-t5324);+float t5326 = (t1346*t4652);+float t5327 = (t5326*float(842.378));+float t5328 = fract(t5327);+float t5329 = (t5328+float(45.32));+float t5330 = (t5329+u6.u0);+float t5331 = (t5328*t5330);+float t5332 = (t1800*t1346);+float t5333 = (t5332*float(1734.048));+float t5334 = fract(t5333);+float t5335 = (t5334+float(45.32));+float t5336 = (t5335+u6.u0);+float t5337 = (t5334*t5336);+float t5338 = (t5331+t5337);+float t5339 = (t5328+t5338);+float t5340 = (t5334+t5338);+float t5341 = (t5339*t5340);+float t5342 = fract(t5341);+float t5343 = step(float(0.2),t5342);+float t5344 = (t5325*t5343);+float t5345 = (3.1415927/2);+float t5346 = (t5070-t5345);+float t5347 = (3.1415927/2);+float t5348 = (t5096-t5347);+float t5349 = (t5346-t5348);+float t5350 = abs(t5349);+float t5351 = (t5350/2);+float t5352 = sin(t5351);+float t5353 = (t5352*t5352);+float t5354 = cos(t5348);+float t5355 = cos(t5346);+float t5356 = (t5354*t5355);+float t5357 = (t5118+3.1415927);+float t5358 = (3.1415927*2);+float t5359 = mod(t5357,t5358);+float t5360 = (t5359-3.1415927);+float t5361 = (t5134+3.1415927);+float t5362 = (3.1415927*2);+float t5363 = mod(t5361,t5362);+float t5364 = (t5363-3.1415927);+float t5365 = (t5360-t5364);+float t5366 = abs(t5365);+float t5367 = (t5366/2);+float t5368 = sin(t5367);+float t5369 = (t5368*t5368);+float t5370 = (t5356*t5369);+float t5371 = (t5353+t5370);+float t5372 = sqrt(t5371);+float t5373 = asin(t5372);+float t5374 = (2*t5373);+float t5375 = (t5374/t1344);+float t5376 = (1-t5375);+float t5377 = (t1346/36);+float t5378 = (t5377*float(842.378));+float t5379 = fract(t5378);+float t5380 = (t5379+float(45.32));+float t5381 = (t5380+u6.u0);+float t5382 = (t5379*t5381);+float t5383 = (t1800/t1359);+float t5384 = (t5383*float(1734.048));+float t5385 = fract(t5384);+float t5386 = (t5385+float(45.32));+float t5387 = (t5386+u6.u0);+float t5388 = (t5385*t5387);+float t5389 = (t5382+t5388);+float t5390 = (t5379+t5389);+float t5391 = (t5385+t5389);+float t5392 = (t5390*t5391);+float t5393 = fract(t5392);+float t5394 = (t5393*float(8.0e-3));+float t5395 = (float(1.0e-3)+t5394);+float t5396 = (t5393*173);+float t5397 = fract(t5396);+float t5398 = step(float(0.66),t5397);+float t5399 = (t5398*float(3.0e-3));+float t5400 = (t5395-t5399);+float t5401 = (t5400*float(0.8));+float t5402 = (t1346/36);+float t5403 = (t5402*float(842.378));+float t5404 = fract(t5403);+float t5405 = (t5404+float(45.32));+float t5406 = (t5405+u6.u0);+float t5407 = (t5404*t5406);+float t5408 = (t4652/t2024);+float t5409 = (t5408*float(1734.048));+float t5410 = fract(t5409);+float t5411 = (t5410+float(45.32));+float t5412 = (t5411+u6.u0);+float t5413 = (t5410*t5412);+float t5414 = (t5407+t5413);+float t5415 = (t5404+t5414);+float t5416 = (t5410+t5414);+float t5417 = (t5415*t5416);+float t5418 = fract(t5417);+float t5419 = (t5418*float(8.0e-3));+float t5420 = (float(1.0e-3)+t5419);+float t5421 = (t5418*173);+float t5422 = fract(t5421);+float t5423 = step(float(0.66),t5422);+float t5424 = (t5423*float(3.0e-3));+float t5425 = (t5420-t5424);+float t5426 = (t5425*float(0.8));+float t5427 = (t5401-t5426);+float t5428 = abs(t5427);+float t5429 = (t5428-float(1.0e-3));+float t5430 = (t5429/float(8.0e-3));+float t5431 = (1-t5430);+float t5432 = (t5431*t5431);+float t5433 = (t5376*t5432);+float t5434 = (t5344*t5433);+float t5435 = (u4.u0*t5342);+float t5436 = (t5435*3);+float t5437 = sin(t5436);+float t5438 = (t5437+1);+float t5439 = (t5438/2);+float t5440 = (t5439*float(0.66));+float t5441 = (t5440+float(0.33));+float t5442 = (t5434*t5441);+float t5443 = (float(0.2)*t5442);+bool t5444 = (0>=t5443);+float t5445;+if(t5444){+t5445 = 0;+} else {+t5445 = t5443;+}+float t5446 = (t5445*1);+float t5447 = (t5046+t5446);+float t5448 = (3.1415927/85);+float t5449 = (t8/t5448);+float t5450 = floor(t5449);+float t5451 = (t5450/85);+float t5452 = (t5450/85);+float t5453 = (t5452*float(842.378));+float t5454 = fract(t5453);+float t5455 = (t5454+float(45.32));+float t5456 = (t5455+u6.u0);+float t5457 = (t5454*t5456);+float t5458 = (t5450/85);+float t5459 = (t5458*3.1415927);+float t5460 = sin(t5459);+float t5461 = (85*t5460);+float t5462 = floor(t5461);+float t5463 = (t5462+1);+float t5464 = (3.1415927/t5463);+float t5465 = (t118/t5464);+float t5466 = floor(t5465);+float t5467 = (t5466/t5463);+float t5468 = (t5467*float(1734.048));+float t5469 = fract(t5468);+float t5470 = (t5469+float(45.32));+float t5471 = (t5470+u6.u0);+float t5472 = (t5469*t5471);+float t5473 = (t5457+t5472);+float t5474 = (t5454+t5473);+float t5475 = (t5469+t5473);+float t5476 = (t5474*t5475);+float t5477 = fract(t5476);+float t5478 = (t5477*5);+float t5479 = (t5451+t5478);+float t5480 = fract(t5479);+float t5481 = (t5480*12000);+float t5482 = (t5481/1000);+bool t5483 = (1<=t5482);+float t5484;+if(t5483){+t5484 = 1;+} else {+t5484 = t5482;+}+float t5485 = (t5481-6000);+float t5486 = (t5485/8000);+bool t5487 = (0>=t5486);+float t5488;+if(t5487){+t5488 = 0;+} else {+t5488 = t5486;+}+float t5489 = (t5484-t5488);+float t5490 = (t5477*173);+float t5491 = fract(t5490);+float t5492 = step(float(0.66),t5491);+float t5493 = (t5492*3);+float t5494 = (3+t5493);+float t5495 = (3.1415927/t5494);+float t5496 = cos(t5495);+float t5497 = (1-t5496);+float t5498 = (t5450*t5448);+float t5499 = (t5450/85);+float t5500 = (t5499*float(842.378));+float t5501 = fract(t5500);+float t5502 = (t5501+float(45.32));+float t5503 = (t5502+u6.u0);+float t5504 = (t5501*t5503);+float t5505 = (t5466/t5463);+float t5506 = (t5505*float(1734.048));+float t5507 = fract(t5506);+float t5508 = (t5507+float(45.32));+float t5509 = (t5508+u6.u0);+float t5510 = (t5507*t5509);+float t5511 = (t5504+t5510);+float t5512 = (t5501+t5511);+float t5513 = (t5507+t5511);+float t5514 = (t5512*t5513);+float t5515 = fract(t5514);+float t5516 = (t5515*float(2852.02));+float t5517 = fract(t5516);+float t5518 = (t5517-float(0.5));+float t5519 = (t5518*t5448);+float t5520 = (t5519*float(0.75));+float t5521 = (t5498+t5520);+float t5522 = cos(t5521);+float t5523 = (1*t5522);+float t5524 = (t5523*0);+float t5525 = sin(t5521);+float t5526 = (1*t5525);+float t5527 = (3.1415927/t5463);+float t5528 = (t5466*t5527);+float t5529 = (t5515*float(97372.83));+float t5530 = fract(t5529);+float t5531 = (t5530-float(0.5));+float t5532 = (3.1415927/t5463);+float t5533 = (t5531*t5532);+float t5534 = (t5533*float(0.75));+float t5535 = (t5528+t5534);+float t5536 = (t5535+3.1415927);+float t5537 = mod(t5536,t1433);+float t5538 = (t5537-3.1415927);+float t5539 = cos(t5538);+float t5540 = (t5526*t5539);+float t5541 = (t5540*1);+float t5542 = (t5524-t5541);+float t5543 = sin(t8);+float t5544 = (1*t5543);+float t5545 = sin(t118);+float t5546 = (t5544*t5545);+float t5547 = (t5542*t5546);+float t5548 = (t5540*0);+float t5549 = sin(t5521);+float t5550 = (1*t5549);+float t5551 = sin(t5538);+float t5552 = (t5550*t5551);+float t5553 = (t5552*0);+float t5554 = (t5548-t5553);+float t5555 = cos(t8);+float t5556 = (1*t5555);+float t5557 = (t5554*t5556);+float t5558 = (t5547+t5557);+float t5559 = (t5552*1);+float t5560 = (t5523*0);+float t5561 = (t5559-t5560);+float t5562 = sin(t8);+float t5563 = (1*t5562);+float t5564 = cos(t118);+float t5565 = (t5563*t5564);+float t5566 = (t5561*t5565);+float t5567 = (t5558+t5566);+float t5568 = (t5554*t5540);+float t5569 = (t5561*t5523);+float t5570 = (t5568-t5569);+float t5571 = (t5570*t5546);+float t5572 = (t5561*t5552);+float t5573 = (t5542*t5540);+float t5574 = (t5572-t5573);+float t5575 = (t5574*t5556);+float t5576 = (t5571+t5575);+float t5577 = (t5542*t5523);+float t5578 = (t5554*t5552);+float t5579 = (t5577-t5578);+float t5580 = (t5579*t5565);+float t5581 = (t5576+t5580);+float t5582 = atan(t5567,t5581);+float t5583 = (t5582+3.1415927);+float t5584 = (t5491*3.1415927);+float t5585 = (t5583+t5584);+float t5586 = (t5585/t1483);+float t5587 = fract(t5586);+float t5588 = (t5587*t5494);+float t5589 = fract(t5588);+float t5590 = (t5589*2);+float t5591 = (t5590-1);+float t5592 = abs(t5591);+float t5593 = (t5592*t5592);+float t5594 = (t5497*t5593);+float t5595 = (t5496+t5594);+float t5596 = (t5477*float(8.0e-3));+float t5597 = (float(1.0e-3)+t5596);+float t5598 = step(float(0.66),t5491);+float t5599 = (t5598*float(3.0e-3));+float t5600 = (t5597-t5599);+float t5601 = (t5600*float(0.45));+float t5602 = (t5595*t5601);+float t5603 = (3.1415927/2);+float t5604 = (t5521-t5603);+float t5605 = (3.1415927/2);+float t5606 = (t8-t5605);+float t5607 = (t5604-t5606);+float t5608 = abs(t5607);+float t5609 = (t5608/2);+float t5610 = sin(t5609);+float t5611 = (t5610*t5610);+float t5612 = cos(t5606);+float t5613 = cos(t5604);+float t5614 = (t5612*t5613);+float t5615 = (t5538+3.1415927);+float t5616 = (3.1415927*2);+float t5617 = mod(t5615,t5616);+float t5618 = (t5617-3.1415927);+float t5619 = (t118+3.1415927);+float t5620 = (3.1415927*2);+float t5621 = mod(t5619,t5620);+float t5622 = (t5621-3.1415927);+float t5623 = (t5618-t5622);+float t5624 = abs(t5623);+float t5625 = (t5624/2);+float t5626 = sin(t5625);+float t5627 = (t5626*t5626);+float t5628 = (t5614*t5627);+float t5629 = (t5611+t5628);+float t5630 = sqrt(t5629);+float t5631 = asin(t5630);+float t5632 = (2*t5631);+float t5633 = step(t5602,t5632);+float t5634 = (1-t5633);+float t5635 = (t5489*t5634);+float t5636 = (3.1415927/2);+float t5637 = (t8-t5636);+float t5638 = (3.1415927/2);+float t5639 = (t5521-t5638);+float t5640 = (t5637-t5639);+float t5641 = abs(t5640);+float t5642 = (t5641/2);+float t5643 = sin(t5642);+float t5644 = (t5643*t5643);+float t5645 = cos(t5639);+float t5646 = cos(t5637);+float t5647 = (t5645*t5646);+float t5648 = (t118+3.1415927);+float t5649 = (3.1415927*2);+float t5650 = mod(t5648,t5649);+float t5651 = (t5650-3.1415927);+float t5652 = (t5538+3.1415927);+float t5653 = (3.1415927*2);+float t5654 = mod(t5652,t5653);+float t5655 = (t5654-3.1415927);+float t5656 = (t5651-t5655);+float t5657 = abs(t5656);+float t5658 = (t5657/2);+float t5659 = sin(t5658);+float t5660 = (t5659*t5659);+float t5661 = (t5647*t5660);+float t5662 = (t5644+t5661);+float t5663 = sqrt(t5662);+float t5664 = asin(t5663);+float t5665 = (2*t5664);+float t5666 = (1/t5665);+float t5667 = (t5666*t5601);+float t5668 = (t5667*float(1.25e-2));+float t5669 = (u4.u0*t5477);+float t5670 = cos(t5669);+float t5671 = (t5670+1);+float t5672 = (t5671/2);+float t5673 = (t5668*t5672);+float t5674 = (t5673*t5489);+float t5675 = (t5635+t5674);+float t5676 = (0+t5675);+float t5677 = (t5450/85);+float t5678 = (t5450/85);+float t5679 = (t5678*float(842.378));+float t5680 = fract(t5679);+float t5681 = (t5680+float(45.32));+float t5682 = (t5681+u6.u0);+float t5683 = (t5680*t5682);+float t5684 = (t5466+1);+float t5685 = (t5684/t5463);+float t5686 = (t5685*float(1734.048));+float t5687 = fract(t5686);+float t5688 = (t5687+float(45.32));+float t5689 = (t5688+u6.u0);+float t5690 = (t5687*t5689);+float t5691 = (t5683+t5690);+float t5692 = (t5680+t5691);+float t5693 = (t5687+t5691);+float t5694 = (t5692*t5693);+float t5695 = fract(t5694);+float t5696 = (t5695*5);+float t5697 = (t5677+t5696);+float t5698 = fract(t5697);+float t5699 = (t5698*12000);+float t5700 = (t5699/1000);+bool t5701 = (1<=t5700);+float t5702;+if(t5701){+t5702 = 1;+} else {+t5702 = t5700;+}+float t5703 = (t5699-6000);+float t5704 = (t5703/8000);+bool t5705 = (0>=t5704);+float t5706;+if(t5705){+t5706 = 0;+} else {+t5706 = t5704;+}+float t5707 = (t5702-t5706);+float t5708 = (t5695*173);+float t5709 = fract(t5708);+float t5710 = step(float(0.66),t5709);+float t5711 = (t5710*3);+float t5712 = (3+t5711);+float t5713 = (3.1415927/t5712);+float t5714 = cos(t5713);+float t5715 = (1-t5714);+float t5716 = (t5450*t5448);+float t5717 = (t5450/85);+float t5718 = (t5717*float(842.378));+float t5719 = fract(t5718);+float t5720 = (t5719+float(45.32));+float t5721 = (t5720+u6.u0);+float t5722 = (t5719*t5721);+float t5723 = (t5684/t5463);+float t5724 = (t5723*float(1734.048));+float t5725 = fract(t5724);+float t5726 = (t5725+float(45.32));+float t5727 = (t5726+u6.u0);+float t5728 = (t5725*t5727);+float t5729 = (t5722+t5728);+float t5730 = (t5719+t5729);+float t5731 = (t5725+t5729);+float t5732 = (t5730*t5731);+float t5733 = fract(t5732);+float t5734 = (t5733*float(2852.02));+float t5735 = fract(t5734);+float t5736 = (t5735-float(0.5));+float t5737 = (t5736*t5448);+float t5738 = (t5737*float(0.75));+float t5739 = (t5716+t5738);+float t5740 = cos(t5739);+float t5741 = (1*t5740);+float t5742 = (t5741*0);+float t5743 = sin(t5739);+float t5744 = (1*t5743);+float t5745 = (3.1415927/t5463);+float t5746 = (t5684*t5745);+float t5747 = (t5733*float(97372.83));+float t5748 = fract(t5747);+float t5749 = (t5748-float(0.5));+float t5750 = (3.1415927/t5463);+float t5751 = (t5749*t5750);+float t5752 = (t5751*float(0.75));+float t5753 = (t5746+t5752);+float t5754 = (t5753+3.1415927);+float t5755 = mod(t5754,t1433);+float t5756 = (t5755-3.1415927);+float t5757 = cos(t5756);+float t5758 = (t5744*t5757);+float t5759 = (t5758*1);+float t5760 = (t5742-t5759);+float t5761 = sin(t8);+float t5762 = (1*t5761);+float t5763 = sin(t118);+float t5764 = (t5762*t5763);+float t5765 = (t5760*t5764);+float t5766 = (t5758*0);+float t5767 = sin(t5739);+float t5768 = (1*t5767);+float t5769 = sin(t5756);+float t5770 = (t5768*t5769);+float t5771 = (t5770*0);+float t5772 = (t5766-t5771);+float t5773 = cos(t8);+float t5774 = (1*t5773);+float t5775 = (t5772*t5774);+float t5776 = (t5765+t5775);+float t5777 = (t5770*1);+float t5778 = (t5741*0);+float t5779 = (t5777-t5778);+float t5780 = sin(t8);+float t5781 = (1*t5780);+float t5782 = cos(t118);+float t5783 = (t5781*t5782);+float t5784 = (t5779*t5783);+float t5785 = (t5776+t5784);+float t5786 = (t5772*t5758);+float t5787 = (t5779*t5741);+float t5788 = (t5786-t5787);+float t5789 = (t5788*t5764);+float t5790 = (t5779*t5770);+float t5791 = (t5760*t5758);+float t5792 = (t5790-t5791);+float t5793 = (t5792*t5774);+float t5794 = (t5789+t5793);+float t5795 = (t5760*t5741);+float t5796 = (t5772*t5770);+float t5797 = (t5795-t5796);+float t5798 = (t5797*t5783);+float t5799 = (t5794+t5798);+float t5800 = atan(t5785,t5799);+float t5801 = (t5800+3.1415927);+float t5802 = (t5709*3.1415927);+float t5803 = (t5801+t5802);+float t5804 = (t5803/t1483);+float t5805 = fract(t5804);+float t5806 = (t5805*t5712);+float t5807 = fract(t5806);+float t5808 = (t5807*2);+float t5809 = (t5808-1);+float t5810 = abs(t5809);+float t5811 = (t5810*t5810);+float t5812 = (t5715*t5811);+float t5813 = (t5714+t5812);+float t5814 = (t5695*float(8.0e-3));+float t5815 = (float(1.0e-3)+t5814);+float t5816 = step(float(0.66),t5709);+float t5817 = (t5816*float(3.0e-3));+float t5818 = (t5815-t5817);+float t5819 = (t5818*float(0.45));+float t5820 = (t5813*t5819);+float t5821 = (3.1415927/2);+float t5822 = (t5739-t5821);+float t5823 = (3.1415927/2);+float t5824 = (t8-t5823);+float t5825 = (t5822-t5824);+float t5826 = abs(t5825);+float t5827 = (t5826/2);+float t5828 = sin(t5827);+float t5829 = (t5828*t5828);+float t5830 = cos(t5824);+float t5831 = cos(t5822);+float t5832 = (t5830*t5831);+float t5833 = (t5756+3.1415927);+float t5834 = (3.1415927*2);+float t5835 = mod(t5833,t5834);+float t5836 = (t5835-3.1415927);+float t5837 = (t118+3.1415927);+float t5838 = (3.1415927*2);+float t5839 = mod(t5837,t5838);+float t5840 = (t5839-3.1415927);+float t5841 = (t5836-t5840);+float t5842 = abs(t5841);+float t5843 = (t5842/2);+float t5844 = sin(t5843);+float t5845 = (t5844*t5844);+float t5846 = (t5832*t5845);+float t5847 = (t5829+t5846);+float t5848 = sqrt(t5847);+float t5849 = asin(t5848);+float t5850 = (2*t5849);+float t5851 = step(t5820,t5850);+float t5852 = (1-t5851);+float t5853 = (t5707*t5852);+float t5854 = (3.1415927/2);+float t5855 = (t8-t5854);+float t5856 = (3.1415927/2);+float t5857 = (t5739-t5856);+float t5858 = (t5855-t5857);+float t5859 = abs(t5858);+float t5860 = (t5859/2);+float t5861 = sin(t5860);+float t5862 = (t5861*t5861);+float t5863 = cos(t5857);+float t5864 = cos(t5855);+float t5865 = (t5863*t5864);+float t5866 = (t118+3.1415927);+float t5867 = (3.1415927*2);+float t5868 = mod(t5866,t5867);+float t5869 = (t5868-3.1415927);+float t5870 = (t5756+3.1415927);+float t5871 = (3.1415927*2);+float t5872 = mod(t5870,t5871);+float t5873 = (t5872-3.1415927);+float t5874 = (t5869-t5873);+float t5875 = abs(t5874);+float t5876 = (t5875/2);+float t5877 = sin(t5876);+float t5878 = (t5877*t5877);+float t5879 = (t5865*t5878);+float t5880 = (t5862+t5879);+float t5881 = sqrt(t5880);+float t5882 = asin(t5881);+float t5883 = (2*t5882);+float t5884 = (1/t5883);+float t5885 = (t5884*t5819);+float t5886 = (t5885*float(1.25e-2));+float t5887 = (u4.u0*t5695);+float t5888 = cos(t5887);+float t5889 = (t5888+1);+float t5890 = (t5889/2);+float t5891 = (t5886*t5890);+float t5892 = (t5891*t5707);+float t5893 = (t5853+t5892);+float t5894 = (t5676+t5893);+float t5895 = (t5450/85);+float t5896 = (t5450/85);+float t5897 = (t5896*float(842.378));+float t5898 = fract(t5897);+float t5899 = (t5898+float(45.32));+float t5900 = (t5899+u6.u0);+float t5901 = (t5898*t5900);+float t5902 = (t5466+2);+float t5903 = (t5902/t5463);+float t5904 = (t5903*float(1734.048));+float t5905 = fract(t5904);+float t5906 = (t5905+float(45.32));+float t5907 = (t5906+u6.u0);+float t5908 = (t5905*t5907);+float t5909 = (t5901+t5908);+float t5910 = (t5898+t5909);+float t5911 = (t5905+t5909);+float t5912 = (t5910*t5911);+float t5913 = fract(t5912);+float t5914 = (t5913*5);+float t5915 = (t5895+t5914);+float t5916 = fract(t5915);+float t5917 = (t5916*12000);+float t5918 = (t5917/1000);+bool t5919 = (1<=t5918);+float t5920;+if(t5919){+t5920 = 1;+} else {+t5920 = t5918;+}+float t5921 = (t5917-6000);+float t5922 = (t5921/8000);+bool t5923 = (0>=t5922);+float t5924;+if(t5923){+t5924 = 0;+} else {+t5924 = t5922;+}+float t5925 = (t5920-t5924);+float t5926 = (t5913*173);+float t5927 = fract(t5926);+float t5928 = step(float(0.66),t5927);+float t5929 = (t5928*3);+float t5930 = (3+t5929);+float t5931 = (3.1415927/t5930);+float t5932 = cos(t5931);+float t5933 = (1-t5932);+float t5934 = (t5450*t5448);+float t5935 = (t5450/85);+float t5936 = (t5935*float(842.378));+float t5937 = fract(t5936);+float t5938 = (t5937+float(45.32));+float t5939 = (t5938+u6.u0);+float t5940 = (t5937*t5939);+float t5941 = (t5902/t5463);+float t5942 = (t5941*float(1734.048));+float t5943 = fract(t5942);+float t5944 = (t5943+float(45.32));+float t5945 = (t5944+u6.u0);+float t5946 = (t5943*t5945);+float t5947 = (t5940+t5946);+float t5948 = (t5937+t5947);+float t5949 = (t5943+t5947);+float t5950 = (t5948*t5949);+float t5951 = fract(t5950);+float t5952 = (t5951*float(2852.02));+float t5953 = fract(t5952);+float t5954 = (t5953-float(0.5));+float t5955 = (t5954*t5448);+float t5956 = (t5955*float(0.75));+float t5957 = (t5934+t5956);+float t5958 = cos(t5957);+float t5959 = (1*t5958);+float t5960 = (t5959*0);+float t5961 = sin(t5957);+float t5962 = (1*t5961);+float t5963 = (3.1415927/t5463);+float t5964 = (t5902*t5963);+float t5965 = (t5951*float(97372.83));+float t5966 = fract(t5965);+float t5967 = (t5966-float(0.5));+float t5968 = (3.1415927/t5463);+float t5969 = (t5967*t5968);+float t5970 = (t5969*float(0.75));+float t5971 = (t5964+t5970);+float t5972 = (t5971+3.1415927);+float t5973 = mod(t5972,t1433);+float t5974 = (t5973-3.1415927);+float t5975 = cos(t5974);+float t5976 = (t5962*t5975);+float t5977 = (t5976*1);+float t5978 = (t5960-t5977);+float t5979 = sin(t8);+float t5980 = (1*t5979);+float t5981 = sin(t118);+float t5982 = (t5980*t5981);+float t5983 = (t5978*t5982);+float t5984 = (t5976*0);+float t5985 = sin(t5957);+float t5986 = (1*t5985);+float t5987 = sin(t5974);+float t5988 = (t5986*t5987);+float t5989 = (t5988*0);+float t5990 = (t5984-t5989);+float t5991 = cos(t8);+float t5992 = (1*t5991);+float t5993 = (t5990*t5992);+float t5994 = (t5983+t5993);+float t5995 = (t5988*1);+float t5996 = (t5959*0);+float t5997 = (t5995-t5996);+float t5998 = sin(t8);+float t5999 = (1*t5998);+float t6000 = cos(t118);+float t6001 = (t5999*t6000);+float t6002 = (t5997*t6001);+float t6003 = (t5994+t6002);+float t6004 = (t5990*t5976);+float t6005 = (t5997*t5959);+float t6006 = (t6004-t6005);+float t6007 = (t6006*t5982);+float t6008 = (t5997*t5988);+float t6009 = (t5978*t5976);+float t6010 = (t6008-t6009);+float t6011 = (t6010*t5992);+float t6012 = (t6007+t6011);+float t6013 = (t5978*t5959);+float t6014 = (t5990*t5988);+float t6015 = (t6013-t6014);+float t6016 = (t6015*t6001);+float t6017 = (t6012+t6016);+float t6018 = atan(t6003,t6017);+float t6019 = (t6018+3.1415927);+float t6020 = (t5927*3.1415927);+float t6021 = (t6019+t6020);+float t6022 = (t6021/t1483);+float t6023 = fract(t6022);+float t6024 = (t6023*t5930);+float t6025 = fract(t6024);+float t6026 = (t6025*2);+float t6027 = (t6026-1);+float t6028 = abs(t6027);+float t6029 = (t6028*t6028);+float t6030 = (t5933*t6029);+float t6031 = (t5932+t6030);+float t6032 = (t5913*float(8.0e-3));+float t6033 = (float(1.0e-3)+t6032);+float t6034 = step(float(0.66),t5927);+float t6035 = (t6034*float(3.0e-3));+float t6036 = (t6033-t6035);+float t6037 = (t6036*float(0.45));+float t6038 = (t6031*t6037);+float t6039 = (3.1415927/2);+float t6040 = (t5957-t6039);+float t6041 = (3.1415927/2);+float t6042 = (t8-t6041);+float t6043 = (t6040-t6042);+float t6044 = abs(t6043);+float t6045 = (t6044/2);+float t6046 = sin(t6045);+float t6047 = (t6046*t6046);+float t6048 = cos(t6042);+float t6049 = cos(t6040);+float t6050 = (t6048*t6049);+float t6051 = (t5974+3.1415927);+float t6052 = (3.1415927*2);+float t6053 = mod(t6051,t6052);+float t6054 = (t6053-3.1415927);+float t6055 = (t118+3.1415927);+float t6056 = (3.1415927*2);+float t6057 = mod(t6055,t6056);+float t6058 = (t6057-3.1415927);+float t6059 = (t6054-t6058);+float t6060 = abs(t6059);+float t6061 = (t6060/2);+float t6062 = sin(t6061);+float t6063 = (t6062*t6062);+float t6064 = (t6050*t6063);+float t6065 = (t6047+t6064);+float t6066 = sqrt(t6065);+float t6067 = asin(t6066);+float t6068 = (2*t6067);+float t6069 = step(t6038,t6068);+float t6070 = (1-t6069);+float t6071 = (t5925*t6070);+float t6072 = (3.1415927/2);+float t6073 = (t8-t6072);+float t6074 = (3.1415927/2);+float t6075 = (t5957-t6074);+float t6076 = (t6073-t6075);+float t6077 = abs(t6076);+float t6078 = (t6077/2);+float t6079 = sin(t6078);+float t6080 = (t6079*t6079);+float t6081 = cos(t6075);+float t6082 = cos(t6073);+float t6083 = (t6081*t6082);+float t6084 = (t118+3.1415927);+float t6085 = (3.1415927*2);+float t6086 = mod(t6084,t6085);+float t6087 = (t6086-3.1415927);+float t6088 = (t5974+3.1415927);+float t6089 = (3.1415927*2);+float t6090 = mod(t6088,t6089);+float t6091 = (t6090-3.1415927);+float t6092 = (t6087-t6091);+float t6093 = abs(t6092);+float t6094 = (t6093/2);+float t6095 = sin(t6094);+float t6096 = (t6095*t6095);+float t6097 = (t6083*t6096);+float t6098 = (t6080+t6097);+float t6099 = sqrt(t6098);+float t6100 = asin(t6099);+float t6101 = (2*t6100);+float t6102 = (1/t6101);+float t6103 = (t6102*t6037);+float t6104 = (t6103*float(1.25e-2));+float t6105 = (u4.u0*t5913);+float t6106 = cos(t6105);+float t6107 = (t6106+1);+float t6108 = (t6107/2);+float t6109 = (t6104*t6108);+float t6110 = (t6109*t5925);+float t6111 = (t6071+t6110);+float t6112 = (t5894+t6111);+float t6113 = (t5450+1);+float t6114 = (t6113/85);+float t6115 = (t6113/85);+float t6116 = (t6115*float(842.378));+float t6117 = fract(t6116);+float t6118 = (t6117+float(45.32));+float t6119 = (t6118+u6.u0);+float t6120 = (t6117*t6119);+float t6121 = (t6113/85);+float t6122 = (t6121*3.1415927);+float t6123 = sin(t6122);+float t6124 = (85*t6123);+float t6125 = floor(t6124);+float t6126 = (t6125+1);+float t6127 = (3.1415927/t6126);+float t6128 = (t118/t6127);+float t6129 = floor(t6128);+float t6130 = (t6129/t6126);+float t6131 = (t6130*float(1734.048));+float t6132 = fract(t6131);+float t6133 = (t6132+float(45.32));+float t6134 = (t6133+u6.u0);+float t6135 = (t6132*t6134);+float t6136 = (t6120+t6135);+float t6137 = (t6117+t6136);+float t6138 = (t6132+t6136);+float t6139 = (t6137*t6138);+float t6140 = fract(t6139);+float t6141 = (t6140*5);+float t6142 = (t6114+t6141);+float t6143 = fract(t6142);+float t6144 = (t6143*12000);+float t6145 = (t6144/1000);+bool t6146 = (1<=t6145);+float t6147;+if(t6146){+t6147 = 1;+} else {+t6147 = t6145;+}+float t6148 = (t6144-6000);+float t6149 = (t6148/8000);+bool t6150 = (0>=t6149);+float t6151;+if(t6150){+t6151 = 0;+} else {+t6151 = t6149;+}+float t6152 = (t6147-t6151);+float t6153 = (t6140*173);+float t6154 = fract(t6153);+float t6155 = step(float(0.66),t6154);+float t6156 = (t6155*3);+float t6157 = (3+t6156);+float t6158 = (3.1415927/t6157);+float t6159 = cos(t6158);+float t6160 = (1-t6159);+float t6161 = (t6113*t5448);+float t6162 = (t6113/85);+float t6163 = (t6162*float(842.378));+float t6164 = fract(t6163);+float t6165 = (t6164+float(45.32));+float t6166 = (t6165+u6.u0);+float t6167 = (t6164*t6166);+float t6168 = (t6129/t6126);+float t6169 = (t6168*float(1734.048));+float t6170 = fract(t6169);+float t6171 = (t6170+float(45.32));+float t6172 = (t6171+u6.u0);+float t6173 = (t6170*t6172);+float t6174 = (t6167+t6173);+float t6175 = (t6164+t6174);+float t6176 = (t6170+t6174);+float t6177 = (t6175*t6176);+float t6178 = fract(t6177);+float t6179 = (t6178*float(2852.02));+float t6180 = fract(t6179);+float t6181 = (t6180-float(0.5));+float t6182 = (t6181*t5448);+float t6183 = (t6182*float(0.75));+float t6184 = (t6161+t6183);+float t6185 = cos(t6184);+float t6186 = (1*t6185);+float t6187 = (t6186*0);+float t6188 = sin(t6184);+float t6189 = (1*t6188);+float t6190 = (3.1415927/t6126);+float t6191 = (t6129*t6190);+float t6192 = (t6178*float(97372.83));+float t6193 = fract(t6192);+float t6194 = (t6193-float(0.5));+float t6195 = (3.1415927/t6126);+float t6196 = (t6194*t6195);+float t6197 = (t6196*float(0.75));+float t6198 = (t6191+t6197);+float t6199 = (t6198+3.1415927);+float t6200 = mod(t6199,t1433);+float t6201 = (t6200-3.1415927);+float t6202 = cos(t6201);+float t6203 = (t6189*t6202);+float t6204 = (t6203*1);+float t6205 = (t6187-t6204);+float t6206 = sin(t8);+float t6207 = (1*t6206);+float t6208 = sin(t118);+float t6209 = (t6207*t6208);+float t6210 = (t6205*t6209);+float t6211 = (t6203*0);+float t6212 = sin(t6184);+float t6213 = (1*t6212);+float t6214 = sin(t6201);+float t6215 = (t6213*t6214);+float t6216 = (t6215*0);+float t6217 = (t6211-t6216);+float t6218 = cos(t8);+float t6219 = (1*t6218);+float t6220 = (t6217*t6219);+float t6221 = (t6210+t6220);+float t6222 = (t6215*1);+float t6223 = (t6186*0);+float t6224 = (t6222-t6223);+float t6225 = sin(t8);+float t6226 = (1*t6225);+float t6227 = cos(t118);+float t6228 = (t6226*t6227);+float t6229 = (t6224*t6228);+float t6230 = (t6221+t6229);+float t6231 = (t6217*t6203);+float t6232 = (t6224*t6186);+float t6233 = (t6231-t6232);+float t6234 = (t6233*t6209);+float t6235 = (t6224*t6215);+float t6236 = (t6205*t6203);+float t6237 = (t6235-t6236);+float t6238 = (t6237*t6219);+float t6239 = (t6234+t6238);+float t6240 = (t6205*t6186);+float t6241 = (t6217*t6215);+float t6242 = (t6240-t6241);+float t6243 = (t6242*t6228);+float t6244 = (t6239+t6243);+float t6245 = atan(t6230,t6244);+float t6246 = (t6245+3.1415927);+float t6247 = (t6154*3.1415927);+float t6248 = (t6246+t6247);+float t6249 = (t6248/t1483);+float t6250 = fract(t6249);+float t6251 = (t6250*t6157);+float t6252 = fract(t6251);+float t6253 = (t6252*2);+float t6254 = (t6253-1);+float t6255 = abs(t6254);+float t6256 = (t6255*t6255);+float t6257 = (t6160*t6256);+float t6258 = (t6159+t6257);+float t6259 = (t6140*float(8.0e-3));+float t6260 = (float(1.0e-3)+t6259);+float t6261 = step(float(0.66),t6154);+float t6262 = (t6261*float(3.0e-3));+float t6263 = (t6260-t6262);+float t6264 = (t6263*float(0.45));+float t6265 = (t6258*t6264);+float t6266 = (3.1415927/2);+float t6267 = (t6184-t6266);+float t6268 = (3.1415927/2);+float t6269 = (t8-t6268);+float t6270 = (t6267-t6269);+float t6271 = abs(t6270);+float t6272 = (t6271/2);+float t6273 = sin(t6272);+float t6274 = (t6273*t6273);+float t6275 = cos(t6269);+float t6276 = cos(t6267);+float t6277 = (t6275*t6276);+float t6278 = (t6201+3.1415927);+float t6279 = (3.1415927*2);+float t6280 = mod(t6278,t6279);+float t6281 = (t6280-3.1415927);+float t6282 = (t118+3.1415927);+float t6283 = (3.1415927*2);+float t6284 = mod(t6282,t6283);+float t6285 = (t6284-3.1415927);+float t6286 = (t6281-t6285);+float t6287 = abs(t6286);+float t6288 = (t6287/2);+float t6289 = sin(t6288);+float t6290 = (t6289*t6289);+float t6291 = (t6277*t6290);+float t6292 = (t6274+t6291);+float t6293 = sqrt(t6292);+float t6294 = asin(t6293);+float t6295 = (2*t6294);+float t6296 = step(t6265,t6295);+float t6297 = (1-t6296);+float t6298 = (t6152*t6297);+float t6299 = (3.1415927/2);+float t6300 = (t8-t6299);+float t6301 = (3.1415927/2);+float t6302 = (t6184-t6301);+float t6303 = (t6300-t6302);+float t6304 = abs(t6303);+float t6305 = (t6304/2);+float t6306 = sin(t6305);+float t6307 = (t6306*t6306);+float t6308 = cos(t6302);+float t6309 = cos(t6300);+float t6310 = (t6308*t6309);+float t6311 = (t118+3.1415927);+float t6312 = (3.1415927*2);+float t6313 = mod(t6311,t6312);+float t6314 = (t6313-3.1415927);+float t6315 = (t6201+3.1415927);+float t6316 = (3.1415927*2);+float t6317 = mod(t6315,t6316);+float t6318 = (t6317-3.1415927);+float t6319 = (t6314-t6318);+float t6320 = abs(t6319);+float t6321 = (t6320/2);+float t6322 = sin(t6321);+float t6323 = (t6322*t6322);+float t6324 = (t6310*t6323);+float t6325 = (t6307+t6324);+float t6326 = sqrt(t6325);+float t6327 = asin(t6326);+float t6328 = (2*t6327);+float t6329 = (1/t6328);+float t6330 = (t6329*t6264);+float t6331 = (t6330*float(1.25e-2));+float t6332 = (u4.u0*t6140);+float t6333 = cos(t6332);+float t6334 = (t6333+1);+float t6335 = (t6334/2);+float t6336 = (t6331*t6335);+float t6337 = (t6336*t6152);+float t6338 = (t6298+t6337);+float t6339 = (t6112+t6338);+float t6340 = (t5450*t5448);+float t6341 = (t5450/85);+float t6342 = (t6341*float(842.378));+float t6343 = fract(t6342);+float t6344 = (t6343+float(45.32));+float t6345 = (t6344+u6.u0);+float t6346 = (t6343*t6345);+float t6347 = (t5684/t5463);+float t6348 = (t6347*float(1734.048));+float t6349 = fract(t6348);+float t6350 = (t6349+float(45.32));+float t6351 = (t6350+u6.u0);+float t6352 = (t6349*t6351);+float t6353 = (t6346+t6352);+float t6354 = (t6343+t6353);+float t6355 = (t6349+t6353);+float t6356 = (t6354*t6355);+float t6357 = fract(t6356);+float t6358 = (t6357*float(2852.02));+float t6359 = fract(t6358);+float t6360 = (t6359-float(0.5));+float t6361 = (t6360*t5448);+float t6362 = (t6361*float(0.75));+float t6363 = (t6340+t6362);+float t6364 = (3.1415927/2);+float t6365 = (t6363-t6364);+float t6366 = (t5450*t5448);+float t6367 = (t5450/85);+float t6368 = (t6367*float(842.378));+float t6369 = fract(t6368);+float t6370 = (t6369+float(45.32));+float t6371 = (t6370+u6.u0);+float t6372 = (t6369*t6371);+float t6373 = (t5466/t5463);+float t6374 = (t6373*float(1734.048));+float t6375 = fract(t6374);+float t6376 = (t6375+float(45.32));+float t6377 = (t6376+u6.u0);+float t6378 = (t6375*t6377);+float t6379 = (t6372+t6378);+float t6380 = (t6369+t6379);+float t6381 = (t6375+t6379);+float t6382 = (t6380*t6381);+float t6383 = fract(t6382);+float t6384 = (t6383*float(2852.02));+float t6385 = fract(t6384);+float t6386 = (t6385-float(0.5));+float t6387 = (t6386*t5448);+float t6388 = (t6387*float(0.75));+float t6389 = (t6366+t6388);+float t6390 = (3.1415927/2);+float t6391 = (t6389-t6390);+float t6392 = (t6365-t6391);+float t6393 = abs(t6392);+float t6394 = (t6393/2);+float t6395 = sin(t6394);+float t6396 = (t6395*t6395);+float t6397 = cos(t6391);+float t6398 = cos(t6365);+float t6399 = (t6397*t6398);+float t6400 = (3.1415927/t5463);+float t6401 = (t5684*t6400);+float t6402 = (t6357*float(97372.83));+float t6403 = fract(t6402);+float t6404 = (t6403-float(0.5));+float t6405 = (3.1415927/t5463);+float t6406 = (t6404*t6405);+float t6407 = (t6406*float(0.75));+float t6408 = (t6401+t6407);+float t6409 = (t6408+3.1415927);+float t6410 = mod(t6409,t1433);+float t6411 = (t6410-3.1415927);+float t6412 = (t6411+3.1415927);+float t6413 = (3.1415927*2);+float t6414 = mod(t6412,t6413);+float t6415 = (t6414-3.1415927);+float t6416 = (3.1415927/t5463);+float t6417 = (t5466*t6416);+float t6418 = (t6383*float(97372.83));+float t6419 = fract(t6418);+float t6420 = (t6419-float(0.5));+float t6421 = (3.1415927/t5463);+float t6422 = (t6420*t6421);+float t6423 = (t6422*float(0.75));+float t6424 = (t6417+t6423);+float t6425 = (t6424+3.1415927);+float t6426 = mod(t6425,t1433);+float t6427 = (t6426-3.1415927);+float t6428 = (t6427+3.1415927);+float t6429 = (3.1415927*2);+float t6430 = mod(t6428,t6429);+float t6431 = (t6430-3.1415927);+float t6432 = (t6415-t6431);+float t6433 = abs(t6432);+float t6434 = (t6433/2);+float t6435 = sin(t6434);+float t6436 = (t6435*t6435);+float t6437 = (t6399*t6436);+float t6438 = (t6396+t6437);+float t6439 = sqrt(t6438);+float t6440 = asin(t6439);+float t6441 = (2*t6440);+float t6442 = (3.1415927/2);+float t6443 = (t8-t6442);+float t6444 = (3.1415927/2);+float t6445 = (t6389-t6444);+float t6446 = (t6443-t6445);+float t6447 = abs(t6446);+float t6448 = (t6447/2);+float t6449 = sin(t6448);+float t6450 = (t6449*t6449);+float t6451 = cos(t6445);+float t6452 = cos(t6443);+float t6453 = (t6451*t6452);+float t6454 = (t118+3.1415927);+float t6455 = (3.1415927*2);+float t6456 = mod(t6454,t6455);+float t6457 = (t6456-3.1415927);+float t6458 = (t6427+3.1415927);+float t6459 = (3.1415927*2);+float t6460 = mod(t6458,t6459);+float t6461 = (t6460-3.1415927);+float t6462 = (t6457-t6461);+float t6463 = abs(t6462);+float t6464 = (t6463/2);+float t6465 = sin(t6464);+float t6466 = (t6465*t6465);+float t6467 = (t6453*t6466);+float t6468 = (t6450+t6467);+float t6469 = sqrt(t6468);+float t6470 = asin(t6469);+float t6471 = (2*t6470);+float t6472 = (t6441-t6471);+float t6473 = (3.1415927/2);+float t6474 = (t8-t6473);+float t6475 = (3.1415927/2);+float t6476 = (t6363-t6475);+float t6477 = (t6474-t6476);+float t6478 = abs(t6477);+float t6479 = (t6478/2);+float t6480 = sin(t6479);+float t6481 = (t6480*t6480);+float t6482 = cos(t6476);+float t6483 = cos(t6474);+float t6484 = (t6482*t6483);+float t6485 = (t118+3.1415927);+float t6486 = (3.1415927*2);+float t6487 = mod(t6485,t6486);+float t6488 = (t6487-3.1415927);+float t6489 = (t6411+3.1415927);+float t6490 = (3.1415927*2);+float t6491 = mod(t6489,t6490);+float t6492 = (t6491-3.1415927);+float t6493 = (t6488-t6492);+float t6494 = abs(t6493);+float t6495 = (t6494/2);+float t6496 = sin(t6495);+float t6497 = (t6496*t6496);+float t6498 = (t6484*t6497);+float t6499 = (t6481+t6498);+float t6500 = sqrt(t6499);+float t6501 = asin(t6500);+float t6502 = (2*t6501);+float t6503 = (t6472-t6502);+float t6504 = abs(t6503);+bool t6505 = (float(1.0e-4)>t6504);+float t6506;+if(t6505){+float t6507 = cos(t6389);+float t6508 = (1*t6507);+float t6509 = sin(t6363);+float t6510 = (1*t6509);+float t6511 = cos(t6411);+float t6512 = (t6510*t6511);+float t6513 = (t6508*t6512);+float t6514 = sin(t6389);+float t6515 = (1*t6514);+float t6516 = cos(t6427);+float t6517 = (t6515*t6516);+float t6518 = cos(t6363);+float t6519 = (1*t6518);+float t6520 = (t6517*t6519);+float t6521 = (t6513-t6520);+float t6522 = sin(t8);+float t6523 = (1*t6522);+float t6524 = sin(t118);+float t6525 = (t6523*t6524);+float t6526 = (t6521*t6525);+float t6527 = sin(t6363);+float t6528 = (1*t6527);+float t6529 = sin(t6411);+float t6530 = (t6528*t6529);+float t6531 = (t6517*t6530);+float t6532 = sin(t6389);+float t6533 = (1*t6532);+float t6534 = sin(t6427);+float t6535 = (t6533*t6534);+float t6536 = (t6535*t6512);+float t6537 = (t6531-t6536);+float t6538 = cos(t8);+float t6539 = (1*t6538);+float t6540 = (t6537*t6539);+float t6541 = (t6526+t6540);+float t6542 = (t6535*t6519);+float t6543 = (t6508*t6530);+float t6544 = (t6542-t6543);+float t6545 = sin(t8);+float t6546 = (1*t6545);+float t6547 = cos(t118);+float t6548 = (t6546*t6547);+float t6549 = (t6544*t6548);+float t6550 = (t6541+t6549);+float t6551 = abs(t6550);+t6506 = t6551;+} else {+float t6552 = (3.1415927/2);+float t6553 = (t8-t6552);+float t6554 = (3.1415927/2);+float t6555 = (t6363-t6554);+float t6556 = (t6553-t6555);+float t6557 = abs(t6556);+float t6558 = (t6557/2);+float t6559 = sin(t6558);+float t6560 = (t6559*t6559);+float t6561 = cos(t6555);+float t6562 = cos(t6553);+float t6563 = (t6561*t6562);+float t6564 = (t118+3.1415927);+float t6565 = (3.1415927*2);+float t6566 = mod(t6564,t6565);+float t6567 = (t6566-3.1415927);+float t6568 = (t6411+3.1415927);+float t6569 = (3.1415927*2);+float t6570 = mod(t6568,t6569);+float t6571 = (t6570-3.1415927);+float t6572 = (t6567-t6571);+float t6573 = abs(t6572);+float t6574 = (t6573/2);+float t6575 = sin(t6574);+float t6576 = (t6575*t6575);+float t6577 = (t6563*t6576);+float t6578 = (t6560+t6577);+float t6579 = sqrt(t6578);+float t6580 = asin(t6579);+float t6581 = (2*t6580);+float t6582 = abs(t6581);+float t6583 = (3.1415927/2);+float t6584 = (t8-t6583);+float t6585 = (3.1415927/2);+float t6586 = (t6389-t6585);+float t6587 = (t6584-t6586);+float t6588 = abs(t6587);+float t6589 = (t6588/2);+float t6590 = sin(t6589);+float t6591 = (t6590*t6590);+float t6592 = cos(t6586);+float t6593 = cos(t6584);+float t6594 = (t6592*t6593);+float t6595 = (t118+3.1415927);+float t6596 = (3.1415927*2);+float t6597 = mod(t6595,t6596);+float t6598 = (t6597-3.1415927);+float t6599 = (t6427+3.1415927);+float t6600 = (3.1415927*2);+float t6601 = mod(t6599,t6600);+float t6602 = (t6601-3.1415927);+float t6603 = (t6598-t6602);+float t6604 = abs(t6603);+float t6605 = (t6604/2);+float t6606 = sin(t6605);+float t6607 = (t6606*t6606);+float t6608 = (t6594*t6607);+float t6609 = (t6591+t6608);+float t6610 = sqrt(t6609);+float t6611 = asin(t6610);+float t6612 = (2*t6611);+float t6613 = abs(t6612);+bool t6614 = (t6582>=t6613);+float t6615;+if(t6614){+t6615 = t6582;+} else {+t6615 = t6613;+}+t6506 = t6615;+}+float t6616 = abs(t6506);+float t6617 = step(float(2.0e-4),t6616);+float t6618 = (1-t6617);+float t6619 = (t5450*t5684);+float t6620 = (t6619*float(842.378));+float t6621 = fract(t6620);+float t6622 = (t6621+float(45.32));+float t6623 = (t6622+u6.u0);+float t6624 = (t6621*t6623);+float t6625 = (t5466*t5450);+float t6626 = (t6625*float(1734.048));+float t6627 = fract(t6626);+float t6628 = (t6627+float(45.32));+float t6629 = (t6628+u6.u0);+float t6630 = (t6627*t6629);+float t6631 = (t6624+t6630);+float t6632 = (t6621+t6631);+float t6633 = (t6627+t6631);+float t6634 = (t6632*t6633);+float t6635 = fract(t6634);+float t6636 = step(float(0.2),t6635);+float t6637 = (t6618*t6636);+float t6638 = (3.1415927/2);+float t6639 = (t6363-t6638);+float t6640 = (3.1415927/2);+float t6641 = (t6389-t6640);+float t6642 = (t6639-t6641);+float t6643 = abs(t6642);+float t6644 = (t6643/2);+float t6645 = sin(t6644);+float t6646 = (t6645*t6645);+float t6647 = cos(t6641);+float t6648 = cos(t6639);+float t6649 = (t6647*t6648);+float t6650 = (t6411+3.1415927);+float t6651 = (3.1415927*2);+float t6652 = mod(t6650,t6651);+float t6653 = (t6652-3.1415927);+float t6654 = (t6427+3.1415927);+float t6655 = (3.1415927*2);+float t6656 = mod(t6654,t6655);+float t6657 = (t6656-3.1415927);+float t6658 = (t6653-t6657);+float t6659 = abs(t6658);+float t6660 = (t6659/2);+float t6661 = sin(t6660);+float t6662 = (t6661*t6661);+float t6663 = (t6649*t6662);+float t6664 = (t6646+t6663);+float t6665 = sqrt(t6664);+float t6666 = asin(t6665);+float t6667 = (2*t6666);+float t6668 = (t6667/t5448);+float t6669 = (1-t6668);+float t6670 = (t5450/85);+float t6671 = (t6670*float(842.378));+float t6672 = fract(t6671);+float t6673 = (t6672+float(45.32));+float t6674 = (t6673+u6.u0);+float t6675 = (t6672*t6674);+float t6676 = (t5466/t5463);+float t6677 = (t6676*float(1734.048));+float t6678 = fract(t6677);+float t6679 = (t6678+float(45.32));+float t6680 = (t6679+u6.u0);+float t6681 = (t6678*t6680);+float t6682 = (t6675+t6681);+float t6683 = (t6672+t6682);+float t6684 = (t6678+t6682);+float t6685 = (t6683*t6684);+float t6686 = fract(t6685);+float t6687 = (t6686*float(8.0e-3));+float t6688 = (float(1.0e-3)+t6687);+float t6689 = (t6686*173);+float t6690 = fract(t6689);+float t6691 = step(float(0.66),t6690);+float t6692 = (t6691*float(3.0e-3));+float t6693 = (t6688-t6692);+float t6694 = (t6693*float(0.45));+float t6695 = (t5450/85);+float t6696 = (t6695*float(842.378));+float t6697 = fract(t6696);+float t6698 = (t6697+float(45.32));+float t6699 = (t6698+u6.u0);+float t6700 = (t6697*t6699);+float t6701 = (t5684/t5463);+float t6702 = (t6701*float(1734.048));+float t6703 = fract(t6702);+float t6704 = (t6703+float(45.32));+float t6705 = (t6704+u6.u0);+float t6706 = (t6703*t6705);+float t6707 = (t6700+t6706);+float t6708 = (t6697+t6707);+float t6709 = (t6703+t6707);+float t6710 = (t6708*t6709);+float t6711 = fract(t6710);+float t6712 = (t6711*float(8.0e-3));+float t6713 = (float(1.0e-3)+t6712);+float t6714 = (t6711*173);+float t6715 = fract(t6714);+float t6716 = step(float(0.66),t6715);+float t6717 = (t6716*float(3.0e-3));+float t6718 = (t6713-t6717);+float t6719 = (t6718*float(0.45));+float t6720 = (t6694-t6719);+float t6721 = abs(t6720);+float t6722 = (t6721-float(1.0e-3));+float t6723 = (t6722/float(8.0e-3));+float t6724 = (1-t6723);+float t6725 = (t6724*t6724);+float t6726 = (t6669*t6725);+float t6727 = (t6637*t6726);+float t6728 = (u4.u0*t6635);+float t6729 = (t6728*3);+float t6730 = sin(t6729);+float t6731 = (t6730+1);+float t6732 = (t6731/2);+float t6733 = (t6732*float(0.66));+float t6734 = (t6733+float(0.33));+float t6735 = (t6727*t6734);+float t6736 = (float(0.2)*t6735);+bool t6737 = (0>=t6736);+float t6738;+if(t6737){+t6738 = 0;+} else {+t6738 = t6736;+}+float t6739 = (t6738*0);+float t6740 = (t6339+t6739);+float t6741 = (t6113*t5448);+float t6742 = (t6113/85);+float t6743 = (t6742*float(842.378));+float t6744 = fract(t6743);+float t6745 = (t6744+float(45.32));+float t6746 = (t6745+u6.u0);+float t6747 = (t6744*t6746);+float t6748 = (t6129/t6126);+float t6749 = (t6748*float(1734.048));+float t6750 = fract(t6749);+float t6751 = (t6750+float(45.32));+float t6752 = (t6751+u6.u0);+float t6753 = (t6750*t6752);+float t6754 = (t6747+t6753);+float t6755 = (t6744+t6754);+float t6756 = (t6750+t6754);+float t6757 = (t6755*t6756);+float t6758 = fract(t6757);+float t6759 = (t6758*float(2852.02));+float t6760 = fract(t6759);+float t6761 = (t6760-float(0.5));+float t6762 = (t6761*t5448);+float t6763 = (t6762*float(0.75));+float t6764 = (t6741+t6763);+float t6765 = (3.1415927/2);+float t6766 = (t6764-t6765);+float t6767 = (t5450*t5448);+float t6768 = (t5450/85);+float t6769 = (t6768*float(842.378));+float t6770 = fract(t6769);+float t6771 = (t6770+float(45.32));+float t6772 = (t6771+u6.u0);+float t6773 = (t6770*t6772);+float t6774 = (t5466/t5463);+float t6775 = (t6774*float(1734.048));+float t6776 = fract(t6775);+float t6777 = (t6776+float(45.32));+float t6778 = (t6777+u6.u0);+float t6779 = (t6776*t6778);+float t6780 = (t6773+t6779);+float t6781 = (t6770+t6780);+float t6782 = (t6776+t6780);+float t6783 = (t6781*t6782);+float t6784 = fract(t6783);+float t6785 = (t6784*float(2852.02));+float t6786 = fract(t6785);+float t6787 = (t6786-float(0.5));+float t6788 = (t6787*t5448);+float t6789 = (t6788*float(0.75));+float t6790 = (t6767+t6789);+float t6791 = (3.1415927/2);+float t6792 = (t6790-t6791);+float t6793 = (t6766-t6792);+float t6794 = abs(t6793);+float t6795 = (t6794/2);+float t6796 = sin(t6795);+float t6797 = (t6796*t6796);+float t6798 = cos(t6792);+float t6799 = cos(t6766);+float t6800 = (t6798*t6799);+float t6801 = (3.1415927/t6126);+float t6802 = (t6129*t6801);+float t6803 = (t6758*float(97372.83));+float t6804 = fract(t6803);+float t6805 = (t6804-float(0.5));+float t6806 = (3.1415927/t6126);+float t6807 = (t6805*t6806);+float t6808 = (t6807*float(0.75));+float t6809 = (t6802+t6808);+float t6810 = (t6809+3.1415927);+float t6811 = mod(t6810,t1433);+float t6812 = (t6811-3.1415927);+float t6813 = (t6812+3.1415927);+float t6814 = (3.1415927*2);+float t6815 = mod(t6813,t6814);+float t6816 = (t6815-3.1415927);+float t6817 = (3.1415927/t5463);+float t6818 = (t5466*t6817);+float t6819 = (t6784*float(97372.83));+float t6820 = fract(t6819);+float t6821 = (t6820-float(0.5));+float t6822 = (3.1415927/t5463);+float t6823 = (t6821*t6822);+float t6824 = (t6823*float(0.75));+float t6825 = (t6818+t6824);+float t6826 = (t6825+3.1415927);+float t6827 = mod(t6826,t1433);+float t6828 = (t6827-3.1415927);+float t6829 = (t6828+3.1415927);+float t6830 = (3.1415927*2);+float t6831 = mod(t6829,t6830);+float t6832 = (t6831-3.1415927);+float t6833 = (t6816-t6832);+float t6834 = abs(t6833);+float t6835 = (t6834/2);+float t6836 = sin(t6835);+float t6837 = (t6836*t6836);+float t6838 = (t6800*t6837);+float t6839 = (t6797+t6838);+float t6840 = sqrt(t6839);+float t6841 = asin(t6840);+float t6842 = (2*t6841);+float t6843 = (3.1415927/2);+float t6844 = (t8-t6843);+float t6845 = (3.1415927/2);+float t6846 = (t6790-t6845);+float t6847 = (t6844-t6846);+float t6848 = abs(t6847);+float t6849 = (t6848/2);+float t6850 = sin(t6849);+float t6851 = (t6850*t6850);+float t6852 = cos(t6846);+float t6853 = cos(t6844);+float t6854 = (t6852*t6853);+float t6855 = (t118+3.1415927);+float t6856 = (3.1415927*2);+float t6857 = mod(t6855,t6856);+float t6858 = (t6857-3.1415927);+float t6859 = (t6828+3.1415927);+float t6860 = (3.1415927*2);+float t6861 = mod(t6859,t6860);+float t6862 = (t6861-3.1415927);+float t6863 = (t6858-t6862);+float t6864 = abs(t6863);+float t6865 = (t6864/2);+float t6866 = sin(t6865);+float t6867 = (t6866*t6866);+float t6868 = (t6854*t6867);+float t6869 = (t6851+t6868);+float t6870 = sqrt(t6869);+float t6871 = asin(t6870);+float t6872 = (2*t6871);+float t6873 = (t6842-t6872);+float t6874 = (3.1415927/2);+float t6875 = (t8-t6874);+float t6876 = (3.1415927/2);+float t6877 = (t6764-t6876);+float t6878 = (t6875-t6877);+float t6879 = abs(t6878);+float t6880 = (t6879/2);+float t6881 = sin(t6880);+float t6882 = (t6881*t6881);+float t6883 = cos(t6877);+float t6884 = cos(t6875);+float t6885 = (t6883*t6884);+float t6886 = (t118+3.1415927);+float t6887 = (3.1415927*2);+float t6888 = mod(t6886,t6887);+float t6889 = (t6888-3.1415927);+float t6890 = (t6812+3.1415927);+float t6891 = (3.1415927*2);+float t6892 = mod(t6890,t6891);+float t6893 = (t6892-3.1415927);+float t6894 = (t6889-t6893);+float t6895 = abs(t6894);+float t6896 = (t6895/2);+float t6897 = sin(t6896);+float t6898 = (t6897*t6897);+float t6899 = (t6885*t6898);+float t6900 = (t6882+t6899);+float t6901 = sqrt(t6900);+float t6902 = asin(t6901);+float t6903 = (2*t6902);+float t6904 = (t6873-t6903);+float t6905 = abs(t6904);+bool t6906 = (float(1.0e-4)>t6905);+float t6907;+if(t6906){+float t6908 = cos(t6790);+float t6909 = (1*t6908);+float t6910 = sin(t6764);+float t6911 = (1*t6910);+float t6912 = cos(t6812);+float t6913 = (t6911*t6912);+float t6914 = (t6909*t6913);+float t6915 = sin(t6790);+float t6916 = (1*t6915);+float t6917 = cos(t6828);+float t6918 = (t6916*t6917);+float t6919 = cos(t6764);+float t6920 = (1*t6919);+float t6921 = (t6918*t6920);+float t6922 = (t6914-t6921);+float t6923 = sin(t8);+float t6924 = (1*t6923);+float t6925 = sin(t118);+float t6926 = (t6924*t6925);+float t6927 = (t6922*t6926);+float t6928 = sin(t6764);+float t6929 = (1*t6928);+float t6930 = sin(t6812);+float t6931 = (t6929*t6930);+float t6932 = (t6918*t6931);+float t6933 = sin(t6790);+float t6934 = (1*t6933);+float t6935 = sin(t6828);+float t6936 = (t6934*t6935);+float t6937 = (t6936*t6913);+float t6938 = (t6932-t6937);+float t6939 = cos(t8);+float t6940 = (1*t6939);+float t6941 = (t6938*t6940);+float t6942 = (t6927+t6941);+float t6943 = (t6936*t6920);+float t6944 = (t6909*t6931);+float t6945 = (t6943-t6944);+float t6946 = sin(t8);+float t6947 = (1*t6946);+float t6948 = cos(t118);+float t6949 = (t6947*t6948);+float t6950 = (t6945*t6949);+float t6951 = (t6942+t6950);+float t6952 = abs(t6951);+t6907 = t6952;+} else {+float t6953 = (3.1415927/2);+float t6954 = (t8-t6953);+float t6955 = (3.1415927/2);+float t6956 = (t6764-t6955);+float t6957 = (t6954-t6956);+float t6958 = abs(t6957);+float t6959 = (t6958/2);+float t6960 = sin(t6959);+float t6961 = (t6960*t6960);+float t6962 = cos(t6956);+float t6963 = cos(t6954);+float t6964 = (t6962*t6963);+float t6965 = (t118+3.1415927);+float t6966 = (3.1415927*2);+float t6967 = mod(t6965,t6966);+float t6968 = (t6967-3.1415927);+float t6969 = (t6812+3.1415927);+float t6970 = (3.1415927*2);+float t6971 = mod(t6969,t6970);+float t6972 = (t6971-3.1415927);+float t6973 = (t6968-t6972);+float t6974 = abs(t6973);+float t6975 = (t6974/2);+float t6976 = sin(t6975);+float t6977 = (t6976*t6976);+float t6978 = (t6964*t6977);+float t6979 = (t6961+t6978);+float t6980 = sqrt(t6979);+float t6981 = asin(t6980);+float t6982 = (2*t6981);+float t6983 = abs(t6982);+float t6984 = (3.1415927/2);+float t6985 = (t8-t6984);+float t6986 = (3.1415927/2);+float t6987 = (t6790-t6986);+float t6988 = (t6985-t6987);+float t6989 = abs(t6988);+float t6990 = (t6989/2);+float t6991 = sin(t6990);+float t6992 = (t6991*t6991);+float t6993 = cos(t6987);+float t6994 = cos(t6985);+float t6995 = (t6993*t6994);+float t6996 = (t118+3.1415927);+float t6997 = (3.1415927*2);+float t6998 = mod(t6996,t6997);+float t6999 = (t6998-3.1415927);+float t7000 = (t6828+3.1415927);+float t7001 = (3.1415927*2);+float t7002 = mod(t7000,t7001);+float t7003 = (t7002-3.1415927);+float t7004 = (t6999-t7003);+float t7005 = abs(t7004);+float t7006 = (t7005/2);+float t7007 = sin(t7006);+float t7008 = (t7007*t7007);+float t7009 = (t6995*t7008);+float t7010 = (t6992+t7009);+float t7011 = sqrt(t7010);+float t7012 = asin(t7011);+float t7013 = (2*t7012);+float t7014 = abs(t7013);+bool t7015 = (t6983>=t7014);+float t7016;+if(t7015){+t7016 = t6983;+} else {+t7016 = t7014;+}+t6907 = t7016;+}+float t7017 = abs(t6907);+float t7018 = step(float(2.0e-4),t7017);+float t7019 = (1-t7018);+float t7020 = (t5450*t6129);+float t7021 = (t7020*float(842.378));+float t7022 = fract(t7021);+float t7023 = (t7022+float(45.32));+float t7024 = (t7023+u6.u0);+float t7025 = (t7022*t7024);+float t7026 = (t5466*t6113);+float t7027 = (t7026*float(1734.048));+float t7028 = fract(t7027);+float t7029 = (t7028+float(45.32));+float t7030 = (t7029+u6.u0);+float t7031 = (t7028*t7030);+float t7032 = (t7025+t7031);+float t7033 = (t7022+t7032);+float t7034 = (t7028+t7032);+float t7035 = (t7033*t7034);+float t7036 = fract(t7035);+float t7037 = step(float(0.2),t7036);+float t7038 = (t7019*t7037);+float t7039 = (3.1415927/2);+float t7040 = (t6764-t7039);+float t7041 = (3.1415927/2);+float t7042 = (t6790-t7041);+float t7043 = (t7040-t7042);+float t7044 = abs(t7043);+float t7045 = (t7044/2);+float t7046 = sin(t7045);+float t7047 = (t7046*t7046);+float t7048 = cos(t7042);+float t7049 = cos(t7040);+float t7050 = (t7048*t7049);+float t7051 = (t6812+3.1415927);+float t7052 = (3.1415927*2);+float t7053 = mod(t7051,t7052);+float t7054 = (t7053-3.1415927);+float t7055 = (t6828+3.1415927);+float t7056 = (3.1415927*2);+float t7057 = mod(t7055,t7056);+float t7058 = (t7057-3.1415927);+float t7059 = (t7054-t7058);+float t7060 = abs(t7059);+float t7061 = (t7060/2);+float t7062 = sin(t7061);+float t7063 = (t7062*t7062);+float t7064 = (t7050*t7063);+float t7065 = (t7047+t7064);+float t7066 = sqrt(t7065);+float t7067 = asin(t7066);+float t7068 = (2*t7067);+float t7069 = (t7068/t5448);+float t7070 = (1-t7069);+float t7071 = (t5450/85);+float t7072 = (t7071*float(842.378));+float t7073 = fract(t7072);+float t7074 = (t7073+float(45.32));+float t7075 = (t7074+u6.u0);+float t7076 = (t7073*t7075);+float t7077 = (t5466/t5463);+float t7078 = (t7077*float(1734.048));+float t7079 = fract(t7078);+float t7080 = (t7079+float(45.32));+float t7081 = (t7080+u6.u0);+float t7082 = (t7079*t7081);+float t7083 = (t7076+t7082);+float t7084 = (t7073+t7083);+float t7085 = (t7079+t7083);+float t7086 = (t7084*t7085);+float t7087 = fract(t7086);+float t7088 = (t7087*float(8.0e-3));+float t7089 = (float(1.0e-3)+t7088);+float t7090 = (t7087*173);+float t7091 = fract(t7090);+float t7092 = step(float(0.66),t7091);+float t7093 = (t7092*float(3.0e-3));+float t7094 = (t7089-t7093);+float t7095 = (t7094*float(0.45));+float t7096 = (t6113/85);+float t7097 = (t7096*float(842.378));+float t7098 = fract(t7097);+float t7099 = (t7098+float(45.32));+float t7100 = (t7099+u6.u0);+float t7101 = (t7098*t7100);+float t7102 = (t6129/t6126);+float t7103 = (t7102*float(1734.048));+float t7104 = fract(t7103);+float t7105 = (t7104+float(45.32));+float t7106 = (t7105+u6.u0);+float t7107 = (t7104*t7106);+float t7108 = (t7101+t7107);+float t7109 = (t7098+t7108);+float t7110 = (t7104+t7108);+float t7111 = (t7109*t7110);+float t7112 = fract(t7111);+float t7113 = (t7112*float(8.0e-3));+float t7114 = (float(1.0e-3)+t7113);+float t7115 = (t7112*173);+float t7116 = fract(t7115);+float t7117 = step(float(0.66),t7116);+float t7118 = (t7117*float(3.0e-3));+float t7119 = (t7114-t7118);+float t7120 = (t7119*float(0.45));+float t7121 = (t7095-t7120);+float t7122 = abs(t7121);+float t7123 = (t7122-float(1.0e-3));+float t7124 = (t7123/float(8.0e-3));+float t7125 = (1-t7124);+float t7126 = (t7125*t7125);+float t7127 = (t7070*t7126);+float t7128 = (t7038*t7127);+float t7129 = (u4.u0*t7036);+float t7130 = (t7129*3);+float t7131 = sin(t7130);+float t7132 = (t7131+1);+float t7133 = (t7132/2);+float t7134 = (t7133*float(0.66));+float t7135 = (t7134+float(0.33));+float t7136 = (t7128*t7135);+float t7137 = (float(0.2)*t7136);+bool t7138 = (0>=t7137);+float t7139;+if(t7138){+t7139 = 0;+} else {+t7139 = t7137;+}+float t7140 = (t7139*0);+float t7141 = (t6740+t7140);+float t7142 = (t6113*t5448);+float t7143 = (t6113/85);+float t7144 = (t7143*float(842.378));+float t7145 = fract(t7144);+float t7146 = (t7145+float(45.32));+float t7147 = (t7146+u6.u0);+float t7148 = (t7145*t7147);+float t7149 = (t6129+1);+float t7150 = (t7149/t6126);+float t7151 = (t7150*float(1734.048));+float t7152 = fract(t7151);+float t7153 = (t7152+float(45.32));+float t7154 = (t7153+u6.u0);+float t7155 = (t7152*t7154);+float t7156 = (t7148+t7155);+float t7157 = (t7145+t7156);+float t7158 = (t7152+t7156);+float t7159 = (t7157*t7158);+float t7160 = fract(t7159);+float t7161 = (t7160*float(2852.02));+float t7162 = fract(t7161);+float t7163 = (t7162-float(0.5));+float t7164 = (t7163*t5448);+float t7165 = (t7164*float(0.75));+float t7166 = (t7142+t7165);+float t7167 = (3.1415927/2);+float t7168 = (t7166-t7167);+float t7169 = (t6113*t5448);+float t7170 = (t6113/85);+float t7171 = (t7170*float(842.378));+float t7172 = fract(t7171);+float t7173 = (t7172+float(45.32));+float t7174 = (t7173+u6.u0);+float t7175 = (t7172*t7174);+float t7176 = (t6129/t6126);+float t7177 = (t7176*float(1734.048));+float t7178 = fract(t7177);+float t7179 = (t7178+float(45.32));+float t7180 = (t7179+u6.u0);+float t7181 = (t7178*t7180);+float t7182 = (t7175+t7181);+float t7183 = (t7172+t7182);+float t7184 = (t7178+t7182);+float t7185 = (t7183*t7184);+float t7186 = fract(t7185);+float t7187 = (t7186*float(2852.02));+float t7188 = fract(t7187);+float t7189 = (t7188-float(0.5));+float t7190 = (t7189*t5448);+float t7191 = (t7190*float(0.75));+float t7192 = (t7169+t7191);+float t7193 = (3.1415927/2);+float t7194 = (t7192-t7193);+float t7195 = (t7168-t7194);+float t7196 = abs(t7195);+float t7197 = (t7196/2);+float t7198 = sin(t7197);+float t7199 = (t7198*t7198);+float t7200 = cos(t7194);+float t7201 = cos(t7168);+float t7202 = (t7200*t7201);+float t7203 = (3.1415927/t6126);+float t7204 = (t7149*t7203);+float t7205 = (t7160*float(97372.83));+float t7206 = fract(t7205);+float t7207 = (t7206-float(0.5));+float t7208 = (3.1415927/t6126);+float t7209 = (t7207*t7208);+float t7210 = (t7209*float(0.75));+float t7211 = (t7204+t7210);+float t7212 = (t7211+3.1415927);+float t7213 = mod(t7212,t1433);+float t7214 = (t7213-3.1415927);+float t7215 = (t7214+3.1415927);+float t7216 = (3.1415927*2);+float t7217 = mod(t7215,t7216);+float t7218 = (t7217-3.1415927);+float t7219 = (3.1415927/t6126);+float t7220 = (t6129*t7219);+float t7221 = (t7186*float(97372.83));+float t7222 = fract(t7221);+float t7223 = (t7222-float(0.5));+float t7224 = (3.1415927/t6126);+float t7225 = (t7223*t7224);+float t7226 = (t7225*float(0.75));+float t7227 = (t7220+t7226);+float t7228 = (t7227+3.1415927);+float t7229 = mod(t7228,t1433);+float t7230 = (t7229-3.1415927);+float t7231 = (t7230+3.1415927);+float t7232 = (3.1415927*2);+float t7233 = mod(t7231,t7232);+float t7234 = (t7233-3.1415927);+float t7235 = (t7218-t7234);+float t7236 = abs(t7235);+float t7237 = (t7236/2);+float t7238 = sin(t7237);+float t7239 = (t7238*t7238);+float t7240 = (t7202*t7239);+float t7241 = (t7199+t7240);+float t7242 = sqrt(t7241);+float t7243 = asin(t7242);+float t7244 = (2*t7243);+float t7245 = (3.1415927/2);+float t7246 = (t8-t7245);+float t7247 = (3.1415927/2);+float t7248 = (t7192-t7247);+float t7249 = (t7246-t7248);+float t7250 = abs(t7249);+float t7251 = (t7250/2);+float t7252 = sin(t7251);+float t7253 = (t7252*t7252);+float t7254 = cos(t7248);+float t7255 = cos(t7246);+float t7256 = (t7254*t7255);+float t7257 = (t118+3.1415927);+float t7258 = (3.1415927*2);+float t7259 = mod(t7257,t7258);+float t7260 = (t7259-3.1415927);+float t7261 = (t7230+3.1415927);+float t7262 = (3.1415927*2);+float t7263 = mod(t7261,t7262);+float t7264 = (t7263-3.1415927);+float t7265 = (t7260-t7264);+float t7266 = abs(t7265);+float t7267 = (t7266/2);+float t7268 = sin(t7267);+float t7269 = (t7268*t7268);+float t7270 = (t7256*t7269);+float t7271 = (t7253+t7270);+float t7272 = sqrt(t7271);+float t7273 = asin(t7272);+float t7274 = (2*t7273);+float t7275 = (t7244-t7274);+float t7276 = (3.1415927/2);+float t7277 = (t8-t7276);+float t7278 = (3.1415927/2);+float t7279 = (t7166-t7278);+float t7280 = (t7277-t7279);+float t7281 = abs(t7280);+float t7282 = (t7281/2);+float t7283 = sin(t7282);+float t7284 = (t7283*t7283);+float t7285 = cos(t7279);+float t7286 = cos(t7277);+float t7287 = (t7285*t7286);+float t7288 = (t118+3.1415927);+float t7289 = (3.1415927*2);+float t7290 = mod(t7288,t7289);+float t7291 = (t7290-3.1415927);+float t7292 = (t7214+3.1415927);+float t7293 = (3.1415927*2);+float t7294 = mod(t7292,t7293);+float t7295 = (t7294-3.1415927);+float t7296 = (t7291-t7295);+float t7297 = abs(t7296);+float t7298 = (t7297/2);+float t7299 = sin(t7298);+float t7300 = (t7299*t7299);+float t7301 = (t7287*t7300);+float t7302 = (t7284+t7301);+float t7303 = sqrt(t7302);+float t7304 = asin(t7303);+float t7305 = (2*t7304);+float t7306 = (t7275-t7305);+float t7307 = abs(t7306);+bool t7308 = (float(1.0e-4)>t7307);+float t7309;+if(t7308){+float t7310 = cos(t7192);+float t7311 = (1*t7310);+float t7312 = sin(t7166);+float t7313 = (1*t7312);+float t7314 = cos(t7214);+float t7315 = (t7313*t7314);+float t7316 = (t7311*t7315);+float t7317 = sin(t7192);+float t7318 = (1*t7317);+float t7319 = cos(t7230);+float t7320 = (t7318*t7319);+float t7321 = cos(t7166);+float t7322 = (1*t7321);+float t7323 = (t7320*t7322);+float t7324 = (t7316-t7323);+float t7325 = sin(t8);+float t7326 = (1*t7325);+float t7327 = sin(t118);+float t7328 = (t7326*t7327);+float t7329 = (t7324*t7328);+float t7330 = sin(t7166);+float t7331 = (1*t7330);+float t7332 = sin(t7214);+float t7333 = (t7331*t7332);+float t7334 = (t7320*t7333);+float t7335 = sin(t7192);+float t7336 = (1*t7335);+float t7337 = sin(t7230);+float t7338 = (t7336*t7337);+float t7339 = (t7338*t7315);+float t7340 = (t7334-t7339);+float t7341 = cos(t8);+float t7342 = (1*t7341);+float t7343 = (t7340*t7342);+float t7344 = (t7329+t7343);+float t7345 = (t7338*t7322);+float t7346 = (t7311*t7333);+float t7347 = (t7345-t7346);+float t7348 = sin(t8);+float t7349 = (1*t7348);+float t7350 = cos(t118);+float t7351 = (t7349*t7350);+float t7352 = (t7347*t7351);+float t7353 = (t7344+t7352);+float t7354 = abs(t7353);+t7309 = t7354;+} else {+float t7355 = (3.1415927/2);+float t7356 = (t8-t7355);+float t7357 = (3.1415927/2);+float t7358 = (t7166-t7357);+float t7359 = (t7356-t7358);+float t7360 = abs(t7359);+float t7361 = (t7360/2);+float t7362 = sin(t7361);+float t7363 = (t7362*t7362);+float t7364 = cos(t7358);+float t7365 = cos(t7356);+float t7366 = (t7364*t7365);+float t7367 = (t118+3.1415927);+float t7368 = (3.1415927*2);+float t7369 = mod(t7367,t7368);+float t7370 = (t7369-3.1415927);+float t7371 = (t7214+3.1415927);+float t7372 = (3.1415927*2);+float t7373 = mod(t7371,t7372);+float t7374 = (t7373-3.1415927);+float t7375 = (t7370-t7374);+float t7376 = abs(t7375);+float t7377 = (t7376/2);+float t7378 = sin(t7377);+float t7379 = (t7378*t7378);+float t7380 = (t7366*t7379);+float t7381 = (t7363+t7380);+float t7382 = sqrt(t7381);+float t7383 = asin(t7382);+float t7384 = (2*t7383);+float t7385 = abs(t7384);+float t7386 = (3.1415927/2);+float t7387 = (t8-t7386);+float t7388 = (3.1415927/2);+float t7389 = (t7192-t7388);+float t7390 = (t7387-t7389);+float t7391 = abs(t7390);+float t7392 = (t7391/2);+float t7393 = sin(t7392);+float t7394 = (t7393*t7393);+float t7395 = cos(t7389);+float t7396 = cos(t7387);+float t7397 = (t7395*t7396);+float t7398 = (t118+3.1415927);+float t7399 = (3.1415927*2);+float t7400 = mod(t7398,t7399);+float t7401 = (t7400-3.1415927);+float t7402 = (t7230+3.1415927);+float t7403 = (3.1415927*2);+float t7404 = mod(t7402,t7403);+float t7405 = (t7404-3.1415927);+float t7406 = (t7401-t7405);+float t7407 = abs(t7406);+float t7408 = (t7407/2);+float t7409 = sin(t7408);+float t7410 = (t7409*t7409);+float t7411 = (t7397*t7410);+float t7412 = (t7394+t7411);+float t7413 = sqrt(t7412);+float t7414 = asin(t7413);+float t7415 = (2*t7414);+float t7416 = abs(t7415);+bool t7417 = (t7385>=t7416);+float t7418;+if(t7417){+t7418 = t7385;+} else {+t7418 = t7416;+}+t7309 = t7418;+}+float t7419 = abs(t7309);+float t7420 = step(float(2.0e-4),t7419);+float t7421 = (1-t7420);+float t7422 = (t6113*t7149);+float t7423 = (t7422*float(842.378));+float t7424 = fract(t7423);+float t7425 = (t7424+float(45.32));+float t7426 = (t7425+u6.u0);+float t7427 = (t7424*t7426);+float t7428 = (t6129*t6113);+float t7429 = (t7428*float(1734.048));+float t7430 = fract(t7429);+float t7431 = (t7430+float(45.32));+float t7432 = (t7431+u6.u0);+float t7433 = (t7430*t7432);+float t7434 = (t7427+t7433);+float t7435 = (t7424+t7434);+float t7436 = (t7430+t7434);+float t7437 = (t7435*t7436);+float t7438 = fract(t7437);+float t7439 = step(float(0.2),t7438);+float t7440 = (t7421*t7439);+float t7441 = (3.1415927/2);+float t7442 = (t7166-t7441);+float t7443 = (3.1415927/2);+float t7444 = (t7192-t7443);+float t7445 = (t7442-t7444);+float t7446 = abs(t7445);+float t7447 = (t7446/2);+float t7448 = sin(t7447);+float t7449 = (t7448*t7448);+float t7450 = cos(t7444);+float t7451 = cos(t7442);+float t7452 = (t7450*t7451);+float t7453 = (t7214+3.1415927);+float t7454 = (3.1415927*2);+float t7455 = mod(t7453,t7454);+float t7456 = (t7455-3.1415927);+float t7457 = (t7230+3.1415927);+float t7458 = (3.1415927*2);+float t7459 = mod(t7457,t7458);+float t7460 = (t7459-3.1415927);+float t7461 = (t7456-t7460);+float t7462 = abs(t7461);+float t7463 = (t7462/2);+float t7464 = sin(t7463);+float t7465 = (t7464*t7464);+float t7466 = (t7452*t7465);+float t7467 = (t7449+t7466);+float t7468 = sqrt(t7467);+float t7469 = asin(t7468);+float t7470 = (2*t7469);+float t7471 = (t7470/t5448);+float t7472 = (1-t7471);+float t7473 = (t6113/85);+float t7474 = (t7473*float(842.378));+float t7475 = fract(t7474);+float t7476 = (t7475+float(45.32));+float t7477 = (t7476+u6.u0);+float t7478 = (t7475*t7477);+float t7479 = (t6129/t6126);+float t7480 = (t7479*float(1734.048));+float t7481 = fract(t7480);+float t7482 = (t7481+float(45.32));+float t7483 = (t7482+u6.u0);+float t7484 = (t7481*t7483);+float t7485 = (t7478+t7484);+float t7486 = (t7475+t7485);+float t7487 = (t7481+t7485);+float t7488 = (t7486*t7487);+float t7489 = fract(t7488);+float t7490 = (t7489*float(8.0e-3));+float t7491 = (float(1.0e-3)+t7490);+float t7492 = (t7489*173);+float t7493 = fract(t7492);+float t7494 = step(float(0.66),t7493);+float t7495 = (t7494*float(3.0e-3));+float t7496 = (t7491-t7495);+float t7497 = (t7496*float(0.45));+float t7498 = (t6113/85);+float t7499 = (t7498*float(842.378));+float t7500 = fract(t7499);+float t7501 = (t7500+float(45.32));+float t7502 = (t7501+u6.u0);+float t7503 = (t7500*t7502);+float t7504 = (t7149/t6126);+float t7505 = (t7504*float(1734.048));+float t7506 = fract(t7505);+float t7507 = (t7506+float(45.32));+float t7508 = (t7507+u6.u0);+float t7509 = (t7506*t7508);+float t7510 = (t7503+t7509);+float t7511 = (t7500+t7510);+float t7512 = (t7506+t7510);+float t7513 = (t7511*t7512);+float t7514 = fract(t7513);+float t7515 = (t7514*float(8.0e-3));+float t7516 = (float(1.0e-3)+t7515);+float t7517 = (t7514*173);+float t7518 = fract(t7517);+float t7519 = step(float(0.66),t7518);+float t7520 = (t7519*float(3.0e-3));+float t7521 = (t7516-t7520);+float t7522 = (t7521*float(0.45));+float t7523 = (t7497-t7522);+float t7524 = abs(t7523);+float t7525 = (t7524-float(1.0e-3));+float t7526 = (t7525/float(8.0e-3));+float t7527 = (1-t7526);+float t7528 = (t7527*t7527);+float t7529 = (t7472*t7528);+float t7530 = (t7440*t7529);+float t7531 = (u4.u0*t7438);+float t7532 = (t7531*3);+float t7533 = sin(t7532);+float t7534 = (t7533+1);+float t7535 = (t7534/2);+float t7536 = (t7535*float(0.66));+float t7537 = (t7536+float(0.33));+float t7538 = (t7530*t7537);+float t7539 = (float(0.2)*t7538);+bool t7540 = (0>=t7539);+float t7541;+if(t7540){+t7541 = 0;+} else {+t7541 = t7539;+}+float t7542 = (t7541*0);+float t7543 = (t7141+t7542);+float t7544 = (t6113*t5448);+float t7545 = (t6113/85);+float t7546 = (t7545*float(842.378));+float t7547 = fract(t7546);+float t7548 = (t7547+float(45.32));+float t7549 = (t7548+u6.u0);+float t7550 = (t7547*t7549);+float t7551 = (t7149/t6126);+float t7552 = (t7551*float(1734.048));+float t7553 = fract(t7552);+float t7554 = (t7553+float(45.32));+float t7555 = (t7554+u6.u0);+float t7556 = (t7553*t7555);+float t7557 = (t7550+t7556);+float t7558 = (t7547+t7557);+float t7559 = (t7553+t7557);+float t7560 = (t7558*t7559);+float t7561 = fract(t7560);+float t7562 = (t7561*float(2852.02));+float t7563 = fract(t7562);+float t7564 = (t7563-float(0.5));+float t7565 = (t7564*t5448);+float t7566 = (t7565*float(0.75));+float t7567 = (t7544+t7566);+float t7568 = (3.1415927/2);+float t7569 = (t7567-t7568);+float t7570 = (t5450*t5448);+float t7571 = (t5450/85);+float t7572 = (t7571*float(842.378));+float t7573 = fract(t7572);+float t7574 = (t7573+float(45.32));+float t7575 = (t7574+u6.u0);+float t7576 = (t7573*t7575);+float t7577 = (t5684/t5463);+float t7578 = (t7577*float(1734.048));+float t7579 = fract(t7578);+float t7580 = (t7579+float(45.32));+float t7581 = (t7580+u6.u0);+float t7582 = (t7579*t7581);+float t7583 = (t7576+t7582);+float t7584 = (t7573+t7583);+float t7585 = (t7579+t7583);+float t7586 = (t7584*t7585);+float t7587 = fract(t7586);+float t7588 = (t7587*float(2852.02));+float t7589 = fract(t7588);+float t7590 = (t7589-float(0.5));+float t7591 = (t7590*t5448);+float t7592 = (t7591*float(0.75));+float t7593 = (t7570+t7592);+float t7594 = (3.1415927/2);+float t7595 = (t7593-t7594);+float t7596 = (t7569-t7595);+float t7597 = abs(t7596);+float t7598 = (t7597/2);+float t7599 = sin(t7598);+float t7600 = (t7599*t7599);+float t7601 = cos(t7595);+float t7602 = cos(t7569);+float t7603 = (t7601*t7602);+float t7604 = (3.1415927/t6126);+float t7605 = (t7149*t7604);+float t7606 = (t7561*float(97372.83));+float t7607 = fract(t7606);+float t7608 = (t7607-float(0.5));+float t7609 = (3.1415927/t6126);+float t7610 = (t7608*t7609);+float t7611 = (t7610*float(0.75));+float t7612 = (t7605+t7611);+float t7613 = (t7612+3.1415927);+float t7614 = mod(t7613,t1433);+float t7615 = (t7614-3.1415927);+float t7616 = (t7615+3.1415927);+float t7617 = (3.1415927*2);+float t7618 = mod(t7616,t7617);+float t7619 = (t7618-3.1415927);+float t7620 = (3.1415927/t5463);+float t7621 = (t5684*t7620);+float t7622 = (t7587*float(97372.83));+float t7623 = fract(t7622);+float t7624 = (t7623-float(0.5));+float t7625 = (3.1415927/t5463);+float t7626 = (t7624*t7625);+float t7627 = (t7626*float(0.75));+float t7628 = (t7621+t7627);+float t7629 = (t7628+3.1415927);+float t7630 = mod(t7629,t1433);+float t7631 = (t7630-3.1415927);+float t7632 = (t7631+3.1415927);+float t7633 = (3.1415927*2);+float t7634 = mod(t7632,t7633);+float t7635 = (t7634-3.1415927);+float t7636 = (t7619-t7635);+float t7637 = abs(t7636);+float t7638 = (t7637/2);+float t7639 = sin(t7638);+float t7640 = (t7639*t7639);+float t7641 = (t7603*t7640);+float t7642 = (t7600+t7641);+float t7643 = sqrt(t7642);+float t7644 = asin(t7643);+float t7645 = (2*t7644);+float t7646 = (3.1415927/2);+float t7647 = (t8-t7646);+float t7648 = (3.1415927/2);+float t7649 = (t7593-t7648);+float t7650 = (t7647-t7649);+float t7651 = abs(t7650);+float t7652 = (t7651/2);+float t7653 = sin(t7652);+float t7654 = (t7653*t7653);+float t7655 = cos(t7649);+float t7656 = cos(t7647);+float t7657 = (t7655*t7656);+float t7658 = (t118+3.1415927);+float t7659 = (3.1415927*2);+float t7660 = mod(t7658,t7659);+float t7661 = (t7660-3.1415927);+float t7662 = (t7631+3.1415927);+float t7663 = (3.1415927*2);+float t7664 = mod(t7662,t7663);+float t7665 = (t7664-3.1415927);+float t7666 = (t7661-t7665);+float t7667 = abs(t7666);+float t7668 = (t7667/2);+float t7669 = sin(t7668);+float t7670 = (t7669*t7669);+float t7671 = (t7657*t7670);+float t7672 = (t7654+t7671);+float t7673 = sqrt(t7672);+float t7674 = asin(t7673);+float t7675 = (2*t7674);+float t7676 = (t7645-t7675);+float t7677 = (3.1415927/2);+float t7678 = (t8-t7677);+float t7679 = (3.1415927/2);+float t7680 = (t7567-t7679);+float t7681 = (t7678-t7680);+float t7682 = abs(t7681);+float t7683 = (t7682/2);+float t7684 = sin(t7683);+float t7685 = (t7684*t7684);+float t7686 = cos(t7680);+float t7687 = cos(t7678);+float t7688 = (t7686*t7687);+float t7689 = (t118+3.1415927);+float t7690 = (3.1415927*2);+float t7691 = mod(t7689,t7690);+float t7692 = (t7691-3.1415927);+float t7693 = (t7615+3.1415927);+float t7694 = (3.1415927*2);+float t7695 = mod(t7693,t7694);+float t7696 = (t7695-3.1415927);+float t7697 = (t7692-t7696);+float t7698 = abs(t7697);+float t7699 = (t7698/2);+float t7700 = sin(t7699);+float t7701 = (t7700*t7700);+float t7702 = (t7688*t7701);+float t7703 = (t7685+t7702);+float t7704 = sqrt(t7703);+float t7705 = asin(t7704);+float t7706 = (2*t7705);+float t7707 = (t7676-t7706);+float t7708 = abs(t7707);+bool t7709 = (float(1.0e-4)>t7708);+float t7710;+if(t7709){+float t7711 = cos(t7593);+float t7712 = (1*t7711);+float t7713 = sin(t7567);+float t7714 = (1*t7713);+float t7715 = cos(t7615);+float t7716 = (t7714*t7715);+float t7717 = (t7712*t7716);+float t7718 = sin(t7593);+float t7719 = (1*t7718);+float t7720 = cos(t7631);+float t7721 = (t7719*t7720);+float t7722 = cos(t7567);+float t7723 = (1*t7722);+float t7724 = (t7721*t7723);+float t7725 = (t7717-t7724);+float t7726 = sin(t8);+float t7727 = (1*t7726);+float t7728 = sin(t118);+float t7729 = (t7727*t7728);+float t7730 = (t7725*t7729);+float t7731 = sin(t7567);+float t7732 = (1*t7731);+float t7733 = sin(t7615);+float t7734 = (t7732*t7733);+float t7735 = (t7721*t7734);+float t7736 = sin(t7593);+float t7737 = (1*t7736);+float t7738 = sin(t7631);+float t7739 = (t7737*t7738);+float t7740 = (t7739*t7716);+float t7741 = (t7735-t7740);+float t7742 = cos(t8);+float t7743 = (1*t7742);+float t7744 = (t7741*t7743);+float t7745 = (t7730+t7744);+float t7746 = (t7739*t7723);+float t7747 = (t7712*t7734);+float t7748 = (t7746-t7747);+float t7749 = sin(t8);+float t7750 = (1*t7749);+float t7751 = cos(t118);+float t7752 = (t7750*t7751);+float t7753 = (t7748*t7752);+float t7754 = (t7745+t7753);+float t7755 = abs(t7754);+t7710 = t7755;+} else {+float t7756 = (3.1415927/2);+float t7757 = (t8-t7756);+float t7758 = (3.1415927/2);+float t7759 = (t7567-t7758);+float t7760 = (t7757-t7759);+float t7761 = abs(t7760);+float t7762 = (t7761/2);+float t7763 = sin(t7762);+float t7764 = (t7763*t7763);+float t7765 = cos(t7759);+float t7766 = cos(t7757);+float t7767 = (t7765*t7766);+float t7768 = (t118+3.1415927);+float t7769 = (3.1415927*2);+float t7770 = mod(t7768,t7769);+float t7771 = (t7770-3.1415927);+float t7772 = (t7615+3.1415927);+float t7773 = (3.1415927*2);+float t7774 = mod(t7772,t7773);+float t7775 = (t7774-3.1415927);+float t7776 = (t7771-t7775);+float t7777 = abs(t7776);+float t7778 = (t7777/2);+float t7779 = sin(t7778);+float t7780 = (t7779*t7779);+float t7781 = (t7767*t7780);+float t7782 = (t7764+t7781);+float t7783 = sqrt(t7782);+float t7784 = asin(t7783);+float t7785 = (2*t7784);+float t7786 = abs(t7785);+float t7787 = (3.1415927/2);+float t7788 = (t8-t7787);+float t7789 = (3.1415927/2);+float t7790 = (t7593-t7789);+float t7791 = (t7788-t7790);+float t7792 = abs(t7791);+float t7793 = (t7792/2);+float t7794 = sin(t7793);+float t7795 = (t7794*t7794);+float t7796 = cos(t7790);+float t7797 = cos(t7788);+float t7798 = (t7796*t7797);+float t7799 = (t118+3.1415927);+float t7800 = (3.1415927*2);+float t7801 = mod(t7799,t7800);+float t7802 = (t7801-3.1415927);+float t7803 = (t7631+3.1415927);+float t7804 = (3.1415927*2);+float t7805 = mod(t7803,t7804);+float t7806 = (t7805-3.1415927);+float t7807 = (t7802-t7806);+float t7808 = abs(t7807);+float t7809 = (t7808/2);+float t7810 = sin(t7809);+float t7811 = (t7810*t7810);+float t7812 = (t7798*t7811);+float t7813 = (t7795+t7812);+float t7814 = sqrt(t7813);+float t7815 = asin(t7814);+float t7816 = (2*t7815);+float t7817 = abs(t7816);+bool t7818 = (t7786>=t7817);+float t7819;+if(t7818){+t7819 = t7786;+} else {+t7819 = t7817;+}+t7710 = t7819;+}+float t7820 = abs(t7710);+float t7821 = step(float(2.0e-4),t7820);+float t7822 = (1-t7821);+float t7823 = (t5450*t7149);+float t7824 = (t7823*float(842.378));+float t7825 = fract(t7824);+float t7826 = (t7825+float(45.32));+float t7827 = (t7826+u6.u0);+float t7828 = (t7825*t7827);+float t7829 = (t5684*t6113);+float t7830 = (t7829*float(1734.048));+float t7831 = fract(t7830);+float t7832 = (t7831+float(45.32));+float t7833 = (t7832+u6.u0);+float t7834 = (t7831*t7833);+float t7835 = (t7828+t7834);+float t7836 = (t7825+t7835);+float t7837 = (t7831+t7835);+float t7838 = (t7836*t7837);+float t7839 = fract(t7838);+float t7840 = step(float(0.2),t7839);+float t7841 = (t7822*t7840);+float t7842 = (3.1415927/2);+float t7843 = (t7567-t7842);+float t7844 = (3.1415927/2);+float t7845 = (t7593-t7844);+float t7846 = (t7843-t7845);+float t7847 = abs(t7846);+float t7848 = (t7847/2);+float t7849 = sin(t7848);+float t7850 = (t7849*t7849);+float t7851 = cos(t7845);+float t7852 = cos(t7843);+float t7853 = (t7851*t7852);+float t7854 = (t7615+3.1415927);+float t7855 = (3.1415927*2);+float t7856 = mod(t7854,t7855);+float t7857 = (t7856-3.1415927);+float t7858 = (t7631+3.1415927);+float t7859 = (3.1415927*2);+float t7860 = mod(t7858,t7859);+float t7861 = (t7860-3.1415927);+float t7862 = (t7857-t7861);+float t7863 = abs(t7862);+float t7864 = (t7863/2);+float t7865 = sin(t7864);+float t7866 = (t7865*t7865);+float t7867 = (t7853*t7866);+float t7868 = (t7850+t7867);+float t7869 = sqrt(t7868);+float t7870 = asin(t7869);+float t7871 = (2*t7870);+float t7872 = (t7871/t5448);+float t7873 = (1-t7872);+float t7874 = (t5450/85);+float t7875 = (t7874*float(842.378));+float t7876 = fract(t7875);+float t7877 = (t7876+float(45.32));+float t7878 = (t7877+u6.u0);+float t7879 = (t7876*t7878);+float t7880 = (t5684/t5463);+float t7881 = (t7880*float(1734.048));+float t7882 = fract(t7881);+float t7883 = (t7882+float(45.32));+float t7884 = (t7883+u6.u0);+float t7885 = (t7882*t7884);+float t7886 = (t7879+t7885);+float t7887 = (t7876+t7886);+float t7888 = (t7882+t7886);+float t7889 = (t7887*t7888);+float t7890 = fract(t7889);+float t7891 = (t7890*float(8.0e-3));+float t7892 = (float(1.0e-3)+t7891);+float t7893 = (t7890*173);+float t7894 = fract(t7893);+float t7895 = step(float(0.66),t7894);+float t7896 = (t7895*float(3.0e-3));+float t7897 = (t7892-t7896);+float t7898 = (t7897*float(0.45));+float t7899 = (t6113/85);+float t7900 = (t7899*float(842.378));+float t7901 = fract(t7900);+float t7902 = (t7901+float(45.32));+float t7903 = (t7902+u6.u0);+float t7904 = (t7901*t7903);+float t7905 = (t7149/t6126);+float t7906 = (t7905*float(1734.048));+float t7907 = fract(t7906);+float t7908 = (t7907+float(45.32));+float t7909 = (t7908+u6.u0);+float t7910 = (t7907*t7909);+float t7911 = (t7904+t7910);+float t7912 = (t7901+t7911);+float t7913 = (t7907+t7911);+float t7914 = (t7912*t7913);+float t7915 = fract(t7914);+float t7916 = (t7915*float(8.0e-3));+float t7917 = (float(1.0e-3)+t7916);+float t7918 = (t7915*173);+float t7919 = fract(t7918);+float t7920 = step(float(0.66),t7919);+float t7921 = (t7920*float(3.0e-3));+float t7922 = (t7917-t7921);+float t7923 = (t7922*float(0.45));+float t7924 = (t7898-t7923);+float t7925 = abs(t7924);+float t7926 = (t7925-float(1.0e-3));+float t7927 = (t7926/float(8.0e-3));+float t7928 = (1-t7927);+float t7929 = (t7928*t7928);+float t7930 = (t7873*t7929);+float t7931 = (t7841*t7930);+float t7932 = (u4.u0*t7839);+float t7933 = (t7932*3);+float t7934 = sin(t7933);+float t7935 = (t7934+1);+float t7936 = (t7935/2);+float t7937 = (t7936*float(0.66));+float t7938 = (t7937+float(0.33));+float t7939 = (t7931*t7938);+float t7940 = (float(0.2)*t7939);+bool t7941 = (0>=t7940);+float t7942;+if(t7941){+t7942 = 0;+} else {+t7942 = t7940;+}+float t7943 = (t7942*0);+float t7944 = (t7543+t7943);+float t7945 = (t6113*t5448);+float t7946 = (t6113/85);+float t7947 = (t7946*float(842.378));+float t7948 = fract(t7947);+float t7949 = (t7948+float(45.32));+float t7950 = (t7949+u6.u0);+float t7951 = (t7948*t7950);+float t7952 = (t7149/t6126);+float t7953 = (t7952*float(1734.048));+float t7954 = fract(t7953);+float t7955 = (t7954+float(45.32));+float t7956 = (t7955+u6.u0);+float t7957 = (t7954*t7956);+float t7958 = (t7951+t7957);+float t7959 = (t7948+t7958);+float t7960 = (t7954+t7958);+float t7961 = (t7959*t7960);+float t7962 = fract(t7961);+float t7963 = (t7962*float(2852.02));+float t7964 = fract(t7963);+float t7965 = (t7964-float(0.5));+float t7966 = (t7965*t5448);+float t7967 = (t7966*float(0.75));+float t7968 = (t7945+t7967);+float t7969 = (3.1415927/2);+float t7970 = (t7968-t7969);+float t7971 = (t5450*t5448);+float t7972 = (t5450/85);+float t7973 = (t7972*float(842.378));+float t7974 = fract(t7973);+float t7975 = (t7974+float(45.32));+float t7976 = (t7975+u6.u0);+float t7977 = (t7974*t7976);+float t7978 = (t5466/t5463);+float t7979 = (t7978*float(1734.048));+float t7980 = fract(t7979);+float t7981 = (t7980+float(45.32));+float t7982 = (t7981+u6.u0);+float t7983 = (t7980*t7982);+float t7984 = (t7977+t7983);+float t7985 = (t7974+t7984);+float t7986 = (t7980+t7984);+float t7987 = (t7985*t7986);+float t7988 = fract(t7987);+float t7989 = (t7988*float(2852.02));+float t7990 = fract(t7989);+float t7991 = (t7990-float(0.5));+float t7992 = (t7991*t5448);+float t7993 = (t7992*float(0.75));+float t7994 = (t7971+t7993);+float t7995 = (3.1415927/2);+float t7996 = (t7994-t7995);+float t7997 = (t7970-t7996);+float t7998 = abs(t7997);+float t7999 = (t7998/2);+float t8000 = sin(t7999);+float t8001 = (t8000*t8000);+float t8002 = cos(t7996);+float t8003 = cos(t7970);+float t8004 = (t8002*t8003);+float t8005 = (3.1415927/t6126);+float t8006 = (t7149*t8005);+float t8007 = (t7962*float(97372.83));+float t8008 = fract(t8007);+float t8009 = (t8008-float(0.5));+float t8010 = (3.1415927/t6126);+float t8011 = (t8009*t8010);+float t8012 = (t8011*float(0.75));+float t8013 = (t8006+t8012);+float t8014 = (t8013+3.1415927);+float t8015 = mod(t8014,t1433);+float t8016 = (t8015-3.1415927);+float t8017 = (t8016+3.1415927);+float t8018 = (3.1415927*2);+float t8019 = mod(t8017,t8018);+float t8020 = (t8019-3.1415927);+float t8021 = (3.1415927/t5463);+float t8022 = (t5466*t8021);+float t8023 = (t7988*float(97372.83));+float t8024 = fract(t8023);+float t8025 = (t8024-float(0.5));+float t8026 = (3.1415927/t5463);+float t8027 = (t8025*t8026);+float t8028 = (t8027*float(0.75));+float t8029 = (t8022+t8028);+float t8030 = (t8029+3.1415927);+float t8031 = mod(t8030,t1433);+float t8032 = (t8031-3.1415927);+float t8033 = (t8032+3.1415927);+float t8034 = (3.1415927*2);+float t8035 = mod(t8033,t8034);+float t8036 = (t8035-3.1415927);+float t8037 = (t8020-t8036);+float t8038 = abs(t8037);+float t8039 = (t8038/2);+float t8040 = sin(t8039);+float t8041 = (t8040*t8040);+float t8042 = (t8004*t8041);+float t8043 = (t8001+t8042);+float t8044 = sqrt(t8043);+float t8045 = asin(t8044);+float t8046 = (2*t8045);+float t8047 = (3.1415927/2);+float t8048 = (t8-t8047);+float t8049 = (3.1415927/2);+float t8050 = (t7994-t8049);+float t8051 = (t8048-t8050);+float t8052 = abs(t8051);+float t8053 = (t8052/2);+float t8054 = sin(t8053);+float t8055 = (t8054*t8054);+float t8056 = cos(t8050);+float t8057 = cos(t8048);+float t8058 = (t8056*t8057);+float t8059 = (t118+3.1415927);+float t8060 = (3.1415927*2);+float t8061 = mod(t8059,t8060);+float t8062 = (t8061-3.1415927);+float t8063 = (t8032+3.1415927);+float t8064 = (3.1415927*2);+float t8065 = mod(t8063,t8064);+float t8066 = (t8065-3.1415927);+float t8067 = (t8062-t8066);+float t8068 = abs(t8067);+float t8069 = (t8068/2);+float t8070 = sin(t8069);+float t8071 = (t8070*t8070);+float t8072 = (t8058*t8071);+float t8073 = (t8055+t8072);+float t8074 = sqrt(t8073);+float t8075 = asin(t8074);+float t8076 = (2*t8075);+float t8077 = (t8046-t8076);+float t8078 = (3.1415927/2);+float t8079 = (t8-t8078);+float t8080 = (3.1415927/2);+float t8081 = (t7968-t8080);+float t8082 = (t8079-t8081);+float t8083 = abs(t8082);+float t8084 = (t8083/2);+float t8085 = sin(t8084);+float t8086 = (t8085*t8085);+float t8087 = cos(t8081);+float t8088 = cos(t8079);+float t8089 = (t8087*t8088);+float t8090 = (t118+3.1415927);+float t8091 = (3.1415927*2);+float t8092 = mod(t8090,t8091);+float t8093 = (t8092-3.1415927);+float t8094 = (t8016+3.1415927);+float t8095 = (3.1415927*2);+float t8096 = mod(t8094,t8095);+float t8097 = (t8096-3.1415927);+float t8098 = (t8093-t8097);+float t8099 = abs(t8098);+float t8100 = (t8099/2);+float t8101 = sin(t8100);+float t8102 = (t8101*t8101);+float t8103 = (t8089*t8102);+float t8104 = (t8086+t8103);+float t8105 = sqrt(t8104);+float t8106 = asin(t8105);+float t8107 = (2*t8106);+float t8108 = (t8077-t8107);+float t8109 = abs(t8108);+bool t8110 = (float(1.0e-4)>t8109);+float t8111;+if(t8110){+float t8112 = cos(t7994);+float t8113 = (1*t8112);+float t8114 = sin(t7968);+float t8115 = (1*t8114);+float t8116 = cos(t8016);+float t8117 = (t8115*t8116);+float t8118 = (t8113*t8117);+float t8119 = sin(t7994);+float t8120 = (1*t8119);+float t8121 = cos(t8032);+float t8122 = (t8120*t8121);+float t8123 = cos(t7968);+float t8124 = (1*t8123);+float t8125 = (t8122*t8124);+float t8126 = (t8118-t8125);+float t8127 = sin(t8);+float t8128 = (1*t8127);+float t8129 = sin(t118);+float t8130 = (t8128*t8129);+float t8131 = (t8126*t8130);+float t8132 = sin(t7968);+float t8133 = (1*t8132);+float t8134 = sin(t8016);+float t8135 = (t8133*t8134);+float t8136 = (t8122*t8135);+float t8137 = sin(t7994);+float t8138 = (1*t8137);+float t8139 = sin(t8032);+float t8140 = (t8138*t8139);+float t8141 = (t8140*t8117);+float t8142 = (t8136-t8141);+float t8143 = cos(t8);+float t8144 = (1*t8143);+float t8145 = (t8142*t8144);+float t8146 = (t8131+t8145);+float t8147 = (t8140*t8124);+float t8148 = (t8113*t8135);+float t8149 = (t8147-t8148);+float t8150 = sin(t8);+float t8151 = (1*t8150);+float t8152 = cos(t118);+float t8153 = (t8151*t8152);+float t8154 = (t8149*t8153);+float t8155 = (t8146+t8154);+float t8156 = abs(t8155);+t8111 = t8156;+} else {+float t8157 = (3.1415927/2);+float t8158 = (t8-t8157);+float t8159 = (3.1415927/2);+float t8160 = (t7968-t8159);+float t8161 = (t8158-t8160);+float t8162 = abs(t8161);+float t8163 = (t8162/2);+float t8164 = sin(t8163);+float t8165 = (t8164*t8164);+float t8166 = cos(t8160);+float t8167 = cos(t8158);+float t8168 = (t8166*t8167);+float t8169 = (t118+3.1415927);+float t8170 = (3.1415927*2);+float t8171 = mod(t8169,t8170);+float t8172 = (t8171-3.1415927);+float t8173 = (t8016+3.1415927);+float t8174 = (3.1415927*2);+float t8175 = mod(t8173,t8174);+float t8176 = (t8175-3.1415927);+float t8177 = (t8172-t8176);+float t8178 = abs(t8177);+float t8179 = (t8178/2);+float t8180 = sin(t8179);+float t8181 = (t8180*t8180);+float t8182 = (t8168*t8181);+float t8183 = (t8165+t8182);+float t8184 = sqrt(t8183);+float t8185 = asin(t8184);+float t8186 = (2*t8185);+float t8187 = abs(t8186);+float t8188 = (3.1415927/2);+float t8189 = (t8-t8188);+float t8190 = (3.1415927/2);+float t8191 = (t7994-t8190);+float t8192 = (t8189-t8191);+float t8193 = abs(t8192);+float t8194 = (t8193/2);+float t8195 = sin(t8194);+float t8196 = (t8195*t8195);+float t8197 = cos(t8191);+float t8198 = cos(t8189);+float t8199 = (t8197*t8198);+float t8200 = (t118+3.1415927);+float t8201 = (3.1415927*2);+float t8202 = mod(t8200,t8201);+float t8203 = (t8202-3.1415927);+float t8204 = (t8032+3.1415927);+float t8205 = (3.1415927*2);+float t8206 = mod(t8204,t8205);+float t8207 = (t8206-3.1415927);+float t8208 = (t8203-t8207);+float t8209 = abs(t8208);+float t8210 = (t8209/2);+float t8211 = sin(t8210);+float t8212 = (t8211*t8211);+float t8213 = (t8199*t8212);+float t8214 = (t8196+t8213);+float t8215 = sqrt(t8214);+float t8216 = asin(t8215);+float t8217 = (2*t8216);+float t8218 = abs(t8217);+bool t8219 = (t8187>=t8218);+float t8220;+if(t8219){+t8220 = t8187;+} else {+t8220 = t8218;+}+t8111 = t8220;+}+float t8221 = abs(t8111);+float t8222 = step(float(2.0e-4),t8221);+float t8223 = (1-t8222);+float t8224 = (t5450*t7149);+float t8225 = (t8224*float(842.378));+float t8226 = fract(t8225);+float t8227 = (t8226+float(45.32));+float t8228 = (t8227+u6.u0);+float t8229 = (t8226*t8228);+float t8230 = (t5466*t6113);+float t8231 = (t8230*float(1734.048));+float t8232 = fract(t8231);+float t8233 = (t8232+float(45.32));+float t8234 = (t8233+u6.u0);+float t8235 = (t8232*t8234);+float t8236 = (t8229+t8235);+float t8237 = (t8226+t8236);+float t8238 = (t8232+t8236);+float t8239 = (t8237*t8238);+float t8240 = fract(t8239);+float t8241 = step(float(0.2),t8240);+float t8242 = (t8223*t8241);+float t8243 = (3.1415927/2);+float t8244 = (t7968-t8243);+float t8245 = (3.1415927/2);+float t8246 = (t7994-t8245);+float t8247 = (t8244-t8246);+float t8248 = abs(t8247);+float t8249 = (t8248/2);+float t8250 = sin(t8249);+float t8251 = (t8250*t8250);+float t8252 = cos(t8246);+float t8253 = cos(t8244);+float t8254 = (t8252*t8253);+float t8255 = (t8016+3.1415927);+float t8256 = (3.1415927*2);+float t8257 = mod(t8255,t8256);+float t8258 = (t8257-3.1415927);+float t8259 = (t8032+3.1415927);+float t8260 = (3.1415927*2);+float t8261 = mod(t8259,t8260);+float t8262 = (t8261-3.1415927);+float t8263 = (t8258-t8262);+float t8264 = abs(t8263);+float t8265 = (t8264/2);+float t8266 = sin(t8265);+float t8267 = (t8266*t8266);+float t8268 = (t8254*t8267);+float t8269 = (t8251+t8268);+float t8270 = sqrt(t8269);+float t8271 = asin(t8270);+float t8272 = (2*t8271);+float t8273 = (t8272/t5448);+float t8274 = (1-t8273);+float t8275 = (t5450/85);+float t8276 = (t8275*float(842.378));+float t8277 = fract(t8276);+float t8278 = (t8277+float(45.32));+float t8279 = (t8278+u6.u0);+float t8280 = (t8277*t8279);+float t8281 = (t5466/t5463);+float t8282 = (t8281*float(1734.048));+float t8283 = fract(t8282);+float t8284 = (t8283+float(45.32));+float t8285 = (t8284+u6.u0);+float t8286 = (t8283*t8285);+float t8287 = (t8280+t8286);+float t8288 = (t8277+t8287);+float t8289 = (t8283+t8287);+float t8290 = (t8288*t8289);+float t8291 = fract(t8290);+float t8292 = (t8291*float(8.0e-3));+float t8293 = (float(1.0e-3)+t8292);+float t8294 = (t8291*173);+float t8295 = fract(t8294);+float t8296 = step(float(0.66),t8295);+float t8297 = (t8296*float(3.0e-3));+float t8298 = (t8293-t8297);+float t8299 = (t8298*float(0.45));+float t8300 = (t6113/85);+float t8301 = (t8300*float(842.378));+float t8302 = fract(t8301);+float t8303 = (t8302+float(45.32));+float t8304 = (t8303+u6.u0);+float t8305 = (t8302*t8304);+float t8306 = (t7149/t6126);+float t8307 = (t8306*float(1734.048));+float t8308 = fract(t8307);+float t8309 = (t8308+float(45.32));+float t8310 = (t8309+u6.u0);+float t8311 = (t8308*t8310);+float t8312 = (t8305+t8311);+float t8313 = (t8302+t8312);+float t8314 = (t8308+t8312);+float t8315 = (t8313*t8314);+float t8316 = fract(t8315);+float t8317 = (t8316*float(8.0e-3));+float t8318 = (float(1.0e-3)+t8317);+float t8319 = (t8316*173);+float t8320 = fract(t8319);+float t8321 = step(float(0.66),t8320);+float t8322 = (t8321*float(3.0e-3));+float t8323 = (t8318-t8322);+float t8324 = (t8323*float(0.45));+float t8325 = (t8299-t8324);+float t8326 = abs(t8325);+float t8327 = (t8326-float(1.0e-3));+float t8328 = (t8327/float(8.0e-3));+float t8329 = (1-t8328);+float t8330 = (t8329*t8329);+float t8331 = (t8274*t8330);+float t8332 = (t8242*t8331);+float t8333 = (u4.u0*t8240);+float t8334 = (t8333*3);+float t8335 = sin(t8334);+float t8336 = (t8335+1);+float t8337 = (t8336/2);+float t8338 = (t8337*float(0.66));+float t8339 = (t8338+float(0.33));+float t8340 = (t8332*t8339);+float t8341 = (float(0.2)*t8340);+bool t8342 = (0>=t8341);+float t8343;+if(t8342){+t8343 = 0;+} else {+t8343 = t8341;+}+float t8344 = (t8343*0);+float t8345 = (t7944+t8344);+float t8346 = (t5450*t5448);+float t8347 = (t5450/85);+float t8348 = (t8347*float(842.378));+float t8349 = fract(t8348);+float t8350 = (t8349+float(45.32));+float t8351 = (t8350+u6.u0);+float t8352 = (t8349*t8351);+float t8353 = (t5902/t5463);+float t8354 = (t8353*float(1734.048));+float t8355 = fract(t8354);+float t8356 = (t8355+float(45.32));+float t8357 = (t8356+u6.u0);+float t8358 = (t8355*t8357);+float t8359 = (t8352+t8358);+float t8360 = (t8349+t8359);+float t8361 = (t8355+t8359);+float t8362 = (t8360*t8361);+float t8363 = fract(t8362);+float t8364 = (t8363*float(2852.02));+float t8365 = fract(t8364);+float t8366 = (t8365-float(0.5));+float t8367 = (t8366*t5448);+float t8368 = (t8367*float(0.75));+float t8369 = (t8346+t8368);+float t8370 = (3.1415927/2);+float t8371 = (t8369-t8370);+float t8372 = (t5450*t5448);+float t8373 = (t5450/85);+float t8374 = (t8373*float(842.378));+float t8375 = fract(t8374);+float t8376 = (t8375+float(45.32));+float t8377 = (t8376+u6.u0);+float t8378 = (t8375*t8377);+float t8379 = (t5684/t5463);+float t8380 = (t8379*float(1734.048));+float t8381 = fract(t8380);+float t8382 = (t8381+float(45.32));+float t8383 = (t8382+u6.u0);+float t8384 = (t8381*t8383);+float t8385 = (t8378+t8384);+float t8386 = (t8375+t8385);+float t8387 = (t8381+t8385);+float t8388 = (t8386*t8387);+float t8389 = fract(t8388);+float t8390 = (t8389*float(2852.02));+float t8391 = fract(t8390);+float t8392 = (t8391-float(0.5));+float t8393 = (t8392*t5448);+float t8394 = (t8393*float(0.75));+float t8395 = (t8372+t8394);+float t8396 = (3.1415927/2);+float t8397 = (t8395-t8396);+float t8398 = (t8371-t8397);+float t8399 = abs(t8398);+float t8400 = (t8399/2);+float t8401 = sin(t8400);+float t8402 = (t8401*t8401);+float t8403 = cos(t8397);+float t8404 = cos(t8371);+float t8405 = (t8403*t8404);+float t8406 = (3.1415927/t5463);+float t8407 = (t5902*t8406);+float t8408 = (t8363*float(97372.83));+float t8409 = fract(t8408);+float t8410 = (t8409-float(0.5));+float t8411 = (3.1415927/t5463);+float t8412 = (t8410*t8411);+float t8413 = (t8412*float(0.75));+float t8414 = (t8407+t8413);+float t8415 = (t8414+3.1415927);+float t8416 = mod(t8415,t1433);+float t8417 = (t8416-3.1415927);+float t8418 = (t8417+3.1415927);+float t8419 = (3.1415927*2);+float t8420 = mod(t8418,t8419);+float t8421 = (t8420-3.1415927);+float t8422 = (3.1415927/t5463);+float t8423 = (t5684*t8422);+float t8424 = (t8389*float(97372.83));+float t8425 = fract(t8424);+float t8426 = (t8425-float(0.5));+float t8427 = (3.1415927/t5463);+float t8428 = (t8426*t8427);+float t8429 = (t8428*float(0.75));+float t8430 = (t8423+t8429);+float t8431 = (t8430+3.1415927);+float t8432 = mod(t8431,t1433);+float t8433 = (t8432-3.1415927);+float t8434 = (t8433+3.1415927);+float t8435 = (3.1415927*2);+float t8436 = mod(t8434,t8435);+float t8437 = (t8436-3.1415927);+float t8438 = (t8421-t8437);+float t8439 = abs(t8438);+float t8440 = (t8439/2);+float t8441 = sin(t8440);+float t8442 = (t8441*t8441);+float t8443 = (t8405*t8442);+float t8444 = (t8402+t8443);+float t8445 = sqrt(t8444);+float t8446 = asin(t8445);+float t8447 = (2*t8446);+float t8448 = (3.1415927/2);+float t8449 = (t8-t8448);+float t8450 = (3.1415927/2);+float t8451 = (t8395-t8450);+float t8452 = (t8449-t8451);+float t8453 = abs(t8452);+float t8454 = (t8453/2);+float t8455 = sin(t8454);+float t8456 = (t8455*t8455);+float t8457 = cos(t8451);+float t8458 = cos(t8449);+float t8459 = (t8457*t8458);+float t8460 = (t118+3.1415927);+float t8461 = (3.1415927*2);+float t8462 = mod(t8460,t8461);+float t8463 = (t8462-3.1415927);+float t8464 = (t8433+3.1415927);+float t8465 = (3.1415927*2);+float t8466 = mod(t8464,t8465);+float t8467 = (t8466-3.1415927);+float t8468 = (t8463-t8467);+float t8469 = abs(t8468);+float t8470 = (t8469/2);+float t8471 = sin(t8470);+float t8472 = (t8471*t8471);+float t8473 = (t8459*t8472);+float t8474 = (t8456+t8473);+float t8475 = sqrt(t8474);+float t8476 = asin(t8475);+float t8477 = (2*t8476);+float t8478 = (t8447-t8477);+float t8479 = (3.1415927/2);+float t8480 = (t8-t8479);+float t8481 = (3.1415927/2);+float t8482 = (t8369-t8481);+float t8483 = (t8480-t8482);+float t8484 = abs(t8483);+float t8485 = (t8484/2);+float t8486 = sin(t8485);+float t8487 = (t8486*t8486);+float t8488 = cos(t8482);+float t8489 = cos(t8480);+float t8490 = (t8488*t8489);+float t8491 = (t118+3.1415927);+float t8492 = (3.1415927*2);+float t8493 = mod(t8491,t8492);+float t8494 = (t8493-3.1415927);+float t8495 = (t8417+3.1415927);+float t8496 = (3.1415927*2);+float t8497 = mod(t8495,t8496);+float t8498 = (t8497-3.1415927);+float t8499 = (t8494-t8498);+float t8500 = abs(t8499);+float t8501 = (t8500/2);+float t8502 = sin(t8501);+float t8503 = (t8502*t8502);+float t8504 = (t8490*t8503);+float t8505 = (t8487+t8504);+float t8506 = sqrt(t8505);+float t8507 = asin(t8506);+float t8508 = (2*t8507);+float t8509 = (t8478-t8508);+float t8510 = abs(t8509);+bool t8511 = (float(1.0e-4)>t8510);+float t8512;+if(t8511){+float t8513 = cos(t8395);+float t8514 = (1*t8513);+float t8515 = sin(t8369);+float t8516 = (1*t8515);+float t8517 = cos(t8417);+float t8518 = (t8516*t8517);+float t8519 = (t8514*t8518);+float t8520 = sin(t8395);+float t8521 = (1*t8520);+float t8522 = cos(t8433);+float t8523 = (t8521*t8522);+float t8524 = cos(t8369);+float t8525 = (1*t8524);+float t8526 = (t8523*t8525);+float t8527 = (t8519-t8526);+float t8528 = sin(t8);+float t8529 = (1*t8528);+float t8530 = sin(t118);+float t8531 = (t8529*t8530);+float t8532 = (t8527*t8531);+float t8533 = sin(t8369);+float t8534 = (1*t8533);+float t8535 = sin(t8417);+float t8536 = (t8534*t8535);+float t8537 = (t8523*t8536);+float t8538 = sin(t8395);+float t8539 = (1*t8538);+float t8540 = sin(t8433);+float t8541 = (t8539*t8540);+float t8542 = (t8541*t8518);+float t8543 = (t8537-t8542);+float t8544 = cos(t8);+float t8545 = (1*t8544);+float t8546 = (t8543*t8545);+float t8547 = (t8532+t8546);+float t8548 = (t8541*t8525);+float t8549 = (t8514*t8536);+float t8550 = (t8548-t8549);+float t8551 = sin(t8);+float t8552 = (1*t8551);+float t8553 = cos(t118);+float t8554 = (t8552*t8553);+float t8555 = (t8550*t8554);+float t8556 = (t8547+t8555);+float t8557 = abs(t8556);+t8512 = t8557;+} else {+float t8558 = (3.1415927/2);+float t8559 = (t8-t8558);+float t8560 = (3.1415927/2);+float t8561 = (t8369-t8560);+float t8562 = (t8559-t8561);+float t8563 = abs(t8562);+float t8564 = (t8563/2);+float t8565 = sin(t8564);+float t8566 = (t8565*t8565);+float t8567 = cos(t8561);+float t8568 = cos(t8559);+float t8569 = (t8567*t8568);+float t8570 = (t118+3.1415927);+float t8571 = (3.1415927*2);+float t8572 = mod(t8570,t8571);+float t8573 = (t8572-3.1415927);+float t8574 = (t8417+3.1415927);+float t8575 = (3.1415927*2);+float t8576 = mod(t8574,t8575);+float t8577 = (t8576-3.1415927);+float t8578 = (t8573-t8577);+float t8579 = abs(t8578);+float t8580 = (t8579/2);+float t8581 = sin(t8580);+float t8582 = (t8581*t8581);+float t8583 = (t8569*t8582);+float t8584 = (t8566+t8583);+float t8585 = sqrt(t8584);+float t8586 = asin(t8585);+float t8587 = (2*t8586);+float t8588 = abs(t8587);+float t8589 = (3.1415927/2);+float t8590 = (t8-t8589);+float t8591 = (3.1415927/2);+float t8592 = (t8395-t8591);+float t8593 = (t8590-t8592);+float t8594 = abs(t8593);+float t8595 = (t8594/2);+float t8596 = sin(t8595);+float t8597 = (t8596*t8596);+float t8598 = cos(t8592);+float t8599 = cos(t8590);+float t8600 = (t8598*t8599);+float t8601 = (t118+3.1415927);+float t8602 = (3.1415927*2);+float t8603 = mod(t8601,t8602);+float t8604 = (t8603-3.1415927);+float t8605 = (t8433+3.1415927);+float t8606 = (3.1415927*2);+float t8607 = mod(t8605,t8606);+float t8608 = (t8607-3.1415927);+float t8609 = (t8604-t8608);+float t8610 = abs(t8609);+float t8611 = (t8610/2);+float t8612 = sin(t8611);+float t8613 = (t8612*t8612);+float t8614 = (t8600*t8613);+float t8615 = (t8597+t8614);+float t8616 = sqrt(t8615);+float t8617 = asin(t8616);+float t8618 = (2*t8617);+float t8619 = abs(t8618);+bool t8620 = (t8588>=t8619);+float t8621;+if(t8620){+t8621 = t8588;+} else {+t8621 = t8619;+}+t8512 = t8621;+}+float t8622 = abs(t8512);+float t8623 = step(float(2.0e-4),t8622);+float t8624 = (1-t8623);+float t8625 = (t5450*t5902);+float t8626 = (t8625*float(842.378));+float t8627 = fract(t8626);+float t8628 = (t8627+float(45.32));+float t8629 = (t8628+u6.u0);+float t8630 = (t8627*t8629);+float t8631 = (t5684*t5450);+float t8632 = (t8631*float(1734.048));+float t8633 = fract(t8632);+float t8634 = (t8633+float(45.32));+float t8635 = (t8634+u6.u0);+float t8636 = (t8633*t8635);+float t8637 = (t8630+t8636);+float t8638 = (t8627+t8637);+float t8639 = (t8633+t8637);+float t8640 = (t8638*t8639);+float t8641 = fract(t8640);+float t8642 = step(float(0.2),t8641);+float t8643 = (t8624*t8642);+float t8644 = (3.1415927/2);+float t8645 = (t8369-t8644);+float t8646 = (3.1415927/2);+float t8647 = (t8395-t8646);+float t8648 = (t8645-t8647);+float t8649 = abs(t8648);+float t8650 = (t8649/2);+float t8651 = sin(t8650);+float t8652 = (t8651*t8651);+float t8653 = cos(t8647);+float t8654 = cos(t8645);+float t8655 = (t8653*t8654);+float t8656 = (t8417+3.1415927);+float t8657 = (3.1415927*2);+float t8658 = mod(t8656,t8657);+float t8659 = (t8658-3.1415927);+float t8660 = (t8433+3.1415927);+float t8661 = (3.1415927*2);+float t8662 = mod(t8660,t8661);+float t8663 = (t8662-3.1415927);+float t8664 = (t8659-t8663);+float t8665 = abs(t8664);+float t8666 = (t8665/2);+float t8667 = sin(t8666);+float t8668 = (t8667*t8667);+float t8669 = (t8655*t8668);+float t8670 = (t8652+t8669);+float t8671 = sqrt(t8670);+float t8672 = asin(t8671);+float t8673 = (2*t8672);+float t8674 = (t8673/t5448);+float t8675 = (1-t8674);+float t8676 = (t5450/85);+float t8677 = (t8676*float(842.378));+float t8678 = fract(t8677);+float t8679 = (t8678+float(45.32));+float t8680 = (t8679+u6.u0);+float t8681 = (t8678*t8680);+float t8682 = (t5684/t5463);+float t8683 = (t8682*float(1734.048));+float t8684 = fract(t8683);+float t8685 = (t8684+float(45.32));+float t8686 = (t8685+u6.u0);+float t8687 = (t8684*t8686);+float t8688 = (t8681+t8687);+float t8689 = (t8678+t8688);+float t8690 = (t8684+t8688);+float t8691 = (t8689*t8690);+float t8692 = fract(t8691);+float t8693 = (t8692*float(8.0e-3));+float t8694 = (float(1.0e-3)+t8693);+float t8695 = (t8692*173);+float t8696 = fract(t8695);+float t8697 = step(float(0.66),t8696);+float t8698 = (t8697*float(3.0e-3));+float t8699 = (t8694-t8698);+float t8700 = (t8699*float(0.45));+float t8701 = (t5450/85);+float t8702 = (t8701*float(842.378));+float t8703 = fract(t8702);+float t8704 = (t8703+float(45.32));+float t8705 = (t8704+u6.u0);+float t8706 = (t8703*t8705);+float t8707 = (t5902/t5463);+float t8708 = (t8707*float(1734.048));+float t8709 = fract(t8708);+float t8710 = (t8709+float(45.32));+float t8711 = (t8710+u6.u0);+float t8712 = (t8709*t8711);+float t8713 = (t8706+t8712);+float t8714 = (t8703+t8713);+float t8715 = (t8709+t8713);+float t8716 = (t8714*t8715);+float t8717 = fract(t8716);+float t8718 = (t8717*float(8.0e-3));+float t8719 = (float(1.0e-3)+t8718);+float t8720 = (t8717*173);+float t8721 = fract(t8720);+float t8722 = step(float(0.66),t8721);+float t8723 = (t8722*float(3.0e-3));+float t8724 = (t8719-t8723);+float t8725 = (t8724*float(0.45));+float t8726 = (t8700-t8725);+float t8727 = abs(t8726);+float t8728 = (t8727-float(1.0e-3));+float t8729 = (t8728/float(8.0e-3));+float t8730 = (1-t8729);+float t8731 = (t8730*t8730);+float t8732 = (t8675*t8731);+float t8733 = (t8643*t8732);+float t8734 = (u4.u0*t8641);+float t8735 = (t8734*3);+float t8736 = sin(t8735);+float t8737 = (t8736+1);+float t8738 = (t8737/2);+float t8739 = (t8738*float(0.66));+float t8740 = (t8739+float(0.33));+float t8741 = (t8733*t8740);+float t8742 = (float(0.2)*t8741);+bool t8743 = (0>=t8742);+float t8744;+if(t8743){+t8744 = 0;+} else {+t8744 = t8742;+}+float t8745 = (t8744*0);+float t8746 = (t8345+t8745);+float t8747 = (t5450*t5448);+float t8748 = (t5450/85);+float t8749 = (t8748*float(842.378));+float t8750 = fract(t8749);+float t8751 = (t8750+float(45.32));+float t8752 = (t8751+u6.u0);+float t8753 = (t8750*t8752);+float t8754 = (t5466+2);+float t8755 = (t8754/t6126);+float t8756 = (t8755*float(1734.048));+float t8757 = fract(t8756);+float t8758 = (t8757+float(45.32));+float t8759 = (t8758+u6.u0);+float t8760 = (t8757*t8759);+float t8761 = (t8753+t8760);+float t8762 = (t8750+t8761);+float t8763 = (t8757+t8761);+float t8764 = (t8762*t8763);+float t8765 = fract(t8764);+float t8766 = (t8765*float(2852.02));+float t8767 = fract(t8766);+float t8768 = (t8767-float(0.5));+float t8769 = (t8768*t5448);+float t8770 = (t8769*float(0.75));+float t8771 = (t8747+t8770);+float t8772 = (3.1415927/2);+float t8773 = (t8771-t8772);+float t8774 = (t6113*t5448);+float t8775 = (t6113/85);+float t8776 = (t8775*float(842.378));+float t8777 = fract(t8776);+float t8778 = (t8777+float(45.32));+float t8779 = (t8778+u6.u0);+float t8780 = (t8777*t8779);+float t8781 = (t7149/t6126);+float t8782 = (t8781*float(1734.048));+float t8783 = fract(t8782);+float t8784 = (t8783+float(45.32));+float t8785 = (t8784+u6.u0);+float t8786 = (t8783*t8785);+float t8787 = (t8780+t8786);+float t8788 = (t8777+t8787);+float t8789 = (t8783+t8787);+float t8790 = (t8788*t8789);+float t8791 = fract(t8790);+float t8792 = (t8791*float(2852.02));+float t8793 = fract(t8792);+float t8794 = (t8793-float(0.5));+float t8795 = (t8794*t5448);+float t8796 = (t8795*float(0.75));+float t8797 = (t8774+t8796);+float t8798 = (3.1415927/2);+float t8799 = (t8797-t8798);+float t8800 = (t8773-t8799);+float t8801 = abs(t8800);+float t8802 = (t8801/2);+float t8803 = sin(t8802);+float t8804 = (t8803*t8803);+float t8805 = cos(t8799);+float t8806 = cos(t8773);+float t8807 = (t8805*t8806);+float t8808 = (3.1415927/t6126);+float t8809 = (t8754*t8808);+float t8810 = (t8765*float(97372.83));+float t8811 = fract(t8810);+float t8812 = (t8811-float(0.5));+float t8813 = (3.1415927/t6126);+float t8814 = (t8812*t8813);+float t8815 = (t8814*float(0.75));+float t8816 = (t8809+t8815);+float t8817 = (t8816+3.1415927);+float t8818 = mod(t8817,t1433);+float t8819 = (t8818-3.1415927);+float t8820 = (t8819+3.1415927);+float t8821 = (3.1415927*2);+float t8822 = mod(t8820,t8821);+float t8823 = (t8822-3.1415927);+float t8824 = (3.1415927/t6126);+float t8825 = (t7149*t8824);+float t8826 = (t8791*float(97372.83));+float t8827 = fract(t8826);+float t8828 = (t8827-float(0.5));+float t8829 = (3.1415927/t6126);+float t8830 = (t8828*t8829);+float t8831 = (t8830*float(0.75));+float t8832 = (t8825+t8831);+float t8833 = (t8832+3.1415927);+float t8834 = mod(t8833,t1433);+float t8835 = (t8834-3.1415927);+float t8836 = (t8835+3.1415927);+float t8837 = (3.1415927*2);+float t8838 = mod(t8836,t8837);+float t8839 = (t8838-3.1415927);+float t8840 = (t8823-t8839);+float t8841 = abs(t8840);+float t8842 = (t8841/2);+float t8843 = sin(t8842);+float t8844 = (t8843*t8843);+float t8845 = (t8807*t8844);+float t8846 = (t8804+t8845);+float t8847 = sqrt(t8846);+float t8848 = asin(t8847);+float t8849 = (2*t8848);+float t8850 = (3.1415927/2);+float t8851 = (t8-t8850);+float t8852 = (3.1415927/2);+float t8853 = (t8797-t8852);+float t8854 = (t8851-t8853);+float t8855 = abs(t8854);+float t8856 = (t8855/2);+float t8857 = sin(t8856);+float t8858 = (t8857*t8857);+float t8859 = cos(t8853);+float t8860 = cos(t8851);+float t8861 = (t8859*t8860);+float t8862 = (t118+3.1415927);+float t8863 = (3.1415927*2);+float t8864 = mod(t8862,t8863);+float t8865 = (t8864-3.1415927);+float t8866 = (t8835+3.1415927);+float t8867 = (3.1415927*2);+float t8868 = mod(t8866,t8867);+float t8869 = (t8868-3.1415927);+float t8870 = (t8865-t8869);+float t8871 = abs(t8870);+float t8872 = (t8871/2);+float t8873 = sin(t8872);+float t8874 = (t8873*t8873);+float t8875 = (t8861*t8874);+float t8876 = (t8858+t8875);+float t8877 = sqrt(t8876);+float t8878 = asin(t8877);+float t8879 = (2*t8878);+float t8880 = (t8849-t8879);+float t8881 = (3.1415927/2);+float t8882 = (t8-t8881);+float t8883 = (3.1415927/2);+float t8884 = (t8771-t8883);+float t8885 = (t8882-t8884);+float t8886 = abs(t8885);+float t8887 = (t8886/2);+float t8888 = sin(t8887);+float t8889 = (t8888*t8888);+float t8890 = cos(t8884);+float t8891 = cos(t8882);+float t8892 = (t8890*t8891);+float t8893 = (t118+3.1415927);+float t8894 = (3.1415927*2);+float t8895 = mod(t8893,t8894);+float t8896 = (t8895-3.1415927);+float t8897 = (t8819+3.1415927);+float t8898 = (3.1415927*2);+float t8899 = mod(t8897,t8898);+float t8900 = (t8899-3.1415927);+float t8901 = (t8896-t8900);+float t8902 = abs(t8901);+float t8903 = (t8902/2);+float t8904 = sin(t8903);+float t8905 = (t8904*t8904);+float t8906 = (t8892*t8905);+float t8907 = (t8889+t8906);+float t8908 = sqrt(t8907);+float t8909 = asin(t8908);+float t8910 = (2*t8909);+float t8911 = (t8880-t8910);+float t8912 = abs(t8911);+bool t8913 = (float(1.0e-4)>t8912);+float t8914;+if(t8913){+float t8915 = cos(t8797);+float t8916 = (1*t8915);+float t8917 = sin(t8771);+float t8918 = (1*t8917);+float t8919 = cos(t8819);+float t8920 = (t8918*t8919);+float t8921 = (t8916*t8920);+float t8922 = sin(t8797);+float t8923 = (1*t8922);+float t8924 = cos(t8835);+float t8925 = (t8923*t8924);+float t8926 = cos(t8771);+float t8927 = (1*t8926);+float t8928 = (t8925*t8927);+float t8929 = (t8921-t8928);+float t8930 = sin(t8);+float t8931 = (1*t8930);+float t8932 = sin(t118);+float t8933 = (t8931*t8932);+float t8934 = (t8929*t8933);+float t8935 = sin(t8771);+float t8936 = (1*t8935);+float t8937 = sin(t8819);+float t8938 = (t8936*t8937);+float t8939 = (t8925*t8938);+float t8940 = sin(t8797);+float t8941 = (1*t8940);+float t8942 = sin(t8835);+float t8943 = (t8941*t8942);+float t8944 = (t8943*t8920);+float t8945 = (t8939-t8944);+float t8946 = cos(t8);+float t8947 = (1*t8946);+float t8948 = (t8945*t8947);+float t8949 = (t8934+t8948);+float t8950 = (t8943*t8927);+float t8951 = (t8916*t8938);+float t8952 = (t8950-t8951);+float t8953 = sin(t8);+float t8954 = (1*t8953);+float t8955 = cos(t118);+float t8956 = (t8954*t8955);+float t8957 = (t8952*t8956);+float t8958 = (t8949+t8957);+float t8959 = abs(t8958);+t8914 = t8959;+} else {+float t8960 = (3.1415927/2);+float t8961 = (t8-t8960);+float t8962 = (3.1415927/2);+float t8963 = (t8771-t8962);+float t8964 = (t8961-t8963);+float t8965 = abs(t8964);+float t8966 = (t8965/2);+float t8967 = sin(t8966);+float t8968 = (t8967*t8967);+float t8969 = cos(t8963);+float t8970 = cos(t8961);+float t8971 = (t8969*t8970);+float t8972 = (t118+3.1415927);+float t8973 = (3.1415927*2);+float t8974 = mod(t8972,t8973);+float t8975 = (t8974-3.1415927);+float t8976 = (t8819+3.1415927);+float t8977 = (3.1415927*2);+float t8978 = mod(t8976,t8977);+float t8979 = (t8978-3.1415927);+float t8980 = (t8975-t8979);+float t8981 = abs(t8980);+float t8982 = (t8981/2);+float t8983 = sin(t8982);+float t8984 = (t8983*t8983);+float t8985 = (t8971*t8984);+float t8986 = (t8968+t8985);+float t8987 = sqrt(t8986);+float t8988 = asin(t8987);+float t8989 = (2*t8988);+float t8990 = abs(t8989);+float t8991 = (3.1415927/2);+float t8992 = (t8-t8991);+float t8993 = (3.1415927/2);+float t8994 = (t8797-t8993);+float t8995 = (t8992-t8994);+float t8996 = abs(t8995);+float t8997 = (t8996/2);+float t8998 = sin(t8997);+float t8999 = (t8998*t8998);+float t9000 = cos(t8994);+float t9001 = cos(t8992);+float t9002 = (t9000*t9001);+float t9003 = (t118+3.1415927);+float t9004 = (3.1415927*2);+float t9005 = mod(t9003,t9004);+float t9006 = (t9005-3.1415927);+float t9007 = (t8835+3.1415927);+float t9008 = (3.1415927*2);+float t9009 = mod(t9007,t9008);+float t9010 = (t9009-3.1415927);+float t9011 = (t9006-t9010);+float t9012 = abs(t9011);+float t9013 = (t9012/2);+float t9014 = sin(t9013);+float t9015 = (t9014*t9014);+float t9016 = (t9002*t9015);+float t9017 = (t8999+t9016);+float t9018 = sqrt(t9017);+float t9019 = asin(t9018);+float t9020 = (2*t9019);+float t9021 = abs(t9020);+bool t9022 = (t8990>=t9021);+float t9023;+if(t9022){+t9023 = t8990;+} else {+t9023 = t9021;+}+t8914 = t9023;+}+float t9024 = abs(t8914);+float t9025 = step(float(2.0e-4),t9024);+float t9026 = (1-t9025);+float t9027 = (t6113*t8754);+float t9028 = (t9027*float(842.378));+float t9029 = fract(t9028);+float t9030 = (t9029+float(45.32));+float t9031 = (t9030+u6.u0);+float t9032 = (t9029*t9031);+float t9033 = (t7149*t5450);+float t9034 = (t9033*float(1734.048));+float t9035 = fract(t9034);+float t9036 = (t9035+float(45.32));+float t9037 = (t9036+u6.u0);+float t9038 = (t9035*t9037);+float t9039 = (t9032+t9038);+float t9040 = (t9029+t9039);+float t9041 = (t9035+t9039);+float t9042 = (t9040*t9041);+float t9043 = fract(t9042);+float t9044 = step(float(0.2),t9043);+float t9045 = (t9026*t9044);+float t9046 = (3.1415927/2);+float t9047 = (t8771-t9046);+float t9048 = (3.1415927/2);+float t9049 = (t8797-t9048);+float t9050 = (t9047-t9049);+float t9051 = abs(t9050);+float t9052 = (t9051/2);+float t9053 = sin(t9052);+float t9054 = (t9053*t9053);+float t9055 = cos(t9049);+float t9056 = cos(t9047);+float t9057 = (t9055*t9056);+float t9058 = (t8819+3.1415927);+float t9059 = (3.1415927*2);+float t9060 = mod(t9058,t9059);+float t9061 = (t9060-3.1415927);+float t9062 = (t8835+3.1415927);+float t9063 = (3.1415927*2);+float t9064 = mod(t9062,t9063);+float t9065 = (t9064-3.1415927);+float t9066 = (t9061-t9065);+float t9067 = abs(t9066);+float t9068 = (t9067/2);+float t9069 = sin(t9068);+float t9070 = (t9069*t9069);+float t9071 = (t9057*t9070);+float t9072 = (t9054+t9071);+float t9073 = sqrt(t9072);+float t9074 = asin(t9073);+float t9075 = (2*t9074);+float t9076 = (t9075/t5448);+float t9077 = (1-t9076);+float t9078 = (t6113/85);+float t9079 = (t9078*float(842.378));+float t9080 = fract(t9079);+float t9081 = (t9080+float(45.32));+float t9082 = (t9081+u6.u0);+float t9083 = (t9080*t9082);+float t9084 = (t7149/t6126);+float t9085 = (t9084*float(1734.048));+float t9086 = fract(t9085);+float t9087 = (t9086+float(45.32));+float t9088 = (t9087+u6.u0);+float t9089 = (t9086*t9088);+float t9090 = (t9083+t9089);+float t9091 = (t9080+t9090);+float t9092 = (t9086+t9090);+float t9093 = (t9091*t9092);+float t9094 = fract(t9093);+float t9095 = (t9094*float(8.0e-3));+float t9096 = (float(1.0e-3)+t9095);+float t9097 = (t9094*173);+float t9098 = fract(t9097);+float t9099 = step(float(0.66),t9098);+float t9100 = (t9099*float(3.0e-3));+float t9101 = (t9096-t9100);+float t9102 = (t9101*float(0.45));+float t9103 = (t5450/85);+float t9104 = (t9103*float(842.378));+float t9105 = fract(t9104);+float t9106 = (t9105+float(45.32));+float t9107 = (t9106+u6.u0);+float t9108 = (t9105*t9107);+float t9109 = (t8754/t6126);+float t9110 = (t9109*float(1734.048));+float t9111 = fract(t9110);+float t9112 = (t9111+float(45.32));+float t9113 = (t9112+u6.u0);+float t9114 = (t9111*t9113);+float t9115 = (t9108+t9114);+float t9116 = (t9105+t9115);+float t9117 = (t9111+t9115);+float t9118 = (t9116*t9117);+float t9119 = fract(t9118);+float t9120 = (t9119*float(8.0e-3));+float t9121 = (float(1.0e-3)+t9120);+float t9122 = (t9119*173);+float t9123 = fract(t9122);+float t9124 = step(float(0.66),t9123);+float t9125 = (t9124*float(3.0e-3));+float t9126 = (t9121-t9125);+float t9127 = (t9126*float(0.45));+float t9128 = (t9102-t9127);+float t9129 = abs(t9128);+float t9130 = (t9129-float(1.0e-3));+float t9131 = (t9130/float(8.0e-3));+float t9132 = (1-t9131);+float t9133 = (t9132*t9132);+float t9134 = (t9077*t9133);+float t9135 = (t9045*t9134);+float t9136 = (u4.u0*t9043);+float t9137 = (t9136*3);+float t9138 = sin(t9137);+float t9139 = (t9138+1);+float t9140 = (t9139/2);+float t9141 = (t9140*float(0.66));+float t9142 = (t9141+float(0.33));+float t9143 = (t9135*t9142);+float t9144 = (float(0.2)*t9143);+bool t9145 = (0>=t9144);+float t9146;+if(t9145){+t9146 = 0;+} else {+t9146 = t9144;+}+float t9147 = (t9146*0);+float t9148 = (t8746+t9147);+float t9149 = (t5450*t5448);+float t9150 = (t5450/85);+float t9151 = (t9150*float(842.378));+float t9152 = fract(t9151);+float t9153 = (t9152+float(45.32));+float t9154 = (t9153+u6.u0);+float t9155 = (t9152*t9154);+float t9156 = (t8754/t6126);+float t9157 = (t9156*float(1734.048));+float t9158 = fract(t9157);+float t9159 = (t9158+float(45.32));+float t9160 = (t9159+u6.u0);+float t9161 = (t9158*t9160);+float t9162 = (t9155+t9161);+float t9163 = (t9152+t9162);+float t9164 = (t9158+t9162);+float t9165 = (t9163*t9164);+float t9166 = fract(t9165);+float t9167 = (t9166*float(2852.02));+float t9168 = fract(t9167);+float t9169 = (t9168-float(0.5));+float t9170 = (t9169*t5448);+float t9171 = (t9170*float(0.75));+float t9172 = (t9149+t9171);+float t9173 = (3.1415927/2);+float t9174 = (t9172-t9173);+float t9175 = (t5450*t5448);+float t9176 = (t5450/85);+float t9177 = (t9176*float(842.378));+float t9178 = fract(t9177);+float t9179 = (t9178+float(45.32));+float t9180 = (t9179+u6.u0);+float t9181 = (t9178*t9180);+float t9182 = (t5902/t5463);+float t9183 = (t9182*float(1734.048));+float t9184 = fract(t9183);+float t9185 = (t9184+float(45.32));+float t9186 = (t9185+u6.u0);+float t9187 = (t9184*t9186);+float t9188 = (t9181+t9187);+float t9189 = (t9178+t9188);+float t9190 = (t9184+t9188);+float t9191 = (t9189*t9190);+float t9192 = fract(t9191);+float t9193 = (t9192*float(2852.02));+float t9194 = fract(t9193);+float t9195 = (t9194-float(0.5));+float t9196 = (t9195*t5448);+float t9197 = (t9196*float(0.75));+float t9198 = (t9175+t9197);+float t9199 = (3.1415927/2);+float t9200 = (t9198-t9199);+float t9201 = (t9174-t9200);+float t9202 = abs(t9201);+float t9203 = (t9202/2);+float t9204 = sin(t9203);+float t9205 = (t9204*t9204);+float t9206 = cos(t9200);+float t9207 = cos(t9174);+float t9208 = (t9206*t9207);+float t9209 = (3.1415927/t6126);+float t9210 = (t8754*t9209);+float t9211 = (t9166*float(97372.83));+float t9212 = fract(t9211);+float t9213 = (t9212-float(0.5));+float t9214 = (3.1415927/t6126);+float t9215 = (t9213*t9214);+float t9216 = (t9215*float(0.75));+float t9217 = (t9210+t9216);+float t9218 = (t9217+3.1415927);+float t9219 = mod(t9218,t1433);+float t9220 = (t9219-3.1415927);+float t9221 = (t9220+3.1415927);+float t9222 = (3.1415927*2);+float t9223 = mod(t9221,t9222);+float t9224 = (t9223-3.1415927);+float t9225 = (3.1415927/t5463);+float t9226 = (t5902*t9225);+float t9227 = (t9192*float(97372.83));+float t9228 = fract(t9227);+float t9229 = (t9228-float(0.5));+float t9230 = (3.1415927/t5463);+float t9231 = (t9229*t9230);+float t9232 = (t9231*float(0.75));+float t9233 = (t9226+t9232);+float t9234 = (t9233+3.1415927);+float t9235 = mod(t9234,t1433);+float t9236 = (t9235-3.1415927);+float t9237 = (t9236+3.1415927);+float t9238 = (3.1415927*2);+float t9239 = mod(t9237,t9238);+float t9240 = (t9239-3.1415927);+float t9241 = (t9224-t9240);+float t9242 = abs(t9241);+float t9243 = (t9242/2);+float t9244 = sin(t9243);+float t9245 = (t9244*t9244);+float t9246 = (t9208*t9245);+float t9247 = (t9205+t9246);+float t9248 = sqrt(t9247);+float t9249 = asin(t9248);+float t9250 = (2*t9249);+float t9251 = (3.1415927/2);+float t9252 = (t8-t9251);+float t9253 = (3.1415927/2);+float t9254 = (t9198-t9253);+float t9255 = (t9252-t9254);+float t9256 = abs(t9255);+float t9257 = (t9256/2);+float t9258 = sin(t9257);+float t9259 = (t9258*t9258);+float t9260 = cos(t9254);+float t9261 = cos(t9252);+float t9262 = (t9260*t9261);+float t9263 = (t118+3.1415927);+float t9264 = (3.1415927*2);+float t9265 = mod(t9263,t9264);+float t9266 = (t9265-3.1415927);+float t9267 = (t9236+3.1415927);+float t9268 = (3.1415927*2);+float t9269 = mod(t9267,t9268);+float t9270 = (t9269-3.1415927);+float t9271 = (t9266-t9270);+float t9272 = abs(t9271);+float t9273 = (t9272/2);+float t9274 = sin(t9273);+float t9275 = (t9274*t9274);+float t9276 = (t9262*t9275);+float t9277 = (t9259+t9276);+float t9278 = sqrt(t9277);+float t9279 = asin(t9278);+float t9280 = (2*t9279);+float t9281 = (t9250-t9280);+float t9282 = (3.1415927/2);+float t9283 = (t8-t9282);+float t9284 = (3.1415927/2);+float t9285 = (t9172-t9284);+float t9286 = (t9283-t9285);+float t9287 = abs(t9286);+float t9288 = (t9287/2);+float t9289 = sin(t9288);+float t9290 = (t9289*t9289);+float t9291 = cos(t9285);+float t9292 = cos(t9283);+float t9293 = (t9291*t9292);+float t9294 = (t118+3.1415927);+float t9295 = (3.1415927*2);+float t9296 = mod(t9294,t9295);+float t9297 = (t9296-3.1415927);+float t9298 = (t9220+3.1415927);+float t9299 = (3.1415927*2);+float t9300 = mod(t9298,t9299);+float t9301 = (t9300-3.1415927);+float t9302 = (t9297-t9301);+float t9303 = abs(t9302);+float t9304 = (t9303/2);+float t9305 = sin(t9304);+float t9306 = (t9305*t9305);+float t9307 = (t9293*t9306);+float t9308 = (t9290+t9307);+float t9309 = sqrt(t9308);+float t9310 = asin(t9309);+float t9311 = (2*t9310);+float t9312 = (t9281-t9311);+float t9313 = abs(t9312);+bool t9314 = (float(1.0e-4)>t9313);+float t9315;+if(t9314){+float t9316 = cos(t9198);+float t9317 = (1*t9316);+float t9318 = sin(t9172);+float t9319 = (1*t9318);+float t9320 = cos(t9220);+float t9321 = (t9319*t9320);+float t9322 = (t9317*t9321);+float t9323 = sin(t9198);+float t9324 = (1*t9323);+float t9325 = cos(t9236);+float t9326 = (t9324*t9325);+float t9327 = cos(t9172);+float t9328 = (1*t9327);+float t9329 = (t9326*t9328);+float t9330 = (t9322-t9329);+float t9331 = sin(t8);+float t9332 = (1*t9331);+float t9333 = sin(t118);+float t9334 = (t9332*t9333);+float t9335 = (t9330*t9334);+float t9336 = sin(t9172);+float t9337 = (1*t9336);+float t9338 = sin(t9220);+float t9339 = (t9337*t9338);+float t9340 = (t9326*t9339);+float t9341 = sin(t9198);+float t9342 = (1*t9341);+float t9343 = sin(t9236);+float t9344 = (t9342*t9343);+float t9345 = (t9344*t9321);+float t9346 = (t9340-t9345);+float t9347 = cos(t8);+float t9348 = (1*t9347);+float t9349 = (t9346*t9348);+float t9350 = (t9335+t9349);+float t9351 = (t9344*t9328);+float t9352 = (t9317*t9339);+float t9353 = (t9351-t9352);+float t9354 = sin(t8);+float t9355 = (1*t9354);+float t9356 = cos(t118);+float t9357 = (t9355*t9356);+float t9358 = (t9353*t9357);+float t9359 = (t9350+t9358);+float t9360 = abs(t9359);+t9315 = t9360;+} else {+float t9361 = (3.1415927/2);+float t9362 = (t8-t9361);+float t9363 = (3.1415927/2);+float t9364 = (t9172-t9363);+float t9365 = (t9362-t9364);+float t9366 = abs(t9365);+float t9367 = (t9366/2);+float t9368 = sin(t9367);+float t9369 = (t9368*t9368);+float t9370 = cos(t9364);+float t9371 = cos(t9362);+float t9372 = (t9370*t9371);+float t9373 = (t118+3.1415927);+float t9374 = (3.1415927*2);+float t9375 = mod(t9373,t9374);+float t9376 = (t9375-3.1415927);+float t9377 = (t9220+3.1415927);+float t9378 = (3.1415927*2);+float t9379 = mod(t9377,t9378);+float t9380 = (t9379-3.1415927);+float t9381 = (t9376-t9380);+float t9382 = abs(t9381);+float t9383 = (t9382/2);+float t9384 = sin(t9383);+float t9385 = (t9384*t9384);+float t9386 = (t9372*t9385);+float t9387 = (t9369+t9386);+float t9388 = sqrt(t9387);+float t9389 = asin(t9388);+float t9390 = (2*t9389);+float t9391 = abs(t9390);+float t9392 = (3.1415927/2);+float t9393 = (t8-t9392);+float t9394 = (3.1415927/2);+float t9395 = (t9198-t9394);+float t9396 = (t9393-t9395);+float t9397 = abs(t9396);+float t9398 = (t9397/2);+float t9399 = sin(t9398);+float t9400 = (t9399*t9399);+float t9401 = cos(t9395);+float t9402 = cos(t9393);+float t9403 = (t9401*t9402);+float t9404 = (t118+3.1415927);+float t9405 = (3.1415927*2);+float t9406 = mod(t9404,t9405);+float t9407 = (t9406-3.1415927);+float t9408 = (t9236+3.1415927);+float t9409 = (3.1415927*2);+float t9410 = mod(t9408,t9409);+float t9411 = (t9410-3.1415927);+float t9412 = (t9407-t9411);+float t9413 = abs(t9412);+float t9414 = (t9413/2);+float t9415 = sin(t9414);+float t9416 = (t9415*t9415);+float t9417 = (t9403*t9416);+float t9418 = (t9400+t9417);+float t9419 = sqrt(t9418);+float t9420 = asin(t9419);+float t9421 = (2*t9420);+float t9422 = abs(t9421);+bool t9423 = (t9391>=t9422);+float t9424;+if(t9423){+t9424 = t9391;+} else {+t9424 = t9422;+}+t9315 = t9424;+}+float t9425 = abs(t9315);+float t9426 = step(float(2.0e-4),t9425);+float t9427 = (1-t9426);+float t9428 = (t5450*t8754);+float t9429 = (t9428*float(842.378));+float t9430 = fract(t9429);+float t9431 = (t9430+float(45.32));+float t9432 = (t9431+u6.u0);+float t9433 = (t9430*t9432);+float t9434 = (t5902*t5450);+float t9435 = (t9434*float(1734.048));+float t9436 = fract(t9435);+float t9437 = (t9436+float(45.32));+float t9438 = (t9437+u6.u0);+float t9439 = (t9436*t9438);+float t9440 = (t9433+t9439);+float t9441 = (t9430+t9440);+float t9442 = (t9436+t9440);+float t9443 = (t9441*t9442);+float t9444 = fract(t9443);+float t9445 = step(float(0.2),t9444);+float t9446 = (t9427*t9445);+float t9447 = (3.1415927/2);+float t9448 = (t9172-t9447);+float t9449 = (3.1415927/2);+float t9450 = (t9198-t9449);+float t9451 = (t9448-t9450);+float t9452 = abs(t9451);+float t9453 = (t9452/2);+float t9454 = sin(t9453);+float t9455 = (t9454*t9454);+float t9456 = cos(t9450);+float t9457 = cos(t9448);+float t9458 = (t9456*t9457);+float t9459 = (t9220+3.1415927);+float t9460 = (3.1415927*2);+float t9461 = mod(t9459,t9460);+float t9462 = (t9461-3.1415927);+float t9463 = (t9236+3.1415927);+float t9464 = (3.1415927*2);+float t9465 = mod(t9463,t9464);+float t9466 = (t9465-3.1415927);+float t9467 = (t9462-t9466);+float t9468 = abs(t9467);+float t9469 = (t9468/2);+float t9470 = sin(t9469);+float t9471 = (t9470*t9470);+float t9472 = (t9458*t9471);+float t9473 = (t9455+t9472);+float t9474 = sqrt(t9473);+float t9475 = asin(t9474);+float t9476 = (2*t9475);+float t9477 = (t9476/t5448);+float t9478 = (1-t9477);+float t9479 = (t5450/85);+float t9480 = (t9479*float(842.378));+float t9481 = fract(t9480);+float t9482 = (t9481+float(45.32));+float t9483 = (t9482+u6.u0);+float t9484 = (t9481*t9483);+float t9485 = (t5902/t5463);+float t9486 = (t9485*float(1734.048));+float t9487 = fract(t9486);+float t9488 = (t9487+float(45.32));+float t9489 = (t9488+u6.u0);+float t9490 = (t9487*t9489);+float t9491 = (t9484+t9490);+float t9492 = (t9481+t9491);+float t9493 = (t9487+t9491);+float t9494 = (t9492*t9493);+float t9495 = fract(t9494);+float t9496 = (t9495*float(8.0e-3));+float t9497 = (float(1.0e-3)+t9496);+float t9498 = (t9495*173);+float t9499 = fract(t9498);+float t9500 = step(float(0.66),t9499);+float t9501 = (t9500*float(3.0e-3));+float t9502 = (t9497-t9501);+float t9503 = (t9502*float(0.45));+float t9504 = (t5450/85);+float t9505 = (t9504*float(842.378));+float t9506 = fract(t9505);+float t9507 = (t9506+float(45.32));+float t9508 = (t9507+u6.u0);+float t9509 = (t9506*t9508);+float t9510 = (t8754/t6126);+float t9511 = (t9510*float(1734.048));+float t9512 = fract(t9511);+float t9513 = (t9512+float(45.32));+float t9514 = (t9513+u6.u0);+float t9515 = (t9512*t9514);+float t9516 = (t9509+t9515);+float t9517 = (t9506+t9516);+float t9518 = (t9512+t9516);+float t9519 = (t9517*t9518);+float t9520 = fract(t9519);+float t9521 = (t9520*float(8.0e-3));+float t9522 = (float(1.0e-3)+t9521);+float t9523 = (t9520*173);+float t9524 = fract(t9523);+float t9525 = step(float(0.66),t9524);+float t9526 = (t9525*float(3.0e-3));+float t9527 = (t9522-t9526);+float t9528 = (t9527*float(0.45));+float t9529 = (t9503-t9528);+float t9530 = abs(t9529);+float t9531 = (t9530-float(1.0e-3));+float t9532 = (t9531/float(8.0e-3));+float t9533 = (1-t9532);+float t9534 = (t9533*t9533);+float t9535 = (t9478*t9534);+float t9536 = (t9446*t9535);+float t9537 = (u4.u0*t9444);+float t9538 = (t9537*3);+float t9539 = sin(t9538);+float t9540 = (t9539+1);+float t9541 = (t9540/2);+float t9542 = (t9541*float(0.66));+float t9543 = (t9542+float(0.33));+float t9544 = (t9536*t9543);+float t9545 = (float(0.2)*t9544);+bool t9546 = (0>=t9545);+float t9547;+if(t9546){+t9547 = 0;+} else {+t9547 = t9545;+}+float t9548 = (t9547*0);+float t9549 = (t9148+t9548);+float t9550 = (t9549*float(0.33));+float t9551 = (t5447+t9550);+float t9552 = cos(float(1.46));+float t9553 = (1*t9552);+float t9554 = sin(float(1.15));+float t9555 = (1*t9554);+float t9556 = (-float(0.24));+float t9557 = cos(t9556);+float t9558 = (t9555*t9557);+float t9559 = (t9553*t9558);+float t9560 = sin(float(1.46));+float t9561 = (1*t9560);+float t9562 = (float(0.93)*float(842.378));+float t9563 = fract(t9562);+float t9564 = (t9563+float(45.32));+float t9565 = (t9564+u6.u0);+float t9566 = (t9563*t9565);+float t9567 = (float(1.245)*float(1734.048));+float t9568 = fract(t9567);+float t9569 = (t9568+float(45.32));+float t9570 = (t9569+u6.u0);+float t9571 = (t9568*t9570);+float t9572 = (t9566+t9571);+float t9573 = (t9563+t9572);+float t9574 = (t9568+t9572);+float t9575 = (t9573*t9574);+float t9576 = fract(t9575);+float t9577 = (t9576*3.1415927);+float t9578 = cos(t9577);+float t9579 = (t9561*t9578);+float t9580 = cos(float(1.15));+float t9581 = (1*t9580);+float t9582 = (t9579*t9581);+float t9583 = (t9559-t9582);+float t9584 = sin(t8);+float t9585 = (1*t9584);+float t9586 = sin(t118);+float t9587 = (t9585*t9586);+float t9588 = (t9583*t9587);+float t9589 = sin(float(1.15));+float t9590 = (1*t9589);+float t9591 = sin(t9556);+float t9592 = (t9590*t9591);+float t9593 = (t9579*t9592);+float t9594 = sin(float(1.46));+float t9595 = (1*t9594);+float t9596 = sin(t9577);+float t9597 = (t9595*t9596);+float t9598 = (t9597*t9558);+float t9599 = (t9593-t9598);+float t9600 = cos(t8);+float t9601 = (1*t9600);+float t9602 = (t9599*t9601);+float t9603 = (t9588+t9602);+float t9604 = (t9597*t9581);+float t9605 = (t9553*t9592);+float t9606 = (t9604-t9605);+float t9607 = sin(t8);+float t9608 = (1*t9607);+float t9609 = cos(t118);+float t9610 = (t9608*t9609);+float t9611 = (t9606*t9610);+float t9612 = (t9603+t9611);+float t9613 = abs(t9612);+float t9614 = (t8/3.1415927);+float t9615 = fract(t9614);+float t9616 = (t9615*16);+float t9617 = floor(t9616);+float t9618 = (t9617*float(842.378));+float t9619 = fract(t9618);+float t9620 = (t9619+float(45.32));+float t9621 = (t9620+u6.u0);+float t9622 = (t9619*t9621);+float t9623 = (t118/3.1415927);+float t9624 = fract(t9623);+float t9625 = (t9624*16);+float t9626 = floor(t9625);+float t9627 = (t9626*float(1734.048));+float t9628 = fract(t9627);+float t9629 = (t9628+float(45.32));+float t9630 = (t9629+u6.u0);+float t9631 = (t9628*t9630);+float t9632 = (t9622+t9631);+float t9633 = (t9619+t9632);+float t9634 = (t9628+t9632);+float t9635 = (t9633*t9634);+float t9636 = fract(t9635);+float t9637 = fract(t9616);+float t9638 = (t9637*3.1415927);+float t9639 = cos(t9638);+float t9640 = (t9639/2);+float t9641 = (t9640+float(0.5));+float t9642 = (1-t9641);+float t9643 = (1-t9642);+float t9644 = (t9636*t9643);+float t9645 = (t9617+1);+float t9646 = mod(t9645,16);+float t9647 = (t9646*float(842.378));+float t9648 = fract(t9647);+float t9649 = (t9648+float(45.32));+float t9650 = (t9649+u6.u0);+float t9651 = (t9648*t9650);+float t9652 = (t9626*float(1734.048));+float t9653 = fract(t9652);+float t9654 = (t9653+float(45.32));+float t9655 = (t9654+u6.u0);+float t9656 = (t9653*t9655);+float t9657 = (t9651+t9656);+float t9658 = (t9648+t9657);+float t9659 = (t9653+t9657);+float t9660 = (t9658*t9659);+float t9661 = fract(t9660);+float t9662 = (t9661*t9642);+float t9663 = (t9644+t9662);+float t9664 = fract(t9625);+float t9665 = (t9664*3.1415927);+float t9666 = cos(t9665);+float t9667 = (t9666/2);+float t9668 = (t9667+float(0.5));+float t9669 = (1-t9668);+float t9670 = (1-t9669);+float t9671 = (t9663*t9670);+float t9672 = (t9617*float(842.378));+float t9673 = fract(t9672);+float t9674 = (t9673+float(45.32));+float t9675 = (t9674+u6.u0);+float t9676 = (t9673*t9675);+float t9677 = (t9626+1);+float t9678 = mod(t9677,16);+float t9679 = (t9678*float(1734.048));+float t9680 = fract(t9679);+float t9681 = (t9680+float(45.32));+float t9682 = (t9681+u6.u0);+float t9683 = (t9680*t9682);+float t9684 = (t9676+t9683);+float t9685 = (t9673+t9684);+float t9686 = (t9680+t9684);+float t9687 = (t9685*t9686);+float t9688 = fract(t9687);+float t9689 = (t9688*t9643);+float t9690 = (t9646*float(842.378));+float t9691 = fract(t9690);+float t9692 = (t9691+float(45.32));+float t9693 = (t9692+u6.u0);+float t9694 = (t9691*t9693);+float t9695 = (t9678*float(1734.048));+float t9696 = fract(t9695);+float t9697 = (t9696+float(45.32));+float t9698 = (t9697+u6.u0);+float t9699 = (t9696*t9698);+float t9700 = (t9694+t9699);+float t9701 = (t9691+t9700);+float t9702 = (t9696+t9700);+float t9703 = (t9701*t9702);+float t9704 = fract(t9703);+float t9705 = (t9704*t9642);+float t9706 = (t9689+t9705);+float t9707 = (t9706*t9669);+float t9708 = (t9671+t9707);+float t9709 = (t9708*float(0.5));+float t9710 = (t9615*32);+float t9711 = floor(t9710);+float t9712 = (t9711*float(842.378));+float t9713 = fract(t9712);+float t9714 = (t9713+float(45.32));+float t9715 = (t9714+u6.u0);+float t9716 = (t9713*t9715);+float t9717 = (t9624*32);+float t9718 = floor(t9717);+float t9719 = (t9718*float(1734.048));+float t9720 = fract(t9719);+float t9721 = (t9720+float(45.32));+float t9722 = (t9721+u6.u0);+float t9723 = (t9720*t9722);+float t9724 = (t9716+t9723);+float t9725 = (t9713+t9724);+float t9726 = (t9720+t9724);+float t9727 = (t9725*t9726);+float t9728 = fract(t9727);+float t9729 = fract(t9710);+float t9730 = (t9729*3.1415927);+float t9731 = cos(t9730);+float t9732 = (t9731/2);+float t9733 = (t9732+float(0.5));+float t9734 = (1-t9733);+float t9735 = (1-t9734);+float t9736 = (t9728*t9735);+float t9737 = (t9711+1);+float t9738 = mod(t9737,32);+float t9739 = (t9738*float(842.378));+float t9740 = fract(t9739);+float t9741 = (t9740+float(45.32));+float t9742 = (t9741+u6.u0);+float t9743 = (t9740*t9742);+float t9744 = (t9718*float(1734.048));+float t9745 = fract(t9744);+float t9746 = (t9745+float(45.32));+float t9747 = (t9746+u6.u0);+float t9748 = (t9745*t9747);+float t9749 = (t9743+t9748);+float t9750 = (t9740+t9749);+float t9751 = (t9745+t9749);+float t9752 = (t9750*t9751);+float t9753 = fract(t9752);+float t9754 = (t9753*t9734);+float t9755 = (t9736+t9754);+float t9756 = fract(t9717);+float t9757 = (t9756*3.1415927);+float t9758 = cos(t9757);+float t9759 = (t9758/2);+float t9760 = (t9759+float(0.5));+float t9761 = (1-t9760);+float t9762 = (1-t9761);+float t9763 = (t9755*t9762);+float t9764 = (t9711*float(842.378));+float t9765 = fract(t9764);+float t9766 = (t9765+float(45.32));+float t9767 = (t9766+u6.u0);+float t9768 = (t9765*t9767);+float t9769 = (t9718+1);+float t9770 = mod(t9769,32);+float t9771 = (t9770*float(1734.048));+float t9772 = fract(t9771);+float t9773 = (t9772+float(45.32));+float t9774 = (t9773+u6.u0);+float t9775 = (t9772*t9774);+float t9776 = (t9768+t9775);+float t9777 = (t9765+t9776);+float t9778 = (t9772+t9776);+float t9779 = (t9777*t9778);+float t9780 = fract(t9779);+float t9781 = (t9780*t9735);+float t9782 = (t9738*float(842.378));+float t9783 = fract(t9782);+float t9784 = (t9783+float(45.32));+float t9785 = (t9784+u6.u0);+float t9786 = (t9783*t9785);+float t9787 = (t9770*float(1734.048));+float t9788 = fract(t9787);+float t9789 = (t9788+float(45.32));+float t9790 = (t9789+u6.u0);+float t9791 = (t9788*t9790);+float t9792 = (t9786+t9791);+float t9793 = (t9783+t9792);+float t9794 = (t9788+t9792);+float t9795 = (t9793*t9794);+float t9796 = fract(t9795);+float t9797 = (t9796*t9734);+float t9798 = (t9781+t9797);+float t9799 = (t9798*t9761);+float t9800 = (t9763+t9799);+float t9801 = (t9800*float(0.25));+float t9802 = (t9709+t9801);+float t9803 = (t9615*64);+float t9804 = floor(t9803);+float t9805 = (t9804*float(842.378));+float t9806 = fract(t9805);+float t9807 = (t9806+float(45.32));+float t9808 = (t9807+u6.u0);+float t9809 = (t9806*t9808);+float t9810 = (t9624*64);+float t9811 = floor(t9810);+float t9812 = (t9811*float(1734.048));+float t9813 = fract(t9812);+float t9814 = (t9813+float(45.32));+float t9815 = (t9814+u6.u0);+float t9816 = (t9813*t9815);+float t9817 = (t9809+t9816);+float t9818 = (t9806+t9817);+float t9819 = (t9813+t9817);+float t9820 = (t9818*t9819);+float t9821 = fract(t9820);+float t9822 = fract(t9803);+float t9823 = (t9822*3.1415927);+float t9824 = cos(t9823);+float t9825 = (t9824/2);+float t9826 = (t9825+float(0.5));+float t9827 = (1-t9826);+float t9828 = (1-t9827);+float t9829 = (t9821*t9828);+float t9830 = (t9804+1);+float t9831 = mod(t9830,64);+float t9832 = (t9831*float(842.378));+float t9833 = fract(t9832);+float t9834 = (t9833+float(45.32));+float t9835 = (t9834+u6.u0);+float t9836 = (t9833*t9835);+float t9837 = (t9811*float(1734.048));+float t9838 = fract(t9837);+float t9839 = (t9838+float(45.32));+float t9840 = (t9839+u6.u0);+float t9841 = (t9838*t9840);+float t9842 = (t9836+t9841);+float t9843 = (t9833+t9842);+float t9844 = (t9838+t9842);+float t9845 = (t9843*t9844);+float t9846 = fract(t9845);+float t9847 = (t9846*t9827);+float t9848 = (t9829+t9847);+float t9849 = fract(t9810);+float t9850 = (t9849*3.1415927);+float t9851 = cos(t9850);+float t9852 = (t9851/2);+float t9853 = (t9852+float(0.5));+float t9854 = (1-t9853);+float t9855 = (1-t9854);+float t9856 = (t9848*t9855);+float t9857 = (t9804*float(842.378));+float t9858 = fract(t9857);+float t9859 = (t9858+float(45.32));+float t9860 = (t9859+u6.u0);+float t9861 = (t9858*t9860);+float t9862 = (t9811+1);+float t9863 = mod(t9862,64);+float t9864 = (t9863*float(1734.048));+float t9865 = fract(t9864);+float t9866 = (t9865+float(45.32));+float t9867 = (t9866+u6.u0);+float t9868 = (t9865*t9867);+float t9869 = (t9861+t9868);+float t9870 = (t9858+t9869);+float t9871 = (t9865+t9869);+float t9872 = (t9870*t9871);+float t9873 = fract(t9872);+float t9874 = (t9873*t9828);+float t9875 = (t9831*float(842.378));+float t9876 = fract(t9875);+float t9877 = (t9876+float(45.32));+float t9878 = (t9877+u6.u0);+float t9879 = (t9876*t9878);+float t9880 = (t9863*float(1734.048));+float t9881 = fract(t9880);+float t9882 = (t9881+float(45.32));+float t9883 = (t9882+u6.u0);+float t9884 = (t9881*t9883);+float t9885 = (t9879+t9884);+float t9886 = (t9876+t9885);+float t9887 = (t9881+t9885);+float t9888 = (t9886*t9887);+float t9889 = fract(t9888);+float t9890 = (t9889*t9827);+float t9891 = (t9874+t9890);+float t9892 = (t9891*t9854);+float t9893 = (t9856+t9892);+float t9894 = (t9893*float(0.125));+float t9895 = (t9802+t9894);+float t9896 = (t9615*128);+float t9897 = floor(t9896);+float t9898 = (t9897*float(842.378));+float t9899 = fract(t9898);+float t9900 = (t9899+float(45.32));+float t9901 = (t9900+u6.u0);+float t9902 = (t9899*t9901);+float t9903 = (t9624*128);+float t9904 = floor(t9903);+float t9905 = (t9904*float(1734.048));+float t9906 = fract(t9905);+float t9907 = (t9906+float(45.32));+float t9908 = (t9907+u6.u0);+float t9909 = (t9906*t9908);+float t9910 = (t9902+t9909);+float t9911 = (t9899+t9910);+float t9912 = (t9906+t9910);+float t9913 = (t9911*t9912);+float t9914 = fract(t9913);+float t9915 = fract(t9896);+float t9916 = (t9915*3.1415927);+float t9917 = cos(t9916);+float t9918 = (t9917/2);+float t9919 = (t9918+float(0.5));+float t9920 = (1-t9919);+float t9921 = (1-t9920);+float t9922 = (t9914*t9921);+float t9923 = (t9897+1);+float t9924 = mod(t9923,128);+float t9925 = (t9924*float(842.378));+float t9926 = fract(t9925);+float t9927 = (t9926+float(45.32));+float t9928 = (t9927+u6.u0);+float t9929 = (t9926*t9928);+float t9930 = (t9904*float(1734.048));+float t9931 = fract(t9930);+float t9932 = (t9931+float(45.32));+float t9933 = (t9932+u6.u0);+float t9934 = (t9931*t9933);+float t9935 = (t9929+t9934);+float t9936 = (t9926+t9935);+float t9937 = (t9931+t9935);+float t9938 = (t9936*t9937);+float t9939 = fract(t9938);+float t9940 = (t9939*t9920);+float t9941 = (t9922+t9940);+float t9942 = fract(t9903);+float t9943 = (t9942*3.1415927);+float t9944 = cos(t9943);+float t9945 = (t9944/2);+float t9946 = (t9945+float(0.5));+float t9947 = (1-t9946);+float t9948 = (1-t9947);+float t9949 = (t9941*t9948);+float t9950 = (t9897*float(842.378));+float t9951 = fract(t9950);+float t9952 = (t9951+float(45.32));+float t9953 = (t9952+u6.u0);+float t9954 = (t9951*t9953);+float t9955 = (t9904+1);+float t9956 = mod(t9955,128);+float t9957 = (t9956*float(1734.048));+float t9958 = fract(t9957);+float t9959 = (t9958+float(45.32));+float t9960 = (t9959+u6.u0);+float t9961 = (t9958*t9960);+float t9962 = (t9954+t9961);+float t9963 = (t9951+t9962);+float t9964 = (t9958+t9962);+float t9965 = (t9963*t9964);+float t9966 = fract(t9965);+float t9967 = (t9966*t9921);+float t9968 = (t9924*float(842.378));+float t9969 = fract(t9968);+float t9970 = (t9969+float(45.32));+float t9971 = (t9970+u6.u0);+float t9972 = (t9969*t9971);+float t9973 = (t9956*float(1734.048));+float t9974 = fract(t9973);+float t9975 = (t9974+float(45.32));+float t9976 = (t9975+u6.u0);+float t9977 = (t9974*t9976);+float t9978 = (t9972+t9977);+float t9979 = (t9969+t9978);+float t9980 = (t9974+t9978);+float t9981 = (t9979*t9980);+float t9982 = fract(t9981);+float t9983 = (t9982*t9920);+float t9984 = (t9967+t9983);+float t9985 = (t9984*t9947);+float t9986 = (t9949+t9985);+float t9987 = (t9986*float(6.25e-2));+float t9988 = (t9895+t9987);+float t9989 = (t9988*float(0.25));+float t9990 = (t9989-float(0.125));+float t9991 = (t9613+t9990);+float t9992 = smoothstep(float(0.0),float(0.32),t9991);+float t9993 = (1-t9992);+float t9994 = (t9993*float(1.1));+float t9995 = fract(t9994);+float t9996 = (t9995*t9995);+float t9997 = (t9996*float(5.0e-2));+float t9998 = (3.1415927/245);+float t9999 = (t8/t9998);+float t10000 = floor(t9999);+float t10001 = (t10000/245);+float t10002 = (t10000/245);+float t10003 = (t10002*float(842.378));+float t10004 = fract(t10003);+float t10005 = (t10004+float(45.32));+float t10006 = (t10005+u6.u0);+float t10007 = (t10004*t10006);+float t10008 = (t10000/245);+float t10009 = (t10008*3.1415927);+float t10010 = sin(t10009);+float t10011 = (245*t10010);+float t10012 = floor(t10011);+float t10013 = (t10012+1);+float t10014 = (3.1415927/t10013);+float t10015 = (t118/t10014);+float t10016 = floor(t10015);+float t10017 = (t10016/t10013);+float t10018 = (t10017*float(1734.048));+float t10019 = fract(t10018);+float t10020 = (t10019+float(45.32));+float t10021 = (t10020+u6.u0);+float t10022 = (t10019*t10021);+float t10023 = (t10007+t10022);+float t10024 = (t10004+t10023);+float t10025 = (t10019+t10023);+float t10026 = (t10024*t10025);+float t10027 = fract(t10026);+float t10028 = (t10027*5);+float t10029 = (t10001+t10028);+float t10030 = fract(t10029);+float t10031 = (t10030*12000);+float t10032 = (t10031/1000);+bool t10033 = (1<=t10032);+float t10034;+if(t10033){+t10034 = 1;+} else {+t10034 = t10032;+}+float t10035 = (t10031-6000);+float t10036 = (t10035/8000);+bool t10037 = (0>=t10036);+float t10038;+if(t10037){+t10038 = 0;+} else {+t10038 = t10036;+}+float t10039 = (t10034-t10038);+float t10040 = (t10027*173);+float t10041 = fract(t10040);+float t10042 = step(float(0.66),t10041);+float t10043 = (t10042*3);+float t10044 = (3+t10043);+float t10045 = (3.1415927/t10044);+float t10046 = cos(t10045);+float t10047 = (1-t10046);+float t10048 = (t10000*t9998);+float t10049 = (t10000/245);+float t10050 = (t10049*float(842.378));+float t10051 = fract(t10050);+float t10052 = (t10051+float(45.32));+float t10053 = (t10052+u6.u0);+float t10054 = (t10051*t10053);+float t10055 = (t10016/t10013);+float t10056 = (t10055*float(1734.048));+float t10057 = fract(t10056);+float t10058 = (t10057+float(45.32));+float t10059 = (t10058+u6.u0);+float t10060 = (t10057*t10059);+float t10061 = (t10054+t10060);+float t10062 = (t10051+t10061);+float t10063 = (t10057+t10061);+float t10064 = (t10062*t10063);+float t10065 = fract(t10064);+float t10066 = (t10065*float(2852.02));+float t10067 = fract(t10066);+float t10068 = (t10067-float(0.5));+float t10069 = (t10068*t9998);+float t10070 = (t10069*float(0.75));+float t10071 = (t10048+t10070);+float t10072 = cos(t10071);+float t10073 = (1*t10072);+float t10074 = (t10073*0);+float t10075 = sin(t10071);+float t10076 = (1*t10075);+float t10077 = (3.1415927/t10013);+float t10078 = (t10016*t10077);+float t10079 = (t10065*float(97372.83));+float t10080 = fract(t10079);+float t10081 = (t10080-float(0.5));+float t10082 = (3.1415927/t10013);+float t10083 = (t10081*t10082);+float t10084 = (t10083*float(0.75));+float t10085 = (t10078+t10084);+float t10086 = (t10085+3.1415927);+float t10087 = mod(t10086,t1433);+float t10088 = (t10087-3.1415927);+float t10089 = cos(t10088);+float t10090 = (t10076*t10089);+float t10091 = (t10090*1);+float t10092 = (t10074-t10091);+float t10093 = sin(t8);+float t10094 = (1*t10093);+float t10095 = sin(t118);+float t10096 = (t10094*t10095);+float t10097 = (t10092*t10096);+float t10098 = (t10090*0);+float t10099 = sin(t10071);+float t10100 = (1*t10099);+float t10101 = sin(t10088);+float t10102 = (t10100*t10101);+float t10103 = (t10102*0);+float t10104 = (t10098-t10103);+float t10105 = cos(t8);+float t10106 = (1*t10105);+float t10107 = (t10104*t10106);+float t10108 = (t10097+t10107);+float t10109 = (t10102*1);+float t10110 = (t10073*0);+float t10111 = (t10109-t10110);+float t10112 = sin(t8);+float t10113 = (1*t10112);+float t10114 = cos(t118);+float t10115 = (t10113*t10114);+float t10116 = (t10111*t10115);+float t10117 = (t10108+t10116);+float t10118 = (t10104*t10090);+float t10119 = (t10111*t10073);+float t10120 = (t10118-t10119);+float t10121 = (t10120*t10096);+float t10122 = (t10111*t10102);+float t10123 = (t10092*t10090);+float t10124 = (t10122-t10123);+float t10125 = (t10124*t10106);+float t10126 = (t10121+t10125);+float t10127 = (t10092*t10073);+float t10128 = (t10104*t10102);+float t10129 = (t10127-t10128);+float t10130 = (t10129*t10115);+float t10131 = (t10126+t10130);+float t10132 = atan(t10117,t10131);+float t10133 = (t10132+3.1415927);+float t10134 = (t10041*3.1415927);+float t10135 = (t10133+t10134);+float t10136 = (t10135/t1483);+float t10137 = fract(t10136);+float t10138 = (t10137*t10044);+float t10139 = fract(t10138);+float t10140 = (t10139*2);+float t10141 = (t10140-1);+float t10142 = abs(t10141);+float t10143 = (t10142*t10142);+float t10144 = (t10047*t10143);+float t10145 = (t10046+t10144);+float t10146 = (t10027*float(8.0e-3));+float t10147 = (float(1.0e-3)+t10146);+float t10148 = step(float(0.66),t10041);+float t10149 = (t10148*float(3.0e-3));+float t10150 = (t10147-t10149);+float t10151 = (t10150*float(0.4));+float t10152 = (t10145*t10151);+float t10153 = (3.1415927/2);+float t10154 = (t10071-t10153);+float t10155 = (3.1415927/2);+float t10156 = (t8-t10155);+float t10157 = (t10154-t10156);+float t10158 = abs(t10157);+float t10159 = (t10158/2);+float t10160 = sin(t10159);+float t10161 = (t10160*t10160);+float t10162 = cos(t10156);+float t10163 = cos(t10154);+float t10164 = (t10162*t10163);+float t10165 = (t10088+3.1415927);+float t10166 = (3.1415927*2);+float t10167 = mod(t10165,t10166);+float t10168 = (t10167-3.1415927);+float t10169 = (t118+3.1415927);+float t10170 = (3.1415927*2);+float t10171 = mod(t10169,t10170);+float t10172 = (t10171-3.1415927);+float t10173 = (t10168-t10172);+float t10174 = abs(t10173);+float t10175 = (t10174/2);+float t10176 = sin(t10175);+float t10177 = (t10176*t10176);+float t10178 = (t10164*t10177);+float t10179 = (t10161+t10178);+float t10180 = sqrt(t10179);+float t10181 = asin(t10180);+float t10182 = (2*t10181);+float t10183 = step(t10152,t10182);+float t10184 = (1-t10183);+float t10185 = (t10039*t10184);+float t10186 = (3.1415927/2);+float t10187 = (t8-t10186);+float t10188 = (3.1415927/2);+float t10189 = (t10071-t10188);+float t10190 = (t10187-t10189);+float t10191 = abs(t10190);+float t10192 = (t10191/2);+float t10193 = sin(t10192);+float t10194 = (t10193*t10193);+float t10195 = cos(t10189);+float t10196 = cos(t10187);+float t10197 = (t10195*t10196);+float t10198 = (t118+3.1415927);+float t10199 = (3.1415927*2);+float t10200 = mod(t10198,t10199);+float t10201 = (t10200-3.1415927);+float t10202 = (t10088+3.1415927);+float t10203 = (3.1415927*2);+float t10204 = mod(t10202,t10203);+float t10205 = (t10204-3.1415927);+float t10206 = (t10201-t10205);+float t10207 = abs(t10206);+float t10208 = (t10207/2);+float t10209 = sin(t10208);+float t10210 = (t10209*t10209);+float t10211 = (t10197*t10210);+float t10212 = (t10194+t10211);+float t10213 = sqrt(t10212);+float t10214 = asin(t10213);+float t10215 = (2*t10214);+float t10216 = (1/t10215);+float t10217 = (t10216*t10151);+float t10218 = (t10217*float(1.25e-2));+float t10219 = (u4.u0*t10027);+float t10220 = cos(t10219);+float t10221 = (t10220+1);+float t10222 = (t10221/2);+float t10223 = (t10218*t10222);+float t10224 = (t10223*t10039);+float t10225 = (t10185+t10224);+float t10226 = (0+t10225);+float t10227 = (t10000/245);+float t10228 = (t10000/245);+float t10229 = (t10228*float(842.378));+float t10230 = fract(t10229);+float t10231 = (t10230+float(45.32));+float t10232 = (t10231+u6.u0);+float t10233 = (t10230*t10232);+float t10234 = (t10016+1);+float t10235 = (t10234/t10013);+float t10236 = (t10235*float(1734.048));+float t10237 = fract(t10236);+float t10238 = (t10237+float(45.32));+float t10239 = (t10238+u6.u0);+float t10240 = (t10237*t10239);+float t10241 = (t10233+t10240);+float t10242 = (t10230+t10241);+float t10243 = (t10237+t10241);+float t10244 = (t10242*t10243);+float t10245 = fract(t10244);+float t10246 = (t10245*5);+float t10247 = (t10227+t10246);+float t10248 = fract(t10247);+float t10249 = (t10248*12000);+float t10250 = (t10249/1000);+bool t10251 = (1<=t10250);+float t10252;+if(t10251){+t10252 = 1;+} else {+t10252 = t10250;+}+float t10253 = (t10249-6000);+float t10254 = (t10253/8000);+bool t10255 = (0>=t10254);+float t10256;+if(t10255){+t10256 = 0;+} else {+t10256 = t10254;+}+float t10257 = (t10252-t10256);+float t10258 = (t10245*173);+float t10259 = fract(t10258);+float t10260 = step(float(0.66),t10259);+float t10261 = (t10260*3);+float t10262 = (3+t10261);+float t10263 = (3.1415927/t10262);+float t10264 = cos(t10263);+float t10265 = (1-t10264);+float t10266 = (t10000*t9998);+float t10267 = (t10000/245);+float t10268 = (t10267*float(842.378));+float t10269 = fract(t10268);+float t10270 = (t10269+float(45.32));+float t10271 = (t10270+u6.u0);+float t10272 = (t10269*t10271);+float t10273 = (t10234/t10013);+float t10274 = (t10273*float(1734.048));+float t10275 = fract(t10274);+float t10276 = (t10275+float(45.32));+float t10277 = (t10276+u6.u0);+float t10278 = (t10275*t10277);+float t10279 = (t10272+t10278);+float t10280 = (t10269+t10279);+float t10281 = (t10275+t10279);+float t10282 = (t10280*t10281);+float t10283 = fract(t10282);+float t10284 = (t10283*float(2852.02));+float t10285 = fract(t10284);+float t10286 = (t10285-float(0.5));+float t10287 = (t10286*t9998);+float t10288 = (t10287*float(0.75));+float t10289 = (t10266+t10288);+float t10290 = cos(t10289);+float t10291 = (1*t10290);+float t10292 = (t10291*0);+float t10293 = sin(t10289);+float t10294 = (1*t10293);+float t10295 = (3.1415927/t10013);+float t10296 = (t10234*t10295);+float t10297 = (t10283*float(97372.83));+float t10298 = fract(t10297);+float t10299 = (t10298-float(0.5));+float t10300 = (3.1415927/t10013);+float t10301 = (t10299*t10300);+float t10302 = (t10301*float(0.75));+float t10303 = (t10296+t10302);+float t10304 = (t10303+3.1415927);+float t10305 = mod(t10304,t1433);+float t10306 = (t10305-3.1415927);+float t10307 = cos(t10306);+float t10308 = (t10294*t10307);+float t10309 = (t10308*1);+float t10310 = (t10292-t10309);+float t10311 = sin(t8);+float t10312 = (1*t10311);+float t10313 = sin(t118);+float t10314 = (t10312*t10313);+float t10315 = (t10310*t10314);+float t10316 = (t10308*0);+float t10317 = sin(t10289);+float t10318 = (1*t10317);+float t10319 = sin(t10306);+float t10320 = (t10318*t10319);+float t10321 = (t10320*0);+float t10322 = (t10316-t10321);+float t10323 = cos(t8);+float t10324 = (1*t10323);+float t10325 = (t10322*t10324);+float t10326 = (t10315+t10325);+float t10327 = (t10320*1);+float t10328 = (t10291*0);+float t10329 = (t10327-t10328);+float t10330 = sin(t8);+float t10331 = (1*t10330);+float t10332 = cos(t118);+float t10333 = (t10331*t10332);+float t10334 = (t10329*t10333);+float t10335 = (t10326+t10334);+float t10336 = (t10322*t10308);+float t10337 = (t10329*t10291);+float t10338 = (t10336-t10337);+float t10339 = (t10338*t10314);+float t10340 = (t10329*t10320);+float t10341 = (t10310*t10308);+float t10342 = (t10340-t10341);+float t10343 = (t10342*t10324);+float t10344 = (t10339+t10343);+float t10345 = (t10310*t10291);+float t10346 = (t10322*t10320);+float t10347 = (t10345-t10346);+float t10348 = (t10347*t10333);+float t10349 = (t10344+t10348);+float t10350 = atan(t10335,t10349);+float t10351 = (t10350+3.1415927);+float t10352 = (t10259*3.1415927);+float t10353 = (t10351+t10352);+float t10354 = (t10353/t1483);+float t10355 = fract(t10354);+float t10356 = (t10355*t10262);+float t10357 = fract(t10356);+float t10358 = (t10357*2);+float t10359 = (t10358-1);+float t10360 = abs(t10359);+float t10361 = (t10360*t10360);+float t10362 = (t10265*t10361);+float t10363 = (t10264+t10362);+float t10364 = (t10245*float(8.0e-3));+float t10365 = (float(1.0e-3)+t10364);+float t10366 = step(float(0.66),t10259);+float t10367 = (t10366*float(3.0e-3));+float t10368 = (t10365-t10367);+float t10369 = (t10368*float(0.4));+float t10370 = (t10363*t10369);+float t10371 = (3.1415927/2);+float t10372 = (t10289-t10371);+float t10373 = (3.1415927/2);+float t10374 = (t8-t10373);+float t10375 = (t10372-t10374);+float t10376 = abs(t10375);+float t10377 = (t10376/2);+float t10378 = sin(t10377);+float t10379 = (t10378*t10378);+float t10380 = cos(t10374);+float t10381 = cos(t10372);+float t10382 = (t10380*t10381);+float t10383 = (t10306+3.1415927);+float t10384 = (3.1415927*2);+float t10385 = mod(t10383,t10384);+float t10386 = (t10385-3.1415927);+float t10387 = (t118+3.1415927);+float t10388 = (3.1415927*2);+float t10389 = mod(t10387,t10388);+float t10390 = (t10389-3.1415927);+float t10391 = (t10386-t10390);+float t10392 = abs(t10391);+float t10393 = (t10392/2);+float t10394 = sin(t10393);+float t10395 = (t10394*t10394);+float t10396 = (t10382*t10395);+float t10397 = (t10379+t10396);+float t10398 = sqrt(t10397);+float t10399 = asin(t10398);+float t10400 = (2*t10399);+float t10401 = step(t10370,t10400);+float t10402 = (1-t10401);+float t10403 = (t10257*t10402);+float t10404 = (3.1415927/2);+float t10405 = (t8-t10404);+float t10406 = (3.1415927/2);+float t10407 = (t10289-t10406);+float t10408 = (t10405-t10407);+float t10409 = abs(t10408);+float t10410 = (t10409/2);+float t10411 = sin(t10410);+float t10412 = (t10411*t10411);+float t10413 = cos(t10407);+float t10414 = cos(t10405);+float t10415 = (t10413*t10414);+float t10416 = (t118+3.1415927);+float t10417 = (3.1415927*2);+float t10418 = mod(t10416,t10417);+float t10419 = (t10418-3.1415927);+float t10420 = (t10306+3.1415927);+float t10421 = (3.1415927*2);+float t10422 = mod(t10420,t10421);+float t10423 = (t10422-3.1415927);+float t10424 = (t10419-t10423);+float t10425 = abs(t10424);+float t10426 = (t10425/2);+float t10427 = sin(t10426);+float t10428 = (t10427*t10427);+float t10429 = (t10415*t10428);+float t10430 = (t10412+t10429);+float t10431 = sqrt(t10430);+float t10432 = asin(t10431);+float t10433 = (2*t10432);+float t10434 = (1/t10433);+float t10435 = (t10434*t10369);+float t10436 = (t10435*float(1.25e-2));+float t10437 = (u4.u0*t10245);+float t10438 = cos(t10437);+float t10439 = (t10438+1);+float t10440 = (t10439/2);+float t10441 = (t10436*t10440);+float t10442 = (t10441*t10257);+float t10443 = (t10403+t10442);+float t10444 = (t10226+t10443);+float t10445 = (t10000/245);+float t10446 = (t10000/245);+float t10447 = (t10446*float(842.378));+float t10448 = fract(t10447);+float t10449 = (t10448+float(45.32));+float t10450 = (t10449+u6.u0);+float t10451 = (t10448*t10450);+float t10452 = (t10016+2);+float t10453 = (t10452/t10013);+float t10454 = (t10453*float(1734.048));+float t10455 = fract(t10454);+float t10456 = (t10455+float(45.32));+float t10457 = (t10456+u6.u0);+float t10458 = (t10455*t10457);+float t10459 = (t10451+t10458);+float t10460 = (t10448+t10459);+float t10461 = (t10455+t10459);+float t10462 = (t10460*t10461);+float t10463 = fract(t10462);+float t10464 = (t10463*5);+float t10465 = (t10445+t10464);+float t10466 = fract(t10465);+float t10467 = (t10466*12000);+float t10468 = (t10467/1000);+bool t10469 = (1<=t10468);+float t10470;+if(t10469){+t10470 = 1;+} else {+t10470 = t10468;+}+float t10471 = (t10467-6000);+float t10472 = (t10471/8000);+bool t10473 = (0>=t10472);+float t10474;+if(t10473){+t10474 = 0;+} else {+t10474 = t10472;+}+float t10475 = (t10470-t10474);+float t10476 = (t10463*173);+float t10477 = fract(t10476);+float t10478 = step(float(0.66),t10477);+float t10479 = (t10478*3);+float t10480 = (3+t10479);+float t10481 = (3.1415927/t10480);+float t10482 = cos(t10481);+float t10483 = (1-t10482);+float t10484 = (t10000*t9998);+float t10485 = (t10000/245);+float t10486 = (t10485*float(842.378));+float t10487 = fract(t10486);+float t10488 = (t10487+float(45.32));+float t10489 = (t10488+u6.u0);+float t10490 = (t10487*t10489);+float t10491 = (t10452/t10013);+float t10492 = (t10491*float(1734.048));+float t10493 = fract(t10492);+float t10494 = (t10493+float(45.32));+float t10495 = (t10494+u6.u0);+float t10496 = (t10493*t10495);+float t10497 = (t10490+t10496);+float t10498 = (t10487+t10497);+float t10499 = (t10493+t10497);+float t10500 = (t10498*t10499);+float t10501 = fract(t10500);+float t10502 = (t10501*float(2852.02));+float t10503 = fract(t10502);+float t10504 = (t10503-float(0.5));+float t10505 = (t10504*t9998);+float t10506 = (t10505*float(0.75));+float t10507 = (t10484+t10506);+float t10508 = cos(t10507);+float t10509 = (1*t10508);+float t10510 = (t10509*0);+float t10511 = sin(t10507);+float t10512 = (1*t10511);+float t10513 = (3.1415927/t10013);+float t10514 = (t10452*t10513);+float t10515 = (t10501*float(97372.83));+float t10516 = fract(t10515);+float t10517 = (t10516-float(0.5));+float t10518 = (3.1415927/t10013);+float t10519 = (t10517*t10518);+float t10520 = (t10519*float(0.75));+float t10521 = (t10514+t10520);+float t10522 = (t10521+3.1415927);+float t10523 = mod(t10522,t1433);+float t10524 = (t10523-3.1415927);+float t10525 = cos(t10524);+float t10526 = (t10512*t10525);+float t10527 = (t10526*1);+float t10528 = (t10510-t10527);+float t10529 = sin(t8);+float t10530 = (1*t10529);+float t10531 = sin(t118);+float t10532 = (t10530*t10531);+float t10533 = (t10528*t10532);+float t10534 = (t10526*0);+float t10535 = sin(t10507);+float t10536 = (1*t10535);+float t10537 = sin(t10524);+float t10538 = (t10536*t10537);+float t10539 = (t10538*0);+float t10540 = (t10534-t10539);+float t10541 = cos(t8);+float t10542 = (1*t10541);+float t10543 = (t10540*t10542);+float t10544 = (t10533+t10543);+float t10545 = (t10538*1);+float t10546 = (t10509*0);+float t10547 = (t10545-t10546);+float t10548 = sin(t8);+float t10549 = (1*t10548);+float t10550 = cos(t118);+float t10551 = (t10549*t10550);+float t10552 = (t10547*t10551);+float t10553 = (t10544+t10552);+float t10554 = (t10540*t10526);+float t10555 = (t10547*t10509);+float t10556 = (t10554-t10555);+float t10557 = (t10556*t10532);+float t10558 = (t10547*t10538);+float t10559 = (t10528*t10526);+float t10560 = (t10558-t10559);+float t10561 = (t10560*t10542);+float t10562 = (t10557+t10561);+float t10563 = (t10528*t10509);+float t10564 = (t10540*t10538);+float t10565 = (t10563-t10564);+float t10566 = (t10565*t10551);+float t10567 = (t10562+t10566);+float t10568 = atan(t10553,t10567);+float t10569 = (t10568+3.1415927);+float t10570 = (t10477*3.1415927);+float t10571 = (t10569+t10570);+float t10572 = (t10571/t1483);+float t10573 = fract(t10572);+float t10574 = (t10573*t10480);+float t10575 = fract(t10574);+float t10576 = (t10575*2);+float t10577 = (t10576-1);+float t10578 = abs(t10577);+float t10579 = (t10578*t10578);+float t10580 = (t10483*t10579);+float t10581 = (t10482+t10580);+float t10582 = (t10463*float(8.0e-3));+float t10583 = (float(1.0e-3)+t10582);+float t10584 = step(float(0.66),t10477);+float t10585 = (t10584*float(3.0e-3));+float t10586 = (t10583-t10585);+float t10587 = (t10586*float(0.4));+float t10588 = (t10581*t10587);+float t10589 = (3.1415927/2);+float t10590 = (t10507-t10589);+float t10591 = (3.1415927/2);+float t10592 = (t8-t10591);+float t10593 = (t10590-t10592);+float t10594 = abs(t10593);+float t10595 = (t10594/2);+float t10596 = sin(t10595);+float t10597 = (t10596*t10596);+float t10598 = cos(t10592);+float t10599 = cos(t10590);+float t10600 = (t10598*t10599);+float t10601 = (t10524+3.1415927);+float t10602 = (3.1415927*2);+float t10603 = mod(t10601,t10602);+float t10604 = (t10603-3.1415927);+float t10605 = (t118+3.1415927);+float t10606 = (3.1415927*2);+float t10607 = mod(t10605,t10606);+float t10608 = (t10607-3.1415927);+float t10609 = (t10604-t10608);+float t10610 = abs(t10609);+float t10611 = (t10610/2);+float t10612 = sin(t10611);+float t10613 = (t10612*t10612);+float t10614 = (t10600*t10613);+float t10615 = (t10597+t10614);+float t10616 = sqrt(t10615);+float t10617 = asin(t10616);+float t10618 = (2*t10617);+float t10619 = step(t10588,t10618);+float t10620 = (1-t10619);+float t10621 = (t10475*t10620);+float t10622 = (3.1415927/2);+float t10623 = (t8-t10622);+float t10624 = (3.1415927/2);+float t10625 = (t10507-t10624);+float t10626 = (t10623-t10625);+float t10627 = abs(t10626);+float t10628 = (t10627/2);+float t10629 = sin(t10628);+float t10630 = (t10629*t10629);+float t10631 = cos(t10625);+float t10632 = cos(t10623);+float t10633 = (t10631*t10632);+float t10634 = (t118+3.1415927);+float t10635 = (3.1415927*2);+float t10636 = mod(t10634,t10635);+float t10637 = (t10636-3.1415927);+float t10638 = (t10524+3.1415927);+float t10639 = (3.1415927*2);+float t10640 = mod(t10638,t10639);+float t10641 = (t10640-3.1415927);+float t10642 = (t10637-t10641);+float t10643 = abs(t10642);+float t10644 = (t10643/2);+float t10645 = sin(t10644);+float t10646 = (t10645*t10645);+float t10647 = (t10633*t10646);+float t10648 = (t10630+t10647);+float t10649 = sqrt(t10648);+float t10650 = asin(t10649);+float t10651 = (2*t10650);+float t10652 = (1/t10651);+float t10653 = (t10652*t10587);+float t10654 = (t10653*float(1.25e-2));+float t10655 = (u4.u0*t10463);+float t10656 = cos(t10655);+float t10657 = (t10656+1);+float t10658 = (t10657/2);+float t10659 = (t10654*t10658);+float t10660 = (t10659*t10475);+float t10661 = (t10621+t10660);+float t10662 = (t10444+t10661);+float t10663 = (t10000+1);+float t10664 = (t10663/245);+float t10665 = (t10663/245);+float t10666 = (t10665*float(842.378));+float t10667 = fract(t10666);+float t10668 = (t10667+float(45.32));+float t10669 = (t10668+u6.u0);+float t10670 = (t10667*t10669);+float t10671 = (t10663/245);+float t10672 = (t10671*3.1415927);+float t10673 = sin(t10672);+float t10674 = (245*t10673);+float t10675 = floor(t10674);+float t10676 = (t10675+1);+float t10677 = (3.1415927/t10676);+float t10678 = (t118/t10677);+float t10679 = floor(t10678);+float t10680 = (t10679/t10676);+float t10681 = (t10680*float(1734.048));+float t10682 = fract(t10681);+float t10683 = (t10682+float(45.32));+float t10684 = (t10683+u6.u0);+float t10685 = (t10682*t10684);+float t10686 = (t10670+t10685);+float t10687 = (t10667+t10686);+float t10688 = (t10682+t10686);+float t10689 = (t10687*t10688);+float t10690 = fract(t10689);+float t10691 = (t10690*5);+float t10692 = (t10664+t10691);+float t10693 = fract(t10692);+float t10694 = (t10693*12000);+float t10695 = (t10694/1000);+bool t10696 = (1<=t10695);+float t10697;+if(t10696){+t10697 = 1;+} else {+t10697 = t10695;+}+float t10698 = (t10694-6000);+float t10699 = (t10698/8000);+bool t10700 = (0>=t10699);+float t10701;+if(t10700){+t10701 = 0;+} else {+t10701 = t10699;+}+float t10702 = (t10697-t10701);+float t10703 = (t10690*173);+float t10704 = fract(t10703);+float t10705 = step(float(0.66),t10704);+float t10706 = (t10705*3);+float t10707 = (3+t10706);+float t10708 = (3.1415927/t10707);+float t10709 = cos(t10708);+float t10710 = (1-t10709);+float t10711 = (t10663*t9998);+float t10712 = (t10663/245);+float t10713 = (t10712*float(842.378));+float t10714 = fract(t10713);+float t10715 = (t10714+float(45.32));+float t10716 = (t10715+u6.u0);+float t10717 = (t10714*t10716);+float t10718 = (t10679/t10676);+float t10719 = (t10718*float(1734.048));+float t10720 = fract(t10719);+float t10721 = (t10720+float(45.32));+float t10722 = (t10721+u6.u0);+float t10723 = (t10720*t10722);+float t10724 = (t10717+t10723);+float t10725 = (t10714+t10724);+float t10726 = (t10720+t10724);+float t10727 = (t10725*t10726);+float t10728 = fract(t10727);+float t10729 = (t10728*float(2852.02));+float t10730 = fract(t10729);+float t10731 = (t10730-float(0.5));+float t10732 = (t10731*t9998);+float t10733 = (t10732*float(0.75));+float t10734 = (t10711+t10733);+float t10735 = cos(t10734);+float t10736 = (1*t10735);+float t10737 = (t10736*0);+float t10738 = sin(t10734);+float t10739 = (1*t10738);+float t10740 = (3.1415927/t10676);+float t10741 = (t10679*t10740);+float t10742 = (t10728*float(97372.83));+float t10743 = fract(t10742);+float t10744 = (t10743-float(0.5));+float t10745 = (3.1415927/t10676);+float t10746 = (t10744*t10745);+float t10747 = (t10746*float(0.75));+float t10748 = (t10741+t10747);+float t10749 = (t10748+3.1415927);+float t10750 = mod(t10749,t1433);+float t10751 = (t10750-3.1415927);+float t10752 = cos(t10751);+float t10753 = (t10739*t10752);+float t10754 = (t10753*1);+float t10755 = (t10737-t10754);+float t10756 = sin(t8);+float t10757 = (1*t10756);+float t10758 = sin(t118);+float t10759 = (t10757*t10758);+float t10760 = (t10755*t10759);+float t10761 = (t10753*0);+float t10762 = sin(t10734);+float t10763 = (1*t10762);+float t10764 = sin(t10751);+float t10765 = (t10763*t10764);+float t10766 = (t10765*0);+float t10767 = (t10761-t10766);+float t10768 = cos(t8);+float t10769 = (1*t10768);+float t10770 = (t10767*t10769);+float t10771 = (t10760+t10770);+float t10772 = (t10765*1);+float t10773 = (t10736*0);+float t10774 = (t10772-t10773);+float t10775 = sin(t8);+float t10776 = (1*t10775);+float t10777 = cos(t118);+float t10778 = (t10776*t10777);+float t10779 = (t10774*t10778);+float t10780 = (t10771+t10779);+float t10781 = (t10767*t10753);+float t10782 = (t10774*t10736);+float t10783 = (t10781-t10782);+float t10784 = (t10783*t10759);+float t10785 = (t10774*t10765);+float t10786 = (t10755*t10753);+float t10787 = (t10785-t10786);+float t10788 = (t10787*t10769);+float t10789 = (t10784+t10788);+float t10790 = (t10755*t10736);+float t10791 = (t10767*t10765);+float t10792 = (t10790-t10791);+float t10793 = (t10792*t10778);+float t10794 = (t10789+t10793);+float t10795 = atan(t10780,t10794);+float t10796 = (t10795+3.1415927);+float t10797 = (t10704*3.1415927);+float t10798 = (t10796+t10797);+float t10799 = (t10798/t1483);+float t10800 = fract(t10799);+float t10801 = (t10800*t10707);+float t10802 = fract(t10801);+float t10803 = (t10802*2);+float t10804 = (t10803-1);+float t10805 = abs(t10804);+float t10806 = (t10805*t10805);+float t10807 = (t10710*t10806);+float t10808 = (t10709+t10807);+float t10809 = (t10690*float(8.0e-3));+float t10810 = (float(1.0e-3)+t10809);+float t10811 = step(float(0.66),t10704);+float t10812 = (t10811*float(3.0e-3));+float t10813 = (t10810-t10812);+float t10814 = (t10813*float(0.4));+float t10815 = (t10808*t10814);+float t10816 = (3.1415927/2);+float t10817 = (t10734-t10816);+float t10818 = (3.1415927/2);+float t10819 = (t8-t10818);+float t10820 = (t10817-t10819);+float t10821 = abs(t10820);+float t10822 = (t10821/2);+float t10823 = sin(t10822);+float t10824 = (t10823*t10823);+float t10825 = cos(t10819);+float t10826 = cos(t10817);+float t10827 = (t10825*t10826);+float t10828 = (t10751+3.1415927);+float t10829 = (3.1415927*2);+float t10830 = mod(t10828,t10829);+float t10831 = (t10830-3.1415927);+float t10832 = (t118+3.1415927);+float t10833 = (3.1415927*2);+float t10834 = mod(t10832,t10833);+float t10835 = (t10834-3.1415927);+float t10836 = (t10831-t10835);+float t10837 = abs(t10836);+float t10838 = (t10837/2);+float t10839 = sin(t10838);+float t10840 = (t10839*t10839);+float t10841 = (t10827*t10840);+float t10842 = (t10824+t10841);+float t10843 = sqrt(t10842);+float t10844 = asin(t10843);+float t10845 = (2*t10844);+float t10846 = step(t10815,t10845);+float t10847 = (1-t10846);+float t10848 = (t10702*t10847);+float t10849 = (3.1415927/2);+float t10850 = (t8-t10849);+float t10851 = (3.1415927/2);+float t10852 = (t10734-t10851);+float t10853 = (t10850-t10852);+float t10854 = abs(t10853);+float t10855 = (t10854/2);+float t10856 = sin(t10855);+float t10857 = (t10856*t10856);+float t10858 = cos(t10852);+float t10859 = cos(t10850);+float t10860 = (t10858*t10859);+float t10861 = (t118+3.1415927);+float t10862 = (3.1415927*2);+float t10863 = mod(t10861,t10862);+float t10864 = (t10863-3.1415927);+float t10865 = (t10751+3.1415927);+float t10866 = (3.1415927*2);+float t10867 = mod(t10865,t10866);+float t10868 = (t10867-3.1415927);+float t10869 = (t10864-t10868);+float t10870 = abs(t10869);+float t10871 = (t10870/2);+float t10872 = sin(t10871);+float t10873 = (t10872*t10872);+float t10874 = (t10860*t10873);+float t10875 = (t10857+t10874);+float t10876 = sqrt(t10875);+float t10877 = asin(t10876);+float t10878 = (2*t10877);+float t10879 = (1/t10878);+float t10880 = (t10879*t10814);+float t10881 = (t10880*float(1.25e-2));+float t10882 = (u4.u0*t10690);+float t10883 = cos(t10882);+float t10884 = (t10883+1);+float t10885 = (t10884/2);+float t10886 = (t10881*t10885);+float t10887 = (t10886*t10702);+float t10888 = (t10848+t10887);+float t10889 = (t10662+t10888);+float t10890 = (t10000*t9998);+float t10891 = (t10000/245);+float t10892 = (t10891*float(842.378));+float t10893 = fract(t10892);+float t10894 = (t10893+float(45.32));+float t10895 = (t10894+u6.u0);+float t10896 = (t10893*t10895);+float t10897 = (t10234/t10013);+float t10898 = (t10897*float(1734.048));+float t10899 = fract(t10898);+float t10900 = (t10899+float(45.32));+float t10901 = (t10900+u6.u0);+float t10902 = (t10899*t10901);+float t10903 = (t10896+t10902);+float t10904 = (t10893+t10903);+float t10905 = (t10899+t10903);+float t10906 = (t10904*t10905);+float t10907 = fract(t10906);+float t10908 = (t10907*float(2852.02));+float t10909 = fract(t10908);+float t10910 = (t10909-float(0.5));+float t10911 = (t10910*t9998);+float t10912 = (t10911*float(0.75));+float t10913 = (t10890+t10912);+float t10914 = (3.1415927/2);+float t10915 = (t10913-t10914);+float t10916 = (t10000*t9998);+float t10917 = (t10000/245);+float t10918 = (t10917*float(842.378));+float t10919 = fract(t10918);+float t10920 = (t10919+float(45.32));+float t10921 = (t10920+u6.u0);+float t10922 = (t10919*t10921);+float t10923 = (t10016/t10013);+float t10924 = (t10923*float(1734.048));+float t10925 = fract(t10924);+float t10926 = (t10925+float(45.32));+float t10927 = (t10926+u6.u0);+float t10928 = (t10925*t10927);+float t10929 = (t10922+t10928);+float t10930 = (t10919+t10929);+float t10931 = (t10925+t10929);+float t10932 = (t10930*t10931);+float t10933 = fract(t10932);+float t10934 = (t10933*float(2852.02));+float t10935 = fract(t10934);+float t10936 = (t10935-float(0.5));+float t10937 = (t10936*t9998);+float t10938 = (t10937*float(0.75));+float t10939 = (t10916+t10938);+float t10940 = (3.1415927/2);+float t10941 = (t10939-t10940);+float t10942 = (t10915-t10941);+float t10943 = abs(t10942);+float t10944 = (t10943/2);+float t10945 = sin(t10944);+float t10946 = (t10945*t10945);+float t10947 = cos(t10941);+float t10948 = cos(t10915);+float t10949 = (t10947*t10948);+float t10950 = (3.1415927/t10013);+float t10951 = (t10234*t10950);+float t10952 = (t10907*float(97372.83));+float t10953 = fract(t10952);+float t10954 = (t10953-float(0.5));+float t10955 = (3.1415927/t10013);+float t10956 = (t10954*t10955);+float t10957 = (t10956*float(0.75));+float t10958 = (t10951+t10957);+float t10959 = (t10958+3.1415927);+float t10960 = mod(t10959,t1433);+float t10961 = (t10960-3.1415927);+float t10962 = (t10961+3.1415927);+float t10963 = (3.1415927*2);+float t10964 = mod(t10962,t10963);+float t10965 = (t10964-3.1415927);+float t10966 = (3.1415927/t10013);+float t10967 = (t10016*t10966);+float t10968 = (t10933*float(97372.83));+float t10969 = fract(t10968);+float t10970 = (t10969-float(0.5));+float t10971 = (3.1415927/t10013);+float t10972 = (t10970*t10971);+float t10973 = (t10972*float(0.75));+float t10974 = (t10967+t10973);+float t10975 = (t10974+3.1415927);+float t10976 = mod(t10975,t1433);+float t10977 = (t10976-3.1415927);+float t10978 = (t10977+3.1415927);+float t10979 = (3.1415927*2);+float t10980 = mod(t10978,t10979);+float t10981 = (t10980-3.1415927);+float t10982 = (t10965-t10981);+float t10983 = abs(t10982);+float t10984 = (t10983/2);+float t10985 = sin(t10984);+float t10986 = (t10985*t10985);+float t10987 = (t10949*t10986);+float t10988 = (t10946+t10987);+float t10989 = sqrt(t10988);+float t10990 = asin(t10989);+float t10991 = (2*t10990);+float t10992 = (3.1415927/2);+float t10993 = (t8-t10992);+float t10994 = (3.1415927/2);+float t10995 = (t10939-t10994);+float t10996 = (t10993-t10995);+float t10997 = abs(t10996);+float t10998 = (t10997/2);+float t10999 = sin(t10998);+float t11000 = (t10999*t10999);+float t11001 = cos(t10995);+float t11002 = cos(t10993);+float t11003 = (t11001*t11002);+float t11004 = (t118+3.1415927);+float t11005 = (3.1415927*2);+float t11006 = mod(t11004,t11005);+float t11007 = (t11006-3.1415927);+float t11008 = (t10977+3.1415927);+float t11009 = (3.1415927*2);+float t11010 = mod(t11008,t11009);+float t11011 = (t11010-3.1415927);+float t11012 = (t11007-t11011);+float t11013 = abs(t11012);+float t11014 = (t11013/2);+float t11015 = sin(t11014);+float t11016 = (t11015*t11015);+float t11017 = (t11003*t11016);+float t11018 = (t11000+t11017);+float t11019 = sqrt(t11018);+float t11020 = asin(t11019);+float t11021 = (2*t11020);+float t11022 = (t10991-t11021);+float t11023 = (3.1415927/2);+float t11024 = (t8-t11023);+float t11025 = (3.1415927/2);+float t11026 = (t10913-t11025);+float t11027 = (t11024-t11026);+float t11028 = abs(t11027);+float t11029 = (t11028/2);+float t11030 = sin(t11029);+float t11031 = (t11030*t11030);+float t11032 = cos(t11026);+float t11033 = cos(t11024);+float t11034 = (t11032*t11033);+float t11035 = (t118+3.1415927);+float t11036 = (3.1415927*2);+float t11037 = mod(t11035,t11036);+float t11038 = (t11037-3.1415927);+float t11039 = (t10961+3.1415927);+float t11040 = (3.1415927*2);+float t11041 = mod(t11039,t11040);+float t11042 = (t11041-3.1415927);+float t11043 = (t11038-t11042);+float t11044 = abs(t11043);+float t11045 = (t11044/2);+float t11046 = sin(t11045);+float t11047 = (t11046*t11046);+float t11048 = (t11034*t11047);+float t11049 = (t11031+t11048);+float t11050 = sqrt(t11049);+float t11051 = asin(t11050);+float t11052 = (2*t11051);+float t11053 = (t11022-t11052);+float t11054 = abs(t11053);+bool t11055 = (float(1.0e-4)>t11054);+float t11056;+if(t11055){+float t11057 = cos(t10939);+float t11058 = (1*t11057);+float t11059 = sin(t10913);+float t11060 = (1*t11059);+float t11061 = cos(t10961);+float t11062 = (t11060*t11061);+float t11063 = (t11058*t11062);+float t11064 = sin(t10939);+float t11065 = (1*t11064);+float t11066 = cos(t10977);+float t11067 = (t11065*t11066);+float t11068 = cos(t10913);+float t11069 = (1*t11068);+float t11070 = (t11067*t11069);+float t11071 = (t11063-t11070);+float t11072 = sin(t8);+float t11073 = (1*t11072);+float t11074 = sin(t118);+float t11075 = (t11073*t11074);+float t11076 = (t11071*t11075);+float t11077 = sin(t10913);+float t11078 = (1*t11077);+float t11079 = sin(t10961);+float t11080 = (t11078*t11079);+float t11081 = (t11067*t11080);+float t11082 = sin(t10939);+float t11083 = (1*t11082);+float t11084 = sin(t10977);+float t11085 = (t11083*t11084);+float t11086 = (t11085*t11062);+float t11087 = (t11081-t11086);+float t11088 = cos(t8);+float t11089 = (1*t11088);+float t11090 = (t11087*t11089);+float t11091 = (t11076+t11090);+float t11092 = (t11085*t11069);+float t11093 = (t11058*t11080);+float t11094 = (t11092-t11093);+float t11095 = sin(t8);+float t11096 = (1*t11095);+float t11097 = cos(t118);+float t11098 = (t11096*t11097);+float t11099 = (t11094*t11098);+float t11100 = (t11091+t11099);+float t11101 = abs(t11100);+t11056 = t11101;+} else {+float t11102 = (3.1415927/2);+float t11103 = (t8-t11102);+float t11104 = (3.1415927/2);+float t11105 = (t10913-t11104);+float t11106 = (t11103-t11105);+float t11107 = abs(t11106);+float t11108 = (t11107/2);+float t11109 = sin(t11108);+float t11110 = (t11109*t11109);+float t11111 = cos(t11105);+float t11112 = cos(t11103);+float t11113 = (t11111*t11112);+float t11114 = (t118+3.1415927);+float t11115 = (3.1415927*2);+float t11116 = mod(t11114,t11115);+float t11117 = (t11116-3.1415927);+float t11118 = (t10961+3.1415927);+float t11119 = (3.1415927*2);+float t11120 = mod(t11118,t11119);+float t11121 = (t11120-3.1415927);+float t11122 = (t11117-t11121);+float t11123 = abs(t11122);+float t11124 = (t11123/2);+float t11125 = sin(t11124);+float t11126 = (t11125*t11125);+float t11127 = (t11113*t11126);+float t11128 = (t11110+t11127);+float t11129 = sqrt(t11128);+float t11130 = asin(t11129);+float t11131 = (2*t11130);+float t11132 = abs(t11131);+float t11133 = (3.1415927/2);+float t11134 = (t8-t11133);+float t11135 = (3.1415927/2);+float t11136 = (t10939-t11135);+float t11137 = (t11134-t11136);+float t11138 = abs(t11137);+float t11139 = (t11138/2);+float t11140 = sin(t11139);+float t11141 = (t11140*t11140);+float t11142 = cos(t11136);+float t11143 = cos(t11134);+float t11144 = (t11142*t11143);+float t11145 = (t118+3.1415927);+float t11146 = (3.1415927*2);+float t11147 = mod(t11145,t11146);+float t11148 = (t11147-3.1415927);+float t11149 = (t10977+3.1415927);+float t11150 = (3.1415927*2);+float t11151 = mod(t11149,t11150);+float t11152 = (t11151-3.1415927);+float t11153 = (t11148-t11152);+float t11154 = abs(t11153);+float t11155 = (t11154/2);+float t11156 = sin(t11155);+float t11157 = (t11156*t11156);+float t11158 = (t11144*t11157);+float t11159 = (t11141+t11158);+float t11160 = sqrt(t11159);+float t11161 = asin(t11160);+float t11162 = (2*t11161);+float t11163 = abs(t11162);+bool t11164 = (t11132>=t11163);+float t11165;+if(t11164){+t11165 = t11132;+} else {+t11165 = t11163;+}+t11056 = t11165;+}+float t11166 = abs(t11056);+float t11167 = step(float(2.0e-4),t11166);+float t11168 = (1-t11167);+float t11169 = (t10000*t10234);+float t11170 = (t11169*float(842.378));+float t11171 = fract(t11170);+float t11172 = (t11171+float(45.32));+float t11173 = (t11172+u6.u0);+float t11174 = (t11171*t11173);+float t11175 = (t10016*t10000);+float t11176 = (t11175*float(1734.048));+float t11177 = fract(t11176);+float t11178 = (t11177+float(45.32));+float t11179 = (t11178+u6.u0);+float t11180 = (t11177*t11179);+float t11181 = (t11174+t11180);+float t11182 = (t11171+t11181);+float t11183 = (t11177+t11181);+float t11184 = (t11182*t11183);+float t11185 = fract(t11184);+float t11186 = step(float(0.2),t11185);+float t11187 = (t11168*t11186);+float t11188 = (3.1415927/2);+float t11189 = (t10913-t11188);+float t11190 = (3.1415927/2);+float t11191 = (t10939-t11190);+float t11192 = (t11189-t11191);+float t11193 = abs(t11192);+float t11194 = (t11193/2);+float t11195 = sin(t11194);+float t11196 = (t11195*t11195);+float t11197 = cos(t11191);+float t11198 = cos(t11189);+float t11199 = (t11197*t11198);+float t11200 = (t10961+3.1415927);+float t11201 = (3.1415927*2);+float t11202 = mod(t11200,t11201);+float t11203 = (t11202-3.1415927);+float t11204 = (t10977+3.1415927);+float t11205 = (3.1415927*2);+float t11206 = mod(t11204,t11205);+float t11207 = (t11206-3.1415927);+float t11208 = (t11203-t11207);+float t11209 = abs(t11208);+float t11210 = (t11209/2);+float t11211 = sin(t11210);+float t11212 = (t11211*t11211);+float t11213 = (t11199*t11212);+float t11214 = (t11196+t11213);+float t11215 = sqrt(t11214);+float t11216 = asin(t11215);+float t11217 = (2*t11216);+float t11218 = (t11217/t9998);+float t11219 = (1-t11218);+float t11220 = (t10000/245);+float t11221 = (t11220*float(842.378));+float t11222 = fract(t11221);+float t11223 = (t11222+float(45.32));+float t11224 = (t11223+u6.u0);+float t11225 = (t11222*t11224);+float t11226 = (t10016/t10013);+float t11227 = (t11226*float(1734.048));+float t11228 = fract(t11227);+float t11229 = (t11228+float(45.32));+float t11230 = (t11229+u6.u0);+float t11231 = (t11228*t11230);+float t11232 = (t11225+t11231);+float t11233 = (t11222+t11232);+float t11234 = (t11228+t11232);+float t11235 = (t11233*t11234);+float t11236 = fract(t11235);+float t11237 = (t11236*float(8.0e-3));+float t11238 = (float(1.0e-3)+t11237);+float t11239 = (t11236*173);+float t11240 = fract(t11239);+float t11241 = step(float(0.66),t11240);+float t11242 = (t11241*float(3.0e-3));+float t11243 = (t11238-t11242);+float t11244 = (t11243*float(0.4));+float t11245 = (t10000/245);+float t11246 = (t11245*float(842.378));+float t11247 = fract(t11246);+float t11248 = (t11247+float(45.32));+float t11249 = (t11248+u6.u0);+float t11250 = (t11247*t11249);+float t11251 = (t10234/t10013);+float t11252 = (t11251*float(1734.048));+float t11253 = fract(t11252);+float t11254 = (t11253+float(45.32));+float t11255 = (t11254+u6.u0);+float t11256 = (t11253*t11255);+float t11257 = (t11250+t11256);+float t11258 = (t11247+t11257);+float t11259 = (t11253+t11257);+float t11260 = (t11258*t11259);+float t11261 = fract(t11260);+float t11262 = (t11261*float(8.0e-3));+float t11263 = (float(1.0e-3)+t11262);+float t11264 = (t11261*173);+float t11265 = fract(t11264);+float t11266 = step(float(0.66),t11265);+float t11267 = (t11266*float(3.0e-3));+float t11268 = (t11263-t11267);+float t11269 = (t11268*float(0.4));+float t11270 = (t11244-t11269);+float t11271 = abs(t11270);+float t11272 = (t11271-float(1.0e-3));+float t11273 = (t11272/float(8.0e-3));+float t11274 = (1-t11273);+float t11275 = (t11274*t11274);+float t11276 = (t11219*t11275);+float t11277 = (t11187*t11276);+float t11278 = (u4.u0*t11185);+float t11279 = (t11278*3);+float t11280 = sin(t11279);+float t11281 = (t11280+1);+float t11282 = (t11281/2);+float t11283 = (t11282*float(0.66));+float t11284 = (t11283+float(0.33));+float t11285 = (t11277*t11284);+float t11286 = (float(0.2)*t11285);+bool t11287 = (0>=t11286);+float t11288;+if(t11287){+t11288 = 0;+} else {+t11288 = t11286;+}+float t11289 = (t11288*0);+float t11290 = (t10889+t11289);+float t11291 = (t10663*t9998);+float t11292 = (t10663/245);+float t11293 = (t11292*float(842.378));+float t11294 = fract(t11293);+float t11295 = (t11294+float(45.32));+float t11296 = (t11295+u6.u0);+float t11297 = (t11294*t11296);+float t11298 = (t10679/t10676);+float t11299 = (t11298*float(1734.048));+float t11300 = fract(t11299);+float t11301 = (t11300+float(45.32));+float t11302 = (t11301+u6.u0);+float t11303 = (t11300*t11302);+float t11304 = (t11297+t11303);+float t11305 = (t11294+t11304);+float t11306 = (t11300+t11304);+float t11307 = (t11305*t11306);+float t11308 = fract(t11307);+float t11309 = (t11308*float(2852.02));+float t11310 = fract(t11309);+float t11311 = (t11310-float(0.5));+float t11312 = (t11311*t9998);+float t11313 = (t11312*float(0.75));+float t11314 = (t11291+t11313);+float t11315 = (3.1415927/2);+float t11316 = (t11314-t11315);+float t11317 = (t10000*t9998);+float t11318 = (t10000/245);+float t11319 = (t11318*float(842.378));+float t11320 = fract(t11319);+float t11321 = (t11320+float(45.32));+float t11322 = (t11321+u6.u0);+float t11323 = (t11320*t11322);+float t11324 = (t10016/t10013);+float t11325 = (t11324*float(1734.048));+float t11326 = fract(t11325);+float t11327 = (t11326+float(45.32));+float t11328 = (t11327+u6.u0);+float t11329 = (t11326*t11328);+float t11330 = (t11323+t11329);+float t11331 = (t11320+t11330);+float t11332 = (t11326+t11330);+float t11333 = (t11331*t11332);+float t11334 = fract(t11333);+float t11335 = (t11334*float(2852.02));+float t11336 = fract(t11335);+float t11337 = (t11336-float(0.5));+float t11338 = (t11337*t9998);+float t11339 = (t11338*float(0.75));+float t11340 = (t11317+t11339);+float t11341 = (3.1415927/2);+float t11342 = (t11340-t11341);+float t11343 = (t11316-t11342);+float t11344 = abs(t11343);+float t11345 = (t11344/2);+float t11346 = sin(t11345);+float t11347 = (t11346*t11346);+float t11348 = cos(t11342);+float t11349 = cos(t11316);+float t11350 = (t11348*t11349);+float t11351 = (3.1415927/t10676);+float t11352 = (t10679*t11351);+float t11353 = (t11308*float(97372.83));+float t11354 = fract(t11353);+float t11355 = (t11354-float(0.5));+float t11356 = (3.1415927/t10676);+float t11357 = (t11355*t11356);+float t11358 = (t11357*float(0.75));+float t11359 = (t11352+t11358);+float t11360 = (t11359+3.1415927);+float t11361 = mod(t11360,t1433);+float t11362 = (t11361-3.1415927);+float t11363 = (t11362+3.1415927);+float t11364 = (3.1415927*2);+float t11365 = mod(t11363,t11364);+float t11366 = (t11365-3.1415927);+float t11367 = (3.1415927/t10013);+float t11368 = (t10016*t11367);+float t11369 = (t11334*float(97372.83));+float t11370 = fract(t11369);+float t11371 = (t11370-float(0.5));+float t11372 = (3.1415927/t10013);+float t11373 = (t11371*t11372);+float t11374 = (t11373*float(0.75));+float t11375 = (t11368+t11374);+float t11376 = (t11375+3.1415927);+float t11377 = mod(t11376,t1433);+float t11378 = (t11377-3.1415927);+float t11379 = (t11378+3.1415927);+float t11380 = (3.1415927*2);+float t11381 = mod(t11379,t11380);+float t11382 = (t11381-3.1415927);+float t11383 = (t11366-t11382);+float t11384 = abs(t11383);+float t11385 = (t11384/2);+float t11386 = sin(t11385);+float t11387 = (t11386*t11386);+float t11388 = (t11350*t11387);+float t11389 = (t11347+t11388);+float t11390 = sqrt(t11389);+float t11391 = asin(t11390);+float t11392 = (2*t11391);+float t11393 = (3.1415927/2);+float t11394 = (t8-t11393);+float t11395 = (3.1415927/2);+float t11396 = (t11340-t11395);+float t11397 = (t11394-t11396);+float t11398 = abs(t11397);+float t11399 = (t11398/2);+float t11400 = sin(t11399);+float t11401 = (t11400*t11400);+float t11402 = cos(t11396);+float t11403 = cos(t11394);+float t11404 = (t11402*t11403);+float t11405 = (t118+3.1415927);+float t11406 = (3.1415927*2);+float t11407 = mod(t11405,t11406);+float t11408 = (t11407-3.1415927);+float t11409 = (t11378+3.1415927);+float t11410 = (3.1415927*2);+float t11411 = mod(t11409,t11410);+float t11412 = (t11411-3.1415927);+float t11413 = (t11408-t11412);+float t11414 = abs(t11413);+float t11415 = (t11414/2);+float t11416 = sin(t11415);+float t11417 = (t11416*t11416);+float t11418 = (t11404*t11417);+float t11419 = (t11401+t11418);+float t11420 = sqrt(t11419);+float t11421 = asin(t11420);+float t11422 = (2*t11421);+float t11423 = (t11392-t11422);+float t11424 = (3.1415927/2);+float t11425 = (t8-t11424);+float t11426 = (3.1415927/2);+float t11427 = (t11314-t11426);+float t11428 = (t11425-t11427);+float t11429 = abs(t11428);+float t11430 = (t11429/2);+float t11431 = sin(t11430);+float t11432 = (t11431*t11431);+float t11433 = cos(t11427);+float t11434 = cos(t11425);+float t11435 = (t11433*t11434);+float t11436 = (t118+3.1415927);+float t11437 = (3.1415927*2);+float t11438 = mod(t11436,t11437);+float t11439 = (t11438-3.1415927);+float t11440 = (t11362+3.1415927);+float t11441 = (3.1415927*2);+float t11442 = mod(t11440,t11441);+float t11443 = (t11442-3.1415927);+float t11444 = (t11439-t11443);+float t11445 = abs(t11444);+float t11446 = (t11445/2);+float t11447 = sin(t11446);+float t11448 = (t11447*t11447);+float t11449 = (t11435*t11448);+float t11450 = (t11432+t11449);+float t11451 = sqrt(t11450);+float t11452 = asin(t11451);+float t11453 = (2*t11452);+float t11454 = (t11423-t11453);+float t11455 = abs(t11454);+bool t11456 = (float(1.0e-4)>t11455);+float t11457;+if(t11456){+float t11458 = cos(t11340);+float t11459 = (1*t11458);+float t11460 = sin(t11314);+float t11461 = (1*t11460);+float t11462 = cos(t11362);+float t11463 = (t11461*t11462);+float t11464 = (t11459*t11463);+float t11465 = sin(t11340);+float t11466 = (1*t11465);+float t11467 = cos(t11378);+float t11468 = (t11466*t11467);+float t11469 = cos(t11314);+float t11470 = (1*t11469);+float t11471 = (t11468*t11470);+float t11472 = (t11464-t11471);+float t11473 = sin(t8);+float t11474 = (1*t11473);+float t11475 = sin(t118);+float t11476 = (t11474*t11475);+float t11477 = (t11472*t11476);+float t11478 = sin(t11314);+float t11479 = (1*t11478);+float t11480 = sin(t11362);+float t11481 = (t11479*t11480);+float t11482 = (t11468*t11481);+float t11483 = sin(t11340);+float t11484 = (1*t11483);+float t11485 = sin(t11378);+float t11486 = (t11484*t11485);+float t11487 = (t11486*t11463);+float t11488 = (t11482-t11487);+float t11489 = cos(t8);+float t11490 = (1*t11489);+float t11491 = (t11488*t11490);+float t11492 = (t11477+t11491);+float t11493 = (t11486*t11470);+float t11494 = (t11459*t11481);+float t11495 = (t11493-t11494);+float t11496 = sin(t8);+float t11497 = (1*t11496);+float t11498 = cos(t118);+float t11499 = (t11497*t11498);+float t11500 = (t11495*t11499);+float t11501 = (t11492+t11500);+float t11502 = abs(t11501);+t11457 = t11502;+} else {+float t11503 = (3.1415927/2);+float t11504 = (t8-t11503);+float t11505 = (3.1415927/2);+float t11506 = (t11314-t11505);+float t11507 = (t11504-t11506);+float t11508 = abs(t11507);+float t11509 = (t11508/2);+float t11510 = sin(t11509);+float t11511 = (t11510*t11510);+float t11512 = cos(t11506);+float t11513 = cos(t11504);+float t11514 = (t11512*t11513);+float t11515 = (t118+3.1415927);+float t11516 = (3.1415927*2);+float t11517 = mod(t11515,t11516);+float t11518 = (t11517-3.1415927);+float t11519 = (t11362+3.1415927);+float t11520 = (3.1415927*2);+float t11521 = mod(t11519,t11520);+float t11522 = (t11521-3.1415927);+float t11523 = (t11518-t11522);+float t11524 = abs(t11523);+float t11525 = (t11524/2);+float t11526 = sin(t11525);+float t11527 = (t11526*t11526);+float t11528 = (t11514*t11527);+float t11529 = (t11511+t11528);+float t11530 = sqrt(t11529);+float t11531 = asin(t11530);+float t11532 = (2*t11531);+float t11533 = abs(t11532);+float t11534 = (3.1415927/2);+float t11535 = (t8-t11534);+float t11536 = (3.1415927/2);+float t11537 = (t11340-t11536);+float t11538 = (t11535-t11537);+float t11539 = abs(t11538);+float t11540 = (t11539/2);+float t11541 = sin(t11540);+float t11542 = (t11541*t11541);+float t11543 = cos(t11537);+float t11544 = cos(t11535);+float t11545 = (t11543*t11544);+float t11546 = (t118+3.1415927);+float t11547 = (3.1415927*2);+float t11548 = mod(t11546,t11547);+float t11549 = (t11548-3.1415927);+float t11550 = (t11378+3.1415927);+float t11551 = (3.1415927*2);+float t11552 = mod(t11550,t11551);+float t11553 = (t11552-3.1415927);+float t11554 = (t11549-t11553);+float t11555 = abs(t11554);+float t11556 = (t11555/2);+float t11557 = sin(t11556);+float t11558 = (t11557*t11557);+float t11559 = (t11545*t11558);+float t11560 = (t11542+t11559);+float t11561 = sqrt(t11560);+float t11562 = asin(t11561);+float t11563 = (2*t11562);+float t11564 = abs(t11563);+bool t11565 = (t11533>=t11564);+float t11566;+if(t11565){+t11566 = t11533;+} else {+t11566 = t11564;+}+t11457 = t11566;+}+float t11567 = abs(t11457);+float t11568 = step(float(2.0e-4),t11567);+float t11569 = (1-t11568);+float t11570 = (t10000*t10679);+float t11571 = (t11570*float(842.378));+float t11572 = fract(t11571);+float t11573 = (t11572+float(45.32));+float t11574 = (t11573+u6.u0);+float t11575 = (t11572*t11574);+float t11576 = (t10016*t10663);+float t11577 = (t11576*float(1734.048));+float t11578 = fract(t11577);+float t11579 = (t11578+float(45.32));+float t11580 = (t11579+u6.u0);+float t11581 = (t11578*t11580);+float t11582 = (t11575+t11581);+float t11583 = (t11572+t11582);+float t11584 = (t11578+t11582);+float t11585 = (t11583*t11584);+float t11586 = fract(t11585);+float t11587 = step(float(0.2),t11586);+float t11588 = (t11569*t11587);+float t11589 = (3.1415927/2);+float t11590 = (t11314-t11589);+float t11591 = (3.1415927/2);+float t11592 = (t11340-t11591);+float t11593 = (t11590-t11592);+float t11594 = abs(t11593);+float t11595 = (t11594/2);+float t11596 = sin(t11595);+float t11597 = (t11596*t11596);+float t11598 = cos(t11592);+float t11599 = cos(t11590);+float t11600 = (t11598*t11599);+float t11601 = (t11362+3.1415927);+float t11602 = (3.1415927*2);+float t11603 = mod(t11601,t11602);+float t11604 = (t11603-3.1415927);+float t11605 = (t11378+3.1415927);+float t11606 = (3.1415927*2);+float t11607 = mod(t11605,t11606);+float t11608 = (t11607-3.1415927);+float t11609 = (t11604-t11608);+float t11610 = abs(t11609);+float t11611 = (t11610/2);+float t11612 = sin(t11611);+float t11613 = (t11612*t11612);+float t11614 = (t11600*t11613);+float t11615 = (t11597+t11614);+float t11616 = sqrt(t11615);+float t11617 = asin(t11616);+float t11618 = (2*t11617);+float t11619 = (t11618/t9998);+float t11620 = (1-t11619);+float t11621 = (t10000/245);+float t11622 = (t11621*float(842.378));+float t11623 = fract(t11622);+float t11624 = (t11623+float(45.32));+float t11625 = (t11624+u6.u0);+float t11626 = (t11623*t11625);+float t11627 = (t10016/t10013);+float t11628 = (t11627*float(1734.048));+float t11629 = fract(t11628);+float t11630 = (t11629+float(45.32));+float t11631 = (t11630+u6.u0);+float t11632 = (t11629*t11631);+float t11633 = (t11626+t11632);+float t11634 = (t11623+t11633);+float t11635 = (t11629+t11633);+float t11636 = (t11634*t11635);+float t11637 = fract(t11636);+float t11638 = (t11637*float(8.0e-3));+float t11639 = (float(1.0e-3)+t11638);+float t11640 = (t11637*173);+float t11641 = fract(t11640);+float t11642 = step(float(0.66),t11641);+float t11643 = (t11642*float(3.0e-3));+float t11644 = (t11639-t11643);+float t11645 = (t11644*float(0.4));+float t11646 = (t10663/245);+float t11647 = (t11646*float(842.378));+float t11648 = fract(t11647);+float t11649 = (t11648+float(45.32));+float t11650 = (t11649+u6.u0);+float t11651 = (t11648*t11650);+float t11652 = (t10679/t10676);+float t11653 = (t11652*float(1734.048));+float t11654 = fract(t11653);+float t11655 = (t11654+float(45.32));+float t11656 = (t11655+u6.u0);+float t11657 = (t11654*t11656);+float t11658 = (t11651+t11657);+float t11659 = (t11648+t11658);+float t11660 = (t11654+t11658);+float t11661 = (t11659*t11660);+float t11662 = fract(t11661);+float t11663 = (t11662*float(8.0e-3));+float t11664 = (float(1.0e-3)+t11663);+float t11665 = (t11662*173);+float t11666 = fract(t11665);+float t11667 = step(float(0.66),t11666);+float t11668 = (t11667*float(3.0e-3));+float t11669 = (t11664-t11668);+float t11670 = (t11669*float(0.4));+float t11671 = (t11645-t11670);+float t11672 = abs(t11671);+float t11673 = (t11672-float(1.0e-3));+float t11674 = (t11673/float(8.0e-3));+float t11675 = (1-t11674);+float t11676 = (t11675*t11675);+float t11677 = (t11620*t11676);+float t11678 = (t11588*t11677);+float t11679 = (u4.u0*t11586);+float t11680 = (t11679*3);+float t11681 = sin(t11680);+float t11682 = (t11681+1);+float t11683 = (t11682/2);+float t11684 = (t11683*float(0.66));+float t11685 = (t11684+float(0.33));+float t11686 = (t11678*t11685);+float t11687 = (float(0.2)*t11686);+bool t11688 = (0>=t11687);+float t11689;+if(t11688){+t11689 = 0;+} else {+t11689 = t11687;+}+float t11690 = (t11689*0);+float t11691 = (t11290+t11690);+float t11692 = (t10663*t9998);+float t11693 = (t10663/245);+float t11694 = (t11693*float(842.378));+float t11695 = fract(t11694);+float t11696 = (t11695+float(45.32));+float t11697 = (t11696+u6.u0);+float t11698 = (t11695*t11697);+float t11699 = (t10679+1);+float t11700 = (t11699/t10676);+float t11701 = (t11700*float(1734.048));+float t11702 = fract(t11701);+float t11703 = (t11702+float(45.32));+float t11704 = (t11703+u6.u0);+float t11705 = (t11702*t11704);+float t11706 = (t11698+t11705);+float t11707 = (t11695+t11706);+float t11708 = (t11702+t11706);+float t11709 = (t11707*t11708);+float t11710 = fract(t11709);+float t11711 = (t11710*float(2852.02));+float t11712 = fract(t11711);+float t11713 = (t11712-float(0.5));+float t11714 = (t11713*t9998);+float t11715 = (t11714*float(0.75));+float t11716 = (t11692+t11715);+float t11717 = (3.1415927/2);+float t11718 = (t11716-t11717);+float t11719 = (t10663*t9998);+float t11720 = (t10663/245);+float t11721 = (t11720*float(842.378));+float t11722 = fract(t11721);+float t11723 = (t11722+float(45.32));+float t11724 = (t11723+u6.u0);+float t11725 = (t11722*t11724);+float t11726 = (t10679/t10676);+float t11727 = (t11726*float(1734.048));+float t11728 = fract(t11727);+float t11729 = (t11728+float(45.32));+float t11730 = (t11729+u6.u0);+float t11731 = (t11728*t11730);+float t11732 = (t11725+t11731);+float t11733 = (t11722+t11732);+float t11734 = (t11728+t11732);+float t11735 = (t11733*t11734);+float t11736 = fract(t11735);+float t11737 = (t11736*float(2852.02));+float t11738 = fract(t11737);+float t11739 = (t11738-float(0.5));+float t11740 = (t11739*t9998);+float t11741 = (t11740*float(0.75));+float t11742 = (t11719+t11741);+float t11743 = (3.1415927/2);+float t11744 = (t11742-t11743);+float t11745 = (t11718-t11744);+float t11746 = abs(t11745);+float t11747 = (t11746/2);+float t11748 = sin(t11747);+float t11749 = (t11748*t11748);+float t11750 = cos(t11744);+float t11751 = cos(t11718);+float t11752 = (t11750*t11751);+float t11753 = (3.1415927/t10676);+float t11754 = (t11699*t11753);+float t11755 = (t11710*float(97372.83));+float t11756 = fract(t11755);+float t11757 = (t11756-float(0.5));+float t11758 = (3.1415927/t10676);+float t11759 = (t11757*t11758);+float t11760 = (t11759*float(0.75));+float t11761 = (t11754+t11760);+float t11762 = (t11761+3.1415927);+float t11763 = mod(t11762,t1433);+float t11764 = (t11763-3.1415927);+float t11765 = (t11764+3.1415927);+float t11766 = (3.1415927*2);+float t11767 = mod(t11765,t11766);+float t11768 = (t11767-3.1415927);+float t11769 = (3.1415927/t10676);+float t11770 = (t10679*t11769);+float t11771 = (t11736*float(97372.83));+float t11772 = fract(t11771);+float t11773 = (t11772-float(0.5));+float t11774 = (3.1415927/t10676);+float t11775 = (t11773*t11774);+float t11776 = (t11775*float(0.75));+float t11777 = (t11770+t11776);+float t11778 = (t11777+3.1415927);+float t11779 = mod(t11778,t1433);+float t11780 = (t11779-3.1415927);+float t11781 = (t11780+3.1415927);+float t11782 = (3.1415927*2);+float t11783 = mod(t11781,t11782);+float t11784 = (t11783-3.1415927);+float t11785 = (t11768-t11784);+float t11786 = abs(t11785);+float t11787 = (t11786/2);+float t11788 = sin(t11787);+float t11789 = (t11788*t11788);+float t11790 = (t11752*t11789);+float t11791 = (t11749+t11790);+float t11792 = sqrt(t11791);+float t11793 = asin(t11792);+float t11794 = (2*t11793);+float t11795 = (3.1415927/2);+float t11796 = (t8-t11795);+float t11797 = (3.1415927/2);+float t11798 = (t11742-t11797);+float t11799 = (t11796-t11798);+float t11800 = abs(t11799);+float t11801 = (t11800/2);+float t11802 = sin(t11801);+float t11803 = (t11802*t11802);+float t11804 = cos(t11798);+float t11805 = cos(t11796);+float t11806 = (t11804*t11805);+float t11807 = (t118+3.1415927);+float t11808 = (3.1415927*2);+float t11809 = mod(t11807,t11808);+float t11810 = (t11809-3.1415927);+float t11811 = (t11780+3.1415927);+float t11812 = (3.1415927*2);+float t11813 = mod(t11811,t11812);+float t11814 = (t11813-3.1415927);+float t11815 = (t11810-t11814);+float t11816 = abs(t11815);+float t11817 = (t11816/2);+float t11818 = sin(t11817);+float t11819 = (t11818*t11818);+float t11820 = (t11806*t11819);+float t11821 = (t11803+t11820);+float t11822 = sqrt(t11821);+float t11823 = asin(t11822);+float t11824 = (2*t11823);+float t11825 = (t11794-t11824);+float t11826 = (3.1415927/2);+float t11827 = (t8-t11826);+float t11828 = (3.1415927/2);+float t11829 = (t11716-t11828);+float t11830 = (t11827-t11829);+float t11831 = abs(t11830);+float t11832 = (t11831/2);+float t11833 = sin(t11832);+float t11834 = (t11833*t11833);+float t11835 = cos(t11829);+float t11836 = cos(t11827);+float t11837 = (t11835*t11836);+float t11838 = (t118+3.1415927);+float t11839 = (3.1415927*2);+float t11840 = mod(t11838,t11839);+float t11841 = (t11840-3.1415927);+float t11842 = (t11764+3.1415927);+float t11843 = (3.1415927*2);+float t11844 = mod(t11842,t11843);+float t11845 = (t11844-3.1415927);+float t11846 = (t11841-t11845);+float t11847 = abs(t11846);+float t11848 = (t11847/2);+float t11849 = sin(t11848);+float t11850 = (t11849*t11849);+float t11851 = (t11837*t11850);+float t11852 = (t11834+t11851);+float t11853 = sqrt(t11852);+float t11854 = asin(t11853);+float t11855 = (2*t11854);+float t11856 = (t11825-t11855);+float t11857 = abs(t11856);+bool t11858 = (float(1.0e-4)>t11857);+float t11859;+if(t11858){+float t11860 = cos(t11742);+float t11861 = (1*t11860);+float t11862 = sin(t11716);+float t11863 = (1*t11862);+float t11864 = cos(t11764);+float t11865 = (t11863*t11864);+float t11866 = (t11861*t11865);+float t11867 = sin(t11742);+float t11868 = (1*t11867);+float t11869 = cos(t11780);+float t11870 = (t11868*t11869);+float t11871 = cos(t11716);+float t11872 = (1*t11871);+float t11873 = (t11870*t11872);+float t11874 = (t11866-t11873);+float t11875 = sin(t8);+float t11876 = (1*t11875);+float t11877 = sin(t118);+float t11878 = (t11876*t11877);+float t11879 = (t11874*t11878);+float t11880 = sin(t11716);+float t11881 = (1*t11880);+float t11882 = sin(t11764);+float t11883 = (t11881*t11882);+float t11884 = (t11870*t11883);+float t11885 = sin(t11742);+float t11886 = (1*t11885);+float t11887 = sin(t11780);+float t11888 = (t11886*t11887);+float t11889 = (t11888*t11865);+float t11890 = (t11884-t11889);+float t11891 = cos(t8);+float t11892 = (1*t11891);+float t11893 = (t11890*t11892);+float t11894 = (t11879+t11893);+float t11895 = (t11888*t11872);+float t11896 = (t11861*t11883);+float t11897 = (t11895-t11896);+float t11898 = sin(t8);+float t11899 = (1*t11898);+float t11900 = cos(t118);+float t11901 = (t11899*t11900);+float t11902 = (t11897*t11901);+float t11903 = (t11894+t11902);+float t11904 = abs(t11903);+t11859 = t11904;+} else {+float t11905 = (3.1415927/2);+float t11906 = (t8-t11905);+float t11907 = (3.1415927/2);+float t11908 = (t11716-t11907);+float t11909 = (t11906-t11908);+float t11910 = abs(t11909);+float t11911 = (t11910/2);+float t11912 = sin(t11911);+float t11913 = (t11912*t11912);+float t11914 = cos(t11908);+float t11915 = cos(t11906);+float t11916 = (t11914*t11915);+float t11917 = (t118+3.1415927);+float t11918 = (3.1415927*2);+float t11919 = mod(t11917,t11918);+float t11920 = (t11919-3.1415927);+float t11921 = (t11764+3.1415927);+float t11922 = (3.1415927*2);+float t11923 = mod(t11921,t11922);+float t11924 = (t11923-3.1415927);+float t11925 = (t11920-t11924);+float t11926 = abs(t11925);+float t11927 = (t11926/2);+float t11928 = sin(t11927);+float t11929 = (t11928*t11928);+float t11930 = (t11916*t11929);+float t11931 = (t11913+t11930);+float t11932 = sqrt(t11931);+float t11933 = asin(t11932);+float t11934 = (2*t11933);+float t11935 = abs(t11934);+float t11936 = (3.1415927/2);+float t11937 = (t8-t11936);+float t11938 = (3.1415927/2);+float t11939 = (t11742-t11938);+float t11940 = (t11937-t11939);+float t11941 = abs(t11940);+float t11942 = (t11941/2);+float t11943 = sin(t11942);+float t11944 = (t11943*t11943);+float t11945 = cos(t11939);+float t11946 = cos(t11937);+float t11947 = (t11945*t11946);+float t11948 = (t118+3.1415927);+float t11949 = (3.1415927*2);+float t11950 = mod(t11948,t11949);+float t11951 = (t11950-3.1415927);+float t11952 = (t11780+3.1415927);+float t11953 = (3.1415927*2);+float t11954 = mod(t11952,t11953);+float t11955 = (t11954-3.1415927);+float t11956 = (t11951-t11955);+float t11957 = abs(t11956);+float t11958 = (t11957/2);+float t11959 = sin(t11958);+float t11960 = (t11959*t11959);+float t11961 = (t11947*t11960);+float t11962 = (t11944+t11961);+float t11963 = sqrt(t11962);+float t11964 = asin(t11963);+float t11965 = (2*t11964);+float t11966 = abs(t11965);+bool t11967 = (t11935>=t11966);+float t11968;+if(t11967){+t11968 = t11935;+} else {+t11968 = t11966;+}+t11859 = t11968;+}+float t11969 = abs(t11859);+float t11970 = step(float(2.0e-4),t11969);+float t11971 = (1-t11970);+float t11972 = (t10663*t11699);+float t11973 = (t11972*float(842.378));+float t11974 = fract(t11973);+float t11975 = (t11974+float(45.32));+float t11976 = (t11975+u6.u0);+float t11977 = (t11974*t11976);+float t11978 = (t10679*t10663);+float t11979 = (t11978*float(1734.048));+float t11980 = fract(t11979);+float t11981 = (t11980+float(45.32));+float t11982 = (t11981+u6.u0);+float t11983 = (t11980*t11982);+float t11984 = (t11977+t11983);+float t11985 = (t11974+t11984);+float t11986 = (t11980+t11984);+float t11987 = (t11985*t11986);+float t11988 = fract(t11987);+float t11989 = step(float(0.2),t11988);+float t11990 = (t11971*t11989);+float t11991 = (3.1415927/2);+float t11992 = (t11716-t11991);+float t11993 = (3.1415927/2);+float t11994 = (t11742-t11993);+float t11995 = (t11992-t11994);+float t11996 = abs(t11995);+float t11997 = (t11996/2);+float t11998 = sin(t11997);+float t11999 = (t11998*t11998);+float t12000 = cos(t11994);+float t12001 = cos(t11992);+float t12002 = (t12000*t12001);+float t12003 = (t11764+3.1415927);+float t12004 = (3.1415927*2);+float t12005 = mod(t12003,t12004);+float t12006 = (t12005-3.1415927);+float t12007 = (t11780+3.1415927);+float t12008 = (3.1415927*2);+float t12009 = mod(t12007,t12008);+float t12010 = (t12009-3.1415927);+float t12011 = (t12006-t12010);+float t12012 = abs(t12011);+float t12013 = (t12012/2);+float t12014 = sin(t12013);+float t12015 = (t12014*t12014);+float t12016 = (t12002*t12015);+float t12017 = (t11999+t12016);+float t12018 = sqrt(t12017);+float t12019 = asin(t12018);+float t12020 = (2*t12019);+float t12021 = (t12020/t9998);+float t12022 = (1-t12021);+float t12023 = (t10663/245);+float t12024 = (t12023*float(842.378));+float t12025 = fract(t12024);+float t12026 = (t12025+float(45.32));+float t12027 = (t12026+u6.u0);+float t12028 = (t12025*t12027);+float t12029 = (t10679/t10676);+float t12030 = (t12029*float(1734.048));+float t12031 = fract(t12030);+float t12032 = (t12031+float(45.32));+float t12033 = (t12032+u6.u0);+float t12034 = (t12031*t12033);+float t12035 = (t12028+t12034);+float t12036 = (t12025+t12035);+float t12037 = (t12031+t12035);+float t12038 = (t12036*t12037);+float t12039 = fract(t12038);+float t12040 = (t12039*float(8.0e-3));+float t12041 = (float(1.0e-3)+t12040);+float t12042 = (t12039*173);+float t12043 = fract(t12042);+float t12044 = step(float(0.66),t12043);+float t12045 = (t12044*float(3.0e-3));+float t12046 = (t12041-t12045);+float t12047 = (t12046*float(0.4));+float t12048 = (t10663/245);+float t12049 = (t12048*float(842.378));+float t12050 = fract(t12049);+float t12051 = (t12050+float(45.32));+float t12052 = (t12051+u6.u0);+float t12053 = (t12050*t12052);+float t12054 = (t11699/t10676);+float t12055 = (t12054*float(1734.048));+float t12056 = fract(t12055);+float t12057 = (t12056+float(45.32));+float t12058 = (t12057+u6.u0);+float t12059 = (t12056*t12058);+float t12060 = (t12053+t12059);+float t12061 = (t12050+t12060);+float t12062 = (t12056+t12060);+float t12063 = (t12061*t12062);+float t12064 = fract(t12063);+float t12065 = (t12064*float(8.0e-3));+float t12066 = (float(1.0e-3)+t12065);+float t12067 = (t12064*173);+float t12068 = fract(t12067);+float t12069 = step(float(0.66),t12068);+float t12070 = (t12069*float(3.0e-3));+float t12071 = (t12066-t12070);+float t12072 = (t12071*float(0.4));+float t12073 = (t12047-t12072);+float t12074 = abs(t12073);+float t12075 = (t12074-float(1.0e-3));+float t12076 = (t12075/float(8.0e-3));+float t12077 = (1-t12076);+float t12078 = (t12077*t12077);+float t12079 = (t12022*t12078);+float t12080 = (t11990*t12079);+float t12081 = (u4.u0*t11988);+float t12082 = (t12081*3);+float t12083 = sin(t12082);+float t12084 = (t12083+1);+float t12085 = (t12084/2);+float t12086 = (t12085*float(0.66));+float t12087 = (t12086+float(0.33));+float t12088 = (t12080*t12087);+float t12089 = (float(0.2)*t12088);+bool t12090 = (0>=t12089);+float t12091;+if(t12090){+t12091 = 0;+} else {+t12091 = t12089;+}+float t12092 = (t12091*0);+float t12093 = (t11691+t12092);+float t12094 = (t10663*t9998);+float t12095 = (t10663/245);+float t12096 = (t12095*float(842.378));+float t12097 = fract(t12096);+float t12098 = (t12097+float(45.32));+float t12099 = (t12098+u6.u0);+float t12100 = (t12097*t12099);+float t12101 = (t11699/t10676);+float t12102 = (t12101*float(1734.048));+float t12103 = fract(t12102);+float t12104 = (t12103+float(45.32));+float t12105 = (t12104+u6.u0);+float t12106 = (t12103*t12105);+float t12107 = (t12100+t12106);+float t12108 = (t12097+t12107);+float t12109 = (t12103+t12107);+float t12110 = (t12108*t12109);+float t12111 = fract(t12110);+float t12112 = (t12111*float(2852.02));+float t12113 = fract(t12112);+float t12114 = (t12113-float(0.5));+float t12115 = (t12114*t9998);+float t12116 = (t12115*float(0.75));+float t12117 = (t12094+t12116);+float t12118 = (3.1415927/2);+float t12119 = (t12117-t12118);+float t12120 = (t10000*t9998);+float t12121 = (t10000/245);+float t12122 = (t12121*float(842.378));+float t12123 = fract(t12122);+float t12124 = (t12123+float(45.32));+float t12125 = (t12124+u6.u0);+float t12126 = (t12123*t12125);+float t12127 = (t10234/t10013);+float t12128 = (t12127*float(1734.048));+float t12129 = fract(t12128);+float t12130 = (t12129+float(45.32));+float t12131 = (t12130+u6.u0);+float t12132 = (t12129*t12131);+float t12133 = (t12126+t12132);+float t12134 = (t12123+t12133);+float t12135 = (t12129+t12133);+float t12136 = (t12134*t12135);+float t12137 = fract(t12136);+float t12138 = (t12137*float(2852.02));+float t12139 = fract(t12138);+float t12140 = (t12139-float(0.5));+float t12141 = (t12140*t9998);+float t12142 = (t12141*float(0.75));+float t12143 = (t12120+t12142);+float t12144 = (3.1415927/2);+float t12145 = (t12143-t12144);+float t12146 = (t12119-t12145);+float t12147 = abs(t12146);+float t12148 = (t12147/2);+float t12149 = sin(t12148);+float t12150 = (t12149*t12149);+float t12151 = cos(t12145);+float t12152 = cos(t12119);+float t12153 = (t12151*t12152);+float t12154 = (3.1415927/t10676);+float t12155 = (t11699*t12154);+float t12156 = (t12111*float(97372.83));+float t12157 = fract(t12156);+float t12158 = (t12157-float(0.5));+float t12159 = (3.1415927/t10676);+float t12160 = (t12158*t12159);+float t12161 = (t12160*float(0.75));+float t12162 = (t12155+t12161);+float t12163 = (t12162+3.1415927);+float t12164 = mod(t12163,t1433);+float t12165 = (t12164-3.1415927);+float t12166 = (t12165+3.1415927);+float t12167 = (3.1415927*2);+float t12168 = mod(t12166,t12167);+float t12169 = (t12168-3.1415927);+float t12170 = (3.1415927/t10013);+float t12171 = (t10234*t12170);+float t12172 = (t12137*float(97372.83));+float t12173 = fract(t12172);+float t12174 = (t12173-float(0.5));+float t12175 = (3.1415927/t10013);+float t12176 = (t12174*t12175);+float t12177 = (t12176*float(0.75));+float t12178 = (t12171+t12177);+float t12179 = (t12178+3.1415927);+float t12180 = mod(t12179,t1433);+float t12181 = (t12180-3.1415927);+float t12182 = (t12181+3.1415927);+float t12183 = (3.1415927*2);+float t12184 = mod(t12182,t12183);+float t12185 = (t12184-3.1415927);+float t12186 = (t12169-t12185);+float t12187 = abs(t12186);+float t12188 = (t12187/2);+float t12189 = sin(t12188);+float t12190 = (t12189*t12189);+float t12191 = (t12153*t12190);+float t12192 = (t12150+t12191);+float t12193 = sqrt(t12192);+float t12194 = asin(t12193);+float t12195 = (2*t12194);+float t12196 = (3.1415927/2);+float t12197 = (t8-t12196);+float t12198 = (3.1415927/2);+float t12199 = (t12143-t12198);+float t12200 = (t12197-t12199);+float t12201 = abs(t12200);+float t12202 = (t12201/2);+float t12203 = sin(t12202);+float t12204 = (t12203*t12203);+float t12205 = cos(t12199);+float t12206 = cos(t12197);+float t12207 = (t12205*t12206);+float t12208 = (t118+3.1415927);+float t12209 = (3.1415927*2);+float t12210 = mod(t12208,t12209);+float t12211 = (t12210-3.1415927);+float t12212 = (t12181+3.1415927);+float t12213 = (3.1415927*2);+float t12214 = mod(t12212,t12213);+float t12215 = (t12214-3.1415927);+float t12216 = (t12211-t12215);+float t12217 = abs(t12216);+float t12218 = (t12217/2);+float t12219 = sin(t12218);+float t12220 = (t12219*t12219);+float t12221 = (t12207*t12220);+float t12222 = (t12204+t12221);+float t12223 = sqrt(t12222);+float t12224 = asin(t12223);+float t12225 = (2*t12224);+float t12226 = (t12195-t12225);+float t12227 = (3.1415927/2);+float t12228 = (t8-t12227);+float t12229 = (3.1415927/2);+float t12230 = (t12117-t12229);+float t12231 = (t12228-t12230);+float t12232 = abs(t12231);+float t12233 = (t12232/2);+float t12234 = sin(t12233);+float t12235 = (t12234*t12234);+float t12236 = cos(t12230);+float t12237 = cos(t12228);+float t12238 = (t12236*t12237);+float t12239 = (t118+3.1415927);+float t12240 = (3.1415927*2);+float t12241 = mod(t12239,t12240);+float t12242 = (t12241-3.1415927);+float t12243 = (t12165+3.1415927);+float t12244 = (3.1415927*2);+float t12245 = mod(t12243,t12244);+float t12246 = (t12245-3.1415927);+float t12247 = (t12242-t12246);+float t12248 = abs(t12247);+float t12249 = (t12248/2);+float t12250 = sin(t12249);+float t12251 = (t12250*t12250);+float t12252 = (t12238*t12251);+float t12253 = (t12235+t12252);+float t12254 = sqrt(t12253);+float t12255 = asin(t12254);+float t12256 = (2*t12255);+float t12257 = (t12226-t12256);+float t12258 = abs(t12257);+bool t12259 = (float(1.0e-4)>t12258);+float t12260;+if(t12259){+float t12261 = cos(t12143);+float t12262 = (1*t12261);+float t12263 = sin(t12117);+float t12264 = (1*t12263);+float t12265 = cos(t12165);+float t12266 = (t12264*t12265);+float t12267 = (t12262*t12266);+float t12268 = sin(t12143);+float t12269 = (1*t12268);+float t12270 = cos(t12181);+float t12271 = (t12269*t12270);+float t12272 = cos(t12117);+float t12273 = (1*t12272);+float t12274 = (t12271*t12273);+float t12275 = (t12267-t12274);+float t12276 = sin(t8);+float t12277 = (1*t12276);+float t12278 = sin(t118);+float t12279 = (t12277*t12278);+float t12280 = (t12275*t12279);+float t12281 = sin(t12117);+float t12282 = (1*t12281);+float t12283 = sin(t12165);+float t12284 = (t12282*t12283);+float t12285 = (t12271*t12284);+float t12286 = sin(t12143);+float t12287 = (1*t12286);+float t12288 = sin(t12181);+float t12289 = (t12287*t12288);+float t12290 = (t12289*t12266);+float t12291 = (t12285-t12290);+float t12292 = cos(t8);+float t12293 = (1*t12292);+float t12294 = (t12291*t12293);+float t12295 = (t12280+t12294);+float t12296 = (t12289*t12273);+float t12297 = (t12262*t12284);+float t12298 = (t12296-t12297);+float t12299 = sin(t8);+float t12300 = (1*t12299);+float t12301 = cos(t118);+float t12302 = (t12300*t12301);+float t12303 = (t12298*t12302);+float t12304 = (t12295+t12303);+float t12305 = abs(t12304);+t12260 = t12305;+} else {+float t12306 = (3.1415927/2);+float t12307 = (t8-t12306);+float t12308 = (3.1415927/2);+float t12309 = (t12117-t12308);+float t12310 = (t12307-t12309);+float t12311 = abs(t12310);+float t12312 = (t12311/2);+float t12313 = sin(t12312);+float t12314 = (t12313*t12313);+float t12315 = cos(t12309);+float t12316 = cos(t12307);+float t12317 = (t12315*t12316);+float t12318 = (t118+3.1415927);+float t12319 = (3.1415927*2);+float t12320 = mod(t12318,t12319);+float t12321 = (t12320-3.1415927);+float t12322 = (t12165+3.1415927);+float t12323 = (3.1415927*2);+float t12324 = mod(t12322,t12323);+float t12325 = (t12324-3.1415927);+float t12326 = (t12321-t12325);+float t12327 = abs(t12326);+float t12328 = (t12327/2);+float t12329 = sin(t12328);+float t12330 = (t12329*t12329);+float t12331 = (t12317*t12330);+float t12332 = (t12314+t12331);+float t12333 = sqrt(t12332);+float t12334 = asin(t12333);+float t12335 = (2*t12334);+float t12336 = abs(t12335);+float t12337 = (3.1415927/2);+float t12338 = (t8-t12337);+float t12339 = (3.1415927/2);+float t12340 = (t12143-t12339);+float t12341 = (t12338-t12340);+float t12342 = abs(t12341);+float t12343 = (t12342/2);+float t12344 = sin(t12343);+float t12345 = (t12344*t12344);+float t12346 = cos(t12340);+float t12347 = cos(t12338);+float t12348 = (t12346*t12347);+float t12349 = (t118+3.1415927);+float t12350 = (3.1415927*2);+float t12351 = mod(t12349,t12350);+float t12352 = (t12351-3.1415927);+float t12353 = (t12181+3.1415927);+float t12354 = (3.1415927*2);+float t12355 = mod(t12353,t12354);+float t12356 = (t12355-3.1415927);+float t12357 = (t12352-t12356);+float t12358 = abs(t12357);+float t12359 = (t12358/2);+float t12360 = sin(t12359);+float t12361 = (t12360*t12360);+float t12362 = (t12348*t12361);+float t12363 = (t12345+t12362);+float t12364 = sqrt(t12363);+float t12365 = asin(t12364);+float t12366 = (2*t12365);+float t12367 = abs(t12366);+bool t12368 = (t12336>=t12367);+float t12369;+if(t12368){+t12369 = t12336;+} else {+t12369 = t12367;+}+t12260 = t12369;+}+float t12370 = abs(t12260);+float t12371 = step(float(2.0e-4),t12370);+float t12372 = (1-t12371);+float t12373 = (t10000*t11699);+float t12374 = (t12373*float(842.378));+float t12375 = fract(t12374);+float t12376 = (t12375+float(45.32));+float t12377 = (t12376+u6.u0);+float t12378 = (t12375*t12377);+float t12379 = (t10234*t10663);+float t12380 = (t12379*float(1734.048));+float t12381 = fract(t12380);+float t12382 = (t12381+float(45.32));+float t12383 = (t12382+u6.u0);+float t12384 = (t12381*t12383);+float t12385 = (t12378+t12384);+float t12386 = (t12375+t12385);+float t12387 = (t12381+t12385);+float t12388 = (t12386*t12387);+float t12389 = fract(t12388);+float t12390 = step(float(0.2),t12389);+float t12391 = (t12372*t12390);+float t12392 = (3.1415927/2);+float t12393 = (t12117-t12392);+float t12394 = (3.1415927/2);+float t12395 = (t12143-t12394);+float t12396 = (t12393-t12395);+float t12397 = abs(t12396);+float t12398 = (t12397/2);+float t12399 = sin(t12398);+float t12400 = (t12399*t12399);+float t12401 = cos(t12395);+float t12402 = cos(t12393);+float t12403 = (t12401*t12402);+float t12404 = (t12165+3.1415927);+float t12405 = (3.1415927*2);+float t12406 = mod(t12404,t12405);+float t12407 = (t12406-3.1415927);+float t12408 = (t12181+3.1415927);+float t12409 = (3.1415927*2);+float t12410 = mod(t12408,t12409);+float t12411 = (t12410-3.1415927);+float t12412 = (t12407-t12411);+float t12413 = abs(t12412);+float t12414 = (t12413/2);+float t12415 = sin(t12414);+float t12416 = (t12415*t12415);+float t12417 = (t12403*t12416);+float t12418 = (t12400+t12417);+float t12419 = sqrt(t12418);+float t12420 = asin(t12419);+float t12421 = (2*t12420);+float t12422 = (t12421/t9998);+float t12423 = (1-t12422);+float t12424 = (t10000/245);+float t12425 = (t12424*float(842.378));+float t12426 = fract(t12425);+float t12427 = (t12426+float(45.32));+float t12428 = (t12427+u6.u0);+float t12429 = (t12426*t12428);+float t12430 = (t10234/t10013);+float t12431 = (t12430*float(1734.048));+float t12432 = fract(t12431);+float t12433 = (t12432+float(45.32));+float t12434 = (t12433+u6.u0);+float t12435 = (t12432*t12434);+float t12436 = (t12429+t12435);+float t12437 = (t12426+t12436);+float t12438 = (t12432+t12436);+float t12439 = (t12437*t12438);+float t12440 = fract(t12439);+float t12441 = (t12440*float(8.0e-3));+float t12442 = (float(1.0e-3)+t12441);+float t12443 = (t12440*173);+float t12444 = fract(t12443);+float t12445 = step(float(0.66),t12444);+float t12446 = (t12445*float(3.0e-3));+float t12447 = (t12442-t12446);+float t12448 = (t12447*float(0.4));+float t12449 = (t10663/245);+float t12450 = (t12449*float(842.378));+float t12451 = fract(t12450);+float t12452 = (t12451+float(45.32));+float t12453 = (t12452+u6.u0);+float t12454 = (t12451*t12453);+float t12455 = (t11699/t10676);+float t12456 = (t12455*float(1734.048));+float t12457 = fract(t12456);+float t12458 = (t12457+float(45.32));+float t12459 = (t12458+u6.u0);+float t12460 = (t12457*t12459);+float t12461 = (t12454+t12460);+float t12462 = (t12451+t12461);+float t12463 = (t12457+t12461);+float t12464 = (t12462*t12463);+float t12465 = fract(t12464);+float t12466 = (t12465*float(8.0e-3));+float t12467 = (float(1.0e-3)+t12466);+float t12468 = (t12465*173);+float t12469 = fract(t12468);+float t12470 = step(float(0.66),t12469);+float t12471 = (t12470*float(3.0e-3));+float t12472 = (t12467-t12471);+float t12473 = (t12472*float(0.4));+float t12474 = (t12448-t12473);+float t12475 = abs(t12474);+float t12476 = (t12475-float(1.0e-3));+float t12477 = (t12476/float(8.0e-3));+float t12478 = (1-t12477);+float t12479 = (t12478*t12478);+float t12480 = (t12423*t12479);+float t12481 = (t12391*t12480);+float t12482 = (u4.u0*t12389);+float t12483 = (t12482*3);+float t12484 = sin(t12483);+float t12485 = (t12484+1);+float t12486 = (t12485/2);+float t12487 = (t12486*float(0.66));+float t12488 = (t12487+float(0.33));+float t12489 = (t12481*t12488);+float t12490 = (float(0.2)*t12489);+bool t12491 = (0>=t12490);+float t12492;+if(t12491){+t12492 = 0;+} else {+t12492 = t12490;+}+float t12493 = (t12492*0);+float t12494 = (t12093+t12493);+float t12495 = (t10663*t9998);+float t12496 = (t10663/245);+float t12497 = (t12496*float(842.378));+float t12498 = fract(t12497);+float t12499 = (t12498+float(45.32));+float t12500 = (t12499+u6.u0);+float t12501 = (t12498*t12500);+float t12502 = (t11699/t10676);+float t12503 = (t12502*float(1734.048));+float t12504 = fract(t12503);+float t12505 = (t12504+float(45.32));+float t12506 = (t12505+u6.u0);+float t12507 = (t12504*t12506);+float t12508 = (t12501+t12507);+float t12509 = (t12498+t12508);+float t12510 = (t12504+t12508);+float t12511 = (t12509*t12510);+float t12512 = fract(t12511);+float t12513 = (t12512*float(2852.02));+float t12514 = fract(t12513);+float t12515 = (t12514-float(0.5));+float t12516 = (t12515*t9998);+float t12517 = (t12516*float(0.75));+float t12518 = (t12495+t12517);+float t12519 = (3.1415927/2);+float t12520 = (t12518-t12519);+float t12521 = (t10000*t9998);+float t12522 = (t10000/245);+float t12523 = (t12522*float(842.378));+float t12524 = fract(t12523);+float t12525 = (t12524+float(45.32));+float t12526 = (t12525+u6.u0);+float t12527 = (t12524*t12526);+float t12528 = (t10016/t10013);+float t12529 = (t12528*float(1734.048));+float t12530 = fract(t12529);+float t12531 = (t12530+float(45.32));+float t12532 = (t12531+u6.u0);+float t12533 = (t12530*t12532);+float t12534 = (t12527+t12533);+float t12535 = (t12524+t12534);+float t12536 = (t12530+t12534);+float t12537 = (t12535*t12536);+float t12538 = fract(t12537);+float t12539 = (t12538*float(2852.02));+float t12540 = fract(t12539);+float t12541 = (t12540-float(0.5));+float t12542 = (t12541*t9998);+float t12543 = (t12542*float(0.75));+float t12544 = (t12521+t12543);+float t12545 = (3.1415927/2);+float t12546 = (t12544-t12545);+float t12547 = (t12520-t12546);+float t12548 = abs(t12547);+float t12549 = (t12548/2);+float t12550 = sin(t12549);+float t12551 = (t12550*t12550);+float t12552 = cos(t12546);+float t12553 = cos(t12520);+float t12554 = (t12552*t12553);+float t12555 = (3.1415927/t10676);+float t12556 = (t11699*t12555);+float t12557 = (t12512*float(97372.83));+float t12558 = fract(t12557);+float t12559 = (t12558-float(0.5));+float t12560 = (3.1415927/t10676);+float t12561 = (t12559*t12560);+float t12562 = (t12561*float(0.75));+float t12563 = (t12556+t12562);+float t12564 = (t12563+3.1415927);+float t12565 = mod(t12564,t1433);+float t12566 = (t12565-3.1415927);+float t12567 = (t12566+3.1415927);+float t12568 = (3.1415927*2);+float t12569 = mod(t12567,t12568);+float t12570 = (t12569-3.1415927);+float t12571 = (3.1415927/t10013);+float t12572 = (t10016*t12571);+float t12573 = (t12538*float(97372.83));+float t12574 = fract(t12573);+float t12575 = (t12574-float(0.5));+float t12576 = (3.1415927/t10013);+float t12577 = (t12575*t12576);+float t12578 = (t12577*float(0.75));+float t12579 = (t12572+t12578);+float t12580 = (t12579+3.1415927);+float t12581 = mod(t12580,t1433);+float t12582 = (t12581-3.1415927);+float t12583 = (t12582+3.1415927);+float t12584 = (3.1415927*2);+float t12585 = mod(t12583,t12584);+float t12586 = (t12585-3.1415927);+float t12587 = (t12570-t12586);+float t12588 = abs(t12587);+float t12589 = (t12588/2);+float t12590 = sin(t12589);+float t12591 = (t12590*t12590);+float t12592 = (t12554*t12591);+float t12593 = (t12551+t12592);+float t12594 = sqrt(t12593);+float t12595 = asin(t12594);+float t12596 = (2*t12595);+float t12597 = (3.1415927/2);+float t12598 = (t8-t12597);+float t12599 = (3.1415927/2);+float t12600 = (t12544-t12599);+float t12601 = (t12598-t12600);+float t12602 = abs(t12601);+float t12603 = (t12602/2);+float t12604 = sin(t12603);+float t12605 = (t12604*t12604);+float t12606 = cos(t12600);+float t12607 = cos(t12598);+float t12608 = (t12606*t12607);+float t12609 = (t118+3.1415927);+float t12610 = (3.1415927*2);+float t12611 = mod(t12609,t12610);+float t12612 = (t12611-3.1415927);+float t12613 = (t12582+3.1415927);+float t12614 = (3.1415927*2);+float t12615 = mod(t12613,t12614);+float t12616 = (t12615-3.1415927);+float t12617 = (t12612-t12616);+float t12618 = abs(t12617);+float t12619 = (t12618/2);+float t12620 = sin(t12619);+float t12621 = (t12620*t12620);+float t12622 = (t12608*t12621);+float t12623 = (t12605+t12622);+float t12624 = sqrt(t12623);+float t12625 = asin(t12624);+float t12626 = (2*t12625);+float t12627 = (t12596-t12626);+float t12628 = (3.1415927/2);+float t12629 = (t8-t12628);+float t12630 = (3.1415927/2);+float t12631 = (t12518-t12630);+float t12632 = (t12629-t12631);+float t12633 = abs(t12632);+float t12634 = (t12633/2);+float t12635 = sin(t12634);+float t12636 = (t12635*t12635);+float t12637 = cos(t12631);+float t12638 = cos(t12629);+float t12639 = (t12637*t12638);+float t12640 = (t118+3.1415927);+float t12641 = (3.1415927*2);+float t12642 = mod(t12640,t12641);+float t12643 = (t12642-3.1415927);+float t12644 = (t12566+3.1415927);+float t12645 = (3.1415927*2);+float t12646 = mod(t12644,t12645);+float t12647 = (t12646-3.1415927);+float t12648 = (t12643-t12647);+float t12649 = abs(t12648);+float t12650 = (t12649/2);+float t12651 = sin(t12650);+float t12652 = (t12651*t12651);+float t12653 = (t12639*t12652);+float t12654 = (t12636+t12653);+float t12655 = sqrt(t12654);+float t12656 = asin(t12655);+float t12657 = (2*t12656);+float t12658 = (t12627-t12657);+float t12659 = abs(t12658);+bool t12660 = (float(1.0e-4)>t12659);+float t12661;+if(t12660){+float t12662 = cos(t12544);+float t12663 = (1*t12662);+float t12664 = sin(t12518);+float t12665 = (1*t12664);+float t12666 = cos(t12566);+float t12667 = (t12665*t12666);+float t12668 = (t12663*t12667);+float t12669 = sin(t12544);+float t12670 = (1*t12669);+float t12671 = cos(t12582);+float t12672 = (t12670*t12671);+float t12673 = cos(t12518);+float t12674 = (1*t12673);+float t12675 = (t12672*t12674);+float t12676 = (t12668-t12675);+float t12677 = sin(t8);+float t12678 = (1*t12677);+float t12679 = sin(t118);+float t12680 = (t12678*t12679);+float t12681 = (t12676*t12680);+float t12682 = sin(t12518);+float t12683 = (1*t12682);+float t12684 = sin(t12566);+float t12685 = (t12683*t12684);+float t12686 = (t12672*t12685);+float t12687 = sin(t12544);+float t12688 = (1*t12687);+float t12689 = sin(t12582);+float t12690 = (t12688*t12689);+float t12691 = (t12690*t12667);+float t12692 = (t12686-t12691);+float t12693 = cos(t8);+float t12694 = (1*t12693);+float t12695 = (t12692*t12694);+float t12696 = (t12681+t12695);+float t12697 = (t12690*t12674);+float t12698 = (t12663*t12685);+float t12699 = (t12697-t12698);+float t12700 = sin(t8);+float t12701 = (1*t12700);+float t12702 = cos(t118);+float t12703 = (t12701*t12702);+float t12704 = (t12699*t12703);+float t12705 = (t12696+t12704);+float t12706 = abs(t12705);+t12661 = t12706;+} else {+float t12707 = (3.1415927/2);+float t12708 = (t8-t12707);+float t12709 = (3.1415927/2);+float t12710 = (t12518-t12709);+float t12711 = (t12708-t12710);+float t12712 = abs(t12711);+float t12713 = (t12712/2);+float t12714 = sin(t12713);+float t12715 = (t12714*t12714);+float t12716 = cos(t12710);+float t12717 = cos(t12708);+float t12718 = (t12716*t12717);+float t12719 = (t118+3.1415927);+float t12720 = (3.1415927*2);+float t12721 = mod(t12719,t12720);+float t12722 = (t12721-3.1415927);+float t12723 = (t12566+3.1415927);+float t12724 = (3.1415927*2);+float t12725 = mod(t12723,t12724);+float t12726 = (t12725-3.1415927);+float t12727 = (t12722-t12726);+float t12728 = abs(t12727);+float t12729 = (t12728/2);+float t12730 = sin(t12729);+float t12731 = (t12730*t12730);+float t12732 = (t12718*t12731);+float t12733 = (t12715+t12732);+float t12734 = sqrt(t12733);+float t12735 = asin(t12734);+float t12736 = (2*t12735);+float t12737 = abs(t12736);+float t12738 = (3.1415927/2);+float t12739 = (t8-t12738);+float t12740 = (3.1415927/2);+float t12741 = (t12544-t12740);+float t12742 = (t12739-t12741);+float t12743 = abs(t12742);+float t12744 = (t12743/2);+float t12745 = sin(t12744);+float t12746 = (t12745*t12745);+float t12747 = cos(t12741);+float t12748 = cos(t12739);+float t12749 = (t12747*t12748);+float t12750 = (t118+3.1415927);+float t12751 = (3.1415927*2);+float t12752 = mod(t12750,t12751);+float t12753 = (t12752-3.1415927);+float t12754 = (t12582+3.1415927);+float t12755 = (3.1415927*2);+float t12756 = mod(t12754,t12755);+float t12757 = (t12756-3.1415927);+float t12758 = (t12753-t12757);+float t12759 = abs(t12758);+float t12760 = (t12759/2);+float t12761 = sin(t12760);+float t12762 = (t12761*t12761);+float t12763 = (t12749*t12762);+float t12764 = (t12746+t12763);+float t12765 = sqrt(t12764);+float t12766 = asin(t12765);+float t12767 = (2*t12766);+float t12768 = abs(t12767);+bool t12769 = (t12737>=t12768);+float t12770;+if(t12769){+t12770 = t12737;+} else {+t12770 = t12768;+}+t12661 = t12770;+}+float t12771 = abs(t12661);+float t12772 = step(float(2.0e-4),t12771);+float t12773 = (1-t12772);+float t12774 = (t10000*t11699);+float t12775 = (t12774*float(842.378));+float t12776 = fract(t12775);+float t12777 = (t12776+float(45.32));+float t12778 = (t12777+u6.u0);+float t12779 = (t12776*t12778);+float t12780 = (t10016*t10663);+float t12781 = (t12780*float(1734.048));+float t12782 = fract(t12781);+float t12783 = (t12782+float(45.32));+float t12784 = (t12783+u6.u0);+float t12785 = (t12782*t12784);+float t12786 = (t12779+t12785);+float t12787 = (t12776+t12786);+float t12788 = (t12782+t12786);+float t12789 = (t12787*t12788);+float t12790 = fract(t12789);+float t12791 = step(float(0.2),t12790);+float t12792 = (t12773*t12791);+float t12793 = (3.1415927/2);+float t12794 = (t12518-t12793);+float t12795 = (3.1415927/2);+float t12796 = (t12544-t12795);+float t12797 = (t12794-t12796);+float t12798 = abs(t12797);+float t12799 = (t12798/2);+float t12800 = sin(t12799);+float t12801 = (t12800*t12800);+float t12802 = cos(t12796);+float t12803 = cos(t12794);+float t12804 = (t12802*t12803);+float t12805 = (t12566+3.1415927);+float t12806 = (3.1415927*2);+float t12807 = mod(t12805,t12806);+float t12808 = (t12807-3.1415927);+float t12809 = (t12582+3.1415927);+float t12810 = (3.1415927*2);+float t12811 = mod(t12809,t12810);+float t12812 = (t12811-3.1415927);+float t12813 = (t12808-t12812);+float t12814 = abs(t12813);+float t12815 = (t12814/2);+float t12816 = sin(t12815);+float t12817 = (t12816*t12816);+float t12818 = (t12804*t12817);+float t12819 = (t12801+t12818);+float t12820 = sqrt(t12819);+float t12821 = asin(t12820);+float t12822 = (2*t12821);+float t12823 = (t12822/t9998);+float t12824 = (1-t12823);+float t12825 = (t10000/245);+float t12826 = (t12825*float(842.378));+float t12827 = fract(t12826);+float t12828 = (t12827+float(45.32));+float t12829 = (t12828+u6.u0);+float t12830 = (t12827*t12829);+float t12831 = (t10016/t10013);+float t12832 = (t12831*float(1734.048));+float t12833 = fract(t12832);+float t12834 = (t12833+float(45.32));+float t12835 = (t12834+u6.u0);+float t12836 = (t12833*t12835);+float t12837 = (t12830+t12836);+float t12838 = (t12827+t12837);+float t12839 = (t12833+t12837);+float t12840 = (t12838*t12839);+float t12841 = fract(t12840);+float t12842 = (t12841*float(8.0e-3));+float t12843 = (float(1.0e-3)+t12842);+float t12844 = (t12841*173);+float t12845 = fract(t12844);+float t12846 = step(float(0.66),t12845);+float t12847 = (t12846*float(3.0e-3));+float t12848 = (t12843-t12847);+float t12849 = (t12848*float(0.4));+float t12850 = (t10663/245);+float t12851 = (t12850*float(842.378));+float t12852 = fract(t12851);+float t12853 = (t12852+float(45.32));+float t12854 = (t12853+u6.u0);+float t12855 = (t12852*t12854);+float t12856 = (t11699/t10676);+float t12857 = (t12856*float(1734.048));+float t12858 = fract(t12857);+float t12859 = (t12858+float(45.32));+float t12860 = (t12859+u6.u0);+float t12861 = (t12858*t12860);+float t12862 = (t12855+t12861);+float t12863 = (t12852+t12862);+float t12864 = (t12858+t12862);+float t12865 = (t12863*t12864);+float t12866 = fract(t12865);+float t12867 = (t12866*float(8.0e-3));+float t12868 = (float(1.0e-3)+t12867);+float t12869 = (t12866*173);+float t12870 = fract(t12869);+float t12871 = step(float(0.66),t12870);+float t12872 = (t12871*float(3.0e-3));+float t12873 = (t12868-t12872);+float t12874 = (t12873*float(0.4));+float t12875 = (t12849-t12874);+float t12876 = abs(t12875);+float t12877 = (t12876-float(1.0e-3));+float t12878 = (t12877/float(8.0e-3));+float t12879 = (1-t12878);+float t12880 = (t12879*t12879);+float t12881 = (t12824*t12880);+float t12882 = (t12792*t12881);+float t12883 = (u4.u0*t12790);+float t12884 = (t12883*3);+float t12885 = sin(t12884);+float t12886 = (t12885+1);+float t12887 = (t12886/2);+float t12888 = (t12887*float(0.66));+float t12889 = (t12888+float(0.33));+float t12890 = (t12882*t12889);+float t12891 = (float(0.2)*t12890);+bool t12892 = (0>=t12891);+float t12893;+if(t12892){+t12893 = 0;+} else {+t12893 = t12891;+}+float t12894 = (t12893*0);+float t12895 = (t12494+t12894);+float t12896 = (t10000*t9998);+float t12897 = (t10000/245);+float t12898 = (t12897*float(842.378));+float t12899 = fract(t12898);+float t12900 = (t12899+float(45.32));+float t12901 = (t12900+u6.u0);+float t12902 = (t12899*t12901);+float t12903 = (t10452/t10013);+float t12904 = (t12903*float(1734.048));+float t12905 = fract(t12904);+float t12906 = (t12905+float(45.32));+float t12907 = (t12906+u6.u0);+float t12908 = (t12905*t12907);+float t12909 = (t12902+t12908);+float t12910 = (t12899+t12909);+float t12911 = (t12905+t12909);+float t12912 = (t12910*t12911);+float t12913 = fract(t12912);+float t12914 = (t12913*float(2852.02));+float t12915 = fract(t12914);+float t12916 = (t12915-float(0.5));+float t12917 = (t12916*t9998);+float t12918 = (t12917*float(0.75));+float t12919 = (t12896+t12918);+float t12920 = (3.1415927/2);+float t12921 = (t12919-t12920);+float t12922 = (t10000*t9998);+float t12923 = (t10000/245);+float t12924 = (t12923*float(842.378));+float t12925 = fract(t12924);+float t12926 = (t12925+float(45.32));+float t12927 = (t12926+u6.u0);+float t12928 = (t12925*t12927);+float t12929 = (t10234/t10013);+float t12930 = (t12929*float(1734.048));+float t12931 = fract(t12930);+float t12932 = (t12931+float(45.32));+float t12933 = (t12932+u6.u0);+float t12934 = (t12931*t12933);+float t12935 = (t12928+t12934);+float t12936 = (t12925+t12935);+float t12937 = (t12931+t12935);+float t12938 = (t12936*t12937);+float t12939 = fract(t12938);+float t12940 = (t12939*float(2852.02));+float t12941 = fract(t12940);+float t12942 = (t12941-float(0.5));+float t12943 = (t12942*t9998);+float t12944 = (t12943*float(0.75));+float t12945 = (t12922+t12944);+float t12946 = (3.1415927/2);+float t12947 = (t12945-t12946);+float t12948 = (t12921-t12947);+float t12949 = abs(t12948);+float t12950 = (t12949/2);+float t12951 = sin(t12950);+float t12952 = (t12951*t12951);+float t12953 = cos(t12947);+float t12954 = cos(t12921);+float t12955 = (t12953*t12954);+float t12956 = (3.1415927/t10013);+float t12957 = (t10452*t12956);+float t12958 = (t12913*float(97372.83));+float t12959 = fract(t12958);+float t12960 = (t12959-float(0.5));+float t12961 = (3.1415927/t10013);+float t12962 = (t12960*t12961);+float t12963 = (t12962*float(0.75));+float t12964 = (t12957+t12963);+float t12965 = (t12964+3.1415927);+float t12966 = mod(t12965,t1433);+float t12967 = (t12966-3.1415927);+float t12968 = (t12967+3.1415927);+float t12969 = (3.1415927*2);+float t12970 = mod(t12968,t12969);+float t12971 = (t12970-3.1415927);+float t12972 = (3.1415927/t10013);+float t12973 = (t10234*t12972);+float t12974 = (t12939*float(97372.83));+float t12975 = fract(t12974);+float t12976 = (t12975-float(0.5));+float t12977 = (3.1415927/t10013);+float t12978 = (t12976*t12977);+float t12979 = (t12978*float(0.75));+float t12980 = (t12973+t12979);+float t12981 = (t12980+3.1415927);+float t12982 = mod(t12981,t1433);+float t12983 = (t12982-3.1415927);+float t12984 = (t12983+3.1415927);+float t12985 = (3.1415927*2);+float t12986 = mod(t12984,t12985);+float t12987 = (t12986-3.1415927);+float t12988 = (t12971-t12987);+float t12989 = abs(t12988);+float t12990 = (t12989/2);+float t12991 = sin(t12990);+float t12992 = (t12991*t12991);+float t12993 = (t12955*t12992);+float t12994 = (t12952+t12993);+float t12995 = sqrt(t12994);+float t12996 = asin(t12995);+float t12997 = (2*t12996);+float t12998 = (3.1415927/2);+float t12999 = (t8-t12998);+float t13000 = (3.1415927/2);+float t13001 = (t12945-t13000);+float t13002 = (t12999-t13001);+float t13003 = abs(t13002);+float t13004 = (t13003/2);+float t13005 = sin(t13004);+float t13006 = (t13005*t13005);+float t13007 = cos(t13001);+float t13008 = cos(t12999);+float t13009 = (t13007*t13008);+float t13010 = (t118+3.1415927);+float t13011 = (3.1415927*2);+float t13012 = mod(t13010,t13011);+float t13013 = (t13012-3.1415927);+float t13014 = (t12983+3.1415927);+float t13015 = (3.1415927*2);+float t13016 = mod(t13014,t13015);+float t13017 = (t13016-3.1415927);+float t13018 = (t13013-t13017);+float t13019 = abs(t13018);+float t13020 = (t13019/2);+float t13021 = sin(t13020);+float t13022 = (t13021*t13021);+float t13023 = (t13009*t13022);+float t13024 = (t13006+t13023);+float t13025 = sqrt(t13024);+float t13026 = asin(t13025);+float t13027 = (2*t13026);+float t13028 = (t12997-t13027);+float t13029 = (3.1415927/2);+float t13030 = (t8-t13029);+float t13031 = (3.1415927/2);+float t13032 = (t12919-t13031);+float t13033 = (t13030-t13032);+float t13034 = abs(t13033);+float t13035 = (t13034/2);+float t13036 = sin(t13035);+float t13037 = (t13036*t13036);+float t13038 = cos(t13032);+float t13039 = cos(t13030);+float t13040 = (t13038*t13039);+float t13041 = (t118+3.1415927);+float t13042 = (3.1415927*2);+float t13043 = mod(t13041,t13042);+float t13044 = (t13043-3.1415927);+float t13045 = (t12967+3.1415927);+float t13046 = (3.1415927*2);+float t13047 = mod(t13045,t13046);+float t13048 = (t13047-3.1415927);+float t13049 = (t13044-t13048);+float t13050 = abs(t13049);+float t13051 = (t13050/2);+float t13052 = sin(t13051);+float t13053 = (t13052*t13052);+float t13054 = (t13040*t13053);+float t13055 = (t13037+t13054);+float t13056 = sqrt(t13055);+float t13057 = asin(t13056);+float t13058 = (2*t13057);+float t13059 = (t13028-t13058);+float t13060 = abs(t13059);+bool t13061 = (float(1.0e-4)>t13060);+float t13062;+if(t13061){+float t13063 = cos(t12945);+float t13064 = (1*t13063);+float t13065 = sin(t12919);+float t13066 = (1*t13065);+float t13067 = cos(t12967);+float t13068 = (t13066*t13067);+float t13069 = (t13064*t13068);+float t13070 = sin(t12945);+float t13071 = (1*t13070);+float t13072 = cos(t12983);+float t13073 = (t13071*t13072);+float t13074 = cos(t12919);+float t13075 = (1*t13074);+float t13076 = (t13073*t13075);+float t13077 = (t13069-t13076);+float t13078 = sin(t8);+float t13079 = (1*t13078);+float t13080 = sin(t118);+float t13081 = (t13079*t13080);+float t13082 = (t13077*t13081);+float t13083 = sin(t12919);+float t13084 = (1*t13083);+float t13085 = sin(t12967);+float t13086 = (t13084*t13085);+float t13087 = (t13073*t13086);+float t13088 = sin(t12945);+float t13089 = (1*t13088);+float t13090 = sin(t12983);+float t13091 = (t13089*t13090);+float t13092 = (t13091*t13068);+float t13093 = (t13087-t13092);+float t13094 = cos(t8);+float t13095 = (1*t13094);+float t13096 = (t13093*t13095);+float t13097 = (t13082+t13096);+float t13098 = (t13091*t13075);+float t13099 = (t13064*t13086);+float t13100 = (t13098-t13099);+float t13101 = sin(t8);+float t13102 = (1*t13101);+float t13103 = cos(t118);+float t13104 = (t13102*t13103);+float t13105 = (t13100*t13104);+float t13106 = (t13097+t13105);+float t13107 = abs(t13106);+t13062 = t13107;+} else {+float t13108 = (3.1415927/2);+float t13109 = (t8-t13108);+float t13110 = (3.1415927/2);+float t13111 = (t12919-t13110);+float t13112 = (t13109-t13111);+float t13113 = abs(t13112);+float t13114 = (t13113/2);+float t13115 = sin(t13114);+float t13116 = (t13115*t13115);+float t13117 = cos(t13111);+float t13118 = cos(t13109);+float t13119 = (t13117*t13118);+float t13120 = (t118+3.1415927);+float t13121 = (3.1415927*2);+float t13122 = mod(t13120,t13121);+float t13123 = (t13122-3.1415927);+float t13124 = (t12967+3.1415927);+float t13125 = (3.1415927*2);+float t13126 = mod(t13124,t13125);+float t13127 = (t13126-3.1415927);+float t13128 = (t13123-t13127);+float t13129 = abs(t13128);+float t13130 = (t13129/2);+float t13131 = sin(t13130);+float t13132 = (t13131*t13131);+float t13133 = (t13119*t13132);+float t13134 = (t13116+t13133);+float t13135 = sqrt(t13134);+float t13136 = asin(t13135);+float t13137 = (2*t13136);+float t13138 = abs(t13137);+float t13139 = (3.1415927/2);+float t13140 = (t8-t13139);+float t13141 = (3.1415927/2);+float t13142 = (t12945-t13141);+float t13143 = (t13140-t13142);+float t13144 = abs(t13143);+float t13145 = (t13144/2);+float t13146 = sin(t13145);+float t13147 = (t13146*t13146);+float t13148 = cos(t13142);+float t13149 = cos(t13140);+float t13150 = (t13148*t13149);+float t13151 = (t118+3.1415927);+float t13152 = (3.1415927*2);+float t13153 = mod(t13151,t13152);+float t13154 = (t13153-3.1415927);+float t13155 = (t12983+3.1415927);+float t13156 = (3.1415927*2);+float t13157 = mod(t13155,t13156);+float t13158 = (t13157-3.1415927);+float t13159 = (t13154-t13158);+float t13160 = abs(t13159);+float t13161 = (t13160/2);+float t13162 = sin(t13161);+float t13163 = (t13162*t13162);+float t13164 = (t13150*t13163);+float t13165 = (t13147+t13164);+float t13166 = sqrt(t13165);+float t13167 = asin(t13166);+float t13168 = (2*t13167);+float t13169 = abs(t13168);+bool t13170 = (t13138>=t13169);+float t13171;+if(t13170){+t13171 = t13138;+} else {+t13171 = t13169;+}+t13062 = t13171;+}+float t13172 = abs(t13062);+float t13173 = step(float(2.0e-4),t13172);+float t13174 = (1-t13173);+float t13175 = (t10000*t10452);+float t13176 = (t13175*float(842.378));+float t13177 = fract(t13176);+float t13178 = (t13177+float(45.32));+float t13179 = (t13178+u6.u0);+float t13180 = (t13177*t13179);+float t13181 = (t10234*t10000);+float t13182 = (t13181*float(1734.048));+float t13183 = fract(t13182);+float t13184 = (t13183+float(45.32));+float t13185 = (t13184+u6.u0);+float t13186 = (t13183*t13185);+float t13187 = (t13180+t13186);+float t13188 = (t13177+t13187);+float t13189 = (t13183+t13187);+float t13190 = (t13188*t13189);+float t13191 = fract(t13190);+float t13192 = step(float(0.2),t13191);+float t13193 = (t13174*t13192);+float t13194 = (3.1415927/2);+float t13195 = (t12919-t13194);+float t13196 = (3.1415927/2);+float t13197 = (t12945-t13196);+float t13198 = (t13195-t13197);+float t13199 = abs(t13198);+float t13200 = (t13199/2);+float t13201 = sin(t13200);+float t13202 = (t13201*t13201);+float t13203 = cos(t13197);+float t13204 = cos(t13195);+float t13205 = (t13203*t13204);+float t13206 = (t12967+3.1415927);+float t13207 = (3.1415927*2);+float t13208 = mod(t13206,t13207);+float t13209 = (t13208-3.1415927);+float t13210 = (t12983+3.1415927);+float t13211 = (3.1415927*2);+float t13212 = mod(t13210,t13211);+float t13213 = (t13212-3.1415927);+float t13214 = (t13209-t13213);+float t13215 = abs(t13214);+float t13216 = (t13215/2);+float t13217 = sin(t13216);+float t13218 = (t13217*t13217);+float t13219 = (t13205*t13218);+float t13220 = (t13202+t13219);+float t13221 = sqrt(t13220);+float t13222 = asin(t13221);+float t13223 = (2*t13222);+float t13224 = (t13223/t9998);+float t13225 = (1-t13224);+float t13226 = (t10000/245);+float t13227 = (t13226*float(842.378));+float t13228 = fract(t13227);+float t13229 = (t13228+float(45.32));+float t13230 = (t13229+u6.u0);+float t13231 = (t13228*t13230);+float t13232 = (t10234/t10013);+float t13233 = (t13232*float(1734.048));+float t13234 = fract(t13233);+float t13235 = (t13234+float(45.32));+float t13236 = (t13235+u6.u0);+float t13237 = (t13234*t13236);+float t13238 = (t13231+t13237);+float t13239 = (t13228+t13238);+float t13240 = (t13234+t13238);+float t13241 = (t13239*t13240);+float t13242 = fract(t13241);+float t13243 = (t13242*float(8.0e-3));+float t13244 = (float(1.0e-3)+t13243);+float t13245 = (t13242*173);+float t13246 = fract(t13245);+float t13247 = step(float(0.66),t13246);+float t13248 = (t13247*float(3.0e-3));+float t13249 = (t13244-t13248);+float t13250 = (t13249*float(0.4));+float t13251 = (t10000/245);+float t13252 = (t13251*float(842.378));+float t13253 = fract(t13252);+float t13254 = (t13253+float(45.32));+float t13255 = (t13254+u6.u0);+float t13256 = (t13253*t13255);+float t13257 = (t10452/t10013);+float t13258 = (t13257*float(1734.048));+float t13259 = fract(t13258);+float t13260 = (t13259+float(45.32));+float t13261 = (t13260+u6.u0);+float t13262 = (t13259*t13261);+float t13263 = (t13256+t13262);+float t13264 = (t13253+t13263);+float t13265 = (t13259+t13263);+float t13266 = (t13264*t13265);+float t13267 = fract(t13266);+float t13268 = (t13267*float(8.0e-3));+float t13269 = (float(1.0e-3)+t13268);+float t13270 = (t13267*173);+float t13271 = fract(t13270);+float t13272 = step(float(0.66),t13271);+float t13273 = (t13272*float(3.0e-3));+float t13274 = (t13269-t13273);+float t13275 = (t13274*float(0.4));+float t13276 = (t13250-t13275);+float t13277 = abs(t13276);+float t13278 = (t13277-float(1.0e-3));+float t13279 = (t13278/float(8.0e-3));+float t13280 = (1-t13279);+float t13281 = (t13280*t13280);+float t13282 = (t13225*t13281);+float t13283 = (t13193*t13282);+float t13284 = (u4.u0*t13191);+float t13285 = (t13284*3);+float t13286 = sin(t13285);+float t13287 = (t13286+1);+float t13288 = (t13287/2);+float t13289 = (t13288*float(0.66));+float t13290 = (t13289+float(0.33));+float t13291 = (t13283*t13290);+float t13292 = (float(0.2)*t13291);+bool t13293 = (0>=t13292);+float t13294;+if(t13293){+t13294 = 0;+} else {+t13294 = t13292;+}+float t13295 = (t13294*0);+float t13296 = (t12895+t13295);+float t13297 = (t10000*t9998);+float t13298 = (t10000/245);+float t13299 = (t13298*float(842.378));+float t13300 = fract(t13299);+float t13301 = (t13300+float(45.32));+float t13302 = (t13301+u6.u0);+float t13303 = (t13300*t13302);+float t13304 = (t10016+2);+float t13305 = (t13304/t10676);+float t13306 = (t13305*float(1734.048));+float t13307 = fract(t13306);+float t13308 = (t13307+float(45.32));+float t13309 = (t13308+u6.u0);+float t13310 = (t13307*t13309);+float t13311 = (t13303+t13310);+float t13312 = (t13300+t13311);+float t13313 = (t13307+t13311);+float t13314 = (t13312*t13313);+float t13315 = fract(t13314);+float t13316 = (t13315*float(2852.02));+float t13317 = fract(t13316);+float t13318 = (t13317-float(0.5));+float t13319 = (t13318*t9998);+float t13320 = (t13319*float(0.75));+float t13321 = (t13297+t13320);+float t13322 = (3.1415927/2);+float t13323 = (t13321-t13322);+float t13324 = (t10663*t9998);+float t13325 = (t10663/245);+float t13326 = (t13325*float(842.378));+float t13327 = fract(t13326);+float t13328 = (t13327+float(45.32));+float t13329 = (t13328+u6.u0);+float t13330 = (t13327*t13329);+float t13331 = (t11699/t10676);+float t13332 = (t13331*float(1734.048));+float t13333 = fract(t13332);+float t13334 = (t13333+float(45.32));+float t13335 = (t13334+u6.u0);+float t13336 = (t13333*t13335);+float t13337 = (t13330+t13336);+float t13338 = (t13327+t13337);+float t13339 = (t13333+t13337);+float t13340 = (t13338*t13339);+float t13341 = fract(t13340);+float t13342 = (t13341*float(2852.02));+float t13343 = fract(t13342);+float t13344 = (t13343-float(0.5));+float t13345 = (t13344*t9998);+float t13346 = (t13345*float(0.75));+float t13347 = (t13324+t13346);+float t13348 = (3.1415927/2);+float t13349 = (t13347-t13348);+float t13350 = (t13323-t13349);+float t13351 = abs(t13350);+float t13352 = (t13351/2);+float t13353 = sin(t13352);+float t13354 = (t13353*t13353);+float t13355 = cos(t13349);+float t13356 = cos(t13323);+float t13357 = (t13355*t13356);+float t13358 = (3.1415927/t10676);+float t13359 = (t13304*t13358);+float t13360 = (t13315*float(97372.83));+float t13361 = fract(t13360);+float t13362 = (t13361-float(0.5));+float t13363 = (3.1415927/t10676);+float t13364 = (t13362*t13363);+float t13365 = (t13364*float(0.75));+float t13366 = (t13359+t13365);+float t13367 = (t13366+3.1415927);+float t13368 = mod(t13367,t1433);+float t13369 = (t13368-3.1415927);+float t13370 = (t13369+3.1415927);+float t13371 = (3.1415927*2);+float t13372 = mod(t13370,t13371);+float t13373 = (t13372-3.1415927);+float t13374 = (3.1415927/t10676);+float t13375 = (t11699*t13374);+float t13376 = (t13341*float(97372.83));+float t13377 = fract(t13376);+float t13378 = (t13377-float(0.5));+float t13379 = (3.1415927/t10676);+float t13380 = (t13378*t13379);+float t13381 = (t13380*float(0.75));+float t13382 = (t13375+t13381);+float t13383 = (t13382+3.1415927);+float t13384 = mod(t13383,t1433);+float t13385 = (t13384-3.1415927);+float t13386 = (t13385+3.1415927);+float t13387 = (3.1415927*2);+float t13388 = mod(t13386,t13387);+float t13389 = (t13388-3.1415927);+float t13390 = (t13373-t13389);+float t13391 = abs(t13390);+float t13392 = (t13391/2);+float t13393 = sin(t13392);+float t13394 = (t13393*t13393);+float t13395 = (t13357*t13394);+float t13396 = (t13354+t13395);+float t13397 = sqrt(t13396);+float t13398 = asin(t13397);+float t13399 = (2*t13398);+float t13400 = (3.1415927/2);+float t13401 = (t8-t13400);+float t13402 = (3.1415927/2);+float t13403 = (t13347-t13402);+float t13404 = (t13401-t13403);+float t13405 = abs(t13404);+float t13406 = (t13405/2);+float t13407 = sin(t13406);+float t13408 = (t13407*t13407);+float t13409 = cos(t13403);+float t13410 = cos(t13401);+float t13411 = (t13409*t13410);+float t13412 = (t118+3.1415927);+float t13413 = (3.1415927*2);+float t13414 = mod(t13412,t13413);+float t13415 = (t13414-3.1415927);+float t13416 = (t13385+3.1415927);+float t13417 = (3.1415927*2);+float t13418 = mod(t13416,t13417);+float t13419 = (t13418-3.1415927);+float t13420 = (t13415-t13419);+float t13421 = abs(t13420);+float t13422 = (t13421/2);+float t13423 = sin(t13422);+float t13424 = (t13423*t13423);+float t13425 = (t13411*t13424);+float t13426 = (t13408+t13425);+float t13427 = sqrt(t13426);+float t13428 = asin(t13427);+float t13429 = (2*t13428);+float t13430 = (t13399-t13429);+float t13431 = (3.1415927/2);+float t13432 = (t8-t13431);+float t13433 = (3.1415927/2);+float t13434 = (t13321-t13433);+float t13435 = (t13432-t13434);+float t13436 = abs(t13435);+float t13437 = (t13436/2);+float t13438 = sin(t13437);+float t13439 = (t13438*t13438);+float t13440 = cos(t13434);+float t13441 = cos(t13432);+float t13442 = (t13440*t13441);+float t13443 = (t118+3.1415927);+float t13444 = (3.1415927*2);+float t13445 = mod(t13443,t13444);+float t13446 = (t13445-3.1415927);+float t13447 = (t13369+3.1415927);+float t13448 = (3.1415927*2);+float t13449 = mod(t13447,t13448);+float t13450 = (t13449-3.1415927);+float t13451 = (t13446-t13450);+float t13452 = abs(t13451);+float t13453 = (t13452/2);+float t13454 = sin(t13453);+float t13455 = (t13454*t13454);+float t13456 = (t13442*t13455);+float t13457 = (t13439+t13456);+float t13458 = sqrt(t13457);+float t13459 = asin(t13458);+float t13460 = (2*t13459);+float t13461 = (t13430-t13460);+float t13462 = abs(t13461);+bool t13463 = (float(1.0e-4)>t13462);+float t13464;+if(t13463){+float t13465 = cos(t13347);+float t13466 = (1*t13465);+float t13467 = sin(t13321);+float t13468 = (1*t13467);+float t13469 = cos(t13369);+float t13470 = (t13468*t13469);+float t13471 = (t13466*t13470);+float t13472 = sin(t13347);+float t13473 = (1*t13472);+float t13474 = cos(t13385);+float t13475 = (t13473*t13474);+float t13476 = cos(t13321);+float t13477 = (1*t13476);+float t13478 = (t13475*t13477);+float t13479 = (t13471-t13478);+float t13480 = sin(t8);+float t13481 = (1*t13480);+float t13482 = sin(t118);+float t13483 = (t13481*t13482);+float t13484 = (t13479*t13483);+float t13485 = sin(t13321);+float t13486 = (1*t13485);+float t13487 = sin(t13369);+float t13488 = (t13486*t13487);+float t13489 = (t13475*t13488);+float t13490 = sin(t13347);+float t13491 = (1*t13490);+float t13492 = sin(t13385);+float t13493 = (t13491*t13492);+float t13494 = (t13493*t13470);+float t13495 = (t13489-t13494);+float t13496 = cos(t8);+float t13497 = (1*t13496);+float t13498 = (t13495*t13497);+float t13499 = (t13484+t13498);+float t13500 = (t13493*t13477);+float t13501 = (t13466*t13488);+float t13502 = (t13500-t13501);+float t13503 = sin(t8);+float t13504 = (1*t13503);+float t13505 = cos(t118);+float t13506 = (t13504*t13505);+float t13507 = (t13502*t13506);+float t13508 = (t13499+t13507);+float t13509 = abs(t13508);+t13464 = t13509;+} else {+float t13510 = (3.1415927/2);+float t13511 = (t8-t13510);+float t13512 = (3.1415927/2);+float t13513 = (t13321-t13512);+float t13514 = (t13511-t13513);+float t13515 = abs(t13514);+float t13516 = (t13515/2);+float t13517 = sin(t13516);+float t13518 = (t13517*t13517);+float t13519 = cos(t13513);+float t13520 = cos(t13511);+float t13521 = (t13519*t13520);+float t13522 = (t118+3.1415927);+float t13523 = (3.1415927*2);+float t13524 = mod(t13522,t13523);+float t13525 = (t13524-3.1415927);+float t13526 = (t13369+3.1415927);+float t13527 = (3.1415927*2);+float t13528 = mod(t13526,t13527);+float t13529 = (t13528-3.1415927);+float t13530 = (t13525-t13529);+float t13531 = abs(t13530);+float t13532 = (t13531/2);+float t13533 = sin(t13532);+float t13534 = (t13533*t13533);+float t13535 = (t13521*t13534);+float t13536 = (t13518+t13535);+float t13537 = sqrt(t13536);+float t13538 = asin(t13537);+float t13539 = (2*t13538);+float t13540 = abs(t13539);+float t13541 = (3.1415927/2);+float t13542 = (t8-t13541);+float t13543 = (3.1415927/2);+float t13544 = (t13347-t13543);+float t13545 = (t13542-t13544);+float t13546 = abs(t13545);+float t13547 = (t13546/2);+float t13548 = sin(t13547);+float t13549 = (t13548*t13548);+float t13550 = cos(t13544);+float t13551 = cos(t13542);+float t13552 = (t13550*t13551);+float t13553 = (t118+3.1415927);+float t13554 = (3.1415927*2);+float t13555 = mod(t13553,t13554);+float t13556 = (t13555-3.1415927);+float t13557 = (t13385+3.1415927);+float t13558 = (3.1415927*2);+float t13559 = mod(t13557,t13558);+float t13560 = (t13559-3.1415927);+float t13561 = (t13556-t13560);+float t13562 = abs(t13561);+float t13563 = (t13562/2);+float t13564 = sin(t13563);+float t13565 = (t13564*t13564);+float t13566 = (t13552*t13565);+float t13567 = (t13549+t13566);+float t13568 = sqrt(t13567);+float t13569 = asin(t13568);+float t13570 = (2*t13569);+float t13571 = abs(t13570);+bool t13572 = (t13540>=t13571);+float t13573;+if(t13572){+t13573 = t13540;+} else {+t13573 = t13571;+}+t13464 = t13573;+}+float t13574 = abs(t13464);+float t13575 = step(float(2.0e-4),t13574);+float t13576 = (1-t13575);+float t13577 = (t10663*t13304);+float t13578 = (t13577*float(842.378));+float t13579 = fract(t13578);+float t13580 = (t13579+float(45.32));+float t13581 = (t13580+u6.u0);+float t13582 = (t13579*t13581);+float t13583 = (t11699*t10000);+float t13584 = (t13583*float(1734.048));+float t13585 = fract(t13584);+float t13586 = (t13585+float(45.32));+float t13587 = (t13586+u6.u0);+float t13588 = (t13585*t13587);+float t13589 = (t13582+t13588);+float t13590 = (t13579+t13589);+float t13591 = (t13585+t13589);+float t13592 = (t13590*t13591);+float t13593 = fract(t13592);+float t13594 = step(float(0.2),t13593);+float t13595 = (t13576*t13594);+float t13596 = (3.1415927/2);+float t13597 = (t13321-t13596);+float t13598 = (3.1415927/2);+float t13599 = (t13347-t13598);+float t13600 = (t13597-t13599);+float t13601 = abs(t13600);+float t13602 = (t13601/2);+float t13603 = sin(t13602);+float t13604 = (t13603*t13603);+float t13605 = cos(t13599);+float t13606 = cos(t13597);+float t13607 = (t13605*t13606);+float t13608 = (t13369+3.1415927);+float t13609 = (3.1415927*2);+float t13610 = mod(t13608,t13609);+float t13611 = (t13610-3.1415927);+float t13612 = (t13385+3.1415927);+float t13613 = (3.1415927*2);+float t13614 = mod(t13612,t13613);+float t13615 = (t13614-3.1415927);+float t13616 = (t13611-t13615);+float t13617 = abs(t13616);+float t13618 = (t13617/2);+float t13619 = sin(t13618);+float t13620 = (t13619*t13619);+float t13621 = (t13607*t13620);+float t13622 = (t13604+t13621);+float t13623 = sqrt(t13622);+float t13624 = asin(t13623);+float t13625 = (2*t13624);+float t13626 = (t13625/t9998);+float t13627 = (1-t13626);+float t13628 = (t10663/245);+float t13629 = (t13628*float(842.378));+float t13630 = fract(t13629);+float t13631 = (t13630+float(45.32));+float t13632 = (t13631+u6.u0);+float t13633 = (t13630*t13632);+float t13634 = (t11699/t10676);+float t13635 = (t13634*float(1734.048));+float t13636 = fract(t13635);+float t13637 = (t13636+float(45.32));+float t13638 = (t13637+u6.u0);+float t13639 = (t13636*t13638);+float t13640 = (t13633+t13639);+float t13641 = (t13630+t13640);+float t13642 = (t13636+t13640);+float t13643 = (t13641*t13642);+float t13644 = fract(t13643);+float t13645 = (t13644*float(8.0e-3));+float t13646 = (float(1.0e-3)+t13645);+float t13647 = (t13644*173);+float t13648 = fract(t13647);+float t13649 = step(float(0.66),t13648);+float t13650 = (t13649*float(3.0e-3));+float t13651 = (t13646-t13650);+float t13652 = (t13651*float(0.4));+float t13653 = (t10000/245);+float t13654 = (t13653*float(842.378));+float t13655 = fract(t13654);+float t13656 = (t13655+float(45.32));+float t13657 = (t13656+u6.u0);+float t13658 = (t13655*t13657);+float t13659 = (t13304/t10676);+float t13660 = (t13659*float(1734.048));+float t13661 = fract(t13660);+float t13662 = (t13661+float(45.32));+float t13663 = (t13662+u6.u0);+float t13664 = (t13661*t13663);+float t13665 = (t13658+t13664);+float t13666 = (t13655+t13665);+float t13667 = (t13661+t13665);+float t13668 = (t13666*t13667);+float t13669 = fract(t13668);+float t13670 = (t13669*float(8.0e-3));+float t13671 = (float(1.0e-3)+t13670);+float t13672 = (t13669*173);+float t13673 = fract(t13672);+float t13674 = step(float(0.66),t13673);+float t13675 = (t13674*float(3.0e-3));+float t13676 = (t13671-t13675);+float t13677 = (t13676*float(0.4));+float t13678 = (t13652-t13677);+float t13679 = abs(t13678);+float t13680 = (t13679-float(1.0e-3));+float t13681 = (t13680/float(8.0e-3));+float t13682 = (1-t13681);+float t13683 = (t13682*t13682);+float t13684 = (t13627*t13683);+float t13685 = (t13595*t13684);+float t13686 = (u4.u0*t13593);+float t13687 = (t13686*3);+float t13688 = sin(t13687);+float t13689 = (t13688+1);+float t13690 = (t13689/2);+float t13691 = (t13690*float(0.66));+float t13692 = (t13691+float(0.33));+float t13693 = (t13685*t13692);+float t13694 = (float(0.2)*t13693);+bool t13695 = (0>=t13694);+float t13696;+if(t13695){+t13696 = 0;+} else {+t13696 = t13694;+}+float t13697 = (t13696*0);+float t13698 = (t13296+t13697);+float t13699 = (t10000*t9998);+float t13700 = (t10000/245);+float t13701 = (t13700*float(842.378));+float t13702 = fract(t13701);+float t13703 = (t13702+float(45.32));+float t13704 = (t13703+u6.u0);+float t13705 = (t13702*t13704);+float t13706 = (t13304/t10676);+float t13707 = (t13706*float(1734.048));+float t13708 = fract(t13707);+float t13709 = (t13708+float(45.32));+float t13710 = (t13709+u6.u0);+float t13711 = (t13708*t13710);+float t13712 = (t13705+t13711);+float t13713 = (t13702+t13712);+float t13714 = (t13708+t13712);+float t13715 = (t13713*t13714);+float t13716 = fract(t13715);+float t13717 = (t13716*float(2852.02));+float t13718 = fract(t13717);+float t13719 = (t13718-float(0.5));+float t13720 = (t13719*t9998);+float t13721 = (t13720*float(0.75));+float t13722 = (t13699+t13721);+float t13723 = (3.1415927/2);+float t13724 = (t13722-t13723);+float t13725 = (t10000*t9998);+float t13726 = (t10000/245);+float t13727 = (t13726*float(842.378));+float t13728 = fract(t13727);+float t13729 = (t13728+float(45.32));+float t13730 = (t13729+u6.u0);+float t13731 = (t13728*t13730);+float t13732 = (t10452/t10013);+float t13733 = (t13732*float(1734.048));+float t13734 = fract(t13733);+float t13735 = (t13734+float(45.32));+float t13736 = (t13735+u6.u0);+float t13737 = (t13734*t13736);+float t13738 = (t13731+t13737);+float t13739 = (t13728+t13738);+float t13740 = (t13734+t13738);+float t13741 = (t13739*t13740);+float t13742 = fract(t13741);+float t13743 = (t13742*float(2852.02));+float t13744 = fract(t13743);+float t13745 = (t13744-float(0.5));+float t13746 = (t13745*t9998);+float t13747 = (t13746*float(0.75));+float t13748 = (t13725+t13747);+float t13749 = (3.1415927/2);+float t13750 = (t13748-t13749);+float t13751 = (t13724-t13750);+float t13752 = abs(t13751);+float t13753 = (t13752/2);+float t13754 = sin(t13753);+float t13755 = (t13754*t13754);+float t13756 = cos(t13750);+float t13757 = cos(t13724);+float t13758 = (t13756*t13757);+float t13759 = (3.1415927/t10676);+float t13760 = (t13304*t13759);+float t13761 = (t13716*float(97372.83));+float t13762 = fract(t13761);+float t13763 = (t13762-float(0.5));+float t13764 = (3.1415927/t10676);+float t13765 = (t13763*t13764);+float t13766 = (t13765*float(0.75));+float t13767 = (t13760+t13766);+float t13768 = (t13767+3.1415927);+float t13769 = mod(t13768,t1433);+float t13770 = (t13769-3.1415927);+float t13771 = (t13770+3.1415927);+float t13772 = (3.1415927*2);+float t13773 = mod(t13771,t13772);+float t13774 = (t13773-3.1415927);+float t13775 = (3.1415927/t10013);+float t13776 = (t10452*t13775);+float t13777 = (t13742*float(97372.83));+float t13778 = fract(t13777);+float t13779 = (t13778-float(0.5));+float t13780 = (3.1415927/t10013);+float t13781 = (t13779*t13780);+float t13782 = (t13781*float(0.75));+float t13783 = (t13776+t13782);+float t13784 = (t13783+3.1415927);+float t13785 = mod(t13784,t1433);+float t13786 = (t13785-3.1415927);+float t13787 = (t13786+3.1415927);+float t13788 = (3.1415927*2);+float t13789 = mod(t13787,t13788);+float t13790 = (t13789-3.1415927);+float t13791 = (t13774-t13790);+float t13792 = abs(t13791);+float t13793 = (t13792/2);+float t13794 = sin(t13793);+float t13795 = (t13794*t13794);+float t13796 = (t13758*t13795);+float t13797 = (t13755+t13796);+float t13798 = sqrt(t13797);+float t13799 = asin(t13798);+float t13800 = (2*t13799);+float t13801 = (3.1415927/2);+float t13802 = (t8-t13801);+float t13803 = (3.1415927/2);+float t13804 = (t13748-t13803);+float t13805 = (t13802-t13804);+float t13806 = abs(t13805);+float t13807 = (t13806/2);+float t13808 = sin(t13807);+float t13809 = (t13808*t13808);+float t13810 = cos(t13804);+float t13811 = cos(t13802);+float t13812 = (t13810*t13811);+float t13813 = (t118+3.1415927);+float t13814 = (3.1415927*2);+float t13815 = mod(t13813,t13814);+float t13816 = (t13815-3.1415927);+float t13817 = (t13786+3.1415927);+float t13818 = (3.1415927*2);+float t13819 = mod(t13817,t13818);+float t13820 = (t13819-3.1415927);+float t13821 = (t13816-t13820);+float t13822 = abs(t13821);+float t13823 = (t13822/2);+float t13824 = sin(t13823);+float t13825 = (t13824*t13824);+float t13826 = (t13812*t13825);+float t13827 = (t13809+t13826);+float t13828 = sqrt(t13827);+float t13829 = asin(t13828);+float t13830 = (2*t13829);+float t13831 = (t13800-t13830);+float t13832 = (3.1415927/2);+float t13833 = (t8-t13832);+float t13834 = (3.1415927/2);+float t13835 = (t13722-t13834);+float t13836 = (t13833-t13835);+float t13837 = abs(t13836);+float t13838 = (t13837/2);+float t13839 = sin(t13838);+float t13840 = (t13839*t13839);+float t13841 = cos(t13835);+float t13842 = cos(t13833);+float t13843 = (t13841*t13842);+float t13844 = (t118+3.1415927);+float t13845 = (3.1415927*2);+float t13846 = mod(t13844,t13845);+float t13847 = (t13846-3.1415927);+float t13848 = (t13770+3.1415927);+float t13849 = (3.1415927*2);+float t13850 = mod(t13848,t13849);+float t13851 = (t13850-3.1415927);+float t13852 = (t13847-t13851);+float t13853 = abs(t13852);+float t13854 = (t13853/2);+float t13855 = sin(t13854);+float t13856 = (t13855*t13855);+float t13857 = (t13843*t13856);+float t13858 = (t13840+t13857);+float t13859 = sqrt(t13858);+float t13860 = asin(t13859);+float t13861 = (2*t13860);+float t13862 = (t13831-t13861);+float t13863 = abs(t13862);+bool t13864 = (float(1.0e-4)>t13863);+float t13865;+if(t13864){+float t13866 = cos(t13748);+float t13867 = (1*t13866);+float t13868 = sin(t13722);+float t13869 = (1*t13868);+float t13870 = cos(t13770);+float t13871 = (t13869*t13870);+float t13872 = (t13867*t13871);+float t13873 = sin(t13748);+float t13874 = (1*t13873);+float t13875 = cos(t13786);+float t13876 = (t13874*t13875);+float t13877 = cos(t13722);+float t13878 = (1*t13877);+float t13879 = (t13876*t13878);+float t13880 = (t13872-t13879);+float t13881 = sin(t8);+float t13882 = (1*t13881);+float t13883 = sin(t118);+float t13884 = (t13882*t13883);+float t13885 = (t13880*t13884);+float t13886 = sin(t13722);+float t13887 = (1*t13886);+float t13888 = sin(t13770);+float t13889 = (t13887*t13888);+float t13890 = (t13876*t13889);+float t13891 = sin(t13748);+float t13892 = (1*t13891);+float t13893 = sin(t13786);+float t13894 = (t13892*t13893);+float t13895 = (t13894*t13871);+float t13896 = (t13890-t13895);+float t13897 = cos(t8);+float t13898 = (1*t13897);+float t13899 = (t13896*t13898);+float t13900 = (t13885+t13899);+float t13901 = (t13894*t13878);+float t13902 = (t13867*t13889);+float t13903 = (t13901-t13902);+float t13904 = sin(t8);+float t13905 = (1*t13904);+float t13906 = cos(t118);+float t13907 = (t13905*t13906);+float t13908 = (t13903*t13907);+float t13909 = (t13900+t13908);+float t13910 = abs(t13909);+t13865 = t13910;+} else {+float t13911 = (3.1415927/2);+float t13912 = (t8-t13911);+float t13913 = (3.1415927/2);+float t13914 = (t13722-t13913);+float t13915 = (t13912-t13914);+float t13916 = abs(t13915);+float t13917 = (t13916/2);+float t13918 = sin(t13917);+float t13919 = (t13918*t13918);+float t13920 = cos(t13914);+float t13921 = cos(t13912);+float t13922 = (t13920*t13921);+float t13923 = (t118+3.1415927);+float t13924 = (3.1415927*2);+float t13925 = mod(t13923,t13924);+float t13926 = (t13925-3.1415927);+float t13927 = (t13770+3.1415927);+float t13928 = (3.1415927*2);+float t13929 = mod(t13927,t13928);+float t13930 = (t13929-3.1415927);+float t13931 = (t13926-t13930);+float t13932 = abs(t13931);+float t13933 = (t13932/2);+float t13934 = sin(t13933);+float t13935 = (t13934*t13934);+float t13936 = (t13922*t13935);+float t13937 = (t13919+t13936);+float t13938 = sqrt(t13937);+float t13939 = asin(t13938);+float t13940 = (2*t13939);+float t13941 = abs(t13940);+float t13942 = (3.1415927/2);+float t13943 = (t8-t13942);+float t13944 = (3.1415927/2);+float t13945 = (t13748-t13944);+float t13946 = (t13943-t13945);+float t13947 = abs(t13946);+float t13948 = (t13947/2);+float t13949 = sin(t13948);+float t13950 = (t13949*t13949);+float t13951 = cos(t13945);+float t13952 = cos(t13943);+float t13953 = (t13951*t13952);+float t13954 = (t118+3.1415927);+float t13955 = (3.1415927*2);+float t13956 = mod(t13954,t13955);+float t13957 = (t13956-3.1415927);+float t13958 = (t13786+3.1415927);+float t13959 = (3.1415927*2);+float t13960 = mod(t13958,t13959);+float t13961 = (t13960-3.1415927);+float t13962 = (t13957-t13961);+float t13963 = abs(t13962);+float t13964 = (t13963/2);+float t13965 = sin(t13964);+float t13966 = (t13965*t13965);+float t13967 = (t13953*t13966);+float t13968 = (t13950+t13967);+float t13969 = sqrt(t13968);+float t13970 = asin(t13969);+float t13971 = (2*t13970);+float t13972 = abs(t13971);+bool t13973 = (t13941>=t13972);+float t13974;+if(t13973){+t13974 = t13941;+} else {+t13974 = t13972;+}+t13865 = t13974;+}+float t13975 = abs(t13865);+float t13976 = step(float(2.0e-4),t13975);+float t13977 = (1-t13976);+float t13978 = (t10000*t13304);+float t13979 = (t13978*float(842.378));+float t13980 = fract(t13979);+float t13981 = (t13980+float(45.32));+float t13982 = (t13981+u6.u0);+float t13983 = (t13980*t13982);+float t13984 = (t10452*t10000);+float t13985 = (t13984*float(1734.048));+float t13986 = fract(t13985);+float t13987 = (t13986+float(45.32));+float t13988 = (t13987+u6.u0);+float t13989 = (t13986*t13988);+float t13990 = (t13983+t13989);+float t13991 = (t13980+t13990);+float t13992 = (t13986+t13990);+float t13993 = (t13991*t13992);+float t13994 = fract(t13993);+float t13995 = step(float(0.2),t13994);+float t13996 = (t13977*t13995);+float t13997 = (3.1415927/2);+float t13998 = (t13722-t13997);+float t13999 = (3.1415927/2);+float t14000 = (t13748-t13999);+float t14001 = (t13998-t14000);+float t14002 = abs(t14001);+float t14003 = (t14002/2);+float t14004 = sin(t14003);+float t14005 = (t14004*t14004);+float t14006 = cos(t14000);+float t14007 = cos(t13998);+float t14008 = (t14006*t14007);+float t14009 = (t13770+3.1415927);+float t14010 = (3.1415927*2);+float t14011 = mod(t14009,t14010);+float t14012 = (t14011-3.1415927);+float t14013 = (t13786+3.1415927);+float t14014 = (3.1415927*2);+float t14015 = mod(t14013,t14014);+float t14016 = (t14015-3.1415927);+float t14017 = (t14012-t14016);+float t14018 = abs(t14017);+float t14019 = (t14018/2);+float t14020 = sin(t14019);+float t14021 = (t14020*t14020);+float t14022 = (t14008*t14021);+float t14023 = (t14005+t14022);+float t14024 = sqrt(t14023);+float t14025 = asin(t14024);+float t14026 = (2*t14025);+float t14027 = (t14026/t9998);+float t14028 = (1-t14027);+float t14029 = (t10000/245);+float t14030 = (t14029*float(842.378));+float t14031 = fract(t14030);+float t14032 = (t14031+float(45.32));+float t14033 = (t14032+u6.u0);+float t14034 = (t14031*t14033);+float t14035 = (t10452/t10013);+float t14036 = (t14035*float(1734.048));+float t14037 = fract(t14036);+float t14038 = (t14037+float(45.32));+float t14039 = (t14038+u6.u0);+float t14040 = (t14037*t14039);+float t14041 = (t14034+t14040);+float t14042 = (t14031+t14041);+float t14043 = (t14037+t14041);+float t14044 = (t14042*t14043);+float t14045 = fract(t14044);+float t14046 = (t14045*float(8.0e-3));+float t14047 = (float(1.0e-3)+t14046);+float t14048 = (t14045*173);+float t14049 = fract(t14048);+float t14050 = step(float(0.66),t14049);+float t14051 = (t14050*float(3.0e-3));+float t14052 = (t14047-t14051);+float t14053 = (t14052*float(0.4));+float t14054 = (t10000/245);+float t14055 = (t14054*float(842.378));+float t14056 = fract(t14055);+float t14057 = (t14056+float(45.32));+float t14058 = (t14057+u6.u0);+float t14059 = (t14056*t14058);+float t14060 = (t13304/t10676);+float t14061 = (t14060*float(1734.048));+float t14062 = fract(t14061);+float t14063 = (t14062+float(45.32));+float t14064 = (t14063+u6.u0);+float t14065 = (t14062*t14064);+float t14066 = (t14059+t14065);+float t14067 = (t14056+t14066);+float t14068 = (t14062+t14066);+float t14069 = (t14067*t14068);+float t14070 = fract(t14069);+float t14071 = (t14070*float(8.0e-3));+float t14072 = (float(1.0e-3)+t14071);+float t14073 = (t14070*173);+float t14074 = fract(t14073);+float t14075 = step(float(0.66),t14074);+float t14076 = (t14075*float(3.0e-3));+float t14077 = (t14072-t14076);+float t14078 = (t14077*float(0.4));+float t14079 = (t14053-t14078);+float t14080 = abs(t14079);+float t14081 = (t14080-float(1.0e-3));+float t14082 = (t14081/float(8.0e-3));+float t14083 = (1-t14082);+float t14084 = (t14083*t14083);+float t14085 = (t14028*t14084);+float t14086 = (t13996*t14085);+float t14087 = (u4.u0*t13994);+float t14088 = (t14087*3);+float t14089 = sin(t14088);+float t14090 = (t14089+1);+float t14091 = (t14090/2);+float t14092 = (t14091*float(0.66));+float t14093 = (t14092+float(0.33));+float t14094 = (t14086*t14093);+float t14095 = (float(0.2)*t14094);+bool t14096 = (0>=t14095);+float t14097;+if(t14096){+t14097 = 0;+} else {+t14097 = t14095;+}+float t14098 = (t14097*0);+float t14099 = (t13698+t14098);+float t14100 = (t9993*t9993);+float t14101 = (t14099*t14100);+bool t14102 = (t9997>=t14101);+float t14103;+if(t14102){+t14103 = t9997;+} else {+t14103 = t14101;+}+float t14104 = (t9551+t14103);+float t14105 = smoothstep(float(0.35),float(0.55),t468);+float t14106 = (u8.u0*t14105);+float t14107 = (1-t14106);+float t14108 = smoothstep(float(0.45),float(0.65),t468);+float t14109 = (t1334*t14108);+float t14110 = (u8.u0*t14109);+float t14111 = (1-t14110);+float t14112 = (3.1415927/2);+float t14113 = (t8-t14112);+float t14114 = (3.1415927/2);+float t14115 = (t107-t14114);+float t14116 = (t14113-t14115);+float t14117 = abs(t14116);+float t14118 = (t14117/2);+float t14119 = sin(t14118);+float t14120 = (t14119*t14119);+float t14121 = cos(t14115);+float t14122 = cos(t14113);+float t14123 = (t14121*t14122);+float t14124 = (t118+3.1415927);+float t14125 = (3.1415927*2);+float t14126 = mod(t14124,t14125);+float t14127 = (t14126-3.1415927);+float t14128 = (t123+3.1415927);+float t14129 = (3.1415927*2);+float t14130 = mod(t14128,t14129);+float t14131 = (t14130-3.1415927);+float t14132 = (t14127-t14131);+float t14133 = abs(t14132);+float t14134 = (t14133/2);+float t14135 = sin(t14134);+float t14136 = (t14135*t14135);+float t14137 = (t14123*t14136);+float t14138 = (t14120+t14137);+float t14139 = sqrt(t14138);+float t14140 = asin(t14139);+float t14141 = (2*t14140);+float t14142 = (3.1415927-t14141);+float t14143 = (t14142/3.1415927);+float t14144 = smoothstep(float(0.8),float(1.0),t14143);+float t14145 = (u8.u0*t14144);+float t14146 = (1-t14145);+bool t14147 = (t14111<=t14146);+float t14148;+if(t14147){+t14148 = t14111;+} else {+t14148 = t14146;+}+bool t14149 = (t14107<=t14148);+float t14150;+if(t14149){+t14150 = t14107;+} else {+t14150 = t14148;+}+float t14151 = (t14104*t14150);+float t14152 = (1-t1342);+float t14153 = (t14151*t14152);+float t14154 = (t1343+t14153);+float t14155 = (1-t1254);+float t14156 = (t14154*t14155);+float t14157 = (t1255+t14156);+float t14158 = (t3*t155);+float t14159 = (float(1.0)*t469);+float t14160 = (float(0.0)+t14159);+float t14161 = (t14160*t472);+float t14162 = (t14158+t14161);+float t14163 = (t14162*t524);+float t14164 = (float(0.2)*t678);+float t14165 = (t14164*t680);+float t14166 = (t14163+t14165);+float t14167 = (t14166*t685);+float t14168 = (float(0.7)*t839);+float t14169 = (t14168*t841);+float t14170 = (t14167+t14169);+float t14171 = (t14170*t846);+float t14172 = (float(0.1)*t1061);+float t14173 = (t14172*t1063);+float t14174 = (float(1.0e-2)*t1065);+float t14175 = (t14173+t14174);+float t14176 = (t14175*t1072);+float t14177 = (t14176*t1077);+float t14178 = (0*t1079);+float t14179 = (t14177+t14178);+float t14180 = (t1000*t14179);+float t14181 = (t14180*t1083);+float t14182 = (t14171+t14181);+float t14183 = (t14182*t1092);+float t14184 = (float(1.0)*t1246);+float t14185 = (t14184*t1248);+float t14186 = (t14183+t14185);+float t14187 = (t14186*t1254);+float t14188 = (float(0.7)*t1256);+float t14189 = (float(0.1)*t1258);+float t14190 = (t14188+t14189);+float t14191 = (float(0.2)*t1296);+float t14192 = (t14191*t1300);+float t14193 = (t14192*t1334);+float t14194 = (t14190+t14193);+float t14195 = (u8.u0*t14194);+float t14196 = (t14195*t1342);+float t14197 = (t1377/4000);+bool t14198 = (1<=t14197);+float t14199;+if(t14198){+t14199 = 1;+} else {+t14199 = t14197;+}+float t14200 = (t1377-7000);+float t14201 = (t14200/9333);+bool t14202 = (0>=t14201);+float t14203;+if(t14202){+t14203 = 0;+} else {+t14203 = t14201;+}+float t14204 = (t14199-t14203);+float t14205 = (t14204*t1532);+float t14206 = (t1571*t14204);+float t14207 = (t14205+t14206);+float t14208 = (0+t14207);+float t14209 = (t1597/4000);+bool t14210 = (1<=t14209);+float t14211;+if(t14210){+t14211 = 1;+} else {+t14211 = t14209;+}+float t14212 = (t1597-7000);+float t14213 = (t14212/9333);+bool t14214 = (0>=t14213);+float t14215;+if(t14214){+t14215 = 0;+} else {+t14215 = t14213;+}+float t14216 = (t14211-t14215);+float t14217 = (t14216*t1750);+float t14218 = (t1789*t14216);+float t14219 = (t14217+t14218);+float t14220 = (t14208+t14219);+float t14221 = (t1815/4000);+bool t14222 = (1<=t14221);+float t14223;+if(t14222){+t14223 = 1;+} else {+t14223 = t14221;+}+float t14224 = (t1815-7000);+float t14225 = (t14224/9333);+bool t14226 = (0>=t14225);+float t14227;+if(t14226){+t14227 = 0;+} else {+t14227 = t14225;+}+float t14228 = (t14223-t14227);+float t14229 = (t14228*t1968);+float t14230 = (t2007*t14228);+float t14231 = (t14229+t14230);+float t14232 = (t14220+t14231);+float t14233 = (t2042/4000);+bool t14234 = (1<=t14233);+float t14235;+if(t14234){+t14235 = 1;+} else {+t14235 = t14233;+}+float t14236 = (t2042-7000);+float t14237 = (t14236/9333);+bool t14238 = (0>=t14237);+float t14239;+if(t14238){+t14239 = 0;+} else {+t14239 = t14237;+}+float t14240 = (t14235-t14239);+float t14241 = (t14240*t2195);+float t14242 = (t2234*t14240);+float t14243 = (t14241+t14242);+float t14244 = (t14232+t14243);+float t14245 = (float(0.3)*t2633);+bool t14246 = (0>=t14245);+float t14247;+if(t14246){+t14247 = 0;+} else {+t14247 = t14245;+}+float t14248 = (t14247*1);+float t14249 = (t14244+t14248);+float t14250 = (float(0.3)*t3034);+bool t14251 = (0>=t14250);+float t14252;+if(t14251){+t14252 = 0;+} else {+t14252 = t14250;+}+float t14253 = (t14252*1);+float t14254 = (t14249+t14253);+float t14255 = (float(0.3)*t3436);+bool t14256 = (0>=t14255);+float t14257;+if(t14256){+t14257 = 0;+} else {+t14257 = t14255;+}+float t14258 = (t14257*1);+float t14259 = (t14254+t14258);+float t14260 = (float(0.3)*t3837);+bool t14261 = (0>=t14260);+float t14262;+if(t14261){+t14262 = 0;+} else {+t14262 = t14260;+}+float t14263 = (t14262*1);+float t14264 = (t14259+t14263);+float t14265 = (float(0.3)*t4238);+bool t14266 = (0>=t14265);+float t14267;+if(t14266){+t14267 = 0;+} else {+t14267 = t14265;+}+float t14268 = (t14267*1);+float t14269 = (t14264+t14268);+float t14270 = (float(0.3)*t4639);+bool t14271 = (0>=t14270);+float t14272;+if(t14271){+t14272 = 0;+} else {+t14272 = t14270;+}+float t14273 = (t14272*1);+float t14274 = (t14269+t14273);+float t14275 = (float(0.3)*t5041);+bool t14276 = (0>=t14275);+float t14277;+if(t14276){+t14277 = 0;+} else {+t14277 = t14275;+}+float t14278 = (t14277*1);+float t14279 = (t14274+t14278);+float t14280 = (float(0.3)*t5442);+bool t14281 = (0>=t14280);+float t14282;+if(t14281){+t14282 = 0;+} else {+t14282 = t14280;+}+float t14283 = (t14282*1);+float t14284 = (t14279+t14283);+float t14285 = (t5481/4000);+bool t14286 = (1<=t14285);+float t14287;+if(t14286){+t14287 = 1;+} else {+t14287 = t14285;+}+float t14288 = (t5481-7000);+float t14289 = (t14288/9333);+bool t14290 = (0>=t14289);+float t14291;+if(t14290){+t14291 = 0;+} else {+t14291 = t14289;+}+float t14292 = (t14287-t14291);+float t14293 = (t14292*t5634);+float t14294 = (t5673*t14292);+float t14295 = (t14293+t14294);+float t14296 = (0+t14295);+float t14297 = (t5699/4000);+bool t14298 = (1<=t14297);+float t14299;+if(t14298){+t14299 = 1;+} else {+t14299 = t14297;+}+float t14300 = (t5699-7000);+float t14301 = (t14300/9333);+bool t14302 = (0>=t14301);+float t14303;+if(t14302){+t14303 = 0;+} else {+t14303 = t14301;+}+float t14304 = (t14299-t14303);+float t14305 = (t14304*t5852);+float t14306 = (t5891*t14304);+float t14307 = (t14305+t14306);+float t14308 = (t14296+t14307);+float t14309 = (t5917/4000);+bool t14310 = (1<=t14309);+float t14311;+if(t14310){+t14311 = 1;+} else {+t14311 = t14309;+}+float t14312 = (t5917-7000);+float t14313 = (t14312/9333);+bool t14314 = (0>=t14313);+float t14315;+if(t14314){+t14315 = 0;+} else {+t14315 = t14313;+}+float t14316 = (t14311-t14315);+float t14317 = (t14316*t6070);+float t14318 = (t6109*t14316);+float t14319 = (t14317+t14318);+float t14320 = (t14308+t14319);+float t14321 = (t6144/4000);+bool t14322 = (1<=t14321);+float t14323;+if(t14322){+t14323 = 1;+} else {+t14323 = t14321;+}+float t14324 = (t6144-7000);+float t14325 = (t14324/9333);+bool t14326 = (0>=t14325);+float t14327;+if(t14326){+t14327 = 0;+} else {+t14327 = t14325;+}+float t14328 = (t14323-t14327);+float t14329 = (t14328*t6297);+float t14330 = (t6336*t14328);+float t14331 = (t14329+t14330);+float t14332 = (t14320+t14331);+float t14333 = (float(0.3)*t6735);+bool t14334 = (0>=t14333);+float t14335;+if(t14334){+t14335 = 0;+} else {+t14335 = t14333;+}+float t14336 = (t14335*0);+float t14337 = (t14332+t14336);+float t14338 = (float(0.3)*t7136);+bool t14339 = (0>=t14338);+float t14340;+if(t14339){+t14340 = 0;+} else {+t14340 = t14338;+}+float t14341 = (t14340*0);+float t14342 = (t14337+t14341);+float t14343 = (float(0.3)*t7538);+bool t14344 = (0>=t14343);+float t14345;+if(t14344){+t14345 = 0;+} else {+t14345 = t14343;+}+float t14346 = (t14345*0);+float t14347 = (t14342+t14346);+float t14348 = (float(0.3)*t7939);+bool t14349 = (0>=t14348);+float t14350;+if(t14349){+t14350 = 0;+} else {+t14350 = t14348;+}+float t14351 = (t14350*0);+float t14352 = (t14347+t14351);+float t14353 = (float(0.3)*t8340);+bool t14354 = (0>=t14353);+float t14355;+if(t14354){+t14355 = 0;+} else {+t14355 = t14353;+}+float t14356 = (t14355*0);+float t14357 = (t14352+t14356);+float t14358 = (float(0.3)*t8741);+bool t14359 = (0>=t14358);+float t14360;+if(t14359){+t14360 = 0;+} else {+t14360 = t14358;+}+float t14361 = (t14360*0);+float t14362 = (t14357+t14361);+float t14363 = (float(0.3)*t9143);+bool t14364 = (0>=t14363);+float t14365;+if(t14364){+t14365 = 0;+} else {+t14365 = t14363;+}+float t14366 = (t14365*0);+float t14367 = (t14362+t14366);+float t14368 = (float(0.3)*t9544);+bool t14369 = (0>=t14368);+float t14370;+if(t14369){+t14370 = 0;+} else {+t14370 = t14368;+}+float t14371 = (t14370*0);+float t14372 = (t14367+t14371);+float t14373 = (t14372*float(0.33));+float t14374 = (t14284+t14373);+float t14375 = (t10031/4000);+bool t14376 = (1<=t14375);+float t14377;+if(t14376){+t14377 = 1;+} else {+t14377 = t14375;+}+float t14378 = (t10031-7000);+float t14379 = (t14378/9333);+bool t14380 = (0>=t14379);+float t14381;+if(t14380){+t14381 = 0;+} else {+t14381 = t14379;+}+float t14382 = (t14377-t14381);+float t14383 = (t14382*t10184);+float t14384 = (t10223*t14382);+float t14385 = (t14383+t14384);+float t14386 = (0+t14385);+float t14387 = (t10249/4000);+bool t14388 = (1<=t14387);+float t14389;+if(t14388){+t14389 = 1;+} else {+t14389 = t14387;+}+float t14390 = (t10249-7000);+float t14391 = (t14390/9333);+bool t14392 = (0>=t14391);+float t14393;+if(t14392){+t14393 = 0;+} else {+t14393 = t14391;+}+float t14394 = (t14389-t14393);+float t14395 = (t14394*t10402);+float t14396 = (t10441*t14394);+float t14397 = (t14395+t14396);+float t14398 = (t14386+t14397);+float t14399 = (t10467/4000);+bool t14400 = (1<=t14399);+float t14401;+if(t14400){+t14401 = 1;+} else {+t14401 = t14399;+}+float t14402 = (t10467-7000);+float t14403 = (t14402/9333);+bool t14404 = (0>=t14403);+float t14405;+if(t14404){+t14405 = 0;+} else {+t14405 = t14403;+}+float t14406 = (t14401-t14405);+float t14407 = (t14406*t10620);+float t14408 = (t10659*t14406);+float t14409 = (t14407+t14408);+float t14410 = (t14398+t14409);+float t14411 = (t10694/4000);+bool t14412 = (1<=t14411);+float t14413;+if(t14412){+t14413 = 1;+} else {+t14413 = t14411;+}+float t14414 = (t10694-7000);+float t14415 = (t14414/9333);+bool t14416 = (0>=t14415);+float t14417;+if(t14416){+t14417 = 0;+} else {+t14417 = t14415;+}+float t14418 = (t14413-t14417);+float t14419 = (t14418*t10847);+float t14420 = (t10886*t14418);+float t14421 = (t14419+t14420);+float t14422 = (t14410+t14421);+float t14423 = (float(0.3)*t11285);+bool t14424 = (0>=t14423);+float t14425;+if(t14424){+t14425 = 0;+} else {+t14425 = t14423;+}+float t14426 = (t14425*0);+float t14427 = (t14422+t14426);+float t14428 = (float(0.3)*t11686);+bool t14429 = (0>=t14428);+float t14430;+if(t14429){+t14430 = 0;+} else {+t14430 = t14428;+}+float t14431 = (t14430*0);+float t14432 = (t14427+t14431);+float t14433 = (float(0.3)*t12088);+bool t14434 = (0>=t14433);+float t14435;+if(t14434){+t14435 = 0;+} else {+t14435 = t14433;+}+float t14436 = (t14435*0);+float t14437 = (t14432+t14436);+float t14438 = (float(0.3)*t12489);+bool t14439 = (0>=t14438);+float t14440;+if(t14439){+t14440 = 0;+} else {+t14440 = t14438;+}+float t14441 = (t14440*0);+float t14442 = (t14437+t14441);+float t14443 = (float(0.3)*t12890);+bool t14444 = (0>=t14443);+float t14445;+if(t14444){+t14445 = 0;+} else {+t14445 = t14443;+}+float t14446 = (t14445*0);+float t14447 = (t14442+t14446);+float t14448 = (float(0.3)*t13291);+bool t14449 = (0>=t14448);+float t14450;+if(t14449){+t14450 = 0;+} else {+t14450 = t14448;+}+float t14451 = (t14450*0);+float t14452 = (t14447+t14451);+float t14453 = (float(0.3)*t13693);+bool t14454 = (0>=t14453);+float t14455;+if(t14454){+t14455 = 0;+} else {+t14455 = t14453;+}+float t14456 = (t14455*0);+float t14457 = (t14452+t14456);+float t14458 = (float(0.3)*t14094);+bool t14459 = (0>=t14458);+float t14460;+if(t14459){+t14460 = 0;+} else {+t14460 = t14458;+}+float t14461 = (t14460*0);+float t14462 = (t14457+t14461);+float t14463 = (t14462*t14100);+bool t14464 = (t9997>=t14463);+float t14465;+if(t14464){+t14465 = t9997;+} else {+t14465 = t14463;+}+float t14466 = (t14374+t14465);+float t14467 = (t14466*t14150);+float t14468 = (t14467*t14152);+float t14469 = (t14196+t14468);+float t14470 = (t14469*t14155);+float t14471 = (t14187+t14470);+float t14472 = (float(0.72)*t1);+float t14473 = (t0+t14472);+float t14474 = (t14473*t155);+float t14475 = (float(0.8)*t469);+float t14476 = (float(0.0)+t14475);+float t14477 = (t14476*t472);+float t14478 = (t14474+t14477);+float t14479 = (t14478*t524);+float t14480 = (float(0.0)*t678);+float t14481 = (t14480*t680);+float t14482 = (t14479+t14481);+float t14483 = (t14482*t685);+float t14484 = (float(0.2)*t839);+float t14485 = (t14484*t841);+float t14486 = (t14483+t14485);+float t14487 = (t14486*t846);+float t14488 = (t1062*t1063);+float t14489 = (float(6.0e-2)*t1065);+float t14490 = (t14488+t14489);+float t14491 = (t14490*t1072);+float t14492 = (t14491*t1077);+float t14493 = (0*t1079);+float t14494 = (t14492+t14493);+float t14495 = (t1000*t14494);+float t14496 = (t14495*t1083);+float t14497 = (t14487+t14496);+float t14498 = (t14497*t1092);+float t14499 = (float(0.7)*t1246);+float t14500 = (t14499*t1248);+float t14501 = (t14498+t14500);+float t14502 = (t14501*t1254);+float t14503 = (float(1.0)*t1256);+float t14504 = (float(0.6)*t1258);+float t14505 = (t14503+t14504);+float t14506 = (-float(0.4));+float t14507 = (t14506*t1296);+float t14508 = (t14507*t1300);+float t14509 = (t14508*t1334);+float t14510 = (t14505+t14509);+float t14511 = (u8.u0*t14510);+float t14512 = (t14511*t1342);+float t14513 = (t1377/8000);+bool t14514 = (1<=t14513);+float t14515;+if(t14514){+t14515 = 1;+} else {+t14515 = t14513;+}+float t14516 = (t14515*t1532);+float t14517 = (t1571*t14515);+float t14518 = (t14516+t14517);+float t14519 = (0+t14518);+float t14520 = (t1597/8000);+bool t14521 = (1<=t14520);+float t14522;+if(t14521){+t14522 = 1;+} else {+t14522 = t14520;+}+float t14523 = (t14522*t1750);+float t14524 = (t1789*t14522);+float t14525 = (t14523+t14524);+float t14526 = (t14519+t14525);+float t14527 = (t1815/8000);+bool t14528 = (1<=t14527);+float t14529;+if(t14528){+t14529 = 1;+} else {+t14529 = t14527;+}+float t14530 = (t14529*t1968);+float t14531 = (t2007*t14529);+float t14532 = (t14530+t14531);+float t14533 = (t14526+t14532);+float t14534 = (t2042/8000);+bool t14535 = (1<=t14534);+float t14536;+if(t14535){+t14536 = 1;+} else {+t14536 = t14534;+}+float t14537 = (t14536*t2195);+float t14538 = (t2234*t14536);+float t14539 = (t14537+t14538);+float t14540 = (t14533+t14539);+float t14541 = (float(0.7)*t2633);+bool t14542 = (0>=t14541);+float t14543;+if(t14542){+t14543 = 0;+} else {+t14543 = t14541;+}+float t14544 = (t14543*1);+float t14545 = (t14540+t14544);+float t14546 = (float(0.7)*t3034);+bool t14547 = (0>=t14546);+float t14548;+if(t14547){+t14548 = 0;+} else {+t14548 = t14546;+}+float t14549 = (t14548*1);+float t14550 = (t14545+t14549);+float t14551 = (float(0.7)*t3436);+bool t14552 = (0>=t14551);+float t14553;+if(t14552){+t14553 = 0;+} else {+t14553 = t14551;+}+float t14554 = (t14553*1);+float t14555 = (t14550+t14554);+float t14556 = (float(0.7)*t3837);+bool t14557 = (0>=t14556);+float t14558;+if(t14557){+t14558 = 0;+} else {+t14558 = t14556;+}+float t14559 = (t14558*1);+float t14560 = (t14555+t14559);+float t14561 = (float(0.7)*t4238);+bool t14562 = (0>=t14561);+float t14563;+if(t14562){+t14563 = 0;+} else {+t14563 = t14561;+}+float t14564 = (t14563*1);+float t14565 = (t14560+t14564);+float t14566 = (float(0.7)*t4639);+bool t14567 = (0>=t14566);+float t14568;+if(t14567){+t14568 = 0;+} else {+t14568 = t14566;+}+float t14569 = (t14568*1);+float t14570 = (t14565+t14569);+float t14571 = (float(0.7)*t5041);+bool t14572 = (0>=t14571);+float t14573;+if(t14572){+t14573 = 0;+} else {+t14573 = t14571;+}+float t14574 = (t14573*1);+float t14575 = (t14570+t14574);+float t14576 = (float(0.7)*t5442);+bool t14577 = (0>=t14576);+float t14578;+if(t14577){+t14578 = 0;+} else {+t14578 = t14576;+}+float t14579 = (t14578*1);+float t14580 = (t14575+t14579);+float t14581 = (t5481/8000);+bool t14582 = (1<=t14581);+float t14583;+if(t14582){+t14583 = 1;+} else {+t14583 = t14581;+}+float t14584 = (t14583*t5634);+float t14585 = (t5673*t14583);+float t14586 = (t14584+t14585);+float t14587 = (0+t14586);+float t14588 = (t5699/8000);+bool t14589 = (1<=t14588);+float t14590;+if(t14589){+t14590 = 1;+} else {+t14590 = t14588;+}+float t14591 = (t14590*t5852);+float t14592 = (t5891*t14590);+float t14593 = (t14591+t14592);+float t14594 = (t14587+t14593);+float t14595 = (t5917/8000);+bool t14596 = (1<=t14595);+float t14597;+if(t14596){+t14597 = 1;+} else {+t14597 = t14595;+}+float t14598 = (t14597*t6070);+float t14599 = (t6109*t14597);+float t14600 = (t14598+t14599);+float t14601 = (t14594+t14600);+float t14602 = (t6144/8000);+bool t14603 = (1<=t14602);+float t14604;+if(t14603){+t14604 = 1;+} else {+t14604 = t14602;+}+float t14605 = (t14604*t6297);+float t14606 = (t6336*t14604);+float t14607 = (t14605+t14606);+float t14608 = (t14601+t14607);+float t14609 = (float(0.7)*t6735);+bool t14610 = (0>=t14609);+float t14611;+if(t14610){+t14611 = 0;+} else {+t14611 = t14609;+}+float t14612 = (t14611*0);+float t14613 = (t14608+t14612);+float t14614 = (float(0.7)*t7136);+bool t14615 = (0>=t14614);+float t14616;+if(t14615){+t14616 = 0;+} else {+t14616 = t14614;+}+float t14617 = (t14616*0);+float t14618 = (t14613+t14617);+float t14619 = (float(0.7)*t7538);+bool t14620 = (0>=t14619);+float t14621;+if(t14620){+t14621 = 0;+} else {+t14621 = t14619;+}+float t14622 = (t14621*0);+float t14623 = (t14618+t14622);+float t14624 = (float(0.7)*t7939);+bool t14625 = (0>=t14624);+float t14626;+if(t14625){+t14626 = 0;+} else {+t14626 = t14624;+}+float t14627 = (t14626*0);+float t14628 = (t14623+t14627);+float t14629 = (float(0.7)*t8340);+bool t14630 = (0>=t14629);+float t14631;+if(t14630){+t14631 = 0;+} else {+t14631 = t14629;+}+float t14632 = (t14631*0);+float t14633 = (t14628+t14632);+float t14634 = (float(0.7)*t8741);+bool t14635 = (0>=t14634);+float t14636;+if(t14635){+t14636 = 0;+} else {+t14636 = t14634;+}+float t14637 = (t14636*0);+float t14638 = (t14633+t14637);+float t14639 = (float(0.7)*t9143);+bool t14640 = (0>=t14639);+float t14641;+if(t14640){+t14641 = 0;+} else {+t14641 = t14639;+}+float t14642 = (t14641*0);+float t14643 = (t14638+t14642);+float t14644 = (float(0.7)*t9544);+bool t14645 = (0>=t14644);+float t14646;+if(t14645){+t14646 = 0;+} else {+t14646 = t14644;+}+float t14647 = (t14646*0);+float t14648 = (t14643+t14647);+float t14649 = (t14648*float(0.33));+float t14650 = (t14580+t14649);+float t14651 = (t10031/8000);+bool t14652 = (1<=t14651);+float t14653;+if(t14652){+t14653 = 1;+} else {+t14653 = t14651;+}+float t14654 = (t14653*t10184);+float t14655 = (t10223*t14653);+float t14656 = (t14654+t14655);+float t14657 = (0+t14656);+float t14658 = (t10249/8000);+bool t14659 = (1<=t14658);+float t14660;+if(t14659){+t14660 = 1;+} else {+t14660 = t14658;+}+float t14661 = (t14660*t10402);+float t14662 = (t10441*t14660);+float t14663 = (t14661+t14662);+float t14664 = (t14657+t14663);+float t14665 = (t10467/8000);+bool t14666 = (1<=t14665);+float t14667;+if(t14666){+t14667 = 1;+} else {+t14667 = t14665;+}+float t14668 = (t14667*t10620);+float t14669 = (t10659*t14667);+float t14670 = (t14668+t14669);+float t14671 = (t14664+t14670);+float t14672 = (t10694/8000);+bool t14673 = (1<=t14672);+float t14674;+if(t14673){+t14674 = 1;+} else {+t14674 = t14672;+}+float t14675 = (t14674*t10847);+float t14676 = (t10886*t14674);+float t14677 = (t14675+t14676);+float t14678 = (t14671+t14677);+float t14679 = (float(0.7)*t11285);+bool t14680 = (0>=t14679);+float t14681;+if(t14680){+t14681 = 0;+} else {+t14681 = t14679;+}+float t14682 = (t14681*0);+float t14683 = (t14678+t14682);+float t14684 = (float(0.7)*t11686);+bool t14685 = (0>=t14684);+float t14686;+if(t14685){+t14686 = 0;+} else {+t14686 = t14684;+}+float t14687 = (t14686*0);+float t14688 = (t14683+t14687);+float t14689 = (float(0.7)*t12088);+bool t14690 = (0>=t14689);+float t14691;+if(t14690){+t14691 = 0;+} else {+t14691 = t14689;+}+float t14692 = (t14691*0);+float t14693 = (t14688+t14692);+float t14694 = (float(0.7)*t12489);+bool t14695 = (0>=t14694);+float t14696;+if(t14695){+t14696 = 0;+} else {+t14696 = t14694;+}+float t14697 = (t14696*0);+float t14698 = (t14693+t14697);+float t14699 = (float(0.7)*t12890);+bool t14700 = (0>=t14699);+float t14701;+if(t14700){+t14701 = 0;+} else {+t14701 = t14699;+}+float t14702 = (t14701*0);+float t14703 = (t14698+t14702);+float t14704 = (float(0.7)*t13291);+bool t14705 = (0>=t14704);+float t14706;+if(t14705){+t14706 = 0;+} else {+t14706 = t14704;+}+float t14707 = (t14706*0);+float t14708 = (t14703+t14707);+float t14709 = (float(0.7)*t13693);+bool t14710 = (0>=t14709);+float t14711;+if(t14710){+t14711 = 0;+} else {+t14711 = t14709;+}+float t14712 = (t14711*0);+float t14713 = (t14708+t14712);+float t14714 = (float(0.7)*t14094);+bool t14715 = (0>=t14714);+float t14716;+if(t14715){+t14716 = 0;+} else {+t14716 = t14714;+}+float t14717 = (t14716*0);+float t14718 = (t14713+t14717);+float t14719 = (t14718*t14100);+bool t14720 = (t9997>=t14719);+float t14721;+if(t14720){+t14721 = t9997;+} else {+t14721 = t14719;+}+float t14722 = (t14650+t14721);+float t14723 = (t14722*t14150);+float t14724 = (t14723*t14152);+float t14725 = (t14512+t14724);+float t14726 = (t14725*t14155);+float t14727 = (t14502+t14726);+float t14728 = (1*t14150);+float t14729 = (1-t14728);+float t14730 = (t14729*t1342);+float t14731 = (t14728+t14730);+float t14732 = (1-t14731);+float t14733 = (t14732*t1254);+float t14734 = (t14731+t14733);+out0 = vec4(t14157,t14471,t14727,t14734);+gl_FragDepth = gl_FragCoord[2];+}
+ test/data/large-shaders/xax.vert view
@@ -0,0 +1,382 @@+#version 450+out float vf0;+out float vf1;+out float vf2;+layout(std140) uniform uBlock2 {+vec4 u0;+vec4 u16;+vec4 u32;+vec4 u48;+} u2;+layout(std140) uniform uBlock3 {+vec4 u0;+vec4 u16;+vec4 u32;+vec4 u48;+} u3;+layout(std140) uniform uBlock5 {+float u0;+} u5;+in vec3 in0;+void main() {+vec3 t0 = in0;+vec4 t1 = vec4(t0.x,t0.y,t0.z,1);+vec4 t2 = vec4(u3.u0[0],u3.u0[1],u3.u0[2],u3.u0[3]);+vec4 t3 = vec4(u3.u16[0],u3.u16[1],u3.u16[2],u3.u16[3]);+vec4 t4 = vec4(u3.u32[0],u3.u32[1],u3.u32[2],u3.u32[3]);+vec4 t5 = vec4(u3.u48[0],u3.u48[1],u3.u48[2],u3.u48[3]);+mat4x4 t6 = mat4x4(t2,t3,t4,t5);+vec4 t7 = vec4(u2.u0[0],u2.u0[1],u2.u0[2],0);+vec4 t8 = vec4(u2.u16[0],u2.u16[1],u2.u16[2],0);+vec4 t9 = vec4(u2.u32[0],u2.u32[1],u2.u32[2],0);+vec4 t10 = vec4(0,0,0,1);+mat4x4 t11 = mat4x4(t7,t8,t9,t10);+mat4x4 t12 = (t6*t11);+float t13 = (t12[0][0]*t12[1][1]);+float t14 = (t12[1][0]*t12[0][1]);+float t15 = (t13-t14);+float t16 = (t12[2][2]*t12[3][3]);+float t17 = (t12[3][2]*t12[2][3]);+float t18 = (t16-t17);+float t19 = (t15*t18);+float t20 = (t12[0][0]*t12[1][2]);+float t21 = (t12[1][0]*t12[0][2]);+float t22 = (t20-t21);+float t23 = (t12[2][1]*t12[3][3]);+float t24 = (t12[3][1]*t12[2][3]);+float t25 = (t23-t24);+float t26 = (t22*t25);+float t27 = (t19-t26);+float t28 = (t12[0][0]*t12[1][3]);+float t29 = (t12[1][0]*t12[0][3]);+float t30 = (t28-t29);+float t31 = (t12[2][1]*t12[3][2]);+float t32 = (t12[3][1]*t12[2][2]);+float t33 = (t31-t32);+float t34 = (t30*t33);+float t35 = (t27+t34);+float t36 = (t12[0][1]*t12[1][2]);+float t37 = (t12[1][1]*t12[0][2]);+float t38 = (t36-t37);+float t39 = (t12[2][0]*t12[3][3]);+float t40 = (t12[3][0]*t12[2][3]);+float t41 = (t39-t40);+float t42 = (t38*t41);+float t43 = (t35+t42);+float t44 = (t12[0][1]*t12[1][3]);+float t45 = (t12[1][1]*t12[0][3]);+float t46 = (t44-t45);+float t47 = (t12[2][0]*t12[3][2]);+float t48 = (t12[3][0]*t12[2][2]);+float t49 = (t47-t48);+float t50 = (t46*t49);+float t51 = (t43-t50);+float t52 = (t12[0][2]*t12[1][3]);+float t53 = (t12[1][2]*t12[0][3]);+float t54 = (t52-t53);+float t55 = (t12[2][0]*t12[3][1]);+float t56 = (t12[3][0]*t12[2][1]);+float t57 = (t55-t56);+float t58 = (t54*t57);+float t59 = (t51+t58);+float t60 = (1/t59);+float t61 = (t12[1][1]*t18);+float t62 = (t12[1][2]*t25);+float t63 = (t61-t62);+float t64 = (t12[1][3]*t33);+float t65 = (t63+t64);+float t66 = (t60*t65);+float t67 = (t12[0][1]*t18);+float t68 = (-t67);+float t69 = (t12[0][2]*t25);+float t70 = (t68+t69);+float t71 = (t12[0][3]*t33);+float t72 = (t70-t71);+float t73 = (t60*t72);+float t74 = (t12[3][1]*t54);+float t75 = (t12[3][2]*t46);+float t76 = (t74-t75);+float t77 = (t12[3][3]*t38);+float t78 = (t76+t77);+float t79 = (t60*t78);+float t80 = (t12[2][1]*t54);+float t81 = (-t80);+float t82 = (t12[2][2]*t46);+float t83 = (t81+t82);+float t84 = (t12[2][3]*t38);+float t85 = (t83-t84);+float t86 = (t60*t85);+vec4 t87 = vec4(t66,t73,t79,t86);+float t88 = (t12[1][0]*t18);+float t89 = (-t88);+float t90 = (t12[1][2]*t41);+float t91 = (t89+t90);+float t92 = (t12[1][3]*t49);+float t93 = (t91-t92);+float t94 = (t60*t93);+float t95 = (t12[0][0]*t18);+float t96 = (t12[0][2]*t41);+float t97 = (t95-t96);+float t98 = (t12[0][3]*t49);+float t99 = (t97+t98);+float t100 = (t60*t99);+float t101 = (t12[3][0]*t54);+float t102 = (-t101);+float t103 = (t12[3][2]*t30);+float t104 = (t102+t103);+float t105 = (t12[3][3]*t22);+float t106 = (t104-t105);+float t107 = (t60*t106);+float t108 = (t12[2][0]*t54);+float t109 = (t12[2][2]*t30);+float t110 = (t108-t109);+float t111 = (t12[2][3]*t22);+float t112 = (t110+t111);+float t113 = (t60*t112);+vec4 t114 = vec4(t94,t100,t107,t113);+float t115 = (t12[1][0]*t25);+float t116 = (t12[1][1]*t41);+float t117 = (t115-t116);+float t118 = (t12[1][3]*t57);+float t119 = (t117+t118);+float t120 = (t60*t119);+float t121 = (t12[0][0]*t25);+float t122 = (-t121);+float t123 = (t12[0][1]*t41);+float t124 = (t122+t123);+float t125 = (t12[0][3]*t57);+float t126 = (t124-t125);+float t127 = (t60*t126);+float t128 = (t12[3][0]*t46);+float t129 = (t12[3][1]*t30);+float t130 = (t128-t129);+float t131 = (t12[3][3]*t15);+float t132 = (t130+t131);+float t133 = (t60*t132);+float t134 = (t12[2][0]*t46);+float t135 = (-t134);+float t136 = (t12[2][1]*t30);+float t137 = (t135+t136);+float t138 = (t12[2][3]*t15);+float t139 = (t137-t138);+float t140 = (t60*t139);+vec4 t141 = vec4(t120,t127,t133,t140);+float t142 = (t12[1][0]*t33);+float t143 = (-t142);+float t144 = (t12[1][1]*t49);+float t145 = (t143+t144);+float t146 = (t12[1][2]*t57);+float t147 = (t145-t146);+float t148 = (t60*t147);+float t149 = (t12[0][0]*t33);+float t150 = (t12[0][1]*t49);+float t151 = (t149-t150);+float t152 = (t12[0][2]*t57);+float t153 = (t151+t152);+float t154 = (t60*t153);+float t155 = (t12[3][0]*t38);+float t156 = (-t155);+float t157 = (t12[3][1]*t22);+float t158 = (t156+t157);+float t159 = (t12[3][2]*t15);+float t160 = (t158-t159);+float t161 = (t60*t160);+float t162 = (t12[2][0]*t38);+float t163 = (t12[2][1]*t22);+float t164 = (t162-t163);+float t165 = (t12[2][2]*t15);+float t166 = (t164+t165);+float t167 = (t60*t166);+vec4 t168 = vec4(t148,t154,t161,t167);+mat4x4 t169 = mat4x4(t87,t114,t141,t168);+vec4 t170 = (t1*t169);+float t171 = (t170[0]/t170[3]);+float t172 = (t171*t171);+float t173 = (t170[1]/t170[3]);+float t174 = (t173*t173);+float t175 = (t172+t174);+float t176 = (t170[2]/t170[3]);+float t177 = (t176*t176);+float t178 = (t175+t177);+float t179 = sqrt(t178);+float t180 = (t171/t179);+float t181 = (t173/t179);+float t182 = (t176/t179);+vec4 t183 = vec4(t180,t181,t182,1);+float t184 = mod(u5.u0,840);+float t185 = (t184/840);+float t186 = (t185*3.1415927);+float t187 = (t186*2);+float t188 = (t187/2);+float t189 = sin(t188);+float t190 = (0*0);+float t191 = (1*1);+float t192 = (t190+t191);+float t193 = (0*0);+float t194 = (t192+t193);+float t195 = sqrt(t194);+float t196 = (1/t195);+float t197 = (t189*t196);+float t198 = (t197*t197);+float t199 = (0/t195);+float t200 = (t189*t199);+float t201 = (t200*t200);+float t202 = (t198+t201);+float t203 = (2*t202);+float t204 = (1-t203);+float t205 = (3.1415927/4);+float t206 = (t205/2);+float t207 = sin(t206);+float t208 = sin(t205);+float t209 = (1*t208);+float t210 = cos(0);+float t211 = (t209*t210);+float t212 = (t211*0);+float t213 = sin(0);+float t214 = (t209*t213);+float t215 = (t214*0);+float t216 = (t212-t215);+float t217 = cos(t205);+float t218 = (1*t217);+float t219 = (t218*0);+float t220 = (t211*1);+float t221 = (t219-t220);+float t222 = (t221*t221);+float t223 = (t216*t216);+float t224 = (t222+t223);+float t225 = (t214*1);+float t226 = (t218*0);+float t227 = (t225-t226);+float t228 = (t227*t227);+float t229 = (t224+t228);+float t230 = sqrt(t229);+float t231 = (t216/t230);+float t232 = (t207*t231);+float t233 = (t232*t232);+float t234 = (t227/t230);+float t235 = (t207*t234);+float t236 = (t235*t235);+float t237 = (t233+t236);+float t238 = (2*t237);+float t239 = (1-t238);+float t240 = (t204*t239);+float t241 = (0+t240);+float t242 = (0/t195);+float t243 = (t189*t242);+float t244 = (t243*t197);+float t245 = cos(t188);+float t246 = (t200*t245);+float t247 = (t244-t246);+float t248 = (2*t247);+float t249 = (t221/t230);+float t250 = (t207*t249);+float t251 = (t250*t232);+float t252 = cos(t206);+float t253 = (t235*t252);+float t254 = (t251+t253);+float t255 = (2*t254);+float t256 = (t248*t255);+float t257 = (t241+t256);+float t258 = (t243*t200);+float t259 = (t197*t245);+float t260 = (t258+t259);+float t261 = (2*t260);+float t262 = (t250*t235);+float t263 = (t232*t252);+float t264 = (t262-t263);+float t265 = (2*t264);+float t266 = (t261*t265);+float t267 = (t257+t266);+float t268 = (t251-t253);+float t269 = (2*t268);+float t270 = (t204*t269);+float t271 = (0+t270);+float t272 = (t250*t250);+float t273 = (t272+t236);+float t274 = (2*t273);+float t275 = (1-t274);+float t276 = (t248*t275);+float t277 = (t271+t276);+float t278 = (t232*t235);+float t279 = (t250*t252);+float t280 = (t278+t279);+float t281 = (2*t280);+float t282 = (t261*t281);+float t283 = (t277+t282);+float t284 = (t262+t263);+float t285 = (2*t284);+float t286 = (t204*t285);+float t287 = (0+t286);+float t288 = (t278-t279);+float t289 = (2*t288);+float t290 = (t248*t289);+float t291 = (t287+t290);+float t292 = (t272+t233);+float t293 = (2*t292);+float t294 = (1-t293);+float t295 = (t261*t294);+float t296 = (t291+t295);+vec4 t297 = vec4(t267,t283,t296,0);+float t298 = (t244+t246);+float t299 = (2*t298);+float t300 = (t299*t239);+float t301 = (0+t300);+float t302 = (t243*t243);+float t303 = (t302+t201);+float t304 = (2*t303);+float t305 = (1-t304);+float t306 = (t305*t255);+float t307 = (t301+t306);+float t308 = (t197*t200);+float t309 = (t243*t245);+float t310 = (t308-t309);+float t311 = (2*t310);+float t312 = (t311*t265);+float t313 = (t307+t312);+float t314 = (t299*t269);+float t315 = (0+t314);+float t316 = (t305*t275);+float t317 = (t315+t316);+float t318 = (t311*t281);+float t319 = (t317+t318);+float t320 = (t299*t285);+float t321 = (0+t320);+float t322 = (t305*t289);+float t323 = (t321+t322);+float t324 = (t311*t294);+float t325 = (t323+t324);+vec4 t326 = vec4(t313,t319,t325,0);+float t327 = (t258-t259);+float t328 = (2*t327);+float t329 = (t328*t239);+float t330 = (0+t329);+float t331 = (t308+t309);+float t332 = (2*t331);+float t333 = (t332*t255);+float t334 = (t330+t333);+float t335 = (t302+t198);+float t336 = (2*t335);+float t337 = (1-t336);+float t338 = (t337*t265);+float t339 = (t334+t338);+float t340 = (t328*t269);+float t341 = (0+t340);+float t342 = (t332*t275);+float t343 = (t341+t342);+float t344 = (t337*t281);+float t345 = (t343+t344);+float t346 = (t328*t285);+float t347 = (0+t346);+float t348 = (t332*t289);+float t349 = (t347+t348);+float t350 = (t337*t294);+float t351 = (t349+t350);+vec4 t352 = vec4(t339,t345,t351,0);+vec4 t353 = vec4(0,0,0,1);+mat4x4 t354 = mat4x4(t297,t326,t352,t353);+vec4 t355 = (t183*t354);+vf0 = t355[0];+vf1 = t355[1];+vf2 = t355[2];+gl_Position = vec4(t0.x,t0.y,t0.z,1);+}
tools/optshader.hs view
@@ -5,9 +5,11 @@ import           Data.Time.Clock             as Time (diffUTCTime,                                                       getCurrentTime,                                                       nominalDiffTimeToSeconds)+import qualified Language.GLSL.AST           as GLSL import qualified Language.GLSL.Optimizer     as Opt import qualified Language.GLSL.Optimizer.DFG as DFG-import qualified Language.GLSL.Types         as GLSL+import qualified Language.GLSL.Parser        as GLSL+import qualified Language.GLSL.PrettyPrint   as GLSL import qualified System.Environment          as Env  main :: IO ()