haskell-src-exts 1.1.3.1 → 1.1.4
raw patch · 14 files changed
+2262/−732 lines, 14 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Language.Haskell.Exts.Annotated.Comments: MultiLine :: SrcLoc -> String -> Comment
- Language.Haskell.Exts.Annotated.Comments: SingleLine :: SrcLoc -> String -> Comment
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (Alt l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (Binds l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (Bracket l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (ClassDecl l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (Decl l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (Exp l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (FieldUpdate l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (GuardedAlt l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (GuardedAlts l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (GuardedRhs l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (IPBind l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (InstDecl l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (Match l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (Module l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (PXAttr l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (Pat l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (PatField l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (QualStmt l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (RPat l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (Rhs l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (Splice l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (Stmt l)
- Language.Haskell.Exts.Annotated.Fixity: instance AppFixity (XAttr l)
- Language.Haskell.Exts.Annotated.SrcLoc: (<??) :: SrcSpanInfo -> Bool -> SrcSpanInfo
- Language.Haskell.Exts.Annotated.SrcLoc: explLayout :: SrcSpanInfo -> Bool
- Language.Haskell.Exts.Annotated.Syntax: Context :: l -> [Asst l] -> Context l
+ Language.Haskell.Exts.Annotated: parseFileContentsWithComments :: ParseMode -> String -> ParseResult (Module SrcSpanInfo, [Comment])
+ Language.Haskell.Exts.Annotated: parseFileContentsWithExts :: [Extension] -> String -> ParseResult (Module SrcSpanInfo)
+ Language.Haskell.Exts.Annotated: parseFileWithComments :: ParseMode -> FilePath -> IO (ParseResult (Module SrcSpanInfo, [Comment]))
+ Language.Haskell.Exts.Annotated.Comments: Comment :: Bool -> SrcSpan -> String -> Comment
+ Language.Haskell.Exts.Annotated.ExactPrint: class ExactP ast
+ Language.Haskell.Exts.Annotated.ExactPrint: exactPrint :: (ExactP ast) => ast L -> [Comment] -> String
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Activation
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Alt
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Assoc
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Asst
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP BangType
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Binds
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Bracket
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP CName
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP CallConv
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP ClassDecl
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP ConDecl
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Context
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP DataOrNew
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Decl
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP DeclHead
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Deriving
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Exp
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP ExportSpec
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP ExportSpecList
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP FieldDecl
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP FieldUpdate
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP FunDep
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP GadtDecl
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP GuardedAlt
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP GuardedAlts
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP GuardedRhs
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP IPBind
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP IPName
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP ImportDecl
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP ImportSpec
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP ImportSpecList
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP InstDecl
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP InstHead
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Kind
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Literal
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Match
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Module
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP ModuleHead
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP ModuleName
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Name
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Op
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP OptionPragma
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP PXAttr
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Pat
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP PatField
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP QName
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP QOp
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP QualConDecl
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP QualStmt
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP RPat
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP RPatOp
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Rhs
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Rule
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP RuleVar
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Safety
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP SpecialCon
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Splice
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Stmt
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP TyVarBind
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP Type
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP WarningText
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP XAttr
+ Language.Haskell.Exts.Annotated.ExactPrint: instance ExactP XName
+ Language.Haskell.Exts.Annotated.ExactPrint: instance Monad EP
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity Alt
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity Binds
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity Bracket
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity ClassDecl
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity Decl
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity Exp
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity FieldUpdate
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity GuardedAlt
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity GuardedAlts
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity GuardedRhs
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity IPBind
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity InstDecl
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity Match
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity Module
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity PXAttr
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity Pat
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity PatField
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity QualStmt
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity RPat
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity Rhs
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity Splice
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity Stmt
+ Language.Haskell.Exts.Annotated.Fixity: instance AppFixity XAttr
+ Language.Haskell.Exts.Annotated.Pretty: instance Pretty (Context l)
+ Language.Haskell.Exts.Annotated.Pretty: instance Pretty (DeclHead l)
+ Language.Haskell.Exts.Annotated.Pretty: instance Pretty (Deriving l)
+ Language.Haskell.Exts.Annotated.Pretty: instance Pretty (InstHead l)
+ Language.Haskell.Exts.Annotated.Syntax: CxEmpty :: l -> Context l
+ Language.Haskell.Exts.Annotated.Syntax: CxParen :: l -> (Context l) -> Context l
+ Language.Haskell.Exts.Annotated.Syntax: CxSingle :: l -> (Asst l) -> Context l
+ Language.Haskell.Exts.Annotated.Syntax: CxTuple :: l -> [Asst l] -> Context l
+ Language.Haskell.Exts.Annotated.Syntax: DHInfix :: l -> (TyVarBind l) -> (Name l) -> (TyVarBind l) -> DeclHead l
+ Language.Haskell.Exts.Annotated.Syntax: DHParen :: l -> (DeclHead l) -> DeclHead l
+ Language.Haskell.Exts.Annotated.Syntax: DHead :: l -> (Name l) -> [TyVarBind l] -> DeclHead l
+ Language.Haskell.Exts.Annotated.Syntax: IHInfix :: l -> (Type l) -> (QName l) -> (Type l) -> InstHead l
+ Language.Haskell.Exts.Annotated.Syntax: IHParen :: l -> (InstHead l) -> InstHead l
+ Language.Haskell.Exts.Annotated.Syntax: IHead :: l -> (QName l) -> [Type l] -> InstHead l
+ Language.Haskell.Exts.Annotated.Syntax: InfixMatch :: l -> (Pat l) -> (Name l) -> (Pat l) -> (Rhs l) -> (Maybe (Binds l)) -> Match l
+ Language.Haskell.Exts.Annotated.Syntax: data DeclHead l
+ Language.Haskell.Exts.Annotated.Syntax: data InstHead l
+ Language.Haskell.Exts.Annotated.Syntax: instance (Data l) => Data (DeclHead l)
+ Language.Haskell.Exts.Annotated.Syntax: instance (Data l) => Data (InstHead l)
+ Language.Haskell.Exts.Annotated.Syntax: instance (Eq l) => Eq (DeclHead l)
+ Language.Haskell.Exts.Annotated.Syntax: instance (Eq l) => Eq (InstHead l)
+ Language.Haskell.Exts.Annotated.Syntax: instance (Show l) => Show (DeclHead l)
+ Language.Haskell.Exts.Annotated.Syntax: instance (Show l) => Show (InstHead l)
+ Language.Haskell.Exts.Annotated.Syntax: instance Annotated DeclHead
+ Language.Haskell.Exts.Annotated.Syntax: instance Annotated InstHead
+ Language.Haskell.Exts.Annotated.Syntax: instance Functor DeclHead
+ Language.Haskell.Exts.Annotated.Syntax: instance Functor InstHead
+ Language.Haskell.Exts.Annotated.Syntax: instance Typeable1 DeclHead
+ Language.Haskell.Exts.Annotated.Syntax: instance Typeable1 InstHead
- Language.Haskell.Exts.Annotated.Fixity: applyFixities :: (AppFixity ast) => [Fixity] -> ast -> ast
+ Language.Haskell.Exts.Annotated.Fixity: applyFixities :: (AppFixity ast) => [Fixity] -> ast L -> ast L
- Language.Haskell.Exts.Annotated.SrcLoc: SrcSpanInfo :: SrcSpan -> Bool -> [SrcSpan] -> SrcSpanInfo
+ Language.Haskell.Exts.Annotated.SrcLoc: SrcSpanInfo :: SrcSpan -> [SrcSpan] -> SrcSpanInfo
- Language.Haskell.Exts.Annotated.SrcLoc: toSrcInfo :: (SrcInfo si) => SrcLoc -> Bool -> [SrcSpan] -> SrcLoc -> si
+ Language.Haskell.Exts.Annotated.SrcLoc: toSrcInfo :: (SrcInfo si) => SrcLoc -> [SrcSpan] -> SrcLoc -> si
- Language.Haskell.Exts.Annotated.Syntax: Char :: l -> Char -> Literal l
+ Language.Haskell.Exts.Annotated.Syntax: Char :: l -> Char -> String -> Literal l
- Language.Haskell.Exts.Annotated.Syntax: ClassDecl :: l -> (Maybe (Context l)) -> (Name l) -> [TyVarBind l] -> [FunDep l] -> (Maybe [ClassDecl l]) -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: ClassDecl :: l -> (Maybe (Context l)) -> (DeclHead l) -> [FunDep l] -> (Maybe [ClassDecl l]) -> Decl l
- Language.Haskell.Exts.Annotated.Syntax: ClsDataFam :: l -> (Maybe (Context l)) -> (Name l) -> [TyVarBind l] -> (Maybe (Kind l)) -> ClassDecl l
+ Language.Haskell.Exts.Annotated.Syntax: ClsDataFam :: l -> (Maybe (Context l)) -> (DeclHead l) -> (Maybe (Kind l)) -> ClassDecl l
- Language.Haskell.Exts.Annotated.Syntax: ClsTyFam :: l -> (Name l) -> [TyVarBind l] -> (Maybe (Kind l)) -> ClassDecl l
+ Language.Haskell.Exts.Annotated.Syntax: ClsTyFam :: l -> (DeclHead l) -> (Maybe (Kind l)) -> ClassDecl l
- Language.Haskell.Exts.Annotated.Syntax: DataDecl :: l -> (DataOrNew l) -> (Maybe (Context l)) -> (Name l) -> [TyVarBind l] -> [QualConDecl l] -> (Maybe [Deriving l]) -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: DataDecl :: l -> (DataOrNew l) -> (Maybe (Context l)) -> (DeclHead l) -> [QualConDecl l] -> (Maybe (Deriving l)) -> Decl l
- Language.Haskell.Exts.Annotated.Syntax: DataFamDecl :: l -> (Maybe (Context l)) -> (Name l) -> [TyVarBind l] -> (Maybe (Kind l)) -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: DataFamDecl :: l -> (Maybe (Context l)) -> (DeclHead l) -> (Maybe (Kind l)) -> Decl l
- Language.Haskell.Exts.Annotated.Syntax: DataInsDecl :: l -> (DataOrNew l) -> (Type l) -> [QualConDecl l] -> (Maybe [Deriving l]) -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: DataInsDecl :: l -> (DataOrNew l) -> (Type l) -> [QualConDecl l] -> (Maybe (Deriving l)) -> Decl l
- Language.Haskell.Exts.Annotated.Syntax: DerivDecl :: l -> (Maybe (Context l)) -> (QName l) -> [Type l] -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: DerivDecl :: l -> (Maybe (Context l)) -> (InstHead l) -> Decl l
- Language.Haskell.Exts.Annotated.Syntax: Deriving :: l -> (QName l) -> [Type l] -> Deriving l
+ Language.Haskell.Exts.Annotated.Syntax: Deriving :: l -> [InstHead l] -> Deriving l
- Language.Haskell.Exts.Annotated.Syntax: ForExp :: l -> (CallConv l) -> String -> (Name l) -> (Type l) -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: ForExp :: l -> (CallConv l) -> (Maybe String) -> (Name l) -> (Type l) -> Decl l
- Language.Haskell.Exts.Annotated.Syntax: ForImp :: l -> (CallConv l) -> (Maybe (Safety l)) -> String -> (Name l) -> (Type l) -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: ForImp :: l -> (CallConv l) -> (Maybe (Safety l)) -> (Maybe String) -> (Name l) -> (Type l) -> Decl l
- Language.Haskell.Exts.Annotated.Syntax: Frac :: l -> Rational -> Literal l
+ Language.Haskell.Exts.Annotated.Syntax: Frac :: l -> Rational -> String -> Literal l
- Language.Haskell.Exts.Annotated.Syntax: GDataDecl :: l -> (DataOrNew l) -> (Maybe (Context l)) -> (Name l) -> [TyVarBind l] -> (Maybe (Kind l)) -> [GadtDecl l] -> (Maybe [Deriving l]) -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: GDataDecl :: l -> (DataOrNew l) -> (Maybe (Context l)) -> (DeclHead l) -> (Maybe (Kind l)) -> [GadtDecl l] -> (Maybe (Deriving l)) -> Decl l
- Language.Haskell.Exts.Annotated.Syntax: GDataInsDecl :: l -> (DataOrNew l) -> (Type l) -> (Maybe (Kind l)) -> [GadtDecl l] -> (Maybe [Deriving l]) -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: GDataInsDecl :: l -> (DataOrNew l) -> (Type l) -> (Maybe (Kind l)) -> [GadtDecl l] -> (Maybe (Deriving l)) -> Decl l
- Language.Haskell.Exts.Annotated.Syntax: InsData :: l -> (DataOrNew l) -> (Type l) -> [QualConDecl l] -> (Maybe [Deriving l]) -> InstDecl l
+ Language.Haskell.Exts.Annotated.Syntax: InsData :: l -> (DataOrNew l) -> (Type l) -> [QualConDecl l] -> (Maybe (Deriving l)) -> InstDecl l
- Language.Haskell.Exts.Annotated.Syntax: InsGData :: l -> (DataOrNew l) -> (Type l) -> (Maybe (Kind l)) -> [GadtDecl l] -> (Maybe [Deriving l]) -> InstDecl l
+ Language.Haskell.Exts.Annotated.Syntax: InsGData :: l -> (DataOrNew l) -> (Type l) -> (Maybe (Kind l)) -> [GadtDecl l] -> (Maybe (Deriving l)) -> InstDecl l
- Language.Haskell.Exts.Annotated.Syntax: InstDecl :: l -> (Maybe (Context l)) -> (QName l) -> [Type l] -> (Maybe [InstDecl l]) -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: InstDecl :: l -> (Maybe (Context l)) -> (InstHead l) -> (Maybe [InstDecl l]) -> Decl l
- Language.Haskell.Exts.Annotated.Syntax: InstSig :: l -> (Maybe (Context l)) -> (QName l) -> [Type l] -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: InstSig :: l -> (Maybe (Context l)) -> (InstHead l) -> Decl l
- Language.Haskell.Exts.Annotated.Syntax: Int :: l -> Integer -> Literal l
+ Language.Haskell.Exts.Annotated.Syntax: Int :: l -> Integer -> String -> Literal l
- Language.Haskell.Exts.Annotated.Syntax: Match :: l -> (Name l) -> [Pat l] -> (Maybe (Type l)) -> (Rhs l) -> (Maybe (Binds l)) -> Match l
+ Language.Haskell.Exts.Annotated.Syntax: Match :: l -> (Name l) -> [Pat l] -> (Rhs l) -> (Maybe (Binds l)) -> Match l
- Language.Haskell.Exts.Annotated.Syntax: PrimChar :: l -> Char -> Literal l
+ Language.Haskell.Exts.Annotated.Syntax: PrimChar :: l -> Char -> String -> Literal l
- Language.Haskell.Exts.Annotated.Syntax: PrimDouble :: l -> Rational -> Literal l
+ Language.Haskell.Exts.Annotated.Syntax: PrimDouble :: l -> Rational -> String -> Literal l
- Language.Haskell.Exts.Annotated.Syntax: PrimFloat :: l -> Rational -> Literal l
+ Language.Haskell.Exts.Annotated.Syntax: PrimFloat :: l -> Rational -> String -> Literal l
- Language.Haskell.Exts.Annotated.Syntax: PrimInt :: l -> Integer -> Literal l
+ Language.Haskell.Exts.Annotated.Syntax: PrimInt :: l -> Integer -> String -> Literal l
- Language.Haskell.Exts.Annotated.Syntax: PrimString :: l -> String -> Literal l
+ Language.Haskell.Exts.Annotated.Syntax: PrimString :: l -> String -> String -> Literal l
- Language.Haskell.Exts.Annotated.Syntax: PrimWord :: l -> Integer -> Literal l
+ Language.Haskell.Exts.Annotated.Syntax: PrimWord :: l -> Integer -> String -> Literal l
- Language.Haskell.Exts.Annotated.Syntax: String :: l -> String -> Literal l
+ Language.Haskell.Exts.Annotated.Syntax: String :: l -> String -> String -> Literal l
- Language.Haskell.Exts.Annotated.Syntax: TypeDecl :: l -> (Name l) -> [TyVarBind l] -> (Type l) -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: TypeDecl :: l -> (DeclHead l) -> (Type l) -> Decl l
- Language.Haskell.Exts.Annotated.Syntax: TypeFamDecl :: l -> (Name l) -> [TyVarBind l] -> (Maybe (Kind l)) -> Decl l
+ Language.Haskell.Exts.Annotated.Syntax: TypeFamDecl :: l -> (DeclHead l) -> (Maybe (Kind l)) -> Decl l
Files
- dist/build/Language/Haskell/Exts/Annotated/Parser.hs +164/−162
- haskell-src-exts.cabal +3/−2
- src/Language/Haskell/Exts/Annotated.hs +17/−2
- src/Language/Haskell/Exts/Annotated/Build.hs +7/−7
- src/Language/Haskell/Exts/Annotated/Comments.hs +1/−2
- src/Language/Haskell/Exts/Annotated/ExactPrint.hs +1369/−0
- src/Language/Haskell/Exts/Annotated/Fixity.hs +36/−31
- src/Language/Haskell/Exts/Annotated/Lexer.hs +116/−107
- src/Language/Haskell/Exts/Annotated/ParseUtils.hs +145/−86
- src/Language/Haskell/Exts/Annotated/Parser.ly +136/−135
- src/Language/Haskell/Exts/Annotated/Pretty.hs +72/−71
- src/Language/Haskell/Exts/Annotated/SrcLoc.hs +14/−12
- src/Language/Haskell/Exts/Annotated/Syntax.hs +181/−115
- src/Language/Haskell/Exts/ParseUtils.hs +1/−0
dist/build/Language/Haskell/Exts/Annotated/Parser.hs view
@@ -115,10 +115,10 @@ happyOut17 :: (HappyAbsSyn ) -> (Maybe (WarningText L)) happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut17 #-} -happyIn18 :: (([ImportDecl L],[Decl L],[S],Bool,L)) -> (HappyAbsSyn ) +happyIn18 :: (([ImportDecl L],[Decl L],[S],L)) -> (HappyAbsSyn ) happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyIn18 #-} -happyOut18 :: (HappyAbsSyn ) -> (([ImportDecl L],[Decl L],[S],Bool,L)) +happyOut18 :: (HappyAbsSyn ) -> (([ImportDecl L],[Decl L],[S],L)) happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut18 #-} happyIn19 :: (([ImportDecl L],[Decl L],[S])) -> (HappyAbsSyn ) @@ -367,10 +367,10 @@ happyOut59 :: (HappyAbsSyn ) -> (Maybe (Safety L)) happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut59 #-} -happyIn60 :: ((String, Name L, Type L, [S])) -> (HappyAbsSyn ) +happyIn60 :: ((Maybe String, Name L, Type L, [S])) -> (HappyAbsSyn ) happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyIn60 #-} -happyOut60 :: (HappyAbsSyn ) -> ((String, Name L, Type L, [S])) +happyOut60 :: (HappyAbsSyn ) -> ((Maybe String, Name L, Type L, [S])) happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut60 #-} happyIn61 :: ([Rule L]) -> (HappyAbsSyn ) @@ -571,16 +571,16 @@ happyOut93 :: (HappyAbsSyn ) -> (FunDep L) happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut93 #-} -happyIn94 :: (([GadtDecl L],[S],L,Bool)) -> (HappyAbsSyn ) +happyIn94 :: (([GadtDecl L],[S],L)) -> (HappyAbsSyn ) happyIn94 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyIn94 #-} -happyOut94 :: (HappyAbsSyn ) -> (([GadtDecl L],[S],L,Bool)) +happyOut94 :: (HappyAbsSyn ) -> (([GadtDecl L],[S],L)) happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut94 #-} -happyIn95 :: (([GadtDecl L],[S],L,Bool)) -> (HappyAbsSyn ) +happyIn95 :: (([GadtDecl L],[S],L)) -> (HappyAbsSyn ) happyIn95 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyIn95 #-} -happyOut95 :: (HappyAbsSyn ) -> (([GadtDecl L],[S],L,Bool)) +happyOut95 :: (HappyAbsSyn ) -> (([GadtDecl L],[S],L)) happyOut95 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut95 #-} happyIn96 :: (([GadtDecl L],[S])) -> (HappyAbsSyn ) @@ -673,16 +673,16 @@ happyOut110 :: (HappyAbsSyn ) -> (BangType L) happyOut110 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut110 #-} -happyIn111 :: ((Maybe [Deriving L],[S],Maybe L)) -> (HappyAbsSyn ) +happyIn111 :: (Maybe (Deriving L)) -> (HappyAbsSyn ) happyIn111 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyIn111 #-} -happyOut111 :: (HappyAbsSyn ) -> ((Maybe [Deriving L],[S],Maybe L)) +happyOut111 :: (HappyAbsSyn ) -> (Maybe (Deriving L)) happyOut111 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut111 #-} -happyIn112 :: (([Deriving L],[S])) -> (HappyAbsSyn ) +happyIn112 :: (([InstHead L],[S])) -> (HappyAbsSyn ) happyIn112 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyIn112 #-} -happyOut112 :: (HappyAbsSyn ) -> (([Deriving L],[S])) +happyOut112 :: (HappyAbsSyn ) -> (([InstHead L],[S])) happyOut112 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut112 #-} happyIn113 :: (QName L) -> (HappyAbsSyn ) @@ -715,10 +715,10 @@ happyOut117 :: (HappyAbsSyn ) -> ((Maybe (Kind L), [S])) happyOut117 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut117 #-} -happyIn118 :: ((Maybe [ClassDecl L],[S],Maybe L,Bool)) -> (HappyAbsSyn ) +happyIn118 :: ((Maybe [ClassDecl L],[S],Maybe L)) -> (HappyAbsSyn ) happyIn118 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyIn118 #-} -happyOut118 :: (HappyAbsSyn ) -> ((Maybe [ClassDecl L],[S],Maybe L,Bool)) +happyOut118 :: (HappyAbsSyn ) -> ((Maybe [ClassDecl L],[S],Maybe L)) happyOut118 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut118 #-} happyIn119 :: (([ClassDecl L],[S])) -> (HappyAbsSyn ) @@ -745,10 +745,10 @@ happyOut122 :: (HappyAbsSyn ) -> (ClassDecl L) happyOut122 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut122 #-} -happyIn123 :: ((Maybe [InstDecl L],[S],Maybe L,Bool)) -> (HappyAbsSyn ) +happyIn123 :: ((Maybe [InstDecl L],[S],Maybe L)) -> (HappyAbsSyn ) happyIn123 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyIn123 #-} -happyOut123 :: (HappyAbsSyn ) -> ((Maybe [InstDecl L],[S],Maybe L,Bool)) +happyOut123 :: (HappyAbsSyn ) -> ((Maybe [InstDecl L],[S],Maybe L)) happyOut123 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut123 #-} happyIn124 :: (([InstDecl L],[S])) -> (HappyAbsSyn ) @@ -1033,10 +1033,10 @@ happyOut170 :: (HappyAbsSyn ) -> (Stmt L) happyOut170 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut170 #-} -happyIn171 :: (([Alt L],L,[S],Bool)) -> (HappyAbsSyn ) +happyIn171 :: (([Alt L],L,[S])) -> (HappyAbsSyn ) happyIn171 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyIn171 #-} -happyOut171 :: (HappyAbsSyn ) -> (([Alt L],L,[S],Bool)) +happyOut171 :: (HappyAbsSyn ) -> (([Alt L],L,[S])) happyOut171 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut171 #-} happyIn172 :: (([Alt L],[S])) -> (HappyAbsSyn ) @@ -1081,10 +1081,10 @@ happyOut178 :: (HappyAbsSyn ) -> (Pat L) happyOut178 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut178 #-} -happyIn179 :: (([Stmt L],L,[S],Bool)) -> (HappyAbsSyn ) +happyIn179 :: (([Stmt L],L,[S])) -> (HappyAbsSyn ) happyIn179 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyIn179 #-} -happyOut179 :: (HappyAbsSyn ) -> (([Stmt L],L,[S],Bool)) +happyOut179 :: (HappyAbsSyn ) -> (([Stmt L],L,[S])) happyOut179 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut179 #-} happyIn180 :: (([Stmt L],[S])) -> (HappyAbsSyn ) @@ -1372,19 +1372,19 @@ happyActOffsets :: HappyAddr -happyActOffsets = HappyA# "\x00\x00\x3d\x11\xc1\x10\x73\x0a\xc2\x19\x00\x00\x00\x00\xbd\x07\x5f\x02\x02\x08\x00\x00\x00\x00\xea\x18\x00\x00\x00\x00\x00\x00\x73\x07\x00\x00\xc1\x07\xcc\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x18\x42\x19\x92\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x07\x71\x07\x82\x19\x00\x00\x00\x00\x00\x00\xbb\x18\x00\x00\x5f\x18\x00\x00\xd6\x07\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x0b\xbd\x01\x65\x0c\x00\x00\x5f\x18\x5f\x18\x5f\x18\x3d\x11\x00\x00\x3d\x11\x3d\x11\x3d\x11\xaa\x19\x00\x00\x0b\x1b\xda\x1a\x00\x00\xeb\x17\x3d\x11\x13\x00\x3d\x11\xaa\x19\x92\x07\xd8\x07\x82\x07\xc9\x07\x00\x00\x00\x00\x00\x00\xaa\x19\xc9\x07\x00\x00\x02\x1a\xc4\x07\xe1\x1a\xc4\x07\xd4\x07\x66\x1b\x66\x1b\x00\x00\x00\x00\x00\x00\x07\x1c\x00\x00\x00\x00\x68\x07\xf3\x15\xc4\x17\x3d\x11\x3d\x11\xc5\x07\xf3\x15\xd2\x07\xd1\x07\xcf\x07\x5a\x07\x00\x00\x5a\x07\x11\x00\x00\x00\x00\x00\xbb\x07\x50\x17\x67\x07\x32\x05\xc3\x07\x58\x07\x56\x07\xa4\x07\x00\x00\x29\x17\x00\x00\x6c\x07\x00\x00\x00\x00\x5e\x07\xb5\x07\x00\x00\x9d\x15\x00\x00\x00\x00\x00\x00\x3d\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x08\x00\x00\x00\x00\xaa\x19\x00\x00\x00\x00\x00\x00\x3d\x11\x3d\x11\x3d\x11\x3d\x11\x61\x00\x00\x00\xbc\x07\xa3\x07\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x04\x5f\x00\x24\x00\x00\x00\xa2\x07\x52\x1b\x3f\x00\x99\x07\x04\x02\xaa\x19\x52\x1b\x96\x07\x2a\x19\xea\x19\xb4\x1a\x00\x00\x5d\x0d\x5d\x0d\x4b\x07\x00\x00\xaa\x19\xaa\x19\xaa\x19\x90\x07\x4f\x07\xcf\x04\xcf\x04\x6f\x07\x00\x00\x91\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x07\xa0\x01\x87\x07\x00\x00\x00\x00\x7e\x03\x73\x0a\x66\x07\x61\x07\x5d\x1a\x54\x07\x7d\x07\x75\x07\x47\x00\x9d\x04\x29\x17\x00\x00\x62\x07\xd1\x01\x64\x07\x6b\x07\x00\x00\x00\x00\x3d\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x08\x00\x00\x00\x00\x00\x00\x9e\x01\x00\x00\x00\x00\x8a\x04\x6d\x0b\x8e\x01\x6a\x07\x69\x07\x63\x07\x5d\x07\x5c\x07\x00\x00\x59\x07\x29\x17\x55\x07\x4e\x07\xea\x19\x29\x17\x29\x17\xc9\x13\x00\x00\x59\x04\x33\x15\x52\x1b\xaa\x19\x2c\x00\xaa\x19\xeb\x08\x00\x00\x06\x12\x3e\x07\x00\x00\x00\x00\x40\x01\xdc\x00\x00\x00\x3e\x01\x46\x07\x3a\x07\x89\x01\x44\x07\x00\x00\x34\x07\xb4\x1a\xaa\x19\x00\x00\xb4\x1a\x00\x00\xb4\x1a\x00\x00\x00\x00\x3e\x1b\xaa\x19\xb4\x1a\x50\x00\x2e\x07\x00\x00\x00\x00\x00\x00\x43\x07\x00\x00\x0c\x07\x00\x00\x23\x00\x21\x00\x1d\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x57\x1a\x00\x00\x23\x07\x11\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\x19\x00\x00\x00\x00\x2b\x01\x00\x00\x00\x00\xaa\x19\x00\x00\x00\x00\x00\x00\xaa\x18\xaa\x19\x0a\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x1b\x2c\x00\xc5\x06\xac\x06\x2b\x01\xbc\x06\xe4\x02\x81\x01\x00\x00\x00\x00\x9a\x06\xee\x06\x00\x00\x3d\x11\x45\x10\xd8\x01\x00\x00\xe3\x06\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x06\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x0a\x00\x00\x00\x00\x5c\x01\x00\x00\x3d\x11\x3d\x11\x00\x00\xe4\x06\x00\x00\xe1\x0c\x00\x00\xe1\x0c\x3d\x11\x55\x0e\x87\x06\x3d\x11\x00\x00\x45\x10\xdd\x14\x00\x00\x3d\x11\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\xe2\x06\xb5\x16\x69\x14\x00\x00\x07\x07\x00\x00\x00\x00\x4f\x09\xd6\x06\x82\x06\x00\x00\xc2\x06\xce\x06\x00\x00\xbe\x06\x00\x00\x00\x00\x00\x00\xbf\x06\x00\x00\xbd\x06\xb8\x06\xba\x06\xb9\x06\x5d\x0d\xb4\x06\xaf\x06\x50\x00\xa1\x06\x00\x00\x99\x06\xb4\x1a\xaa\x19\x4c\x06\x44\x06\xaa\x19\x9f\x06\xb0\x06\x93\x06\x58\x06\xa4\x06\x00\x00\x37\x1b\x00\x00\x92\x06\x91\x06\x37\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x06\x00\x00\x00\x00\x3d\x11\x00\x00\x3d\x11\xa7\x12\x84\x06\x78\x06\x50\x00\x50\x00\x3d\x11\x00\x00\x3d\x11\x3d\x11\x3d\x11\x6a\x06\x5c\x04\x00\x00\x00\x00\x4a\x06\x00\x00\x00\x00\x00\x00\x00\x00\x71\x06\x77\x09\x50\x00\x69\x14\x3d\x06\x6c\x06\x6f\x06\x6d\x06\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x06\x00\x00\x0e\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x11\x83\x1b\xaa\x19\x48\x06\x00\x00\xdc\x05\x3c\x06\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x1a\x00\x00\xaa\x19\x00\x00\x00\x00\xf9\x05\x00\x00\x00\x00\x5d\x0d\x00\x00\x3d\x11\x00\x00\x00\x00\x00\x00\x00\x00\xaa\x18\x28\x06\x31\x06\x00\x00\x00\x00\x35\x06\x00\x00\x00\x00\x00\x00\x00\x00\x24\x06\x00\x00\x46\x0b\x1a\x01\x4f\x09\x00\x00\x00\x00\x00\x00\x00\x00\x22\x06\x00\x00\x87\x04\x53\x04\x4d\x04\x1e\x04\xef\x03\xc5\x03\x8b\x03\x26\x03\x22\x03\x11\x03\x09\x03\xe9\x02\x00\x00\x73\x0a\x2b\x06\x05\x06\x00\x00\x31\x00\x00\x00\x16\x06\x1a\x06\x00\x00\x00\x00\x1a\x06\x13\x06\x0f\x06\x00\x00\x00\x00\x00\x00\xc9\x0f\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x06\x00\x00\x00\x00\x00\x00\x45\x01\x00\x00\x00\x00\x3d\x11\x00\x00\x7c\x12\x3b\x00\x00\x00\x00\x00\x00\x00\x6d\x1b\xaa\x19\x07\x06\x00\x00\x21\x09\x00\x00\x00\x00\x00\x00\x00\x06\x2b\x01\x00\x00\x00\x00\x0c\x06\x00\x00\xfe\x01\xc7\x05\xa7\x05\x01\x06\xfa\x05\xeb\x08\x00\x00\xf0\x05\x00\x00\xff\x05\xf2\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x06\x0b\x00\x00\x00\x00\x00\x00\x00\x2b\x01\x00\x00\x00\x00\x00\x00\xf6\x05\x00\x00\x00\x00\x00\x00\x6a\x19\xac\x05\x00\x00\x00\x00\x00\x00\xee\x05\x2b\x01\xf5\x08\x00\x00\x2e\x08\xd3\x05\x00\x00\x00\x00\xe1\x08\x53\x00\xdb\x05\xd7\x05\xb4\x18\xb4\x1a\x6e\x05\x86\x05\x00\x00\x00\x00\x1a\x01\x4d\x0f\x3d\x11\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x11\x8b\x05\x08\x00\x55\x0e\x55\x0e\x00\x00\x7b\x05\x3d\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x16\x00\x00\xc2\x05\xae\x05\xb4\x1a\xd9\x0d\xb3\x05\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x18\x7f\x13\xa4\x05\x50\x00\x00\x00\x00\x00\x00\x00\xaa\x19\x00\x00\x00\x00\x49\x05\xa6\x05\xeb\x12\x00\x00\x33\x01\x93\x05\x3d\x11\x3d\x11\x55\x04\x9c\x05\x13\x13\x9c\x05\x83\x05\x45\x05\x3d\x05\x38\x05\x00\x00\x2a\x1a\x00\x00\xa9\x03\x00\x00\x00\x00\x00\x00\x00\x00\x35\x05\x00\x00\x36\x05\x1c\x05\xf5\x09\x7d\x05\x00\x00\x00\x00\x88\x05\x70\x05\x00\x00\x00\x00\x00\x00\x79\x05\x00\x00\xb8\x04\x00\x00\x00\x00\x00\x00\x82\x05\x00\x00\x00\x00\x58\x05\x00\x00\x00\x00\x3d\x11\x64\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x1a\x00\x00\xb4\x1a\x5d\x05\x00\x00\x00\x00\xb9\x11\x6d\x05\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x02\x00\x00\xb4\x1a\x00\x00\x00\x00\x4e\x03\x00\x00\x59\x05\x00\x00\x3d\x11\x3d\x11\x3d\x11\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x05\x00\x00\x00\x00\x53\x05\x3e\x14\xda\x08\x63\x05\x00\x00\x00\x00\xb4\x1a\xdb\x04\x9a\x08\xb4\x1a\xb4\x1a\xd3\x04\x00\x00\x00\x00\x00\x00\x29\x02\x34\x05\x50\x00\x00\x00\x33\x05\x3a\x05\x00\x00\xf9\x04\x30\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x05\x44\x00\x11\x05\x00\x00\xb4\x1a\x84\x08\x00\x00\x0f\x05\x00\x00\xb4\x1a\x00\x00\xe3\x00\xd9\x00\x00\x00\x00\x00\x0d\x05\xb4\x1a\x00\x00\x00\x00\xbc\x04\x00\x00\x00\x00\x00\x00\x1a\x16\x3d\x11\x00\x00\xab\x04\xfb\x04\x00\x00\x4d\x0f\x3d\x11\xd1\x0e\xfe\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\x19\xea\x19\x21\x1b\xef\x04\xaa\x19\xf4\x13\xfa\x04\x2c\x00\xaa\x19\x00\x00\xe9\x04\x00\x00\xd0\x18\xf3\x04\x97\x1a\x00\x00\x1f\x03\x00\x00\x00\x00\x00\x00\xf7\x04\x00\x00\xb8\x04\x00\x00\x1a\x16\x00\x00\x00\x00\x1e\x01\x00\x00\x00\x00\x00\x00\x00\x00\xed\x04\xf6\x04\xe0\x04\x98\x04\x7e\x04\x00\x00\x00\x00\xaa\x19\x67\x04\xbf\x04\xbb\x04\xb6\x04\xb6\x04\x30\x12\xc4\x04\x00\x00\x00\x00\x09\x01\x00\x00\x00\x00\x00\x00\xf1\xff\x8b\x04\x3d\x11\x00\x00\x00\x00\x21\x1b\x44\x08\x6d\x1a\x6d\x1a\xaa\x19\xca\x01\xb0\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x1a\x35\x04\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x11\x00\x00\x00\x00\x00\x00\xaa\x19\x00\x00\x00\x00\x8e\x04\x00\x00\x00\x00\x1d\x04\x00\x00\x00\x00\x73\x15\x4a\x04\x41\x04\x2d\x00\xb8\x04\x00\x00\x00\x00\x3d\x11\x3e\x04\x00\x00\x00\x00\x5a\x04\x00\x00\x6d\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x04\x00\x00\x08\x15\x00\x00\x52\x04\x51\x04\x00\x00\x00\x00\x00\x00\x57\x04\x1a\x08\x47\x04\x73\x15\x00\x00\x00\x00\x00\x00\x71\x00\x00\x00\x3b\x04\x00\x00\x00\x00\x00\x00"# +happyActOffsets = HappyA# "\x00\x00\x1f\x11\xa3\x10\x55\x0a\xa4\x19\x00\x00\x00\x00\xb2\x07\x5f\x02\xf6\x07\x00\x00\x00\x00\xcc\x18\x00\x00\x00\x00\x00\x00\x6f\x07\x00\x00\xa4\x19\xcb\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x18\x24\x19\x74\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x07\x6c\x07\x64\x19\x00\x00\x00\x00\x00\x00\x9d\x18\x00\x00\x41\x18\x00\x00\xd3\x07\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x0b\xbd\x01\x47\x0c\x00\x00\x41\x18\x41\x18\x41\x18\x1f\x11\x00\x00\x1f\x11\x1f\x11\x1f\x11\x8c\x19\x00\x00\xd9\x1a\xc1\x1a\x00\x00\xcd\x17\x1f\x11\x13\x00\x1f\x11\x8c\x19\x8c\x07\xd7\x07\x7e\x07\xc7\x07\x00\x00\x00\x00\x00\x00\x8c\x19\xc7\x07\x00\x00\xe4\x19\xbf\x07\xef\x1a\xbf\x07\xd4\x07\x36\x1b\x36\x1b\x00\x00\x00\x00\x00\x00\xe9\x1b\x00\x00\x00\x00\x6a\x07\xd5\x15\xa6\x17\x1f\x11\x1f\x11\xc5\x07\xd5\x15\xd2\x07\xd1\x07\xc2\x07\x57\x07\x00\x00\x57\x07\x11\x00\x00\x00\x00\x00\xbb\x07\x32\x17\x67\x07\x32\x05\xc4\x07\x5a\x07\x56\x07\xa2\x07\x00\x00\x0b\x17\x00\x00\x68\x07\x00\x00\x00\x00\x5e\x07\xb4\x07\x00\x00\x7f\x15\x00\x00\x00\x00\x00\x00\x1f\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x08\x00\x00\x00\x00\x8c\x19\x00\x00\x00\x00\x00\x00\x1f\x11\x1f\x11\x1f\x11\x1f\x11\x61\x00\x00\x00\xb6\x07\xa0\x07\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x04\x5f\x00\x24\x00\x00\x00\xa1\x07\x22\x1b\x3f\x00\x97\x07\x04\x02\x8c\x19\x22\x1b\x95\x07\x0c\x19\xcc\x19\xa9\x1a\x00\x00\x3f\x0d\x3f\x0d\x49\x07\x00\x00\x8c\x19\x8c\x19\x8c\x19\x90\x07\x4d\x07\xcf\x04\xcf\x04\x6d\x07\x00\x00\x81\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x07\xa0\x01\x7f\x07\x00\x00\x00\x00\x7e\x03\x55\x0a\x66\x07\x61\x07\x8a\x1b\x54\x07\x7d\x07\x64\x07\x47\x00\x9d\x04\x0b\x17\x00\x00\x58\x07\xd1\x01\x60\x07\x6b\x07\x00\x00\x00\x00\x1f\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x08\x00\x00\x00\x00\x00\x00\x9e\x01\x00\x00\x00\x00\x8a\x04\x4f\x0b\x8e\x01\x69\x07\x63\x07\x5d\x07\x5c\x07\x59\x07\x00\x00\x55\x07\x0b\x17\x4e\x07\x48\x07\xcc\x19\x0b\x17\x0b\x17\xab\x13\x00\x00\x59\x04\x15\x15\x22\x1b\x8c\x19\x2c\x00\x8c\x19\xeb\x08\x00\x00\xcd\x12\x3c\x07\x00\x00\x00\x00\x40\x01\xdc\x00\x00\x00\x3e\x01\x45\x07\x39\x07\x89\x01\x34\x07\x00\x00\x33\x07\xa9\x1a\x00\x00\x00\x00\xa9\x1a\x00\x00\xa9\x1a\x00\x00\x00\x00\x54\x1a\x8c\x19\xa9\x1a\x00\x00\x50\x00\x2c\x07\x00\x00\x00\x00\x00\x00\x42\x07\x00\x00\x13\x07\x00\x00\x23\x00\x21\x00\x1d\x00\x5f\x02\x00\x00\x00\x00\x00\x00\x4c\x1a\x00\x00\x0a\x07\x08\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x19\x00\x00\x00\x00\x2b\x01\x00\x00\x00\x00\x8c\x19\x00\x00\x00\x00\x00\x00\x8c\x18\x8c\x19\xfd\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x1b\x2c\x00\xc0\x06\xad\x06\x2b\x01\xae\x06\xe4\x02\x81\x01\x00\x00\x00\x00\xa6\x06\xe1\x06\x00\x00\x1f\x11\x27\x10\xd8\x01\x00\x00\xdf\x06\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x06\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x0a\x00\x00\x00\x00\x5c\x01\x00\x00\x1f\x11\x1f\x11\x00\x00\xd6\x06\x00\x00\xc3\x0c\x00\x00\xc3\x0c\x1f\x11\x37\x0e\x86\x06\x1f\x11\x00\x00\x27\x10\xbf\x14\x00\x00\x1f\x11\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\xde\x06\x97\x16\x4b\x14\x00\x00\x07\x07\x00\x00\x00\x00\xb3\x08\xcd\x06\x80\x06\x00\x00\xc1\x06\xce\x06\x00\x00\xbe\x06\x00\x00\x00\x00\x00\x00\xbf\x06\x00\x00\xb8\x06\xac\x06\xb7\x06\xb0\x06\x3f\x0d\xb4\x06\xb3\x06\x50\x00\x9f\x06\x00\x00\x98\x06\xa9\x1a\x8c\x19\x46\x06\x3d\x06\x8c\x19\x9b\x06\xaf\x06\x8f\x06\x54\x06\x9a\x06\x00\x00\x95\x1a\x00\x00\x91\x06\x8d\x06\x95\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x06\x00\x00\x00\x00\x1f\x11\x00\x00\x1f\x11\x89\x12\x78\x06\x77\x06\x50\x00\x50\x00\x1f\x11\x00\x00\x1f\x11\x1f\x11\x1f\x11\x6a\x06\x5c\x04\x00\x00\x00\x00\x44\x06\x00\x00\x00\x00\x00\x00\x00\x00\x65\x06\x59\x09\x50\x00\x4b\x14\x3c\x06\x68\x06\x6d\x06\x61\x06\x63\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x06\x00\x00\x0c\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x11\x65\x1b\x8c\x19\x3f\x06\x00\x00\xda\x05\x33\x06\x00\x00\x00\x00\x00\x00\x00\x00\xa9\x1a\x00\x00\x8c\x19\x00\x00\x00\x00\xf9\x05\x00\x00\x00\x00\x3f\x0d\x00\x00\x1f\x11\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x18\x26\x06\x30\x06\x00\x00\x00\x00\x2f\x06\x00\x00\x00\x00\x00\x00\x00\x00\x23\x06\x00\x00\x28\x0b\x1a\x01\xb3\x08\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x06\x00\x00\x87\x04\x53\x04\x4d\x04\x1e\x04\xef\x03\xc5\x03\x8b\x03\x26\x03\x22\x03\x11\x03\x09\x03\xe9\x02\x00\x00\x55\x0a\x22\x06\x05\x06\x00\x00\x31\x00\x00\x00\x16\x06\x1a\x06\x00\x00\x00\x00\x1a\x06\x0b\x06\x0f\x06\x00\x00\x00\x00\x00\x00\xab\x0f\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x06\x00\x00\x00\x00\x00\x00\x45\x01\x00\x00\x00\x00\x1f\x11\x00\x00\x5e\x12\x3b\x00\x00\x00\x00\x00\x00\x00\x51\x1b\x8c\x19\x02\x06\x00\x00\xe1\x08\x00\x00\x00\x00\x00\x00\xfc\x05\x2b\x01\x00\x00\x00\x00\x08\x06\x00\x00\xfe\x01\xc7\x05\xab\x05\xf6\x05\xf4\x05\xeb\x08\x00\x00\xee\x05\x00\x00\xfd\x05\xf1\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x06\x0b\x00\x00\x00\x00\x00\x00\x00\x2b\x01\x00\x00\x00\x00\x00\x00\xea\x05\x00\x00\x00\x00\x00\x00\x4c\x19\xaa\x05\x00\x00\x00\x00\x00\x00\xec\x05\x2b\x01\xe8\x11\x00\x00\x2e\x08\xe1\x08\x00\x00\x00\x00\xda\x08\x53\x00\xdb\x05\xd7\x05\x96\x18\xa9\x1a\x6e\x05\x86\x05\x00\x00\x00\x00\x1a\x01\x2f\x0f\x1f\x11\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x11\x8b\x05\x08\x00\x37\x0e\x37\x0e\x00\x00\x7b\x05\x1f\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x16\x00\x00\xc2\x05\xae\x05\xa9\x1a\xbb\x0d\xb3\x05\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x18\x61\x13\xa4\x05\x50\x00\x00\x00\x00\x00\x00\x00\x8c\x19\x00\x00\x00\x00\x49\x05\xa6\x05\x4a\x1b\x00\x00\x33\x01\x93\x05\x1f\x11\x1f\x11\x55\x04\x9c\x05\xf5\x12\x9c\x05\x83\x05\x45\x05\x3d\x05\x38\x05\x00\x00\x24\x1a\x00\x00\xa9\x03\x00\x00\x00\x00\x00\x00\x00\x00\x35\x05\x00\x00\x36\x05\x1c\x05\xd7\x09\x7d\x05\x00\x00\x00\x00\x88\x05\x70\x05\x00\x00\x00\x00\x00\x00\x79\x05\x00\x00\xb8\x04\x00\x00\x00\x00\x00\x00\x82\x05\x00\x00\x00\x00\x58\x05\x00\x00\x00\x00\x1f\x11\x64\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x1b\x00\x00\xa9\x1a\x5d\x05\x00\x00\x00\x00\x9b\x11\x6d\x05\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x02\x00\x00\xa9\x1a\x00\x00\x00\x00\x4e\x03\x00\x00\x59\x05\x00\x00\x1f\x11\x1f\x11\x1f\x11\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x05\x00\x00\x00\x00\x53\x05\x20\x14\x9a\x08\x63\x05\x00\x00\x00\x00\xa9\x1a\xdb\x04\x84\x08\x00\x00\xa9\x1a\xa9\x1a\xd3\x04\x00\x00\x00\x00\x00\x00\x29\x02\x34\x05\x50\x00\x00\x00\x33\x05\x3a\x05\x00\x00\xf9\x04\x30\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x05\x44\x00\x11\x05\x00\x00\x0c\x1a\x0f\x05\x00\x00\xa9\x1a\x00\x00\xe3\x00\xd9\x00\x00\x00\x00\x00\x0d\x05\xa9\x1a\x00\x00\x00\x00\xbc\x04\x00\x00\x00\x00\x00\x00\xfc\x15\x1f\x11\x00\x00\xab\x04\xfb\x04\x00\x00\x2f\x0f\x1f\x11\xb3\x0e\xfe\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x19\xcc\x19\x0a\x1b\xef\x04\x8c\x19\xd6\x13\xfa\x04\x2c\x00\x8c\x19\x00\x00\xe9\x04\x00\x00\xb2\x18\xf3\x04\x81\x1a\x00\x00\x1f\x03\x00\x00\x00\x00\x00\x00\xf7\x04\x00\x00\xb8\x04\x00\x00\xfc\x15\x00\x00\x00\x00\x1e\x01\x00\x00\x00\x00\x00\x00\x00\x00\xed\x04\xf6\x04\xe0\x04\x98\x04\x7e\x04\x00\x00\x00\x00\x8c\x19\x67\x04\xbf\x04\xbb\x04\xb6\x04\xb6\x04\x12\x12\xc4\x04\x00\x00\x00\x00\x09\x01\x00\x00\x00\x00\x00\x00\xf1\xff\x8b\x04\x1f\x11\x00\x00\x00\x00\x0a\x1b\x44\x08\x69\x1a\x69\x1a\x8c\x19\xca\x01\xb0\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x1a\x35\x04\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x11\x00\x00\x00\x00\x00\x00\x8c\x19\x00\x00\x00\x00\x8e\x04\x00\x00\x00\x00\x1d\x04\x00\x00\x00\x00\x55\x15\x4a\x04\x41\x04\x2d\x00\xb8\x04\x00\x00\x00\x00\x1f\x11\x3e\x04\x00\x00\x00\x00\x5a\x04\x00\x00\x69\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x04\x00\x00\xea\x14\x00\x00\x52\x04\x51\x04\x00\x00\x00\x00\x00\x00\x57\x04\x1a\x08\x47\x04\x55\x15\x00\x00\x00\x00\x00\x00\x71\x00\x00\x00\x3b\x04\x00\x00\x00\x00\x00\x00"# happyGotoOffsets :: HappyAddr -happyGotoOffsets = HappyA# "\x01\x00\x56\x22\xd6\x24\x61\x02\xd6\x05\x03\x00\x02\x00\x4e\x04\x1b\x04\x00\x00\x00\x00\x00\x00\x37\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x03\x88\x04\xea\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x03\x00\x00\x00\x00\x00\x00\x13\x04\x00\x00\xd7\x06\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x59\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x22\xa1\x03\xbe\x22\x00\x00\x3e\x2b\x22\x16\x28\x2b\xc0\x24\x00\x00\x03\x22\xed\x21\x8e\x29\xc3\x05\x56\x03\x98\x03\xce\x00\x00\x00\xa8\x06\xe6\x28\x00\x00\xd0\x28\xc4\x06\x00\x00\x00\x00\x00\x00\x90\xff\x00\x00\x00\x00\x00\x00\xb1\x06\x8e\xff\x00\x00\x61\x03\xee\x03\x9e\x02\xe4\x03\xb3\x03\x7a\x07\x1b\x03\x00\x00\x00\x00\x00\x00\x9d\x08\x00\x00\x00\x00\x00\x00\xbd\x16\x0d\x2b\x9a\x21\x7e\x28\xf5\xff\x02\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\x02\x00\x00\x00\x00\xf9\xff\x9e\x06\xc6\x03\x3e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x2a\x00\x00\x00\x00\x1f\x00\x04\x00\x00\x00\x00\x00\x00\x00\x58\x17\x00\x00\x00\x00\x00\x00\xa4\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x02\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x68\x28\x16\x28\x00\x28\xae\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x01\x00\x00\x00\x00\x00\x00\xcf\x03\x5d\x02\x00\x00\x00\x00\x85\x01\x9c\x06\x0d\x02\x00\x00\x37\x07\x38\x04\x9f\x03\x00\x00\x68\x1e\x15\x1e\x8a\x03\x00\x00\x88\x06\x2a\x01\x73\x06\xb8\x03\x00\x00\xb0\x03\xa0\x03\x00\x00\x31\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\xff\x2c\x03\x00\x00\x00\x00\x00\x00\x34\x03\x24\x01\x00\x00\x00\x00\x56\x08\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x05\xcb\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x23\x16\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x16\x00\x00\x00\x00\x33\x03\xb5\x2a\x9a\x2a\x19\x02\x00\x00\x95\x05\xec\x29\x5b\x00\x9d\x05\xd8\x00\x89\x05\xec\xff\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x02\x60\x06\x00\x00\x9f\x01\x00\x00\xc9\x00\x00\x00\x00\x00\x32\x02\x4d\x06\x13\x05\xcc\x02\x00\x00\xd0\x03\xb5\x03\x86\x03\x06\x00\x71\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x06\x00\x00\x00\x00\x3e\x05\x00\x00\x00\x00\x27\x06\x00\x00\x00\x00\x00\x00\xf8\x00\xfe\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\xbe\x00\x35\x03\x00\x00\x2c\x05\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x03\x0d\x03\x00\x00\x84\x21\xc2\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x23\x00\x00\x00\x00\x9c\x01\x00\x00\x6e\x24\x98\x27\x00\x00\x00\x00\x00\x00\x2e\x23\x00\x00\xdc\x22\x46\x27\x7d\x1b\x0c\x03\x30\x27\x00\x00\x6f\x1d\x00\x00\x00\x00\xa4\x29\x00\x00\x00\x00\xae\x02\x54\x03\x00\x00\x00\x00\xac\x02\x58\x2a\x00\x00\x43\x03\x00\x00\x00\x00\x1b\x00\x79\xff\xfc\x02\xed\x03\xcf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x02\x00\x00\x00\x00\x00\x00\x00\x00\x77\x02\x1c\x1d\xef\xff\x8a\xff\x47\x02\x00\x00\x00\x00\x95\x02\xcc\x04\x74\x05\x00\x00\x00\x00\xaa\x03\x00\x00\x00\x00\x00\x00\xc7\x02\xb8\x02\x00\x00\x05\x07\x00\x00\x00\x00\x00\x00\x3b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x26\x00\x00\xc8\x26\x95\x01\x00\x00\x00\x00\x12\x02\xf4\x01\x76\x26\x00\x00\x60\x26\x0e\x26\xf8\x25\x00\x00\xb6\x02\x00\x00\x00\x00\x00\x00\x1b\x02\x00\x00\xb9\x04\x84\x04\x00\x00\x60\x00\xd6\x01\x42\x2a\x9a\x02\x27\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x03\x00\x00\xdd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x29\x2f\x00\x8f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x01\x00\x00\x39\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x1c\x00\x00\x31\x21\x2a\x00\x25\x00\x00\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x01\x00\x00\x1a\x00\x09\x00\x00\x00\x00\x00\x00\x00\xd2\xff\xc1\x01\xee\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xff\x00\x00\x00\x00\xde\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\x00\x00\x00\xa6\x25\x00\x00\xea\x01\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x26\x05\x00\x00\x00\x00\x0f\x07\x25\x02\x00\x00\x00\x00\x00\x00\x8a\x02\x00\x00\x00\x00\xdd\xff\x00\x00\xa9\xff\x23\x02\x00\x00\x00\x00\x00\x00\xb2\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x04\x00\x00\x00\x00\x00\x00\xd9\xff\x00\x00\x00\x00\x00\x00\x75\x04\x17\x02\x00\x00\x3d\x00\x36\x00\x00\x00\x86\x02\x92\x00\x00\x00\x0d\x01\x00\x00\x00\x00\x00\x00\x52\x07\x9b\xff\x00\x00\x00\x00\xc1\x03\x65\x07\x00\x00\x7e\x02\x00\x00\x00\x00\xa3\x01\xbb\x1e\xc8\x20\x00\x00\x00\x00\x00\x00\x00\x00\x90\x25\x00\x00\x00\x00\x23\x1c\xd0\x1b\x00\x00\x00\x00\xb2\x20\x00\x00\x00\x00\x00\x00\xd0\x01\x00\x00\x73\x2a\x00\x00\x00\x00\x00\x00\x84\x03\xf0\x23\x00\x00\x7f\x01\x6d\x00\x30\x00\x88\x01\x6a\x02\x00\x00\xc8\x02\x00\x00\x7b\x01\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\xbf\x01\x00\x00\x3e\x25\x5f\x20\x7c\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\xff\x00\x00\x00\x00\x00\x00\x53\x02\x00\x00\x00\x00\x26\x02\x00\x00\x18\x02\x00\x00\x76\x00\x00\x00\x8f\x01\x00\x00\x00\x00\x09\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x3e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\xfd\x01\xc7\x01\x00\x00\x00\x00\x42\x01\x00\x00\x39\x01\x00\x00\x00\x00\x28\x02\x00\x00\x9c\x03\x00\x00\x3a\x01\x00\x00\x00\x00\x34\x01\x00\x00\x00\x00\x00\x00\xf6\x1f\xe0\x1f\x8d\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x00\xcd\x03\x25\x01\x00\x00\x00\x00\x5f\x07\x00\x00\x24\x07\x25\x04\x4c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x01\x00\x00\x00\x00\x6f\x01\x00\x00\x00\x00\x0d\x01\x0d\x01\x00\x00\x00\x00\x00\x00\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x03\x58\x24\x00\x00\xf9\x00\xb0\x00\x00\x00\x76\x1c\x77\x1f\x06\x24\x00\x00\x00\x00\x00\x00\x00\x00\x59\x01\x00\x00\x00\x00\xe9\x05\x57\x02\xcf\x01\x00\x00\xea\x04\xe6\x02\x00\x00\xea\xff\xd6\x04\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x34\x01\x00\x00\x00\x00\x00\x00\x1b\x01\x00\x00\x4e\x00\x00\x00\xee\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xc2\x04\x00\x00\x00\x00\x00\x00\x5d\x00\x26\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x1f\x00\x00\x00\x00\x5f\x01\xeb\x03\x12\x06\x5f\x05\xaf\x04\xc9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x1f\x00\x00\x00\x00\x00\x00\x9c\x04\x00\x00\x00\x00\xd3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x00\x00\x00\x4f\x00\xe3\x02\x5a\xff\x00\x00\x00\x00\x28\x25\xb1\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\xff\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +happyGotoOffsets = HappyA# "\x01\x00\x38\x22\xb8\x24\x61\x02\xd6\x05\x03\x00\x02\x00\x4e\x04\x1b\x04\x00\x00\x00\x00\x00\x00\x37\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x03\x88\x04\xea\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x03\x00\x00\x00\x00\x00\x00\x13\x04\x00\x00\xc4\x06\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\x3b\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x22\xa1\x03\xa0\x22\x00\x00\x20\x2b\x04\x16\x0a\x2b\xa2\x24\x00\x00\xe5\x21\xcf\x21\x70\x29\xc3\x05\x56\x03\x98\x03\xce\x00\x00\x00\xa8\x06\xc8\x28\x00\x00\xb2\x28\xb1\x06\x00\x00\x00\x00\x00\x00\x90\xff\x00\x00\x00\x00\x00\x00\x9c\x06\x8e\xff\x00\x00\x61\x03\xee\x03\x9e\x02\xe4\x03\xb3\x03\x7a\x07\x1b\x03\x00\x00\x00\x00\x00\x00\x33\x09\x00\x00\x00\x00\x00\x00\x9f\x16\xef\x2a\x7c\x21\x60\x28\xf5\xff\xe4\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\x02\x00\x00\x00\x00\xf9\xff\x9e\x06\xc6\x03\x3e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x2a\x00\x00\x00\x00\x1f\x00\x04\x00\x00\x00\x00\x00\x00\x00\x3a\x17\x00\x00\x00\x00\x00\x00\x86\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x02\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x4a\x28\xf8\x27\xe2\x27\x90\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x01\x00\x00\x00\x00\x00\x00\xcf\x03\x5d\x02\x00\x00\x00\x00\x85\x01\x88\x06\x0d\x02\x00\x00\x37\x07\x38\x04\x9f\x03\x00\x00\x4a\x1e\xf7\x1d\x8a\x03\x00\x00\x73\x06\x2a\x01\x60\x06\xb8\x03\x00\x00\xb0\x03\xa0\x03\x00\x00\x31\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\xff\x2c\x03\x00\x00\x00\x00\x00\x00\x34\x03\x24\x01\x00\x00\x00\x00\xb8\x08\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x05\xad\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x23\x16\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x16\x00\x00\x00\x00\x33\x03\x97\x2a\x7c\x2a\x19\x02\x00\x00\x95\x05\xce\x29\x5b\x00\x9d\x05\xd8\x00\x89\x05\xec\xff\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x02\x00\x00\x00\x00\x9f\x01\x00\x00\xc9\x00\x00\x00\x00\x00\x32\x02\x4d\x06\x13\x05\x00\x00\xcc\x02\x00\x00\xd0\x03\xb5\x03\x86\x03\x06\x00\x71\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x06\x00\x00\x00\x00\x3e\x05\x00\x00\x00\x00\x27\x06\x00\x00\x00\x00\x00\x00\xf8\x00\xfe\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\xbe\x00\x35\x03\x00\x00\x2c\x05\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x03\x0d\x03\x00\x00\x66\x21\xa4\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x23\x00\x00\x00\x00\x9c\x01\x00\x00\x50\x24\x7a\x27\x00\x00\x00\x00\x00\x00\x10\x23\x00\x00\xbe\x22\x28\x27\x5f\x1b\x0c\x03\x12\x27\x00\x00\x51\x1d\x00\x00\x00\x00\x86\x29\x00\x00\x00\x00\xae\x02\x54\x03\x00\x00\x00\x00\xac\x02\x3a\x2a\x00\x00\x43\x03\x00\x00\x00\x00\x1b\x00\x79\xff\xfc\x02\xed\x03\xcf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x02\x00\x00\x00\x00\x00\x00\x00\x00\x77\x02\xfe\x1c\xef\xff\x8a\xff\x47\x02\x00\x00\x00\x00\x95\x02\xcc\x04\x74\x05\x00\x00\x00\x00\xaa\x03\x00\x00\x00\x00\x00\x00\xc7\x02\xb8\x02\x00\x00\x05\x07\x00\x00\x00\x00\x00\x00\x3b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x26\x00\x00\xaa\x26\x95\x01\x00\x00\x00\x00\x12\x02\xf4\x01\x58\x26\x00\x00\x42\x26\xf0\x25\xda\x25\x00\x00\xb6\x02\x00\x00\x00\x00\x00\x00\x1b\x02\x00\x00\xb9\x04\x84\x04\x00\x00\x60\x00\xd6\x01\x24\x2a\x9a\x02\x27\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x03\x00\x00\xdd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x29\x2f\x00\x8f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x01\x00\x00\x39\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x1c\x00\x00\x13\x21\x2a\x00\x25\x00\x00\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x01\x00\x00\x1a\x00\x09\x00\x00\x00\x00\x00\x00\x00\xd2\xff\xc1\x01\xee\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\xff\x00\x00\x00\x00\xde\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\x00\x00\x00\x88\x25\x00\x00\xea\x01\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x26\x05\x00\x00\x00\x00\x0f\x07\x25\x02\x00\x00\x00\x00\x00\x00\x8a\x02\x00\x00\x00\x00\xdd\xff\x00\x00\xa9\xff\x23\x02\x00\x00\x00\x00\x00\x00\xb2\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x04\x00\x00\x00\x00\x00\x00\xd9\xff\x00\x00\x00\x00\x00\x00\x75\x04\x17\x02\x00\x00\x3d\x00\x36\x00\x00\x00\x86\x02\x92\x00\x00\x00\x0d\x01\x24\x07\x00\x00\x00\x00\x52\x07\x9b\xff\x00\x00\x00\x00\xc1\x03\x65\x07\x00\x00\x7e\x02\x00\x00\x00\x00\xa3\x01\x9d\x1e\xaa\x20\x00\x00\x00\x00\x00\x00\x00\x00\x72\x25\x00\x00\x00\x00\x05\x1c\xb2\x1b\x00\x00\x00\x00\x94\x20\x00\x00\x00\x00\x00\x00\xd0\x01\x00\x00\x55\x2a\x00\x00\x00\x00\x00\x00\x84\x03\xd2\x23\x00\x00\x7f\x01\x6d\x00\x30\x00\x88\x01\x6a\x02\x00\x00\xc8\x02\x00\x00\x7b\x01\x00\x00\x00\x00\x00\x00\x74\x03\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\xbf\x01\x00\x00\x20\x25\x41\x20\x7c\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\xff\x00\x00\x00\x00\x00\x00\x53\x02\x00\x00\x00\x00\x26\x02\x00\x00\x18\x02\x00\x00\x76\x00\x00\x00\x8f\x01\x00\x00\x00\x00\x09\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x3e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x08\x00\x00\xfd\x01\xc7\x01\x00\x00\x00\x00\x42\x01\x00\x00\x39\x01\x00\x00\x00\x00\x28\x02\x00\x00\x9c\x03\x00\x00\x3a\x01\x00\x00\x00\x00\x34\x01\x00\x00\x00\x00\x00\x00\xd8\x1f\xc2\x1f\x6f\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x00\xcd\x03\x25\x01\x00\x00\x00\x00\x5f\x07\x00\x00\x0d\x01\x00\x00\x25\x04\x4c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x01\x00\x00\x00\x00\x6f\x01\x00\x00\x00\x00\x0d\x01\x00\x00\x00\x00\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x03\x3a\x24\x00\x00\xf9\x00\xb0\x00\x00\x00\x58\x1c\x59\x1f\xe8\x23\x00\x00\x00\x00\x00\x00\x00\x00\x59\x01\x00\x00\x00\x00\xe9\x05\x57\x02\xcf\x01\x00\x00\xea\x04\xe6\x02\x00\x00\xea\xff\xd6\x04\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x12\x00\x00\x00\x34\x01\x00\x00\x00\x00\x00\x00\x1b\x01\x00\x00\x4e\x00\x00\x00\xee\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xc2\x04\x00\x00\x00\x00\x00\x00\x5d\x00\x26\x00\xf0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x1f\x00\x00\x00\x00\x5f\x01\xeb\x03\x12\x06\x5f\x05\xaf\x04\xc9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x1e\x00\x00\x00\x00\x00\x00\x9c\x04\x00\x00\x00\x00\xd3\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x00\x00\x00\x4f\x00\xe3\x02\x5a\xff\x00\x00\x00\x00\x0a\x25\xb1\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\xff\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# happyDefActions :: HappyAddr -happyDefActions = HappyA# "\xbd\xfd\x00\x00\x00\x00\x00\x00\x00\x00\xbd\xfd\x00\x00\x00\x00\xf2\xff\x00\x00\x51\xff\x38\xff\x58\xff\x4e\xff\x4c\xff\x45\xff\x00\x00\x3b\xff\x00\x00\x00\x00\xe1\xfd\xb6\xfd\x01\xfe\x3e\xff\xdb\xfd\x4b\xff\xe8\xfd\xdd\xfd\xdc\xfd\xd9\xfd\xda\xfd\x00\x00\x00\x00\x00\x00\xe4\xfd\xe0\xfd\xdf\xfd\xde\xfd\xe3\xfd\xe2\xfd\xe7\xfd\x31\xff\xe5\xfd\xe6\xfd\x8a\xff\xb1\xff\x00\x00\x00\x00\x95\xff\x8b\xff\x89\xff\xd5\xfe\xc2\xfe\xb8\xfe\xb3\xfe\xab\xfe\xa7\xfe\x99\xfe\xa4\xfe\xa5\xfe\xa6\xfe\x08\xfe\x03\xfe\xea\xfd\xfe\xfd\xa3\xfe\xe9\xfd\xc7\xfd\xc5\xfd\xc6\xfd\xc4\xfd\xc3\xfd\xc2\xfd\xc1\xfd\xc0\xfd\xbf\xfd\xbe\xfd\x00\x00\x00\x00\x00\x00\x9d\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x98\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xbd\xfd\x00\x00\x00\x00\x8e\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xff\x00\x00\x00\x00\xbd\xfd\xaf\xff\xae\xff\xad\xff\x00\x00\xbd\xfd\x93\xff\x00\x00\x6b\xff\x00\x00\x6b\xff\x6d\xff\x5f\xff\x5f\xff\x23\xfe\xcd\xfe\xc7\xfe\xc6\xfe\xc4\xfe\xbd\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xfe\x00\x00\xe9\xff\xf9\xff\xf7\xff\xbd\xfd\x00\x00\xe9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\xfe\x00\x00\x7d\xff\x00\x00\xdd\xff\xdd\xff\x00\x00\x00\x00\x22\xfe\x00\x00\xb1\xfe\xf0\xfd\xef\xfd\xcc\xfe\xf4\xfd\xeb\xfd\xd8\xfd\xfa\xfd\xd5\xfd\xd4\xfd\xd1\xfd\xd6\xfd\xc8\xfd\xd7\xfd\x00\x00\xce\xfd\xec\xfd\x00\x00\xd0\xfd\xcf\xfd\xcd\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xff\x00\x00\x5d\xff\x5a\xff\x5b\xff\x07\xfe\x00\xfe\x00\x00\x00\x00\x00\x00\x6e\xff\x6b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xff\x00\x00\x00\x00\xb9\xfe\x1d\xfe\x1d\xfe\xe6\xfe\xba\xfe\x00\x00\x90\xff\x00\x00\x2b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xfe\x78\xfe\x74\xfe\x77\xfe\x76\xfe\x75\xfe\x70\xfe\x6f\xfe\x6e\xfe\x6d\xfe\x6c\xfe\x6b\xfe\x6a\xfe\x69\xfe\x68\xfe\x67\xfe\x72\xfe\x71\xfe\x66\xfe\x65\xfe\x64\xfe\x63\xfe\x62\xfe\x61\xfe\x60\xfe\x5f\xfe\x5e\xfe\x5d\xfe\x5c\xfe\x5b\xfe\x5a\xfe\x59\xfe\x58\xfe\x57\xfe\x56\xfe\x55\xfe\x54\xfe\x53\xfe\x52\xfe\x51\xfe\x50\xfe\x73\xfe\x4f\xfe\x4e\xfe\x4d\xfe\x8f\xfe\x90\xfe\x00\x00\x00\x00\x00\x00\x92\xfe\x91\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xc6\xfe\x00\x00\x00\x00\x84\xfe\x00\x00\x00\x00\xbb\xfe\xac\xfe\x8b\xfe\x47\xfe\x00\x00\x46\xfe\xee\xfd\xed\xfd\x00\x00\xf8\xfd\xd3\xfd\xd2\xfd\xcc\xfd\x0c\xfe\x00\x00\xca\xfd\xcb\xfd\xc9\xfd\x00\x00\x0a\xfe\x8c\xfe\x8b\xfe\x00\x00\x00\x00\x00\x00\xf4\xfd\x00\x00\xd2\xfd\xcc\xfd\x0d\xfe\xca\xfd\xd0\xfd\xcb\xfd\xc9\xfd\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x1f\xff\x00\x00\x00\x00\xb0\xff\x00\x00\x00\x00\x42\xff\x34\xff\x00\x00\x00\x00\x40\xff\x34\xff\x00\x00\x00\x00\x00\x00\x00\x00\x44\xff\x00\x00\x00\x00\x00\x00\x4f\xff\x00\x00\x3c\xff\x00\x00\xb4\xfd\xb3\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\xdd\xff\xdd\xff\x00\x00\xdd\xff\xec\xff\xde\xff\x00\x00\x00\x00\x00\x00\xf2\xff\xf4\xff\xbb\xfd\xbc\xfd\x54\xff\x55\xff\x00\x00\x00\x00\x56\xff\x57\xff\x39\xff\x52\xff\x43\xff\x3d\xff\x41\xff\x8d\xfe\x00\x00\x4a\xff\x47\xff\x00\x00\x3f\xff\x49\xff\x00\x00\x48\xff\x32\xff\x30\xff\x00\x00\x00\x00\xb2\xff\xf2\xfd\xf1\xfd\xab\xff\xf6\xfd\xfc\xfd\x00\x00\x1f\xff\x02\xff\x00\x00\x00\x00\x18\xff\x86\xff\x00\x00\x79\xff\xc3\xfe\xd7\xfe\xd3\xfe\xd1\xfe\x00\x00\x00\x00\x00\x00\x15\xfe\x13\xfe\xaa\xfe\x12\xfe\xad\xfe\xae\xfe\x00\x00\x53\xff\x02\xfe\xfd\xfd\x9c\xfe\x00\x00\xa1\xfe\xa2\xfe\x00\x00\x0b\xfe\x00\x00\x00\x00\x09\xfe\x00\x00\x8a\xfe\x00\x00\x9e\xfe\x00\x00\x45\xfe\x00\x00\xd7\xfe\x00\x00\x9b\xfe\x00\x00\x9b\xff\x96\xfe\x00\x00\x95\xfe\x94\xfe\x00\x00\xdd\xff\xa8\xff\x00\x00\x00\x00\x48\xfe\x7f\xfe\x73\xff\x78\xff\x77\xff\x00\x00\xbd\xfd\xf2\xfe\x2d\xff\xf6\xfe\x00\x00\x91\xff\x53\xff\x92\xff\x9d\xff\x9e\xff\xbd\xfd\x18\xfe\xcf\xfe\x00\x00\x00\x00\x1b\xfe\x1d\xfe\xbd\xfd\xbd\xfd\x00\x00\x00\x00\x59\xff\xf6\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xff\x6f\xff\x98\xff\x61\xff\x97\xff\x00\x00\x00\x00\x00\x00\x5e\xff\x96\xff\xc8\xfe\xc9\xfe\xca\xfe\xcb\xfe\xce\xfe\x00\x00\xc5\xfe\xb2\xfe\x00\x00\x97\xfe\x00\x00\x8e\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaf\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xff\xba\xfd\xb9\xfd\x00\x00\x4b\xfe\xeb\xff\xdd\xff\xdd\xff\x00\x00\xe0\xff\x00\x00\x48\xfe\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\xb6\xfe\xb7\xfe\xbe\xfe\xc0\xfe\x7b\xff\x87\xff\x7c\xff\x88\xff\xdd\xff\x8c\xff\xdd\xff\x0f\xfe\xa6\xfe\xdf\xff\x00\x00\xc1\xfe\xf9\xfd\x5c\xff\x06\xfe\xff\xfd\x62\xff\x70\xff\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xff\x00\x00\x80\xff\x7e\xff\x81\xff\x84\xff\xa7\xff\x54\xff\xa6\xff\x00\x00\x20\xfe\x17\xfe\x1a\xfe\x1e\xfe\x1f\xfe\x1d\xfe\x21\xfe\x00\x00\xdd\xff\xdd\xff\x9c\xff\xa2\xff\x00\x00\x00\x00\x2a\xff\x28\xff\x9f\xff\xbd\xfd\xbc\xfe\xdd\xff\xdd\xff\x99\xff\x00\x00\x05\xfe\x00\x00\x00\x00\x00\x00\x76\xff\x75\xff\x74\xff\x49\xfe\x00\x00\x4c\xfe\x00\x00\xe8\xfd\xd9\xfd\xe4\xfd\xe0\xfd\xdf\xfd\xde\xfd\xe3\xfd\xe2\xfd\xe7\xfd\xe5\xfd\xe6\xfd\x79\xfe\xde\xff\xaa\xff\x00\x00\x30\xfe\x00\x00\x32\xfe\x00\x00\xbd\xfd\x85\xfe\xd9\xfe\xbd\xfd\x41\xfe\x3d\xfe\x3b\xfe\x3a\xfe\x39\xfe\x00\x00\x43\xfe\x8b\xfe\x3f\xfe\x40\xfe\xf7\xfd\x89\xfe\x82\xfe\x83\xfe\x9f\xfe\xa0\xfe\x00\x00\x86\xfe\xa8\xfe\x00\x00\xa9\xfe\x00\x00\x00\x00\xd4\xfe\xd2\xfe\xda\xfe\x00\x00\x00\x00\x1e\xff\x1c\xff\x00\x00\x31\xff\xf5\xfe\xfc\xfe\xfb\xfe\x00\x00\xf8\xfe\xf9\xfe\xbd\xfd\xa4\xff\x00\x00\x02\xff\x00\x00\x00\x00\x00\x00\x00\x00\x3a\xff\x00\x00\x33\xff\x00\x00\x35\xff\xb5\xfd\xf3\xfd\xf3\xff\xef\xff\xee\xff\xf0\xff\x00\x00\x00\x00\xf1\xff\xed\xff\x46\xff\x00\x00\xac\xff\xf5\xfd\xfb\xfd\xbd\xfd\xa1\xff\x01\xff\xfd\xfe\x00\x00\x02\xff\x26\xff\xdd\xff\xdd\xff\x00\x00\x00\x00\x00\x00\x0b\xff\x13\xff\x00\x00\x1a\xff\x17\xff\x12\xff\x00\x00\x00\x00\x3e\xff\x00\x00\x00\x00\x00\x00\x18\xff\x85\xff\x7a\xff\x00\x00\x00\x00\x00\x00\x16\xfe\x14\xfe\x88\xfe\x87\xfe\x44\xfe\x38\xfe\x00\x00\x00\x00\x00\x00\xd8\xfe\x2f\xfe\x00\x00\x9a\xfe\x93\xfe\xa9\xff\x7d\xfe\x80\xfe\x00\x00\x9a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\xdd\xff\x2d\xff\x2d\xff\x2c\xff\xe4\xfe\x00\x00\x00\x00\x19\xfe\x1c\xfe\xa5\xff\x00\x00\x83\xff\x69\xff\x00\x00\x00\x00\x66\xff\x64\xff\x00\x00\x00\x00\x00\x00\x00\x00\xde\xff\x11\xfe\xde\xff\x8f\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdc\xff\xd7\xff\xf8\xff\x00\x00\xe4\xff\xdd\xff\xcd\xff\xe2\xff\xca\xff\xe5\xff\xc8\xff\x00\x00\xde\xff\xe1\xff\x7d\xfe\xf5\xff\x00\x00\xd7\xff\xd5\xff\xd4\xff\xb7\xfd\xd3\xff\xd8\xff\x00\x00\xea\xff\xe8\xff\xe7\xff\x00\x00\x8d\xff\x10\xfe\x00\x00\x0e\xfe\xbf\xfe\x00\x00\x00\x00\x65\xff\x67\xff\x82\xff\x7f\xff\xe7\xfe\xe8\xfe\x00\x00\xdd\xff\xe2\xfe\xdf\xfe\xe0\xfe\xe1\xfe\xd5\xfe\x94\xff\x00\x00\x6b\xff\x27\xff\x29\xff\xf0\xfe\x00\x00\x00\x00\x2d\xfe\x2e\xfe\xdd\xff\x2a\xfe\x00\x00\x71\xff\x00\x00\x04\xfe\x4a\xfe\x00\x00\x31\xfe\x3e\xfe\x3c\xfe\x00\x00\x00\x00\x00\x00\x42\xfe\xd0\xfe\x33\xfe\x1d\xff\x00\x00\x0a\xff\x4d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x0e\xff\x0f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\xff\xfa\xfe\xf7\xfe\x00\x00\x00\x00\x00\x00\xa3\xff\xfe\xfe\x00\x00\x00\xff\x02\xff\x00\x00\x2f\xff\xa0\xff\xff\xfe\x24\xff\x25\xff\xdd\xff\x21\xff\x00\x00\x00\x00\x00\x00\x11\xff\x36\xff\x13\xff\x1b\xff\x00\x00\x0d\xff\x50\xff\x16\xff\x00\x00\x00\x00\x07\xff\x15\xff\x3d\xff\x00\x00\x37\xfe\x35\xfe\x36\xfe\x7a\xfe\x7e\xfe\x7c\xfe\x00\x00\x00\x00\x72\xff\xd7\xfe\x27\xfe\x25\xfe\x00\x00\x00\x00\xde\xff\x2c\xfe\xf3\xfe\xf4\xfe\xed\xfe\xdd\xff\xee\xfe\xec\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\xff\xe5\xfe\x1f\xff\x00\x00\x6c\xff\x00\x00\xcf\xff\x00\x00\x00\x00\xd8\xff\xd9\xff\x00\x00\xce\xff\xe3\xff\xcb\xff\xc6\xff\xc9\xff\x00\x00\xc7\xff\x00\x00\xd6\xff\xda\xff\x00\x00\xb5\xff\xb4\xff\xb3\xff\xd1\xff\x00\x00\x00\x00\x00\x00\x02\xff\x00\x00\xe3\xfe\xd6\xfe\x00\x00\x00\x00\x00\x00\x51\xff\xf6\xfe\xf6\xfe\xde\xff\xf1\xfe\x2b\xfe\x28\xfe\x00\x00\x26\xfe\x29\xfe\x84\xfe\x00\x00\x00\x00\x00\x00\x09\xff\x14\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\xff\x23\xff\x22\xff\x20\xff\x10\xff\x0c\xff\x05\xff\x06\xff\x00\x00\x00\x00\x08\xff\x34\xfe\x81\xfe\x7b\xfe\x00\x00\xef\xfe\xe9\xfe\xeb\xfe\x00\x00\xde\xfe\xdd\xfe\xbd\xfd\xdc\xfe\x63\xff\x00\x00\xd2\xff\xd0\xff\x00\x00\x00\x00\xc4\xff\xc2\xff\x00\x00\xf6\xff\xb6\xff\x00\x00\x02\xff\xea\xfe\x24\xfe\x00\x00\x04\xff\x00\x00\xdb\xfe\xb5\xfe\xc5\xff\xcc\xff\xc3\xff\x00\x00\xbf\xff\xd7\xff\x03\xff\x00\x00\xd7\xff\xbc\xff\xbb\xff\xb8\xfd\xba\xff\x00\x00\x00\x00\xd8\xff\xc0\xff\xbd\xff\xc1\xff\x00\x00\xb8\xff\x00\x00\xb9\xff\xb7\xff"# +happyDefActions = HappyA# "\xbd\xfd\x00\x00\x00\x00\x00\x00\x00\x00\xbd\xfd\x00\x00\x00\x00\xf2\xff\x00\x00\x51\xff\x38\xff\x58\xff\x4e\xff\x4c\xff\x45\xff\x00\x00\x3b\xff\x00\x00\x00\x00\xe1\xfd\xb6\xfd\x01\xfe\x3e\xff\xdb\xfd\x4b\xff\xe8\xfd\xdd\xfd\xdc\xfd\xd9\xfd\xda\xfd\x00\x00\x00\x00\x00\x00\xe4\xfd\xe0\xfd\xdf\xfd\xde\xfd\xe3\xfd\xe2\xfd\xe7\xfd\x31\xff\xe5\xfd\xe6\xfd\x8a\xff\xb1\xff\x00\x00\x00\x00\x95\xff\x8b\xff\x89\xff\xd5\xfe\xc2\xfe\xb8\xfe\xb3\xfe\xab\xfe\xa7\xfe\x99\xfe\xa4\xfe\xa5\xfe\xa6\xfe\x08\xfe\x03\xfe\xea\xfd\xfe\xfd\xa3\xfe\xe9\xfd\xc7\xfd\xc5\xfd\xc6\xfd\xc4\xfd\xc3\xfd\xc2\xfd\xc1\xfd\xc0\xfd\xbf\xfd\xbe\xfd\x00\x00\x00\x00\x00\x00\x9d\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x98\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xbd\xfd\x00\x00\x00\x00\x8e\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xff\x00\x00\x00\x00\xbd\xfd\xaf\xff\xae\xff\xad\xff\x00\x00\xbd\xfd\x93\xff\x00\x00\x6b\xff\x00\x00\x6b\xff\x6d\xff\x5f\xff\x5f\xff\x23\xfe\xcd\xfe\xc7\xfe\xc6\xfe\xc4\xfe\xbd\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xfe\x00\x00\xe9\xff\xf9\xff\xf7\xff\xbd\xfd\x00\x00\xe9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\xfe\x00\x00\x7d\xff\x00\x00\xdd\xff\xdd\xff\x00\x00\x00\x00\x22\xfe\x00\x00\xb1\xfe\xf0\xfd\xef\xfd\xcc\xfe\xf4\xfd\xeb\xfd\xd8\xfd\xfa\xfd\xd5\xfd\xd4\xfd\xd1\xfd\xd6\xfd\xc8\xfd\xd7\xfd\x00\x00\xce\xfd\xec\xfd\x00\x00\xd0\xfd\xcf\xfd\xcd\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xff\x00\x00\x5d\xff\x5a\xff\x5b\xff\x07\xfe\x00\xfe\x00\x00\x00\x00\x00\x00\x6e\xff\x6b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xff\x00\x00\x00\x00\xb9\xfe\x1d\xfe\x1d\xfe\xe6\xfe\xba\xfe\x00\x00\x90\xff\x00\x00\x2b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xfe\x78\xfe\x74\xfe\x77\xfe\x76\xfe\x75\xfe\x70\xfe\x6f\xfe\x6e\xfe\x6d\xfe\x6c\xfe\x6b\xfe\x6a\xfe\x69\xfe\x68\xfe\x67\xfe\x72\xfe\x71\xfe\x66\xfe\x65\xfe\x64\xfe\x63\xfe\x62\xfe\x61\xfe\x60\xfe\x5f\xfe\x5e\xfe\x5d\xfe\x5c\xfe\x5b\xfe\x5a\xfe\x59\xfe\x58\xfe\x57\xfe\x56\xfe\x55\xfe\x54\xfe\x53\xfe\x52\xfe\x51\xfe\x50\xfe\x73\xfe\x4f\xfe\x4e\xfe\x4d\xfe\x8f\xfe\x90\xfe\x00\x00\x00\x00\x00\x00\x92\xfe\x91\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xc6\xfe\x00\x00\x00\x00\x84\xfe\x00\x00\x00\x00\xbb\xfe\xac\xfe\x8b\xfe\x47\xfe\x00\x00\x46\xfe\xee\xfd\xed\xfd\x00\x00\xf8\xfd\xd3\xfd\xd2\xfd\xcc\xfd\x0c\xfe\x00\x00\xca\xfd\xcb\xfd\xc9\xfd\x00\x00\x0a\xfe\x8c\xfe\x8b\xfe\x00\x00\x00\x00\x00\x00\xf4\xfd\x00\x00\xd2\xfd\xcc\xfd\x0d\xfe\xca\xfd\xd0\xfd\xcb\xfd\xc9\xfd\x00\x00\x00\x00\x00\x00\x00\x00\xb4\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x1f\xff\x00\x00\x00\x00\xb0\xff\x00\x00\x00\x00\x42\xff\x34\xff\x00\x00\x00\x00\x40\xff\x34\xff\x00\x00\x00\x00\x00\x00\x00\x00\x44\xff\x00\x00\x00\x00\x39\xff\x4f\xff\x00\x00\x3c\xff\x00\x00\xb4\xfd\xb3\xfd\x00\x00\x00\x00\x00\x00\x37\xff\x00\x00\x00\x00\xdd\xff\xdd\xff\xdd\xff\x00\x00\xdd\xff\xec\xff\xde\xff\x00\x00\x00\x00\x00\x00\xf2\xff\xf4\xff\xbb\xfd\xbc\xfd\x54\xff\x55\xff\x00\x00\x00\x00\x56\xff\x57\xff\x52\xff\x43\xff\x3d\xff\x41\xff\x8d\xfe\x00\x00\x4a\xff\x47\xff\x00\x00\x3f\xff\x49\xff\x00\x00\x48\xff\x32\xff\x30\xff\x00\x00\x00\x00\xb2\xff\xf2\xfd\xf1\xfd\xab\xff\xf6\xfd\xfc\xfd\x00\x00\x1f\xff\x02\xff\x00\x00\x00\x00\x18\xff\x86\xff\x00\x00\x79\xff\xc3\xfe\xd7\xfe\xd3\xfe\xd1\xfe\x00\x00\x00\x00\x00\x00\x15\xfe\x13\xfe\xaa\xfe\x12\xfe\xad\xfe\xae\xfe\x00\x00\x53\xff\x02\xfe\xfd\xfd\x9c\xfe\x00\x00\xa1\xfe\xa2\xfe\x00\x00\x0b\xfe\x00\x00\x00\x00\x09\xfe\x00\x00\x8a\xfe\x00\x00\x9e\xfe\x00\x00\x45\xfe\x00\x00\xd7\xfe\x00\x00\x9b\xfe\x00\x00\x9b\xff\x96\xfe\x00\x00\x95\xfe\x94\xfe\x00\x00\xdd\xff\xa8\xff\x00\x00\x00\x00\x48\xfe\x7f\xfe\x73\xff\x78\xff\x77\xff\x00\x00\xbd\xfd\xf2\xfe\x2d\xff\xf6\xfe\x00\x00\x91\xff\x53\xff\x92\xff\x9d\xff\x9e\xff\xbd\xfd\x18\xfe\xcf\xfe\x00\x00\x00\x00\x1b\xfe\x1d\xfe\xbd\xfd\xbd\xfd\x00\x00\x00\x00\x59\xff\xf6\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xff\x6f\xff\x98\xff\x61\xff\x97\xff\x00\x00\x00\x00\x00\x00\x5e\xff\x96\xff\xc8\xfe\xc9\xfe\xca\xfe\xcb\xfe\xce\xfe\x00\x00\xc5\xfe\xb2\xfe\x00\x00\x97\xfe\x00\x00\x8e\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaf\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xff\xba\xfd\xb9\xfd\x00\x00\x4b\xfe\xeb\xff\xdd\xff\xdd\xff\x00\x00\xe0\xff\x00\x00\x48\xfe\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\xb6\xfe\xb7\xfe\xbe\xfe\xc0\xfe\x7b\xff\x87\xff\x7c\xff\x88\xff\xdd\xff\x8c\xff\xdd\xff\x0f\xfe\xa6\xfe\xdf\xff\x00\x00\xc1\xfe\xf9\xfd\x5c\xff\x06\xfe\xff\xfd\x62\xff\x70\xff\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xff\x00\x00\x80\xff\x7e\xff\x81\xff\x84\xff\xa7\xff\x54\xff\xa6\xff\x00\x00\x20\xfe\x17\xfe\x1a\xfe\x1e\xfe\x1f\xfe\x1d\xfe\x21\xfe\x00\x00\xdd\xff\xdd\xff\x9c\xff\xa2\xff\x00\x00\x00\x00\x2a\xff\x28\xff\x9f\xff\xbd\xfd\xbc\xfe\xdd\xff\xdd\xff\x99\xff\x00\x00\x05\xfe\x00\x00\x00\x00\x00\x00\x76\xff\x75\xff\x74\xff\x49\xfe\x00\x00\x4c\xfe\x00\x00\xe8\xfd\xd9\xfd\xe4\xfd\xe0\xfd\xdf\xfd\xde\xfd\xe3\xfd\xe2\xfd\xe7\xfd\xe5\xfd\xe6\xfd\x79\xfe\xde\xff\xaa\xff\x00\x00\x30\xfe\x00\x00\x32\xfe\x00\x00\xbd\xfd\x85\xfe\xd9\xfe\xbd\xfd\x41\xfe\x3d\xfe\x3b\xfe\x3a\xfe\x39\xfe\x00\x00\x43\xfe\x8b\xfe\x3f\xfe\x40\xfe\xf7\xfd\x89\xfe\x82\xfe\x83\xfe\x9f\xfe\xa0\xfe\x00\x00\x86\xfe\xa8\xfe\x00\x00\xa9\xfe\x00\x00\x00\x00\xd4\xfe\xd2\xfe\xda\xfe\x00\x00\x00\x00\x1e\xff\x1c\xff\x00\x00\x31\xff\xf5\xfe\xfc\xfe\xfb\xfe\x00\x00\xf8\xfe\xf9\xfe\xbd\xfd\xa4\xff\x00\x00\x02\xff\x00\x00\x00\x00\x00\x00\x00\x00\x3a\xff\x00\x00\x33\xff\x00\x00\x35\xff\xb5\xfd\xf3\xfd\x36\xff\xf3\xff\xef\xff\xee\xff\xf0\xff\x00\x00\x00\x00\xf1\xff\xed\xff\x46\xff\x00\x00\xac\xff\xf5\xfd\xfb\xfd\xbd\xfd\xa1\xff\x01\xff\xfd\xfe\x00\x00\x02\xff\x26\xff\xdd\xff\xdd\xff\x00\x00\x00\x00\x00\x00\x0b\xff\x13\xff\x00\x00\x1a\xff\x17\xff\x12\xff\x00\x00\x00\x00\x3e\xff\x00\x00\x00\x00\x00\x00\x18\xff\x85\xff\x7a\xff\x00\x00\x00\x00\x00\x00\x16\xfe\x14\xfe\x88\xfe\x87\xfe\x44\xfe\x38\xfe\x00\x00\x00\x00\x00\x00\xd8\xfe\x2f\xfe\x00\x00\x9a\xfe\x93\xfe\xa9\xff\x7d\xfe\x80\xfe\x00\x00\x9a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\xdd\xff\x2d\xff\x2d\xff\x2c\xff\xe4\xfe\x00\x00\x00\x00\x19\xfe\x1c\xfe\xa5\xff\x00\x00\x83\xff\x69\xff\x00\x00\x00\x00\x66\xff\x64\xff\x00\x00\x00\x00\x00\x00\x00\x00\xde\xff\x11\xfe\xde\xff\x8f\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdc\xff\xd7\xff\xf8\xff\x00\x00\xe4\xff\xdd\xff\xcd\xff\xe2\xff\xca\xff\xe5\xff\xc8\xff\x00\x00\xde\xff\xe1\xff\x7d\xfe\xf5\xff\x00\x00\xd7\xff\xd5\xff\xd4\xff\xb7\xfd\xd3\xff\xd8\xff\x00\x00\xea\xff\xe8\xff\xe7\xff\x00\x00\x8d\xff\x10\xfe\x00\x00\x0e\xfe\xbf\xfe\x00\x00\x00\x00\x65\xff\x67\xff\x82\xff\x7f\xff\xe7\xfe\xe8\xfe\x00\x00\xdd\xff\xe2\xfe\xdf\xfe\xe0\xfe\xe1\xfe\xd5\xfe\x94\xff\x00\x00\x6b\xff\x27\xff\x29\xff\xf0\xfe\x00\x00\x00\x00\x2d\xfe\x2e\xfe\xdd\xff\x2a\xfe\x00\x00\x71\xff\x00\x00\x04\xfe\x4a\xfe\x00\x00\x31\xfe\x3e\xfe\x3c\xfe\x00\x00\x00\x00\x00\x00\x42\xfe\xd0\xfe\x33\xfe\x1d\xff\x00\x00\x0a\xff\x4d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x0e\xff\x0f\xff\x00\x00\x00\x00\x13\xff\x1b\xff\x00\x00\x00\x00\x00\x00\x19\xff\xfa\xfe\xf7\xfe\x00\x00\x00\x00\x00\x00\xa3\xff\xfe\xfe\x00\x00\x00\xff\x02\xff\x00\x00\x2f\xff\xa0\xff\xff\xfe\x24\xff\x25\xff\xdd\xff\x21\xff\x00\x00\x00\x00\x00\x00\x11\xff\x00\x00\x00\x00\x0d\xff\x50\xff\x16\xff\x00\x00\x00\x00\x07\xff\x15\xff\x3d\xff\x00\x00\x37\xfe\x35\xfe\x36\xfe\x7a\xfe\x7e\xfe\x7c\xfe\x00\x00\x00\x00\x72\xff\xd7\xfe\x27\xfe\x25\xfe\x00\x00\x00\x00\xde\xff\x2c\xfe\xf3\xfe\xf4\xfe\xed\xfe\xdd\xff\xee\xfe\xec\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\xff\xe5\xfe\x1f\xff\x00\x00\x6c\xff\x00\x00\xcf\xff\x00\x00\x00\x00\xd8\xff\xd9\xff\x00\x00\xce\xff\xe3\xff\xcb\xff\xc6\xff\xc9\xff\x00\x00\xc7\xff\x00\x00\xd6\xff\xda\xff\x00\x00\xb5\xff\xb4\xff\xb3\xff\xd1\xff\x00\x00\x00\x00\x00\x00\x02\xff\x00\x00\xe3\xfe\xd6\xfe\x00\x00\x00\x00\x00\x00\x51\xff\xf6\xfe\xf6\xfe\xde\xff\xf1\xfe\x2b\xfe\x28\xfe\x00\x00\x26\xfe\x29\xfe\x84\xfe\x00\x00\x00\x00\x00\x00\x09\xff\x14\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\xff\x23\xff\x22\xff\x20\xff\x10\xff\x0c\xff\x05\xff\x06\xff\x00\x00\x00\x00\x08\xff\x34\xfe\x81\xfe\x7b\xfe\x00\x00\xef\xfe\xe9\xfe\xeb\xfe\x00\x00\xde\xfe\xdd\xfe\xbd\xfd\xdc\xfe\x63\xff\x00\x00\xd2\xff\xd0\xff\x00\x00\x00\x00\xc4\xff\xc2\xff\x00\x00\xf6\xff\xb6\xff\x00\x00\x02\xff\xea\xfe\x24\xfe\x00\x00\x04\xff\x00\x00\xdb\xfe\xb5\xfe\xc5\xff\xcc\xff\xc3\xff\x00\x00\xbf\xff\xd7\xff\x03\xff\x00\x00\xd7\xff\xbc\xff\xbb\xff\xb8\xfd\xba\xff\x00\x00\x00\x00\xd8\xff\xc0\xff\xbd\xff\xc1\xff\x00\x00\xb8\xff\x00\x00\xb9\xff\xb7\xff"# happyCheck :: HappyAddr -happyCheck = HappyA# "\xff\xff\x00\x00\x09\x00\x02\x00\x02\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x2b\x00\x05\x00\x05\x00\x0f\x00\x2f\x00\x22\x00\x0b\x00\x0c\x00\x68\x00\x2b\x00\x22\x00\x0b\x00\x0c\x00\x2f\x00\x66\x00\x1b\x00\x1c\x00\x2b\x00\xa2\x00\x1d\x00\x1e\x00\x2f\x00\x0f\x00\x2b\x00\x33\x00\x59\x00\x11\x00\x2f\x00\x0b\x00\x0c\x00\x1c\x00\x55\x00\x56\x00\x0b\x00\x0c\x00\x28\x00\xd3\x00\x55\x00\x56\x00\x0b\x00\x0c\x00\x55\x00\x56\x00\xaa\x00\x0b\x00\x0c\x00\x8c\x00\xaa\x00\x1c\x00\xaa\x00\x0b\x00\x0c\x00\x1c\x00\x4d\x00\x1c\x00\x1c\x00\x0b\x00\x0c\x00\x16\x00\x5a\x00\x1d\x00\x1e\x00\x28\x00\x0b\x00\x0c\x00\xd1\x00\x0c\x00\x1a\x00\x09\x00\x33\x00\x0b\x00\x00\x00\x38\x00\x39\x00\x22\x00\x28\x00\x29\x00\x6c\x00\x46\x00\xbd\x00\x48\x00\x1c\x00\xd1\x00\x09\x00\x22\x00\x56\x00\xd1\x00\x2e\x00\xd1\x00\x4f\x00\x1e\x00\x29\x00\xca\x00\x17\x00\x38\x00\x39\x00\x22\x00\x39\x00\x27\x00\x3a\x00\xc2\x00\x2f\x00\x1f\x00\xc7\x00\xc8\x00\x12\x00\x13\x00\xc9\x00\xca\x00\x63\x00\x24\x00\x0b\x00\x0c\x00\x72\x00\x1c\x00\x6b\x00\x1c\x00\x66\x00\x1f\x00\x39\x00\x21\x00\xb9\x00\x23\x00\x24\x00\x25\x00\x26\x00\xb5\x00\x17\x00\x13\x00\x2a\x00\x30\x00\x2c\x00\x57\x00\x61\x00\x84\x00\xc7\x00\xc8\x00\x6c\x00\x22\x00\x57\x00\x1f\x00\xc4\x00\x21\x00\x73\x00\x23\x00\x24\x00\x25\x00\x26\x00\x73\x00\x6e\x00\x73\x00\x2a\x00\x84\x00\x2c\x00\xb5\x00\xd1\x00\x84\x00\xba\x00\x84\x00\x84\x00\xbd\x00\xd1\x00\xbf\x00\xa3\x00\xb6\x00\xd1\x00\xd1\x00\xb9\x00\xb4\x00\xc4\x00\xb4\x00\xb0\x00\xb8\x00\xca\x00\xb8\x00\xd1\x00\xcd\x00\xc3\x00\xc4\x00\xc5\x00\xa3\x00\xc7\x00\xc8\x00\xd1\x00\xc4\x00\xc5\x00\xc4\x00\xc5\x00\xc8\x00\xd1\x00\xc8\x00\xb6\x00\x6c\x00\xd1\x00\xb9\x00\xd5\x00\xc8\x00\xc8\x00\xb0\x00\xb5\x00\xd4\x00\xd1\x00\xd1\x00\xd1\x00\xc3\x00\xc4\x00\xc5\x00\x78\x00\xc7\x00\xc8\x00\x6e\x00\xb4\x00\xc4\x00\xc5\x00\xc4\x00\xb8\x00\x4f\x00\x82\x00\x84\x00\x84\x00\x84\x00\x86\x00\xd5\x00\x26\x00\x89\x00\x8a\x00\x8b\x00\xc4\x00\xc5\x00\x78\x00\x2d\x00\xc8\x00\x91\x00\xb4\x00\xc4\x00\xc5\x00\x19\x00\xb8\x00\x1e\x00\x82\x00\xb4\x00\x84\x00\x22\x00\x86\x00\xb8\x00\x22\x00\x89\x00\x8a\x00\x8b\x00\xc4\x00\xc5\x00\x30\x00\x22\x00\xc8\x00\x91\x00\x3f\x00\xc4\x00\xc5\x00\x28\x00\x43\x00\xc8\x00\x45\x00\x46\x00\x47\x00\xb6\x00\xd4\x00\xb3\x00\x46\x00\x47\x00\xb6\x00\xb7\x00\x5a\x00\xb9\x00\x44\x00\x45\x00\x46\x00\x47\x00\xc3\x00\xc4\x00\xc5\x00\xd3\x00\x08\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\x6c\x00\x22\x00\xb6\x00\xb7\x00\xb2\x00\xb9\x00\xd0\x00\x16\x00\x5a\x00\xb7\x00\x01\x00\x17\x00\x2d\x00\x63\x00\x64\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x25\x00\x22\x00\x16\x00\xc6\x00\x1f\x00\x6c\x00\x21\x00\xd0\x00\x23\x00\x24\x00\x25\x00\x26\x00\x31\x00\x32\x00\x33\x00\x2a\x00\xb4\x00\x2c\x00\x27\x00\x45\x00\x46\x00\x47\x00\x17\x00\xc4\x00\xc5\x00\xa8\x00\x19\x00\x58\x00\x59\x00\x17\x00\x32\x00\x33\x00\xc4\x00\xc5\x00\x1f\x00\x22\x00\x21\x00\x0b\x00\x0c\x00\x28\x00\x22\x00\xd6\x00\x3f\x00\x40\x00\x41\x00\x2a\x00\x43\x00\x2c\x00\x45\x00\x46\x00\x47\x00\x79\x00\x17\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x3e\x00\x3f\x00\xc4\x00\xc5\x00\x66\x00\x43\x00\x22\x00\x45\x00\x46\x00\x47\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x8c\x00\xb6\x00\x8e\x00\xd6\x00\xc4\x00\xc5\x00\x30\x00\xc7\x00\xc8\x00\xc4\x00\xc5\x00\x61\x00\xc7\x00\xc8\x00\xc3\x00\xc4\x00\xc5\x00\xc4\x00\xc5\x00\x78\x00\xc7\x00\xc8\x00\xd6\x00\x17\x00\x0b\x00\x0c\x00\x22\x00\xd6\x00\x17\x00\x82\x00\x74\x00\x84\x00\x28\x00\x86\x00\x22\x00\xd6\x00\x89\x00\x8a\x00\x8b\x00\x22\x00\x6f\x00\x70\x00\x71\x00\x1f\x00\x91\x00\x21\x00\x19\x00\xd2\x00\x19\x00\x78\x00\xb9\x00\xc4\x00\xc5\x00\x29\x00\x2a\x00\x22\x00\x2c\x00\x22\x00\x64\x00\x82\x00\x91\x00\x84\x00\x93\x00\x86\x00\xc7\x00\xc8\x00\x89\x00\x8a\x00\x8b\x00\xd6\x00\x05\x00\x06\x00\xc4\x00\xc5\x00\x91\x00\xc7\x00\xc8\x00\x19\x00\xb3\x00\x50\x00\x51\x00\xb6\x00\xb7\x00\x54\x00\xb9\x00\x3f\x00\x22\x00\x16\x00\xb7\x00\x43\x00\xd6\x00\x45\x00\x46\x00\x47\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc8\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x22\x00\xd0\x00\xb3\x00\x1e\x00\x26\x00\xb6\x00\xb7\x00\x22\x00\xb9\x00\x2b\x00\x36\x00\xc4\x00\xc5\x00\xd6\x00\xc7\x00\xc8\x00\x05\x00\x06\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xd2\x00\x08\x00\x78\x00\x0a\x00\x1f\x00\xd6\x00\x21\x00\xd0\x00\xca\x00\x16\x00\xb6\x00\xcd\x00\x82\x00\x0f\x00\x84\x00\x2a\x00\x86\x00\x2c\x00\xd3\x00\x89\x00\x8a\x00\x8b\x00\x92\x00\xc3\x00\xc4\x00\xc5\x00\x1f\x00\x91\x00\x21\x00\x8c\x00\x25\x00\x8e\x00\x25\x00\x26\x00\x15\x00\x05\x00\x06\x00\x2a\x00\xc2\x00\x2c\x00\x0b\x00\x0c\x00\x31\x00\x32\x00\x33\x00\xc9\x00\xca\x00\x14\x00\x3e\x00\x3f\x00\xc4\x00\xc5\x00\x16\x00\x43\x00\xc8\x00\x45\x00\x46\x00\x47\x00\x1c\x00\xb1\x00\xb2\x00\xb3\x00\x0b\x00\x0c\x00\xb6\x00\xb7\x00\xd2\x00\xb9\x00\x3f\x00\xcb\x00\xd2\x00\xcd\x00\x43\x00\xcf\x00\x45\x00\x46\x00\x47\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x0b\x00\x0c\x00\x70\x00\x71\x00\x92\x00\xc4\x00\xc5\x00\xd0\x00\xc7\x00\xc8\x00\x78\x00\xc3\x00\xc4\x00\xc5\x00\xba\x00\xc7\x00\xc8\x00\xbd\x00\xcd\x00\xbf\x00\x82\x00\x4e\x00\x84\x00\xd6\x00\x86\x00\x3c\x00\x3d\x00\x89\x00\x8a\x00\x8b\x00\xca\x00\x66\x00\x78\x00\xcd\x00\x1f\x00\x91\x00\x21\x00\xc4\x00\xc5\x00\xb6\x00\x25\x00\x26\x00\x82\x00\x66\x00\x84\x00\x2a\x00\x86\x00\x2c\x00\xcd\x00\x89\x00\x8a\x00\x8b\x00\xc3\x00\xc4\x00\xc5\x00\x3e\x00\x3f\x00\x91\x00\x41\x00\xaf\x00\x43\x00\x01\x00\x45\x00\x46\x00\x47\x00\x1f\x00\xb6\x00\x21\x00\x8c\x00\xb3\x00\x8e\x00\xd1\x00\xb6\x00\xb7\x00\xd2\x00\xb9\x00\x2a\x00\x01\x00\x2c\x00\xc3\x00\xc4\x00\xc5\x00\x06\x00\x07\x00\x97\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\x50\x00\x51\x00\xb6\x00\xb7\x00\x08\x00\xb9\x00\xd0\x00\xc4\x00\xc5\x00\xb6\x00\xc7\x00\xc8\x00\xd2\x00\xae\x00\xaf\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb6\x00\xc3\x00\xc4\x00\xc5\x00\xd6\x00\xc4\x00\xc5\x00\xd0\x00\xc7\x00\xc8\x00\x78\x00\x5c\x00\x5d\x00\xc3\x00\xc4\x00\xc5\x00\x80\x00\x81\x00\x82\x00\x83\x00\x82\x00\xd2\x00\x84\x00\xd6\x00\x86\x00\x0b\x00\x0c\x00\x89\x00\x8a\x00\x8b\x00\x35\x00\x26\x00\xb4\x00\x6a\x00\x6b\x00\x91\x00\xb8\x00\x6a\x00\x6b\x00\xc4\x00\xc5\x00\x78\x00\xc7\x00\xc8\x00\x18\x00\x19\x00\x1a\x00\x37\x00\xc4\x00\xc5\x00\x6c\x00\x82\x00\xc8\x00\x84\x00\x2b\x00\x86\x00\x2d\x00\xd6\x00\x89\x00\x8a\x00\x8b\x00\x26\x00\x29\x00\xb7\x00\x2b\x00\x27\x00\x91\x00\x29\x00\xb6\x00\xb3\x00\x0b\x00\x0c\x00\xb6\x00\xb7\x00\xd2\x00\xb9\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc3\x00\xc4\x00\xc5\x00\xac\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc3\x00\xc4\x00\xc5\x00\xd6\x00\xc7\x00\xc8\x00\x27\x00\xd0\x00\x29\x00\xb3\x00\x0d\x00\x0e\x00\xb6\x00\xb7\x00\x27\x00\xb9\x00\x29\x00\x6c\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x95\x00\x96\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x27\x00\x82\x00\x29\x00\x84\x00\x27\x00\x86\x00\x29\x00\xd0\x00\x89\x00\x8a\x00\x8b\x00\xb6\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x91\x00\xd1\x00\x75\x00\x76\x00\x77\x00\x78\x00\x0b\x00\x0c\x00\xc3\x00\xc4\x00\xc5\x00\x45\x00\x46\x00\x47\x00\x48\x00\x82\x00\x6d\x00\x84\x00\x4c\x00\x86\x00\x03\x00\x04\x00\x89\x00\x8a\x00\x8b\x00\x3f\x00\x40\x00\x41\x00\x32\x00\x43\x00\x91\x00\x45\x00\x46\x00\x47\x00\xb3\x00\x0b\x00\x0c\x00\xb6\x00\xb7\x00\xd2\x00\xb9\x00\x94\x00\x95\x00\x96\x00\x79\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x7d\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x0b\x00\x0c\x00\x45\x00\x46\x00\x47\x00\x48\x00\x79\x00\xd0\x00\xb3\x00\x4c\x00\x66\x00\xb6\x00\xb7\x00\xd2\x00\xb9\x00\x3f\x00\x2d\x00\x2e\x00\x25\x00\x43\x00\x27\x00\x45\x00\x46\x00\x47\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x31\x00\x32\x00\x33\x00\x27\x00\x3f\x00\x29\x00\x41\x00\xd0\x00\x43\x00\x8c\x00\x45\x00\x46\x00\x47\x00\x2d\x00\x2e\x00\x4a\x00\x4b\x00\x0b\x00\x0c\x00\x3e\x00\x3f\x00\x94\x00\x95\x00\x96\x00\x43\x00\x97\x00\x45\x00\x46\x00\x47\x00\x06\x00\x07\x00\x3f\x00\xb4\x00\x41\x00\x31\x00\x43\x00\xb8\x00\x45\x00\x46\x00\x47\x00\x2d\x00\x2e\x00\x4a\x00\x4b\x00\x0b\x00\x0c\x00\x3e\x00\x3f\x00\xc4\x00\xc5\x00\x31\x00\x43\x00\xc8\x00\x45\x00\x46\x00\x47\x00\x34\x00\x35\x00\x3f\x00\xb7\x00\x41\x00\x27\x00\x43\x00\x29\x00\x45\x00\x46\x00\x47\x00\x49\x00\x4a\x00\x4a\x00\x4b\x00\xc2\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x72\x00\xc9\x00\xca\x00\xcb\x00\x3f\x00\xcd\x00\x41\x00\xcf\x00\x43\x00\x36\x00\x45\x00\x46\x00\x47\x00\xd6\x00\x52\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x42\x00\x43\x00\xd3\x00\x45\x00\x46\x00\x47\x00\x3f\x00\x27\x00\x41\x00\x29\x00\x43\x00\x36\x00\x45\x00\x46\x00\x47\x00\x03\x00\x04\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x36\x00\xc4\x00\xc5\x00\xd1\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x8c\x00\x43\x00\x62\x00\x45\x00\x46\x00\x47\x00\x20\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x50\x00\x51\x00\x4e\x00\x53\x00\x54\x00\xa6\x00\xa7\x00\xa8\x00\x27\x00\xb7\x00\x29\x00\xc4\x00\xc5\x00\xd6\x00\xc7\x00\xc8\x00\x8c\x00\xb6\x00\x01\x00\x65\x00\xb9\x00\x17\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x03\x00\x04\x00\xd6\x00\xc3\x00\xc4\x00\xc5\x00\x17\x00\xc7\x00\xc8\x00\xb7\x00\x8c\x00\xc4\x00\xc5\x00\xd6\x00\xc7\x00\xc8\x00\x43\x00\x17\x00\x45\x00\x46\x00\x47\x00\x16\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x22\x00\x27\x00\xd6\x00\x29\x00\x3f\x00\xb7\x00\x41\x00\x27\x00\x43\x00\x29\x00\x45\x00\x46\x00\x47\x00\xd6\x00\x16\x00\x29\x00\xc2\x00\x2b\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\x32\x00\xb7\x00\x0a\x00\x0b\x00\x0c\x00\xc4\x00\xc5\x00\x49\x00\xc7\x00\xc8\x00\x55\x00\xd6\x00\xc2\x00\x5b\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\x84\x00\xb7\x00\xd6\x00\x44\x00\x45\x00\x46\x00\x47\x00\x69\x00\x6a\x00\x6b\x00\x1d\x00\xd6\x00\x08\x00\x09\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x2b\x00\x41\x00\x2d\x00\x43\x00\x84\x00\x45\x00\x46\x00\x47\x00\x05\x00\x06\x00\x4a\x00\x4b\x00\xd6\x00\x4d\x00\x0a\x00\x0b\x00\x0c\x00\x29\x00\x3f\x00\x2b\x00\x41\x00\x25\x00\x43\x00\x1c\x00\x45\x00\x46\x00\x47\x00\x49\x00\x4a\x00\x4a\x00\x4b\x00\x49\x00\x4d\x00\x31\x00\x32\x00\x33\x00\x7d\x00\x7e\x00\x3f\x00\x67\x00\x41\x00\x28\x00\x43\x00\x1c\x00\x45\x00\x46\x00\x47\x00\x29\x00\x49\x00\x4a\x00\x4b\x00\x29\x00\xc4\x00\xc5\x00\x84\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x73\x00\x43\x00\x5b\x00\x45\x00\x46\x00\x47\x00\x17\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x0c\x00\x41\x00\x17\x00\x43\x00\x0f\x00\x45\x00\x46\x00\x47\x00\x17\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\x43\x00\x27\x00\x45\x00\x46\x00\x47\x00\x8c\x00\x3f\x00\x1c\x00\x41\x00\x29\x00\x43\x00\x1c\x00\x45\x00\x46\x00\x47\x00\x73\x00\x49\x00\x4a\x00\x4b\x00\x53\x00\x54\x00\xc4\x00\xc5\x00\x2b\x00\xc7\x00\xc8\x00\x3f\x00\x1d\x00\x41\x00\xb7\x00\x43\x00\x72\x00\x45\x00\x46\x00\x47\x00\x28\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\x05\x00\x06\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x32\x00\x43\x00\x32\x00\x45\x00\x46\x00\x47\x00\x17\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x17\x00\x1e\x00\xb7\x00\x5b\x00\x22\x00\x43\x00\x84\x00\x45\x00\x46\x00\x47\x00\x5b\x00\x5c\x00\x5d\x00\xd6\x00\x84\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x05\x00\x43\x00\x17\x00\x45\x00\x46\x00\x47\x00\x32\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x22\x00\x43\x00\x20\x00\x45\x00\x46\x00\x47\x00\x29\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x1e\x00\x28\x00\xb7\x00\x0c\x00\x16\x00\xc4\x00\xc5\x00\x22\x00\xc7\x00\xc8\x00\x69\x00\x6a\x00\x6b\x00\xd6\x00\x1c\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x17\x00\x84\x00\xb7\x00\xd6\x00\x44\x00\x45\x00\x46\x00\x47\x00\x69\x00\x6a\x00\x6b\x00\x74\x00\x73\x00\xd6\x00\x78\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x31\x00\x41\x00\xb7\x00\x43\x00\x1c\x00\x45\x00\x46\x00\x47\x00\x29\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\x84\x00\x1e\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x84\x00\x41\x00\x25\x00\x43\x00\x84\x00\x45\x00\x46\x00\x47\x00\x1e\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\x28\x00\xc4\x00\xc5\x00\x17\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x64\x00\x43\x00\x56\x00\x45\x00\x46\x00\x47\x00\x5f\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x84\x00\x43\x00\x1d\x00\x45\x00\x46\x00\x47\x00\x1d\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x30\x00\x41\x00\x17\x00\x43\x00\x5b\x00\x45\x00\x46\x00\x47\x00\x05\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\x7b\x00\x7c\x00\x7d\x00\x1d\x00\x22\x00\x3f\x00\x17\x00\x41\x00\x28\x00\x43\x00\x73\x00\x45\x00\x46\x00\x47\x00\x24\x00\x49\x00\x4a\x00\x4b\x00\x5b\x00\xc4\x00\xc5\x00\x24\x00\xc7\x00\xc8\x00\x3f\x00\x1d\x00\x41\x00\xb7\x00\x43\x00\x2d\x00\x45\x00\x46\x00\x47\x00\x22\x00\x2b\x00\x4a\x00\x4b\x00\xd6\x00\x2b\x00\x1d\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x2b\x00\x41\x00\xb7\x00\x43\x00\x2c\x00\x45\x00\x46\x00\x47\x00\x41\x00\x1c\x00\x4a\x00\x4b\x00\xd6\x00\x29\x00\x28\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x1d\x00\x22\x00\xb7\x00\x2d\x00\x44\x00\x45\x00\x46\x00\x47\x00\x7b\x00\x7c\x00\x7d\x00\x64\x00\x22\x00\xd6\x00\x84\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x21\x00\x43\x00\x5d\x00\x45\x00\x46\x00\x47\x00\x29\x00\x0c\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x0f\x00\x43\x00\x0f\x00\x45\x00\x46\x00\x47\x00\x16\x00\x46\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x1e\x00\x43\x00\x27\x00\x45\x00\x46\x00\x47\x00\x4b\x00\x1e\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x1e\x00\x43\x00\x24\x00\x45\x00\x46\x00\x47\x00\x17\x00\x17\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x0f\x00\x41\x00\xb7\x00\x43\x00\x5f\x00\x45\x00\x46\x00\x47\x00\x28\x00\x0c\x00\x4a\x00\x4b\x00\xd6\x00\x21\x00\x28\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x84\x00\x41\x00\x29\x00\x43\x00\x1d\x00\x45\x00\x46\x00\x47\x00\x84\x00\x1d\x00\x4a\x00\x4b\x00\xd6\x00\x1c\x00\xc4\x00\xc5\x00\x1e\x00\xc7\x00\xc8\x00\x3f\x00\x1d\x00\x41\x00\xb7\x00\x43\x00\x22\x00\x45\x00\x46\x00\x47\x00\x2c\x00\x17\x00\x4a\x00\x4b\x00\xd6\x00\x2c\x00\x28\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x1d\x00\x43\x00\x73\x00\x45\x00\x46\x00\x47\x00\x17\x00\x73\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x1b\x00\x43\x00\x24\x00\x45\x00\x46\x00\x47\x00\x29\x00\x73\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x2b\x00\x43\x00\x5f\x00\x45\x00\x46\x00\x47\x00\x73\x00\x5b\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x22\x00\x43\x00\x22\x00\x45\x00\x46\x00\x47\x00\x94\x00\x95\x00\x96\x00\x24\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x94\x00\x95\x00\x96\x00\xb7\x00\x3b\x00\x3c\x00\x3d\x00\x44\x00\x45\x00\x46\x00\x47\x00\x24\x00\x05\x00\xd6\x00\x1c\x00\x17\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x42\x00\x43\x00\xb7\x00\x45\x00\x46\x00\x47\x00\x50\x00\x51\x00\x52\x00\x4b\x00\x17\x00\x22\x00\x17\x00\xd6\x00\x21\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x17\x00\x42\x00\x43\x00\xb7\x00\x45\x00\x46\x00\x47\x00\x17\x00\x5e\x00\x5f\x00\x60\x00\x17\x00\x62\x00\xd6\x00\x17\x00\x17\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x17\x00\xb7\x00\x45\x00\x46\x00\x47\x00\x48\x00\x17\x00\x17\x00\x5e\x00\x5f\x00\x60\x00\x21\x00\x62\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x22\x00\xb7\x00\x2d\x00\x44\x00\x45\x00\x46\x00\x47\x00\x17\x00\x41\x00\x44\x00\x45\x00\x46\x00\x47\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x2b\x00\xb7\x00\x41\x00\x44\x00\x45\x00\x46\x00\x47\x00\x41\x00\x21\x00\x44\x00\x45\x00\x46\x00\x47\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x61\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x27\x00\xb4\x00\x4b\x00\x2b\x00\x6d\x00\xb8\x00\x73\x00\x29\x00\xd6\x00\x28\x00\x20\x00\xc4\x00\xc5\x00\x22\x00\xc7\x00\xc8\x00\xb9\x00\xc4\x00\xc5\x00\x0f\x00\x17\x00\xc8\x00\x70\x00\x0c\x00\x64\x00\x2d\x00\x6b\x00\xc4\x00\xc5\x00\xd6\x00\xc7\x00\xc8\x00\x1d\x00\x09\x00\x84\x00\x0b\x00\x84\x00\xb9\x00\x0f\x00\x85\x00\x0f\x00\x0f\x00\x1d\x00\x0f\x00\x20\x00\xd6\x00\x1d\x00\x17\x00\xc4\x00\xc5\x00\x68\x00\xc7\x00\xc8\x00\x85\x00\x16\x00\x0c\x00\x5e\x00\x30\x00\x22\x00\x1d\x00\x28\x00\xbe\x00\x85\x00\x27\x00\x85\x00\xc2\x00\xd6\x00\xc4\x00\xc5\x00\x2d\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\x00\x00\x46\x00\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\xd6\x00\xd7\x00\xd8\x00\xc4\x00\xc5\x00\xff\xff\xc7\x00\xc8\x00\xff\xff\xc4\x00\xc5\x00\xff\xff\xc7\x00\xc8\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\xff\xff\xd6\x00\xc4\x00\xc5\x00\xff\xff\xc7\x00\xc8\x00\xd6\x00\xc4\x00\xc5\x00\xff\xff\xc7\x00\xc8\x00\xb4\x00\x01\x00\x16\x00\x17\x00\xb8\x00\x05\x00\x06\x00\xd6\x00\xff\xff\x09\x00\xff\xff\xff\xff\xff\xff\xd6\x00\xff\xff\xff\xff\xc4\x00\xc5\x00\x26\x00\xff\xff\xc8\x00\xff\xff\x16\x00\x01\x00\x18\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x24\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\x74\x00\xff\xff\x7a\x00\x61\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\x09\x00\x74\x00\x61\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\x01\x00\x18\x00\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\x74\x00\x5f\x00\x20\x00\x61\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\x74\x00\xff\xff\x20\x00\xbb\x00\xff\xff\xff\xff\xbe\x00\xff\xff\xc0\x00\xff\xff\xc2\x00\x7f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x00\xca\x00\xcb\x00\x32\x00\xcd\x00\xff\xff\xcf\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\x01\x00\xff\xff\xff\xff\x61\x00\x05\x00\x06\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x08\x00\x09\x00\xff\xff\x01\x00\x16\x00\x74\x00\x18\x00\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x7f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x32\x00\xff\xff\x74\x00\x24\x00\x25\x00\xbb\x00\xff\xff\x32\x00\xbe\x00\xff\xff\xc0\x00\xff\xff\xc2\x00\x7f\x00\x25\x00\xff\xff\x31\x00\x32\x00\x33\x00\xc9\x00\xca\x00\xcb\x00\x01\x00\xcd\x00\xff\xff\xcf\x00\x05\x00\x06\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x61\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x01\x00\xff\xff\xff\xff\x32\x00\xff\xff\x74\x00\x61\x00\xff\xff\xbb\x00\x7f\x00\xff\xff\xbe\x00\xff\xff\xc0\x00\x0f\x00\xc2\x00\x7f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xc9\x00\xca\x00\xcb\x00\x74\x00\xcd\x00\xff\xff\xcf\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x1c\x00\xff\xff\x74\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\x4f\x00\xff\xff\x7f\x00\xff\xff\x53\x00\x54\x00\x55\x00\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x61\x00\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\xff\xff\x79\x00\xff\xff\xff\xff\xff\xff\x7d\x00\x7e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\xff\xff\x79\x00\xff\xff\xff\xff\xff\xff\x7d\x00\x7e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\xff\xff\x79\x00\xff\xff\xff\xff\xff\xff\x7d\x00\x7e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\x16\x00\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\x4f\x00\xff\xff\x2a\x00\xff\xff\x53\x00\x54\x00\x55\x00\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\x61\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\x6f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\x70\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\x57\x00\x03\x00\x04\x00\x05\x00\x06\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\x16\x00\xff\xff\x18\x00\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x20\x00\x21\x00\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\x61\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x01\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\x59\x00\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x16\x00\xff\xff\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\x25\x00\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\x74\x00\xff\xff\xff\xff\x01\x00\x02\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\x59\x00\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x16\x00\xff\xff\xff\xff\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\x26\x00\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\x01\x00\x46\x00\xff\xff\x48\x00\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\x16\x00\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x61\x00\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\x59\x00\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\x16\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\x26\x00\x71\x00\xff\xff\xff\xff\x74\x00\x75\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x74\x00\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\x59\x00\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\x16\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\xff\xff\x74\x00\x75\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\x28\x00\x29\x00\xff\xff\x2b\x00\x01\x00\xff\xff\xff\xff\x2f\x00\x05\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x16\x00\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x01\x00\x42\x00\x43\x00\x44\x00\x05\x00\x46\x00\xff\xff\x48\x00\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6a\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x07\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\x91\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x07\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xb3\x00\x48\x00\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\x91\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x07\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xb3\x00\x48\x00\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x88\x00\x89\x00\x8a\x00\x8b\x00\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\x91\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x07\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xb3\x00\x48\x00\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x74\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x74\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x61\x00\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x74\x00\x20\x00\x05\x00\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x22\x00\xff\xff\x24\x00\x25\x00\x2d\x00\x27\x00\x28\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x01\x00\x31\x00\x32\x00\x33\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\xff\xff\x0b\x00\x26\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x20\x00\x61\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\x5f\x00\xff\xff\x61\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\xff\xff\xff\xff\x74\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\x61\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x01\x00\x74\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x20\x00\x61\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x16\x00\x2f\x00\x18\x00\x19\x00\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\x17\x00\x18\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x5f\x00\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x5f\x00\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x5f\x00\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\x5f\x00\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x5f\x00\x20\x00\x61\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\x24\x00\x25\x00\xff\xff\x27\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x22\x00\xff\xff\x31\x00\x32\x00\x33\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\x74\x00\xff\xff\x5e\x00\xff\xff\xff\xff\x61\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\x68\x00\xff\xff\xff\xff\x16\x00\x01\x00\x18\x00\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\x74\x00\x20\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x24\x00\x25\x00\x16\x00\x27\x00\x18\x00\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x20\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x05\x00\x06\x00\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x61\x00\x05\x00\x06\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x74\x00\x18\x00\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\x74\x00\x01\x00\x02\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x61\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6b\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x74\x00\x01\x00\x02\x00\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x01\x00\x02\x00\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\x01\x00\xff\xff\xff\xff\x61\x00\x05\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x61\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\x16\x00\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x16\x00\xff\xff\xff\xff\x05\x00\x61\x00\xff\xff\x01\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x61\x00\x16\x00\x01\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x74\x00\xff\xff\xff\xff\x61\x00\x16\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x61\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x61\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x74\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x61\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x91\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xff\xff\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\xff\xff\x27\x00\x28\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9d\x00\x9e\x00\x9f\x00\xff\xff\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9e\x00\x9f\x00\xff\xff\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xab\x00\xff\xff\xad\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xab\x00\xff\xff\xad\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xab\x00\xff\xff\xad\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xab\x00\xff\xff\xad\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\xff\xff\xff\xff\x90\x00\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xbc\x00\xff\xff\xbe\x00\xff\xff\xff\xff\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\x8d\x00\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9a\x00\x9b\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\x8d\x00\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xbc\x00\xff\xff\xbe\x00\xff\xff\xff\xff\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xff\xff\xcc\x00\xff\xff\xce\x00\xcf\x00\xd0\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xbc\x00\xff\xff\xbe\x00\xff\xff\xff\xff\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xff\xff\xcc\x00\xff\xff\xce\x00\xcf\x00\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\x8d\x00\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\x8d\x00\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xbc\x00\xff\xff\xbe\x00\xff\xff\xff\xff\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xff\xff\xcc\x00\xff\xff\xce\x00\xcf\x00\xd0\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xbc\x00\xff\xff\xbe\x00\xff\xff\xff\xff\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xff\xff\xcc\x00\xff\xff\xce\x00\xcf\x00\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\x8d\x00\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xbc\x00\xff\xff\xbe\x00\xff\xff\xff\xff\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xff\xff\xcc\x00\xff\xff\xce\x00\xcf\x00\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xa4\x00\xa5\x00\xff\xff\x91\x00\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xa5\x00\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\x8f\x00\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x90\x00\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\x8f\x00\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xd0\x00\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xd0\x00\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\x84\x00\xff\xff\x86\x00\xff\xff\xd0\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x88\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x91\x00\xff\xff\xff\xff\x94\x00\x95\x00\x96\x00\xff\xff\x98\x00\x99\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x94\x00\x95\x00\x96\x00\xff\xff\x98\x00\x99\x00\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xb3\x00\xff\xff\xd0\x00\xb6\x00\xb7\x00\x91\x00\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xd0\x00\xb6\x00\xb7\x00\xff\xff\xb9\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xb3\x00\xff\xff\xd0\x00\xb6\x00\xb7\x00\x91\x00\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xd0\x00\xb6\x00\xb7\x00\xff\xff\xb9\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xd0\x00\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# +happyCheck = HappyA# "\xff\xff\x00\x00\x09\x00\x02\x00\x02\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x2b\x00\x05\x00\x05\x00\x0f\x00\x2f\x00\x22\x00\x0b\x00\x0c\x00\x68\x00\x2b\x00\x22\x00\x0b\x00\x0c\x00\x2f\x00\x66\x00\x1b\x00\x1c\x00\x2b\x00\xa2\x00\x1d\x00\x1e\x00\x2f\x00\x0f\x00\x2b\x00\x33\x00\x59\x00\x11\x00\x2f\x00\x0b\x00\x0c\x00\x1c\x00\x55\x00\x56\x00\x0b\x00\x0c\x00\x28\x00\xd3\x00\x55\x00\x56\x00\x0b\x00\x0c\x00\x55\x00\x56\x00\xaa\x00\x0b\x00\x0c\x00\x8c\x00\xaa\x00\x1c\x00\xaa\x00\x0b\x00\x0c\x00\x1c\x00\x4d\x00\x1c\x00\x1c\x00\x0b\x00\x0c\x00\x16\x00\x5a\x00\x1d\x00\x1e\x00\x28\x00\x0b\x00\x0c\x00\xd1\x00\x0c\x00\x1a\x00\x09\x00\x33\x00\x0b\x00\x00\x00\x38\x00\x39\x00\x22\x00\x28\x00\x29\x00\x6c\x00\x46\x00\xbd\x00\x48\x00\x1c\x00\xd1\x00\x09\x00\x22\x00\x56\x00\xd1\x00\x2e\x00\xd1\x00\x4f\x00\x1e\x00\x29\x00\xca\x00\x17\x00\x38\x00\x39\x00\x22\x00\x39\x00\x27\x00\x3a\x00\xc2\x00\x2f\x00\x1f\x00\xc7\x00\xc8\x00\x12\x00\x13\x00\xc9\x00\xca\x00\x63\x00\x24\x00\x0b\x00\x0c\x00\x72\x00\x1c\x00\x6b\x00\x1c\x00\x66\x00\x1f\x00\x39\x00\x21\x00\xb9\x00\x23\x00\x24\x00\x25\x00\x26\x00\xb5\x00\x17\x00\x13\x00\x2a\x00\x30\x00\x2c\x00\x57\x00\x61\x00\x84\x00\xc7\x00\xc8\x00\x6c\x00\x22\x00\x57\x00\x1f\x00\xc4\x00\x21\x00\x73\x00\x23\x00\x24\x00\x25\x00\x26\x00\x73\x00\x6e\x00\x73\x00\x2a\x00\x84\x00\x2c\x00\xb5\x00\xd1\x00\x84\x00\xba\x00\x84\x00\x84\x00\xbd\x00\xd1\x00\xbf\x00\xa3\x00\xb6\x00\xd1\x00\xd1\x00\xb9\x00\xb4\x00\xc4\x00\xb4\x00\xb0\x00\xb8\x00\xca\x00\xb8\x00\xd1\x00\xcd\x00\xc3\x00\xc4\x00\xc5\x00\xa3\x00\xc7\x00\xc8\x00\xd1\x00\xc4\x00\xc5\x00\xc4\x00\xc5\x00\xc8\x00\xd1\x00\xc8\x00\xb6\x00\x6c\x00\xd1\x00\xb9\x00\xd5\x00\xc8\x00\xc8\x00\xb0\x00\xb5\x00\xd4\x00\xd1\x00\xd1\x00\xd1\x00\xc3\x00\xc4\x00\xc5\x00\x78\x00\xc7\x00\xc8\x00\x6e\x00\xb4\x00\xc4\x00\xc5\x00\xc4\x00\xb8\x00\x4f\x00\x82\x00\x84\x00\x84\x00\x84\x00\x86\x00\xd5\x00\x26\x00\x89\x00\x8a\x00\x8b\x00\xc4\x00\xc5\x00\x78\x00\x2d\x00\xc8\x00\x91\x00\xb4\x00\xc4\x00\xc5\x00\x19\x00\xb8\x00\x1e\x00\x82\x00\xb4\x00\x84\x00\x22\x00\x86\x00\xb8\x00\x22\x00\x89\x00\x8a\x00\x8b\x00\xc4\x00\xc5\x00\x30\x00\x22\x00\xc8\x00\x91\x00\x3f\x00\xc4\x00\xc5\x00\x28\x00\x43\x00\xc8\x00\x45\x00\x46\x00\x47\x00\xb6\x00\xd4\x00\xb3\x00\x46\x00\x47\x00\xb6\x00\xb7\x00\x5a\x00\xb9\x00\x44\x00\x45\x00\x46\x00\x47\x00\xc3\x00\xc4\x00\xc5\x00\xd3\x00\x08\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\x6c\x00\x22\x00\xb6\x00\xb7\x00\xb2\x00\xb9\x00\xd0\x00\x16\x00\x5a\x00\xb7\x00\x01\x00\x17\x00\x2d\x00\x63\x00\x64\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x25\x00\x22\x00\x16\x00\xc6\x00\x1f\x00\x6c\x00\x21\x00\xd0\x00\x23\x00\x24\x00\x25\x00\x26\x00\x31\x00\x32\x00\x33\x00\x2a\x00\xb4\x00\x2c\x00\x27\x00\x45\x00\x46\x00\x47\x00\x17\x00\xc4\x00\xc5\x00\xa8\x00\x19\x00\x58\x00\x59\x00\x17\x00\x32\x00\x33\x00\xc4\x00\xc5\x00\x1f\x00\x22\x00\x21\x00\x0b\x00\x0c\x00\x28\x00\x22\x00\xd6\x00\x3f\x00\x40\x00\x41\x00\x2a\x00\x43\x00\x2c\x00\x45\x00\x46\x00\x47\x00\x79\x00\x17\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x3e\x00\x3f\x00\xc4\x00\xc5\x00\x66\x00\x43\x00\x22\x00\x45\x00\x46\x00\x47\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x8c\x00\xb6\x00\x8e\x00\xd6\x00\xc4\x00\xc5\x00\x30\x00\xc7\x00\xc8\x00\xc4\x00\xc5\x00\x61\x00\xc7\x00\xc8\x00\xc3\x00\xc4\x00\xc5\x00\xc4\x00\xc5\x00\x78\x00\xc7\x00\xc8\x00\xd6\x00\x17\x00\x0b\x00\x0c\x00\x22\x00\xd6\x00\x17\x00\x82\x00\x74\x00\x84\x00\x28\x00\x86\x00\x22\x00\xd6\x00\x89\x00\x8a\x00\x8b\x00\x22\x00\x6f\x00\x70\x00\x71\x00\x1f\x00\x91\x00\x21\x00\x19\x00\xd2\x00\x19\x00\x78\x00\xb9\x00\xc4\x00\xc5\x00\x29\x00\x2a\x00\x22\x00\x2c\x00\x22\x00\x64\x00\x82\x00\x91\x00\x84\x00\x93\x00\x86\x00\xc7\x00\xc8\x00\x89\x00\x8a\x00\x8b\x00\xd6\x00\x05\x00\x06\x00\xc4\x00\xc5\x00\x91\x00\xc7\x00\xc8\x00\x19\x00\xb3\x00\x50\x00\x51\x00\xb6\x00\xb7\x00\x54\x00\xb9\x00\x3f\x00\x22\x00\x16\x00\xb7\x00\x43\x00\xd6\x00\x45\x00\x46\x00\x47\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc8\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x22\x00\xd0\x00\xb3\x00\x1e\x00\x26\x00\xb6\x00\xb7\x00\x22\x00\xb9\x00\x2b\x00\x36\x00\xc4\x00\xc5\x00\xd6\x00\xc7\x00\xc8\x00\x05\x00\x06\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xd2\x00\x08\x00\x78\x00\x0a\x00\x1f\x00\xd6\x00\x21\x00\xd0\x00\xca\x00\x16\x00\xb6\x00\xcd\x00\x82\x00\x0f\x00\x84\x00\x2a\x00\x86\x00\x2c\x00\xd3\x00\x89\x00\x8a\x00\x8b\x00\x92\x00\xc3\x00\xc4\x00\xc5\x00\x1f\x00\x91\x00\x21\x00\x8c\x00\x25\x00\x8e\x00\x25\x00\x26\x00\x15\x00\x05\x00\x06\x00\x2a\x00\xc2\x00\x2c\x00\x0b\x00\x0c\x00\x31\x00\x32\x00\x33\x00\xc9\x00\xca\x00\x14\x00\x3e\x00\x3f\x00\xc4\x00\xc5\x00\x16\x00\x43\x00\xc8\x00\x45\x00\x46\x00\x47\x00\x1c\x00\xb1\x00\xb2\x00\xb3\x00\x0b\x00\x0c\x00\xb6\x00\xb7\x00\xd2\x00\xb9\x00\x3f\x00\xcb\x00\xd2\x00\xcd\x00\x43\x00\xcf\x00\x45\x00\x46\x00\x47\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x0b\x00\x0c\x00\x70\x00\x71\x00\x92\x00\xc4\x00\xc5\x00\xd0\x00\xc7\x00\xc8\x00\x78\x00\xc3\x00\xc4\x00\xc5\x00\xba\x00\xc7\x00\xc8\x00\xbd\x00\xcd\x00\xbf\x00\x82\x00\x4e\x00\x84\x00\xd6\x00\x86\x00\x3c\x00\x3d\x00\x89\x00\x8a\x00\x8b\x00\xca\x00\x66\x00\x78\x00\xcd\x00\x1f\x00\x91\x00\x21\x00\xc4\x00\xc5\x00\xb6\x00\x25\x00\x26\x00\x82\x00\x66\x00\x84\x00\x2a\x00\x86\x00\x2c\x00\xcd\x00\x89\x00\x8a\x00\x8b\x00\xc3\x00\xc4\x00\xc5\x00\x3e\x00\x3f\x00\x91\x00\x41\x00\xaf\x00\x43\x00\x01\x00\x45\x00\x46\x00\x47\x00\x1f\x00\xb6\x00\x21\x00\x8c\x00\xb3\x00\x8e\x00\xd1\x00\xb6\x00\xb7\x00\xd2\x00\xb9\x00\x2a\x00\x01\x00\x2c\x00\xc3\x00\xc4\x00\xc5\x00\x06\x00\x07\x00\x97\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\x50\x00\x51\x00\xb6\x00\xb7\x00\x08\x00\xb9\x00\xd0\x00\xc4\x00\xc5\x00\xb6\x00\xc7\x00\xc8\x00\xd2\x00\xae\x00\xaf\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb6\x00\xc3\x00\xc4\x00\xc5\x00\xd6\x00\xc4\x00\xc5\x00\xd0\x00\xc7\x00\xc8\x00\x78\x00\x5c\x00\x5d\x00\xc3\x00\xc4\x00\xc5\x00\x80\x00\x81\x00\x82\x00\x83\x00\x82\x00\xd2\x00\x84\x00\xd6\x00\x86\x00\x0b\x00\x0c\x00\x89\x00\x8a\x00\x8b\x00\x35\x00\x26\x00\xb4\x00\x6a\x00\x6b\x00\x91\x00\xb8\x00\x6a\x00\x6b\x00\xc4\x00\xc5\x00\x78\x00\xc7\x00\xc8\x00\x18\x00\x19\x00\x1a\x00\x37\x00\xc4\x00\xc5\x00\x6c\x00\x82\x00\xc8\x00\x84\x00\x2b\x00\x86\x00\x2d\x00\xd6\x00\x89\x00\x8a\x00\x8b\x00\x26\x00\x29\x00\xb7\x00\x2b\x00\x27\x00\x91\x00\x29\x00\xb6\x00\xb3\x00\x0b\x00\x0c\x00\xb6\x00\xb7\x00\xd2\x00\xb9\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc3\x00\xc4\x00\xc5\x00\xac\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc3\x00\xc4\x00\xc5\x00\xd6\x00\xc7\x00\xc8\x00\x27\x00\xd0\x00\x29\x00\xb3\x00\x0d\x00\x0e\x00\xb6\x00\xb7\x00\x27\x00\xb9\x00\x29\x00\x6c\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x95\x00\x96\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x27\x00\x82\x00\x29\x00\x84\x00\x27\x00\x86\x00\x29\x00\xd0\x00\x89\x00\x8a\x00\x8b\x00\xb6\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x91\x00\xd1\x00\x75\x00\x76\x00\x77\x00\x78\x00\x0b\x00\x0c\x00\xc3\x00\xc4\x00\xc5\x00\x45\x00\x46\x00\x47\x00\x48\x00\x82\x00\x6d\x00\x84\x00\x4c\x00\x86\x00\x03\x00\x04\x00\x89\x00\x8a\x00\x8b\x00\x3f\x00\x40\x00\x41\x00\x32\x00\x43\x00\x91\x00\x45\x00\x46\x00\x47\x00\xb3\x00\x0b\x00\x0c\x00\xb6\x00\xb7\x00\xd2\x00\xb9\x00\x94\x00\x95\x00\x96\x00\x79\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x7d\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x0b\x00\x0c\x00\x45\x00\x46\x00\x47\x00\x48\x00\x79\x00\xd0\x00\xb3\x00\x4c\x00\x66\x00\xb6\x00\xb7\x00\xd2\x00\xb9\x00\x3f\x00\x2d\x00\x2e\x00\x25\x00\x43\x00\x27\x00\x45\x00\x46\x00\x47\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x31\x00\x32\x00\x33\x00\x27\x00\x3f\x00\x29\x00\x41\x00\xd0\x00\x43\x00\x8c\x00\x45\x00\x46\x00\x47\x00\x2d\x00\x2e\x00\x4a\x00\x4b\x00\x0b\x00\x0c\x00\x3e\x00\x3f\x00\x94\x00\x95\x00\x96\x00\x43\x00\x97\x00\x45\x00\x46\x00\x47\x00\x06\x00\x07\x00\x3f\x00\xb4\x00\x41\x00\x31\x00\x43\x00\xb8\x00\x45\x00\x46\x00\x47\x00\x2d\x00\x2e\x00\x4a\x00\x4b\x00\x0b\x00\x0c\x00\x3e\x00\x3f\x00\xc4\x00\xc5\x00\x31\x00\x43\x00\xc8\x00\x45\x00\x46\x00\x47\x00\x34\x00\x35\x00\x3f\x00\xb7\x00\x41\x00\x27\x00\x43\x00\x29\x00\x45\x00\x46\x00\x47\x00\x49\x00\x4a\x00\x4a\x00\x4b\x00\xc2\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x72\x00\xc9\x00\xca\x00\xcb\x00\x3f\x00\xcd\x00\x41\x00\xcf\x00\x43\x00\x36\x00\x45\x00\x46\x00\x47\x00\xd6\x00\x52\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x42\x00\x43\x00\xd3\x00\x45\x00\x46\x00\x47\x00\x3f\x00\x27\x00\x41\x00\x29\x00\x43\x00\x36\x00\x45\x00\x46\x00\x47\x00\x03\x00\x04\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x36\x00\xc4\x00\xc5\x00\xd1\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x8c\x00\x43\x00\x62\x00\x45\x00\x46\x00\x47\x00\x20\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x50\x00\x51\x00\x4e\x00\x53\x00\x54\x00\xa6\x00\xa7\x00\xa8\x00\x27\x00\xb7\x00\x29\x00\xc4\x00\xc5\x00\xd6\x00\xc7\x00\xc8\x00\x8c\x00\xb6\x00\x01\x00\x65\x00\xb9\x00\x17\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x03\x00\x04\x00\xd6\x00\xc3\x00\xc4\x00\xc5\x00\x17\x00\xc7\x00\xc8\x00\xb7\x00\x8c\x00\xc4\x00\xc5\x00\xd6\x00\xc7\x00\xc8\x00\x43\x00\x17\x00\x45\x00\x46\x00\x47\x00\x16\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x22\x00\x27\x00\xd6\x00\x29\x00\x3f\x00\xb7\x00\x41\x00\x27\x00\x43\x00\x29\x00\x45\x00\x46\x00\x47\x00\xd6\x00\x16\x00\x29\x00\xc2\x00\x2b\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\x32\x00\xb7\x00\x0a\x00\x0b\x00\x0c\x00\xc4\x00\xc5\x00\x49\x00\xc7\x00\xc8\x00\x55\x00\xd6\x00\xc2\x00\x5b\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\x84\x00\xb7\x00\xd6\x00\x44\x00\x45\x00\x46\x00\x47\x00\x69\x00\x6a\x00\x6b\x00\x1d\x00\xd6\x00\x08\x00\x09\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x2b\x00\x41\x00\x2d\x00\x43\x00\x84\x00\x45\x00\x46\x00\x47\x00\x05\x00\x06\x00\x4a\x00\x4b\x00\xd6\x00\x4d\x00\x0a\x00\x0b\x00\x0c\x00\x29\x00\x3f\x00\x2b\x00\x41\x00\x25\x00\x43\x00\x1c\x00\x45\x00\x46\x00\x47\x00\x49\x00\x4a\x00\x4a\x00\x4b\x00\x49\x00\x4d\x00\x31\x00\x32\x00\x33\x00\x7d\x00\x7e\x00\x3f\x00\x67\x00\x41\x00\x28\x00\x43\x00\x1c\x00\x45\x00\x46\x00\x47\x00\x29\x00\x49\x00\x4a\x00\x4b\x00\x29\x00\xc4\x00\xc5\x00\x84\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x73\x00\x43\x00\x5b\x00\x45\x00\x46\x00\x47\x00\x17\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x0c\x00\x41\x00\x17\x00\x43\x00\x0f\x00\x45\x00\x46\x00\x47\x00\x17\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\x43\x00\x27\x00\x45\x00\x46\x00\x47\x00\x8c\x00\x3f\x00\x1c\x00\x41\x00\x29\x00\x43\x00\x1c\x00\x45\x00\x46\x00\x47\x00\x73\x00\x49\x00\x4a\x00\x4b\x00\x53\x00\x54\x00\xc4\x00\xc5\x00\x2b\x00\xc7\x00\xc8\x00\x3f\x00\x1d\x00\x41\x00\xb7\x00\x43\x00\x72\x00\x45\x00\x46\x00\x47\x00\x28\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\x05\x00\x06\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x32\x00\x43\x00\x32\x00\x45\x00\x46\x00\x47\x00\x17\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x17\x00\x1e\x00\xb7\x00\x5b\x00\x22\x00\x43\x00\x84\x00\x45\x00\x46\x00\x47\x00\x5b\x00\x5c\x00\x5d\x00\xd6\x00\x84\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x05\x00\x43\x00\x17\x00\x45\x00\x46\x00\x47\x00\x32\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x22\x00\x43\x00\x20\x00\x45\x00\x46\x00\x47\x00\x29\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x1e\x00\x28\x00\xb7\x00\x0c\x00\x16\x00\xc4\x00\xc5\x00\x22\x00\xc7\x00\xc8\x00\x69\x00\x6a\x00\x6b\x00\xd6\x00\x1c\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x17\x00\x84\x00\xb7\x00\xd6\x00\x44\x00\x45\x00\x46\x00\x47\x00\x69\x00\x6a\x00\x6b\x00\x74\x00\x73\x00\xd6\x00\x78\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x31\x00\x41\x00\xb7\x00\x43\x00\x1c\x00\x45\x00\x46\x00\x47\x00\x29\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\x84\x00\x1e\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x84\x00\x41\x00\x25\x00\x43\x00\x84\x00\x45\x00\x46\x00\x47\x00\x1e\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\x28\x00\xc4\x00\xc5\x00\x17\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x64\x00\x43\x00\x56\x00\x45\x00\x46\x00\x47\x00\x5f\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x84\x00\x43\x00\x1d\x00\x45\x00\x46\x00\x47\x00\x1d\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x17\x00\x41\x00\x5b\x00\x43\x00\x1d\x00\x45\x00\x46\x00\x47\x00\x05\x00\x49\x00\x4a\x00\x4b\x00\xd6\x00\x7b\x00\x7c\x00\x7d\x00\x22\x00\x17\x00\x3f\x00\x28\x00\x41\x00\x24\x00\x43\x00\x24\x00\x45\x00\x46\x00\x47\x00\x73\x00\x49\x00\x4a\x00\x4b\x00\x5b\x00\xc4\x00\xc5\x00\x1d\x00\xc7\x00\xc8\x00\x3f\x00\x2d\x00\x41\x00\xb7\x00\x43\x00\x2b\x00\x45\x00\x46\x00\x47\x00\x22\x00\x2b\x00\x4a\x00\x4b\x00\xd6\x00\x2b\x00\x1d\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x1c\x00\x41\x00\xb7\x00\x43\x00\x2c\x00\x45\x00\x46\x00\x47\x00\x41\x00\x29\x00\x4a\x00\x4b\x00\xd6\x00\x28\x00\x1d\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x22\x00\x2d\x00\xb7\x00\x22\x00\x44\x00\x45\x00\x46\x00\x47\x00\x7b\x00\x7c\x00\x7d\x00\x64\x00\x84\x00\xd6\x00\x21\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x5d\x00\x43\x00\x29\x00\x45\x00\x46\x00\x47\x00\x0c\x00\x0f\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x0f\x00\x43\x00\x16\x00\x45\x00\x46\x00\x47\x00\x46\x00\x1e\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x4b\x00\x43\x00\x27\x00\x45\x00\x46\x00\x47\x00\x1e\x00\x1e\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x24\x00\x43\x00\x17\x00\x45\x00\x46\x00\x47\x00\x17\x00\x0f\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x5f\x00\x41\x00\xb7\x00\x43\x00\x28\x00\x45\x00\x46\x00\x47\x00\x0c\x00\x21\x00\x4a\x00\x4b\x00\xd6\x00\x28\x00\x84\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\x29\x00\x41\x00\x84\x00\x43\x00\x1c\x00\x45\x00\x46\x00\x47\x00\x1d\x00\x1d\x00\x4a\x00\x4b\x00\xd6\x00\x1e\x00\xc4\x00\xc5\x00\x2c\x00\xc7\x00\xc8\x00\x3f\x00\x1d\x00\x41\x00\xb7\x00\x43\x00\x22\x00\x45\x00\x46\x00\x47\x00\x2c\x00\x17\x00\x4a\x00\x4b\x00\xd6\x00\x28\x00\x1d\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x73\x00\x43\x00\x17\x00\x45\x00\x46\x00\x47\x00\x73\x00\x24\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x1b\x00\x43\x00\x29\x00\x45\x00\x46\x00\x47\x00\x2b\x00\x5f\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x73\x00\x43\x00\x5b\x00\x45\x00\x46\x00\x47\x00\x22\x00\x73\x00\x4a\x00\x4b\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x3f\x00\xb7\x00\x41\x00\x24\x00\x43\x00\x24\x00\x45\x00\x46\x00\x47\x00\x94\x00\x95\x00\x96\x00\x22\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x94\x00\x95\x00\x96\x00\xb7\x00\x3b\x00\x3c\x00\x3d\x00\x44\x00\x45\x00\x46\x00\x47\x00\x05\x00\x1c\x00\xd6\x00\x17\x00\x17\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x42\x00\x43\x00\xb7\x00\x45\x00\x46\x00\x47\x00\x50\x00\x51\x00\x52\x00\x4b\x00\x22\x00\x17\x00\x21\x00\xd6\x00\x17\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x17\x00\x42\x00\x43\x00\xb7\x00\x45\x00\x46\x00\x47\x00\x17\x00\x5e\x00\x5f\x00\x60\x00\x17\x00\x62\x00\xd6\x00\x17\x00\x17\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x17\x00\xb7\x00\x45\x00\x46\x00\x47\x00\x48\x00\x17\x00\x21\x00\x5e\x00\x5f\x00\x60\x00\x2d\x00\x62\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x22\x00\xb7\x00\x2b\x00\x44\x00\x45\x00\x46\x00\x47\x00\x17\x00\x41\x00\x44\x00\x45\x00\x46\x00\x47\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x21\x00\xb7\x00\x41\x00\x44\x00\x45\x00\x46\x00\x47\x00\x41\x00\x27\x00\x44\x00\x45\x00\x46\x00\x47\x00\xd6\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x61\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x4b\x00\xb4\x00\x6d\x00\x2b\x00\x73\x00\xb8\x00\x29\x00\x28\x00\xd6\x00\x20\x00\x22\x00\xc4\x00\xc5\x00\x0f\x00\xc7\x00\xc8\x00\xb9\x00\xc4\x00\xc5\x00\x17\x00\x64\x00\xc8\x00\x70\x00\x2d\x00\x0c\x00\x0f\x00\x6b\x00\xc4\x00\xc5\x00\xd6\x00\xc7\x00\xc8\x00\x1d\x00\x09\x00\x84\x00\x0b\x00\x85\x00\xb9\x00\x84\x00\x20\x00\x0f\x00\x0f\x00\x1d\x00\x0f\x00\x1d\x00\xd6\x00\x68\x00\x17\x00\xc4\x00\xc5\x00\x5e\x00\xc7\x00\xc8\x00\x16\x00\x0c\x00\x85\x00\x1d\x00\x85\x00\x22\x00\x28\x00\x85\x00\xbe\x00\x00\x00\x27\x00\x46\x00\xc2\x00\xd6\x00\xc4\x00\xc5\x00\x2d\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\xd6\x00\xd7\x00\xd8\x00\xc4\x00\xc5\x00\xff\xff\xc7\x00\xc8\x00\xff\xff\xc4\x00\xc5\x00\xff\xff\xc7\x00\xc8\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\xff\xff\xd6\x00\xc4\x00\xc5\x00\xff\xff\xc7\x00\xc8\x00\xd6\x00\xc4\x00\xc5\x00\xff\xff\xc7\x00\xc8\x00\xb4\x00\x01\x00\x16\x00\x17\x00\xb8\x00\x05\x00\x06\x00\xd6\x00\xff\xff\x09\x00\xff\xff\xff\xff\xff\xff\xd6\x00\xff\xff\xff\xff\xc4\x00\xc5\x00\x26\x00\xff\xff\xc8\x00\xff\xff\x16\x00\x01\x00\x18\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x24\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x2f\x00\x30\x00\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\x74\x00\xff\xff\xff\xff\x61\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\x09\x00\x74\x00\x61\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\x01\x00\x18\x00\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\x74\x00\x5f\x00\x20\x00\x61\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\xff\xff\xff\xff\x16\x00\xff\xff\x18\x00\xff\xff\x01\x00\xff\xff\x32\x00\xff\xff\x74\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x7f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\x01\x00\xff\xff\xff\xff\x61\x00\x05\x00\x06\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x08\x00\x09\x00\xff\xff\x7a\x00\x16\x00\x74\x00\x18\x00\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x4f\x00\x7f\x00\xff\xff\xff\xff\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\x74\x00\x24\x00\x25\x00\xff\xff\xff\xff\x32\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xbb\x00\xff\xff\xff\xff\xbe\x00\x61\x00\xc0\x00\xff\xff\xc2\x00\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xc9\x00\xca\x00\xcb\x00\xff\xff\xcd\x00\xff\xff\xcf\x00\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x7f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xbb\x00\xff\xff\x1c\x00\xbe\x00\xff\xff\xc0\x00\x20\x00\xc2\x00\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x00\xca\x00\xcb\x00\xff\xff\xcd\x00\xff\xff\xcf\x00\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\xff\xff\x79\x00\xff\xff\xff\xff\xff\xff\x7d\x00\x7e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xbb\x00\x18\x00\xff\xff\xbe\x00\xff\xff\xc0\x00\xff\xff\xc2\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xc9\x00\xca\x00\xcb\x00\xff\xff\xcd\x00\xff\xff\xcf\x00\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x63\x00\xff\xff\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\xff\xff\x79\x00\xff\xff\xff\xff\xff\xff\x7d\x00\x7e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\xff\xff\x79\x00\xff\xff\xff\xff\xff\xff\x7d\x00\x7e\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\x16\x00\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\x4f\x00\xff\xff\x2a\x00\xff\xff\x53\x00\x54\x00\x55\x00\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\x61\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\x6f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\x70\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\x57\x00\x03\x00\x04\x00\x05\x00\x06\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\x6a\x00\x16\x00\xff\xff\x18\x00\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x20\x00\x21\x00\xff\xff\xff\xff\xff\xff\x7a\x00\x7b\x00\x7c\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\x61\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x01\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\x59\x00\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x16\x00\xff\xff\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\x25\x00\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\x74\x00\xff\xff\xff\xff\x01\x00\x02\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\x59\x00\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x16\x00\xff\xff\xff\xff\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\x26\x00\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\x01\x00\x46\x00\xff\xff\x48\x00\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\x16\x00\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\x67\x00\xff\xff\x25\x00\x6a\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x61\x00\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x74\x00\x75\x00\x76\x00\x77\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\x59\x00\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\x16\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\x26\x00\x71\x00\xff\xff\xff\xff\x74\x00\x75\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x32\x00\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x74\x00\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\xff\xff\x59\x00\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\x16\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x6a\x00\xff\xff\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x71\x00\xff\xff\xff\xff\x74\x00\x75\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\x23\x00\x24\x00\x25\x00\xff\xff\x27\x00\x28\x00\x29\x00\xff\xff\x2b\x00\x01\x00\xff\xff\xff\xff\x2f\x00\x05\x00\x31\x00\x32\x00\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x16\x00\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x01\x00\x42\x00\x43\x00\x44\x00\x05\x00\x46\x00\xff\xff\x48\x00\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6a\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x07\x00\x2f\x00\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\x91\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x07\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xb3\x00\x48\x00\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\x91\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x07\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xb3\x00\x48\x00\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x88\x00\x89\x00\x8a\x00\x8b\x00\x20\x00\xff\xff\xff\xff\x23\x00\xff\xff\x91\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\xff\xff\x07\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xb3\x00\x48\x00\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x74\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x23\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\x38\x00\xff\xff\xff\xff\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\x42\x00\x43\x00\x44\x00\xff\xff\x46\x00\xff\xff\x48\x00\x74\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\x09\x00\xff\xff\x0b\x00\x61\x00\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x74\x00\x20\x00\x05\x00\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\x22\x00\xff\xff\x24\x00\x25\x00\x2d\x00\x27\x00\x28\x00\xff\xff\xff\xff\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x01\x00\x31\x00\x32\x00\x33\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\xff\xff\x0b\x00\x26\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x20\x00\x61\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\x5f\x00\xff\xff\x61\x00\xff\xff\x2d\x00\xff\xff\x2f\x00\x30\x00\xff\xff\xff\xff\xff\xff\x74\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\x61\x00\x08\x00\x09\x00\xff\xff\x0b\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x01\x00\x74\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x20\x00\x61\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x16\x00\x2f\x00\x18\x00\x19\x00\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\x17\x00\x18\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x5f\x00\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\x5f\x00\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x5f\x00\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x01\x00\xff\xff\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\x5f\x00\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x5f\x00\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x01\x00\x02\x00\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x30\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x5e\x00\xff\xff\xff\xff\x61\x00\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x74\x00\x05\x00\x06\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x20\x00\x61\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x30\x00\xff\xff\xff\xff\x16\x00\x74\x00\x18\x00\x01\x00\x02\x00\xff\xff\x61\x00\x05\x00\x06\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x16\x00\x74\x00\xff\xff\x05\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\x16\x00\xff\xff\x61\x00\x05\x00\x06\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\x74\x00\x18\x00\x01\x00\xff\xff\xff\xff\xff\xff\x05\x00\x06\x00\x74\x00\x20\x00\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\xff\xff\x18\x00\x01\x00\x02\x00\xff\xff\x74\x00\x05\x00\x06\x00\xff\xff\x20\x00\x61\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x6b\x00\xff\xff\xff\xff\x16\x00\x01\x00\x02\x00\xff\xff\xff\xff\xff\xff\x74\x00\x61\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\xff\xff\xff\xff\xff\xff\x74\x00\x61\x00\x01\x00\x02\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x16\x00\xff\xff\x61\x00\x01\x00\x02\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x01\x00\x16\x00\xff\xff\x61\x00\x05\x00\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\xff\xff\x01\x00\x16\x00\x74\x00\xff\xff\xff\xff\x61\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x16\x00\x24\x00\x25\x00\x74\x00\x27\x00\x28\x00\x01\x00\x16\x00\xff\xff\xff\xff\xff\xff\x61\x00\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x16\x00\x01\x00\xff\xff\x74\x00\xff\xff\x05\x00\xff\xff\xff\xff\x61\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x74\x00\x61\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\x74\x00\x61\x00\xff\xff\xff\xff\x24\x00\x25\x00\xff\xff\x27\x00\x61\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x31\x00\x32\x00\x33\x00\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x61\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x61\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\x91\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xff\xff\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\xff\xff\x27\x00\x28\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9d\x00\x9e\x00\x9f\x00\xff\xff\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9e\x00\x9f\x00\xff\xff\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xab\x00\xff\xff\xad\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xab\x00\xff\xff\xad\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xab\x00\xff\xff\xad\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xab\x00\xff\xff\xad\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\xff\xff\xff\xff\x90\x00\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xbc\x00\xff\xff\xbe\x00\xff\xff\xff\xff\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\x8d\x00\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9a\x00\x9b\x00\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\x8d\x00\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xbc\x00\xff\xff\xbe\x00\xff\xff\xff\xff\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xff\xff\xcc\x00\xff\xff\xce\x00\xcf\x00\xd0\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xbc\x00\xff\xff\xbe\x00\xff\xff\xff\xff\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xff\xff\xcc\x00\xff\xff\xce\x00\xcf\x00\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\x8d\x00\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\x8d\x00\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xbc\x00\xff\xff\xbe\x00\xff\xff\xff\xff\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xff\xff\xcc\x00\xff\xff\xce\x00\xcf\x00\xd0\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xbc\x00\xff\xff\xbe\x00\xff\xff\xff\xff\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xff\xff\xcc\x00\xff\xff\xce\x00\xcf\x00\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\x8d\x00\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xbc\x00\xff\xff\xbe\x00\xff\xff\xff\xff\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xff\xff\xcc\x00\xff\xff\xce\x00\xcf\x00\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xa4\x00\xa5\x00\xff\xff\x91\x00\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xa5\x00\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\x8f\x00\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x90\x00\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\x8f\x00\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa9\x00\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xd0\x00\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xd0\x00\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\x84\x00\xff\xff\x86\x00\xff\xff\xd0\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x88\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\x91\x00\xff\xff\xff\xff\x94\x00\x95\x00\x96\x00\xff\xff\x98\x00\x99\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\x94\x00\x95\x00\x96\x00\xff\xff\x98\x00\x99\x00\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xb3\x00\xff\xff\xd0\x00\xb6\x00\xb7\x00\x91\x00\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xd0\x00\xb6\x00\xb7\x00\xff\xff\xb9\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xb3\x00\xff\xff\xd0\x00\xb6\x00\xb7\x00\x91\x00\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\x91\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xd0\x00\xb6\x00\xb7\x00\xff\xff\xb9\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x91\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xb3\x00\xff\xff\xff\xff\xb6\x00\xb7\x00\xff\xff\xb9\x00\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb3\x00\xff\xff\xd0\x00\xb6\x00\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd0\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# happyTable :: HappyAddr -happyTable = HappyA# "\x00\x00\x86\x00\x0f\x02\x87\x00\x07\x00\x09\x00\x1f\x03\x20\x03\x21\x03\x94\x00\xb4\x02\x65\x01\x15\x04\xe1\x02\x87\x01\x67\x01\xff\x01\xbc\x02\x94\x00\xb9\x01\x67\x01\xee\x02\xe2\x02\x0c\x04\x16\x04\x17\x04\x94\x00\x51\x02\x21\x04\xc0\x03\x41\x02\x1c\x04\x94\x00\xea\x02\xe5\x03\xbd\x03\x95\x00\x67\x01\xee\x02\x29\x02\x06\x04\xc0\x02\x67\x01\xff\x01\x00\x02\x0e\x04\x74\x03\xc0\x02\x67\x01\xf6\x02\xbf\x02\xc0\x02\x40\x02\x67\x01\xf6\x02\x50\x01\xcc\x00\x29\x02\xd0\x00\x67\x01\x44\x03\x29\x02\xf1\x03\x29\x02\xec\x01\x67\x01\x6d\x03\xbe\xff\xc7\x03\xbf\x03\xc0\x03\x02\x02\x67\x01\x6d\x03\x52\x02\xe8\x01\x3a\x01\xa8\x00\x54\x02\xaa\x00\x6e\x01\x32\x03\x01\x03\xd7\x02\x92\x01\x93\x01\xc8\x03\x8c\x00\x60\x03\x8d\x00\x1f\x04\xcd\x00\xa8\x00\xd7\x02\x55\x03\xcd\x00\x3b\x01\xcd\x00\xd7\x00\x04\x04\xd8\x02\x8b\x01\x01\x04\x00\x03\x01\x03\xb9\x01\xe5\x02\xad\x00\x3c\x01\x51\x01\xe9\x01\x6f\x01\xbd\x02\x18\x00\x14\x03\x15\x03\xa1\x00\xa2\x00\xd8\x00\x62\x03\x67\x01\x44\x03\x56\x03\xee\x01\x8e\x00\xee\x01\xf9\x03\x2c\x00\xba\x01\x2d\x00\x7d\x03\x16\x03\xc1\x01\xc2\x01\x2f\x00\xec\x02\x26\x04\xb5\x03\x30\x00\x94\x01\x31\x00\x6e\x03\x13\x04\xb4\x02\x40\x00\x18\x00\xf3\x03\xff\x03\x6f\x03\x2c\x00\x56\x02\x2d\x00\xf7\x02\xb6\x03\xc1\x01\xc2\x01\x2f\x00\xf8\x02\x45\x03\xf6\xfe\x30\x00\xaf\x02\x31\x00\x55\x02\xc1\x02\xb0\x02\x88\x01\xb1\x02\xed\x01\x89\x01\xc1\x02\x8a\x01\xef\x02\x22\x03\xc1\x02\x96\x00\x23\x03\x18\x04\x56\x02\xc1\x03\x01\x02\x19\x04\x8b\x01\xc2\x03\x96\x00\x8c\x01\x3e\x00\x14\x00\x3f\x00\xf0\x02\x40\x00\x18\x00\x96\x00\x14\x00\xbb\x00\x14\x00\xbb\x00\xbc\x00\x96\x00\xbc\x00\x22\x03\xf4\x03\x10\x02\x23\x03\x24\x03\x66\x01\x66\x01\x03\x02\x55\x02\x1a\x04\x08\x00\x08\x00\x08\x00\x3e\x00\x14\x00\x3f\x00\x32\x00\x40\x00\x18\x00\x46\x03\xc1\x03\x14\x00\x02\x03\x56\x02\xc2\x03\x83\x01\x33\x00\xef\x01\x34\x00\xf4\x01\x35\x00\x24\x03\xdd\x02\x36\x00\x37\x00\x38\x00\x14\x00\xbb\x00\x32\x00\xaf\x01\xbc\x00\x39\x00\x18\x04\x14\x00\x02\x03\x80\x01\x19\x04\xde\x03\x33\x00\xc1\x03\x34\x00\xdf\x03\x35\x00\xc2\x03\x7b\x01\x36\x00\x37\x00\x38\x00\x14\x00\xbb\x00\x88\x03\x93\x02\xbc\x00\x39\x00\x73\x01\x14\x00\xbb\x00\xe0\x03\xc9\x00\xbc\x00\x0d\x00\x0e\x00\x0f\x00\x95\x01\x1a\x04\x3a\x00\x06\x01\x0f\x00\x3b\x00\x3c\x00\xa1\x02\x3d\x00\x14\x04\x5d\x03\x0e\x00\x0f\x00\x3e\x00\x14\x00\x3f\x00\x00\x04\xa7\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\xa2\x02\xd7\x02\x3b\x00\x3c\x00\x2c\x03\x3d\x00\x41\x00\xba\x03\x8f\x01\x2d\x03\x1b\x00\xfe\x03\xf2\x03\x89\x03\x8a\x03\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xac\x00\xff\x03\x9c\x02\x16\x00\x2c\x00\x90\x01\x2d\x00\x41\x00\xc0\x01\xc1\x01\xc2\x01\x2f\x00\xaf\x00\xb0\x00\xb1\x00\x30\x00\xd4\x02\x31\x00\xcf\x01\x56\x01\x0e\x00\x0f\x00\x7e\x01\x14\x00\x15\x00\xd6\x03\x81\x01\x7b\x03\x7c\x03\xdc\x02\x9d\x02\x9e\x02\x14\x00\xbb\x00\x2c\x00\x82\x01\x2d\x00\xd1\x03\xd2\x03\x7f\x01\x2c\x01\x84\x01\x0a\x00\xd0\x01\xd1\x01\xa0\x03\x0c\x00\x31\x00\x0d\x00\x0e\x00\x0f\x00\xd7\x03\x88\x02\x49\x01\x12\x00\xd2\x01\x4f\x01\x96\x03\xe0\x01\x14\x00\x15\x00\x77\x03\xc9\x00\x2c\x01\x0d\x00\x0e\x00\x0f\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\xa8\x01\x95\x01\xda\x02\xf5\x02\x14\x00\x15\x00\x88\x03\x17\x00\x18\x00\x14\x00\x15\x00\x2b\x00\x17\x00\x18\x00\x3e\x00\x14\x00\x3f\x00\x14\x00\x15\x00\x32\x00\x17\x00\x18\x00\x19\x00\x7a\x01\xe3\x03\xe4\x03\x93\x02\x07\x01\xab\x01\x33\x00\x2c\x00\x34\x00\x94\x02\x35\x00\x7b\x01\x19\x00\x36\x00\x37\x00\x38\x00\x2c\x01\xa1\x03\xa2\x03\xa3\x03\x2c\x00\x39\x00\x2d\x00\xb0\x01\x79\x03\x4d\x01\x32\x00\x7d\x03\x14\x00\x15\x00\x23\x02\x24\x02\x7b\x01\x31\x00\x2c\x01\xed\x03\x33\x00\x91\x03\x34\x00\x92\x03\x35\x00\x40\x00\x18\x00\x36\x00\x37\x00\x38\x00\xa7\x02\x1e\x00\x1f\x00\x14\x00\x15\x00\x39\x00\x17\x00\x18\x00\x2b\x01\x3a\x00\x4b\x02\x4c\x02\x3b\x00\x3c\x00\x43\x03\x3d\x00\x74\x01\x2c\x01\x7f\x03\x13\x00\xc9\x00\x19\x00\x0d\x00\x0e\x00\x0f\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa4\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xb5\x01\x41\x00\x3a\x00\x8d\x02\xb6\x01\x3b\x00\x3c\x00\x8e\x02\x3d\x00\xb7\x01\xa6\x03\x14\x00\x15\x00\x19\x00\x17\x00\x18\x00\x1e\x00\x1f\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x9e\x03\xa7\x00\x32\x00\xa9\x00\x2c\x00\x19\x00\x2d\x00\x41\x00\xef\x01\xbf\x02\x95\x01\xf0\x01\x33\x00\xb1\x03\x34\x00\xa0\x03\x35\x00\x31\x00\xaf\x03\x36\x00\x37\x00\x38\x00\xb4\x03\x3e\x00\x14\x00\x3f\x00\x2c\x00\x39\x00\x2d\x00\xa8\x01\xac\x00\x86\x02\xe6\x02\x2f\x00\xb8\x03\x1e\x00\x1f\x00\x30\x00\xc3\x01\x31\x00\x9c\x03\x9d\x03\xaf\x00\xb0\x00\xb1\x00\xa1\x00\xa2\x00\x19\x03\xa7\x03\xe0\x01\x14\x00\xa3\x02\x7f\x03\xc9\x00\xa4\x02\x0d\x00\x0e\x00\x0f\x00\x29\x02\x25\x02\x26\x02\x3a\x00\xa9\x03\xaa\x03\x3b\x00\x27\x02\x36\x03\x3d\x00\x76\x01\x31\x01\x47\x03\xa4\x00\xc9\x00\xa5\x00\x0d\x00\x0e\x00\x0f\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x1b\x03\x1c\x03\xf2\x03\xa3\x03\x50\x03\x14\x00\x15\x00\x41\x00\x17\x00\x18\x00\x32\x00\xb0\x01\x14\x00\x3f\x00\x88\x01\x71\x01\x18\x00\x89\x01\xf0\x01\xb7\x02\x33\x00\xc5\x02\x34\x00\x19\x00\x35\x00\x2c\x02\xb8\x00\x36\x00\x37\x00\x38\x00\x8b\x01\x70\x03\x32\x00\x8c\x01\x2c\x00\x39\x00\x2d\x00\x14\x00\x31\x03\xcc\x03\x2e\x00\x2f\x00\x33\x00\xbb\x02\x34\x00\x30\x00\x35\x00\x31\x00\xeb\x02\x36\x00\x37\x00\x38\x00\x3e\x00\x14\x00\x3f\x00\xcd\x03\xce\x03\x39\x00\xcf\x03\xd8\x02\xc9\x00\x11\x03\x0d\x00\x0e\x00\x0f\x00\x2c\x00\x9e\x01\x2d\x00\xa8\x01\x3a\x00\xa9\x01\xf1\x02\x3b\x00\x3c\x00\x13\x03\x3d\x00\x2b\x03\x88\x00\x31\x00\x3e\x00\x14\x00\x3f\x00\x89\x00\x8a\x00\x15\x02\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x4b\x02\x42\x03\x3b\x00\x3c\x00\x17\x02\x3d\x00\x41\x00\x14\x00\x15\x00\xe4\x01\x17\x00\x18\x00\x1f\x02\x9c\x01\x9d\x01\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x9e\x01\x3e\x00\x14\x00\x3f\x00\x19\x00\x14\x00\x15\x00\x41\x00\x17\x00\x18\x00\x32\x00\x5a\x03\x96\x02\x3e\x00\x14\x00\x3f\x00\x62\x01\x63\x01\x64\x01\x65\x01\x33\x00\x20\x02\x34\x00\x19\x00\x35\x00\x07\x03\x08\x03\x36\x00\x37\x00\x38\x00\x30\x02\x38\x03\xb9\x00\x6b\x03\x9a\x02\x39\x00\xba\x00\xc3\x02\x9a\x02\x14\x00\x15\x00\x32\x00\x71\x01\x18\x00\x0f\x04\x10\x04\x11\x04\x31\x02\x14\x00\xbb\x00\x3d\x02\x33\x00\xbc\x00\x34\x00\x9b\x03\x35\x00\x9c\x03\x72\x01\x36\x00\x37\x00\x38\x00\x38\x03\xd6\xfe\x13\x00\xd6\xfe\x4d\xfe\x39\x00\x4d\xfe\xe9\x01\x3a\x00\x09\x03\x0a\x03\x3b\x00\x3c\x00\x3f\x02\x3d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x3e\x00\x14\x00\x3f\x00\x43\x02\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xf9\x01\x14\x00\x3f\x00\x19\x00\x71\x01\x18\x00\x5f\xfe\x41\x00\x5f\xfe\x3a\x00\x0e\x03\x0f\x03\x3b\x00\x3c\x00\x69\xfe\x3d\x00\x69\xfe\x4a\x02\x39\x03\x3a\x03\x3b\x03\x3c\x03\x3d\x03\x6c\x02\xdb\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x6a\xfe\x3e\x03\x6a\xfe\x34\x00\x6b\xfe\x35\x00\x6b\xfe\x41\x00\x36\x00\x37\x00\x38\x00\xc4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\x39\x00\x47\x02\xc9\x03\x3b\x03\x3c\x03\x3d\x03\x6d\x02\x6e\x02\x3e\x00\x14\x00\x3f\x00\x94\x03\x5f\x00\xbd\x03\x60\x00\x3e\x03\x4f\x02\x34\x00\x96\x03\x35\x00\xad\x02\x60\x01\x36\x00\x37\x00\x38\x00\x0a\x00\xa3\x01\xa4\x01\x59\x02\xc9\x00\x39\x00\x0d\x00\x0e\x00\x0f\x00\x3a\x00\x67\x01\xb2\x02\x3b\x00\x3c\x00\x6f\x02\x3d\x00\xff\x03\xda\x00\xdb\x00\x76\x02\xa7\x00\xa8\x00\xa9\x00\xaa\x00\x90\x02\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x67\x01\x68\x01\x94\x03\x5f\x00\x95\x03\x60\x00\x91\x02\x41\x00\x3a\x00\x96\x03\x9f\x02\x3b\x00\x3c\x00\x6c\x01\x3d\x00\xc8\x00\x35\x03\x37\x02\xac\x00\xc9\x00\xad\x00\x0d\x00\x0e\x00\x0f\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xaf\x00\xb0\x00\xb1\x00\x6c\xfe\x0a\x00\x6c\xfe\x0b\x00\x41\x00\x0c\x00\x4b\x01\x0d\x00\x0e\x00\x0f\x00\xff\x02\x37\x02\x38\x02\x12\x00\x67\x01\x69\x01\x4c\x03\xe0\x01\xda\x03\xda\x00\xdb\x00\xc9\x00\xc5\x01\x0d\x00\x0e\x00\x0f\x00\x0d\x02\x8a\x00\x0a\x00\xb9\x00\x0b\x00\xc7\x01\x0c\x00\xba\x00\x0d\x00\x0e\x00\x0f\x00\x36\x02\x37\x02\x38\x02\x12\x00\x67\x01\x6a\x01\xdf\x01\xe0\x01\x14\x00\xbb\x00\xca\x01\xc9\x00\xbc\x00\x0d\x00\x0e\x00\x0f\x00\xbf\x00\xc0\x00\x0a\x00\x13\x00\x0b\x00\x6d\xfe\x0c\x00\x6d\xfe\x0d\x00\x0e\x00\x0f\x00\x1e\x03\x1f\x03\x38\x02\x12\x00\xc3\x01\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xd4\x01\xa1\x00\xa2\x00\x31\x01\x0a\x00\xa4\x00\x0b\x00\xa5\x00\x0c\x00\xea\x01\x0d\x00\x0e\x00\x0f\x00\x19\x00\xcc\x01\x4d\x01\x12\x00\x4e\x01\x4f\x01\xc6\x02\x86\x03\x0a\x02\x0d\x00\x0e\x00\x0f\x00\x0a\x00\x6e\xfe\x0b\x00\x6e\xfe\x0c\x00\xc2\x00\x0d\x00\x0e\x00\x0f\x00\x5f\x01\x60\x01\x4d\x01\x12\x00\x4e\x01\x4f\x01\xc7\x00\x14\x00\x15\x00\x0e\x01\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x29\x01\x0c\x00\x87\x03\x0d\x00\x0e\x00\x0f\x00\x44\x01\xe9\x03\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x4b\x02\x4c\x02\x46\x01\x4d\x02\x4e\x02\x97\x03\x98\x03\x99\x03\x6f\xfe\x13\x00\x6f\xfe\x14\x00\x15\x00\x19\x00\x17\x00\x18\x00\x50\x01\x0b\x01\x88\x00\xea\x03\x0c\x01\x25\x04\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x1c\x00\x1d\x00\x19\x00\x3e\x00\x14\x00\x3f\x00\x21\x04\x40\x00\x18\x00\x13\x00\x50\x01\x14\x00\x15\x00\x19\x00\x17\x00\x18\x00\x81\x03\x1f\x04\x0d\x00\x0e\x00\x0f\x00\x1c\x04\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x1e\x04\x76\xfe\x19\x00\x76\xfe\x0a\x00\x13\x00\xe1\x01\x77\xfe\xc9\x00\x77\xfe\x0d\x00\x0e\x00\x0f\x00\x19\x00\x14\x04\x9b\x01\x5e\x03\x9c\x01\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xa1\x00\xa2\x00\x0c\x04\x13\x00\x12\x02\x67\x01\x13\x02\x14\x00\x15\x00\x04\x04\x17\x00\x18\x00\x03\x04\x19\x00\x51\x01\xa1\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xa1\x00\xa2\x00\x06\x04\x13\x00\x19\x00\x0a\x04\x5d\x03\x0e\x00\x0f\x00\x75\x03\x99\x02\x9a\x02\xc3\x02\x19\x00\xa7\x00\xa8\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\xae\x01\x0b\x00\xaf\x01\x0c\x00\x0a\x04\x0d\x00\x0e\x00\x0f\x00\x0c\x02\x0d\x02\x49\x01\x12\x00\x19\x00\x71\x03\x14\x02\x67\x01\x13\x02\x9b\x01\x0a\x00\x9c\x01\x0b\x00\xac\x00\x0c\x00\x29\x02\x0d\x00\x0e\x00\x0f\x00\xe8\x02\xe9\x02\x49\x01\x12\x00\xf0\x03\x4a\x01\xaf\x00\xb0\x00\xb1\x00\x19\x02\x1a\x02\x0a\x00\x72\x03\x0b\x00\x92\x01\x0c\x00\x29\x02\x0d\x00\x0e\x00\x0f\x00\x59\xff\x07\x04\x11\x00\x12\x00\xf6\x03\x14\x00\x15\x00\xf7\x03\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\xf9\x03\x0c\x00\xa1\x02\x0d\x00\x0e\x00\x0f\x00\xfb\x03\xe6\x03\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\xfc\x03\x0b\x00\xfd\x03\x0c\x00\xbc\x03\x0d\x00\x0e\x00\x0f\x00\xbf\x03\xf7\x03\x11\x00\x12\x00\x19\x00\x3c\x02\xc6\x03\x0d\x00\x0e\x00\x0f\x00\x4b\x01\x0a\x00\x29\x02\x0b\x00\xcc\x03\x0c\x00\x29\x02\x0d\x00\x0e\x00\x0f\x00\x78\x02\xc6\x03\x11\x00\x12\x00\xc9\x01\xca\x01\x14\x00\x15\x00\x9b\x03\x17\x00\x18\x00\x0a\x00\xfd\xfd\x0b\x00\x13\x00\x0c\x00\xdc\x03\x0d\x00\x0e\x00\x0f\x00\xe3\x03\xca\x03\x11\x00\x12\x00\x19\x00\x0c\x02\x0d\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\xe1\x03\x0c\x00\xe2\x03\x0d\x00\x0e\x00\x0f\x00\x77\x03\xab\x03\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x79\x03\x7b\x03\x13\x00\xa1\x02\x82\x01\x6f\x01\x80\x03\x0d\x00\x0e\x00\x0f\x00\x94\x02\x95\x02\x96\x02\x19\x00\x85\x03\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x1e\x00\x0c\x00\x8d\x03\x0d\x00\x0e\x00\x0f\x00\x8e\x03\xd3\x02\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\xe0\x02\x0c\x00\xc4\x00\x0d\x00\x0e\x00\x0f\x00\x07\x03\xfb\x02\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xa0\x03\xad\x03\x13\x00\xaf\x03\xb1\x03\x14\x00\x15\x00\xb3\x03\x17\x00\x18\x00\x98\x02\x99\x02\x9a\x02\x19\x00\x29\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xb4\x03\xb8\x03\x13\x00\x19\x00\xe7\x03\x5d\x03\x0e\x00\x0f\x00\xa9\x02\x99\x02\x9a\x02\xba\x03\x28\x03\x19\x00\x1b\x03\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x2b\x03\x0b\x00\x13\x00\x0c\x00\x29\x02\x0d\x00\x0e\x00\x0f\x00\x31\x03\x3b\x02\x11\x00\x12\x00\x19\x00\x29\x03\x38\x03\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x2a\x03\x0b\x00\x34\x03\x0c\x00\x35\x03\x0d\x00\x0e\x00\x0f\x00\x49\x03\x8e\x01\x11\x00\x12\x00\x19\x00\x4e\x03\x14\x00\x15\x00\x4f\x03\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x05\x02\x0c\x00\x57\x03\x0d\x00\x0e\x00\x0f\x00\x98\x02\x93\x01\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x5c\x03\x0c\x00\xfe\xfd\x0d\x00\x0e\x00\x0f\x00\x60\x03\xf8\x01\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x67\x03\x0b\x00\x6d\x03\x0c\x00\xa1\x02\x0d\x00\x0e\x00\x0f\x00\x1e\x00\x0f\x01\x11\x00\x12\x00\x19\x00\x97\x01\x98\x01\x99\x01\xc3\x02\x33\xff\x0a\x00\xb6\x02\x0b\x00\xb7\x02\x0c\x00\xbb\x02\x0d\x00\x0e\x00\x0f\x00\xb9\x02\x10\x00\x11\x00\x12\x00\xa1\x02\x14\x00\x15\x00\xba\x02\x17\x00\x18\x00\x0a\x00\xc3\x02\x0b\x00\x13\x00\x0c\x00\xc5\x02\x0d\x00\x0e\x00\x0f\x00\xe0\x02\xd3\x02\xd0\x03\x12\x00\x19\x00\xae\x01\x98\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\xe1\x02\x0b\x00\x13\x00\x0c\x00\xe4\x02\x0d\x00\x0e\x00\x0f\x00\xe6\x02\x29\x02\xa6\x02\x12\x00\x19\x00\xea\x02\xee\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xf3\x02\xf4\x02\x13\x00\xf5\x02\xe8\x03\x5d\x03\x0e\x00\x0f\x00\xb7\x01\x98\x01\x99\x01\x05\x02\xfd\x02\x19\x00\xfe\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\xff\x02\x0c\x00\x06\x03\x0d\x00\x0e\x00\x0f\x00\x07\x03\x0c\x03\xa8\x02\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x0d\x03\x0c\x00\x0e\x03\x0d\x00\x0e\x00\x0f\x00\x11\x03\x8c\x00\xaa\x02\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x19\x03\x0c\x00\x1b\x02\x0d\x00\x0e\x00\x0f\x00\x17\x02\x22\x02\x70\x01\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x23\x02\x0c\x00\x2c\x02\x0d\x00\x0e\x00\x0f\x00\x2e\x02\x2f\x02\x75\x01\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\xc2\x00\x0b\x00\x13\x00\x0c\x00\x33\x02\x0d\x00\x0e\x00\x0f\x00\x34\x02\x35\x02\xce\x01\x12\x00\x19\x00\x36\x02\x92\x01\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x3a\x02\x0b\x00\x3f\x02\x0c\x00\xcf\x00\x0d\x00\x0e\x00\x0f\x00\x3b\x02\x98\x00\xd3\x01\x12\x00\x19\x00\x45\x02\x14\x00\x15\x00\x46\x02\x17\x00\x18\x00\x0a\x00\x49\x02\x0b\x00\x13\x00\x0c\x00\x38\xff\x0d\x00\x0e\x00\x0f\x00\x47\x02\x4a\x02\xe5\x01\x12\x00\x19\x00\x23\xfe\x92\x01\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x54\x02\x0c\x00\x51\x02\x0d\x00\x0e\x00\x0f\x00\xa7\x01\x78\x02\xcf\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x8b\x02\x0c\x00\x83\x02\x0d\x00\x0e\x00\x0f\x00\x8c\x02\x78\x02\xd4\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x9c\x01\x0c\x00\x98\x02\x0d\x00\x0e\x00\x0f\x00\x9f\x02\xa1\x02\x42\x01\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x47\x01\xa6\x02\xc9\x00\xb2\x02\x0d\x00\x0e\x00\x0f\x00\x0e\x02\xda\x00\xdb\x00\xac\x02\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xd9\x00\xda\x00\xdb\x00\x13\x00\x2f\x02\xb7\x00\xb8\x00\xdc\x03\x5d\x03\x0e\x00\x0f\x00\xad\x02\x1e\x00\x19\x00\x6c\x01\x78\x01\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xc6\x02\xc7\x02\x13\x00\x0d\x00\x0e\x00\x0f\x00\x5b\x02\x5c\x02\x5d\x02\xc8\x02\x79\x01\x7c\x01\x7d\x01\x19\x00\x83\x01\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xcd\xfd\xc6\x02\x82\x03\x13\x00\x0d\x00\x0e\x00\x0f\x00\xcf\xfd\xc9\x02\xca\x02\xcb\x02\xce\xfd\xcc\x02\x19\x00\xd1\xfd\xd4\xfd\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xa6\x01\x13\x00\x56\x01\x0e\x00\x0f\x00\x57\x01\xa7\x01\xa8\x01\x83\x03\xca\x02\xcb\x02\xb4\x01\xcc\x02\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xb3\x01\x13\x00\xaf\x01\x80\x03\x5d\x03\x0e\x00\x0f\x00\xbc\x01\xbd\x01\x62\x03\x5d\x03\x0e\x00\x0f\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xbb\x01\x13\x00\xbf\x01\x85\x03\x5d\x03\x0e\x00\x0f\x00\xc0\x01\x49\x01\x5c\x03\x5d\x03\x0e\x00\x0f\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x63\x03\xbe\x00\xb6\x00\xb7\x00\xb8\x00\xc5\x01\xb9\x00\xc7\x01\xce\x01\xcc\x01\xba\x00\xd6\x01\xe4\x01\x19\x00\xe7\x01\xc4\x00\x14\x00\x15\x00\xf2\x01\x17\x00\x18\x00\xcd\x02\x14\x00\xbb\x00\xf3\x01\xfe\x01\xbc\x00\xff\x01\x0a\x02\x05\x02\x07\x02\x8e\x00\x14\x00\x15\x00\x19\x00\xce\x02\x18\x00\x12\x02\xa8\x00\x08\x02\xaa\x00\x09\x02\xcd\x02\x8f\x00\xff\xff\x90\x00\x91\x00\x98\x00\xc2\x00\xc4\x00\x19\x00\xcf\x00\x53\x01\x14\x00\x15\x00\xd2\x00\xce\x02\x18\x00\xff\xff\xd3\x00\x46\x01\xd4\x00\x56\x01\x2c\x01\x3d\x01\x55\x01\x58\x01\xff\xff\xad\x00\xff\xff\xa0\x00\x19\x00\x14\x00\x15\x00\x54\x01\x17\x00\x18\x00\xa1\x00\xa2\x00\xff\xff\x8c\x00\x00\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x19\x00\x59\x01\x5a\x01\x14\x00\x15\x00\x00\x00\x17\x00\x18\x00\x00\x00\x14\x00\x15\x00\x00\x00\x17\x00\x18\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x19\x00\x14\x00\x15\x00\x00\x00\x17\x00\x18\x00\x19\x00\x14\x00\x15\x00\x00\x00\x17\x00\x18\x00\xb9\x00\x1b\x00\xbe\x00\x23\x04\xba\x00\x1e\x00\x1f\x00\x19\x00\x00\x00\x50\xff\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x14\x00\xbb\x00\x24\x04\x00\x00\xbc\x00\x00\x00\x20\x00\x1b\x00\x21\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x50\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x68\x03\x37\xff\x00\x00\x69\x03\x00\x00\x00\x00\x00\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x03\x00\x00\x2c\x00\x00\x00\x3e\x01\x2b\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x50\xff\x2c\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x1b\x00\x21\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x2c\x00\x2a\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x50\xff\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\xd0\x02\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x69\x03\x00\x00\x2c\x00\x00\x00\x22\x00\x9d\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x3f\x01\x00\x00\xa0\x00\xed\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x00\xa2\x00\xa3\x00\xd1\x02\xa4\x00\x00\x00\xa5\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x2b\x00\x1e\x00\x1f\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\xa7\x00\xa8\x00\x00\x00\x1b\x00\x20\x00\x2c\x00\x21\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x01\xd1\x02\x00\x00\x2c\x00\x8e\x01\xac\x00\x9d\x00\x00\x00\x65\x03\x9e\x00\x00\x00\xbd\x01\x00\x00\xa0\x00\xd2\x02\x6b\x03\x00\x00\xaf\x00\xb0\x00\xb1\x00\xa1\x00\xa2\x00\xa3\x00\x1b\x00\xa4\x00\x00\x00\xa5\x00\x1e\x00\x1f\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\xd0\x02\x00\x00\x21\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x2b\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x1b\x00\x00\x00\x00\x00\xd1\x02\x00\x00\x2c\x00\x2b\x00\x00\x00\x9d\x00\xd2\x02\x00\x00\x9e\x00\x00\x00\x9f\x00\x58\x02\xa0\x00\x66\x03\x00\x00\x00\x00\x00\x00\x00\x00\x59\x02\xa1\x00\xa2\x00\xa3\x00\x2c\x00\xa4\x00\x00\x00\xa5\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x29\x02\x00\x00\x2c\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\xd2\x02\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x2b\x00\x00\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x61\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x18\x03\x00\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x18\x03\x00\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x24\x01\xa8\x00\xa9\x00\xaa\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x8a\x02\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x7b\x01\x51\x00\x26\x01\x27\x01\x00\x00\xad\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x28\x01\x29\x01\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x59\x02\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x24\x01\xa8\x00\xa9\x00\xaa\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\xad\x01\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x7b\x01\x51\x00\x26\x01\x27\x01\x00\x00\xad\x00\x23\x00\x00\x00\x7c\x00\x00\x00\x27\x00\x28\x00\x29\x00\x52\x00\x00\x00\x53\x00\x28\x01\x29\x01\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x2b\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x34\x01\xa8\x00\xa9\x00\xaa\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x35\x01\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x2c\x01\x51\x00\x26\x01\x36\x01\x00\x00\xad\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x37\x01\x38\x01\x39\x01\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x24\x01\xa8\x00\xa9\x00\xaa\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x25\x01\x00\x00\x51\x00\x26\x01\x27\x01\x00\x00\xad\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x28\x01\x29\x01\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x24\x01\xa8\x00\xa9\x00\xaa\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x26\x01\x27\x01\x00\x00\xad\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x28\x01\x29\x01\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\xdc\x01\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x01\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\xde\x01\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x29\x02\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x02\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x7e\x02\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x02\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\xdf\x02\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x02\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x62\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x20\x00\x00\x00\x21\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x22\x00\x49\x01\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x29\x02\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x2b\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x1b\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\xa5\x03\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x86\x01\x00\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x03\x87\x01\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x1b\x00\x43\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\xa5\x03\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\xc6\x00\x00\x00\x00\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x03\xa1\x01\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x29\x02\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x1b\x00\x5f\x00\x00\x00\x60\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x04\x03\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x2b\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x29\x02\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x40\x03\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\xc6\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x01\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\xa1\x01\x41\x03\x00\x00\x00\x00\x2c\x00\x42\x03\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x2c\x00\x00\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x40\x03\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\xc6\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x03\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x03\x00\x00\x00\x00\x2c\x00\x42\x03\x62\x02\x43\x00\x1c\x00\x1d\x00\x63\x02\x1f\x00\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\x64\x02\x65\x02\x66\x02\x67\x02\x68\x02\x69\x02\x6a\x02\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\x6b\x02\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x6c\x02\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x00\x00\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x00\x00\x97\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x97\xfe\x00\x00\x00\x00\x97\xfe\x00\x00\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x00\x00\x97\xfe\x97\xfe\x97\xfe\x00\x00\x97\xfe\x1b\x00\x00\x00\x00\x00\x97\xfe\x1e\x00\x97\xfe\x97\xfe\x97\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x97\xfe\x00\x00\x00\x00\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\xbe\x00\x97\xfe\x97\xfe\x97\xfe\x00\x00\x97\xfe\x00\x00\x97\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x26\x03\x00\x00\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x00\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\xfe\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\xfe\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x1b\x00\x5c\x00\x5d\x00\x5e\x00\x1e\x00\x5f\x00\x00\x00\x60\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\xbe\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\xfd\x01\x00\x00\x52\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\xdf\x00\x52\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x06\x01\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x17\x01\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x39\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\xdf\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x3a\x00\x60\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x06\x01\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x9b\x00\x9c\x00\x92\x00\x37\x00\x38\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x39\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\xdf\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x3a\x00\x60\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x06\x01\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\xfb\x01\x92\x00\x37\x00\x38\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x39\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\xdf\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x3a\x00\x60\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\xff\x00\x00\x00\x00\x2c\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x06\x01\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x2e\xff\x2e\xff\x2e\xff\x2e\xff\x2e\xff\x2e\xff\x2e\xff\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\xff\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x2e\xff\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\xa8\x00\x00\x00\xaa\x00\x2b\x00\x00\x00\x00\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\x00\x00\x00\x00\x00\x00\x20\x00\x53\x01\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x2c\x00\x22\x00\x1e\x00\x2c\x01\x00\x00\x00\x00\x00\x00\x00\x00\xad\x00\x00\x00\x41\x01\x00\x00\xab\x00\xac\x00\x54\x01\xad\x00\x42\x01\x00\x00\x00\x00\xbe\x00\xc4\x03\x00\x00\x00\x00\x00\x00\x1b\x00\xaf\x00\xb0\x00\xb1\x00\x1e\x00\x1f\x00\x00\x00\x5c\x01\xa8\x00\x00\x00\xaa\x00\xc5\x03\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x5d\x01\x00\x00\x00\x00\xad\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x5e\x01\x00\x00\x5f\x01\x37\xff\x00\x00\x00\x00\x00\x00\x2c\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x2b\x00\x5c\x01\xa8\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x1b\x00\x2c\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x5d\x01\x00\x00\x00\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x01\x20\x00\xe3\x01\x21\x00\x4d\x01\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x2c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x74\x03\x21\x00\x1b\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x2a\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x1b\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x2a\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x2a\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x01\x1b\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x2a\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x2a\x00\x22\x00\x2b\x00\x00\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\x00\x00\x00\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x0e\x01\xab\x00\xac\x00\x00\x00\xad\x00\xa9\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x26\x03\x00\x00\xaf\x00\xb0\x00\xb1\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x2c\x00\x00\x00\xcb\x00\x00\x00\x00\x00\x2b\x00\x00\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\x00\x00\xcc\x00\x00\x00\x00\x00\x20\x00\x1b\x00\x21\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x2c\x00\x22\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\xab\x00\xac\x00\x20\x00\xad\x00\x21\x00\x00\x00\x36\xff\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x22\x00\xaf\x00\xb0\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x03\x00\x00\x00\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x2b\x00\x1e\x00\x1f\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x2c\x00\x21\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x2c\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x09\x01\x00\x00\x0a\x01\x00\x00\x00\x00\x00\x00\x00\x00\xc6\x00\x2b\x00\x00\x00\x0b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x03\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x2c\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x1b\x00\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\xc6\x00\x1b\x00\x00\x00\x00\x00\x2b\x00\x1e\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x2b\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x00\x00\x00\x00\x00\x00\x00\xbe\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x43\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\xc6\x00\x00\x00\x00\x00\x1e\x00\x2b\x00\x00\x00\x1b\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x2b\x00\xd6\x02\x1b\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x2b\x00\x04\x03\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x2b\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2b\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x2b\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x39\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x02\x79\x02\x7a\x02\x7b\x02\x00\x00\x7c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\xac\x00\x00\x00\xad\x00\xae\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x03\x7a\x02\x7b\x02\x00\x00\x7c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x03\x7b\x02\x00\x00\x7c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x03\x72\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd6\x01\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x01\x00\x00\xfa\x02\x00\x00\xda\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd6\x01\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x01\x00\x00\x42\x02\x00\x00\xda\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x02\x72\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x02\x72\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd6\x01\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x01\x00\x00\xd9\x01\x00\x00\xda\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd6\x01\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x01\x00\x00\xde\x01\x00\x00\xda\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x08\x04\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\xee\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd4\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x8e\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x8f\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x90\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xad\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x2e\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x51\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x58\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xdd\x02\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\xf9\x02\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x8f\x02\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x99\x00\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x12\x01\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x13\x01\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x84\x00\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x2c\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x2d\x01\x2e\x01\x00\x00\x00\x00\x2f\x01\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x1d\x01\x00\x00\x1e\x01\x00\x00\x00\x00\x1f\x01\x30\x01\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa1\x00\xa2\x00\x31\x01\x20\x01\xa4\x00\x21\x01\x32\x01\x41\x00\x19\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x1a\x01\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x01\x1c\x01\x00\x00\x7f\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x1e\x01\x00\x00\x00\x00\x1f\x01\xa0\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa1\x00\xa2\x00\x00\x00\x20\x01\x00\x00\x21\x01\x22\x01\x41\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x1e\x01\x00\x00\x00\x00\x1f\x01\xa0\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa1\x00\xa2\x00\x00\x00\x20\x01\x00\x00\x21\x01\x22\x01\x41\x00\x19\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x81\x02\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x1e\x01\x00\x00\x00\x00\x1f\x01\xa0\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa1\x00\xa2\x00\x00\x00\x20\x01\x00\x00\x21\x01\x22\x01\x41\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x1e\x01\x00\x00\x00\x00\x1f\x01\xa0\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa1\x00\xa2\x00\x00\x00\x20\x01\x00\x00\x21\x01\x22\x01\x41\x00\x19\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x1e\x01\x00\x00\x00\x00\x1f\x01\xa0\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa1\x00\xa2\x00\x00\x00\x20\x01\x00\x00\x21\x01\x22\x01\x41\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x49\x03\x4a\x03\x00\x00\x39\x00\x00\x00\x4b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\xd3\x03\x00\x00\x00\x00\x00\x00\x4b\x03\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd8\x03\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\xd9\x03\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x84\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x02\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x14\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x15\x01\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x0d\x04\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x2f\x03\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x57\x03\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\xd9\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x1b\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x1c\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x1d\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x1e\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x29\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x2a\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x75\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x7e\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x83\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\xf4\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xf5\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\xf6\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xf7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x98\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd5\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x04\x03\x76\x00\x11\x01\x78\x00\x34\x00\x79\x00\x35\x00\x41\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x01\x76\x00\x11\x01\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x10\x01\x76\x00\x11\x01\x78\x00\x34\x00\x79\x00\x35\x00\x41\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x01\x96\x01\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x96\x01\x00\x00\x35\x00\x00\x00\x41\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x00\x92\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x5d\x02\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x39\x00\x00\x00\x00\x00\x5e\x02\xda\x00\xdb\x00\x00\x00\x5f\x02\x12\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x02\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x5e\x02\xda\x00\xdb\x00\x00\x00\x5f\x02\x60\x02\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x4f\x03\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\xa1\x01\x37\x00\x38\x00\x3a\x00\x00\x00\x41\x00\x3b\x00\x3c\x00\x39\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\xa2\x01\x37\x00\x38\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x3d\x01\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x41\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x05\x02\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x9a\x00\x37\x00\x38\x00\x3a\x00\x00\x00\x41\x00\x3b\x00\x3c\x00\x39\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x16\x01\x37\x00\x38\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x18\x01\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x41\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x3d\x01\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x41\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +happyTable = HappyA# "\x00\x00\x86\x00\x0f\x02\x87\x00\x07\x00\x09\x00\x20\x03\x21\x03\x22\x03\x94\x00\xb5\x02\x66\x01\x15\x04\xe2\x02\x87\x01\x68\x01\xff\x01\xbd\x02\x94\x00\xb9\x01\x68\x01\xef\x02\xe3\x02\x0c\x04\x16\x04\x17\x04\x94\x00\x51\x02\x21\x04\xc0\x03\x41\x02\x1c\x04\x94\x00\xeb\x02\xe5\x03\xbd\x03\x95\x00\x68\x01\xef\x02\x29\x02\x06\x04\xc1\x02\x68\x01\xff\x01\x00\x02\x0e\x04\x76\x03\xc1\x02\x68\x01\xf7\x02\xc0\x02\xc1\x02\x40\x02\x68\x01\xf7\x02\x50\x01\xcc\x00\x29\x02\xd0\x00\x68\x01\x45\x03\x29\x02\xf1\x03\x29\x02\xec\x01\x68\x01\x6f\x03\xbe\xff\xc7\x03\xbf\x03\xc0\x03\x02\x02\x68\x01\x6f\x03\x52\x02\xe8\x01\x3a\x01\xa8\x00\x54\x02\xaa\x00\x6f\x01\x33\x03\x02\x03\xd8\x02\x92\x01\x93\x01\xc8\x03\x8c\x00\x61\x03\x8d\x00\x1f\x04\xcd\x00\xa8\x00\xd8\x02\x56\x03\xcd\x00\x3b\x01\xcd\x00\xd7\x00\x04\x04\xd9\x02\x8b\x01\x01\x04\x01\x03\x02\x03\xb9\x01\xe6\x02\xad\x00\x3c\x01\x51\x01\xe9\x01\x70\x01\xbe\x02\x18\x00\x15\x03\x16\x03\xa1\x00\xa2\x00\xd8\x00\x63\x03\x68\x01\x45\x03\x57\x03\xee\x01\x8e\x00\xee\x01\xf9\x03\x2c\x00\xba\x01\x2d\x00\x7f\x03\x17\x03\xc1\x01\xc2\x01\x2f\x00\xed\x02\x26\x04\xb5\x03\x30\x00\x94\x01\x31\x00\x70\x03\x13\x04\xb5\x02\x40\x00\x18\x00\xf3\x03\xff\x03\x71\x03\x2c\x00\x56\x02\x2d\x00\xf8\x02\xb6\x03\xc1\x01\xc2\x01\x2f\x00\xf9\x02\x46\x03\xf6\xfe\x30\x00\xb0\x02\x31\x00\x55\x02\xc2\x02\xb1\x02\x88\x01\xb2\x02\xed\x01\x89\x01\xc2\x02\x8a\x01\xf0\x02\x23\x03\xc2\x02\x96\x00\x24\x03\x18\x04\x56\x02\xc1\x03\x01\x02\x19\x04\x8b\x01\xc2\x03\x96\x00\x8c\x01\x3e\x00\x14\x00\x3f\x00\xf1\x02\x40\x00\x18\x00\x96\x00\x14\x00\xbb\x00\x14\x00\xbb\x00\xbc\x00\x96\x00\xbc\x00\x23\x03\xf4\x03\x10\x02\x24\x03\x25\x03\x67\x01\x67\x01\x03\x02\x55\x02\x1a\x04\x08\x00\x08\x00\x08\x00\x3e\x00\x14\x00\x3f\x00\x32\x00\x40\x00\x18\x00\x47\x03\xc1\x03\x14\x00\x03\x03\x56\x02\xc2\x03\x83\x01\x33\x00\xef\x01\x34\x00\xf4\x01\x35\x00\x25\x03\xde\x02\x36\x00\x37\x00\x38\x00\x14\x00\xbb\x00\x32\x00\xaf\x01\xbc\x00\x39\x00\x18\x04\x14\x00\x03\x03\x80\x01\x19\x04\xde\x03\x33\x00\xc1\x03\x34\x00\xdf\x03\x35\x00\xc2\x03\x7b\x01\x36\x00\x37\x00\x38\x00\x14\x00\xbb\x00\x88\x03\x93\x02\xbc\x00\x39\x00\x74\x01\x14\x00\xbb\x00\xe0\x03\xc9\x00\xbc\x00\x0d\x00\x0e\x00\x0f\x00\x95\x01\x1a\x04\x3a\x00\x06\x01\x0f\x00\x3b\x00\x3c\x00\xa1\x02\x3d\x00\x14\x04\x5e\x03\x0e\x00\x0f\x00\x3e\x00\x14\x00\x3f\x00\x00\x04\xa7\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\xa2\x02\xd8\x02\x3b\x00\x3c\x00\x2d\x03\x3d\x00\x41\x00\xba\x03\x8f\x01\x2e\x03\x1b\x00\xfe\x03\xf2\x03\x89\x03\x8a\x03\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xac\x00\xff\x03\x9c\x02\x16\x00\x2c\x00\x90\x01\x2d\x00\x41\x00\xc0\x01\xc1\x01\xc2\x01\x2f\x00\xaf\x00\xb0\x00\xb1\x00\x30\x00\xd5\x02\x31\x00\xcf\x01\x56\x01\x0e\x00\x0f\x00\x7e\x01\x14\x00\x15\x00\xd6\x03\x81\x01\x7d\x03\x7e\x03\xdd\x02\x9d\x02\x9e\x02\x14\x00\xbb\x00\x2c\x00\x82\x01\x2d\x00\xd1\x03\xd2\x03\x7f\x01\x2c\x01\x84\x01\x0a\x00\xd0\x01\xd1\x01\xa0\x03\x0c\x00\x31\x00\x0d\x00\x0e\x00\x0f\x00\xd7\x03\x88\x02\x49\x01\x12\x00\xd2\x01\x4f\x01\x96\x03\xe0\x01\x14\x00\x15\x00\x79\x03\xc9\x00\x2c\x01\x0d\x00\x0e\x00\x0f\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\xa8\x01\x95\x01\xdb\x02\xf6\x02\x14\x00\x15\x00\x88\x03\x17\x00\x18\x00\x14\x00\x15\x00\x2b\x00\x17\x00\x18\x00\x3e\x00\x14\x00\x3f\x00\x14\x00\x15\x00\x32\x00\x17\x00\x18\x00\x19\x00\x7a\x01\xe3\x03\xe4\x03\x93\x02\x07\x01\xab\x01\x33\x00\x2c\x00\x34\x00\x94\x02\x35\x00\x7b\x01\x19\x00\x36\x00\x37\x00\x38\x00\x2c\x01\xa1\x03\xa2\x03\xa3\x03\x2c\x00\x39\x00\x2d\x00\xb0\x01\x7b\x03\x4d\x01\x32\x00\x7f\x03\x14\x00\x15\x00\x23\x02\x24\x02\x7b\x01\x31\x00\x2c\x01\xed\x03\x33\x00\x91\x03\x34\x00\x92\x03\x35\x00\x40\x00\x18\x00\x36\x00\x37\x00\x38\x00\xa7\x02\x1e\x00\x1f\x00\x14\x00\x15\x00\x39\x00\x17\x00\x18\x00\x2b\x01\x3a\x00\x4b\x02\x4c\x02\x3b\x00\x3c\x00\x44\x03\x3d\x00\x75\x01\x2c\x01\x81\x03\x13\x00\xc9\x00\x19\x00\x0d\x00\x0e\x00\x0f\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa4\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xb5\x01\x41\x00\x3a\x00\x8d\x02\xb6\x01\x3b\x00\x3c\x00\x8e\x02\x3d\x00\xb7\x01\xa6\x03\x14\x00\x15\x00\x19\x00\x17\x00\x18\x00\x1e\x00\x1f\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x9e\x03\xa7\x00\x32\x00\xa9\x00\x2c\x00\x19\x00\x2d\x00\x41\x00\xef\x01\xc0\x02\x95\x01\xf0\x01\x33\x00\xb1\x03\x34\x00\xa0\x03\x35\x00\x31\x00\xaf\x03\x36\x00\x37\x00\x38\x00\xb4\x03\x3e\x00\x14\x00\x3f\x00\x2c\x00\x39\x00\x2d\x00\xa8\x01\xac\x00\x86\x02\xe7\x02\x2f\x00\xb8\x03\x1e\x00\x1f\x00\x30\x00\xc3\x01\x31\x00\x9c\x03\x9d\x03\xaf\x00\xb0\x00\xb1\x00\xa1\x00\xa2\x00\x1a\x03\xa7\x03\xe0\x01\x14\x00\xa3\x02\x81\x03\xc9\x00\xa4\x02\x0d\x00\x0e\x00\x0f\x00\x29\x02\x25\x02\x26\x02\x3a\x00\xa9\x03\xaa\x03\x3b\x00\x27\x02\x37\x03\x3d\x00\x76\x01\x31\x01\x48\x03\xa4\x00\xc9\x00\xa5\x00\x0d\x00\x0e\x00\x0f\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x1c\x03\x1d\x03\xf2\x03\xa3\x03\x51\x03\x14\x00\x15\x00\x41\x00\x17\x00\x18\x00\x32\x00\xb0\x01\x14\x00\x3f\x00\x88\x01\x72\x01\x18\x00\x89\x01\xf0\x01\xb8\x02\x33\x00\xc6\x02\x34\x00\x19\x00\x35\x00\x2c\x02\xb8\x00\x36\x00\x37\x00\x38\x00\x8b\x01\x72\x03\x32\x00\x8c\x01\x2c\x00\x39\x00\x2d\x00\x14\x00\x32\x03\xcc\x03\x2e\x00\x2f\x00\x33\x00\xbc\x02\x34\x00\x30\x00\x35\x00\x31\x00\xec\x02\x36\x00\x37\x00\x38\x00\x3e\x00\x14\x00\x3f\x00\xcd\x03\xce\x03\x39\x00\xcf\x03\xd9\x02\xc9\x00\x12\x03\x0d\x00\x0e\x00\x0f\x00\x2c\x00\x9e\x01\x2d\x00\xa8\x01\x3a\x00\xa9\x01\xf2\x02\x3b\x00\x3c\x00\x14\x03\x3d\x00\x2c\x03\x88\x00\x31\x00\x3e\x00\x14\x00\x3f\x00\x89\x00\x8a\x00\x15\x02\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x4b\x02\x43\x03\x3b\x00\x3c\x00\x17\x02\x3d\x00\x41\x00\x14\x00\x15\x00\xe4\x01\x17\x00\x18\x00\x1f\x02\x9c\x01\x9d\x01\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x9e\x01\x3e\x00\x14\x00\x3f\x00\x19\x00\x14\x00\x15\x00\x41\x00\x17\x00\x18\x00\x32\x00\x5b\x03\x96\x02\x3e\x00\x14\x00\x3f\x00\x63\x01\x64\x01\x65\x01\x66\x01\x33\x00\x20\x02\x34\x00\x19\x00\x35\x00\x08\x03\x09\x03\x36\x00\x37\x00\x38\x00\x30\x02\x39\x03\xb9\x00\x6d\x03\x9a\x02\x39\x00\xba\x00\xc4\x02\x9a\x02\x14\x00\x15\x00\x32\x00\x72\x01\x18\x00\x0f\x04\x10\x04\x11\x04\x31\x02\x14\x00\xbb\x00\x3d\x02\x33\x00\xbc\x00\x34\x00\x9b\x03\x35\x00\x9c\x03\x73\x01\x36\x00\x37\x00\x38\x00\x39\x03\xd6\xfe\x13\x00\xd6\xfe\x4d\xfe\x39\x00\x4d\xfe\xe9\x01\x3a\x00\x0a\x03\x0b\x03\x3b\x00\x3c\x00\x3f\x02\x3d\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x3e\x00\x14\x00\x3f\x00\x43\x02\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xf9\x01\x14\x00\x3f\x00\x19\x00\x72\x01\x18\x00\x5f\xfe\x41\x00\x5f\xfe\x3a\x00\x0f\x03\x10\x03\x3b\x00\x3c\x00\x69\xfe\x3d\x00\x69\xfe\x4a\x02\x3a\x03\x3b\x03\x3c\x03\x3d\x03\x3e\x03\x6c\x02\xdb\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x6a\xfe\x3f\x03\x6a\xfe\x34\x00\x6b\xfe\x35\x00\x6b\xfe\x41\x00\x36\x00\x37\x00\x38\x00\xc4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\x39\x00\x47\x02\xc9\x03\x3c\x03\x3d\x03\x3e\x03\x6d\x02\x6e\x02\x3e\x00\x14\x00\x3f\x00\x94\x03\x5f\x00\xbd\x03\x60\x00\x3f\x03\x4f\x02\x34\x00\x96\x03\x35\x00\xae\x02\x61\x01\x36\x00\x37\x00\x38\x00\x0a\x00\xa3\x01\xa4\x01\x59\x02\xc9\x00\x39\x00\x0d\x00\x0e\x00\x0f\x00\x3a\x00\x68\x01\xb3\x02\x3b\x00\x3c\x00\x6f\x02\x3d\x00\xff\x03\xda\x00\xdb\x00\x76\x02\xa7\x00\xa8\x00\xa9\x00\xaa\x00\x90\x02\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x68\x01\x69\x01\x94\x03\x5f\x00\x95\x03\x60\x00\x91\x02\x41\x00\x3a\x00\x96\x03\x9f\x02\x3b\x00\x3c\x00\x6d\x01\x3d\x00\xc8\x00\x36\x03\x37\x02\xac\x00\xc9\x00\xad\x00\x0d\x00\x0e\x00\x0f\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xaf\x00\xb0\x00\xb1\x00\x6c\xfe\x0a\x00\x6c\xfe\x0b\x00\x41\x00\x0c\x00\x4b\x01\x0d\x00\x0e\x00\x0f\x00\x00\x03\x37\x02\x38\x02\x12\x00\x68\x01\x6a\x01\x4d\x03\xe0\x01\xda\x03\xda\x00\xdb\x00\xc9\x00\xc5\x01\x0d\x00\x0e\x00\x0f\x00\x0d\x02\x8a\x00\x0a\x00\xb9\x00\x0b\x00\xc7\x01\x0c\x00\xba\x00\x0d\x00\x0e\x00\x0f\x00\x36\x02\x37\x02\x38\x02\x12\x00\x68\x01\x6b\x01\xdf\x01\xe0\x01\x14\x00\xbb\x00\xca\x01\xc9\x00\xbc\x00\x0d\x00\x0e\x00\x0f\x00\xbf\x00\xc0\x00\x0a\x00\x13\x00\x0b\x00\x6d\xfe\x0c\x00\x6d\xfe\x0d\x00\x0e\x00\x0f\x00\x1f\x03\x20\x03\x38\x02\x12\x00\xc3\x01\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xd4\x01\xa1\x00\xa2\x00\x31\x01\x0a\x00\xa4\x00\x0b\x00\xa5\x00\x0c\x00\xea\x01\x0d\x00\x0e\x00\x0f\x00\x19\x00\xcc\x01\x4d\x01\x12\x00\x4e\x01\x4f\x01\xc7\x02\x86\x03\x0a\x02\x0d\x00\x0e\x00\x0f\x00\x0a\x00\x6e\xfe\x0b\x00\x6e\xfe\x0c\x00\xc2\x00\x0d\x00\x0e\x00\x0f\x00\x60\x01\x61\x01\x4d\x01\x12\x00\x4e\x01\x4f\x01\xc7\x00\x14\x00\x15\x00\x0e\x01\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x29\x01\x0c\x00\x87\x03\x0d\x00\x0e\x00\x0f\x00\x44\x01\xe9\x03\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x4b\x02\x4c\x02\x46\x01\x4d\x02\x4e\x02\x97\x03\x98\x03\x99\x03\x6f\xfe\x13\x00\x6f\xfe\x14\x00\x15\x00\x19\x00\x17\x00\x18\x00\x50\x01\x0b\x01\x88\x00\xea\x03\x0c\x01\x25\x04\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x1c\x00\x1d\x00\x19\x00\x3e\x00\x14\x00\x3f\x00\x21\x04\x40\x00\x18\x00\x13\x00\x50\x01\x14\x00\x15\x00\x19\x00\x17\x00\x18\x00\x83\x03\x1f\x04\x0d\x00\x0e\x00\x0f\x00\x1c\x04\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x1e\x04\x76\xfe\x19\x00\x76\xfe\x0a\x00\x13\x00\xe1\x01\x77\xfe\xc9\x00\x77\xfe\x0d\x00\x0e\x00\x0f\x00\x19\x00\x14\x04\x9b\x01\x5f\x03\x9c\x01\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xa1\x00\xa2\x00\x0c\x04\x13\x00\x12\x02\x68\x01\x13\x02\x14\x00\x15\x00\x04\x04\x17\x00\x18\x00\x03\x04\x19\x00\x51\x01\xa1\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xa1\x00\xa2\x00\x06\x04\x13\x00\x19\x00\x0a\x04\x5e\x03\x0e\x00\x0f\x00\x77\x03\x99\x02\x9a\x02\xc4\x02\x19\x00\xa7\x00\xa8\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\xae\x01\x0b\x00\xaf\x01\x0c\x00\x0a\x04\x0d\x00\x0e\x00\x0f\x00\x0c\x02\x0d\x02\x49\x01\x12\x00\x19\x00\x73\x03\x14\x02\x68\x01\x13\x02\x9b\x01\x0a\x00\x9c\x01\x0b\x00\xac\x00\x0c\x00\x29\x02\x0d\x00\x0e\x00\x0f\x00\xe9\x02\xea\x02\x49\x01\x12\x00\xf0\x03\x4a\x01\xaf\x00\xb0\x00\xb1\x00\x19\x02\x1a\x02\x0a\x00\x74\x03\x0b\x00\x92\x01\x0c\x00\x29\x02\x0d\x00\x0e\x00\x0f\x00\x59\xff\x07\x04\x11\x00\x12\x00\xf6\x03\x14\x00\x15\x00\xf7\x03\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\xf9\x03\x0c\x00\xa1\x02\x0d\x00\x0e\x00\x0f\x00\xfb\x03\xe6\x03\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\xfc\x03\x0b\x00\xfd\x03\x0c\x00\xbc\x03\x0d\x00\x0e\x00\x0f\x00\xbf\x03\xf7\x03\x11\x00\x12\x00\x19\x00\x3c\x02\xc6\x03\x0d\x00\x0e\x00\x0f\x00\x4b\x01\x0a\x00\x29\x02\x0b\x00\xcc\x03\x0c\x00\x29\x02\x0d\x00\x0e\x00\x0f\x00\x78\x02\xc6\x03\x11\x00\x12\x00\xc9\x01\xca\x01\x14\x00\x15\x00\x9b\x03\x17\x00\x18\x00\x0a\x00\xfd\xfd\x0b\x00\x13\x00\x0c\x00\xdc\x03\x0d\x00\x0e\x00\x0f\x00\xe3\x03\xca\x03\x11\x00\x12\x00\x19\x00\x0c\x02\x0d\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\xe1\x03\x0c\x00\xe2\x03\x0d\x00\x0e\x00\x0f\x00\x79\x03\xab\x03\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x7b\x03\x7d\x03\x13\x00\xa1\x02\x82\x01\x70\x01\x82\x03\x0d\x00\x0e\x00\x0f\x00\x94\x02\x95\x02\x96\x02\x19\x00\x85\x03\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x1e\x00\x0c\x00\x8d\x03\x0d\x00\x0e\x00\x0f\x00\x8e\x03\xd4\x02\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\xe1\x02\x0c\x00\xc4\x00\x0d\x00\x0e\x00\x0f\x00\x08\x03\xfc\x02\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xa0\x03\xad\x03\x13\x00\xaf\x03\xb1\x03\x14\x00\x15\x00\xb3\x03\x17\x00\x18\x00\x98\x02\x99\x02\x9a\x02\x19\x00\x29\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xb4\x03\xb8\x03\x13\x00\x19\x00\xe7\x03\x5e\x03\x0e\x00\x0f\x00\xa9\x02\x99\x02\x9a\x02\xba\x03\x29\x03\x19\x00\x1c\x03\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x2c\x03\x0b\x00\x13\x00\x0c\x00\x29\x02\x0d\x00\x0e\x00\x0f\x00\x32\x03\x3b\x02\x11\x00\x12\x00\x19\x00\x2a\x03\x39\x03\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x2b\x03\x0b\x00\x35\x03\x0c\x00\x36\x03\x0d\x00\x0e\x00\x0f\x00\x4a\x03\x8e\x01\x11\x00\x12\x00\x19\x00\x4f\x03\x14\x00\x15\x00\x50\x03\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x05\x02\x0c\x00\x58\x03\x0d\x00\x0e\x00\x0f\x00\x98\x02\x93\x01\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x5d\x03\x0c\x00\xfe\xfd\x0d\x00\x0e\x00\x0f\x00\x61\x03\xf8\x01\x11\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x6f\x03\x0b\x00\xa1\x02\x0c\x00\xc4\x02\x0d\x00\x0e\x00\x0f\x00\x1e\x00\x0f\x01\x11\x00\x12\x00\x19\x00\x97\x01\x98\x01\x99\x01\x33\xff\xb7\x02\x0a\x00\xb8\x02\x0b\x00\xba\x02\x0c\x00\xbb\x02\x0d\x00\x0e\x00\x0f\x00\xbc\x02\x10\x00\x11\x00\x12\x00\xa1\x02\x14\x00\x15\x00\xc4\x02\x17\x00\x18\x00\x0a\x00\xc6\x02\x0b\x00\x13\x00\x0c\x00\xd4\x02\x0d\x00\x0e\x00\x0f\x00\xe1\x02\xae\x01\xd0\x03\x12\x00\x19\x00\xe2\x02\x98\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x29\x02\x0b\x00\x13\x00\x0c\x00\xe5\x02\x0d\x00\x0e\x00\x0f\x00\xe7\x02\xeb\x02\xa6\x02\x12\x00\x19\x00\xef\x02\xf4\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xf5\x02\xf6\x02\x13\x00\xfe\x02\xe8\x03\x5e\x03\x0e\x00\x0f\x00\xb7\x01\x98\x01\x99\x01\x05\x02\xff\x02\x19\x00\x00\x03\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x07\x03\x0c\x00\x08\x03\x0d\x00\x0e\x00\x0f\x00\x0d\x03\x0e\x03\xa8\x02\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x0f\x03\x0c\x00\x12\x03\x0d\x00\x0e\x00\x0f\x00\x8c\x00\x1a\x03\xaa\x02\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x17\x02\x0c\x00\x1b\x02\x0d\x00\x0e\x00\x0f\x00\x22\x02\x23\x02\x71\x01\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x2c\x02\x0c\x00\x2e\x02\x0d\x00\x0e\x00\x0f\x00\x2f\x02\xc2\x00\xce\x01\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x33\x02\x0b\x00\x13\x00\x0c\x00\x34\x02\x0d\x00\x0e\x00\x0f\x00\x35\x02\x36\x02\xd3\x01\x12\x00\x19\x00\x92\x01\x3a\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x3f\x02\x0b\x00\x3b\x02\x0c\x00\x45\x02\x0d\x00\x0e\x00\x0f\x00\xcf\x00\x98\x00\xe5\x01\x12\x00\x19\x00\x46\x02\x14\x00\x15\x00\x47\x02\x17\x00\x18\x00\x0a\x00\x49\x02\x0b\x00\x13\x00\x0c\x00\x38\xff\x0d\x00\x0e\x00\x0f\x00\x23\xfe\x4a\x02\xcf\x00\x12\x00\x19\x00\x92\x01\x54\x02\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x51\x02\x0c\x00\xa7\x01\x0d\x00\x0e\x00\x0f\x00\x78\x02\x83\x02\xd4\x00\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x8b\x02\x0c\x00\x8c\x02\x0d\x00\x0e\x00\x0f\x00\x9c\x01\x98\x02\x42\x01\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x0b\x00\x78\x02\x0c\x00\xa1\x02\x0d\x00\x0e\x00\x0f\x00\xa6\x02\x9f\x02\x55\x01\x12\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0a\x00\x13\x00\x47\x01\xac\x02\xc9\x00\xad\x02\x0d\x00\x0e\x00\x0f\x00\x0e\x02\xda\x00\xdb\x00\xb3\x02\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xd9\x00\xda\x00\xdb\x00\x13\x00\x2f\x02\xb7\x00\xb8\x00\xdc\x03\x5e\x03\x0e\x00\x0f\x00\x1e\x00\x6d\x01\x19\x00\x78\x01\x79\x01\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xc7\x02\xc8\x02\x13\x00\x0d\x00\x0e\x00\x0f\x00\x5b\x02\x5c\x02\x5d\x02\xc9\x02\x7c\x01\x7d\x01\x83\x01\x19\x00\xcd\xfd\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xcf\xfd\xc7\x02\x67\x03\x13\x00\x0d\x00\x0e\x00\x0f\x00\xce\xfd\xca\x02\xcb\x02\xcc\x02\xd1\xfd\xcd\x02\x19\x00\xd4\xfd\xa6\x01\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xa7\x01\x13\x00\x56\x01\x0e\x00\x0f\x00\x57\x01\xa8\x01\xb4\x01\x68\x03\xcb\x02\xcc\x02\xaf\x01\xcd\x02\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xb3\x01\x13\x00\xbb\x01\x82\x03\x5e\x03\x0e\x00\x0f\x00\xbc\x01\xbd\x01\x63\x03\x5e\x03\x0e\x00\x0f\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x49\x01\x13\x00\xbf\x01\x85\x03\x5e\x03\x0e\x00\x0f\x00\xc0\x01\xc5\x01\x5d\x03\x5e\x03\x0e\x00\x0f\x00\x19\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x64\x03\xbe\x00\xb6\x00\xb7\x00\xb8\x00\xc7\x01\xb9\x00\xcc\x01\xce\x01\xd6\x01\xba\x00\xe4\x01\xe7\x01\x19\x00\xc4\x00\xf2\x01\x14\x00\x15\x00\xf3\x01\x17\x00\x18\x00\xce\x02\x14\x00\xbb\x00\xfe\x01\x05\x02\xbc\x00\xff\x01\x07\x02\x0a\x02\x8f\x00\x8e\x00\x14\x00\x15\x00\x19\x00\xcf\x02\x18\x00\x12\x02\xa8\x00\x08\x02\xaa\x00\xff\xff\xce\x02\x09\x02\xc4\x00\x90\x00\x91\x00\x98\x00\xc2\x00\xcf\x00\x19\x00\xd2\x00\x53\x01\x14\x00\x15\x00\xd4\x00\xcf\x02\x18\x00\xd3\x00\x46\x01\xff\xff\x3d\x01\xff\xff\x2c\x01\x55\x01\xff\xff\x58\x01\xff\xff\xad\x00\x8c\x00\xa0\x00\x19\x00\x14\x00\x15\x00\x54\x01\x17\x00\x18\x00\xa1\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x19\x00\x59\x01\x5a\x01\x14\x00\x15\x00\x00\x00\x17\x00\x18\x00\x00\x00\x14\x00\x15\x00\x00\x00\x17\x00\x18\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x19\x00\x14\x00\x15\x00\x00\x00\x17\x00\x18\x00\x19\x00\x14\x00\x15\x00\x00\x00\x17\x00\x18\x00\xb9\x00\x1b\x00\xbe\x00\x23\x04\xba\x00\x1e\x00\x1f\x00\x19\x00\x00\x00\x50\xff\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x14\x00\xbb\x00\x24\x04\x00\x00\xbc\x00\x00\x00\x20\x00\x1b\x00\x21\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x50\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x6a\x03\x60\x01\x00\x00\x6b\x03\x00\x00\x00\x00\x00\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x03\x00\x00\x2c\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x50\xff\x2c\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x1b\x00\x21\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x2c\x00\x2a\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x50\xff\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x03\x00\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x1b\x00\x00\x00\x6b\x03\x00\x00\x2c\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x02\xed\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x02\x00\x00\x00\x00\xd2\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x2b\x00\x1e\x00\x1f\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\xa7\x00\xa8\x00\x00\x00\x3e\x01\xd1\x02\x2c\x00\x21\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x23\x00\x6c\x03\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x66\x03\x00\x00\x2c\x00\x8e\x01\xac\x00\x00\x00\x00\x00\xd2\x02\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x02\x00\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x9d\x00\x00\x00\x00\x00\x9e\x00\x2b\x00\x3f\x01\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\xa1\x00\xa2\x00\xa3\x00\x00\x00\xa4\x00\x00\x00\xa5\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x67\x03\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xd3\x02\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x9d\x00\x00\x00\x29\x02\x9e\x00\x00\x00\xbd\x01\x50\x00\xa0\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x00\xa2\x00\xa3\x00\x00\x00\xa4\x00\x00\x00\xa5\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x19\x03\x00\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x9d\x00\x4f\x00\x00\x00\x9e\x00\x00\x00\x9f\x00\x00\x00\xa0\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\xa1\x00\xa2\x00\xa3\x00\x00\x00\xa4\x00\x00\x00\xa5\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x19\x03\x00\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x24\x01\xa8\x00\xa9\x00\xaa\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x8a\x02\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x7b\x01\x51\x00\x26\x01\x27\x01\x00\x00\xad\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x28\x01\x29\x01\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x59\x02\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x24\x01\xa8\x00\xa9\x00\xaa\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\xad\x01\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x7b\x01\x51\x00\x26\x01\x27\x01\x00\x00\xad\x00\x23\x00\x00\x00\x7c\x00\x00\x00\x27\x00\x28\x00\x29\x00\x52\x00\x00\x00\x53\x00\x28\x01\x29\x01\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x2b\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x34\x01\xa8\x00\xa9\x00\xaa\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x35\x01\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x2c\x01\x51\x00\x26\x01\x36\x01\x00\x00\xad\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x37\x01\x38\x01\x39\x01\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x24\x01\xa8\x00\xa9\x00\xaa\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x25\x01\x00\x00\x51\x00\x26\x01\x27\x01\x00\x00\xad\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x28\x01\x29\x01\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x24\x01\xa8\x00\xa9\x00\xaa\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x26\x01\x27\x01\x00\x00\xad\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x28\x01\x29\x01\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\xdc\x01\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x01\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\xde\x01\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x29\x02\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x02\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x7e\x02\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x02\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\xe0\x02\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x02\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x62\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x6c\x00\x20\x00\x00\x00\x21\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x22\x00\x49\x01\x00\x00\x00\x00\x00\x00\x82\x00\x83\x00\x84\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x29\x02\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x2b\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x1b\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\xa5\x03\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x86\x01\x00\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x03\x6d\x03\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x1b\x00\x43\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\xa5\x03\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\xc6\x00\x00\x00\x00\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x03\xa1\x01\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x29\x02\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x1b\x00\x5f\x00\x00\x00\x60\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x86\x01\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x87\x01\x6c\x00\x00\x00\x00\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x2b\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x2c\x00\x6f\x00\x70\x00\x71\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x29\x02\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x41\x03\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\xc6\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x01\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\xa1\x01\x42\x03\x00\x00\x00\x00\x2c\x00\x43\x03\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x54\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x2c\x00\x00\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x62\x00\x00\x00\x41\x03\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\xc6\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x03\x00\x00\x6c\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x03\x00\x00\x00\x00\x2c\x00\x43\x03\x62\x02\x43\x00\x1c\x00\x1d\x00\x63\x02\x1f\x00\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\x64\x02\x65\x02\x66\x02\x67\x02\x68\x02\x69\x02\x6a\x02\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\x6b\x02\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x6c\x02\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x00\x00\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x00\x00\x97\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x97\xfe\x00\x00\x00\x00\x97\xfe\x00\x00\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x00\x00\x97\xfe\x97\xfe\x97\xfe\x00\x00\x97\xfe\x1b\x00\x00\x00\x00\x00\x97\xfe\x1e\x00\x97\xfe\x97\xfe\x97\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x97\xfe\x00\x00\x00\x00\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\xbe\x00\x97\xfe\x97\xfe\x97\xfe\x00\x00\x97\xfe\x00\x00\x97\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x27\x03\x00\x00\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x97\xfe\x00\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\xfe\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\xfe\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x1b\x00\x5c\x00\x5d\x00\x5e\x00\x1e\x00\x5f\x00\x00\x00\x60\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\xbe\x00\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\xfd\x01\x00\x00\x52\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\xdf\x00\x52\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x06\x01\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x17\x01\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x39\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\xdf\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x3a\x00\x60\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x06\x01\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x9b\x00\x9c\x00\x92\x00\x37\x00\x38\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x39\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\xdf\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x3a\x00\x60\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x06\x01\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\xfb\x01\x92\x00\x37\x00\x38\x00\x50\x00\x00\x00\x00\x00\x51\x00\x00\x00\x39\x00\x00\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\xde\x00\x00\x00\xdf\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x3a\x00\x60\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\xff\x00\x00\x00\x00\x2c\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x06\x01\x1b\x00\x43\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x2e\xff\x2e\xff\x2e\xff\x2e\xff\x2e\xff\x2e\xff\x2e\xff\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\xff\x00\x00\x55\x00\x00\x00\x00\x00\x56\x00\x7e\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x5e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x2e\xff\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\xa8\x00\x00\x00\xaa\x00\x2b\x00\x00\x00\x00\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\x00\x00\x00\x00\x00\x00\x20\x00\x53\x01\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x2c\x00\x22\x00\x1e\x00\x2c\x01\x00\x00\x00\x00\x00\x00\x00\x00\xad\x00\x00\x00\x41\x01\x00\x00\xab\x00\xac\x00\x54\x01\xad\x00\x42\x01\x00\x00\x00\x00\xbe\x00\xc4\x03\x00\x00\x00\x00\x00\x00\x1b\x00\xaf\x00\xb0\x00\xb1\x00\x1e\x00\x1f\x00\x00\x00\x5c\x01\xa8\x00\x00\x00\xaa\x00\xc5\x03\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x5d\x01\x00\x00\x00\x00\xad\x00\x00\x00\x2a\x00\x00\x00\x2b\x00\x00\x00\x5e\x01\x00\x00\x5f\x01\x60\x01\x00\x00\x00\x00\x00\x00\x2c\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x2b\x00\x5c\x01\xa8\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x1b\x00\x2c\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x5d\x01\x00\x00\x00\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x01\x20\x00\xe3\x01\x21\x00\x4d\x01\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x2c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x76\x03\x21\x00\x1b\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x2a\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x1b\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x2a\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x2a\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x01\x1b\x00\x00\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x2a\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x2a\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x0e\x01\x00\x00\xae\x02\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\xcb\x00\x00\x00\x00\x00\x2b\x00\x27\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x2c\x00\x1e\x00\x1f\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x22\x00\x2b\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\xae\x02\x00\x00\x00\x00\x20\x00\x2c\x00\x21\x00\x1b\x00\x43\x00\x00\x00\x2b\x00\x1e\x00\x1f\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x0e\x01\x2c\x00\x00\x00\x1e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1b\x00\xbe\x00\x00\x00\x2b\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x20\x00\x2c\x00\x21\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1f\x00\x2c\x00\x22\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x09\x01\x00\x00\x0a\x01\x1b\x00\x43\x00\x00\x00\x2c\x00\x1e\x00\x1f\x00\x00\x00\x0b\x01\x2b\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x28\x03\x00\x00\x00\x00\x0e\x01\x1b\x00\x43\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2b\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2b\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\xc6\x00\x00\x00\x2b\x00\x1b\x00\x43\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x1b\x00\xc6\x00\x00\x00\x2b\x00\x1e\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\x00\x00\x00\x00\x1b\x00\xbe\x00\x2c\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x05\x03\xab\x00\xac\x00\x2c\x00\xad\x00\xa9\x03\x1b\x00\xd7\x02\x00\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x05\x03\x1b\x00\x00\x00\x2c\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\x2c\x00\x2b\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2b\x00\x00\x00\x00\x00\xab\x00\xac\x00\x00\x00\xad\x00\x2b\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\xaf\x00\xb0\x00\xb1\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x2b\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x39\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x02\x79\x02\x7a\x02\x7b\x02\x00\x00\x7c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\xab\x00\xac\x00\x00\x00\xad\x00\xae\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x03\x7a\x02\x7b\x02\x00\x00\x7c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x03\x7b\x02\x00\x00\x7c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x03\x72\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd6\x01\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x01\x00\x00\xfb\x02\x00\x00\xda\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd6\x01\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x01\x00\x00\x42\x02\x00\x00\xda\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x02\x72\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x02\x72\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd6\x01\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x01\x00\x00\xd9\x01\x00\x00\xda\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd6\x01\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x01\x00\x00\xde\x01\x00\x00\xda\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x70\x02\xd7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x08\x04\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\xee\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd4\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x8e\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x8f\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x90\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xad\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x2f\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x52\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x59\x03\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xde\x02\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\xfa\x02\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x8f\x02\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x99\x00\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x12\x01\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x13\x01\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x84\x00\x85\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x2c\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x2d\x01\x2e\x01\x00\x00\x00\x00\x2f\x01\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x1d\x01\x00\x00\x1e\x01\x00\x00\x00\x00\x1f\x01\x30\x01\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa1\x00\xa2\x00\x31\x01\x20\x01\xa4\x00\x21\x01\x32\x01\x41\x00\x19\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x1a\x01\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x01\x1c\x01\x00\x00\x7f\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x1e\x01\x00\x00\x00\x00\x1f\x01\xa0\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa1\x00\xa2\x00\x00\x00\x20\x01\x00\x00\x21\x01\x22\x01\x41\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x1e\x01\x00\x00\x00\x00\x1f\x01\xa0\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa1\x00\xa2\x00\x00\x00\x20\x01\x00\x00\x21\x01\x22\x01\x41\x00\x19\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x81\x02\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x1e\x01\x00\x00\x00\x00\x1f\x01\xa0\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa1\x00\xa2\x00\x00\x00\x20\x01\x00\x00\x21\x01\x22\x01\x41\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x1e\x01\x00\x00\x00\x00\x1f\x01\xa0\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa1\x00\xa2\x00\x00\x00\x20\x01\x00\x00\x21\x01\x22\x01\x41\x00\x19\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\xab\x01\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x1d\x01\x00\x00\x1e\x01\x00\x00\x00\x00\x1f\x01\xa0\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\xa1\x00\xa2\x00\x00\x00\x20\x01\x00\x00\x21\x01\x22\x01\x41\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x4a\x03\x4b\x03\x00\x00\x39\x00\x00\x00\x4c\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\xd3\x03\x00\x00\x00\x00\x00\x00\x4c\x03\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd8\x03\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\xd9\x03\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x84\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x02\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x14\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x15\x01\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x0d\x04\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x30\x03\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x58\x03\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\xda\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x1b\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x1c\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x1d\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x1e\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x29\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x2a\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x75\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x7e\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x83\x02\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\xf4\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xf5\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\xf6\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xf7\x01\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x98\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\xd5\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x75\x00\x76\x00\x77\x00\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x05\x03\x76\x00\x11\x01\x78\x00\x34\x00\x79\x00\x35\x00\x41\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x01\x76\x00\x11\x01\x78\x00\x34\x00\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x10\x01\x76\x00\x11\x01\x78\x00\x34\x00\x79\x00\x35\x00\x41\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x01\x96\x01\x79\x00\x35\x00\x00\x00\x00\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x96\x01\x00\x00\x35\x00\x00\x00\x41\x00\x36\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x00\x92\x00\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x5d\x02\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x39\x00\x00\x00\x00\x00\x5e\x02\xda\x00\xdb\x00\x00\x00\x5f\x02\x13\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x02\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x5e\x02\xda\x00\xdb\x00\x00\x00\x5f\x02\x60\x02\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x50\x03\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\xa1\x01\x37\x00\x38\x00\x3a\x00\x00\x00\x41\x00\x3b\x00\x3c\x00\x39\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\xa2\x01\x37\x00\x38\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x3d\x01\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x41\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x05\x02\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x9a\x00\x37\x00\x38\x00\x3a\x00\x00\x00\x41\x00\x3b\x00\x3c\x00\x39\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x16\x01\x37\x00\x38\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x18\x01\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x41\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x3d\x01\x37\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x3a\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x41\x00\x3b\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x14\x00\x3f\x00\x16\x00\x40\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# happyReduceArr = Happy_Data_Array.array (6, 588) [ (6 , happyReduce_6), @@ -2088,7 +2088,7 @@ case happyOut21 happy_x_3 of { happy_var_3 -> case happyOutTok happy_x_4 of { (Loc happy_var_4 PragmaEnd) -> happyIn13 - (LanguagePragma (happy_var_1 <^^> happy_var_4 <** (happy_var_1:reverse (snd happy_var_2) ++ reverse happy_var_3 ++ [happy_var_4])) (fst happy_var_2) + (LanguagePragma (happy_var_1 <^^> happy_var_4 <** (happy_var_1:snd happy_var_2 ++ reverse happy_var_3 ++ [happy_var_4])) (fst happy_var_2) ) `HappyStk` happyRest}}}} happyReduce_15 = happySpecReduce_3 4# happyReduction_15 @@ -2150,8 +2150,8 @@ = case happyOut16 happy_x_1 of { happy_var_1 -> case happyOut18 happy_x_2 of { happy_var_2 -> happyIn15 - (let (is,ds,ss1,b,inf) = happy_var_2 - in \os ss l -> Module (l <++> inf <** (ss ++ ss1) <?? b) happy_var_1 os is ds + (let (is,ds,ss1,inf) = happy_var_2 + in \os ss l -> Module (l <++> inf <** (ss ++ ss1)) happy_var_1 os is ds )}} happyReduce_21 = happyReduce 5# 7# happyReduction_21 @@ -2183,7 +2183,7 @@ case happyOutTok happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> happyIn17 - (let Loc l (StringTok s) = happy_var_2 in Just $ DeprText (happy_var_1 <^^> happy_var_3 <** [l,happy_var_3]) s + (let Loc l (StringTok (s,_)) = happy_var_2 in Just $ DeprText (happy_var_1 <^^> happy_var_3 <** [happy_var_1,l,happy_var_3]) s )}}} happyReduce_24 = happySpecReduce_3 8# happyReduction_24 @@ -2194,7 +2194,7 @@ case happyOutTok happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> happyIn17 - (let Loc l (StringTok s) = happy_var_2 in Just $ WarnText (happy_var_1 <^^> happy_var_3 <** [l,happy_var_3]) s + (let Loc l (StringTok (s,_)) = happy_var_2 in Just $ WarnText (happy_var_1 <^^> happy_var_3 <** [happy_var_1,l,happy_var_3]) s )}}} happyReduce_25 = happySpecReduce_0 8# happyReduction_25 @@ -2210,7 +2210,7 @@ case happyOut19 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> happyIn18 - (let (is,ds,ss) = happy_var_2 in (is,ds,happy_var_1:ss ++ [happy_var_3], True, happy_var_1 <^^> happy_var_3) + (let (is,ds,ss) = happy_var_2 in (is,ds,happy_var_1:ss ++ [happy_var_3], happy_var_1 <^^> happy_var_3) )}}} happyReduce_27 = happySpecReduce_3 9# happyReduction_27 @@ -2221,7 +2221,7 @@ case happyOut19 happy_x_2 of { happy_var_2 -> case happyOut219 happy_x_3 of { happy_var_3 -> happyIn18 - (let (is,ds,ss) = happy_var_2 in (is,ds,happy_var_1:ss ++ [happy_var_3], False, happy_var_1 <^^> happy_var_3) + (let (is,ds,ss) = happy_var_2 in (is,ds,happy_var_1:ss ++ [happy_var_3], happy_var_1 <^^> happy_var_3) )}}} happyReduce_28 = happyReduce 4# 10# happyReduction_28 @@ -2486,7 +2486,7 @@ happyRest) tk = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> ( do { checkEnabled PackageImports ; - let { Loc l (StringTok s) = happy_var_1 } ; + let { Loc l (StringTok (s,_)) = happy_var_1 } ; return $ (Just s,[l]) })} ) (\r -> happyReturn (happyIn31 r)) @@ -2535,7 +2535,7 @@ case happyOutTok happy_x_5 of { (Loc happy_var_5 RightParen) -> happyIn34 (let {(b,ml,s) = happy_var_1 ; - l = (ml <?+> (happy_var_2 <^^> happy_var_5)) <** (s ++ happy_var_2:snd happy_var_3 ++ happy_var_4 ++ [happy_var_5])} + l = (ml <?+> (happy_var_2 <^^> happy_var_5)) <** (s ++ happy_var_2:reverse (snd happy_var_3) ++ happy_var_4 ++ [happy_var_5])} in ImportSpecList l b (reverse (fst happy_var_3)) ) `HappyStk` happyRest}}}}} @@ -2690,7 +2690,7 @@ happyReduction_79 (happy_x_1 `HappyStk` happyRest) tk = happyThen (case happyOutTok happy_x_1 of { happy_var_1 -> - ( let Loc l (IntTok i) = happy_var_1 in checkPrec i >>= \i -> return (Just i, [l]))} + ( let Loc l (IntTok (i,_)) = happy_var_1 in checkPrec i >>= \i -> return (Just i, [l]))} ) (\r -> happyReturn (happyIn41 r)) happyReduce_80 = happySpecReduce_1 33# happyReduction_80 @@ -2769,9 +2769,9 @@ case happyOut72 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 Equals) -> case happyOut82 happy_x_4 of { happy_var_4 -> - ( do { (c,ts) <- checkSimpleType happy_var_2; + ( do { dh <- checkSimpleType happy_var_2; let {l = nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3]}; - return (TypeDecl l c ts happy_var_4) })}}}} + return (TypeDecl l dh happy_var_4) })}}}} ) (\r -> happyReturn (happyIn46 r)) happyReduce_89 = happyMonadReduce 4# 37# happyReduction_89 @@ -2784,9 +2784,9 @@ case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Family) -> case happyOut74 happy_x_3 of { happy_var_3 -> case happyOut117 happy_x_4 of { happy_var_4 -> - ( do { (c,ts) <- checkSimpleType happy_var_3; + ( do { dh <- checkSimpleType happy_var_3; let {l = nIS happy_var_1 <++> ann happy_var_3 <+?> (fmap ann) (fst happy_var_4) <** (happy_var_1:happy_var_2:snd happy_var_4)}; - return (TypeFamDecl l c ts (fst happy_var_4)) })}}}} + return (TypeFamDecl l dh (fst happy_var_4)) })}}}} ) (\r -> happyReturn (happyIn46 r)) happyReduce_90 = happyMonadReduce 5# 37# happyReduction_90 @@ -2817,11 +2817,11 @@ case happyOut83 happy_x_2 of { happy_var_2 -> case happyOut99 happy_x_3 of { happy_var_3 -> case happyOut111 happy_x_4 of { happy_var_4 -> - ( do { (cs,c,t) <- checkDataHeader happy_var_2; - let { (qds,ss1,minf1) = happy_var_3; (mders,ss2,minf2) = happy_var_4 ; - l = happy_var_1 <> happy_var_2 <+?> minf1 <+?> minf2 <** (ss1 ++ ss2)}; + ( do { (cs,dh) <- checkDataHeader happy_var_2; + let { (qds,ss,minf) = happy_var_3; + l = happy_var_1 <> happy_var_2 <+?> minf <+?> fmap ann happy_var_4 <** ss}; checkDataOrNew happy_var_1 qds; - return (DataDecl l happy_var_1 cs c t (reverse qds) mders) })}}}} + return (DataDecl l happy_var_1 cs dh (reverse qds) happy_var_4) })}}}} ) (\r -> happyReturn (happyIn46 r)) happyReduce_92 = happyMonadReduce 6# 37# happyReduction_92 @@ -2838,11 +2838,11 @@ case happyOutTok happy_x_4 of { (Loc happy_var_4 KW_Where) -> case happyOut94 happy_x_5 of { happy_var_5 -> case happyOut111 happy_x_6 of { happy_var_6 -> - ( do { (cs,c,t) <- checkDataHeader happy_var_2; - let { (gs,ss1,inf,b) = happy_var_5; (ds,ss2,minf) = happy_var_6 ; - l = ann happy_var_1 <++> inf <+?> minf <** (snd happy_var_3 ++ (happy_var_4:ss1 ++ ss2)) <?? b}; + ( do { (cs,dh) <- checkDataHeader happy_var_2; + let { (gs,ss,inf) = happy_var_5; + l = ann happy_var_1 <++> inf <+?> fmap ann happy_var_6 <** (snd happy_var_3 ++ happy_var_4:ss)}; checkDataOrNew happy_var_1 gs; - return (GDataDecl l happy_var_1 cs c t (fst happy_var_3) (reverse gs) ds) })}}}}}} + return (GDataDecl l happy_var_1 cs dh (fst happy_var_3) (reverse gs) happy_var_6) })}}}}}} ) (\r -> happyReturn (happyIn46 r)) happyReduce_93 = happyMonadReduce 4# 37# happyReduction_93 @@ -2855,9 +2855,9 @@ case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Family) -> case happyOut83 happy_x_3 of { happy_var_3 -> case happyOut117 happy_x_4 of { happy_var_4 -> - ( do { (cs,c,t) <- checkDataHeader happy_var_3; + ( do { (cs,dh) <- checkDataHeader happy_var_3; let {l = nIS happy_var_1 <++> ann happy_var_3 <+?> (fmap ann) (fst happy_var_4) <** (happy_var_1:happy_var_2:snd happy_var_4)}; - return (DataFamDecl l cs c t (fst happy_var_4)) })}}}} + return (DataFamDecl l cs dh (fst happy_var_4)) })}}}} ) (\r -> happyReturn (happyIn46 r)) happyReduce_94 = happyMonadReduce 5# 37# happyReduction_94 @@ -2874,10 +2874,10 @@ case happyOut111 happy_x_5 of { happy_var_5 -> ( do { -- (cs,c,t) <- checkDataHeader happy_var_4; checkEnabled TypeFamilies ; - let { (qds,ss1,minf1) = happy_var_4 ; (mders,ss2,minf2) = happy_var_5 ; - l = happy_var_1 <> happy_var_3 <+?> minf1 <+?> minf2 <** (happy_var_2:ss1 ++ ss2) }; + let { (qds,ss,minf) = happy_var_4 ; + l = happy_var_1 <> happy_var_3 <+?> minf <+?> fmap ann happy_var_5 <** happy_var_2:ss }; checkDataOrNew happy_var_1 qds; - return (DataInsDecl l happy_var_1 happy_var_3 (reverse qds) mders) })}}}}} + return (DataInsDecl l happy_var_1 happy_var_3 (reverse qds) happy_var_5) })}}}}} ) (\r -> happyReturn (happyIn46 r)) happyReduce_95 = happyMonadReduce 7# 37# happyReduction_95 @@ -2898,10 +2898,10 @@ case happyOut111 happy_x_7 of { happy_var_7 -> ( do { -- (cs,c,t) <- checkDataHeader happy_var_4; checkEnabled TypeFamilies ; - let {(gs,ss1,inf,b) = happy_var_6; (ds,ss2,minf) = happy_var_7 ; - l = ann happy_var_1 <++> inf <+?> minf <** (happy_var_2:snd happy_var_4 ++ (happy_var_5:ss1 ++ ss2)) <?? b}; + let {(gs,ss,inf) = happy_var_6; + l = ann happy_var_1 <++> inf <+?> fmap ann happy_var_7 <** (happy_var_2:snd happy_var_4 ++ happy_var_5:ss)}; checkDataOrNew happy_var_1 gs; - return (GDataInsDecl l happy_var_1 happy_var_3 (fst happy_var_4) (reverse gs) ds) })}}}}}}} + return (GDataInsDecl l happy_var_1 happy_var_3 (fst happy_var_4) (reverse gs) happy_var_7) })}}}}}}} ) (\r -> happyReturn (happyIn46 r)) happyReduce_96 = happyMonadReduce 4# 37# happyReduction_96 @@ -2914,10 +2914,10 @@ case happyOut83 happy_x_2 of { happy_var_2 -> case happyOut91 happy_x_3 of { happy_var_3 -> case happyOut118 happy_x_4 of { happy_var_4 -> - ( do { (cs,c,vs) <- checkClassHeader happy_var_2; - let {(fds,ss1,minf1) = happy_var_3;(mcs,ss2,minf2,b) = happy_var_4} ; - let { l = nIS happy_var_1 <++> ann happy_var_2 <+?> minf1 <+?> minf2 <** (happy_var_1:ss1 ++ ss2) <?? b} ; - return (ClassDecl l cs c vs fds mcs) })}}}} + ( do { (cs,dh) <- checkClassHeader happy_var_2; + let {(fds,ss1,minf1) = happy_var_3;(mcs,ss2,minf2) = happy_var_4} ; + let { l = nIS happy_var_1 <++> ann happy_var_2 <+?> minf1 <+?> minf2 <** (happy_var_1:ss1 ++ ss2)} ; + return (ClassDecl l cs dh fds mcs) })}}}} ) (\r -> happyReturn (happyIn46 r)) happyReduce_97 = happyMonadReduce 3# 37# happyReduction_97 @@ -2928,9 +2928,9 @@ = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Instance) -> case happyOut83 happy_x_2 of { happy_var_2 -> case happyOut123 happy_x_3 of { happy_var_3 -> - ( do { (cs,c,ts) <- checkInstHeader happy_var_2; - let {(mis,ss,minf,b) = happy_var_3}; - return (InstDecl (nIS happy_var_1 <++> ann happy_var_2 <+?> minf <** (happy_var_1:ss) <?? b) cs c ts mis) })}}} + ( do { (cs,ih) <- checkInstHeader happy_var_2; + let {(mis,ss,minf) = happy_var_3}; + return (InstDecl (nIS happy_var_1 <++> ann happy_var_2 <+?> minf <** (happy_var_1:ss)) cs ih mis) })}}} ) (\r -> happyReturn (happyIn46 r)) happyReduce_98 = happyMonadReduce 3# 37# happyReduction_98 @@ -2942,9 +2942,9 @@ case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Instance) -> case happyOut83 happy_x_3 of { happy_var_3 -> ( do { checkEnabled StandaloneDeriving ; - (cs, c, ts) <- checkInstHeader happy_var_3; + (cs, ih) <- checkInstHeader happy_var_3; let {l = nIS happy_var_1 <++> ann happy_var_3 <** [happy_var_1,happy_var_2]}; - return (DerivDecl l cs c ts) })}}} + return (DerivDecl l cs ih) })}}} ) (\r -> happyReturn (happyIn46 r)) happyReduce_99 = happyReduce 4# 37# happyReduction_99 @@ -3141,7 +3141,7 @@ case happyOut49 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> happyIn52 - (BDecls (happy_var_1 <^^> happy_var_3 <** (happy_var_1:snd happy_var_2++[happy_var_3]) <?? True ) (fst happy_var_2) + (BDecls (happy_var_1 <^^> happy_var_3 <** (happy_var_1:snd happy_var_2++[happy_var_3])) (fst happy_var_2) )}}} happyReduce_120 = happySpecReduce_3 43# happyReduction_120 @@ -3152,7 +3152,7 @@ case happyOut49 happy_x_2 of { happy_var_2 -> case happyOut219 happy_x_3 of { happy_var_3 -> happyIn52 - (BDecls (happy_var_1 <^^> happy_var_3 <** (happy_var_1:snd happy_var_2++[happy_var_3]) <?? False) (fst happy_var_2) + (BDecls (happy_var_1 <^^> happy_var_3 <** (happy_var_1:snd happy_var_2++[happy_var_3])) (fst happy_var_2) )}}} happyReduce_121 = happyMonadReduce 3# 44# happyReduction_121 @@ -3243,9 +3243,9 @@ case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Instance) -> case happyOut83 happy_x_3 of { happy_var_3 -> case happyOutTok happy_x_4 of { (Loc happy_var_4 PragmaEnd) -> - ( do { (cs,c,ts) <- checkInstHeader happy_var_3; + ( do { (cs,ih) <- checkInstHeader happy_var_3; let {l = happy_var_1 <^^> happy_var_4 <** [happy_var_1,happy_var_2,happy_var_4]}; - return $ InstSig l cs c ts })}}}} + return $ InstSig l cs ih })}}}} ) (\r -> happyReturn (happyIn53 r)) happyReduce_127 = happySpecReduce_1 45# happyReduction_127 @@ -3288,7 +3288,7 @@ case happyOut185 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> happyIn56 - (IPBinds (happy_var_1 <^^> happy_var_3 <** snd happy_var_2 <?? True ) (fst happy_var_2) + (IPBinds (happy_var_1 <^^> happy_var_3 <** snd happy_var_2) (fst happy_var_2) )}}} happyReduce_132 = happySpecReduce_3 47# happyReduction_132 @@ -3299,7 +3299,7 @@ case happyOut185 happy_x_2 of { happy_var_2 -> case happyOut219 happy_x_3 of { happy_var_3 -> happyIn56 - (IPBinds (happy_var_1 <^^> happy_var_3 <** snd happy_var_2 <?? False) (fst happy_var_2) + (IPBinds (happy_var_1 <^^> happy_var_3 <** snd happy_var_2) (fst happy_var_2) )}}} happyReduce_133 = happySpecReduce_3 48# happyReduction_133 @@ -3372,7 +3372,7 @@ case happyOutTok happy_x_3 of { (Loc happy_var_3 DoubleColon) -> case happyOut71 happy_x_4 of { happy_var_4 -> happyIn60 - (let Loc l (StringTok s) = happy_var_1 in (s, happy_var_2, happy_var_4, [l,happy_var_3]) + (let Loc l (StringTok (s,_)) = happy_var_1 in (Just s, happy_var_2, happy_var_4, [l,happy_var_3]) ) `HappyStk` happyRest}}}} happyReduce_142 = happySpecReduce_3 51# happyReduction_142 @@ -3383,7 +3383,7 @@ case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> case happyOut71 happy_x_3 of { happy_var_3 -> happyIn60 - (("", happy_var_1, happy_var_3, [happy_var_2]) + ((Nothing, happy_var_1, happy_var_3, [happy_var_2]) )}}} happyReduce_143 = happySpecReduce_3 52# happyReduction_143 @@ -3430,9 +3430,9 @@ case happyOut137 happy_x_4 of { happy_var_4 -> case happyOutTok happy_x_5 of { (Loc happy_var_5 Equals) -> case happyOut135 happy_x_6 of { happy_var_6 -> - ( do { let {Loc l (StringTok s) = happy_var_1}; + ( do { let {Loc l (StringTok (s,_)) = happy_var_1}; e <- checkRuleExpr happy_var_4; - return $ Rule (nIS l <++> ann happy_var_6 <** snd happy_var_3 ++ [happy_var_5]) s happy_var_2 (fst happy_var_3) e happy_var_6 })}}}}}} + return $ Rule (nIS l <++> ann happy_var_6 <** l:snd happy_var_3 ++ [happy_var_5]) s happy_var_2 (fst happy_var_3) e happy_var_6 })}}}}}} ) (\r -> happyReturn (happyIn62 r)) happyReduce_148 = happySpecReduce_0 54# happyReduction_148 @@ -3448,7 +3448,7 @@ case happyOutTok happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightSquare) -> happyIn63 - (let Loc l (IntTok i) = happy_var_2 in Just $ ActiveFrom (happy_var_1 <^^> happy_var_3 <** [happy_var_1,l,happy_var_3]) (fromInteger i) + (let Loc l (IntTok (i,_)) = happy_var_2 in Just $ ActiveFrom (happy_var_1 <^^> happy_var_3 <** [happy_var_1,l,happy_var_3]) (fromInteger i) )}}} happyReduce_150 = happyReduce 4# 54# happyReduction_150 @@ -3462,7 +3462,7 @@ case happyOutTok happy_x_3 of { happy_var_3 -> case happyOutTok happy_x_4 of { (Loc happy_var_4 RightSquare) -> happyIn63 - (let Loc l (IntTok i) = happy_var_3 in Just $ ActiveUntil (happy_var_1 <^^> happy_var_4 <** [happy_var_1,happy_var_2,l,happy_var_4]) (fromInteger i) + (let Loc l (IntTok (i,_)) = happy_var_3 in Just $ ActiveUntil (happy_var_1 <^^> happy_var_4 <** [happy_var_1,happy_var_2,l,happy_var_4]) (fromInteger i) ) `HappyStk` happyRest}}}} happyReduce_151 = happySpecReduce_0 55# happyReduction_151 @@ -3558,7 +3558,7 @@ = case happyOut69 happy_x_1 of { happy_var_1 -> case happyOutTok happy_x_2 of { happy_var_2 -> happyIn68 - (let Loc l (StringTok s) = happy_var_2 in ((fst happy_var_1,s),snd happy_var_1 ++ [l]) + (let Loc l (StringTok (s,_)) = happy_var_2 in ((fst happy_var_1,s),snd happy_var_1 ++ [l]) )}} happyReduce_162 = happySpecReduce_1 60# happyReduction_162 @@ -3864,7 +3864,7 @@ case happyOut203 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> happyIn80 - (amap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 + (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 )}}} happyReduce_195 = happySpecReduce_1 72# happyReduction_195 @@ -3895,14 +3895,13 @@ (TyForall (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3]) (Just (reverse (fst happy_var_2))) Nothing happy_var_4 ) `HappyStk` happyRest}}}} -happyReduce_198 = happySpecReduce_3 74# happyReduction_198 -happyReduction_198 happy_x_3 - happy_x_2 +happyReduce_198 = happySpecReduce_2 74# happyReduction_198 +happyReduction_198 happy_x_2 happy_x_1 = case happyOut84 happy_x_1 of { happy_var_1 -> - case happyOut83 happy_x_3 of { happy_var_3 -> + case happyOut83 happy_x_2 of { happy_var_2 -> happyIn83 - (TyForall (happy_var_1 <> happy_var_3) Nothing (Just happy_var_1) happy_var_3 + (TyForall (happy_var_1 <> happy_var_2) Nothing (Just happy_var_1) happy_var_2 )}} happyReduce_199 = happySpecReduce_1 74# happyReduction_199 @@ -3912,24 +3911,28 @@ (happy_var_1 )} -happyReduce_200 = happyMonadReduce 1# 75# happyReduction_200 -happyReduction_200 (happy_x_1 `HappyStk` +happyReduce_200 = happyMonadReduce 2# 75# happyReduction_200 +happyReduction_200 (happy_x_2 `HappyStk` + happy_x_1 `HappyStk` happyRest) tk = happyThen (case happyOut76 happy_x_1 of { happy_var_1 -> - ( checkPContext happy_var_1)} + case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleArrow) -> + ( checkPContext $ (amap (\l -> l <++> nIS happy_var_2 <** (srcInfoPoints l ++ [happy_var_2]))) happy_var_1)}} ) (\r -> happyReturn (happyIn84 r)) -happyReduce_201 = happyMonadReduce 3# 75# happyReduction_201 -happyReduction_201 (happy_x_3 `HappyStk` +happyReduce_201 = happyMonadReduce 4# 75# happyReduction_201 +happyReduction_201 (happy_x_4 `HappyStk` + happy_x_3 `HappyStk` happy_x_2 `HappyStk` happy_x_1 `HappyStk` happyRest) tk = happyThen (case happyOut76 happy_x_1 of { happy_var_1 -> case happyOutTok happy_x_2 of { (Loc happy_var_2 Tilde) -> case happyOut76 happy_x_3 of { happy_var_3 -> + case happyOutTok happy_x_4 of { (Loc happy_var_4 DoubleArrow) -> ( do { checkEnabled TypeFamilies; - let {l = happy_var_1 <> happy_var_3 <** [happy_var_2]}; - checkPContext (TyPred l $ EqualP l happy_var_1 happy_var_3) })}}} + let {l = happy_var_1 <> happy_var_3 <** [happy_var_2,happy_var_4]}; + checkPContext (TyPred l $ EqualP l happy_var_1 happy_var_3) })}}}} ) (\r -> happyReturn (happyIn84 r)) happyReduce_202 = happySpecReduce_3 76# happyReduction_202 @@ -4081,7 +4084,7 @@ case happyOut96 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> happyIn95 - ((fst happy_var_2, happy_var_1 : snd happy_var_2 ++ [happy_var_3], happy_var_1 <^^> happy_var_3,True) + ((fst happy_var_2, happy_var_1 : snd happy_var_2 ++ [happy_var_3], happy_var_1 <^^> happy_var_3) )}}} happyReduce_219 = happySpecReduce_3 86# happyReduction_219 @@ -4092,7 +4095,7 @@ case happyOut96 happy_x_2 of { happy_var_2 -> case happyOut219 happy_x_3 of { happy_var_3 -> happyIn95 - ((fst happy_var_2, happy_var_1 : snd happy_var_2 ++ [happy_var_3], happy_var_1 <^^> happy_var_3,False) + ((fst happy_var_2, happy_var_1 : snd happy_var_2 ++ [happy_var_3], happy_var_1 <^^> happy_var_3) )}}} happyReduce_220 = happySpecReduce_3 87# happyReduction_220 @@ -4168,20 +4171,18 @@ (([happy_var_1],[],ann happy_var_1) )} -happyReduce_228 = happyMonadReduce 4# 92# happyReduction_228 -happyReduction_228 (happy_x_4 `HappyStk` - happy_x_3 `HappyStk` +happyReduce_228 = happyMonadReduce 3# 92# happyReduction_228 +happyReduction_228 (happy_x_3 `HappyStk` happy_x_2 `HappyStk` happy_x_1 `HappyStk` happyRest) tk = happyThen (case happyOut102 happy_x_1 of { happy_var_1 -> case happyOut84 happy_x_2 of { happy_var_2 -> - case happyOutTok happy_x_3 of { (Loc happy_var_3 DoubleArrow) -> - case happyOut103 happy_x_4 of { happy_var_4 -> + case happyOut103 happy_x_3 of { happy_var_3 -> ( do { checkEnabled ExistentialQuantification ; ctxt <- checkContext (Just happy_var_2) ; let {(mtvs,ss,ml) = happy_var_1} ; - return $ QualConDecl (ml <?+> ann happy_var_4 <** (ss ++ [happy_var_3])) mtvs ctxt happy_var_4 })}}}} + return $ QualConDecl (ml <?+> ann happy_var_3 <** ss) mtvs ctxt happy_var_3 })}}} ) (\r -> happyReturn (happyIn101 r)) happyReduce_229 = happySpecReduce_2 92# happyReduction_229 @@ -4277,7 +4278,7 @@ case happyOut77 happy_x_3 of { happy_var_3 -> ( do { (c,ts) <- splitTyConApp happy_var_1; return (c,map (\t -> UnBangedTy (ann t) t) ts++ - [BangedTy (nIS happy_var_2 <++> ann happy_var_3) happy_var_3], happy_var_1 <> happy_var_3) })}}} + [BangedTy (nIS happy_var_2 <++> ann happy_var_3 <** [happy_var_2]) happy_var_3], happy_var_1 <> happy_var_3) })}}} ) (\r -> happyReturn (happyIn105 r)) happyReduce_239 = happyMonadReduce 5# 96# happyReduction_239 @@ -4294,7 +4295,7 @@ case happyOut77 happy_x_5 of { happy_var_5 -> ( do { (c,ts) <- splitTyConApp happy_var_1; return (c,map (\t -> UnBangedTy (ann t) t) ts++ - [UnpackedTy (nIS happy_var_2 <++> ann happy_var_5 <** [happy_var_3,happy_var_4]) happy_var_5], happy_var_1 <> happy_var_5) })}}}}} + [UnpackedTy (nIS happy_var_2 <++> ann happy_var_5 <** [happy_var_2,happy_var_3,happy_var_4]) happy_var_5], happy_var_1 <> happy_var_5) })}}}}} ) (\r -> happyReturn (happyIn105 r)) happyReduce_240 = happySpecReduce_2 96# happyReduction_240 @@ -4427,7 +4428,7 @@ happyReduce_253 = happySpecReduce_0 102# happyReduction_253 happyReduction_253 = happyIn111 - ((Nothing,[],Nothing) + (Nothing ) happyReduce_254 = happySpecReduce_2 102# happyReduction_254 @@ -4436,7 +4437,7 @@ = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Deriving) -> case happyOut113 happy_x_2 of { happy_var_2 -> happyIn111 - (let l = nIS happy_var_1 <++> ann happy_var_2 in (Just [Deriving l happy_var_2 []], [happy_var_1], Just l) + (let l = nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1] in Just $ Deriving l [IHead (ann happy_var_2) happy_var_2 []] )}} happyReduce_255 = happySpecReduce_3 102# happyReduction_255 @@ -4447,7 +4448,7 @@ case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> happyIn111 - ((Just [], [happy_var_1,happy_var_2,happy_var_3], Just $ happy_var_1 <^^> happy_var_3) + (Just $ Deriving (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_2,happy_var_3]) [] )}}} happyReduce_256 = happyReduce 4# 102# happyReduction_256 @@ -4461,7 +4462,7 @@ case happyOut112 happy_x_3 of { happy_var_3 -> case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> happyIn111 - ((Just $ reverse (fst happy_var_3), happy_var_1:happy_var_2:snd happy_var_3 ++ [happy_var_4], Just $ happy_var_1 <^^> happy_var_4) + (Just $ Deriving (happy_var_1 <^^> happy_var_4 <** happy_var_1:happy_var_2: reverse (snd happy_var_3) ++ [happy_var_4]) (reverse (fst happy_var_3)) ) `HappyStk` happyRest}}}} happyReduce_257 = happyMonadReduce 1# 103# happyReduction_257 @@ -4552,7 +4553,7 @@ case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftCurly) -> case happyOut119 happy_x_3 of { happy_var_3 -> case happyOutTok happy_x_4 of { (Loc happy_var_4 RightCurly) -> - ( checkClassBody (fst happy_var_3) >>= \vs -> return (Just vs, happy_var_1:happy_var_2: snd happy_var_3 ++ [happy_var_4], Just (happy_var_1 <^^> happy_var_4),True))}}}} + ( checkClassBody (fst happy_var_3) >>= \vs -> return (Just vs, happy_var_1:happy_var_2: snd happy_var_3 ++ [happy_var_4], Just (happy_var_1 <^^> happy_var_4)))}}}} ) (\r -> happyReturn (happyIn118 r)) happyReduce_268 = happyMonadReduce 4# 109# happyReduction_268 @@ -4565,12 +4566,12 @@ case happyOut218 happy_x_2 of { happy_var_2 -> case happyOut119 happy_x_3 of { happy_var_3 -> case happyOut219 happy_x_4 of { happy_var_4 -> - ( checkClassBody (fst happy_var_3) >>= \vs -> return (Just vs, happy_var_1:happy_var_2: snd happy_var_3 ++ [happy_var_4], Just (happy_var_1 <^^> happy_var_4),False))}}}} + ( checkClassBody (fst happy_var_3) >>= \vs -> return (Just vs, happy_var_1:happy_var_2: snd happy_var_3 ++ [happy_var_4], Just (happy_var_1 <^^> happy_var_4)))}}}} ) (\r -> happyReturn (happyIn118 r)) happyReduce_269 = happySpecReduce_0 109# happyReduction_269 happyReduction_269 = happyIn118 - ((Nothing,[],Nothing,False) + ((Nothing,[],Nothing) ) happyReduce_270 = happyMonadReduce 3# 110# happyReduction_270 @@ -4631,8 +4632,8 @@ = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> case happyOut74 happy_x_2 of { happy_var_2 -> case happyOut117 happy_x_3 of { happy_var_3 -> - ( do { (c,ts) <- checkSimpleType happy_var_2; - return (ClsTyFam (nIS happy_var_1 <++> ann happy_var_2 <+?> (fmap ann) (fst happy_var_3) <** happy_var_1:snd happy_var_3) c ts (fst happy_var_3)) })}}} + ( do { dh <- checkSimpleType happy_var_2; + return (ClsTyFam (nIS happy_var_1 <++> ann happy_var_2 <+?> (fmap ann) (fst happy_var_3) <** happy_var_1:snd happy_var_3) dh (fst happy_var_3)) })}}} ) (\r -> happyReturn (happyIn122 r)) happyReduce_277 = happyReduce 4# 113# happyReduction_277 @@ -4657,8 +4658,8 @@ = happyThen (case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Data) -> case happyOut83 happy_x_2 of { happy_var_2 -> case happyOut117 happy_x_3 of { happy_var_3 -> - ( do { (cs,c,t) <- checkDataHeader happy_var_2; - return (ClsDataFam (nIS happy_var_1 <++> ann happy_var_2 <+?> (fmap ann) (fst happy_var_3) <** happy_var_1:snd happy_var_3) cs c t (fst happy_var_3)) })}}} + ( do { (cs,dh) <- checkDataHeader happy_var_2; + return (ClsDataFam (nIS happy_var_1 <++> ann happy_var_2 <+?> (fmap ann) (fst happy_var_3) <** happy_var_1:snd happy_var_3) cs dh (fst happy_var_3)) })}}} ) (\r -> happyReturn (happyIn122 r)) happyReduce_279 = happyMonadReduce 4# 114# happyReduction_279 @@ -4671,7 +4672,7 @@ case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftCurly) -> case happyOut124 happy_x_3 of { happy_var_3 -> case happyOutTok happy_x_4 of { (Loc happy_var_4 RightCurly) -> - ( checkInstBody (fst happy_var_3) >>= \vs -> return (Just vs, happy_var_1:happy_var_2: snd happy_var_3 ++ [happy_var_4], Just (happy_var_1 <^^> happy_var_4),True))}}}} + ( checkInstBody (fst happy_var_3) >>= \vs -> return (Just vs, happy_var_1:happy_var_2: snd happy_var_3 ++ [happy_var_4], Just (happy_var_1 <^^> happy_var_4)))}}}} ) (\r -> happyReturn (happyIn123 r)) happyReduce_280 = happyMonadReduce 4# 114# happyReduction_280 @@ -4684,12 +4685,12 @@ case happyOut218 happy_x_2 of { happy_var_2 -> case happyOut124 happy_x_3 of { happy_var_3 -> case happyOut219 happy_x_4 of { happy_var_4 -> - ( checkInstBody (fst happy_var_3) >>= \vs -> return (Just vs, happy_var_1:happy_var_2: snd happy_var_3 ++ [happy_var_4], Just (happy_var_1 <^^> happy_var_4),False))}}}} + ( checkInstBody (fst happy_var_3) >>= \vs -> return (Just vs, happy_var_1:happy_var_2: snd happy_var_3 ++ [happy_var_4], Just (happy_var_1 <^^> happy_var_4)))}}}} ) (\r -> happyReturn (happyIn123 r)) happyReduce_281 = happySpecReduce_0 114# happyReduction_281 happyReduction_281 = happyIn123 - ((Nothing, [], Nothing, False) + ((Nothing, [], Nothing) ) happyReduce_282 = happyMonadReduce 3# 115# happyReduction_282 @@ -4788,9 +4789,9 @@ case happyOut99 happy_x_3 of { happy_var_3 -> case happyOut111 happy_x_4 of { happy_var_4 -> ( do { -- (cs,c,t) <- checkDataHeader happy_var_4; - let {(ds,ss1,minf1) = happy_var_3 ; (mds,ss2,minf2) = happy_var_4}; + let {(ds,ss,minf) = happy_var_3}; checkDataOrNew happy_var_1 ds; - return (InsData (happy_var_1 <> happy_var_2 <+?> minf1 <+?> minf2 <** (ss1 ++ ss2)) happy_var_1 happy_var_2 (reverse ds) mds) })}}}} + return (InsData (happy_var_1 <> happy_var_2 <+?> minf <+?> fmap ann happy_var_4 <** ss ) happy_var_1 happy_var_2 (reverse ds) happy_var_4) })}}}} ) (\r -> happyReturn (happyIn128 r)) happyReduce_292 = happyMonadReduce 6# 119# happyReduction_292 @@ -4808,9 +4809,9 @@ case happyOut94 happy_x_5 of { happy_var_5 -> case happyOut111 happy_x_6 of { happy_var_6 -> ( do { -- (cs,c,t) <- checkDataHeader happy_var_4; - let { (gs,ss1,inf,b) = happy_var_5 ; (mds,ss2,minf) = happy_var_6 } ; + let { (gs,ss,inf) = happy_var_5 } ; checkDataOrNew happy_var_1 gs; - return $ InsGData (ann happy_var_1 <++> inf <+?> minf <** (snd happy_var_3 ++ happy_var_4:ss1 ++ ss2) <?? b) happy_var_1 happy_var_2 (fst happy_var_3) (reverse gs) mds })}}}}}} + return $ InsGData (ann happy_var_1 <++> inf <+?> fmap ann happy_var_6 <** (snd happy_var_3 ++ happy_var_4:ss)) happy_var_1 happy_var_2 (fst happy_var_3) (reverse gs) happy_var_6 })}}}}}} ) (\r -> happyReturn (happyIn128 r)) happyReduce_293 = happyMonadReduce 4# 120# happyReduction_293 @@ -4837,8 +4838,9 @@ case happyOut132 happy_x_3 of { happy_var_3 -> case happyOut130 happy_x_4 of { happy_var_4 -> ( do { checkEnabled BangPatterns ; - p <- checkPattern happy_var_2; - return $ PatBind ((nIS happy_var_1 <++> ann happy_var_3 <+?> (fmap ann) (fst happy_var_4)) <** happy_var_1:snd happy_var_4) + let { l = nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1] }; + p <- checkPattern (BangPat l happy_var_2); + return $ PatBind (p <> happy_var_3 <+?> (fmap ann) (fst happy_var_4) <** snd happy_var_4) p Nothing happy_var_3 (fst happy_var_4) })}}}} ) (\r -> happyReturn (happyIn129 r)) @@ -5122,7 +5124,7 @@ case happyOutTok happy_x_3 of { (Loc happy_var_3 KW_Of) -> case happyOut171 happy_x_4 of { happy_var_4 -> happyIn141 - (let (als, inf, ss, b) = happy_var_4 in Case (nIS happy_var_1 <++> inf <** (happy_var_1:happy_var_3:ss) <?? b) happy_var_2 als + (let (als, inf, ss) = happy_var_4 in Case (nIS happy_var_1 <++> inf <** (happy_var_1:happy_var_3:ss)) happy_var_2 als ) `HappyStk` happyRest}}}} happyReduce_324 = happySpecReduce_2 132# happyReduction_324 @@ -5140,7 +5142,7 @@ = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Do) -> case happyOut179 happy_x_2 of { happy_var_2 -> happyIn141 - (let (sts, inf, ss, b) = happy_var_2 in Do (nIS happy_var_1 <++> inf <** happy_var_1:ss <?? b) sts + (let (sts, inf, ss) = happy_var_2 in Do (nIS happy_var_1 <++> inf <** happy_var_1:ss) sts )}} happyReduce_326 = happySpecReduce_2 132# happyReduction_326 @@ -5149,7 +5151,7 @@ = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_MDo) -> case happyOut179 happy_x_2 of { happy_var_2 -> happyIn141 - (let (sts, inf, ss, b) = happy_var_2 in MDo (nIS happy_var_1 <++> inf <** happy_var_1:ss <?? b) sts + (let (sts, inf, ss) = happy_var_2 in MDo (nIS happy_var_1 <++> inf <** happy_var_1:ss) sts )}} happyReduce_327 = happySpecReduce_1 132# happyReduction_327 @@ -5170,7 +5172,7 @@ case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> case happyOut136 happy_x_4 of { happy_var_4 -> happyIn142 - (let Loc l (StringTok s) = happy_var_2 in CorePragma (nIS happy_var_1 <++> ann happy_var_4 <** [l,happy_var_3]) s happy_var_4 + (let Loc l (StringTok (s,_)) = happy_var_2 in CorePragma (nIS happy_var_1 <++> ann happy_var_4 <** [l,happy_var_3]) s happy_var_4 ) `HappyStk` happyRest}}}} happyReduce_329 = happyReduce 4# 133# happyReduction_329 @@ -5184,7 +5186,7 @@ case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> case happyOut136 happy_x_4 of { happy_var_4 -> happyIn142 - (let Loc l (StringTok s) = happy_var_2 in SCCPragma (nIS happy_var_1 <++> ann happy_var_4 <** [l,happy_var_3]) s happy_var_4 + (let Loc l (StringTok (s,_)) = happy_var_2 in SCCPragma (nIS happy_var_1 <++> ann happy_var_4 <** [l,happy_var_3]) s happy_var_4 ) `HappyStk` happyRest}}}} happyReduce_330 = happyReduce 11# 133# happyReduction_330 @@ -5212,11 +5214,11 @@ case happyOutTok happy_x_10 of { (Loc happy_var_10 PragmaEnd) -> case happyOut136 happy_x_11 of { happy_var_11 -> happyIn142 - (let { Loc l0 (StringTok s) = happy_var_2; - Loc l1 (IntTok i1) = happy_var_3; - Loc l2 (IntTok i2) = happy_var_5; - Loc l3 (IntTok i3) = happy_var_7; - Loc l4 (IntTok i4) = happy_var_9} + (let { Loc l0 (StringTok (s,_)) = happy_var_2; + Loc l1 (IntTok (i1,_)) = happy_var_3; + Loc l2 (IntTok (i2,_)) = happy_var_5; + Loc l3 (IntTok (i3,_)) = happy_var_7; + Loc l4 (IntTok (i4,_)) = happy_var_9} in GenPragma (nIS happy_var_1 <++> ann happy_var_11 <** [happy_var_1,l0,l1,happy_var_4,l2,happy_var_6,l3,happy_var_8,l4,happy_var_10]) s (fromInteger i1, fromInteger i2) (fromInteger i3, fromInteger i4) happy_var_11 @@ -5444,7 +5446,7 @@ case happyOut163 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightSquare) -> happyIn148 - (amap (<** [happy_var_1,happy_var_3]) $ happy_var_2 (happy_var_1 <^^> happy_var_3) + (amap (\l -> l <** [happy_var_3]) $ happy_var_2 (happy_var_1 <^^> happy_var_3 <** [happy_var_1]) )}}} happyReduce_354 = happySpecReduce_1 139# happyReduction_354 @@ -5746,7 +5748,7 @@ ( do { n <- checkEqNames happy_var_2 happy_var_8; let { cn = reverse happy_var_6; as = reverse happy_var_3; - l = happy_var_1 <^^> happy_var_9 <** [happy_var_1,happy_var_5,happy_var_7,happy_var_9] }; + l = happy_var_1 <^^> happy_var_9 <** [happy_var_1,happy_var_5,happy_var_7,srcInfoSpan (ann happy_var_8),happy_var_9] }; return $ XTag l n as happy_var_4 cn })}}}}}}}}} ) (\r -> happyReturn (happyIn154 r)) @@ -5825,7 +5827,7 @@ case happyOut158 happy_x_3 of { happy_var_3 -> happyIn157 (let {Loc l1 s1 = happy_var_1; Loc l2 s2 = happy_var_3} - in XDomName (nIS l1 <++> nIS l2 <** [happy_var_2]) s1 s2 + in XDomName (nIS l1 <++> nIS l2 <** [l1,happy_var_2,l2]) s1 s2 )}}} happyReduce_391 = happySpecReduce_1 148# happyReduction_391 @@ -6184,7 +6186,7 @@ happyReduction_441 happy_x_1 = case happyOut164 happy_x_1 of { happy_var_1 -> happyIn163 - (\l -> let (ps,ss) = happy_var_1 in List (l <** ss) ps + (\l -> let (ps,ss) = happy_var_1 in List (l <** reverse ss) (reverse ps) )} happyReduce_442 = happySpecReduce_2 154# happyReduction_442 @@ -6444,7 +6446,7 @@ case happyOut172 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> happyIn171 - ((fst happy_var_2, happy_var_1 <^^> happy_var_3, happy_var_1:snd happy_var_2 ++ [happy_var_3], True) + ((fst happy_var_2, happy_var_1 <^^> happy_var_3, happy_var_1:snd happy_var_2 ++ [happy_var_3]) )}}} happyReduce_466 = happySpecReduce_3 162# happyReduction_466 @@ -6455,7 +6457,7 @@ case happyOut172 happy_x_2 of { happy_var_2 -> case happyOut219 happy_x_3 of { happy_var_3 -> happyIn171 - ((fst happy_var_2, happy_var_1 <^^> happy_var_3, happy_var_1:snd happy_var_2 ++ [happy_var_3], False) + ((fst happy_var_2, happy_var_1 <^^> happy_var_3, happy_var_1:snd happy_var_2 ++ [happy_var_3]) )}}} happyReduce_467 = happySpecReduce_3 163# happyReduction_467 @@ -6569,7 +6571,7 @@ case happyOut180 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> happyIn179 - ((fst happy_var_2, happy_var_1 <^^> happy_var_3, snd happy_var_2 ++ [happy_var_1,happy_var_3], True) + ((fst happy_var_2, happy_var_1 <^^> happy_var_3, happy_var_1:snd happy_var_2 ++ [happy_var_3]) )}}} happyReduce_479 = happySpecReduce_3 170# happyReduction_479 @@ -6580,7 +6582,7 @@ case happyOut180 happy_x_2 of { happy_var_2 -> case happyOut219 happy_x_3 of { happy_var_3 -> happyIn179 - ((fst happy_var_2, happy_var_1 <^^> happy_var_3, snd happy_var_2 ++ [happy_var_1,happy_var_3], False) + ((fst happy_var_2, happy_var_1 <^^> happy_var_3, happy_var_1:snd happy_var_2 ++ [happy_var_3]) )}}} happyReduce_480 = happySpecReduce_2 171# happyReduction_480 @@ -6653,7 +6655,7 @@ = case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Rec) -> case happyOut179 happy_x_2 of { happy_var_2 -> happyIn182 - (let (stms,inf,ss,b) = happy_var_2 in RecStmt (nIS happy_var_1 <++> inf <** happy_var_1:ss <?? b) stms + (let (stms,inf,ss) = happy_var_2 in RecStmt (nIS happy_var_1 <++> inf <** happy_var_1:ss) stms )}} happyReduce_489 = happySpecReduce_3 174# happyReduction_489 @@ -6810,7 +6812,7 @@ case happyOut214 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> happyIn189 - (amap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 + (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 )}}} happyReduce_506 = happySpecReduce_1 181# happyReduction_506 @@ -6828,7 +6830,7 @@ case happyOut214 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> happyIn190 - (amap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 + (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 )}}} happyReduce_508 = happySpecReduce_1 182# happyReduction_508 @@ -6846,7 +6848,7 @@ case happyOut212 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> happyIn191 - (amap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 + (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 )}}} happyReduce_510 = happySpecReduce_1 183# happyReduction_510 @@ -6871,7 +6873,7 @@ case happyOut211 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> happyIn193 - (amap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 + (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 )}}} happyReduce_513 = happySpecReduce_1 185# happyReduction_513 @@ -6889,7 +6891,7 @@ case happyOut203 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> happyIn194 - (amap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 + (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 )}}} happyReduce_515 = happySpecReduce_1 186# happyReduction_515 @@ -6907,7 +6909,7 @@ case happyOut206 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> happyIn195 - (amap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 + (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 )}}} happyReduce_517 = happySpecReduce_1 187# happyReduction_517 @@ -6925,7 +6927,7 @@ case happyOut204 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> happyIn196 - (amap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 + (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 )}}} happyReduce_519 = happySpecReduce_1 188# happyReduction_519 @@ -6943,7 +6945,7 @@ case happyOut204 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> happyIn197 - (amap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 + (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 )}}} happyReduce_521 = happySpecReduce_1 189# happyReduction_521 @@ -6961,7 +6963,7 @@ case happyOut209 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> happyIn198 - (amap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 + (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 )}}} happyReduce_523 = happySpecReduce_1 190# happyReduction_523 @@ -6979,7 +6981,7 @@ case happyOut208 happy_x_2 of { happy_var_2 -> case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> happyIn199 - (amap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 + (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2 )}}} happyReduce_525 = happySpecReduce_1 191# happyReduction_525 @@ -7288,70 +7290,70 @@ happyReduction_568 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn217 - (let Loc l (IntTok i) = happy_var_1 in Int (nIS l) i + (let Loc l (IntTok (i,raw)) = happy_var_1 in Int (nIS l) i raw )} happyReduce_569 = happySpecReduce_1 208# happyReduction_569 happyReduction_569 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn217 - (let Loc l (Character c) = happy_var_1 in Char (nIS l) c + (let Loc l (Character (c,raw)) = happy_var_1 in Char (nIS l) c raw )} happyReduce_570 = happySpecReduce_1 208# happyReduction_570 happyReduction_570 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn217 - (let Loc l (FloatTok r) = happy_var_1 in Frac (nIS l) r + (let Loc l (FloatTok (r,raw)) = happy_var_1 in Frac (nIS l) r raw )} happyReduce_571 = happySpecReduce_1 208# happyReduction_571 happyReduction_571 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn217 - (let Loc l (StringTok s) = happy_var_1 in String (nIS l) s + (let Loc l (StringTok (s,raw)) = happy_var_1 in String (nIS l) s raw )} happyReduce_572 = happySpecReduce_1 208# happyReduction_572 happyReduction_572 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn217 - (let Loc l (IntTokHash i) = happy_var_1 in PrimInt (nIS l) i + (let Loc l (IntTokHash (i,raw)) = happy_var_1 in PrimInt (nIS l) i raw )} happyReduce_573 = happySpecReduce_1 208# happyReduction_573 happyReduction_573 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn217 - (let Loc l (WordTokHash w) = happy_var_1 in PrimWord (nIS l) w + (let Loc l (WordTokHash (w,raw)) = happy_var_1 in PrimWord (nIS l) w raw )} happyReduce_574 = happySpecReduce_1 208# happyReduction_574 happyReduction_574 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn217 - (let Loc l (FloatTokHash f) = happy_var_1 in PrimFloat (nIS l) f + (let Loc l (FloatTokHash (f,raw)) = happy_var_1 in PrimFloat (nIS l) f raw )} happyReduce_575 = happySpecReduce_1 208# happyReduction_575 happyReduction_575 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn217 - (let Loc l (DoubleTokHash d) = happy_var_1 in PrimDouble (nIS l) d + (let Loc l (DoubleTokHash (d,raw)) = happy_var_1 in PrimDouble (nIS l) d raw )} happyReduce_576 = happySpecReduce_1 208# happyReduction_576 happyReduction_576 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn217 - (let Loc l (CharacterHash c) = happy_var_1 in PrimChar (nIS l) c + (let Loc l (CharacterHash (c,raw)) = happy_var_1 in PrimChar (nIS l) c raw )} happyReduce_577 = happySpecReduce_1 208# happyReduction_577 happyReduction_577 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> happyIn217 - (let Loc l (StringHash s) = happy_var_1 in PrimString (nIS l) s + (let Loc l (StringHash (s,raw)) = happy_var_1 in PrimString (nIS l) s raw )} happyReduce_578 = happyMonadReduce 0# 209# happyReduction_578 @@ -7706,13 +7708,13 @@ parseTypeWithComments mode str = runParserWithModeComments mode mparseType str -simpleParse :: AppFixity a => P a -> String -> ParseResult a +simpleParse :: AppFixity a => P (a L) -> String -> ParseResult (a L) simpleParse p = fmap (applyFixities preludeFixities) . runParser p -modeParse :: AppFixity a => P a -> ParseMode -> String -> ParseResult a +modeParse :: AppFixity a => P (a L) -> ParseMode -> String -> ParseResult (a L) modeParse p mode = fmap (applyFixities (fixities mode)) . runParserWithMode mode p -commentParse :: AppFixity a => P a -> ParseMode -> String -> ParseResult (a, [Comment]) +commentParse :: AppFixity a => P (a L) -> ParseMode -> String -> ParseResult (a L, [Comment]) commentParse p mode str = runParserWithModeComments mode p str >>= \(ast, cs) -> return (applyFixities (fixities mode) ast, cs)
haskell-src-exts.cabal view
@@ -1,5 +1,5 @@ Name: haskell-src-exts-Version: 1.1.3.1+Version: 1.1.4 License: BSD3 License-File: LICENSE Author: Niklas Broberg@@ -62,7 +62,8 @@ Language.Haskell.Exts.Annotated.Fixity, Language.Haskell.Exts.Annotated.Build, Language.Haskell.Exts.Annotated.Comments,- Language.Haskell.Exts.Annotated.SrcLoc+ Language.Haskell.Exts.Annotated.SrcLoc,+ Language.Haskell.Exts.Annotated.ExactPrint Other-modules: Language.Haskell.Exts.ParseMonad, Language.Haskell.Exts.Lexer,
src/Language/Haskell/Exts/Annotated.hs view
@@ -21,14 +21,18 @@ , module Language.Haskell.Exts.Annotated.Pretty , module Language.Haskell.Exts.Annotated.Fixity , module Language.Haskell.Exts.Annotated.SrcLoc+ , module Language.Haskell.Exts.Annotated.ExactPrint+ , module Language.Haskell.Exts.Annotated.Comments , module Language.Haskell.Exts.Extension- , module Language.Haskell.Exts.Comments -- * Parsing of Haskell source files , parseFile , parseFileWithMode , parseFileWithExts+ , parseFileWithComments , parseFileContents , parseFileContentsWithMode+ , parseFileContentsWithExts+ , parseFileContentsWithComments -- * Read extensions declared in LANGUAGE pragmas , readExtensions ) where@@ -39,8 +43,9 @@ import Language.Haskell.Exts.Annotated.Pretty import Language.Haskell.Exts.Annotated.SrcLoc import Language.Haskell.Exts.Annotated.Fixity+import Language.Haskell.Exts.Annotated.Comments+import Language.Haskell.Exts.Annotated.ExactPrint import Language.Haskell.Exts.Extension-import Language.Haskell.Exts.Comments import Data.List import Language.Preprocessor.Unlit@@ -58,6 +63,9 @@ parseFileWithMode :: ParseMode -> FilePath -> IO (ParseResult (Module SrcSpanInfo)) parseFileWithMode p fp = readFile fp >>= (return . parseFileContentsWithMode p) +parseFileWithComments :: ParseMode -> FilePath -> IO (ParseResult (Module SrcSpanInfo, [Comment]))+parseFileWithComments p fp = readFile fp >>= (return . parseFileContentsWithComments p)+ -- | Parse a source file from a string using the default parse mode. parseFileContents :: String -> ParseResult (Module SrcSpanInfo) parseFileContents = parseFileContentsWithMode defaultParseMode@@ -76,6 +84,13 @@ _ -> exts in parseModuleWithMode (p { extensions = allExts }) md +parseFileContentsWithComments :: ParseMode -> String -> ParseResult (Module SrcSpanInfo, [Comment])+parseFileContentsWithComments p@(ParseMode fn exts ign _) rawStr =+ let md = delit fn $ ppContents rawStr+ allExts = impliesExts $ case (ign, readExtensions md) of+ (False,Just es) -> exts ++ es+ _ -> exts+ in parseModuleWithComments (p { extensions = allExts }) md -- | Gather the extensions declared in LANGUAGE pragmas -- at the top of the file. Returns 'Nothing' if the
src/Language/Haskell/Exts/Annotated/Build.hs view
@@ -140,27 +140,27 @@ -- | A literal string expression. strE :: l -> String -> Exp l-strE l = Lit l . String l+strE l s = Lit l $ String l s s -- | A literal character expression. charE :: l -> Char -> Exp l-charE l = Lit l . Char l+charE l c = Lit l $ Char l c [c] -- | A literal integer expression. intE :: l -> Integer -> Exp l-intE l = Lit l . Int l+intE l i = Lit l $ Int l i (show i) -- | A literal string pattern. strP :: l -> String -> Pat l-strP l = PLit l . String l+strP l s = PLit l $ String l s s -- | A literal character pattern. charP :: l -> Char -> Pat l-charP l = PLit l . Char l+charP l c = PLit l $ Char l c [c] -- | A literal integer pattern. intP :: l -> Integer -> Pat l-intP l = PLit l . Int l+intP l i = PLit l $ Int l i (show i) -- | A do block formed by the given statements. -- The last statement in the list should be@@ -254,7 +254,7 @@ -- | A function with a single clause sfun :: l -> Name l -> [Name l] -> Rhs l -> Maybe (Binds l) -> Decl l-sfun l f pvs rhs mbs = FunBind l [Match l f (map (pvar l) pvs) Nothing rhs mbs]+sfun l f pvs rhs mbs = FunBind l [Match l f (map (pvar l) pvs) rhs mbs] -- | A function with a single clause, a single argument, no guards -- and no where declarations
src/Language/Haskell/Exts/Annotated/Comments.hs view
@@ -11,8 +11,7 @@ #endif #endif -data Comment = SingleLine SrcLoc String - | MultiLine SrcLoc String +data Comment = Comment Bool SrcSpan String #ifdef __GLASGOW_HASKELL__ deriving (Eq,Show,Typeable,Data) #else
+ src/Language/Haskell/Exts/Annotated/ExactPrint.hs view
@@ -0,0 +1,1369 @@+module Language.Haskell.Exts.Annotated.ExactPrint + ( exactPrint + , ExactP + ) where + +import Language.Haskell.Exts.Annotated.Comments +import Language.Haskell.Exts.Annotated.SrcLoc +import Language.Haskell.Exts.Annotated.Syntax + +import Control.Monad (when) + +-- import Debug.Trace (trace) + +------------------------------------------------------ +-- The EP monad and basic combinators + +type Pos = (Int,Int) + +pos :: (SrcInfo si) => si -> Pos +pos ss = (startLine ss, startColumn ss) + +newtype EP x = EP (Pos -> [Comment] -> (x, Pos, [Comment], ShowS)) + +instance Monad EP where + return x = EP $ \l cs -> (x, l, cs, id) + + EP m >>= k = EP $ \l0 c0 -> let + (a, l1, c1, s1) = m l0 c0 + EP f = k a + (b, l2, c2, s2) = f l1 c1 + in (b, l2, c2, s1 . s2) + +runEP :: EP () -> [Comment] -> String +runEP (EP f) cs = let (_,_,_,s) = f (1,1) cs in s "" + +getPos :: EP Pos +getPos = EP (\l cs -> (l,l,cs,id)) + +setPos :: Pos -> EP () +setPos l = EP (\_ cs -> ((),l,cs,id)) + +printString :: String -> EP () +printString str = EP (\(l,c) cs -> ((), (l,c+length str), cs, showString str)) + +getComment :: EP (Maybe Comment) +getComment = EP $ \l cs -> + let x = case cs of + c:_ -> Just c + _ -> Nothing + in (x, l, cs, id) + +dropComment :: EP () +dropComment = EP $ \l cs -> + let cs' = case cs of + (_:cs) -> cs + _ -> cs + in ((), l, cs', id) + +newLine :: EP () +newLine = do + (l,_) <- getPos + printString "\n" + setPos (l+1,1) + +padUntil :: Pos -> EP () +padUntil (l,c) = do + (l1,c1) <- getPos + case {- trace (show ((l,c), (l1,c1))) -} () of + _ | l1 >= l && c1 <= c -> printString $ replicate (c - c1) ' ' + | l1 < l -> newLine >> padUntil (l,c) + | otherwise -> return () + + +mPrintComments :: Pos -> EP () +mPrintComments p = do + mc <- getComment + case mc of + Nothing -> return () + Just (Comment multi s str) -> + when (pos s < p) $ do + dropComment + padUntil (pos s) + printComment multi str + setPos (srcSpanEndLine s, srcSpanEndColumn s) + mPrintComments p + +printComment :: Bool -> String -> EP () +printComment b str + | b = printString $ "{-" ++ str ++ "-}" + | otherwise = printString $ "--" ++ str + +printWhitespace :: Pos -> EP () +printWhitespace p = mPrintComments p >> padUntil p + +printStringAt :: Pos -> String -> EP () +printStringAt p str = printWhitespace p >> printString str + +------------------------------------------------------------------------------ +-- Printing of source elements + +exactPrint :: (ExactP ast) => ast L -> [Comment] -> String +exactPrint ast cs = runEP (exactP ast) cs + +exactPC :: (Annotated ast, ExactP ast) => ast L -> EP () +exactPC ast = let p = pos (ann ast) in mPrintComments p >> padUntil p >> exactP ast + +printSeq :: [(Pos, EP ())] -> EP () +printSeq [] = return () +printSeq ((p,pr):xs) = printWhitespace p >> pr >> printSeq xs + +printStrs :: SrcInfo si => [(si, String)] -> EP () +printStrs = printSeq . map (\(si, str) -> (pos si, printString str)) + +printPoints :: L -> [String] -> EP () +printPoints l = printStrs . zip (srcInfoPoints l) + +printInterleaved, printInterleaved' :: (Annotated ast, ExactP ast, SrcInfo si) => [(si, String)] -> [ast L] -> EP () +printInterleaved sistrs asts = printSeq $ + interleave (map (\(si, str) -> (pos si, printString str)) sistrs) + (map (\a -> (pos $ ann a, exactP a)) asts) + +printInterleaved' sistrs (a:asts) = exactPC a >> printInterleaved sistrs asts + +printStreams :: [(Pos, EP ())] -> [(Pos, EP ())] -> EP () +printStreams [] ys = printSeq ys +printStreams xs [] = printSeq xs +printStreams (x@(p1,ep1):xs) (y@(p2,ep2):ys) + | p1 <= p2 = printWhitespace p1 >> ep1 >> printStreams xs (y:ys) + | otherwise = printWhitespace p2 >> ep2 >> printStreams (x:xs) ys + + +interleave :: [a] -> [a] -> [a] +interleave [] ys = ys +interleave xs [] = xs +interleave (x:xs) (y:ys) = x:y: interleave xs ys + +maybeEP :: (a -> EP ()) -> Maybe a -> EP () +maybeEP = maybe (return ()) + +bracketList :: (Annotated ast, ExactP ast) => (String, String, String) -> [SrcSpan] -> [ast L] -> EP () +bracketList (a,b,c) poss asts = printInterleaved (pList poss (a,b,c)) asts + +pList (p:ps) (a,b,c) = (p,a) : pList' ps (b,c) +pList' [] _ = [] +pList' [p] (_,c) = [(p,c)] +pList' (p:ps) (b,c) = (p, b) : pList' ps (b,c) + +parenList, squareList, curlyList :: (Annotated ast, ExactP ast) => [SrcSpan] -> [ast L] -> EP () +parenList = bracketList ("(",",",")") +squareList = bracketList ("[",",","]") +curlyList = bracketList ("{",",","}") + +layoutList :: (Functor ast, Show (ast ()), Annotated ast, ExactP ast) => [SrcSpan] -> [ast L] -> EP () +layoutList poss asts = printInterleaved (lList poss) asts + +lList (p:ps) = (if isNullSpan p then (p,"") else (p,"{")) : lList' ps +lList' [] = [] +lList' [p] = [if isNullSpan p then (p,"") else (p,"}")] +lList' (p:ps) = (if isNullSpan p then (p,"") else (p,";")) : lList' ps + + +type L = SrcSpanInfo + +-------------------------------------------------- +-- Exact printing + +class ExactP ast where + exactP :: ast L -> EP () + +instance ExactP Literal where + exactP lit = case lit of + Char _ _ rw -> printString ('\'':rw ++ "\'") + String _ _ rw -> printString ('\"':rw ++ "\"") + Int _ _ rw -> printString (rw) + Frac _ _ rw -> printString (rw) + PrimInt _ _ rw -> printString (rw ++ "#" ) + PrimWord _ _ rw -> printString (rw ++ "##") + PrimFloat _ _ rw -> printString (rw ++ "#" ) + PrimDouble _ _ rw -> printString (rw ++ "##") + PrimChar _ _ rw -> printString ('\'':rw ++ "\'#" ) + PrimString _ _ rw -> printString ('\"':rw ++ "\"#" ) + +instance ExactP ModuleName where + exactP (ModuleName l str) = printString str + +instance ExactP SpecialCon where + exactP sc = case sc of + UnitCon l -> printPoints l ["(",")"] + ListCon l -> printPoints l ["[","]"] + FunCon l -> printPoints l ["(","->",")"] + TupleCon l b n -> printPoints l $ + case b of + Unboxed -> "(#": replicate n "," ++ ["#)"] + _ -> "(" : replicate n "," ++ [")"] + Cons l -> printString ":" + UnboxedSingleCon l -> printPoints l ["(#","#)"] + +isSymbol :: Name l -> Bool +isSymbol (Symbol _ _) = True +isSymbol _ = False + +getName :: QName l -> Name l +getName (UnQual _ s) = s +getName (Qual _ _ s) = s +getName (Special l (Cons _)) = Symbol l ":" +getName (Special l (FunCon _)) = Symbol l "->" +getName (Special l s) = Ident l (specialName s) + +specialName :: SpecialCon l -> String +specialName (UnitCon _) = "()" +specialName (ListCon _) = "[]" +specialName (FunCon _) = "->" +specialName (TupleCon _ b n) = "(" ++ hash ++ replicate (n-1) ',' ++ hash ++ ")" + where hash = case b of + Unboxed -> "#" + _ -> "" +specialName (Cons _) = ":" + +instance ExactP QName where + exactP qn + | isSymbol (getName qn) = do + let [a,b,c] = srcInfoPoints (ann qn) + printString "(" + printWhitespace (pos b) + epQName qn + printStringAt (pos c) ")" + | otherwise = epQName qn + +epQName :: QName L -> EP () +epQName qn = case qn of + Qual l mn n -> exactP mn >> printString "." >> epName n + UnQual l n -> epName n + Special l sc -> exactP sc + +epInfixQName :: QName L -> EP () +epInfixQName qn + | isSymbol (getName qn) = printWhitespace (pos (ann qn)) >> epQName qn + | otherwise = do + let [a,b,c] = srcInfoPoints (ann qn) + printStringAt (pos a) "`" + printWhitespace (pos b) + epQName qn + printStringAt (pos c) "`" + +instance ExactP Name where + exactP n = case n of + Ident l str -> printString str + Symbol l str -> do + let [a,b,c] = srcInfoPoints l + printString "(" + printWhitespace (pos b) + printString str + printStringAt (pos c) ")" + +epName :: Name L -> EP () +epName (Ident _ str) = printString str +epName (Symbol _ str) = printString str + +epInfixName :: Name L -> EP () +epInfixName n + | isSymbol n = printWhitespace (pos (ann n)) >> epName n + | otherwise = do + let [a,b,c] = srcInfoPoints (ann n) + printStringAt (pos a) "`" + printWhitespace (pos b) + epName n + printStringAt (pos c) "`" + +instance ExactP IPName where + exactP ipn = case ipn of + IPDup l str -> printString $ '?':str + IPLin l str -> printString $ '%':str + +instance ExactP QOp where + exactP qop = case qop of + QVarOp l qn -> epInfixQName qn + QConOp l qn -> epInfixQName qn + +instance ExactP Op where + exactP op = case op of + VarOp l n -> epInfixName n + ConOp l n -> epInfixName n + + + +instance ExactP CName where + exactP cn = case cn of + VarName l n -> exactP n + ConName l n -> exactP n + +instance ExactP ExportSpec where + exactP espec = case espec of + EVar l qn -> exactP qn + EAbs l qn -> exactP qn + EThingAll l qn -> exactP qn >> printPoints l ["(","..",")"] + EThingWith l qn cns -> + let k = length (srcInfoPoints l) + in exactP qn >> printInterleaved (zip (srcInfoPoints l) $ "(":replicate (k-2) "," ++ [")"]) cns + EModuleContents l mn -> printString "module" >> exactPC mn + +instance ExactP ExportSpecList where + exactP (ExportSpecList l ess) = + let k = length (srcInfoPoints l) + in printInterleaved (zip (srcInfoPoints l) $ "(": replicate (k-2) "," ++ [")"]) ess + +instance ExactP ImportSpecList where + exactP (ImportSpecList l hid ispecs) = do + let pts = srcInfoPoints l + pts <- if hid then do + let (x:pts') = pts + printStringAt (pos x) "hiding" + return pts' + else return pts + let k = length pts + printInterleaved (zip pts $ "(": replicate (k-2) "," ++ [")"]) ispecs + +instance ExactP ImportSpec where + exactP ispec = case ispec of + IVar l n -> exactP n + IAbs l n -> exactP n + IThingAll l n -> exactP n >> printPoints l ["(","..",")"] + IThingWith l n cns -> + let k = length (srcInfoPoints l) + in exactP n >> printInterleaved (zip (srcInfoPoints l) $ "(":replicate (k-2) "," ++ [")"]) cns + +instance ExactP ImportDecl where + exactP (ImportDecl l mn qf src mpkg mas mispecs) = do + printString "import" + let (a:pts) = srcInfoPoints l + pts <- if src then do + let (x:y:pts') = pts + printStringAt (pos x) "{-# SOURCE" + printStringAt (pos y) "#-}" + return pts' + else return pts + pts <- if qf then do + let (x:pts') = pts + printStringAt (pos x) "qualified" + return pts' + else return pts + pts <- case mpkg of + Just pkg -> do + let (x:pts') = pts + printStringAt (pos x) $ show pkg + return pts' + _ -> return pts + exactPC mn + pts <- case mas of + Just as -> do + let (x:pts') = pts + printStringAt (pos x) "as" + exactPC as + return pts' + _ -> return pts + case mispecs of + Nothing -> return () + Just ispecs -> exactPC ispecs + +instance ExactP Module where + exactP mdl = case mdl of + Module l mmh oss ids decls -> do + let (oPts, pts) = splitAt (max (length oss + 1) 2) (srcInfoPoints l) + layoutList oPts oss + maybeEP exactPC mmh + printStreams (map (\(p,s) -> (pos p, printString s)) $ lList pts) + (map (\i -> (pos $ ann i, exactPC i)) ids ++ map (\d -> (pos $ ann d, exactPC d)) (sepFunBinds decls)) +{- + XmlPage l [OptionPragma l] (XName l) [XAttr l] (Maybe (Exp l)) [Exp l] + + XmlHybrid l (Maybe (ModuleHead l)) [OptionPragma l] [ImportDecl l] [Decl l] + (XName l) [XAttr l] (Maybe (Exp l)) [Exp l] +-} + +instance ExactP ModuleHead where + exactP (ModuleHead l mn mwt mess) = do + let [a,b] = srcInfoPoints l + printStringAt (pos a) "module" + exactPC mn + maybeEP exactPC mwt + maybeEP exactPC mess + printStringAt (pos b) "where" + +instance ExactP OptionPragma where + exactP op = case op of + LanguagePragma l ns -> + let pts = srcInfoPoints l + k = length ns - 1 -- number of commas + m = length pts - k - 2 -- number of virtual semis, likely 0 + in printInterleaved (zip pts ("{-# LANGUAGE":replicate k "," ++ replicate m "" ++ ["#-}"])) ns + IncludePragma l str -> + let k = length (srcInfoPoints l) + in printPoints l $ ("{-# INCLUDE " ++ str) : replicate (k-2) "" ++ ["#-}"] + CFilesPragma l str -> + let k = length (srcInfoPoints l) + in printPoints l $ ("{-# CFILES " ++ str) : replicate (k-2) "" ++ ["#-}"] + OptionsPragma l mt str -> + let k = length (srcInfoPoints l) + opstr = "{-# OPTIONS" ++ case mt of { Just t -> "_" ++ show t ; _ -> "" } ++ " " ++ str + in printPoints l $ opstr : replicate (k-2) "" ++ ["#-}"] + +instance ExactP WarningText where + exactP (DeprText l str) = printPoints l ["{-# DEPRECATED", str, "#-}"] + exactP (WarnText l str) = printPoints l ["{-# WARNING", str, "#-}"] + +instance ExactP Assoc where + exactP a = case a of + AssocNone l -> printString "infix" + AssocLeft l -> printString "infixl" + AssocRight l -> printString "infixr" + +instance ExactP DataOrNew where + exactP (DataType l) = printString "data" + exactP (NewType l) = printString "newtype" + +instance ExactP Decl where + exactP decl = case decl of + TypeDecl l dh t -> do + let [a,b] = srcInfoPoints l + printStringAt (pos a) "type" + exactPC dh + printStringAt (pos b) "=" + exactPC t + TypeFamDecl l dh mk -> do + let (a:b:ps) = srcInfoPoints l + printStringAt (pos a) "type" + printStringAt (pos b) "family" + exactPC dh + maybeEP (\k -> printStringAt (pos (head ps)) "::" >> exactPC k) mk + DataDecl l dn mctxt dh constrs mder -> do + exactP dn + maybeEP exactPC mctxt + exactPC dh + -- the next line works for empty data types since the srcInfoPoints will be empty then + printInterleaved (zip (srcInfoPoints l) ("=": repeat "|")) constrs + maybeEP exactPC mder + GDataDecl l dn mctxt dh mk gds mder -> do + let pts = srcInfoPoints l + exactP dn + maybeEP exactPC mctxt + exactPC dh + (x:pts) <- case mk of + Nothing -> return pts + Just kd -> let (p:pts') = pts in do + printStringAt (pos p) "::" + exactPC kd + return pts' + printStringAt (pos x) "where" + layoutList pts gds + maybeEP exactPC mder + DataFamDecl l mctxt dh mk -> do + printString "data" + maybeEP exactPC mctxt + exactPC dh + maybeEP (\kd -> printStringAt (pos (head (srcInfoPoints l))) "::" >> exactPC kd) mk + TypeInsDecl l t1 t2 -> do + let [a,b,c] = srcInfoPoints l + printString "type" + printStringAt (pos b) "instance" + exactPC t1 + printStringAt (pos c) "=" + exactPC t2 + DataInsDecl l dn t constrs mder -> do + let (p:pts) = srcInfoPoints l + exactP dn + printStringAt (pos p) "instance" + exactPC t + printInterleaved (zip (srcInfoPoints l) ("=": repeat "|")) constrs + maybeEP exactPC mder + GDataInsDecl l dn t mk gds mder -> do + let (p:pts) = srcInfoPoints l + exactP dn + printStringAt (pos p) "instance" + exactPC t + (x:pts) <- case mk of + Nothing -> return pts + Just kd -> let (p:pts') = pts in do + printStringAt (pos p) "::" + exactPC kd + return pts' + printStringAt (pos x) "where" + layoutList pts gds + maybeEP exactPC mder + ClassDecl l mctxt dh fds mcds -> do + let pts = srcInfoPoints l + printString "class" + maybeEP exactPC mctxt + exactPC dh + pts <- case fds of + [] -> return pts + _ -> do + let (pts1, pts2) = splitAt (length fds) pts + printInterleaved (zip pts1 ("|":repeat ",")) fds + return pts2 + maybeEP (\cds -> do + let (p:pts') = pts + printStringAt (pos p) "where" + layoutList pts' cds + ) mcds + InstDecl l mctxt ih mids -> do + let (a:pts) = srcInfoPoints l + printString "instance" + maybeEP exactPC mctxt + exactPC ih + maybeEP (\ids -> do + let (p:pts') = pts + printStringAt (pos p) "where" + layoutList pts' ids + ) mids + DerivDecl l mctxt ih -> do + let [a,b] = srcInfoPoints l + printString "deriving" + printStringAt (pos b) "instance" + maybeEP exactPC mctxt + exactPC ih + InfixDecl l assoc mprec ops -> do + let pts = srcInfoPoints l + exactP assoc + pts <- case mprec of + Nothing -> return pts + Just prec -> do + let (p:pts') = pts + printStringAt (pos p) (show prec) + return pts' + printInterleaved' (zip pts (repeat ",")) ops + DefaultDecl l ts -> do + let (a:pts) = srcInfoPoints l + printString "default" + printInterleaved (zip (init pts) ("(":repeat ",")) ts + printStringAt (pos (last pts)) ")" + SpliceDecl l spl -> exactP spl + TypeSig l ns t -> do + let pts = srcInfoPoints l + printInterleaved' (zip pts (replicate (length pts - 1) "," ++ ["::"])) ns + exactPC t + FunBind l ms -> mapM_ exactPC ms + PatBind l p mt rhs mbs -> do + let pts = srcInfoPoints l + exactP p + pts <- case mt of + Nothing -> return pts + Just t -> let (x:pts') = pts in do + printStringAt (pos x) "::" + exactPC t + return pts' + exactPC rhs + maybeEP (\bs -> printStringAt (pos (head pts)) "where" >> exactPC bs) mbs + ForImp l cc msf mstr n t -> do + let (a:b:pts) = srcInfoPoints l + printString "foreign" + printStringAt (pos b) "import" + exactPC cc + maybeEP exactPC msf + (y:_) <- case mstr of + Nothing -> return pts + Just str -> let (x:pts') = pts in do + printStringAt (pos x) (show str) + return pts' + exactPC n + printStringAt (pos y) "::" + exactPC t + ForExp l cc mstr n t -> do + let (a:b:pts) = srcInfoPoints l + printString "foreign" + printStringAt (pos b) "export" + exactPC cc + (y:_) <- case mstr of + Nothing -> return pts + Just str -> let (x:pts') = pts in do + printStringAt (pos x) (show str) + return pts' + exactPC n + printStringAt (pos y) "::" + exactPC t + RulePragmaDecl l rs -> do + let [a,b] = srcInfoPoints l + printString "{-# RULES" + mapM_ exactPC rs + printStringAt (pos b) "#-}" + DeprPragmaDecl l nstrs -> do + let pts = srcInfoPoints l + printString "{-# DEPRECATED" + printWarndeprs (map pos (init pts)) nstrs + printStringAt (pos (last pts)) "#-}" + WarnPragmaDecl l nstrs -> do + let pts = srcInfoPoints l + printString "{-# WARNING" + printWarndeprs (map pos (init pts)) nstrs + printStringAt (pos (last pts)) "#-}" + InlineSig l inl mact qn -> do + let [a,b] = srcInfoPoints l + printString $ if inl then "{-# INLINE" else "{-# NOINLINE" + maybeEP exactPC mact + exactPC qn + printStringAt (pos b) "#-}" + SpecSig l qn ts -> do + let (a:pts) = srcInfoPoints l + printString "{-# SPECIALISE" + exactPC qn + printInterleaved (zip pts ("::" : repeat "," ++ ["#-}"])) ts + SpecInlineSig l b mact qn ts -> do + let (a:pts) = srcInfoPoints l + printString $ "{-# SPECIALISE " ++ if b then "INLINE" else "NOINLINE" + maybeEP exactPC mact + exactPC qn + printInterleaved (zip pts ("::" : repeat "," ++ ["#-}"])) ts + InstSig l mctxt ih -> do + let [a,b,c] = srcInfoPoints l + printString $ "{-# SPECIALISE" + printStringAt (pos b) "instance" + maybeEP exactPC mctxt + exactPC ih + printStringAt (pos c) "#-}" + +printWarndeprs :: [Pos] -> [([Name L], String)] -> EP () +printWarndeprs _ [] = return () +printWarndeprs ps ((ns,str):nsts) = printWd ps ns str nsts + where printWd :: [Pos] -> [Name L] -> String -> [([Name L], String)] -> EP () + printWd (p:ps) [] str nsts = printStringAt p (show str) >> printWarndeprs ps nsts + printWd ps [n] str nsts = exactPC n >> printWd ps [] str nsts + printWd (p:ps) (n:ns) str nsts = exactPC n >> printStringAt p "," >> printWd ps ns str nsts + + +sepFunBinds :: [Decl L] -> [Decl L] +sepFunBinds [] = [] +sepFunBinds (FunBind _ ms:ds) = map (\m -> FunBind (ann m) [m]) ms ++ sepFunBinds ds +sepFunBinds (d:ds) = d : sepFunBinds ds + + +instance ExactP DeclHead where + exactP dh = case dh of + DHead l n tvs -> exactP n >> mapM_ exactPC tvs + DHInfix l tva n tvb -> exactP tva >> epInfixName n >> exactPC tvb + DHParen l dh -> + let [_,b] = srcInfoPoints l + in printString "(" >> exactPC dh >> printStringAt (pos b) ")" + +instance ExactP InstHead where + exactP ih = case ih of + IHead l qn ts -> exactP qn >> mapM_ exactPC ts + IHInfix l ta qn tb -> exactP ta >> epInfixQName qn >> exactPC tb + IHParen l ih -> + let [_,b] = srcInfoPoints l + in printString "(" >> exactPC ih >> printStringAt (pos b) ")" + +instance ExactP TyVarBind where + exactP (KindedVar l n k) = do + let [a,b,c] = srcInfoPoints l + printString "(" + exactPC n + printStringAt (pos b) "::" + exactPC k + printStringAt (pos c) ")" + exactP (UnkindedVar l n) = exactP n + +instance ExactP Kind where + exactP kd = case kd of + KindStar l -> printString "*" + KindBang l -> printString "!" + KindFn l k1 k2 -> do + let [a] = srcInfoPoints l + exactP k1 + printStringAt (pos a) "->" + exactPC k2 + KindParen l kd -> do + let [a,b] = srcInfoPoints l + printString "(" + exactPC kd + printStringAt (pos b) ")" + +instance ExactP Type where + exactP t = case t of + TyForall l mtvs mctxt t -> do + let pts = srcInfoPoints l + pts <- case mtvs of + Nothing -> return pts + Just tvs -> do + let (a:b:pts') = pts + printString "forall" + mapM_ exactPC tvs + printStringAt (pos b) "." + return pts' + maybeEP exactPC mctxt + exactPC t + TyFun l t1 t2 -> do + let [a] = srcInfoPoints l + exactP t1 + printStringAt (pos a) "->" + exactPC t2 + TyTuple l bx ts -> do + let pts = srcInfoPoints l + (o,e) = case bx of + Boxed -> ("(" , ")") + Unboxed -> ("(#","#)") + printInterleaved (zip pts (o: replicate (length pts - 2) "," ++ [e])) ts + TyList l t -> do + let [a,b] = srcInfoPoints l + printString "[" + exactPC t + printStringAt (pos b) "]" + TyApp l t1 t2 -> exactP t1 >> exactPC t2 + TyVar l n -> exactP n + TyCon l qn -> exactP qn + TyParen l t -> do + let [a,b] = srcInfoPoints l + printString "(" + exactPC t + printStringAt (pos b) ")" + TyInfix l t1 qn t2 -> exactP t1 >> epInfixQName qn >> exactPC t2 + TyKind l t kd -> do + let [a,b,c] = srcInfoPoints l + printString "(" + exactPC t + printStringAt (pos b) "::" + exactPC kd + printStringAt (pos c) ")" + +instance ExactP Context where + exactP ctxt = do + printContext ctxt + printStringAt (pos (last (srcInfoPoints (ann ctxt)))) "=>" + +printContext ctxt = do + let l = ann ctxt + pts = init $ srcInfoPoints l + case ctxt of + CxParen l ctxt -> do + let [a,b] = pts + printStringAt (pos a) "(" + printContext ctxt + printStringAt (pos b) ")" + CxSingle l asst -> exactP asst + CxEmpty l -> do + let [a,b] = pts + printStringAt (pos a) "(" + printStringAt (pos b) ")" + CxTuple l assts -> parenList pts assts + + +instance ExactP Asst where + exactP asst = case asst of + ClassA l qn ts -> exactP qn >> mapM_ exactPC ts + InfixA l ta qn tb -> exactP ta >> epInfixQName qn >> exactPC tb + IParam l ipn t -> do + let [a] = srcInfoPoints l + exactP ipn + printStringAt (pos a) "::" + exactPC t + EqualP l t1 t2 -> do + let [a] = srcInfoPoints l + exactP t1 + printStringAt (pos a) "~" + exactPC t2 + +instance ExactP Deriving where + exactP (Deriving l ihs) = do + let (x:pts) = srcInfoPoints l + printString "deriving" + parenList pts ihs + +instance ExactP ClassDecl where + exactP cdecl = case cdecl of + ClsDecl l d -> exactP d + ClsDataFam l mctxt dh mk -> do + let (x:pts) = srcInfoPoints l + printString "data" + maybeEP exactPC mctxt + exactPC dh + maybeEP (\kd -> printStringAt (pos (head pts)) "::" >> exactPC kd) mk + ClsTyFam l dh mk -> do + let (x:pts) = srcInfoPoints l + printString "type" + exactPC dh + maybeEP (\kd -> printStringAt (pos (head pts)) "::" >> exactPC kd) mk + ClsTyDef l t1 t2 -> do + let [a,b] = srcInfoPoints l + printString "type" + exactPC t1 + printStringAt (pos b) "=" + exactPC t2 + +instance ExactP InstDecl where + exactP idecl = case idecl of + InsDecl l d -> exactP d + InsType l t1 t2 -> do + let [a,b] = srcInfoPoints l + printString "type" + exactPC t1 + printStringAt (pos b) "=" + exactPC t2 + InsData l dn t constrs mder -> do + exactP dn + exactPC t + printInterleaved (zip (srcInfoPoints l) ("=": repeat "|")) constrs + maybeEP exactPC mder + InsGData l dn t mk gds mder -> do + let pts = srcInfoPoints l + exactP dn + exactPC t + (x:pts) <- case mk of + Nothing -> return pts + Just kd -> let (p:pts') = pts in do + printStringAt (pos p) "::" + exactPC kd + return pts' + printStringAt (pos x) "where" + mapM_ exactPC gds + maybeEP exactPC mder + InsInline l inl mact qn -> do + let [a,b] = srcInfoPoints l + printString $ if inl then "{-# INLINE" else "{-# NOINLINE" + maybeEP exactPC mact + exactPC qn + printStringAt (pos b) "#-}" + +instance ExactP FunDep where + exactP (FunDep l nxs nys) = do + let [a] = srcInfoPoints l + mapM_ exactPC nxs + printStringAt (pos a) "->" + mapM_ exactPC nys + +instance ExactP QualConDecl where + exactP (QualConDecl l mtvs mctxt cd) = do + let pts = srcInfoPoints l + pts <- case mtvs of + Nothing -> return pts + Just tvs -> do + let (a:b:pts') = pts + printString "forall" + mapM_ exactPC tvs + printStringAt (pos b) "." + return pts' + maybeEP exactPC mctxt + exactPC cd + +instance ExactP ConDecl where + exactP cd = case cd of + ConDecl l n bts -> exactP n >> mapM_ exactPC bts + InfixConDecl l bta n btb -> exactP bta >> epInfixName n >> exactP btb + RecDecl l n fds -> exactP n >> curlyList (srcInfoPoints l) fds + +instance ExactP GadtDecl where + exactP (GadtDecl l n t) = do + let [a] = srcInfoPoints l + exactP n + printStringAt (pos a) "::" + exactPC t + +instance ExactP BangType where + exactP bt = case bt of + UnBangedTy l t -> exactP t + BangedTy l t -> printString "!" >> exactPC t + UnpackedTy l t -> do + let [a,b,c] = srcInfoPoints l + printString "{-# UNPACK" + printStringAt (pos b) "#-}" + printStringAt (pos c) "!" + exactPC t + +instance ExactP Splice where + exactP (IdSplice l str) = printString $ '$':str + exactP (ParenSplice l e) = do + let [a,b] = srcInfoPoints l + printString "$(" + exactPC e + printStringAt (pos b) ")" + +instance ExactP Exp where + exactP exp = case exp of + Var l qn -> exactP qn + IPVar l ipn -> exactP ipn + Con l qn -> exactP qn + Lit l lit -> exactP lit + InfixApp l e1 op e2 -> exactP e1 >> exactPC op >> exactPC e2 + App l e1 e2 -> exactP e1 >> exactPC e2 + NegApp l e -> printString "-" >> exactPC e + Lambda l ps e -> do + let [a,b] = srcInfoPoints l + printString "\\" + mapM_ exactPC ps + printStringAt (pos b) "->" + exactPC e + Let l bs e -> do + let [a,b] = srcInfoPoints l + printString "let" + exactPC bs + printStringAt (pos b) "in" + exactPC e + If l ec et ee -> do + let [a,b,c] = srcInfoPoints l + printString "if" + exactPC ec + printStringAt (pos b) "then" + exactPC et + printStringAt (pos c) "else" + exactPC ee + Case l e alts -> do + let (a:b:pts) = srcInfoPoints l + printString "case" + exactPC e + printStringAt (pos b) "of" + layoutList pts alts + Do l stmts -> do + let (a:pts) = srcInfoPoints l + printString "do" + layoutList pts stmts + MDo l stmts -> do + let (a:pts) = srcInfoPoints l + printString "mdo" + layoutList pts stmts + Tuple l es -> parenList (srcInfoPoints l) es + TupleSection l mexps -> do + let pts = srcInfoPoints l + printSeq $ interleave (zip (map pos $ init pts) (map printString ("(": repeat ",")) ++ [(pos $ last pts, printString ")")]) + (map (\me -> (maybe (0,0) (pos . ann) me, maybeEP exactPC me)) mexps) + List l es -> squareList (srcInfoPoints l) es + Paren l p -> parenList (srcInfoPoints l) [p] + LeftSection l e qop -> do + let [a,b] = srcInfoPoints l + printString "(" + exactPC e + exactPC qop + printStringAt (pos b) ")" + RightSection l qop e -> do + let [a,b] = srcInfoPoints l + printString "(" + exactPC qop + exactPC e + printStringAt (pos b) ")" + RecConstr l qn fups -> do + let pts = srcInfoPoints l + exactP qn + curlyList pts fups + RecUpdate l e fups -> do + let pts = srcInfoPoints l + exactP e + curlyList pts fups + EnumFrom l e -> do + let [a,b,c] = srcInfoPoints l + printString "[" + exactPC e + printStringAt (pos b) ".." + printStringAt (pos c) "]" + EnumFromTo l e1 e2 -> do + let [a,b,c] = srcInfoPoints l + printString "[" + exactPC e1 + printStringAt (pos b) ".." + exactPC e2 + printStringAt (pos c) "]" + EnumFromThen l e1 e2 -> do + let [a,b,c,d] = srcInfoPoints l + printString "[" + exactPC e1 + printStringAt (pos b) "," + exactPC e2 + printStringAt (pos c) ".." + EnumFromThenTo l e1 e2 e3 -> do + let [a,b,c,d] = srcInfoPoints l + printString "[" + exactPC e1 + printStringAt (pos b) "," + exactPC e2 + printStringAt (pos c) ".." + exactPC e3 + printStringAt (pos d) "]" + ListComp l e qss -> do + let (a:pts) = srcInfoPoints l + printString "[" + exactPC e + bracketList ("|",",","]") pts qss + ParComp l e qsss -> do + let (a:pts) = srcInfoPoints l + (strs, qss) = unzip $ pairUp qsss + printString "[" + exactPC e + printInterleaved (zip pts (strs ++ ["]"])) qss + where pairUp [] = [] + pairUp ((a:as):xs) = ("|", a) : zip (repeat ",") as ++ pairUp xs + + ExpTypeSig l e t -> do + let [a] = srcInfoPoints l + exactP e + printStringAt (pos a) "::" + exactPC t + VarQuote l qn -> do + printString "'" + exactPC qn + TypQuote l qn -> do + printString "''" + exactPC qn + BracketExp l br -> exactP br + SpliceExp l sp -> exactP sp + QuasiQuote l name qt -> printString $ "[$" ++ name ++ "|" ++ qt ++ "]" + XTag l xn attrs mat es -> do + let [a,b,c,d,e] = srcInfoPoints l + printString "<" + exactPC xn + mapM_ exactPC attrs + maybeEP exactPC mat + printStringAt (pos b) ">" + mapM_ exactPC es + printStringAt (pos c) "</" + printWhitespace (pos d) + exactP xn + printStringAt (pos e) ">" + XETag l xn attrs mat -> do + let [a,b] = srcInfoPoints l + printString "<" + exactPC xn + mapM_ exactPC attrs + maybeEP exactPC mat + printStringAt (pos b) "/>" + XPcdata l str -> printString str + XExpTag l e -> do + let [a,b] = srcInfoPoints l + printString "<%" + exactPC e + printString "%>" + + CorePragma l str e -> do + let [a,b] = srcInfoPoints l + printString $ "{-# CORE " ++ show str + printStringAt (pos b) "#-}" + exactPC e + SCCPragma l str e -> do + let [a,b] = srcInfoPoints l + printString $ "{-# SCC " ++ show str + printStringAt (pos b) "#-}" + exactPC e + GenPragma l str (i1,i2) (i3,i4) e -> do + printStrs $ zip (srcInfoPoints l) ["{-# GENERATED", show str, show i1, ":", show i2, "-", show i3, ":", show i4, "#-}"] + exactPC e + Proc l p e -> do + let [a,b] = srcInfoPoints l + printString "proc" + exactPC p + printStringAt (pos b) "->" + exactPC e + LeftArrApp l e1 e2 -> do + let [a] = srcInfoPoints l + exactP e1 + printStringAt (pos a) "-<" + exactPC e2 + RightArrApp l e1 e2 -> do + let [a] = srcInfoPoints l + exactP e1 + printStringAt (pos a) ">-" + exactPC e2 + LeftArrHighApp l e1 e2 -> do + let [a] = srcInfoPoints l + exactP e1 + printStringAt (pos a) "-<<" + exactPC e2 + RightArrHighApp l e1 e2 -> do + let [a] = srcInfoPoints l + exactP e1 + printStringAt (pos a) ">>-" + exactPC e2 + +instance ExactP FieldUpdate where + exactP fup = case fup of + FieldUpdate l qn e -> do + let [a] = srcInfoPoints l + exactP qn + printStringAt (pos a) "=" + exactPC e + FieldPun l n -> exactP n + FieldWildcard l -> printString ".." + +instance ExactP Stmt where + exactP stmt = case stmt of + Generator l p e -> do + let [a] = srcInfoPoints l + exactP p + printStringAt (pos a) "<-" + exactPC e + Qualifier l e -> exactP e + LetStmt l bds -> do + printString "let" + exactPC bds + RecStmt l ss -> do + let (a:pts) = srcInfoPoints l + printString "rec" + layoutList pts ss + +instance ExactP QualStmt where + exactP qstmt = case qstmt of + QualStmt l stmt -> exactP stmt + ThenTrans l e -> printString "then" >> exactPC e + ThenBy l e1 e2 -> do + let [a,b] = srcInfoPoints l + printString "then" + exactPC e1 + printStringAt (pos b) "by" + exactPC e2 + GroupBy l e -> do + printStrs $ zip (srcInfoPoints l) ["then","group","by"] + exactPC e + GroupUsing l e -> do + printStrs $ zip (srcInfoPoints l) ["then","group","using"] + exactPC e + GroupByUsing l e1 e2 -> do + let pts = srcInfoPoints l + printStrs $ zip (init pts) ["then","group","by"] + exactPC e1 + printStringAt (pos (last pts)) "using" + exactPC e2 + +instance ExactP Bracket where + exactP br = case br of + ExpBracket l e -> do + let [a,b] = srcInfoPoints l + printString "[|" + exactPC e + printStringAt (pos b) "|]" + PatBracket l p -> do + let [a,b] = srcInfoPoints l + printString "[p|" + exactPC p + printStringAt (pos b) "|]" + TypeBracket l t -> do + let [a,b] = srcInfoPoints l + printString "[t|" + exactPC t + printStringAt (pos b) "|]" + DeclBracket l ds -> do + let (a:pts) = srcInfoPoints l + printString "[d|" + layoutList (init pts) (sepFunBinds ds) + printStringAt (pos (last pts)) "|]" + +instance ExactP XAttr where + exactP (XAttr l xn e) = do + let [a] = srcInfoPoints l + exactP xn + printStringAt (pos a) "=" + exactPC e + +instance ExactP Alt where + exactP (Alt l p galts mbs) = do + exactP p + exactPC galts + maybeEP (\bs -> printStringAt (pos (head (srcInfoPoints l))) "where" >> exactPC bs) mbs + +instance ExactP GuardedAlts where + exactP (UnGuardedAlt l e) = printString "->" >> exactPC e + exactP (GuardedAlts l galts) = mapM_ exactPC galts + +instance ExactP GuardedAlt where + exactP (GuardedAlt l stmts e) = do + bracketList ("|",",","->") (srcInfoPoints l) stmts + exactPC e + +instance ExactP Match where + exactP (Match l n ps rhs mbinds) = do + let pts = srcInfoPoints l + exactP n + mapM_ exactPC ps + exactPC rhs + maybeEP (\bds -> printStringAt (pos (head pts)) "where" >> exactPC bds) mbinds + exactP (InfixMatch l a n b rhs mbinds) = do + let pts = srcInfoPoints l + exactP a + epInfixName n + exactPC b + exactPC rhs + maybeEP (\bds -> printStringAt (pos (head pts)) "where" >> exactPC bds) mbinds + +instance ExactP Rhs where + exactP (UnGuardedRhs l e) = printString "=" >> exactPC e + exactP (GuardedRhss l grhss) = mapM_ exactPC grhss + +instance ExactP GuardedRhs where + exactP (GuardedRhs l ss e) = do + let (a:pts) = srcInfoPoints l + printString "|" + printInterleaved' (zip (init pts) (repeat ",") ++ [(last pts, "=")]) ss + exactPC e + +instance ExactP Pat where + exactP pat = case pat of + PVar l n -> exactP n + PLit l lit -> exactP lit + PNeg l p -> printString "-" >> exactPC p + PNPlusK l n k -> do + let [a,b] = srcInfoPoints l + exactP n + printStringAt (pos a) "+" + printStringAt (pos b) (show k) + PInfixApp l pa qn pb -> exactP pa >> epInfixQName qn >> exactPC pb + PApp l qn ps -> exactP qn >> mapM_ exactPC ps + PTuple l ps -> parenList (srcInfoPoints l) ps + PList l ps -> squareList (srcInfoPoints l) ps + PParen l p -> parenList (srcInfoPoints l) [p] + PRec l qn pfs -> exactP qn >> curlyList (srcInfoPoints l) pfs + PAsPat l n p -> do + let [a] = srcInfoPoints l + exactP n + printStringAt (pos a) "@" + exactPC p + PWildCard l -> printString "_" + PIrrPat l p -> printString "~" >> exactPC p + PatTypeSig l p t -> do + let [a] = srcInfoPoints l + exactP p + printStringAt (pos a) "::" + exactPC t + PViewPat l e p -> do + let [a] = srcInfoPoints l + exactP e + printStringAt (pos a) "->" + exactPC p + PRPat l rps -> squareList (srcInfoPoints l) rps + PXTag l xn attrs mat ps -> do + let [a,b,c,d,e] = srcInfoPoints l + printString "<" + exactPC xn + mapM_ exactPC attrs + maybeEP exactPC mat + printStringAt (pos b) ">" + mapM_ exactPC ps + printStringAt (pos c) "</" + printWhitespace (pos d) + exactP xn + printStringAt (pos e) ">" + PXETag l xn attrs mat -> do + let [a,b] = srcInfoPoints l + printString "<" + exactPC xn + mapM_ exactPC attrs + maybeEP exactPC mat + printStringAt (pos b) "/>" + PXPcdata l str -> printString str + PXPatTag l p -> do + let [a,b] = srcInfoPoints l + printString "<%" + exactPC p + printString "%>" + PXRPats l rps -> bracketList ("<[",",","]>") (srcInfoPoints l) rps + PExplTypeArg l qn t -> do + let [a,b] = srcInfoPoints l + exactP qn + printStringAt (pos a) "{|" + exactPC t + printStringAt (pos b) "|}" + PQuasiQuote l name qt -> printString $ "[$" ++ name ++ "|" ++ qt ++ "]" + PBangPat l p -> printString "!" >> exactPC p + +instance ExactP PatField where + exactP pf = case pf of + PFieldPat l qn p -> do + let [a] = srcInfoPoints l + exactP qn + printStringAt (pos a) "=" + exactPC p + PFieldPun l n -> exactP n + PFieldWildcard l -> printString ".." + +instance ExactP RPat where + exactP rpat = case rpat of + RPOp l rp op -> exactP rp >> exactPC op + RPEither l r1 r2 -> do + let [a] = srcInfoPoints l + exactP r1 + printStringAt (pos a) "|" + exactPC r2 + RPSeq l rps -> bracketList ("(|",",","|)") (srcInfoPoints l) rps + RPGuard l p stmts -> do + let (a:pts) = srcInfoPoints l + printString "(|" + exactPC p + bracketList ("|",",","|)") pts stmts + RPCAs l n rp -> do + let [a] = srcInfoPoints l + exactP n + printStringAt (pos a) "@:" + exactPC rp + RPAs l n rp -> do + let [a] = srcInfoPoints l + exactP n + printStringAt (pos a) "@" + exactPC rp + RPParen l rp -> do + parenList (srcInfoPoints l) [rp] + RPPat l p -> exactP p + +instance ExactP RPatOp where + exactP rop = printString $ case rop of + RPStar l -> "*" + RPStarG l -> "*!" + RPPlus l -> "+" + RPPlusG l -> "+!" + RPOpt l -> "?" + RPOptG l -> "?!" + +instance ExactP PXAttr where + exactP (PXAttr l xn p) = do + let [a] = srcInfoPoints l + exactP xn + printStringAt (pos a) "=" + exactPC p + +instance ExactP XName where + exactP xn = case xn of + XName l name -> printString name + XDomName l dom name -> do + let [a,b,c] = srcInfoPoints l + printString dom + printStringAt (pos b) ":" + printStringAt (pos c) name + +instance ExactP Binds where + exactP (BDecls l ds) = layoutList (srcInfoPoints l) (sepFunBinds ds) + exactP (IPBinds l ips) = layoutList (srcInfoPoints l) ips + +instance ExactP CallConv where + exactP (StdCall _) = printString "stdcall" + exactP (CCall _) = printString "ccall" + +instance ExactP Safety where + exactP (PlayRisky _) = printString "unsafe" + exactP (PlaySafe _ b) = printString $ if b then "threadsafe" else "safe" + +instance ExactP Rule where + exactP (Rule l str mact mrvs e1 e2) = do + let (a:pts) = srcInfoPoints l + printString (show str) + maybeEP exactP mact + [x] <- case mrvs of + Nothing -> return pts + Just rvs -> do + let (a:b:pts') = pts + printStringAt (pos a) "forall" + mapM_ exactPC rvs + printStringAt (pos b) "." + return pts' + exactPC e1 + printStringAt (pos x) "=" + exactPC e2 + +instance ExactP RuleVar where + exactP (TypedRuleVar l n t) = do + let [a,b,c] = srcInfoPoints l + printString "(" + exactPC n + printStringAt (pos b) "::" + exactPC t + printStringAt (pos c) ")" + exactP (RuleVar l n) = exactP n + +instance ExactP Activation where + exactP (ActiveFrom l i) = + printPoints l ["[", show i, "]"] + exactP (ActiveUntil l i) = + printPoints l ["[", "~", show i, "]"] + +instance ExactP FieldDecl where + exactP (FieldDecl l ns bt) = do + let pts = srcInfoPoints l + printInterleaved' (zip (init pts) (repeat ",") ++ [(last pts, "::")]) ns + exactPC bt + +instance ExactP IPBind where + exactP (IPBind l ipn e) = do + let [a] = srcInfoPoints l + exactP ipn + printStringAt (pos a) "=" + exactPC e
src/Language/Haskell/Exts/Annotated/Fixity.hs view
@@ -34,9 +34,12 @@ ) where import Language.Haskell.Exts.Annotated.Syntax +import Language.Haskell.Exts.Annotated.SrcLoc import Data.Char (isUpper) +type L = SrcSpanInfo + -- | Operator fixities are represented by their associativity -- (left, right or none) and their precedence (0-9). data Fixity = Fixity (Assoc ()) Int (Op ()) @@ -47,12 +50,12 @@ -- | Tweak any expressions in the element to account for the -- fixities given. Assumes that all operator expressions are -- fully left associative chains to begin with. - applyFixities :: [Fixity] -- ^ The fixities to account for. - -> ast -- ^ The element to tweak. - -> ast -- ^ The same element, but with operator expressions updated. + applyFixities :: [Fixity] -- ^ The fixities to account for. + -> ast L -- ^ The element to tweak. + -> ast L -- ^ The same element, but with operator expressions updated. -instance AppFixity (Exp l) where +instance AppFixity Exp where applyFixities fixs = infFix fixs . leafFix fixs where -- This is the real meat case. We can assume a left-associative list to begin with. infFix fixs (InfixApp l2 a op2 z) = @@ -64,7 +67,7 @@ in if (p1 == p2 && (a1 /= a2 || a1 == AssocNone ())) -- Ambiguous infix expression! || (p1 > p2 || p1 == p2 && (a1 == AssocLeft () || a2 == AssocNone ())) -- Already right order then InfixApp l2 e op2 z - else InfixApp l1 x op1 (infFix fixs $ InfixApp l1 y op2 z) + else InfixApp l2 x op1 (infFix fixs $ InfixApp (ann y <++> ann z) y op2 z) _ -> InfixApp l2 e op2 z infFix _ e = e @@ -153,7 +156,7 @@ ------------------------------------------------------------------- -- Boilerplate - yuck!! Everything below here is internal stuff -instance AppFixity (Module l) where +instance AppFixity Module where applyFixities fixs (Module l mmh prs imp decls) = Module l mmh prs imp $ appFixDecls fixs decls applyFixities fixs (XmlPage l os xn xas mexp cs) = @@ -165,17 +168,17 @@ where fixe x = let extraFixs = getFixities decls in applyFixities (fixs++extraFixs) x -instance AppFixity (Decl l) where +instance AppFixity Decl where applyFixities fixs decl = case decl of - ClassDecl l ctxt n vars deps cdecls -> ClassDecl l ctxt n vars deps $ fmap (map fix) cdecls - InstDecl l ctxt n ts idecls -> InstDecl l ctxt n ts $ fmap (map fix) idecls + ClassDecl l ctxt dh deps cdecls -> ClassDecl l ctxt dh deps $ fmap (map fix) cdecls + InstDecl l ctxt ih idecls -> InstDecl l ctxt ih $ fmap (map fix) idecls SpliceDecl l spl -> SpliceDecl l $ fix spl FunBind l matches -> FunBind l $ map fix matches PatBind l p mt rhs bs -> PatBind l (fix p) mt (fix rhs) (fmap fix bs) _ -> decl where fix x = applyFixities fixs x -appFixDecls :: [Fixity] -> [Decl l] -> [Decl l] +appFixDecls :: [Fixity] -> [Decl L] -> [Decl L] appFixDecls fixs decls = let extraFixs = getFixities decls in map (applyFixities (fixs++extraFixs)) decls @@ -184,29 +187,31 @@ getFixity (InfixDecl _ a mp ops) = let p = maybe 9 id mp in map (Fixity (nullAnn a) p) (map nullAnn ops) getFixity _ = [] -instance AppFixity (ClassDecl l) where +instance AppFixity ClassDecl where applyFixities fixs (ClsDecl l decl) = ClsDecl l $ applyFixities fixs decl applyFixities _ cdecl = cdecl -instance AppFixity (InstDecl l) where +instance AppFixity InstDecl where applyFixities fixs (InsDecl l decl) = InsDecl l $ applyFixities fixs decl applyFixities _ idecl = idecl -instance AppFixity (Match l) where - applyFixities fixs (Match l n ps mt rhs bs) = Match l n (map fix ps) mt (fix rhs) (fmap fix bs) +instance AppFixity Match where + applyFixities fixs match = case match of + Match l n ps rhs bs -> Match l n (map fix ps) (fix rhs) (fmap fix bs) + InfixMatch l a n b rhs bs -> InfixMatch l (fix a) n (fix b) (fix rhs) (fmap fix bs) where fix x = applyFixities fixs x -instance AppFixity (Rhs l) where +instance AppFixity Rhs where applyFixities fixs rhs = case rhs of UnGuardedRhs l e -> UnGuardedRhs l $ fix e GuardedRhss l grhss -> GuardedRhss l $ map fix grhss where fix x = applyFixities fixs x -instance AppFixity (GuardedRhs l) where +instance AppFixity GuardedRhs where applyFixities fixs (GuardedRhs l stmts e) = GuardedRhs l (map fix stmts) $ fix e where fix x = applyFixities fixs x -instance AppFixity (Pat l) where +instance AppFixity Pat where applyFixities fixs p = case p of PNeg l p -> PNeg l $ fix p PInfixApp l a op b -> PInfixApp l (fix a) op (fix b) @@ -228,11 +233,11 @@ _ -> p where fix x = applyFixities fixs x -instance AppFixity (PatField l) where +instance AppFixity PatField where applyFixities fixs (PFieldPat l n p) = PFieldPat l n $ applyFixities fixs p applyFixities _ pf = pf -instance AppFixity (RPat l) where +instance AppFixity RPat where applyFixities fixs rp = case rp of RPOp l rp op -> RPOp l (fix rp) op RPEither l a b -> RPEither l (fix a) (fix b) @@ -244,10 +249,10 @@ RPPat l p -> RPPat l $ fix p where fix x = applyFixities fixs x -instance AppFixity (PXAttr l) where +instance AppFixity PXAttr where applyFixities fixs (PXAttr l n p) = PXAttr l n $ applyFixities fixs p -instance AppFixity (Stmt l) where +instance AppFixity Stmt where applyFixities fixs stmt = case stmt of Generator l p e -> Generator l (fix p) (fix e) Qualifier l e -> Qualifier l $ fix e @@ -255,35 +260,35 @@ RecStmt l stmts -> RecStmt l $ map fix stmts where fix x = applyFixities fixs x -instance AppFixity (Binds l) where +instance AppFixity Binds where applyFixities fixs bs = case bs of BDecls l decls -> BDecls l $ appFixDecls fixs decls -- special behavior IPBinds l ips -> IPBinds l $ map fix ips where fix x = applyFixities fixs x -instance AppFixity (IPBind l) where +instance AppFixity IPBind where applyFixities fixs (IPBind l n e) = IPBind l n $ applyFixities fixs e -instance AppFixity (FieldUpdate l) where +instance AppFixity FieldUpdate where applyFixities fixs (FieldUpdate l n e) = FieldUpdate l n $ applyFixities fixs e applyFixities _ fup = fup -instance AppFixity (Alt l) where +instance AppFixity Alt where applyFixities fixs (Alt l p galts bs) = Alt l (fix p) (fix galts) (fmap fix bs) where fix x = applyFixities fixs x -instance AppFixity (GuardedAlts l) where +instance AppFixity GuardedAlts where applyFixities fixs galts = case galts of UnGuardedAlt l e -> UnGuardedAlt l $ fix e GuardedAlts l galts -> GuardedAlts l $ map fix galts where fix x = applyFixities fixs x -instance AppFixity (GuardedAlt l) where +instance AppFixity GuardedAlt where applyFixities fixs (GuardedAlt l stmts e) = GuardedAlt l (map fix stmts) (fix e) where fix x = applyFixities fixs x -instance AppFixity (QualStmt l) where +instance AppFixity QualStmt where applyFixities fixs qstmt = case qstmt of QualStmt l s -> QualStmt l $ fix s ThenTrans l e -> ThenTrans l $ fix e @@ -293,7 +298,7 @@ GroupByUsing l e1 e2 -> GroupByUsing l (fix e1) (fix e2) where fix x = applyFixities fixs x -instance AppFixity (Bracket l) where +instance AppFixity Bracket where applyFixities fixs br = case br of ExpBracket l e -> ExpBracket l $ fix e PatBracket l p -> PatBracket l $ fix p @@ -301,11 +306,11 @@ _ -> br where fix x = applyFixities fixs x -instance AppFixity (Splice l) where +instance AppFixity Splice where applyFixities fixs (ParenSplice l e) = ParenSplice l $ applyFixities fixs e applyFixities _ s = s -instance AppFixity (XAttr l) where +instance AppFixity XAttr where applyFixities fixs (XAttr l n e) = XAttr l n $ applyFixities fixs e
src/Language/Haskell/Exts/Annotated/Lexer.hs view
@@ -44,16 +44,16 @@ | ConSym String | QVarSym (String,String) | QConSym (String,String)- | IntTok Integer- | FloatTok Rational- | Character Char- | StringTok String- | IntTokHash Integer -- 1#- | WordTokHash Integer -- 1##- | FloatTokHash Rational -- 1.0#- | DoubleTokHash Rational -- 1.0##- | CharacterHash Char -- c#- | StringHash String -- "Hello world!"#+ | IntTok (Integer, String)+ | FloatTok (Rational, String)+ | Character (Char, String)+ | StringTok (String, String)+ | IntTokHash (Integer, String) -- 1#+ | WordTokHash (Integer, String) -- 1##+ | FloatTokHash (Rational, String) -- 1.0#+ | DoubleTokHash (Rational, String) -- 1.0##+ | CharacterHash (Char, String) -- c#+ | StringHash (String, String) -- "Hello world!"# -- Symbols @@ -346,7 +346,8 @@ loc <- getSrcLocL discard 2 (bol, c) <- lexNestedComment bol ""- pushComment $ MultiLine loc (reverse c)+ loc2 <- getSrcLocL+ pushComment $ Comment True (mkSrcSpan loc loc2) (reverse c) (bol, _) <- lexWhiteSpace bol return (bol, True) '-':'-':s | all (== '-') (takeWhile isHSymbol s) -> do@@ -358,7 +359,8 @@ case s' of [] -> fail "Unterminated end-of-line comment" _ -> do- lexNewline >> pushComment (SingleLine loc $ dashes ++ rest)+ loc2 <- getSrcLocL+ lexNewline >> pushComment (Comment False (mkSrcSpan loc loc2) $ dashes ++ rest) lexWhiteSpace True return (True, True) '\n':_ -> do@@ -528,12 +530,12 @@ '0':c:d:_ | toLower c == 'o' && isOctDigit d -> do discard 2- n <- lexOctal- return (IntTok n)+ (n, str) <- lexOctal+ return (IntTok (n, '0':c:str)) | toLower c == 'x' && isHexDigit d -> do discard 2- n <- lexHexadecimal- return (IntTok n)+ (n, str) <- lexHexadecimal+ return (IntTok (n, '0':c:str)) -- implicit parameters '?':c:_ | isLower c && ImplicitParams `elem` exts -> do@@ -783,36 +785,37 @@ frac <- lexWhile isDigit let num = parseInteger 10 (ds ++ frac) decimals = toInteger (length frac)- exponent <- do+ (exponent, estr) <- do rest2 <- getInput case rest2 of 'e':_ -> lexExponent 'E':_ -> lexExponent- _ -> return 0+ _ -> return (0,"") con <- lexHash FloatTok FloatTokHash (Right DoubleTokHash)- return $ con ((num%1) * 10^^(exponent - decimals))+ return $ con ((num%1) * 10^^(exponent - decimals), ds ++ '.':frac ++ estr) e:_ | toLower e == 'e' -> do- exponent <- lexExponent+ (exponent, estr) <- lexExponent con <- lexHash FloatTok FloatTokHash (Right DoubleTokHash)- return $ con ((parseInteger 10 ds%1) * 10^^exponent)- '#':'#':_ | MagicHash `elem` exts -> discard 2 >> return (WordTokHash (parseInteger 10 ds))- '#':_ | MagicHash `elem` exts -> discard 1 >> return (IntTokHash (parseInteger 10 ds))- _ -> return (IntTok (parseInteger 10 ds))+ return $ con ((parseInteger 10 ds%1) * 10^^exponent, ds ++ estr)+ '#':'#':_ | MagicHash `elem` exts -> discard 2 >> return (WordTokHash (parseInteger 10 ds, ds))+ '#':_ | MagicHash `elem` exts -> discard 1 >> return (IntTokHash (parseInteger 10 ds, ds))+ _ -> return (IntTok (parseInteger 10 ds, ds)) where- lexExponent :: Lex a Integer+ lexExponent :: Lex a (Integer, String) lexExponent = do+ (e:r) <- getInput discard 1 -- 'e' or 'E'- r <- getInput case r of '+':d:_ | isDigit d -> do discard 1- lexDecimal+ (n, str) <- lexDecimal+ return (n, e:'+':str) '-':d:_ | isDigit d -> do discard 1- n <- lexDecimal- return (negate n)- d:_ | isDigit d -> lexDecimal+ (n, str) <- lexDecimal+ return (negate n, e:'-':str)+ d:_ | isDigit d -> lexDecimal >>= \(n,str) -> return (n, e:str) _ -> fail "Float with missing exponent" lexHash :: (b -> Token) -> (b -> Token) -> Either String (b -> Token) -> Lex a (b -> Token)@@ -885,16 +888,16 @@ case s of '\'':_ | TemplateHaskell `elem` exts -> discard 1 >> return THTyQuote '\\':_ -> do- c <- lexEscape+ (c,raw) <- lexEscape matchQuote con <- lexHash Character CharacterHash (Left "Double hash not available for character literals")- return (con c)+ return (con (c, '\\':raw)) c:'\'':_ -> do discard 2 con <- lexHash Character CharacterHash (Left "Double hash not available for character literals")- return (con c)+ return (con (c, [c])) _ | TemplateHaskell `elem` exts -> return THVarQuote _ -> fail "Improper character constant or misplaced \'" @@ -902,50 +905,53 @@ lexString :: Lex a Token-lexString = loop ""+lexString = loop ("","") where- loop s = do+ loop (s,raw) = do r <- getInput exts <- getExtensionsL case r of '\\':'&':_ -> do discard 2- loop s+ loop (s, '&':'\\':raw) '\\':c:_ | isSpace c -> do discard 1- lexWhiteChars+ wcs <- lexWhiteChars matchChar '\\' "Illegal character in string gap"- loop s+ loop (s, '\\':reverse wcs ++ '\\':raw) | otherwise -> do- ce <- lexEscape- loop (ce:s)+ (ce, str) <- lexEscape+ loop (ce:s, reverse str ++ '\\':raw) '"':'#':_ | MagicHash `elem` exts -> do discard 2- return (StringHash (reverse s))+ return (StringHash (reverse s, reverse raw)) '"':_ -> do discard 1- return (StringTok (reverse s))+ return (StringTok (reverse s, reverse raw)) c:_ -> do discard 1- loop (c:s)+ loop (c:s, c:raw) [] -> fail "Improperly terminated string" - lexWhiteChars :: Lex a ()+ lexWhiteChars :: Lex a String lexWhiteChars = do s <- getInput case s of '\n':_ -> do lexNewline- lexWhiteChars+ wcs <- lexWhiteChars+ return $ '\n':wcs '\t':_ -> do lexTab- lexWhiteChars+ wcs <- lexWhiteChars+ return $ '\t':wcs c:_ | isSpace c -> do discard 1- lexWhiteChars- _ -> return ()+ wcs <- lexWhiteChars+ return $ c:wcs+ _ -> return "" -lexEscape :: Lex a Char+lexEscape :: Lex a (Char, String) lexEscape = do discard 1 r <- getInput@@ -953,68 +959,71 @@ -- Production charesc from section B.2 (Note: \& is handled by caller) - 'a':_ -> discard 1 >> return '\a'- 'b':_ -> discard 1 >> return '\b'- 'f':_ -> discard 1 >> return '\f'- 'n':_ -> discard 1 >> return '\n'- 'r':_ -> discard 1 >> return '\r'- 't':_ -> discard 1 >> return '\t'- 'v':_ -> discard 1 >> return '\v'- '\\':_ -> discard 1 >> return '\\'- '"':_ -> discard 1 >> return '\"'- '\'':_ -> discard 1 >> return '\''+ 'a':_ -> discard 1 >> return ('\a', "a")+ 'b':_ -> discard 1 >> return ('\b', "b")+ 'f':_ -> discard 1 >> return ('\f', "f")+ 'n':_ -> discard 1 >> return ('\n', "n")+ 'r':_ -> discard 1 >> return ('\r', "r")+ 't':_ -> discard 1 >> return ('\t', "t")+ 'v':_ -> discard 1 >> return ('\v', "v")+ '\\':_ -> discard 1 >> return ('\\', "\\")+ '"':_ -> discard 1 >> return ('\"', "\"")+ '\'':_ -> discard 1 >> return ('\'', "\'") -- Production ascii from section B.2 '^':c:_ -> discard 2 >> cntrl c- 'N':'U':'L':_ -> discard 3 >> return '\NUL'- 'S':'O':'H':_ -> discard 3 >> return '\SOH'- 'S':'T':'X':_ -> discard 3 >> return '\STX'- 'E':'T':'X':_ -> discard 3 >> return '\ETX'- 'E':'O':'T':_ -> discard 3 >> return '\EOT'- 'E':'N':'Q':_ -> discard 3 >> return '\ENQ'- 'A':'C':'K':_ -> discard 3 >> return '\ACK'- 'B':'E':'L':_ -> discard 3 >> return '\BEL'- 'B':'S':_ -> discard 2 >> return '\BS'- 'H':'T':_ -> discard 2 >> return '\HT'- 'L':'F':_ -> discard 2 >> return '\LF'- 'V':'T':_ -> discard 2 >> return '\VT'- 'F':'F':_ -> discard 2 >> return '\FF'- 'C':'R':_ -> discard 2 >> return '\CR'- 'S':'O':_ -> discard 2 >> return '\SO'- 'S':'I':_ -> discard 2 >> return '\SI'- 'D':'L':'E':_ -> discard 3 >> return '\DLE'- 'D':'C':'1':_ -> discard 3 >> return '\DC1'- 'D':'C':'2':_ -> discard 3 >> return '\DC2'- 'D':'C':'3':_ -> discard 3 >> return '\DC3'- 'D':'C':'4':_ -> discard 3 >> return '\DC4'- 'N':'A':'K':_ -> discard 3 >> return '\NAK'- 'S':'Y':'N':_ -> discard 3 >> return '\SYN'- 'E':'T':'B':_ -> discard 3 >> return '\ETB'- 'C':'A':'N':_ -> discard 3 >> return '\CAN'- 'E':'M':_ -> discard 2 >> return '\EM'- 'S':'U':'B':_ -> discard 3 >> return '\SUB'- 'E':'S':'C':_ -> discard 3 >> return '\ESC'- 'F':'S':_ -> discard 2 >> return '\FS'- 'G':'S':_ -> discard 2 >> return '\GS'- 'R':'S':_ -> discard 2 >> return '\RS'- 'U':'S':_ -> discard 2 >> return '\US'- 'S':'P':_ -> discard 2 >> return '\SP'- 'D':'E':'L':_ -> discard 3 >> return '\DEL'+ 'N':'U':'L':_ -> discard 3 >> return ('\NUL', "NUL")+ 'S':'O':'H':_ -> discard 3 >> return ('\SOH', "SOH")+ 'S':'T':'X':_ -> discard 3 >> return ('\STX', "STX")+ 'E':'T':'X':_ -> discard 3 >> return ('\ETX', "ETX")+ 'E':'O':'T':_ -> discard 3 >> return ('\EOT', "EOT")+ 'E':'N':'Q':_ -> discard 3 >> return ('\ENQ', "ENQ")+ 'A':'C':'K':_ -> discard 3 >> return ('\ACK', "ACK")+ 'B':'E':'L':_ -> discard 3 >> return ('\BEL', "BEL")+ 'B':'S':_ -> discard 2 >> return ('\BS', "BS")+ 'H':'T':_ -> discard 2 >> return ('\HT', "HT")+ 'L':'F':_ -> discard 2 >> return ('\LF', "LF")+ 'V':'T':_ -> discard 2 >> return ('\VT', "VT")+ 'F':'F':_ -> discard 2 >> return ('\FF', "FF")+ 'C':'R':_ -> discard 2 >> return ('\CR', "CR")+ 'S':'O':_ -> discard 2 >> return ('\SO', "SO")+ 'S':'I':_ -> discard 2 >> return ('\SI', "SI")+ 'D':'L':'E':_ -> discard 3 >> return ('\DLE', "DLE")+ 'D':'C':'1':_ -> discard 3 >> return ('\DC1', "DC1")+ 'D':'C':'2':_ -> discard 3 >> return ('\DC2', "DC2")+ 'D':'C':'3':_ -> discard 3 >> return ('\DC3', "DC3")+ 'D':'C':'4':_ -> discard 3 >> return ('\DC4', "DC4")+ 'N':'A':'K':_ -> discard 3 >> return ('\NAK', "NAK")+ 'S':'Y':'N':_ -> discard 3 >> return ('\SYN', "SYN")+ 'E':'T':'B':_ -> discard 3 >> return ('\ETB', "ETB")+ 'C':'A':'N':_ -> discard 3 >> return ('\CAN', "CAN")+ 'E':'M':_ -> discard 2 >> return ('\EM', "EM")+ 'S':'U':'B':_ -> discard 3 >> return ('\SUB', "SUB")+ 'E':'S':'C':_ -> discard 3 >> return ('\ESC', "ESC")+ 'F':'S':_ -> discard 2 >> return ('\FS', "FS")+ 'G':'S':_ -> discard 2 >> return ('\GS', "GS")+ 'R':'S':_ -> discard 2 >> return ('\RS', "RS")+ 'U':'S':_ -> discard 2 >> return ('\US', "US")+ 'S':'P':_ -> discard 2 >> return ('\SP', "SP")+ 'D':'E':'L':_ -> discard 3 >> return ('\DEL', "DEL") -- Escaped numbers 'o':c:_ | isOctDigit c -> do discard 1- n <- lexOctal- checkChar n+ (n, raw) <- lexOctal+ n <- checkChar n+ return (n, 'o':raw) 'x':c:_ | isHexDigit c -> do discard 1- n <- lexHexadecimal- checkChar n+ (n, raw) <- lexHexadecimal+ n <- checkChar n+ return (n, 'x':raw) c:_ | isDigit c -> do- n <- lexDecimal- checkChar n+ (n, raw) <- lexDecimal+ n <- checkChar n+ return (n, raw) _ -> fail "Illegal escape sequence" @@ -1024,27 +1033,27 @@ -- Production cntrl from section B.2 - cntrl :: Char -> Lex a Char- cntrl c | c >= '@' && c <= '_' = return (chr (ord c - ord '@'))+ cntrl :: Char -> Lex a (Char, String)+ cntrl c | c >= '@' && c <= '_' = return (chr (ord c - ord '@'), '^':c:[]) cntrl _ = fail "Illegal control character" -- assumes at least one octal digit-lexOctal :: Lex a Integer+lexOctal :: Lex a (Integer, String) lexOctal = do ds <- lexWhile isOctDigit- return (parseInteger 8 ds)+ return (parseInteger 8 ds, ds) -- assumes at least one hexadecimal digit-lexHexadecimal :: Lex a Integer+lexHexadecimal :: Lex a (Integer, String) lexHexadecimal = do ds <- lexWhile isHexDigit- return (parseInteger 16 ds)+ return (parseInteger 16 ds, ds) -- assumes at least one decimal digit-lexDecimal :: Lex a Integer+lexDecimal :: Lex a (Integer, String) lexDecimal = do ds <- lexWhile isDigit- return (parseInteger 10 ds)+ return (parseInteger 10 ds, ds) -- Stolen from Hugs's Prelude parseInteger :: Integer -> String -> Integer
src/Language/Haskell/Exts/Annotated/ParseUtils.hs view
@@ -63,8 +63,8 @@ , p_unboxed_singleton_con -- PExp ) where -import Language.Haskell.Exts.Annotated.Syntax hiding ( Type(..), Asst(..), Exp(..), FieldUpdate(..), XAttr(..) )-import qualified Language.Haskell.Exts.Annotated.Syntax as S ( Type(..), Asst(..), Exp(..), FieldUpdate(..), XAttr(..) )+import Language.Haskell.Exts.Annotated.Syntax hiding ( Type(..), Asst(..), Exp(..), FieldUpdate(..), XAttr(..), Context(..) )+import qualified Language.Haskell.Exts.Annotated.Syntax as S ( Type(..), Asst(..), Exp(..), FieldUpdate(..), XAttr(..), Context(..) ) import Language.Haskell.Exts.Annotated.SrcLoc import Language.Haskell.Exts.Annotated.ParseMonad import Language.Haskell.Exts.Annotated.Pretty@@ -116,15 +116,15 @@ -- parameters for later. checkPContext :: PType L -> P (PContext L) checkPContext (TyTuple l Boxed ts) =- mapM checkAssertion ts >>= return . PContext l-checkPContext (TyCon _ (Special _ (UnitCon l))) =- return $ PContext l []-checkPContext (TyParen _ t) = do- c <- checkAssertion t- return $ PContext (ann c) [c]+ mapM checkAssertion ts >>= return . CxTuple l+checkPContext (TyCon l (Special _ (UnitCon _))) =+ return $ CxEmpty l+checkPContext (TyParen l t) = do+ c <- checkPContext t+ return $ CxParen l c checkPContext t = do c <- checkAssertion t- return $ PContext (ann c) [c]+ return $ CxSingle (ann c) c ------------------------------------------------------------------------------------------------------------------- WORKING HERE @@ -135,21 +135,22 @@ checkAssertion (TyPred _ p@(IParam _ _ _)) = return p -- We cannot even get here unless TypeFamilies is enabled. checkAssertion (TyPred _ p@(EqualP _ _ _)) = return p-checkAssertion t = checkAssertion' [] t+checkAssertion t = checkAssertion' id [] t where -- class assertions must have at least one argument- checkAssertion' ts@(_:xs) (TyCon l c) = do+ checkAssertion' fl ts@(_:xs) (TyCon l c) = do when (not $ null xs) $ checkEnabled MultiParamTypeClasses when (isSymbol c) $ checkEnabled TypeOperators- return $ ClassA l c ts- checkAssertion' ts (TyApp _ a t) = do+ return $ ClassA (fl l) c ts+ checkAssertion' fl ts (TyApp l a t) = do -- no check on t at this stage- checkAssertion' (t:ts) a- checkAssertion' ts (TyInfix _ a op b) =+ checkAssertion' (const (fl l)) (t:ts) a+ checkAssertion' fl ts (TyInfix l a op b) = do -- infix operators require TypeOperators- checkEnabled TypeOperators >> checkAssertion' (a:b:ts) (TyCon (ann op) op)- checkAssertion' ts (TyParen _ t) =- checkAssertion' ts t- checkAssertion' _ _ = fail "Illegal class assertion"+ checkEnabled TypeOperators+ return $ InfixA (fl l) a op b+ checkAssertion' fl ts (TyParen l t) =+ checkAssertion' (const (fl l)) ts t+ checkAssertion' _ _ _ = fail "Illegal class assertion" isSymbol :: QName L -> Bool isSymbol (UnQual _ (Symbol _ _)) = True@@ -160,16 +161,24 @@ -- Checks simple contexts for class and instance -- headers. If FlexibleContexts is enabled then -- anything goes, otherwise only tyvars are allowed.-checkSContext :: Maybe (PContext L) -> P (Maybe (Context L))-checkSContext (Just (PContext l cs)) = liftM Just $ mapM (checkAsst True) cs >>= return . Context l+checkSContext :: Maybe (PContext L) -> P (Maybe (S.Context L))+checkSContext (Just ctxt) = case ctxt of+ CxEmpty l -> return $ Just $ S.CxEmpty l+ CxSingle l a -> checkAsst True a >>= return . Just . S.CxSingle l+ CxTuple l as -> mapM (checkAsst True) as >>= return . Just . S.CxTuple l+ CxParen l cx -> checkSContext (Just cx) >>= return . fmap (S.CxParen l) checkSContext _ = return Nothing -- Checks ordinary contexts for sigtypes and data type -- declarations. If FlexibleContexts is enabled then -- anything goes, otherwise only tyvars OR tyvars -- applied to types are allowed.-checkContext :: Maybe (PContext L) -> P (Maybe (Context L))-checkContext (Just (PContext l cs)) = liftM Just $ mapM (checkAsst False) cs >>= return . Context l+checkContext :: Maybe (PContext L) -> P (Maybe (S.Context L))+checkContext (Just ctxt) = case ctxt of+ CxEmpty l -> return $ Just $ S.CxEmpty l+ CxSingle l a -> checkAsst False a >>= return . Just . S.CxSingle l+ CxTuple l as -> mapM (checkAsst False) as >>= return . Just . S.CxTuple l+ CxParen l cx -> checkSContext (Just cx) >>= return . fmap (S.CxParen l) checkContext _ = return Nothing checkAsst :: Bool -> PAsst L -> P (S.Asst L)@@ -206,34 +215,37 @@ -- Checking Headers -checkDataHeader :: PType L -> P (Maybe (Context L), Name L, [TyVarBind L])+checkDataHeader :: PType L -> P (Maybe (S.Context L), DeclHead L) checkDataHeader (TyForall _ Nothing cs t) = do- (c,ts) <- checkSimple "data/newtype" t []+ dh <- checkSimple "data/newtype" t [] cs <- checkContext cs- return (cs,c,ts)+ return (cs,dh) checkDataHeader t = do- (c,ts) <- checkSimple "data/newtype" t []- return (Nothing,c,ts)+ dh <- checkSimple "data/newtype" t []+ return (Nothing,dh) -checkClassHeader :: PType L -> P (Maybe (Context L), Name L, [TyVarBind L])+checkClassHeader :: PType L -> P (Maybe (S.Context L), DeclHead L) checkClassHeader (TyForall _ Nothing cs t) = do- (c,ts) <- checkSimple "class" t []+ dh <- checkSimple "class" t [] cs <- checkSContext cs- return (cs,c,ts)+ return (cs,dh) checkClassHeader t = do- (c,ts) <- checkSimple "class" t []- return (Nothing,c,ts)+ dh <- checkSimple "class" t []+ return (Nothing,dh) -checkSimple :: String -> PType L -> [TyVarBind L] -> P (Name L, [TyVarBind L])+checkSimple :: String -> PType L -> [TyVarBind L] -> P (DeclHead L) checkSimple kw (TyApp _ l t) xs | isTyVarBind t = checkSimple kw l (toTyVarBind t : xs)-checkSimple _ (TyInfix _ t1 (UnQual _ t) t2) xs+checkSimple _ (TyInfix l t1 (UnQual _ t) t2) [] | isTyVarBind t1 && isTyVarBind t2 =- checkEnabled TypeOperators >> return (t, toTyVarBind t1 : toTyVarBind t2 : xs)-checkSimple _kw (TyCon _ (UnQual _ t)) xs = do+ checkEnabled TypeOperators >> return (DHInfix l (toTyVarBind t1) t (toTyVarBind t2))+checkSimple _kw (TyCon l (UnQual _ t)) xs = do case t of Symbol _ _ -> checkEnabled TypeOperators _ -> return ()- return (t,xs)+ return (DHead l t xs)+checkSimple kw (TyParen l t) xs = do+ dh <- checkSimple kw t xs+ return (DHParen l dh) checkSimple kw _ _ = fail ("Illegal " ++ kw ++ " declaration") isTyVarBind :: PType L -> Bool@@ -245,30 +257,30 @@ toTyVarBind (TyVar l n) = UnkindedVar l n toTyVarBind (TyKind l (TyVar _ n) k) = KindedVar l n k -checkInstHeader :: PType L -> P (Maybe (Context L), QName L, [S.Type L])+checkInstHeader :: PType L -> P (Maybe (S.Context L), InstHead L) checkInstHeader (TyForall _ Nothing cs t) = do- (Deriving l c ts) <- checkInsts t []+ ih <- checkInsts t [] cs <- checkSContext cs- return (cs, c, ts)+ return (cs, ih) checkInstHeader t = do- (Deriving _ c ts) <- checkInsts t []- return (Nothing, c, ts)+ ih <- checkInsts t []+ return (Nothing, ih) -checkInsts :: PType L -> [PType L] -> P (Deriving L)+checkInsts :: PType L -> [PType L] -> P (InstHead L) checkInsts (TyApp _ l t) ts = checkInsts l (t:ts) checkInsts (TyCon l c) ts = do when (isSymbol c) $ checkEnabled TypeOperators ts <- checkTypes ts- return $ Deriving l c ts+ return $ IHead l c ts checkInsts (TyInfix l a op b) [] = do checkEnabled TypeOperators- ts <- checkTypes [a,b]- return $ Deriving l op ts-checkInsts (TyParen _ t) [] = checkInsts t []+ [ta,tb] <- checkTypes [a,b]+ return $ IHInfix l ta op tb+checkInsts (TyParen l t) [] = checkInsts t [] >>= return . IHParen l checkInsts _ _ = fail "Illegal instance declaration" -checkDeriving :: [PType L] -> P [Deriving L]+checkDeriving :: [PType L] -> P [InstHead L] checkDeriving = mapM (flip checkInsts []) -----------------------------------------------------------------------------@@ -301,9 +313,12 @@ l <- checkPat l [] r <- checkPat r [] return (PInfixApp loc l c r)- QVarOp _ (UnQual _ (Symbol _ "+")) -> do+ QVarOp ppos (UnQual _ (Symbol _ "+")) -> do case (l,r) of- (Var _ (UnQual _ n@(Ident _ _)), Lit _ (Int _ k)) -> return (PNPlusK loc n k)+ (Var _ (UnQual _ n@(Ident _ _)), Lit _ (Int kpos k _)) -> do+ let pp = srcInfoSpan ppos+ kp = srcInfoSpan kpos+ return (PNPlusK (loc <** [pp,kp]) n k) _ -> patFail "" _ -> patFail "" TupleSection l mes ->@@ -652,29 +667,31 @@ checkValDef l lhs optsig rhs whereBinds = do mlhs <- isFunLhs lhs [] case mlhs of- Just (f,es) -> do+ Just (f,es,b) -> do ps <- mapM checkPattern es case optsig of -- only pattern bindings can have signatures- Nothing -> return (FunBind l [Match l f ps optsig rhs whereBinds])+ Nothing -> return (FunBind l $+ if b then [Match l f ps rhs whereBinds]+ else let [a,b] = ps in [InfixMatch l a f b rhs whereBinds]) Just _ -> fail "Cannot give an explicit type signature to a function binding" Nothing -> do lhs <- checkPattern lhs return (PatBind l lhs optsig rhs whereBinds) --- A variable binding is parsed as an PatBind.+-- A variable binding is parsed as a PatBind. -isFunLhs :: PExp L -> [PExp L] -> P (Maybe (Name L, [PExp L]))+isFunLhs :: PExp L -> [PExp L] -> P (Maybe (Name L, [PExp L], Bool)) isFunLhs (InfixApp _ l (QVarOp loc (UnQual _ op)) r) es | op =~= (Symbol () "!") = do exts <- getExtensions if BangPatterns `elem` exts then let (b,bs) = splitBang r [] in isFunLhs l (BangPat loc b : bs ++ es)- else return $ Just (op, l:r:es) -- It's actually a definition of the operator !- | otherwise = return $ Just (op, l:r:es)-isFunLhs (App _ (Var _ (UnQual _ f)) e) es = return $ Just (f, e:es)+ else return $ Just (op, l:r:es, False) -- It's actually a definition of the operator !+ | otherwise = return $ Just (op, l:r:es, False)+isFunLhs (App _ (Var _ (UnQual _ f)) e) es = return $ Just (f, e:es, True) isFunLhs (App _ f e) es = isFunLhs f (e:es)-isFunLhs (Var _ (UnQual _ f)) es@(_:_) = return $ Just (f, es)+isFunLhs (Var _ (UnQual _ f)) es@(_:_) = return $ Just (f, es, True) isFunLhs (Paren _ f) es@(_:_) = isFunLhs f es isFunLhs _ _ = return Nothing @@ -752,34 +769,34 @@ checkRevDecls = mergeFunBinds [] where mergeFunBinds revDs [] = return revDs- mergeFunBinds revDs (FunBind l ms1@(Match _ name ps _ _ _:_):ds1) =- mergeMatches ms1 ds1+ mergeFunBinds revDs (FunBind l ms1@(Match _ name ps _ _:_):ds1) =+ mergeMatches ms1 ds1 l where arity = length ps- mergeMatches ms' (FunBind _ ms@(Match loc name' ps' _ _ _:_):ds)+ mergeMatches ms' (FunBind _ ms@(Match loc name' ps' _ _:_):ds) l | name' =~= name = if length ps' /= arity then fail ("arity mismatch for '" ++ prettyPrint name ++ "'")- -- `atSrcLoc` loc- else mergeMatches (ms++ms') ds- mergeMatches ms' ds = mergeFunBinds (FunBind l ms':revDs) ds+ -- `atSrcLoc` loc+ else mergeMatches (ms++ms') ds (loc <++> l)+ mergeMatches ms' ds l = mergeFunBinds (FunBind l ms':revDs) ds mergeFunBinds revDs (d:ds) = mergeFunBinds (d:revDs) ds checkRevClsDecls :: [ClassDecl L] -> P [ClassDecl L] checkRevClsDecls = mergeClsFunBinds [] where mergeClsFunBinds revDs [] = return revDs- mergeClsFunBinds revDs (ClsDecl l (FunBind _ ms1@(Match _ name ps _ _ _:_)):ds1) =- mergeMatches ms1 ds1+ mergeClsFunBinds revDs (ClsDecl l (FunBind _ ms1@(Match _ name ps _ _:_)):ds1) =+ mergeMatches ms1 ds1 l where arity = length ps- mergeMatches ms' (ClsDecl _ (FunBind _ ms@(Match loc name' ps' _ _ _:_)):ds)+ mergeMatches ms' (ClsDecl _ (FunBind _ ms@(Match loc name' ps' _ _:_)):ds) l | name' =~= name = if length ps' /= arity then fail ("arity mismatch for '" ++ prettyPrint name ++ "'")- -- `atSrcLoc` loc- else mergeMatches (ms++ms') ds- mergeMatches ms' ds = mergeClsFunBinds (ClsDecl l (FunBind l ms'):revDs) ds+ -- `atSrcLoc` loc+ else mergeMatches (ms++ms') ds (loc <++> l)+ mergeMatches ms' ds l = mergeClsFunBinds (ClsDecl l (FunBind l ms'):revDs) ds mergeClsFunBinds revDs (d:ds) = mergeClsFunBinds (d:revDs) ds checkRevInstDecls :: [InstDecl L] -> P [InstDecl L]@@ -787,17 +804,17 @@ where mergeInstFunBinds :: [InstDecl L] -> [InstDecl L] -> P [InstDecl L] mergeInstFunBinds revDs [] = return revDs- mergeInstFunBinds revDs (InsDecl l (FunBind _ ms1@(Match _ name ps _ _ _:_)):ds1) =- mergeMatches ms1 ds1+ mergeInstFunBinds revDs (InsDecl l (FunBind _ ms1@(Match _ name ps _ _:_)):ds1) =+ mergeMatches ms1 ds1 l where arity = length ps- mergeMatches ms' (InsDecl _ (FunBind _ ms@(Match loc name' ps' _ _ _:_)):ds)+ mergeMatches ms' (InsDecl _ (FunBind _ ms@(Match loc name' ps' _ _:_)):ds) l | name' =~= name = if length ps' /= arity then fail ("arity mismatch for '" ++ prettyPrint name ++ "'")- -- `atSrcLoc` loc- else mergeMatches (ms++ms') ds- mergeMatches ms' ds = mergeInstFunBinds (InsDecl l (FunBind l ms'):revDs) ds+ -- `atSrcLoc` loc+ else mergeMatches (ms++ms') ds (loc <++> l)+ mergeMatches ms' ds l = mergeInstFunBinds (InsDecl l (FunBind l ms'):revDs) ds mergeInstFunBinds revDs (d:ds) = mergeInstFunBinds (d:revDs) ds ----------------------------------------------------------------@@ -809,7 +826,7 @@ checkDataOrNew (DataType _) _ = return () checkDataOrNew _ _ = fail "newtype declaration must have exactly one constructor." -checkSimpleType :: PType L -> P (Name L, [TyVarBind L])+checkSimpleType :: PType L -> P (DeclHead L) checkSimpleType t = checkSimple "test" t [] ---------------------------------------@@ -1051,21 +1068,36 @@ EnumFromThenTo l ef eth eto -> l ParComp l e qsss -> l ExpTypeSig l e t -> l+ AsPat l n e -> l+ WildCard l -> l+ IrrPat l e -> l+ PostOp l e op -> l+ PreOp l op e -> l+ ViewPat l e1 e2 -> l+ SeqRP l es -> l+ GuardRP l e ss -> l+ EitherRP l e1 e2 -> l+ CAsRP l n e -> l+ VarQuote l qn -> l TypQuote l qn -> l BracketExp l br -> l SpliceExp l sp -> l QuasiQuote l sn se -> l - XTag l xn xas me es -> l- XETag l xn xas me -> l- XPcdata l s -> l- XExpTag l e -> l+ XTag l xn xas me es -> l+ XETag l xn xas me -> l+ XPcdata l s -> l+ XExpTag l e -> l+ XRPats l es -> l CorePragma l s e -> l SCCPragma l s e -> l GenPragma l s n12 n34 e -> l + ExplTypeArg l qn t -> l+ BangPat l e -> l+ Proc l p e -> l LeftArrApp l e1 e2 -> l RightArrApp l e1 e2 -> l@@ -1097,6 +1129,20 @@ EnumFromThenTo l ef eth eto -> EnumFromThenTo (f l) ef eth eto ParComp l e qsss -> ParComp (f l) e qsss ExpTypeSig l e t -> ExpTypeSig (f l) e t++ AsPat l n e -> AsPat (f l) n e+ WildCard l -> WildCard (f l)+ IrrPat l e -> IrrPat (f l) e+ PostOp l e op -> PostOp (f l) e op+ PreOp l op e -> PreOp (f l) op e+ ViewPat l e1 e2 -> ViewPat (f l) e1 e2+ SeqRP l es -> SeqRP (f l) es+ GuardRP l e ss -> GuardRP (f l) e ss+ EitherRP l e1 e2 -> EitherRP (f l) e1 e2+ CAsRP l n e -> CAsRP (f l) n e+ ExplTypeArg l n t -> ExplTypeArg (f l) n t+ BangPat l e -> BangPat (f l) e+ VarQuote l qn -> VarQuote (f l) qn TypQuote l qn -> TypQuote (f l) qn BracketExp l br -> BracketExp (f l) br@@ -1140,15 +1186,28 @@ p_unboxed_singleton_con :: l -> PExp l p_unboxed_singleton_con l = Con l (unboxed_singleton_con_name l) -data PContext l = PContext l [PAsst l]+data PContext l+ = CxSingle l (PAsst l)+ | CxTuple l [PAsst l]+ | CxParen l (PContext l)+ | CxEmpty l deriving (Eq, Show) instance Functor PContext where- fmap f (PContext l assts) = PContext (f l) (map (fmap f) assts)+ fmap f (CxSingle l asst) = CxSingle (f l) (fmap f asst)+ fmap f (CxTuple l assts) = CxTuple (f l) (map (fmap f) assts)+ fmap f (CxParen l ctxt) = CxParen (f l) (fmap f ctxt)+ fmap f (CxEmpty l) = CxEmpty (f l) instance Annotated PContext where- ann (PContext l _) = l- amap f (PContext l assts) = PContext (f l) assts+ ann (CxSingle l asst ) = l+ ann (CxTuple l assts) = l+ ann (CxParen l ctxt ) = l+ ann (CxEmpty l) = l+ amap f (CxSingle l asst ) = CxSingle (f l) asst+ amap f (CxTuple l assts) = CxTuple (f l) assts+ amap f (CxParen l ctxt ) = CxParen (f l) ctxt+ amap f (CxEmpty l) = CxEmpty (f l) data PType l = TyForall l
src/Language/Haskell/Exts/Annotated/Parser.ly view
@@ -303,7 +303,7 @@ TODO: the various pragma starts with content don't record where that content is located. > toppragma :: { OptionPragma L }-> : '{-# LANGUAGE' conids optsemis '#-}' { LanguagePragma ($1 <^^> $4 <** ($1:reverse (snd $2) ++ reverse $3 ++ [$4])) (fst $2) }+> : '{-# LANGUAGE' conids optsemis '#-}' { LanguagePragma ($1 <^^> $4 <** ($1:snd $2 ++ reverse $3 ++ [$4])) (fst $2) } > | '{-# INCLUDE' optsemis '#-}' { let Loc l (INCLUDE s) = $1 in IncludePragma (l <^^> $3 <** (l:reverse $2 ++ [$3])) s } > | '{-# OPTIONS' optsemis '#-}' { let Loc l (OPTIONS (mc, s)) = $1 > in OptionsPragma (l <^^> $3 <** (l:reverse $2 ++ [$3])) (readTool mc) s }@@ -319,21 +319,21 @@ > module :: { [OptionPragma L] -> [S] -> L -> Module L } > : optmodulehead body-> { let (is,ds,ss1,b,inf) = $2-> in \os ss l -> Module (l <++> inf <** (ss ++ ss1) <?? b) $1 os is ds }+> { let (is,ds,ss1,inf) = $2+> in \os ss l -> Module (l <++> inf <** (ss ++ ss1)) $1 os is ds } > optmodulehead :: { Maybe (ModuleHead L) } > : 'module' modid maybemodwarning maybeexports 'where' { Just $ ModuleHead ($1 <^^> $5 <** [$1,$5]) $2 $3 $4 } > | {- empty -} { Nothing } > maybemodwarning :: { Maybe (WarningText L) }-> : '{-# DEPRECATED' STRING '#-}' { let Loc l (StringTok s) = $2 in Just $ DeprText ($1 <^^> $3 <** [l,$3]) s }-> | '{-# WARNING' STRING '#-}' { let Loc l (StringTok s) = $2 in Just $ WarnText ($1 <^^> $3 <** [l,$3]) s }+> : '{-# DEPRECATED' STRING '#-}' { let Loc l (StringTok (s,_)) = $2 in Just $ DeprText ($1 <^^> $3 <** [$1,l,$3]) s }+> | '{-# WARNING' STRING '#-}' { let Loc l (StringTok (s,_)) = $2 in Just $ WarnText ($1 <^^> $3 <** [$1,l,$3]) s } > | {- empty -} { Nothing } -> body :: { ([ImportDecl L],[Decl L],[S],Bool,L) }-> : '{' bodyaux '}' { let (is,ds,ss) = $2 in (is,ds,$1:ss ++ [$3], True, $1 <^^> $3) }-> | open bodyaux close { let (is,ds,ss) = $2 in (is,ds,$1:ss ++ [$3], False, $1 <^^> $3) }+> body :: { ([ImportDecl L],[Decl L],[S],L) }+> : '{' bodyaux '}' { let (is,ds,ss) = $2 in (is,ds,$1:ss ++ [$3], $1 <^^> $3) }+> | open bodyaux close { let (is,ds,ss) = $2 in (is,ds,$1:ss ++ [$3], $1 <^^> $3) } > bodyaux :: { ([ImportDecl L],[Decl L],[S]) } > : optsemis impdecls semis topdecls { (reverse (fst $2), fst $4, reverse $1 ++ snd $2 ++ reverse $3 ++ snd $4) }@@ -399,7 +399,7 @@ Requires the PackageImports extension enabled. > maybepkg :: { (Maybe String,[S]) } > : STRING {% do { checkEnabled PackageImports ;-> let { Loc l (StringTok s) = $1 } ;+> let { Loc l (StringTok (s,_)) = $1 } ; > return $ (Just s,[l]) } } > | {- empty -} { (Nothing,[]) } @@ -414,7 +414,7 @@ > impspec :: { ImportSpecList L } > : opthiding '(' importlist optcomma ')' { let {(b,ml,s) = $1 ;-> l = (ml <?+> ($2 <^^> $5)) <** (s ++ $2:snd $3 ++ $4 ++ [$5])}+> l = (ml <?+> ($2 <^^> $5)) <** (s ++ $2:reverse (snd $3) ++ $4 ++ [$5])} > in ImportSpecList l b (reverse (fst $3)) } > | opthiding '(' optcomma ')' { let {(b,ml,s) = $1 ; l = (ml <?+> ($2 <^^> $4)) <** (s ++ $2:$3 ++ [$4])} > in ImportSpecList l b [] }@@ -451,7 +451,7 @@ > prec :: { (Maybe Int, [S]) } > : {- empty -} { (Nothing, []) }-> | INT {% let Loc l (IntTok i) = $1 in checkPrec i >>= \i -> return (Just i, [l]) }+> | INT {% let Loc l (IntTok (i,_)) = $1 in checkPrec i >>= \i -> return (Just i, [l]) } > infix :: { Assoc L } > : 'infix' { AssocNone $ nIS $1 }@@ -477,16 +477,16 @@ > topdecl :: { Decl L } > : 'type' dtype '=' truectype-> {% do { (c,ts) <- checkSimpleType $2;+> {% do { dh <- checkSimpleType $2; > let {l = nIS $1 <++> ann $4 <** [$1,$3]};-> return (TypeDecl l c ts $4) } }+> return (TypeDecl l dh $4) } } Requires the TypeFamilies extension enabled, but the lexer will handle that through the 'family' keyword. > | 'type' 'family' type optkind-> {% do { (c,ts) <- checkSimpleType $3;+> {% do { dh <- checkSimpleType $3; > let {l = nIS $1 <++> ann $3 <+?> (fmap ann) (fst $4) <** ($1:$2:snd $4)};-> return (TypeFamDecl l c ts (fst $4)) } }+> return (TypeFamDecl l dh (fst $4)) } } Here there is no special keyword so we must do the check. > | 'type' 'instance' truedtype '=' truectype@@ -495,59 +495,59 @@ > let {l = nIS $1 <++> ann $5 <** [$1,$2,$4]}; > return (TypeInsDecl l $3 $5) } } > | data_or_newtype ctype constrs0 deriving-> {% do { (cs,c,t) <- checkDataHeader $2;-> let { (qds,ss1,minf1) = $3; (mders,ss2,minf2) = $4 ;-> l = $1 <> $2 <+?> minf1 <+?> minf2 <** (ss1 ++ ss2)};+> {% do { (cs,dh) <- checkDataHeader $2;+> let { (qds,ss,minf) = $3;+> l = $1 <> $2 <+?> minf <+?> fmap ann $4 <** ss}; > checkDataOrNew $1 qds;-> return (DataDecl l $1 cs c t (reverse qds) mders) } }+> return (DataDecl l $1 cs dh (reverse qds) $4) } } Requires the GADTs extension enabled, handled in gadtlist. > | data_or_newtype ctype optkind 'where' gadtlist deriving-> {% do { (cs,c,t) <- checkDataHeader $2;-> let { (gs,ss1,inf,b) = $5; (ds,ss2,minf) = $6 ;-> l = ann $1 <++> inf <+?> minf <** (snd $3 ++ ($4:ss1 ++ ss2)) <?? b};+> {% do { (cs,dh) <- checkDataHeader $2;+> let { (gs,ss,inf) = $5;+> l = ann $1 <++> inf <+?> fmap ann $6 <** (snd $3 ++ $4:ss)}; > checkDataOrNew $1 gs;-> return (GDataDecl l $1 cs c t (fst $3) (reverse gs) ds) } }+> return (GDataDecl l $1 cs dh (fst $3) (reverse gs) $6) } } Same as above, lexer will handle it through the 'family' keyword. > | 'data' 'family' ctype optkind-> {% do { (cs,c,t) <- checkDataHeader $3;+> {% do { (cs,dh) <- checkDataHeader $3; > let {l = nIS $1 <++> ann $3 <+?> (fmap ann) (fst $4) <** ($1:$2:snd $4)};-> return (DataFamDecl l cs c t (fst $4)) } }+> return (DataFamDecl l cs dh (fst $4)) } } Here we must check for TypeFamilies. > | data_or_newtype 'instance' truectype constrs0 deriving > {% do { -- (cs,c,t) <- checkDataHeader $4; > checkEnabled TypeFamilies ;-> let { (qds,ss1,minf1) = $4 ; (mders,ss2,minf2) = $5 ;-> l = $1 <> $3 <+?> minf1 <+?> minf2 <** ($2:ss1 ++ ss2) };+> let { (qds,ss,minf) = $4 ;+> l = $1 <> $3 <+?> minf <+?> fmap ann $5 <** $2:ss }; > checkDataOrNew $1 qds;-> return (DataInsDecl l $1 $3 (reverse qds) mders) } }+> return (DataInsDecl l $1 $3 (reverse qds) $5) } } This style requires both TypeFamilies and GADTs, the latter is handled in gadtlist. > | data_or_newtype 'instance' truectype optkind 'where' gadtlist deriving > {% do { -- (cs,c,t) <- checkDataHeader $4; > checkEnabled TypeFamilies ;-> let {(gs,ss1,inf,b) = $6; (ds,ss2,minf) = $7 ;-> l = ann $1 <++> inf <+?> minf <** ($2:snd $4 ++ ($5:ss1 ++ ss2)) <?? b};+> let {(gs,ss,inf) = $6;+> l = ann $1 <++> inf <+?> fmap ann $7 <** ($2:snd $4 ++ $5:ss)}; > checkDataOrNew $1 gs;-> return (GDataInsDecl l $1 $3 (fst $4) (reverse gs) ds) } }+> return (GDataInsDecl l $1 $3 (fst $4) (reverse gs) $7) } } > | 'class' ctype fds optcbody-> {% do { (cs,c,vs) <- checkClassHeader $2;-> let {(fds,ss1,minf1) = $3;(mcs,ss2,minf2,b) = $4} ;-> let { l = nIS $1 <++> ann $2 <+?> minf1 <+?> minf2 <** ($1:ss1 ++ ss2) <?? b} ;-> return (ClassDecl l cs c vs fds mcs) } }+> {% do { (cs,dh) <- checkClassHeader $2;+> let {(fds,ss1,minf1) = $3;(mcs,ss2,minf2) = $4} ;+> let { l = nIS $1 <++> ann $2 <+?> minf1 <+?> minf2 <** ($1:ss1 ++ ss2)} ;+> return (ClassDecl l cs dh fds mcs) } } > | 'instance' ctype optvaldefs-> {% do { (cs,c,ts) <- checkInstHeader $2;-> let {(mis,ss,minf,b) = $3};-> return (InstDecl (nIS $1 <++> ann $2 <+?> minf <** ($1:ss) <?? b) cs c ts mis) } }+> {% do { (cs,ih) <- checkInstHeader $2;+> let {(mis,ss,minf) = $3};+> return (InstDecl (nIS $1 <++> ann $2 <+?> minf <** ($1:ss)) cs ih mis) } } Requires the StandaloneDeriving extension enabled. > | 'deriving' 'instance' ctype > {% do { checkEnabled StandaloneDeriving ;-> (cs, c, ts) <- checkInstHeader $3;+> (cs, ih) <- checkInstHeader $3; > let {l = nIS $1 <++> ann $3 <** [$1,$2]};-> return (DerivDecl l cs c ts) } }+> return (DerivDecl l cs ih) } } > | 'default' '(' typelist ')' > { DefaultDecl ($1 <^^> $4 <** ($1:$2 : snd $3 ++ [$4])) (fst $3) } @@ -591,8 +591,8 @@ > | valdef { $1 } > decllist :: { Binds L }-> : '{' decls '}' { BDecls ($1 <^^> $3 <** ($1:snd $2++[$3]) <?? True ) (fst $2) }-> | open decls close { BDecls ($1 <^^> $3 <** ($1:snd $2++[$3]) <?? False) (fst $2) }+> : '{' decls '}' { BDecls ($1 <^^> $3 <** ($1:snd $2++[$3])) (fst $2) }+> | open decls close { BDecls ($1 <^^> $3 <** ($1:snd $2++[$3])) (fst $2) } > signdecl :: { Decl L } > : exp0b '::' truectype {% do { v <- checkSigVar $1;@@ -605,9 +605,9 @@ > | '{-# SPECIALISE_INLINE' activation qvar '::' sigtypes '#-}' > { let Loc l (SPECIALISE_INLINE s) = $1 > in SpecInlineSig (l <^^> $6 <** (l:$4:snd $5++[$6])) s $2 $3 (fst $5) }-> | '{-# SPECIALISE' 'instance' ctype '#-}' {% do { (cs,c,ts) <- checkInstHeader $3;+> | '{-# SPECIALISE' 'instance' ctype '#-}' {% do { (cs,ih) <- checkInstHeader $3; > let {l = $1 <^^> $4 <** [$1,$2,$4]};-> return $ InstSig l cs c ts } }+> return $ InstSig l cs ih } } > sigtypes :: { ([Type L],[S]) } > : sigtype { ([$1],[]) }@@ -622,8 +622,8 @@ > binds :: { Binds L } > : decllist { $1 }-> | '{' ipbinds '}' { IPBinds ($1 <^^> $3 <** snd $2 <?? True ) (fst $2) }-> | open ipbinds close { IPBinds ($1 <^^> $3 <** snd $2 <?? False) (fst $2) }+> | '{' ipbinds '}' { IPBinds ($1 <^^> $3 <** snd $2) (fst $2) }+> | open ipbinds close { IPBinds ($1 <^^> $3 <** snd $2) (fst $2) } ATTENTION: Dirty Hackery Ahead! If the second alternative of vars is var instead of qvar, we get another shift/reduce-conflict. Consider the@@ -657,9 +657,9 @@ > | 'threadsafe' { Just $ PlaySafe (nIS $1) True } > | {- empty -} { Nothing } -> fspec :: { (String, Name L, Type L, [S]) }-> : STRING var_no_safety '::' truedtype { let Loc l (StringTok s) = $1 in (s, $2, $4, [l,$3]) }-> | var_no_safety '::' truedtype { ("", $1, $3, [$2]) }+> fspec :: { (Maybe String, Name L, Type L, [S]) }+> : STRING var_no_safety '::' truedtype { let Loc l (StringTok (s,_)) = $1 in (Just s, $2, $4, [l,$3]) }+> | var_no_safety '::' truedtype { (Nothing, $1, $3, [$2]) } ----------------------------------------------------------------------------- Pragmas@@ -671,14 +671,14 @@ > | {- empty -} { [] } > rule :: { Rule L }-> : STRING activation ruleforall exp0 '=' trueexp {% do { let {Loc l (StringTok s) = $1};+> : STRING activation ruleforall exp0 '=' trueexp {% do { let {Loc l (StringTok (s,_)) = $1}; > e <- checkRuleExpr $4;-> return $ Rule (nIS l <++> ann $6 <** snd $3 ++ [$5]) s $2 (fst $3) e $6 } }+> return $ Rule (nIS l <++> ann $6 <** l:snd $3 ++ [$5]) s $2 (fst $3) e $6 } } > activation :: { Maybe (Activation L) } > : {- empty -} { Nothing }-> | '[' INT ']' { let Loc l (IntTok i) = $2 in Just $ ActiveFrom ($1 <^^> $3 <** [$1,l,$3]) (fromInteger i) }-> | '[' '~' INT ']' { let Loc l (IntTok i) = $3 in Just $ ActiveUntil ($1 <^^> $4 <** [$1,$2,l,$4]) (fromInteger i) }+> | '[' INT ']' { let Loc l (IntTok (i,_)) = $2 in Just $ ActiveFrom ($1 <^^> $3 <** [$1,l,$3]) (fromInteger i) }+> | '[' '~' INT ']' { let Loc l (IntTok (i,_)) = $3 in Just $ ActiveUntil ($1 <^^> $4 <** [$1,$2,l,$4]) (fromInteger i) } > ruleforall :: { (Maybe [RuleVar L],[S]) } > : {- empty -} { (Nothing,[]) }@@ -699,7 +699,7 @@ > | {- empty -} { ([],[]) } > warndepr :: { (([Name L], String),[S]) }-> : namevars STRING { let Loc l (StringTok s) = $2 in ((fst $1,s),snd $1 ++ [l]) }+> : namevars STRING { let Loc l (StringTok (s,_)) = $2 in ((fst $1,s),snd $1 ++ [l]) } > namevars :: { ([Name L],[S]) } > : namevar { ([$1],[]) }@@ -768,7 +768,7 @@ > otycon :: { QName L } > : qconid { $1 }-> | '(' gconsym ')' { amap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }+> | '(' gconsym ')' { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 } These are for infix types @@ -794,15 +794,15 @@ > ctype :: { PType L } > : 'forall' ktyvars '.' ctype { TyForall (nIS $1 <++> ann $4 <** [$1,$3]) (Just (reverse (fst $2))) Nothing $4 }-> | context '=>' ctype { TyForall ($1 <> $3) Nothing (Just $1) $3 }+> | context ctype { TyForall ($1 <> $2) Nothing (Just $1) $2 } > | type { $1 } Equality constraints require the TypeFamilies extension. > context :: { PContext L }-> : btype {% checkPContext $1 }-> | btype '~' btype {% do { checkEnabled TypeFamilies;-> let {l = $1 <> $3 <** [$2]};+> : btype '=>' {% checkPContext $ (amap (\l -> l <++> nIS $2 <** (srcInfoPoints l ++ [$2]))) $1 }+> | btype '~' btype '=>' {% do { checkEnabled TypeFamilies;+> let {l = $1 <> $3 <** [$2,$4]}; > checkPContext (TyPred l $ EqualP l $1 $3) } } > types :: { ([PType L],[S]) }@@ -851,12 +851,12 @@ GADTs - require the GADTs extension enabled, but we handle that at the calling site. -> gadtlist :: { ([GadtDecl L],[S],L,Bool) }+> gadtlist :: { ([GadtDecl L],[S],L) } > : gadtlist1 {% checkEnabled GADTs >> return $1 } -> gadtlist1 :: { ([GadtDecl L],[S],L,Bool) }-> : '{' gadtconstrs1 '}' { (fst $2, $1 : snd $2 ++ [$3], $1 <^^> $3,True) }-> | open gadtconstrs1 close { (fst $2, $1 : snd $2 ++ [$3], $1 <^^> $3,False) }+> gadtlist1 :: { ([GadtDecl L],[S],L) }+> : '{' gadtconstrs1 '}' { (fst $2, $1 : snd $2 ++ [$3], $1 <^^> $3) }+> | open gadtconstrs1 close { (fst $2, $1 : snd $2 ++ [$3], $1 <^^> $3) } > gadtconstrs1 :: { ([GadtDecl L],[S]) } > : optsemis gadtconstrs optsemis { (fst $2, reverse $1 ++ snd $2 ++ reverse $3) }@@ -879,10 +879,10 @@ > | constr { ([$1],[],ann $1) } > constr :: { QualConDecl L }-> : forall context '=>' constr1 {% do { checkEnabled ExistentialQuantification ;+> : forall context constr1 {% do { checkEnabled ExistentialQuantification ; > ctxt <- checkContext (Just $2) ; > let {(mtvs,ss,ml) = $1} ;-> return $ QualConDecl (ml <?+> ann $4 <** (ss ++ [$3])) mtvs ctxt $4 } }+> return $ QualConDecl (ml <?+> ann $3 <** ss) mtvs ctxt $3 } } > | forall constr1 { let (mtvs, ss, ml) = $1 in QualConDecl (ml <?+> ann $2 <** ss) mtvs Nothing $2 } > forall :: { (Maybe [TyVarBind L], [S], Maybe L) }@@ -907,10 +907,10 @@ > scontype1 :: { (Name L, [BangType L],L) } > : btype '!' trueatype {% do { (c,ts) <- splitTyConApp $1; > return (c,map (\t -> UnBangedTy (ann t) t) ts++-> [BangedTy (nIS $2 <++> ann $3) $3], $1 <> $3) } }+> [BangedTy (nIS $2 <++> ann $3 <** [$2]) $3], $1 <> $3) } } > | btype '{-# UNPACK' '#-}' '!' trueatype {% do { (c,ts) <- splitTyConApp $1; > return (c,map (\t -> UnBangedTy (ann t) t) ts++-> [UnpackedTy (nIS $2 <++> ann $5 <** [$3,$4]) $5], $1 <> $5) } }+> [UnpackedTy (nIS $2 <++> ann $5 <** [$2,$3,$4]) $5], $1 <> $5) } } > | scontype1 satype { let (n,ts,l) = $1 in (n, ts ++ [$2],l <++> ann $2) } > satype :: { BangType L }@@ -935,13 +935,13 @@ > | '!' trueatype { BangedTy (nIS $1 <++> ann $2 <** [$1]) $2 } > | '{-# UNPACK' '#-}' '!' trueatype { UnpackedTy (nIS $1 <++> ann $4 <** [$1,$2,$3]) $4 } -> deriving :: { (Maybe [Deriving L],[S],Maybe L) }-> : {- empty -} { (Nothing,[],Nothing) }-> | 'deriving' qtycls1 { let l = nIS $1 <++> ann $2 in (Just [Deriving l $2 []], [$1], Just l) }-> | 'deriving' '(' ')' { (Just [], [$1,$2,$3], Just $ $1 <^^> $3) }-> | 'deriving' '(' dclasses ')' { (Just $ reverse (fst $3), $1:$2:snd $3 ++ [$4], Just $ $1 <^^> $4) }+> deriving :: { Maybe (Deriving L) }+> : {- empty -} { Nothing }+> | 'deriving' qtycls1 { let l = nIS $1 <++> ann $2 <** [$1] in Just $ Deriving l [IHead (ann $2) $2 []] }+> | 'deriving' '(' ')' { Just $ Deriving ($1 <^^> $3 <** [$1,$2,$3]) [] }+> | 'deriving' '(' dclasses ')' { Just $ Deriving ($1 <^^> $4 <** $1:$2: reverse (snd $3) ++ [$4]) (reverse (fst $3)) } -> dclasses :: { ([Deriving L],[S]) }+> dclasses :: { ([InstHead L],[S]) } > : types1 {% checkDeriving (fst $1) >>= \ds -> return (ds, snd $1) } > qtycls1 :: { QName L }@@ -972,10 +972,10 @@ TODO: Lots of stuff to pass around here. No implicit parameters in the where clause of a class declaration.-> optcbody :: { (Maybe [ClassDecl L],[S],Maybe L,Bool) }-> : 'where' '{' cldecls '}' {% checkClassBody (fst $3) >>= \vs -> return (Just vs, $1:$2: snd $3 ++ [$4], Just ($1 <^^> $4),True) }-> | 'where' open cldecls close {% checkClassBody (fst $3) >>= \vs -> return (Just vs, $1:$2: snd $3 ++ [$4], Just ($1 <^^> $4),False) }-> | {- empty -} { (Nothing,[],Nothing,False) }+> optcbody :: { (Maybe [ClassDecl L],[S],Maybe L) }+> : 'where' '{' cldecls '}' {% checkClassBody (fst $3) >>= \vs -> return (Just vs, $1:$2: snd $3 ++ [$4], Just ($1 <^^> $4)) }+> | 'where' open cldecls close {% checkClassBody (fst $3) >>= \vs -> return (Just vs, $1:$2: snd $3 ++ [$4], Just ($1 <^^> $4)) }+> | {- empty -} { (Nothing,[],Nothing) } > cldecls :: { ([ClassDecl L],[S]) } > : optsemis cldecls1 optsemis {% checkRevClsDecls (fst $2) >>= \cs -> return (cs, reverse $1 ++ snd $2 ++ reverse $3) }@@ -993,21 +993,21 @@ > atdecl :: { ClassDecl L } > : 'type' type optkind-> {% do { (c,ts) <- checkSimpleType $2;-> return (ClsTyFam (nIS $1 <++> ann $2 <+?> (fmap ann) (fst $3) <** $1:snd $3) c ts (fst $3)) } }+> {% do { dh <- checkSimpleType $2;+> return (ClsTyFam (nIS $1 <++> ann $2 <+?> (fmap ann) (fst $3) <** $1:snd $3) dh (fst $3)) } } > | 'type' truedtype '=' truectype > { ClsTyDef (nIS $1 <++> ann $4 <** [$1,$3]) $2 $4 } > | 'data' ctype optkind-> {% do { (cs,c,t) <- checkDataHeader $2;-> return (ClsDataFam (nIS $1 <++> ann $2 <+?> (fmap ann) (fst $3) <** $1:snd $3) cs c t (fst $3)) } }+> {% do { (cs,dh) <- checkDataHeader $2;+> return (ClsDataFam (nIS $1 <++> ann $2 <+?> (fmap ann) (fst $3) <** $1:snd $3) cs dh (fst $3)) } } ----------------------------------------------------------------------------- Instance declarations -> optvaldefs :: { (Maybe [InstDecl L],[S],Maybe L,Bool) }-> : 'where' '{' valdefs '}' {% checkInstBody (fst $3) >>= \vs -> return (Just vs, $1:$2: snd $3 ++ [$4], Just ($1 <^^> $4),True) }-> | 'where' open valdefs close {% checkInstBody (fst $3) >>= \vs -> return (Just vs, $1:$2: snd $3 ++ [$4], Just ($1 <^^> $4),False) }-> | {- empty -} { (Nothing, [], Nothing, False) }+> optvaldefs :: { (Maybe [InstDecl L],[S],Maybe L) }+> : 'where' '{' valdefs '}' {% checkInstBody (fst $3) >>= \vs -> return (Just vs, $1:$2: snd $3 ++ [$4], Just ($1 <^^> $4)) }+> | 'where' open valdefs close {% checkInstBody (fst $3) >>= \vs -> return (Just vs, $1:$2: snd $3 ++ [$4], Just ($1 <^^> $4)) }+> | {- empty -} { (Nothing, [], Nothing) } > valdefs :: { ([InstDecl L],[S]) } > : optsemis valdefs1 optsemis {% checkRevInstDecls (fst $2) >>= \is -> return (is, reverse $1 ++ snd $2 ++ reverse $3) }@@ -1033,14 +1033,14 @@ > return (InsType (nIS $1 <++> ann $4 <** [$1,$3]) $2 $4) } } > | data_or_newtype truectype constrs0 deriving > {% do { -- (cs,c,t) <- checkDataHeader $4;-> let {(ds,ss1,minf1) = $3 ; (mds,ss2,minf2) = $4};+> let {(ds,ss,minf) = $3}; > checkDataOrNew $1 ds;-> return (InsData ($1 <> $2 <+?> minf1 <+?> minf2 <** (ss1 ++ ss2)) $1 $2 (reverse ds) mds) } }+> return (InsData ($1 <> $2 <+?> minf <+?> fmap ann $4 <** ss ) $1 $2 (reverse ds) $4) } } > | data_or_newtype truectype optkind 'where' gadtlist deriving > {% do { -- (cs,c,t) <- checkDataHeader $4;-> let { (gs,ss1,inf,b) = $5 ; (mds,ss2,minf) = $6 } ;+> let { (gs,ss,inf) = $5 } ; > checkDataOrNew $1 gs;-> return $ InsGData (ann $1 <++> inf <+?> minf <** (snd $3 ++ $4:ss1 ++ ss2) <?? b) $1 $2 (fst $3) (reverse gs) mds } }+> return $ InsGData (ann $1 <++> inf <+?> fmap ann $6 <** (snd $3 ++ $4:ss)) $1 $2 (fst $3) (reverse gs) $6 } } ----------------------------------------------------------------------------- Value definitions@@ -1048,8 +1048,9 @@ > valdef :: { Decl L } > : exp0b optsig rhs optwhere {% checkValDef (($1 <> $3 <+?> (fmap ann) (fst $4)) <** (snd $2 ++ snd $4)) $1 (fst $2) $3 (fst $4) } > | '!' aexp rhs optwhere {% do { checkEnabled BangPatterns ;-> p <- checkPattern $2;-> return $ PatBind ((nIS $1 <++> ann $3 <+?> (fmap ann) (fst $4)) <** $1:snd $4)+> let { l = nIS $1 <++> ann $2 <** [$1] };+> p <- checkPattern (BangPat l $2);+> return $ PatBind (p <> $3 <+?> (fmap ann) (fst $4) <** snd $4) > p Nothing $3 (fst $4) } } May bind implicit parameters@@ -1127,21 +1128,21 @@ mdo blocks require the RecursiveDo extension enabled, but the lexer handles that. > exp10b :: { PExp L }-> : 'case' exp 'of' altslist { let (als, inf, ss, b) = $4 in Case (nIS $1 <++> inf <** ($1:$3:ss) <?? b) $2 als }+> : 'case' exp 'of' altslist { let (als, inf, ss) = $4 in Case (nIS $1 <++> inf <** ($1:$3:ss)) $2 als } > | '-' fexp { NegApp (nIS $1 <++> ann $2 <** [$1]) $2 }-> | 'do' stmtlist { let (sts, inf, ss, b) = $2 in Do (nIS $1 <++> inf <** $1:ss <?? b) sts }-> | 'mdo' stmtlist { let (sts, inf, ss, b) = $2 in MDo (nIS $1 <++> inf <** $1:ss <?? b) sts }+> | 'do' stmtlist { let (sts, inf, ss) = $2 in Do (nIS $1 <++> inf <** $1:ss) sts }+> | 'mdo' stmtlist { let (sts, inf, ss) = $2 in MDo (nIS $1 <++> inf <** $1:ss) sts } > | fexp { $1 } > exppragma :: { PExp L }-> : '{-# CORE' STRING '#-}' exp { let Loc l (StringTok s) = $2 in CorePragma (nIS $1 <++> ann $4 <** [l,$3]) s $4 }-> | '{-# SCC' STRING '#-}' exp { let Loc l (StringTok s) = $2 in SCCPragma (nIS $1 <++> ann $4 <** [l,$3]) s $4 }+> : '{-# CORE' STRING '#-}' exp { let Loc l (StringTok (s,_)) = $2 in CorePragma (nIS $1 <++> ann $4 <** [l,$3]) s $4 }+> | '{-# SCC' STRING '#-}' exp { let Loc l (StringTok (s,_)) = $2 in SCCPragma (nIS $1 <++> ann $4 <** [l,$3]) s $4 } > | '{-# GENERATED' STRING INT ':' INT '-' INT ':' INT '#-}' exp-> { let { Loc l0 (StringTok s) = $2;-> Loc l1 (IntTok i1) = $3;-> Loc l2 (IntTok i2) = $5;-> Loc l3 (IntTok i3) = $7;-> Loc l4 (IntTok i4) = $9}+> { let { Loc l0 (StringTok (s,_)) = $2;+> Loc l1 (IntTok (i1,_)) = $3;+> Loc l2 (IntTok (i2,_)) = $5;+> Loc l3 (IntTok (i3,_)) = $7;+> Loc l4 (IntTok (i4,_)) = $9} > in GenPragma (nIS $1 <++> ann $11 <** [$1,l0,l1,$4,l2,$6,l3,$8,l4,$10]) > s (fromInteger i1, fromInteger i2) > (fromInteger i3, fromInteger i4) $11 }@@ -1205,7 +1206,7 @@ > (replicate (length $2 - 1) Nothing ++ [Just $3]) } > | '(' commas texp tsectend { TupleSection ($1 <^^> head (snd $4) <** $1:reverse (snd $4 ++ $2)) > (replicate (length $2 - 1) Nothing ++ Just $3 : fst $4) }-> | '[' list ']' { amap (<** [$1,$3]) $ $2 ($1 <^^> $3) }+> | '[' list ']' { amap (\l -> l <** [$3]) $ $2 ($1 <^^> $3 <** [$1]) } > | '_' { WildCard (nIS $1) } > | '(' erpats ')' {% checkEnabled RegularPatterns >> return (Paren ($1 <^^> $3 <** [$1,$3]) $2) } > | '(|' sexps '|)' { SeqRP ($1 <^^> $3 <** ($1:reverse (snd $2) ++ [$3])) $ reverse (fst $2) }@@ -1261,7 +1262,7 @@ > : '<' name attrs mattr '>' children '</' name '>' {% do { n <- checkEqNames $2 $8; > let { cn = reverse $6; > as = reverse $3;-> l = $1 <^^> $9 <** [$1,$5,$7,$9] };+> l = $1 <^^> $9 <** [$1,$5,$7,srcInfoSpan (ann $8),$9] }; > return $ XTag l n as $4 cn } } > | '<' name attrs mattr '/>' { XETag ($1 <^^> $5 <** [$1,$5]) $2 (reverse $3) $4 } > | '<%' exp '%>' { XExpTag ($1 <^^> $3 <** [$1,$3]) $2 }@@ -1277,7 +1278,7 @@ > name :: { XName L } > : xmlname ':' xmlname { let {Loc l1 s1 = $1; Loc l2 s2 = $3}-> in XDomName (nIS l1 <++> nIS l2 <** [$2]) s1 s2 }+> in XDomName (nIS l1 <++> nIS l2 <** [l1,$2,l2]) s1 s2 } > | xmlname { let Loc l str = $1 in XName (nIS l) str } > xmlname :: { Loc String }@@ -1348,7 +1349,7 @@ > list :: { L -> PExp L } > : texp { \l -> List l [$1] }-> | lexps { \l -> let (ps,ss) = $1 in List (l <** ss) ps }+> | lexps { \l -> let (ps,ss) = $1 in List (l <** reverse ss) (reverse ps) } > | texp '..' { \l -> EnumFrom (l <** [$2]) $1 } > | texp ',' exp '..' { \l -> EnumFromThen (l <** [$2,$4]) $1 $3 } > | texp '..' exp { \l -> EnumFromTo (l <** [$2]) $1 $3 }@@ -1396,9 +1397,9 @@ ----------------------------------------------------------------------------- Case alternatives -> altslist :: { ([Alt L],L,[S],Bool) }-> : '{' alts '}' { (fst $2, $1 <^^> $3, $1:snd $2 ++ [$3], True) }-> | open alts close { (fst $2, $1 <^^> $3, $1:snd $2 ++ [$3], False) }+> altslist :: { ([Alt L],L,[S]) }+> : '{' alts '}' { (fst $2, $1 <^^> $3, $1:snd $2 ++ [$3]) }+> | open alts close { (fst $2, $1 <^^> $3, $1:snd $2 ++ [$3]) } > alts :: { ([Alt L],[S]) } > : optsemis alts1 optsemis { (reverse $ fst $2, $1 ++ snd $2 ++ $3) }@@ -1436,9 +1437,9 @@ TODO: The points can't be added here, must be propagated! -> stmtlist :: { ([Stmt L],L,[S],Bool) }-> : '{' stmts '}' { (fst $2, $1 <^^> $3, snd $2 ++ [$1,$3], True) }-> | open stmts close { (fst $2, $1 <^^> $3, snd $2 ++ [$1,$3], False) }+> stmtlist :: { ([Stmt L],L,[S]) }+> : '{' stmts '}' { (fst $2, $1 <^^> $3, $1:snd $2 ++ [$3]) }+> | open stmts close { (fst $2, $1 <^^> $3, $1:snd $2 ++ [$3]) } > stmts :: { ([Stmt L],[S]) } > : stmt stmts1 { ($1 : fst $2, snd $2) }@@ -1454,7 +1455,7 @@ > : 'let' binds { LetStmt (nIS $1 <++> ann $2 <** [$1]) $2 } > | pat '<-' trueexp { Generator ($1 <> $3 <** [$2]) $1 $3 } > | trueexp { Qualifier (ann $1) $1 }-> | 'rec' stmtlist { let (stms,inf,ss,b) = $2 in RecStmt (nIS $1 <++> inf <** $1:ss <?? b) stms }+> | 'rec' stmtlist { let (stms,inf,ss) = $2 in RecStmt (nIS $1 <++> inf <** $1:ss) stms } ----------------------------------------------------------------------------- Record Field Update/Construction@@ -1496,15 +1497,15 @@ > var :: { Name L } > : varid { $1 }-> | '(' varsym ')' { amap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }+> | '(' varsym ')' { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 } > var_no_safety :: { Name L } > : varid_no_safety { $1 }-> | '(' varsym ')' { amap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }+> | '(' varsym ')' { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 } > qvar :: { QName L } > : qvarid { $1 }-> | '(' qvarsym ')' { amap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }+> | '(' qvarsym ')' { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 } Implicit parameter > ivar :: { IPName L }@@ -1512,31 +1513,31 @@ > con :: { Name L } > : conid { $1 }-> | '(' consym ')' { amap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }+> | '(' consym ')' { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 } > qcon :: { QName L } > : qconid { $1 }-> | '(' gconsym ')' { amap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }+> | '(' gconsym ')' { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 } > varop :: { Name L } > : varsym { $1 }-> | '`' varid '`' { amap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }+> | '`' varid '`' { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 } > qvarop :: { QName L } > : qvarsym { $1 }-> | '`' qvarid '`' { amap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }+> | '`' qvarid '`' { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 } > qvaropm :: { QName L } > : qvarsymm { $1 }-> | '`' qvarid '`' { amap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }+> | '`' qvarid '`' { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 } > conop :: { Name L } > : consym { $1 }-> | '`' conid '`' { amap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }+> | '`' conid '`' { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 } > qconop :: { QName L } > : gconsym { $1 }-> | '`' qconid '`' { amap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 }+> | '`' qconid '`' { fmap (const ($1 <^^> $3 <** [$1, srcInfoSpan (ann $2), $3])) $2 } > op :: { Op L } > : varop { VarOp (ann $1) $1 }@@ -1622,16 +1623,16 @@ > : QVARSYM { let {Loc l (QVarSym q) = $1; nis = nIS l} in Qual nis (ModuleName nis (fst q)) (Symbol nis (snd q)) } > literal :: { Literal L }-> : INT { let Loc l (IntTok i) = $1 in Int (nIS l) i }-> | CHAR { let Loc l (Character c) = $1 in Char (nIS l) c }-> | RATIONAL { let Loc l (FloatTok r) = $1 in Frac (nIS l) r }-> | STRING { let Loc l (StringTok s) = $1 in String (nIS l) s }-> | PRIMINT { let Loc l (IntTokHash i) = $1 in PrimInt (nIS l) i }-> | PRIMWORD { let Loc l (WordTokHash w) = $1 in PrimWord (nIS l) w }-> | PRIMFLOAT { let Loc l (FloatTokHash f) = $1 in PrimFloat (nIS l) f }-> | PRIMDOUBLE { let Loc l (DoubleTokHash d) = $1 in PrimDouble (nIS l) d }-> | PRIMCHAR { let Loc l (CharacterHash c) = $1 in PrimChar (nIS l) c }-> | PRIMSTRING { let Loc l (StringHash s) = $1 in PrimString (nIS l) s }+> : INT { let Loc l (IntTok (i,raw)) = $1 in Int (nIS l) i raw }+> | CHAR { let Loc l (Character (c,raw)) = $1 in Char (nIS l) c raw }+> | RATIONAL { let Loc l (FloatTok (r,raw)) = $1 in Frac (nIS l) r raw }+> | STRING { let Loc l (StringTok (s,raw)) = $1 in String (nIS l) s raw }+> | PRIMINT { let Loc l (IntTokHash (i,raw)) = $1 in PrimInt (nIS l) i raw }+> | PRIMWORD { let Loc l (WordTokHash (w,raw)) = $1 in PrimWord (nIS l) w raw }+> | PRIMFLOAT { let Loc l (FloatTokHash (f,raw)) = $1 in PrimFloat (nIS l) f raw }+> | PRIMDOUBLE { let Loc l (DoubleTokHash (d,raw)) = $1 in PrimDouble (nIS l) d raw }+> | PRIMCHAR { let Loc l (CharacterHash (c,raw)) = $1 in PrimChar (nIS l) c raw }+> | PRIMSTRING { let Loc l (StringHash (s,raw)) = $1 in PrimString (nIS l) s raw } ----------------------------------------------------------------------------- Layout@@ -1777,13 +1778,13 @@ > parseTypeWithComments mode str = runParserWithModeComments mode mparseType str -> simpleParse :: AppFixity a => P a -> String -> ParseResult a+> simpleParse :: AppFixity a => P (a L) -> String -> ParseResult (a L) > simpleParse p = fmap (applyFixities preludeFixities) . runParser p -> modeParse :: AppFixity a => P a -> ParseMode -> String -> ParseResult a+> modeParse :: AppFixity a => P (a L) -> ParseMode -> String -> ParseResult (a L) > modeParse p mode = fmap (applyFixities (fixities mode)) . runParserWithMode mode p -> commentParse :: AppFixity a => P a -> ParseMode -> String -> ParseResult (a, [Comment])+> commentParse :: AppFixity a => P (a L) -> ParseMode -> String -> ParseResult (a L, [Comment]) > commentParse p mode str = runParserWithModeComments mode p str > >>= \(ast, cs) -> return (applyFixities (fixities mode) ast, cs)
src/Language/Haskell/Exts/Annotated/Pretty.hs view
@@ -345,42 +345,37 @@ ------------------------- Declarations ------------------------------ instance SrcInfo pos => Pretty (Decl pos) where- pretty (TypeDecl loc name nameList htype) =+ pretty (TypeDecl loc dhead htype) = blankline $ markLine loc $- mySep ( [text "type", pretty name]- ++ map pretty nameList- ++ [equals, pretty htype])+ mySep [text "type", pretty dhead, equals, pretty htype] - pretty (DataDecl loc don context name nameList constrList derives) =+ pretty (DataDecl loc don context dhead constrList derives) = blankline $ markLine loc $- mySep ( [pretty don, ppContext context, pretty name]- ++ map pretty nameList)+ mySep [pretty don, ppContext context, pretty dhead] <+> (myVcat (zipWith (<+>) (equals : repeat (char '|')) (map pretty constrList)) $$$ ppDeriving derives) - pretty (GDataDecl loc don context name nameList optkind gadtList derives) =+ pretty (GDataDecl loc don context dhead optkind gadtList derives) = blankline $ markLine loc $- mySep ( [pretty don, ppContext context, pretty name]- ++ map pretty nameList ++ ppOptKind optkind ++ [text "where"])+ mySep ( [pretty don, ppContext context, pretty dhead]+ ++ ppOptKind optkind ++ [text "where"]) $$$ ppBody classIndent (map pretty gadtList) $$$ ppDeriving derives - pretty (TypeFamDecl loc name nameList optkind) =+ pretty (TypeFamDecl loc dhead optkind) = blankline $ markLine loc $- mySep ([text "type", text "family", pretty name]- ++ map pretty nameList+ mySep ([text "type", text "family", pretty dhead] ++ ppOptKind optkind) - pretty (DataFamDecl loc context name nameList optkind) =+ pretty (DataFamDecl loc context dhead optkind) = blankline $ markLine loc $- mySep ( [text "data", text "family", ppContext context, pretty name]- ++ map pretty nameList ++ ppOptKind optkind)+ mySep ( [text "data", text "family", ppContext context, pretty dhead] ++ ppOptKind optkind) pretty (TypeInsDecl loc ntype htype) = blankline $@@ -405,37 +400,32 @@ --m{spacing=False} -- special case for empty class declaration- pretty (ClassDecl pos context name nameList fundeps Nothing) =+ pretty (ClassDecl pos context dhead fundeps Nothing) = blankline $ markLine pos $- mySep ( [text "class", ppContext context, pretty name]- ++ map pretty nameList ++ [ppFunDeps fundeps])- pretty (ClassDecl pos context name nameList fundeps (Just declList)) =+ mySep [text "class", ppContext context, pretty dhead, ppFunDeps fundeps]+ pretty (ClassDecl pos context dhead fundeps (Just declList)) = blankline $ markLine pos $- mySep ( [text "class", ppContext context, pretty name]- ++ map pretty nameList ++ [ppFunDeps fundeps, text "where"])+ mySep [text "class", ppContext context, pretty dhead, ppFunDeps fundeps, text "where"] $$$ ppBody classIndent (map pretty declList) -- m{spacing=False} -- special case for empty instance declaration- pretty (InstDecl pos context name args Nothing) =+ pretty (InstDecl pos context ihead Nothing) = blankline $ markLine pos $- mySep ( [text "instance", ppContext context, pretty name]- ++ map ppAType args)- pretty (InstDecl pos context name args (Just declList)) =+ mySep [text "instance", ppContext context, pretty ihead]+ pretty (InstDecl pos context ihead (Just declList)) = blankline $ markLine pos $- mySep ( [text "instance", ppContext context, pretty name]- ++ map ppAType args ++ [text "where"])+ mySep ( [text "instance", ppContext context, pretty ihead, text "where"]) $$$ ppBody classIndent (map pretty declList) - pretty (DerivDecl pos context name args) =+ pretty (DerivDecl pos context ihead) = blankline $ markLine pos $- mySep ( [text "deriving", text "instance", ppContext context, pretty name]- ++ map ppAType args)+ mySep [text "deriving", text "instance", ppContext context, pretty ihead] pretty (DefaultDecl pos htypes) = blankline $ markLine pos $@@ -467,17 +457,17 @@ mySep ([pretty assoc, maybePP int prec] ++ (punctuate comma . map pretty $ opList)) - pretty (ForImp pos cconv msaf str name typ) =+ pretty (ForImp pos cconv msaf mstr name typ) = blankline $ markLine pos $ mySep [text "foreign import", pretty cconv, maybePP pretty msaf,- text (show str), pretty name, text "::", pretty typ]+ maybePP (text . show) mstr, pretty name, text "::", pretty typ] - pretty (ForExp pos cconv str name typ) =+ pretty (ForExp pos cconv mstr name typ) = blankline $ markLine pos $ mySep [text "foreign export", pretty cconv,- text (show str), pretty name, text "::", pretty typ]+ maybePP (text . show) mstr, pretty name, text "::", pretty typ] pretty (RulePragmaDecl pos rules) = blankline $@@ -512,18 +502,22 @@ maybePP pretty mactiv, pretty name, text "::"] ++ (punctuate comma $ map pretty types) ++ [text "#-}"] - pretty (InstSig pos context name args) =+ pretty (InstSig pos context ihead) = blankline $ markLine pos $- mySep $ [text "{-# SPECIALISE", text "instance", ppContext context, pretty name]- ++ map ppAType args ++ [text "#-}"]+ mySep $ [text "{-# SPECIALISE", text "instance", ppContext context, pretty ihead, text "#-}"] -{- pretty (UnknownDeclPragma pos n s) =- blankline $- markLine pos $- mySep $ [text "{-#", text n, text s, text "#-}"] -} +instance Pretty (DeclHead l) where+ pretty (DHead l n tvs) = mySep (pretty n : map pretty tvs)+ pretty (DHInfix l tva n tvb) = mySep [pretty tva, pretty n, pretty tvb]+ pretty (DHParen l dh) = parens (pretty dh) +instance Pretty (InstHead l) where+ pretty (IHead l qn ts) = mySep (pretty qn : map pretty ts)+ pretty (IHInfix l ta qn tb) = mySep [pretty ta, pretty qn, pretty tb]+ pretty (IHParen l ih) = parens (pretty ih)+ instance Pretty (DataOrNew l) where pretty (DataType _) = text "data" pretty (NewType _) = text "newtype"@@ -534,17 +528,21 @@ pretty (AssocRight _) = text "infixr" instance SrcInfo pos => Pretty (Match pos) where- pretty (Match pos f ps optsig rhs whereBinds) =+ pretty (Match pos f ps rhs whereBinds) = markLine pos $- myFsep (lhs ++ [maybePP ppSig optsig, pretty rhs])+ myFsep (pretty f : map (prettyPrec 2) ps ++ [pretty rhs]) $$$ ppWhere whereBinds- where+{- where lhs = case ps of l:r:ps' | isSymbolName f -> let hd = [pretty l, ppName f, pretty r] in if null ps' then hd else parens (myFsep hd) : map (prettyPrec 2) ps'- _ -> pretty f : map (prettyPrec 2) ps+ _ -> pretty f : map (prettyPrec 2) ps -}+ pretty (InfixMatch pos a f b rhs whereBinds) =+ markLine pos $+ myFsep [pretty a, pretty f, pretty b, pretty rhs]+ $$$ ppWhere whereBinds ppWhere :: SrcInfo loc => Maybe (Binds loc) -> Doc ppWhere Nothing = empty@@ -558,15 +556,13 @@ instance SrcInfo loc => Pretty (ClassDecl loc) where pretty (ClsDecl _ decl) = pretty decl - pretty (ClsDataFam loc context name nameList optkind) =+ pretty (ClsDataFam loc context dhead optkind) = markLine loc $- mySep ( [text "data", ppContext context, pretty name]- ++ map pretty nameList ++ ppOptKind optkind)+ mySep ( [text "data", ppContext context, pretty dhead] ++ ppOptKind optkind) - pretty (ClsTyFam loc name nameList optkind) =+ pretty (ClsTyFam loc dhead optkind) = markLine loc $- mySep ( [text "type", pretty name]- ++ map pretty nameList ++ ppOptKind optkind)+ mySep ( [text "type", pretty dhead] ++ ppOptKind optkind) pretty (ClsTyDef loc ntype htype) = markLine loc $@@ -686,14 +682,14 @@ prettyPrec p (UnBangedTy _ ty) = prettyPrec p ty prettyPrec p (UnpackedTy _ ty) = text "{-# UNPACK #-}" <+> char '!' <> prettyPrec p ty -ppDeriving :: Maybe [Deriving l] -> Doc-ppDeriving Nothing = empty-ppDeriving (Just []) = text "deriving" <+> parenList []-ppDeriving (Just [Deriving _ d []]) = text "deriving" <+> ppQName d-ppDeriving (Just ds) = text "deriving" <+> parenList (map ppDer ds)- where ppDer :: Deriving l -> Doc- ppDer (Deriving _ n ts) = mySep (pretty n : map pretty ts)+ppDeriving :: Maybe (Deriving l) -> Doc+ppDeriving = maybePP pretty +instance Pretty (Deriving l) where+ pretty (Deriving _ []) = text "deriving" <+> parenList []+ pretty (Deriving _ [IHead _ d []]) = text "deriving" <+> ppQName d+ pretty (Deriving _ ihs) = text "deriving" <+> parenList (map pretty ihs)+ ------------------------- Types ------------------------- ppBType :: Type l -> Doc ppBType = prettyPrec prec_btype@@ -772,17 +768,17 @@ myFsep $ [char '|'] ++ (punctuate comma . map pretty $ guards) ++ [equals, pretty ppBody] instance Pretty (Literal l) where- pretty (Int _ i) = integer i- pretty (Char _ c) = text (show c)- pretty (String _ s) = text (show s)- pretty (Frac _ r) = double (fromRational r)+ pretty (Int _ i _) = integer i+ pretty (Char _ c _) = text (show c)+ pretty (String _ s _) = text (show s)+ pretty (Frac _ r _) = double (fromRational r) -- GHC unboxed literals:- pretty (PrimChar _ c) = text (show c) <> char '#'- pretty (PrimString _ s) = text (show s) <> char '#'- pretty (PrimInt _ i) = integer i <> char '#'- pretty (PrimWord _ w) = integer w <> text "##"- pretty (PrimFloat _ r) = float (fromRational r) <> char '#'- pretty (PrimDouble _ r) = double (fromRational r) <> text "##"+ pretty (PrimChar _ c _) = text (show c) <> char '#'+ pretty (PrimString _ s _) = text (show s) <> char '#'+ pretty (PrimInt _ i _) = integer i <> char '#'+ pretty (PrimWord _ w _) = integer w <> text "##"+ pretty (PrimFloat _ r _) = float (fromRational r) <> char '#'+ pretty (PrimDouble _ r _) = double (fromRational r) <> text "##" instance SrcInfo loc => Pretty (Exp loc) where pretty (Lit _ l) = pretty l@@ -1117,8 +1113,13 @@ specialName (Cons _) = ":" ppContext :: Maybe (Context l) -> Doc-ppContext Nothing = empty-ppContext (Just (Context _ context)) = mySep [parenList (map pretty context), text "=>"]+ppContext = maybePP pretty++instance Pretty (Context l) where+ pretty (CxEmpty _) = mySep [text "()", text "=>"]+ pretty (CxSingle _ asst) = mySep [pretty asst, text "=>"]+ pretty (CxTuple _ assts) = myFsep $ [parenList (map pretty assts), text "=>"]+ pretty (CxParen _ asst) = parens (pretty asst) -- hacked for multi-parameter type classes instance Pretty (Asst l) where
src/Language/Haskell/Exts/Annotated/SrcLoc.hs view
@@ -46,6 +46,9 @@ mergeSrcSpan :: SrcSpan -> SrcSpan -> SrcSpan mergeSrcSpan (SrcSpan fn sl sc _ _) (SrcSpan _ _ _ el ec) = SrcSpan fn sl sc el ec +isNullSpan ss = srcSpanStartLine ss == srcSpanEndLine ss && + srcSpanStartColumn ss >= srcSpanEndColumn ss + -- | An entity located in the source. data Loc a = Loc { loc :: SrcSpan @@ -57,7 +60,7 @@ -- | A portion of the source, extended with information on the position of entities within the span. data SrcSpanInfo = SrcSpanInfo { srcInfoSpan :: SrcSpan - , explLayout :: Bool +-- , explLayout :: Bool , srcInfoPoints :: [SrcSpan] -- Marks the location of specific entities inside the span } #ifdef __GLASGOW_HASKELL__ @@ -67,24 +70,23 @@ #endif nIS, noInfoSpan :: SrcSpan -> SrcSpanInfo -noInfoSpan ss = SrcSpanInfo ss False [] +noInfoSpan ss = SrcSpanInfo ss [] nIS = noInfoSpan pIS, pointInfoSpan :: SrcSpan -> SrcSpanInfo -pointInfoSpan ss = SrcSpanInfo ss False [ss] +pointInfoSpan ss = SrcSpanInfo ss [ss] pIS = pointInfoSpan iS, infoSpan :: SrcSpan -> [SrcSpan] -> SrcSpanInfo -infoSpan x y = SrcSpanInfo x False y +infoSpan x y = SrcSpanInfo x y iS = infoSpan (<++>), combSpanInfo :: SrcSpanInfo -> SrcSpanInfo -> SrcSpanInfo combSpanInfo s1 s2 = SrcSpanInfo (mergeSrcSpan (srcInfoSpan s1) (srcInfoSpan s2)) - (explLayout s1) [] (<++>) = combSpanInfo @@ -98,18 +100,18 @@ (<**) :: SrcSpanInfo -> [SrcSpan] -> SrcSpanInfo ss@(SrcSpanInfo {srcInfoPoints = ps}) <** xs = ss {srcInfoPoints = ps ++ xs} -(<??) :: SrcSpanInfo -> Bool -> SrcSpanInfo -ss <?? b = ss { explLayout = b } +--(<??) :: SrcSpanInfo -> Bool -> SrcSpanInfo +--ss <?? b = ss { explLayout = b } (<^^>) :: SrcSpan -> SrcSpan -> SrcSpanInfo a <^^> b = nIS (mergeSrcSpan a b) infixl 6 <^^> infixl 5 <++> -infixl 4 <**, <??, <+?>, <?+> +infixl 4 <**, <+?>, <?+> class SrcInfo si where - toSrcInfo :: SrcLoc -> Bool -> [SrcSpan] -> SrcLoc -> si + toSrcInfo :: SrcLoc -> [SrcSpan] -> SrcLoc -> si fromSrcInfo :: SrcSpanInfo -> si getPointLoc :: si -> SrcLoc fileName :: si -> String @@ -119,21 +121,21 @@ getPointLoc si = SrcLoc (fileName si) (startLine si) (startColumn si) instance SrcInfo SrcLoc where - toSrcInfo s _ _ _ = s + toSrcInfo s _ _ = s fromSrcInfo si = SrcLoc (fileName si) (startLine si) (startColumn si) fileName = srcFilename startLine = srcLine startColumn = srcColumn instance SrcInfo SrcSpan where - toSrcInfo st _ _ end = mkSrcSpan st end + toSrcInfo st _ end = mkSrcSpan st end fromSrcInfo = srcInfoSpan fileName = srcSpanFilename startLine = srcSpanStartLine startColumn = srcSpanStartColumn instance SrcInfo SrcSpanInfo where - toSrcInfo st lay pts end = SrcSpanInfo (mkSrcSpan st end) lay pts + toSrcInfo st pts end = SrcSpanInfo (mkSrcSpan st end) pts fromSrcInfo = id fileName = fileName . srcInfoSpan startLine = startLine . srcInfoSpan
src/Language/Haskell/Exts/Annotated/Syntax.hs view
@@ -42,7 +42,7 @@ Module(..), ModuleHead(..), WarningText(..), ExportSpecList(..), ExportSpec(..), ImportDecl(..), ImportSpecList(..), ImportSpec(..), Assoc(..), -- * Declarations- Decl(..), Binds(..), IPBind(..),+ Decl(..), DeclHead(..), InstHead(..), Binds(..), IPBind(..), -- ** Type classes and instances ClassDecl(..), InstDecl(..), Deriving(..), -- ** Data type declarations@@ -321,37 +321,29 @@ deriving (Eq,Show) #endif --- | A single derived instance, which may have arguments since it may be a MPTC.-data Deriving l = Deriving l (QName l) [Type l]-#ifdef __GLASGOW_HASKELL__- deriving (Eq,Show,Typeable,Data)-#else- deriving (Eq,Show)-#endif- -- | A top-level declaration. data Decl l- = TypeDecl l (Name l) [TyVarBind l] (Type l)+ = TypeDecl l (DeclHead l) (Type l) -- ^ A type declaration- | TypeFamDecl l (Name l) [TyVarBind l] (Maybe (Kind l))+ | TypeFamDecl l (DeclHead l) (Maybe (Kind l)) -- ^ A type family declaration- | DataDecl l (DataOrNew l) (Maybe (Context l)) (Name l) [TyVarBind l] [QualConDecl l] (Maybe [Deriving l])+ | DataDecl l (DataOrNew l) (Maybe (Context l)) (DeclHead l) [QualConDecl l] (Maybe (Deriving l)) -- ^ A data OR newtype declaration- | GDataDecl l (DataOrNew l) (Maybe (Context l)) (Name l) [TyVarBind l] (Maybe (Kind l)) [GadtDecl l] (Maybe [Deriving l])+ | GDataDecl l (DataOrNew l) (Maybe (Context l)) (DeclHead l) (Maybe (Kind l)) [GadtDecl l] (Maybe (Deriving l)) -- ^ A data OR newtype declaration, GADT style- | DataFamDecl l {-data-} (Maybe (Context l)) (Name l) [TyVarBind l] (Maybe (Kind l))+ | DataFamDecl l {-data-} (Maybe (Context l)) (DeclHead l) (Maybe (Kind l)) -- ^ A data family declaration | TypeInsDecl l (Type l) (Type l) -- ^ A type family instance declaration- | DataInsDecl l (DataOrNew l) (Type l) [QualConDecl l] (Maybe [Deriving l])+ | DataInsDecl l (DataOrNew l) (Type l) [QualConDecl l] (Maybe (Deriving l)) -- ^ A data family instance declaration- | GDataInsDecl l (DataOrNew l) (Type l) (Maybe (Kind l)) [GadtDecl l] (Maybe [Deriving l])+ | GDataInsDecl l (DataOrNew l) (Type l) (Maybe (Kind l)) [GadtDecl l] (Maybe (Deriving l)) -- ^ A data family instance declaration, GADT style- | ClassDecl l (Maybe (Context l)) (Name l) [TyVarBind l] [FunDep l] (Maybe [ClassDecl l])+ | ClassDecl l (Maybe (Context l)) (DeclHead l) [FunDep l] (Maybe [ClassDecl l]) -- ^ A declaration of a type class- | InstDecl l (Maybe (Context l)) (QName l) [Type l] (Maybe [InstDecl l])+ | InstDecl l (Maybe (Context l)) (InstHead l) (Maybe [InstDecl l]) -- ^ An declaration of a type class instance- | DerivDecl l (Maybe (Context l)) (QName l) [Type l]+ | DerivDecl l (Maybe (Context l)) (InstHead l) -- ^ A standalone deriving declaration | InfixDecl l (Assoc l) (Maybe Int) [Op l] -- ^ A declaration of operator fixity@@ -365,9 +357,9 @@ -- ^ A set of function binding clauses | PatBind l (Pat l) (Maybe (Type l)) (Rhs l) {-where-} (Maybe (Binds l)) -- ^ A pattern binding- | ForImp l (CallConv l) (Maybe (Safety l)) String (Name l) (Type l)+ | ForImp l (CallConv l) (Maybe (Safety l)) (Maybe String) (Name l) (Type l) -- ^ A foreign import declaration- | ForExp l (CallConv l) String (Name l) (Type l)+ | ForExp l (CallConv l) (Maybe String) (Name l) (Type l) -- ^ A foreign export declaration | RulePragmaDecl l [Rule l]@@ -378,11 +370,11 @@ -- ^ A WARNING pragma | InlineSig l Bool (Maybe (Activation l)) (QName l) -- ^ An INLINE pragma- | SpecSig l (QName l) [Type l]+ | SpecSig l (QName l) [Type l] -- ^ A SPECIALISE pragma | SpecInlineSig l Bool (Maybe (Activation l)) (QName l) [Type l] -- ^ A SPECIALISE INLINE pragma- | InstSig l (Maybe (Context l)) (QName l) [Type l]+ | InstSig l (Maybe (Context l)) (InstHead l) -- ^ A SPECIALISE instance pragma #ifdef __GLASGOW_HASKELL__ deriving (Eq,Show,Typeable,Data)@@ -398,6 +390,36 @@ deriving (Eq,Show) #endif +-- | The head of a type or class declaration.+data DeclHead l+ = DHead l (Name l) [TyVarBind l]+ | DHInfix l (TyVarBind l) (Name l) (TyVarBind l)+ | DHParen l (DeclHead l)+#ifdef __GLASGOW_HASKELL__+ deriving (Eq,Show,Typeable,Data)+#else+ deriving (Eq,Show)+#endif++-- | The head of an instance declaration.+data InstHead l+ = IHead l (QName l) [Type l]+ | IHInfix l (Type l) (QName l) (Type l)+ | IHParen l (InstHead l)+#ifdef __GLASGOW_HASKELL__+ deriving (Eq,Show,Typeable,Data)+#else+ deriving (Eq,Show)+#endif++-- | A deriving clause following a data type declaration.+data Deriving l = Deriving l [InstHead l]+#ifdef __GLASGOW_HASKELL__+ deriving (Eq,Show,Typeable,Data)+#else+ deriving (Eq,Show)+#endif+ -- | A binding group inside a @let@ or @where@ clause. data Binds l = BDecls l [Decl l] -- ^ An ordinary binding group@@ -418,7 +440,8 @@ -- | Clauses of a function binding. data Match l- = Match l (Name l) [Pat l] (Maybe (Type l)) (Rhs l) {-where-} (Maybe (Binds l))+ = Match l (Name l) [Pat l] (Rhs l) {-where-} (Maybe (Binds l))+ | InfixMatch l (Pat l) (Name l) (Pat l) (Rhs l) {-where-} (Maybe (Binds l)) #ifdef __GLASGOW_HASKELL__ deriving (Eq,Show,Typeable,Data) #else@@ -473,11 +496,11 @@ data ClassDecl l = ClsDecl l (Decl l) -- ^ ordinary declaration- | ClsDataFam l (Maybe (Context l)) (Name l) [TyVarBind l] (Maybe (Kind l))+ | ClsDataFam l (Maybe (Context l)) (DeclHead l) (Maybe (Kind l)) -- ^ declaration of an associated data type- | ClsTyFam l (Name l) [TyVarBind l] (Maybe (Kind l))+ | ClsTyFam l (DeclHead l) (Maybe (Kind l)) -- ^ declaration of an associated type synonym- | ClsTyDef l (Type l) (Type l)+ | ClsTyDef l (Type l) (Type l) -- ^ default choice for an associated type synonym #ifdef __GLASGOW_HASKELL__ deriving (Eq,Show,Typeable,Data)@@ -491,9 +514,9 @@ -- ^ ordinary declaration | InsType l (Type l) (Type l) -- ^ an associated type definition- | InsData l (DataOrNew l) (Type l) [QualConDecl l] (Maybe [Deriving l])+ | InsData l (DataOrNew l) (Type l) [QualConDecl l] (Maybe (Deriving l)) -- ^ an associated data type implementation- | InsGData l (DataOrNew l) (Type l) (Maybe (Kind l)) [GadtDecl l] (Maybe [Deriving l])+ | InsGData l (DataOrNew l) (Type l) (Maybe (Kind l)) [GadtDecl l] (Maybe (Deriving l)) -- ^ an associated data type implemented using GADT style | InsInline l Bool (Maybe (Activation l)) (QName l) -- ^ an INLINE pragma@@ -601,7 +624,11 @@ #endif -- | A context is a set of assertions-data Context l = Context l [Asst l]+data Context l+ = CxSingle l (Asst l)+ | CxTuple l [Asst l]+ | CxParen l (Context l)+ | CxEmpty l #ifdef __GLASGOW_HASKELL__ deriving (Eq,Show,Typeable,Data) #else@@ -628,16 +655,16 @@ -- precise string representation used. For example, @10@, @0o12@ and @0xa@ -- have the same representation. data Literal l- = Char l Char -- ^ character literal- | String l String -- ^ string literal- | Int l Integer -- ^ integer literal- | Frac l Rational -- ^ floating point literal- | PrimInt l Integer -- ^ unboxed integer literal- | PrimWord l Integer -- ^ unboxed word literal- | PrimFloat l Rational -- ^ unboxed float literal- | PrimDouble l Rational -- ^ unboxed double literal- | PrimChar l Char -- ^ unboxed character literal- | PrimString l String -- ^ unboxed string literal+ = Char l Char String -- ^ character literal+ | String l String String -- ^ string literal+ | Int l Integer String -- ^ integer literal+ | Frac l Rational String -- ^ floating point literal+ | PrimInt l Integer String -- ^ unboxed integer literal+ | PrimWord l Integer String -- ^ unboxed word literal+ | PrimFloat l Rational String -- ^ unboxed float literal+ | PrimDouble l Rational String -- ^ unboxed double literal+ | PrimChar l Char String -- ^ unboxed character literal+ | PrimString l String String -- ^ unboxed string literal #ifdef __GLASGOW_HASKELL__ deriving (Eq,Show,Typeable,Data) #else@@ -1157,24 +1184,21 @@ fmap f (AssocLeft l) = AssocLeft (f l) fmap f (AssocRight l) = AssocRight (f l) -instance Functor Deriving where- fmap f (Deriving l qn ts) = Deriving (f l) (fmap f qn) (map (fmap f) ts)- instance Functor Decl where fmap f decl = case decl of- TypeDecl l n tvs t -> TypeDecl (f l) (fmap f n) (map (fmap f) tvs) (fmap f t)- TypeFamDecl l n tvs mk -> TypeFamDecl (f l) (fmap f n) (map (fmap f) tvs) (fmap (fmap f) mk)- DataDecl l dn mcx n tvs cds ders ->- DataDecl (f l) (fmap f dn) (fmap (fmap f) mcx) (fmap f n) (map (fmap f) tvs) (map (fmap f) cds) (fmap (map (fmap f)) ders)- GDataDecl l dn mcx n tvs mk gds ders ->- GDataDecl (f l) (fmap f dn) (fmap (fmap f) mcx) (fmap f n) (map (fmap f) tvs) (fmap (fmap f) mk) (map (fmap f) gds) (fmap (map (fmap f)) ders)- DataFamDecl l mcx n tvs mk -> DataFamDecl (f l) (fmap (fmap f) mcx) (fmap f n) (map (fmap f) tvs) (fmap (fmap f) mk)+ TypeDecl l dh t -> TypeDecl (f l) (fmap f dh) (fmap f t)+ TypeFamDecl l dh mk -> TypeFamDecl (f l) (fmap f dh) (fmap (fmap f) mk)+ DataDecl l dn mcx dh cds ders ->+ DataDecl (f l) (fmap f dn) (fmap (fmap f) mcx) (fmap f dh) (map (fmap f) cds) (fmap (fmap f) ders)+ GDataDecl l dn mcx dh mk gds ders ->+ GDataDecl (f l) (fmap f dn) (fmap (fmap f) mcx) (fmap f dh) (fmap (fmap f) mk) (map (fmap f) gds) (fmap (fmap f) ders)+ DataFamDecl l mcx dh mk -> DataFamDecl (f l) (fmap (fmap f) mcx) (fmap f dh) (fmap (fmap f) mk) TypeInsDecl l t1 t2 -> TypeInsDecl (f l) (fmap f t1) (fmap f t2)- DataInsDecl l dn t cds ders -> DataInsDecl (f l) (fmap f dn) (fmap f t) (map (fmap f) cds) (fmap (map (fmap f)) ders)- GDataInsDecl l dn t mk gds ders -> GDataInsDecl (f l) (fmap f dn) (fmap f t) (fmap (fmap f) mk) (map (fmap f) gds) (fmap (map (fmap f)) ders)- ClassDecl l mcx n tvs fds mcds -> ClassDecl (f l) (fmap (fmap f) mcx) (fmap f n) (map (fmap f) tvs) (map (fmap f) fds) (fmap (map (fmap f)) mcds)- InstDecl l mcx qn ts mids -> InstDecl (f l) (fmap (fmap f) mcx) (fmap f qn) (map (fmap f) ts) (fmap (map (fmap f)) mids)- DerivDecl l mcx qn ts -> DerivDecl (f l) (fmap (fmap f) mcx) (fmap f qn) (map (fmap f) ts)+ DataInsDecl l dn t cds ders -> DataInsDecl (f l) (fmap f dn) (fmap f t) (map (fmap f) cds) (fmap (fmap f) ders)+ GDataInsDecl l dn t mk gds ders -> GDataInsDecl (f l) (fmap f dn) (fmap f t) (fmap (fmap f) mk) (map (fmap f) gds) (fmap (fmap f) ders)+ ClassDecl l mcx dh fds mcds -> ClassDecl (f l) (fmap (fmap f) mcx) (fmap f dh) (map (fmap f) fds) (fmap (map (fmap f)) mcds)+ InstDecl l mcx ih mids -> InstDecl (f l) (fmap (fmap f) mcx) (fmap f ih) (fmap (map (fmap f)) mids)+ DerivDecl l mcx ih -> DerivDecl (f l) (fmap (fmap f) mcx) (fmap f ih) InfixDecl l a k ops -> InfixDecl (f l) (fmap f a) k (map (fmap f) ops) DefaultDecl l ts -> DefaultDecl (f l) (map (fmap f) ts) SpliceDecl l sp -> SpliceDecl (f l) (fmap f sp)@@ -1188,14 +1212,27 @@ WarnPragmaDecl l nss -> WarnPragmaDecl (f l) (map (wp f) nss) InlineSig l b mact qn -> InlineSig (f l) b (fmap (fmap f) mact) (fmap f qn) SpecInlineSig l b mact qn ts -> SpecInlineSig (f l) b (fmap (fmap f) mact) (fmap f qn) (map (fmap f) ts)- SpecSig l qn ts -> SpecSig (f l) (fmap f qn) (map (fmap f) ts)- InstSig l mcx qn ts -> InstSig (f l) (fmap (fmap f) mcx) (fmap f qn) (map (fmap f) ts)+ SpecSig l qn ts -> SpecSig (f l) (fmap f qn) (map (fmap f) ts)+ InstSig l mcx ih -> InstSig (f l) (fmap (fmap f) mcx) (fmap f ih) where wp f (ns, s) = (map (fmap f) ns, s) instance Functor DataOrNew where fmap f (DataType l) = DataType (f l) fmap f (NewType l) = NewType (f l) +instance Functor DeclHead where+ fmap f (DHead l n tvs) = DHead (f l) (fmap f n) (map (fmap f) tvs)+ fmap f (DHInfix l tva n tvb) = DHInfix (f l) (fmap f tva) (fmap f n) (fmap f tvb)+ fmap f (DHParen l dh) = DHParen (f l) (fmap f dh)++instance Functor InstHead where+ fmap f (IHead l qn ts) = IHead (f l) (fmap f qn) (map (fmap f) ts)+ fmap f (IHInfix l ta qn tb) = IHInfix (f l) (fmap f ta) (fmap f qn) (fmap f tb)+ fmap f (IHParen l ih) = IHParen (f l) (fmap f ih)++instance Functor Deriving where+ fmap f (Deriving l ihs) = Deriving (f l) (map (fmap f) ihs)+ instance Functor Binds where fmap f (BDecls l decls) = BDecls (f l) (map (fmap f) decls) fmap f (IPBinds l ibs) = IPBinds (f l) (map (fmap f) ibs)@@ -1204,8 +1241,10 @@ fmap f (IPBind l ipn e) = IPBind (f l) (fmap f ipn) (fmap f e) instance Functor Match where- fmap f (Match l n ps mt rhs bs) =- Match (f l) (fmap f n) (map (fmap f) ps) (fmap (fmap f) mt) (fmap f rhs) (fmap (fmap f) bs)+ fmap f (Match l n ps rhs bs) =+ Match (f l) (fmap f n) (map (fmap f) ps) (fmap f rhs) (fmap (fmap f) bs)+ fmap f (InfixMatch l a n b rhs bs) =+ InfixMatch (f l) (fmap f a) (fmap f n) (fmap f b) (fmap f rhs) (fmap (fmap f) bs) instance Functor QualConDecl where fmap f (QualConDecl l mtvs mcx cd) = QualConDecl (f l) (fmap (map (fmap f)) mtvs) (fmap (fmap f) mcx) (fmap f cd)@@ -1223,8 +1262,8 @@ instance Functor ClassDecl where fmap f (ClsDecl l d) = ClsDecl (f l) (fmap f d)- fmap f (ClsDataFam l mcx n tvs mk) = ClsDataFam (f l) (fmap (fmap f) mcx) (fmap f n) (map (fmap f) tvs) (fmap (fmap f) mk)- fmap f (ClsTyFam l n tvs mk) = ClsTyFam (f l) (fmap f n) (map (fmap f) tvs) (fmap (fmap f) mk)+ fmap f (ClsDataFam l mcx dh mk) = ClsDataFam (f l) (fmap (fmap f) mcx) (fmap f dh) (fmap (fmap f) mk)+ fmap f (ClsTyFam l dh mk) = ClsTyFam (f l) (fmap f dh) (fmap (fmap f) mk) fmap f (ClsTyDef l t1 t2) = ClsTyDef (f l) (fmap f t1) (fmap f t2) instance Functor InstDecl where@@ -1232,9 +1271,9 @@ InsDecl l d -> InsDecl (f l) (fmap f d) InsType l t1 t2 -> InsType (f l) (fmap f t1) (fmap f t2) InsData l dn t cds ders- -> InsData (f l) (fmap f dn) (fmap f t) (map (fmap f) cds) (fmap (map (fmap f)) ders)+ -> InsData (f l) (fmap f dn) (fmap f t) (map (fmap f) cds) (fmap (fmap f) ders) InsGData l dn t mk gds ders- -> InsGData (f l) (fmap f dn) (fmap f t) (fmap (fmap f) mk) (map (fmap f) gds) (fmap (map (fmap f)) ders)+ -> InsGData (f l) (fmap f dn) (fmap f t) (fmap (fmap f) mk) (map (fmap f) gds) (fmap (fmap f) ders) InsInline l b mact qn -> InsInline (f l) b (fmap (fmap f) mact) (fmap f qn) instance Functor BangType where@@ -1275,7 +1314,10 @@ fmap f (FunDep l ns1 ns2) = FunDep (f l) (map (fmap f) ns1) (map (fmap f) ns2) instance Functor Context where- fmap f (Context l assts) = Context (f l) (map (fmap f) assts)+ fmap f (CxSingle l asst) = CxSingle (f l) (fmap f asst)+ fmap f (CxTuple l assts) = CxTuple (f l) (map (fmap f) assts)+ fmap f (CxParen l ctxt) = CxParen (f l) (fmap f ctxt)+ fmap f (CxEmpty l) = CxEmpty (f l) instance Functor Asst where fmap f asst = case asst of@@ -1286,16 +1328,16 @@ instance Functor Literal where fmap f lit = case lit of- Char l c -> Char (f l) c- String l s -> String (f l) s- Int l i -> Int (f l) i- Frac l r -> Frac (f l) r- PrimInt l i -> PrimInt (f l) i- PrimWord l i -> PrimWord (f l) i- PrimFloat l r -> PrimFloat (f l) r- PrimDouble l r -> PrimDouble (f l) r- PrimChar l c -> PrimChar (f l) c- PrimString l s -> PrimString (f l) s+ Char l c rw -> Char (f l) c rw+ String l s rw -> String (f l) s rw+ Int l i rw -> Int (f l) i rw+ Frac l r rw -> Frac (f l) r rw+ PrimInt l i rw -> PrimInt (f l) i rw+ PrimWord l i rw -> PrimWord (f l) i rw+ PrimFloat l r rw -> PrimFloat (f l) r rw+ PrimDouble l r rw -> PrimDouble (f l) r rw+ PrimChar l c rw -> PrimChar (f l) c rw+ PrimString l s rw -> PrimString (f l) s rw instance Functor Exp where fmap f e = case e of@@ -1599,22 +1641,22 @@ amap = fmap instance Annotated Deriving where- ann (Deriving l qn ts) = l- amap f (Deriving l qn ts) = Deriving (f l) qn ts+ ann (Deriving l ihs) = l+ amap f (Deriving l ihs) = Deriving (f l) ihs instance Annotated Decl where ann decl = case decl of- TypeDecl l n tvs t -> l- TypeFamDecl l n tvs mk -> l- DataDecl l dn cx n tvs cds ders -> l- GDataDecl l dn cx n tvs mk gds ders -> l- DataFamDecl l cx n tvs mk -> l+ TypeDecl l dh t -> l+ TypeFamDecl l dh mk -> l+ DataDecl l dn cx dh cds ders -> l+ GDataDecl l dn cx dh mk gds ders -> l+ DataFamDecl l cx dh mk -> l TypeInsDecl l t1 t2 -> l DataInsDecl l dn t cds ders -> l GDataInsDecl l dn t mk gds ders -> l- ClassDecl l cx n tvs fds cds -> l- InstDecl l cx qn ts ids -> l- DerivDecl l cx qn ts -> l+ ClassDecl l cx dh fds cds -> l+ InstDecl l cx ih ids -> l+ DerivDecl l cx ih -> l InfixDecl l a k ops -> l DefaultDecl l ts -> l SpliceDecl l sp -> l@@ -1627,23 +1669,23 @@ DeprPragmaDecl l nss -> l WarnPragmaDecl l nss -> l InlineSig l b act qn -> l- SpecSig l qn ts -> l+ SpecSig l qn ts -> l SpecInlineSig l b act qn ts -> l- InstSig l cx qn ts -> l+ InstSig l cx ih -> l amap f decl = case decl of- TypeDecl l n tvs t -> TypeDecl (f l) n tvs t- TypeFamDecl l n tvs mk -> TypeFamDecl (f l) n tvs mk- DataDecl l dn mcx n tvs cds ders ->- DataDecl (f l) dn mcx n tvs cds ders- GDataDecl l dn mcx n tvs mk gds ders ->- GDataDecl (f l) dn mcx n tvs mk gds ders- DataFamDecl l mcx n tvs mk -> DataFamDecl (f l) mcx n tvs mk+ TypeDecl l dh t -> TypeDecl (f l) dh t+ TypeFamDecl l dh mk -> TypeFamDecl (f l) dh mk+ DataDecl l dn mcx dh cds ders ->+ DataDecl (f l) dn mcx dh cds ders+ GDataDecl l dn mcx dh mk gds ders ->+ GDataDecl (f l) dn mcx dh mk gds ders+ DataFamDecl l mcx dh mk -> DataFamDecl (f l) mcx dh mk TypeInsDecl l t1 t2 -> TypeInsDecl (f l) t1 t2 DataInsDecl l dn t cds ders -> DataInsDecl (f l) dn t cds ders GDataInsDecl l dn t mk gds ders -> GDataInsDecl (f l) dn t mk gds ders- ClassDecl l mcx n tvs fds cds -> ClassDecl (f l) mcx n tvs fds cds- InstDecl l mcx qn ts ids -> InstDecl (f l) mcx qn ts ids- DerivDecl l mcx qn ts -> DerivDecl (f l) mcx qn ts+ ClassDecl l mcx dh fds cds -> ClassDecl (f l) mcx dh fds cds+ InstDecl l mcx ih ids -> InstDecl (f l) mcx ih ids+ DerivDecl l mcx ih -> DerivDecl (f l) mcx ih InfixDecl l a k ops -> InfixDecl (f l) a k ops DefaultDecl l ts -> DefaultDecl (f l) ts SpliceDecl l sp -> SpliceDecl (f l) sp@@ -1658,13 +1700,29 @@ InlineSig l b act qn -> InlineSig (f l) b act qn SpecSig l qn ts -> SpecSig (f l) qn ts SpecInlineSig l b act qn ts -> SpecInlineSig (f l) b act qn ts- InstSig l mcx qn ts -> InstSig (f l) mcx qn ts+ InstSig l mcx ih -> InstSig (f l) mcx ih instance Annotated DataOrNew where ann (DataType l) = l ann (NewType l) = l amap = fmap +instance Annotated DeclHead where+ ann (DHead l n tvs) = l+ ann (DHInfix l tva n tvb) = l+ ann (DHParen l dh) = l+ amap f (DHead l n tvs) = DHead (f l) n tvs+ amap f (DHInfix l tva n tvb) = DHInfix (f l) tva n tvb+ amap f (DHParen l dh) = DHParen (f l) dh++instance Annotated InstHead where+ ann (IHead l qn ts) = l+ ann (IHInfix l ta qn tb) = l+ ann (IHParen l ih) = l+ amap f (IHead l qn ts) = IHead (f l) qn ts+ amap f (IHInfix l ta qn tb) = IHInfix (f l) ta qn tb+ amap f (IHParen l ih) = IHParen (f l) ih+ instance Annotated Binds where ann (BDecls l decls) = l ann (IPBinds l ibs) = l@@ -1676,8 +1734,10 @@ amap f (IPBind l ipn e) = IPBind (f l) ipn e instance Annotated Match where- ann (Match l n ps mt rhs bs) = l- amap f (Match l n ps mt rhs bs) = Match (f l) n ps mt rhs bs+ ann (Match l n ps rhs bs) = l+ ann (InfixMatch l a n b rhs bs) = l+ amap f (Match l n ps rhs bs) = Match (f l) n ps rhs bs+ amap f (InfixMatch l a n b rhs bs) = InfixMatch (f l) a n b rhs bs instance Annotated QualConDecl where ann (QualConDecl l tvs cx cd) = l@@ -1701,12 +1761,12 @@ instance Annotated ClassDecl where ann (ClsDecl l d) = l- ann (ClsDataFam l cx n tvs mk) = l- ann (ClsTyFam l n tvs mk) = l+ ann (ClsDataFam l cx dh mk) = l+ ann (ClsTyFam l dh mk) = l ann (ClsTyDef l t1 t2) = l amap f (ClsDecl l d) = ClsDecl (f l) d- amap f (ClsDataFam l mcx n tvs mk) = ClsDataFam (f l) mcx n tvs mk- amap f (ClsTyFam l n tvs mk) = ClsTyFam (f l) n tvs mk+ amap f (ClsDataFam l mcx dh mk) = ClsDataFam (f l) mcx dh mk+ amap f (ClsTyFam l dh mk) = ClsTyFam (f l) dh mk amap f (ClsTyDef l t1 t2) = ClsTyDef (f l) t1 t2 instance Annotated InstDecl where@@ -1784,8 +1844,14 @@ amap f (FunDep l ns1 ns2) = FunDep (f l) ns1 ns2 instance Annotated Context where- ann (Context l assts) = l- amap f (Context l assts) = Context (f l) assts+ ann (CxSingle l asst ) = l+ ann (CxTuple l assts) = l+ ann (CxParen l ctxt ) = l+ ann (CxEmpty l) = l+ amap f (CxSingle l asst ) = CxSingle (f l) asst+ amap f (CxTuple l assts) = CxTuple (f l) assts+ amap f (CxParen l ctxt ) = CxParen (f l) ctxt+ amap f (CxEmpty l) = CxEmpty (f l) instance Annotated Asst where ann asst = case asst of@@ -1801,16 +1867,16 @@ instance Annotated Literal where ann lit = case lit of- Char l c -> l- String l s -> l- Int l i -> l- Frac l r -> l- PrimInt l i -> l- PrimWord l i -> l- PrimFloat l r -> l- PrimDouble l r -> l- PrimChar l c -> l- PrimString l s -> l+ Char l c rw -> l+ String l s rw -> l+ Int l i rw -> l+ Frac l r rw -> l+ PrimInt l i rw -> l+ PrimWord l i rw -> l+ PrimFloat l r rw -> l+ PrimDouble l r rw -> l+ PrimChar l c rw -> l+ PrimString l s rw -> l amap = fmap instance Annotated Exp where
src/Language/Haskell/Exts/ParseUtils.hs view
@@ -222,6 +222,7 @@ Symbol _ -> checkEnabled TypeOperators _ -> return () return (t,xs)+checkSimple kw (TyParen t) xs = checkSimple kw t xs checkSimple kw _ _ = fail ("Illegal " ++ kw ++ " declaration") isTyVarBind :: PType -> Bool