[add haddoc output to darcs Chris Kuklewicz **20090322134056 Ignore-this: 15922eed459cebbb6a3b5a5ca939718d ] { adddir ./doc adddir ./doc/html adddir ./doc/html/regex-tdfa addfile ./doc/html/regex-tdfa/Data-IntMap-CharMap2.html addfile ./doc/html/regex-tdfa/Data-IntMap-EnumMap2.html addfile ./doc/html/regex-tdfa/Data-IntSet-EnumSet2.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-ByteString-Lazy.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-ByteString.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-Common.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-CorePattern.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-IntArrTrieSet.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-Engine.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-Engine_FA.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-Engine_NC.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-Engine_NC_FA.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-MakeTest.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-Tester.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-Uncons.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-Pattern.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-ReadRegex.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-Sequence.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-String.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-TDFA.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA-TNFA.html addfile ./doc/html/regex-tdfa/Text-Regex-TDFA.html addfile ./doc/html/regex-tdfa/doc-index.html addfile ./doc/html/regex-tdfa/haddock-util.js addfile ./doc/html/regex-tdfa/haddock.css addfile ./doc/html/regex-tdfa/haskell_icon.gif addfile ./doc/html/regex-tdfa/index.html addfile ./doc/html/regex-tdfa/minus.gif addfile ./doc/html/regex-tdfa/plus.gif addfile ./doc/html/regex-tdfa/regex-tdfa.haddock hunk ./Text/Regex/TDFA/Common.hs 90 - `[^' bracket expressions and `.' never match newline, a `^' anchor matches the + inverted bracket expressions and . never match newline, a ^ anchor matches the hunk ./Text/Regex/TDFA/Common.hs 92 - function, and the `$' anchor matches the null string before any newline in the + function, and the $ anchor matches the null string before any newline in the hunk ./Text/Regex/TDFA/Common.hs 105 --- | Used by implementation to name certain Postions during matching -type Tag = Int -- ^ identity of Position tag to set during a transition +-- | Used by implementation to name certain Postions during +-- matching. Identity of Position tag to set during a transition +type Tag = Int hunk ./Text/Regex/TDFA/Common.hs 110 -type Index = Int -- ^ Internal NFA node identity number -type SetIndex = IntSet {- Index -} -- ^ Internal DFA identity is this Set of NFA Index -type Position = Int -- ^ Index into the text being searched +-- | Internal NFA node identity number +type Index = Int +-- | Internal DFA identity is this Set of NFA Index +type SetIndex = IntSet {- Index -} +-- | Index into the text being searched +type Position = Int hunk ./doc/html/regex-tdfa/Data-IntMap-CharMap2.html 1 + + +Data.IntMap.CharMap2
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Data.IntMap.CharMap2
Documentation
newtype CharMap a
Constructors
CharMap
unCharMap :: IntMap a
show/hide Instances
type Key = Char
(!) :: CharMap a -> Key -> a
(\\) :: CharMap a -> CharMap b -> CharMap a
null :: CharMap a -> Bool
size :: CharMap a -> Int
member :: Key -> CharMap a -> Bool
notMember :: Key -> CharMap a -> Bool
lookup :: Key -> CharMap a -> Maybe a
findWithDefault :: a -> Key -> CharMap a -> a
empty :: CharMap a
singleton :: Key -> a -> CharMap a
insert :: Key -> a -> CharMap a -> CharMap a
insertWith :: (a -> a -> a) -> Key -> a -> CharMap a -> CharMap a
insertWithKey :: (Key -> a -> a -> a) -> Key -> a -> CharMap a -> CharMap a
insertLookupWithKey :: (Key -> a -> a -> a) -> Key -> a -> CharMap a -> (Maybe a, CharMap a)
delete :: Key -> CharMap a -> CharMap a
adjust :: (a -> a) -> Key -> CharMap a -> CharMap a
adjustWithKey :: (Key -> a -> a) -> Key -> CharMap a -> CharMap a
update :: (a -> Maybe a) -> Key -> CharMap a -> CharMap a
updateWithKey :: (Key -> a -> Maybe a) -> Key -> CharMap a -> CharMap a
updateLookupWithKey :: (Key -> a -> Maybe a) -> Key -> CharMap a -> (Maybe a, CharMap a)
union :: CharMap a -> CharMap a -> CharMap a
unionWith :: (a -> a -> a) -> CharMap a -> CharMap a -> CharMap a
unionWithKey :: (Key -> a -> a -> a) -> CharMap a -> CharMap a -> CharMap a
unions :: [CharMap a] -> CharMap a
unionsWith :: (a -> a -> a) -> [CharMap a] -> CharMap a
difference :: CharMap a -> CharMap b -> CharMap a
differenceWith :: (a -> b -> Maybe a) -> CharMap a -> CharMap b -> CharMap a
differenceWithKey :: (Key -> a -> b -> Maybe a) -> CharMap a -> CharMap b -> CharMap a
intersection :: CharMap a -> CharMap b -> CharMap a
intersectionWith :: (a -> b -> a) -> CharMap a -> CharMap b -> CharMap a
intersectionWithKey :: (Key -> a -> b -> a) -> CharMap a -> CharMap b -> CharMap a
map :: (a -> b) -> CharMap a -> CharMap b
mapWithKey :: (Key -> a -> b) -> CharMap a -> CharMap b
mapAccum :: (a -> b -> (a, c)) -> a -> CharMap b -> (a, CharMap c)
mapAccumWithKey :: (a -> Key -> b -> (a, c)) -> a -> CharMap b -> (a, CharMap c)
fold :: (a -> b -> b) -> b -> CharMap a -> b
foldWithKey :: (Key -> a -> b -> b) -> b -> CharMap a -> b
elems :: CharMap a -> [a]
keys :: CharMap a -> [Key]
keysSet :: CharMap a -> IntSet
assocs :: CharMap a -> [(Key, a)]
toList :: CharMap a -> [(Key, a)]
fromList :: [(Key, a)] -> CharMap a
fromListWith :: (a -> a -> a) -> [(Key, a)] -> CharMap a
fromListWithKey :: (Key -> a -> a -> a) -> [(Key, a)] -> CharMap a
toAscList :: CharMap a -> [(Key, a)]
fromAscList :: [(Key, a)] -> CharMap a
fromAscListWith :: (a -> a -> a) -> [(Key, a)] -> CharMap a
fromAscListWithKey :: (Key -> a -> a -> a) -> [(Key, a)] -> CharMap a
fromDistinctAscList :: [(Key, a)] -> CharMap a
filter :: (a -> Bool) -> CharMap a -> CharMap a
filterWithKey :: (Key -> a -> Bool) -> CharMap a -> CharMap a
partition :: (a -> Bool) -> CharMap a -> (CharMap a, CharMap a)
partitionWithKey :: (Key -> a -> Bool) -> CharMap a -> (CharMap a, CharMap a)
mapMaybe :: (a -> Maybe b) -> CharMap a -> CharMap b
mapMaybeWithKey :: (Key -> a -> Maybe b) -> CharMap a -> CharMap b
mapEither :: (a -> Either b c) -> CharMap a -> (CharMap b, CharMap c)
mapEitherWithKey :: (Key -> a -> Either b c) -> CharMap a -> (CharMap b, CharMap c)
split :: Key -> CharMap a -> (CharMap a, CharMap a)
splitLookup :: Key -> CharMap a -> (CharMap a, Maybe a, CharMap a)
isSubmapOf :: Eq a => CharMap a -> CharMap a -> Bool
isSubmapOfBy :: (a -> b -> Bool) -> CharMap a -> CharMap b -> Bool
isProperSubmapOf :: Eq a => CharMap a -> CharMap a -> Bool
isProperSubmapOfBy :: (a -> b -> Bool) -> CharMap a -> CharMap b -> Bool
showTree :: Show a => CharMap a -> String
showTreeWith :: Show a => Bool -> Bool -> CharMap a -> String
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Data-IntMap-EnumMap2.html 1 + + +Data.IntMap.EnumMap2
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Data.IntMap.EnumMap2
Documentation
newtype EnumMap k a
Constructors
EnumMap
unEnumMap :: IntMap a
show/hide Instances
Ord k => Functor (EnumMap k)
Ord k => Foldable (EnumMap k)
Eq a => Eq (EnumMap k a)
Ord a => Ord (EnumMap k a)
Read a => Read (EnumMap k a)
Show a => Show (EnumMap k a)
Ord k => Monoid (EnumMap k a)
(!) :: Enum key => EnumMap key a -> key -> a
(\\) :: Enum key => EnumMap key a -> EnumMap key b -> EnumMap key a
null :: Enum key => EnumMap key a -> Bool
size :: Enum key => EnumMap key a -> Int
member :: Enum key => key -> EnumMap key a -> Bool
notMember :: Enum key => key -> EnumMap key a -> Bool
lookup :: Enum key => key -> EnumMap key a -> Maybe a
findWithDefault :: Enum key => a -> key -> EnumMap key a -> a
empty :: Enum key => EnumMap key a
singleton :: Enum key => key -> a -> EnumMap key a
insert :: Enum key => key -> a -> EnumMap key a -> EnumMap key a
insertWith :: Enum key => (a -> a -> a) -> key -> a -> EnumMap key a -> EnumMap key a
insertWithKey :: Enum key => (key -> a -> a -> a) -> key -> a -> EnumMap key a -> EnumMap key a
insertLookupWithKey :: Enum key => (key -> a -> a -> a) -> key -> a -> EnumMap key a -> (Maybe a, EnumMap key a)
delete :: Enum key => key -> EnumMap key a -> EnumMap key a
adjust :: Enum key => (a -> a) -> key -> EnumMap key a -> EnumMap key a
adjustWithKey :: Enum key => (key -> a -> a) -> key -> EnumMap key a -> EnumMap key a
update :: Enum key => (a -> Maybe a) -> key -> EnumMap key a -> EnumMap key a
updateWithKey :: Enum key => (key -> a -> Maybe a) -> key -> EnumMap key a -> EnumMap key a
updateLookupWithKey :: Enum key => (key -> a -> Maybe a) -> key -> EnumMap key a -> (Maybe a, EnumMap key a)
union :: Enum key => EnumMap key a -> EnumMap key a -> EnumMap key a
unionWith :: Enum key => (a -> a -> a) -> EnumMap key a -> EnumMap key a -> EnumMap key a
unionWithKey :: Enum key => (key -> a -> a -> a) -> EnumMap key a -> EnumMap key a -> EnumMap key a
unions :: Enum key => [EnumMap key a] -> EnumMap key a
unionsWith :: Enum key => (a -> a -> a) -> [EnumMap key a] -> EnumMap key a
difference :: Enum key => EnumMap key a -> EnumMap key b -> EnumMap key a
differenceWith :: Enum key => (a -> b -> Maybe a) -> EnumMap key a -> EnumMap key b -> EnumMap key a
differenceWithKey :: Enum key => (key -> a -> b -> Maybe a) -> EnumMap key a -> EnumMap key b -> EnumMap key a
intersection :: Enum key => EnumMap key a -> EnumMap key b -> EnumMap key a
intersectionWith :: Enum key => (a -> b -> a) -> EnumMap key a -> EnumMap key b -> EnumMap key a
intersectionWithKey :: Enum key => (key -> a -> b -> a) -> EnumMap key a -> EnumMap key b -> EnumMap key a
map :: Enum key => (a -> b) -> EnumMap key a -> EnumMap key b
mapWithKey :: Enum key => (key -> a -> b) -> EnumMap key a -> EnumMap key b
mapAccum :: Enum key => (a -> b -> (a, c)) -> a -> EnumMap key b -> (a, EnumMap key c)
mapAccumWithKey :: Enum key => (a -> key -> b -> (a, c)) -> a -> EnumMap key b -> (a, EnumMap key c)
fold :: Enum key => (a -> b -> b) -> b -> EnumMap key a -> b
foldWithKey :: Enum key => (key -> a -> b -> b) -> b -> EnumMap key a -> b
elems :: Enum key => EnumMap key a -> [a]
keys :: Enum key => EnumMap key a -> [key]
keysSet :: Enum key => EnumMap key a -> EnumSet key
assocs :: Enum key => EnumMap key a -> [(key, a)]
toList :: Enum key => EnumMap key a -> [(key, a)]
fromList :: Enum key => [(key, a)] -> EnumMap key a
fromListWith :: Enum key => (a -> a -> a) -> [(key, a)] -> EnumMap key a
fromListWithKey :: Enum key => (key -> a -> a -> a) -> [(key, a)] -> EnumMap key a
toAscList :: Enum key => EnumMap key a -> [(key, a)]
fromAscList :: Enum key => [(key, a)] -> EnumMap key a
fromAscListWith :: Enum key => (a -> a -> a) -> [(key, a)] -> EnumMap key a
fromAscListWithKey :: Enum key => (key -> a -> a -> a) -> [(key, a)] -> EnumMap key a
fromDistinctAscList :: Enum key => [(key, a)] -> EnumMap key a
filter :: Enum key => (a -> Bool) -> EnumMap key a -> EnumMap key a
filterWithKey :: Enum key => (key -> a -> Bool) -> EnumMap key a -> EnumMap key a
partition :: Enum key => (a -> Bool) -> EnumMap key a -> (EnumMap key a, EnumMap key a)
partitionWithKey :: Enum key => (key -> a -> Bool) -> EnumMap key a -> (EnumMap key a, EnumMap key a)
mapMaybe :: Enum key => (a -> Maybe b) -> EnumMap key a -> EnumMap key b
mapMaybeWithKey :: Enum key => (key -> a -> Maybe b) -> EnumMap key a -> EnumMap key b
mapEither :: Enum key => (a -> Either b c) -> EnumMap key a -> (EnumMap key b, EnumMap key c)
mapEitherWithKey :: Enum key => (key -> a -> Either b c) -> EnumMap key a -> (EnumMap key b, EnumMap key c)
split :: Enum key => key -> EnumMap key a -> (EnumMap key a, EnumMap key a)
splitLookup :: Enum key => key -> EnumMap key a -> (EnumMap key a, Maybe a, EnumMap key a)
isSubmapOf :: (Enum key, Eq a) => EnumMap key a -> EnumMap key a -> Bool
isSubmapOfBy :: Enum key => (a -> b -> Bool) -> EnumMap key a -> EnumMap key b -> Bool
isProperSubmapOf :: (Enum key, Eq a) => EnumMap key a -> EnumMap key a -> Bool
isProperSubmapOfBy :: Enum key => (a -> b -> Bool) -> EnumMap key a -> EnumMap key b -> Bool
showTree :: (Enum key, Show a) => EnumMap key a -> String
showTreeWith :: (Enum key, Show a) => Bool -> Bool -> EnumMap key a -> String
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Data-IntSet-EnumSet2.html 1 + + +Data.IntSet.EnumSet2
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Data.IntSet.EnumSet2
Documentation
newtype EnumSet e
Constructors
EnumSet
unEnumSet :: IntSet
show/hide Instances
(\\) :: Enum e => EnumSet e -> EnumSet e -> EnumSet e
null :: Enum e => EnumSet e -> Bool
size :: Enum e => EnumSet e -> Int
member :: Enum e => e -> EnumSet e -> Bool
notMember :: Enum e => Int -> EnumSet e -> Bool
isSubsetOf :: Enum e => EnumSet e -> EnumSet e -> Bool
isProperSubsetOf :: Enum e => EnumSet e -> EnumSet e -> Bool
empty :: Enum e => EnumSet e
singleton :: Enum e => e -> EnumSet e
insert :: Enum e => e -> EnumSet e -> EnumSet e
delete :: Enum e => e -> EnumSet e -> EnumSet e
union :: Enum e => EnumSet e -> EnumSet e -> EnumSet e
unions :: Enum e => [EnumSet e] -> EnumSet e
difference :: Enum e => EnumSet e -> EnumSet e -> EnumSet e
intersection :: Enum e => EnumSet e -> EnumSet e -> EnumSet e
filter :: Enum e => (e -> Bool) -> EnumSet e -> EnumSet e
partition :: Enum e => (e -> Bool) -> EnumSet e -> (EnumSet e, EnumSet e)
split :: Enum e => e -> EnumSet e -> (EnumSet e, EnumSet e)
splitMember :: Enum e => e -> EnumSet e -> (EnumSet e, Bool, EnumSet e)
map :: Enum e => (e -> e) -> EnumSet e -> EnumSet e
fold :: Enum e => (e -> b -> b) -> b -> EnumSet e -> b
elems :: Enum e => EnumSet e -> [e]
toList :: Enum e => EnumSet e -> [e]
fromList :: Enum e => [e] -> EnumSet e
toAscList :: Enum e => EnumSet e -> [e]
fromAscList :: Enum e => [e] -> EnumSet e
fromDistinctAscList :: Enum e => [e] -> EnumSet e
showTree :: Enum e => EnumSet e -> String
showTreeWith :: Enum e => Bool -> Bool -> EnumSet e -> String
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-ByteString-Lazy.html 1 + + +Text.Regex.TDFA.ByteString.Lazy
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.ByteString.Lazy
Description

This modules provides RegexMaker and RegexLike instances for using +ByteString with the DFA backend (Text.Regex.Lib.WrapDFAEngine and +Text.Regex.Lazy.DFAEngineFPS). This module is usually used via +import Text.Regex.TDFA. +

This exports instances of the high level API and the medium level +API of compile,execute, and regexec. +

Synopsis
data Regex
data CompOption
data ExecOption
compile :: CompOption -> ExecOption -> ByteString -> Either String Regex
execute :: Regex -> ByteString -> Either String (Maybe MatchArray)
regexec :: Regex -> ByteString -> Either String (Maybe (ByteString, ByteString, ByteString, [ByteString]))
Documentation
data Regex
The TDFA backend specific Regex type, used by this module's RegexOptions and RegexMaker +
show/hide Instances
data CompOption
Control whether the pattern is multiline or case-sensitive like Text.Regex and whether to + capture the subgroups (1, 2, etc). Controls enabling extra anchor syntax. +
show/hide Instances
data ExecOption
show/hide Instances
compile
:: CompOptionFlags (summed together) +
-> ExecOptionFlags (summed together) +
-> ByteStringThe regular expression to compile +
-> Either String RegexReturns: the compiled regular expression +
execute
:: RegexCompiled regular expression +
-> ByteStringByteString to match against +
-> Either String (Maybe MatchArray)
regexec
:: RegexCompiled regular expression +
-> ByteStringByteString to match against +
-> Either String (Maybe (ByteString, ByteString, ByteString, [ByteString]))
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-ByteString.html 1 + + +Text.Regex.TDFA.ByteString
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.ByteString
Description

This modules provides RegexMaker and RegexLike instances for using +ByteString with the DFA backend (Text.Regex.Lib.WrapDFAEngine and +Text.Regex.Lazy.DFAEngineFPS). This module is usually used via +import Text.Regex.TDFA. +

This exports instances of the high level API and the medium level +API of compile,execute, and regexec. +

Synopsis
data Regex
data CompOption
data ExecOption
compile :: CompOption -> ExecOption -> ByteString -> Either String Regex
execute :: Regex -> ByteString -> Either String (Maybe MatchArray)
regexec :: Regex -> ByteString -> Either String (Maybe (ByteString, ByteString, ByteString, [ByteString]))
Documentation
data Regex
The TDFA backend specific Regex type, used by this module's RegexOptions and RegexMaker +
show/hide Instances
data CompOption
Control whether the pattern is multiline or case-sensitive like Text.Regex and whether to + capture the subgroups (1, 2, etc). Controls enabling extra anchor syntax. +
show/hide Instances
data ExecOption
show/hide Instances
compile
:: CompOptionFlags (summed together) +
-> ExecOptionFlags (summed together) +
-> ByteStringThe regular expression to compile +
-> Either String RegexReturns: the compiled regular expression +
execute
:: RegexCompiled regular expression +
-> ByteStringByteString to match against +
-> Either String (Maybe MatchArray)
regexec
:: RegexCompiled regular expression +
-> ByteStringByteString to match against +
-> Either String (Maybe (ByteString, ByteString, ByteString, [ByteString]))
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-Common.html 1 + + +Text.Regex.TDFA.Common
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.Common
Description
Common provides simple functions to the backend. It defines most + of the data types. All modules should call error via the + common_error function below. +
Synopsis
look :: Int -> IntMap a -> a
common_error :: String -> String -> a
on :: (t1 -> t1 -> t2) -> (t -> t1) -> t -> t -> t2
norep :: Eq a => [a] -> [a]
norepBy :: (a -> a -> Bool) -> [a] -> [a]
mapFst :: Functor f => (t -> t2) -> f (t, t1) -> f (t2, t1)
mapSnd :: Functor f => (t1 -> t2) -> f (t, t1) -> f (t, t2)
fst3 :: (a, b, c) -> a
snd3 :: (a, b, c) -> b
thd3 :: (a, b, c) -> c
flipOrder :: Ordering -> Ordering
noWin :: WinTags -> Bool
newtype DoPa = DoPa {
dopaIndex :: Int
}
data CompOption = CompOption {
caseSensitive :: Bool
multiline :: Bool
rightAssoc :: Bool
newSyntax :: Bool
lastStarGreedy :: Bool
}
data ExecOption = ExecOption {
captureGroups :: Bool
}
type Tag = Int
data OP
= Maximize
| Minimize
| Orbit
| Ignore
type Index = Int
type SetIndex = IntSet
type Position = Int
type GroupIndex = Int
data GroupInfo = GroupInfo {
thisIndex :: GroupIndex
parentIndex :: GroupIndex
startTag :: Tag
stopTag :: Tag
flagTag :: Tag
}
data Regex = Regex {
regex_dfa :: DFA
regex_init :: Index
regex_b_index :: (Index, Index)
regex_b_tags :: (Tag, Tag)
regex_trie :: TrieSet DFA
regex_tags :: Array Tag OP
regex_groups :: Array GroupIndex [GroupInfo]
regex_isFrontAnchored :: Bool
regex_compOptions :: CompOption
regex_execOptions :: ExecOption
}
data WinEmpty
= WinEmpty Instructions
| WinTest WhichTest (Maybe WinEmpty) (Maybe WinEmpty)
data QNFA = QNFA {
q_id :: Index
q_qt :: QT
}
data QT
= Simple {
qt_win :: WinTags
qt_trans :: CharMap QTrans
qt_other :: QTrans
}
| Testing {
qt_test :: WhichTest
qt_dopas :: EnumSet DoPa
qt_a :: QT
qt_b :: QT
}
type QTrans = IntMap [TagCommand]
data WhichTest
= Test_BOL
| Test_EOL
| Test_BOB
| Test_EOB
| Test_BOW
| Test_EOW
| Test_EdgeWord
| Test_NotEdgeWord
data TagTask
= TagTask
| ResetGroupStopTask
| SetGroupStopTask
| ResetOrbitTask
| EnterOrbitTask
| LeaveOrbitTask
type TagTasks = [(Tag, TagTask)]
data TagUpdate
= PreUpdate TagTask
| PostUpdate TagTask
type TagList = [(Tag, TagUpdate)]
type TagCommand = (DoPa, TagList)
type WinTags = TagList
data DFA = DFA {
d_id :: SetIndex
d_dt :: DT
}
data Transition = Transition {
trans_many :: DFA
trans_single :: DFA
trans_how :: DTrans
}
data DT
= Simple' {
dt_win :: IntMap Instructions
dt_trans :: CharMap Transition
dt_other :: Transition
}
| Testing' {
dt_test :: WhichTest
dt_dopas :: EnumSet DoPa
dt_a :: DT
dt_b :: DT
}
type DTrans = IntMap (IntMap (DoPa, Instructions))
type DTrans' = [(Index, [(Index, (DoPa, ([(Tag, (Position, Bool))], [String])))])]
data Orbits = Orbits {
inOrbit :: !Bool
basePos :: Position
ordinal :: Maybe Int
getOrbits :: !(Seq Position)
}
data Instructions = Instructions {
newPos :: ![(Tag, Action)]
newOrbits :: !(Maybe (Position -> OrbitTransformer))
}
data Action
= SetPre
| SetPost
| SetVal Int
type OrbitTransformer = OrbitLog -> OrbitLog
type OrbitLog = IntMap Orbits
showQT :: QT -> String
indent :: [String] -> String
showDT :: DT -> String
seeDTrans :: DTrans -> String
Documentation
look :: Int -> IntMap a -> a
common_error :: String -> String -> a
on :: (t1 -> t1 -> t2) -> (t -> t1) -> t -> t -> t2
norep :: Eq a => [a] -> [a]
after sort or sortBy the use of nubnubBy can be replaced by norepnorepBy +
norepBy :: (a -> a -> Bool) -> [a] -> [a]
after sort or sortBy the use of nubnubBy can be replaced by norepnorepBy +
mapFst :: Functor f => (t -> t2) -> f (t, t1) -> f (t2, t1)
mapSnd :: Functor f => (t1 -> t2) -> f (t, t1) -> f (t, t2)
fst3 :: (a, b, c) -> a
snd3 :: (a, b, c) -> b
thd3 :: (a, b, c) -> c
flipOrder :: Ordering -> Ordering
noWin :: WinTags -> Bool
newtype DoPa
Used to track elements of the pattern that accept characters or + are anchors +
Constructors
DoPa
dopaIndex :: Int
show/hide Instances
data CompOption
Control whether the pattern is multiline or case-sensitive like Text.Regex and whether to + capture the subgroups (1, 2, etc). Controls enabling extra anchor syntax. +
Constructors
CompOption
caseSensitive :: BoolTrue in blankCompOpt and defaultCompOpt +
multiline :: BoolFalse in blankCompOpt, True in defaultCompOpt. Compile for + newline-sensitive matching. By default, newline is a completely ordinary + character with no special meaning in either REs or strings. With this flag, + inverted bracket expressions and . never match newline, a ^ anchor matches the + null string after any newline in the string in addition to its normal + function, and the $ anchor matches the null string before any newline in the + string in addition to its normal function. +
rightAssoc :: BoolTrue (and therefore Right associative) in blankCompOpt and defaultCompOpt +
newSyntax :: BoolFalse in blankCompOpt, True in defaultCompOpt. Add the extended non-POSIX syntax described in Text.Regex.TDFA haddock documentation. +
lastStarGreedy :: BoolFalse by default. This is POSIX correct but it takes space and is slower. + Setting this to true will improve performance, and should be done + if you plan to set the captureGroups execoption to False. +
show/hide Instances
data ExecOption
Constructors
ExecOption
captureGroups :: BoolTrue by default. Set to False to improve speed (and space). +
show/hide Instances
type Tag = Int
Used by implementation to name certain Postions during + matching. Identity of Position tag to set during a transition +
data OP
Internal use to indicate type of tag and preference for larger or smaller Positions +
Constructors
Maximize
Minimize
Orbit
Ignore
show/hide Instances
type Index = Int
Internal NFA node identity number +
type SetIndex = IntSet
Internal DFA identity is this Set of NFA Index +
type Position = Int
Index into the text being searched +
type GroupIndex = Int
GroupIndex is for indexing submatches from capturing + parenthesized groups (PGroup/Group) +
data GroupInfo
GroupInfo collects the parent and tag information for an instance + of a group +
Constructors
GroupInfo
thisIndex :: GroupIndex
parentIndex :: GroupIndex
startTag :: Tag
stopTag :: Tag
flagTag :: Tag
show/hide Instances
data Regex
The TDFA backend specific Regex type, used by this module's RegexOptions and RegexMaker +
Constructors
Regex
regex_dfa :: DFAstarting DFA state +
regex_init :: Indexindex of starting state +
regex_b_index :: (Index, Index)indexes of smallest and largest states +
regex_b_tags :: (Tag, Tag)indexes of smallest and largest tags +
regex_trie :: TrieSet DFAAll DFA states +
regex_tags :: Array Tag OPinformation about each tag +
regex_groups :: Array GroupIndex [GroupInfo]information about each group +
regex_isFrontAnchored :: Boolused for optimizing execution +
regex_compOptions :: CompOption
regex_execOptions :: ExecOption
show/hide Instances
data WinEmpty
Constructors
WinEmpty Instructions
WinTest WhichTest (Maybe WinEmpty) (Maybe WinEmpty)
show/hide Instances
data QNFA
Internal NFA node type +
Constructors
QNFA
q_id :: Index
q_qt :: QT
show/hide Instances
data QT
Internal to QNFA type. +
Constructors
Simple
qt_win :: WinTagsempty transitions to the virtual winning state +
qt_trans :: CharMap QTransall ways to leave this QNFA to other or the same QNFA +
qt_other :: QTransdefault ways to leave this QNFA to other or the same QNFA +
Testing
qt_test :: WhichTestThe test to perform +
qt_dopas :: EnumSet DoPalocation(s) of the anchor(s) in the original regexp +
qt_a :: QTuse qt_a if test is True, else use qt_b +
qt_b :: QTuse qt_a if test is True, else use qt_b +
show/hide Instances
type QTrans = IntMap [TagCommand]
Internal type to represent the tagged transition from one QNFA to + another (or itself). The key is the Index of the destination QNFA. +
data WhichTest
Known predicates, just Beginning of Line (^) and End of Line ($). + Also support for GNU extensions is being added: ` beginning of + buffer, ' end of buffer, < and > for begin and end of words, b + and B for word boundary and not word boundary. +
Constructors
Test_BOL
Test_EOL
Test_BOB
Test_EOB
Test_BOW
Test_EOW
Test_EdgeWord
Test_NotEdgeWord
show/hide Instances
data TagTask
The things that can be done with a Tag. TagTask and + ResetGroupStopTask are for tags with Maximize or Minimize OP + values. ResetOrbitTask and EnterOrbitTask and LeaveOrbitTask are + for tags with Orbit OP value. +
Constructors
TagTask
ResetGroupStopTask
SetGroupStopTask
ResetOrbitTask
EnterOrbitTask
LeaveOrbitTask
show/hide Instances
type TagTasks = [(Tag, TagTask)]
Ordered list of tags and their associated Task +
data TagUpdate
When attached to a QTrans the TagTask can be done before or after + accepting the character. +
Constructors
PreUpdate TagTask
PostUpdate TagTask
show/hide Instances
type TagList = [(Tag, TagUpdate)]
Ordered list of tags and their associated update operation. +
type TagCommand = (DoPa, TagList)
A TagList and the location of the item in the original pattern + that is being accepted. +
type WinTags = TagList
Ordered list of tags and their associated update operation to + perform on an empty transition to the virtual winning state. +
data DFA
Internal DFA node, identified by the Set of indices of the QNFA + nodes it represents. +
Constructors
DFA
d_id :: SetIndex
d_dt :: DT
show/hide Instances
data Transition
Constructors
Transition
trans_many :: DFAwhere to go (maximal), including respawning +
trans_single :: DFAwhere to go, not including respawning +
trans_how :: DTranshow to go, including respawning +
data DT
Internal to the DFA node +
Constructors
Simple'
dt_win :: IntMap InstructionsActions to perform to win +
dt_trans :: CharMap TransitionTransition to accept Char +
dt_other :: Transitiondefault accepting transition +
Testing'
dt_test :: WhichTestThe test to perform +
dt_dopas :: EnumSet DoPalocation(s) of the anchor(s) in the original regexp +
dt_a :: DTuse dt_a if test is True else use dt_b +
dt_b :: DTuse dt_a if test is True else use dt_b +
show/hide Instances
type DTrans = IntMap (IntMap (DoPa, Instructions))

Internal type to repesent the commands for the tagged transition. + The outer IntMap is for the destination Index and the inner IntMap + is for the Source Index. This is convenient since all runtime data + going to the same destination must be compared to find the best. +

A Destination IntMap entry may have an empty Source IntMap if and + only if the destination is the starting index and the NFA/DFA. + This instructs the matching engine to spawn a new entry starting at + the post-update position. +

type DTrans' = [(Index, [(Index, (DoPa, ([(Tag, (Position, Bool))], [String])))])]
Internal convenience type for the text display code +
data Orbits

Positions for which a * was re-started while looping. Need to + append locations at back but compare starting with front, so use + Seq as a Queue. The initial position is saved in basePos (and a + Maximize Tag), the middle positions in the Seq, and the final + position is NOT saved in the Orbits (only in a Maximize Tag). +

The orderinal code is being written XXX TODO document it. +

Constructors
Orbits
inOrbit :: !Bool
basePos :: Position
ordinal :: Maybe Int
getOrbits :: !(Seq Position)
show/hide Instances
data Instructions
The newPos and newFlags lists in Instructions are sorted by, and unique in, the Tag values +
Constructors
Instructions
newPos :: ![(Tag, Action)]
newOrbits :: !(Maybe (Position -> OrbitTransformer))
show/hide Instances
data Action
Constructors
SetPre
SetPost
SetVal Int
show/hide Instances
type OrbitTransformer = OrbitLog -> OrbitLog
type OrbitLog = IntMap Orbits
showQT :: QT -> String
indent :: [String] -> String
showDT :: DT -> String
seeDTrans :: DTrans -> String
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-CorePattern.html 1 + + +Text.Regex.TDFA.CorePattern
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.CorePattern
Description

The CorePattern module deconstructs the Pattern tree created by + ReadRegex.parseRegex and returns a simpler Q/P tree with + annotations at each Q node. This will be converted by the TNFA + module into a QNFA finite automata. +

Of particular note, this Pattern to Q/P conversion creates and + assigns all the internal Tags that will be used during the matching + process, and associates the captures groups with the tags that + represent their starting and ending locations and with their + immediate parent group. +

Each Maximize and Minimize tag is held as either a preTag or a + postTag by one and only one location in the Q/P tree. The Orbit + tags are each held by one and only one Star node. Tags that stop a + Group are also held in perhaps numerous preReset lists. +

The additional nullQ::nullView field of Q records the potentially + complex information about what tests and tags must be used if the + pattern unQ::P matches 0 zero characters. There can be redundancy + in nullView, which is eliminated by cleanNullView. +

Uses recursive do notation. +

2009 XXX TODO: we can avoid needing tags in the part of the pattern + after the last capturing group (when right-associative). This is + flipped for left-associative where the front of the pattern before + the first capturing group needs no tags. The edge of these regions + is subtle: both case needs a Maximize tag. One ought to be able to + check the Pattern: if the root is PConcat then a scan from the end + (start) looking for the first with an embedded PGroup can be found + and the PGroup free elements can be wrapped in some new PNOTAG + semantic indicator. +

Synopsis
data Q = Q {
nullQ :: NullView
takes :: (Position, Maybe Position)
preReset :: [Tag]
postSet :: [Tag]
preTag :: Maybe Tag
postTag :: Maybe Tag
tagged :: Bool
childGroups :: Bool
wants :: Wanted
unQ :: P
}
data P
= Empty
| Or [Q]
| Seq Q Q
| Star {
getOrbit :: Maybe Tag
resetOrbits :: [Tag]
firstNull :: Bool
unStar :: Q
}
| Test TestInfo
| OneChar Pattern
| NonEmpty Q
data WhichTest
= Test_BOL
| Test_EOL
| Test_BOB
| Test_EOB
| Test_BOW
| Test_EOW
| Test_EdgeWord
| Test_NotEdgeWord
data Wanted
= WantsQNFA
| WantsQT
| WantsBoth
| WantsEither
type TestInfo = (WhichTest, DoPa)
data OP
= Maximize
| Minimize
| Orbit
| Ignore
newtype SetTestInfo = SetTestInfo {
getTests :: EnumMap WhichTest (EnumSet DoPa)
}
type NullView = [(SetTestInfo, TagList)]
patternToQ :: CompOption -> (Pattern, (GroupIndex, DoPa)) -> (Q, Array Tag OP, Array GroupIndex [GroupInfo])
cleanNullView :: NullView -> NullView
cannotAccept :: Q -> Bool
mustAccept :: Q -> Bool
Documentation
data Q
Constructors
Q
nullQ :: NullView
takes :: (Position, Maybe Position)
preReset :: [Tag]
postSet :: [Tag]
preTag :: Maybe Tag
postTag :: Maybe Tag
tagged :: Bool
childGroups :: Bool
wants :: Wanted
unQ :: P
show/hide Instances
data P
Constructors
Empty
Or [Q]
Seq Q Q
Star
getOrbit :: Maybe Tag
resetOrbits :: [Tag]
firstNull :: Bool
unStar :: Q
Test TestInfo
OneChar Pattern
NonEmpty Q
show/hide Instances
data WhichTest
Known predicates, just Beginning of Line (^) and End of Line ($). + Also support for GNU extensions is being added: ` beginning of + buffer, ' end of buffer, < and > for begin and end of words, b + and B for word boundary and not word boundary. +
Constructors
Test_BOL
Test_EOL
Test_BOB
Test_EOB
Test_BOW
Test_EOW
Test_EdgeWord
Test_NotEdgeWord
show/hide Instances
data Wanted
Constructors
WantsQNFA
WantsQT
WantsBoth
WantsEither
show/hide Instances
type TestInfo = (WhichTest, DoPa)
data OP
Internal use to indicate type of tag and preference for larger or smaller Positions +
Constructors
Maximize
Minimize
Orbit
Ignore
show/hide Instances
newtype SetTestInfo
Constructors
SetTestInfo
getTests :: EnumMap WhichTest (EnumSet DoPa)
show/hide Instances
type NullView = [(SetTestInfo, TagList)]
patternToQ :: CompOption -> (Pattern, (GroupIndex, DoPa)) -> (Q, Array Tag OP, Array GroupIndex [GroupInfo])
cleanNullView :: NullView -> NullView
cannotAccept :: Q -> Bool
mustAccept :: Q -> Bool
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-IntArrTrieSet.html 1 + + +Text.Regex.TDFA.IntArrTrieSet
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.IntArrTrieSet
Description

This creates a lazy Trie based on a finite range of Ints and is used to +memorize a function over the subsets of this range. +

To create a Trie you need two supply 2 things + * Range of keys to bound + * A function or functions used to construct the value for a subset of keys +

The Trie uses the Array type internally. +

Synopsis
data TrieSet v = TrieSet {
value :: v
next :: Array Int (TrieSet v)
}
lookupAsc :: TrieSet v -> [Int] -> v
fromBounds :: (Int, Int) -> ([Int] -> v) -> TrieSet v
fromSinglesMerge :: v -> (v -> v -> v) -> (Int, Int) -> (Int -> v) -> TrieSet v
fromSinglesSum :: ([v] -> v) -> (Int, Int) -> (Int -> v) -> TrieSet v
Documentation
data TrieSet v
Constructors
TrieSet
value :: v
next :: Array Int (TrieSet v)
lookupAsc :: TrieSet v -> [Int] -> v
This is the accessor for the Trie. The list of keys should be + sorted. +
fromBounds
::
=> (Int, Int)(lower,upper) range of keys, lower<=upper +
-> [Int] -> vFunction from list of keys to its value. + It must work for distinct ascending lists. +
-> TrieSet vThe constructed Trie +
This is a Trie constructor for a complete range of keys. +
fromSinglesMerge
::
=> vvalue for (lookupAsc trie []) +
-> v -> v -> vmerge operation on values +
-> (Int, Int)(lower,upper) range of keys, lower<=upper +
-> Int -> vFunction from a single key to its value +
-> TrieSet vThe constructed Trie +
This is a Trie constructor for a complete range of keys that uses + a function from single values and a merge operation on values to + fill the Trie. +
fromSinglesSum
::
=> [v] -> vsummation operation for values +
-> (Int, Int)(lower,upper) range of keys, lower <= upper +
-> Int -> vFunction from a single key to its value +
-> TrieSet vThe constructed Trie +
This is a Trie constructor for a complete range of keys that uses + a function from single values and a sum operation of values to fill + the Trie. +
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-Engine.html 1 + + +Text.Regex.TDFA.NewDFA.Engine
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.NewDFA.Engine
Description

This is the code for the main engine. This captures the posix subexpressions. This execMatch + also dispatches to Engine_NC, Engine_FA, and Engine_FC_NA +

It is polymorphic over the internal Uncons type class, and specialized to produce the needed + variants. +

Documentation
execMatch :: Uncons text => Regex -> Position -> Char -> text -> [MatchArray]
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-Engine_FA.html 1 + + +Text.Regex.TDFA.NewDFA.Engine_FA
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.NewDFA.Engine_FA
Description

This is the code for the main engine. This captures the posix + subexpressions. There is also a non-capturing engine, and a + testing engine. +

It is polymorphic over the internal Uncons type class, and + specialized to produce the needed variants. +

Documentation
execMatch :: Uncons text => Regex -> Position -> Char -> text -> [MatchArray]
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-Engine_NC.html 1 + + +Text.Regex.TDFA.NewDFA.Engine_NC
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.NewDFA.Engine_NC
Description
This is the non-capturing form of Text.Regex.TDFA.NewDFA.String +
Documentation
execMatch :: Uncons text => Regex -> Position -> Char -> text -> [MatchArray]
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-Engine_NC_FA.html 1 + + +Text.Regex.TDFA.NewDFA.Engine_NC_FA
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.NewDFA.Engine_NC_FA
Description
This is the non-capturing form of Text.Regex.TDFA.NewDFA.String +
Documentation
execMatch :: Uncons text => Regex -> Position -> Char -> text -> [MatchArray]
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-MakeTest.html 1 + + +Text.Regex.TDFA.NewDFA.MakeTest
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.NewDFA.MakeTest
Documentation
test_multiline :: Uncons text => WhichTest -> Index -> Char -> text -> Bool
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-Tester.html 1 + + +Text.Regex.TDFA.NewDFA.Tester
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.NewDFA.Tester
Description
Like Engine, but merely checks to see whether any match at all is found. +
Documentation
matchTest :: Uncons text => Regex -> text -> Bool
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-NewDFA-Uncons.html 1 + + +Text.Regex.TDFA.NewDFA.Uncons
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.NewDFA.Uncons
Documentation
class Uncons a where
Methods
uncons :: a -> Maybe (Char, a)
show/hide Instances
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-Pattern.html 1 + + +Text.Regex.TDFA.Pattern
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.Pattern
Contents
Internal use +
Internal use, Operations to support debugging under ghci +
Description
This Text.Regex.TDFA.Pattern module provides the Pattern data + type and its subtypes. This Pattern type is used to represent + the parsed form of a Regular Expression. +
Synopsis
data Pattern
= PEmpty
| PGroup (Maybe GroupIndex) Pattern
| POr [Pattern]
| PConcat [Pattern]
| PQuest Pattern
| PPlus Pattern
| PStar Bool Pattern
| PBound Int (Maybe Int) Pattern
| PCarat {
getDoPa :: DoPa
}
| PDollar {
getDoPa :: DoPa
}
| PDot {
getDoPa :: DoPa
}
| PAny {
getDoPa :: DoPa
getPatternSet :: PatternSet
}
| PAnyNot {
getDoPa :: DoPa
getPatternSet :: PatternSet
}
| PEscape {
getDoPa :: DoPa
getPatternChar :: Char
}
| PChar {
getDoPa :: DoPa
getPatternChar :: Char
}
| PNonCapture Pattern
| PNonEmpty Pattern
data PatternSet = PatternSet (Maybe (Set Char)) (Maybe (Set PatternSetCharacterClass)) (Maybe (Set PatternSetCollatingElement)) (Maybe (Set PatternSetEquivalenceClass))
newtype PatternSetCharacterClass = PatternSetCharacterClass {
unSCC :: String
}
newtype PatternSetCollatingElement = PatternSetCollatingElement {
unSCE :: String
}
newtype PatternSetEquivalenceClass = PatternSetEquivalenceClass {
unSEC :: String
}
type GroupIndex = Int
newtype DoPa = DoPa {
dopaIndex :: Int
}
showPattern :: Pattern -> String
starTrans :: Pattern -> Pattern
starTrans' :: Pattern -> Pattern
simplify' :: Pattern -> Pattern
dfsPattern :: (Pattern -> Pattern) -> Pattern -> Pattern
Documentation
data Pattern
Pattern is the type returned by the regular expression parser. + This is consumed by the CorePattern module and the tender leaves + are nibbled by the TNFA module. +
Constructors
PEmpty
PGroup (Maybe GroupIndex) Pattern
POr [Pattern]
PConcat [Pattern]
PQuest Pattern
PPlus Pattern
PStar Bool Pattern
PBound Int (Maybe Int) Pattern
PCarat
getDoPa :: DoPa
PDollar
getDoPa :: DoPa
PDot
getDoPa :: DoPa
PAny
getDoPa :: DoPa
getPatternSet :: PatternSet
PAnyNot
getDoPa :: DoPa
getPatternSet :: PatternSet
PEscape
getDoPa :: DoPa
getPatternChar :: Char
PChar
getDoPa :: DoPa
getPatternChar :: Char
PNonCapture Pattern
PNonEmpty Pattern
show/hide Instances
data PatternSet
Constructors
PatternSet (Maybe (Set Char)) (Maybe (Set PatternSetCharacterClass)) (Maybe (Set PatternSetCollatingElement)) (Maybe (Set PatternSetEquivalenceClass))
show/hide Instances
newtype PatternSetCharacterClass
Constructors
PatternSetCharacterClass
unSCC :: String
show/hide Instances
newtype PatternSetCollatingElement
Constructors
PatternSetCollatingElement
unSCE :: String
show/hide Instances
newtype PatternSetEquivalenceClass
Constructors
PatternSetEquivalenceClass
unSEC :: String
show/hide Instances
type GroupIndex = Int
GroupIndex is for indexing submatches from capturing + parenthesized groups (PGroup/Group) +
newtype DoPa
Used to track elements of the pattern that accept characters or + are anchors +
Constructors
DoPa
dopaIndex :: Int
show/hide Instances
showPattern :: Pattern -> String
I have not been checking, but this should have the property that + parsing the resulting string should result in an identical Pattern. + This is not true if starTrans has created PNonCapture and PNonEmpty + values or a (PStar False). The contents of a [ ] grouping are + always shown in a sorted canonical order. +
Internal use +
starTrans :: Pattern -> Pattern
Do the transformation and simplification in a single traversal. + This removes the PPlus, PQuest, and PBound values, changing to POr + and PEmpty and PStar True/False. For some PBound values it adds + PNonEmpty and PNonCapture semantic marker. It also simplifies to + flatten out nested POr and PConcat instances and eliminate some + uneeded PEmpty values. +
Internal use, Operations to support debugging under ghci +
starTrans' :: Pattern -> Pattern
simplify' :: Pattern -> Pattern
Function to transform a pattern into an equivalent, but less + redundant form. Nested POr and PConcat are flattened. PEmpty + is propagated. +
dfsPattern
:: Pattern -> PatternThe transformation function +
-> PatternThe Pattern to transform +
-> PatternThe transformed Pattern +
Apply a Pattern transfomation function depth first +
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-ReadRegex.html 1 + + +Text.Regex.TDFA.ReadRegex
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.ReadRegex
Description

This is a POSIX version of parseRegex that allows NUL characters. + LazyPossessiveBackrefs are not recognized. Anchors ^ and $ are + recognized. +

The PGroup returned always have (Maybe GroupIndex) set to (Just _) + and never to Nothing. +

Synopsis
parseRegex :: String -> Either ParseError (Pattern, (GroupIndex, DoPa))
Documentation
parseRegex :: String -> Either ParseError (Pattern, (GroupIndex, DoPa))
Return either an error message or a tuple of the Pattern and the + largest group index and the largest DoPa index (both have smallest + index of 1). Since the regular expression is supplied as [Char] it + automatically supports unicode and '\NUL' characters. +
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-Sequence.html 1 + + +Text.Regex.TDFA.Sequence
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.Sequence
Description

This modules provides RegexMaker and RegexLike instances for using +ByteString with the DFA backend (Text.Regex.Lib.WrapDFAEngine and +Text.Regex.Lazy.DFAEngineFPS). This module is usually used via +import Text.Regex.TDFA. +

This exports instances of the high level API and the medium level +API of compile,execute, and regexec. +

Synopsis
data Regex
data CompOption
data ExecOption
compile :: CompOption -> ExecOption -> Seq Char -> Either String Regex
execute :: Regex -> Seq Char -> Either String (Maybe MatchArray)
regexec :: Regex -> Seq Char -> Either String (Maybe (Seq Char, Seq Char, Seq Char, [Seq Char]))
Documentation
data Regex
The TDFA backend specific Regex type, used by this module's RegexOptions and RegexMaker +
show/hide Instances
data CompOption
Control whether the pattern is multiline or case-sensitive like Text.Regex and whether to + capture the subgroups (1, 2, etc). Controls enabling extra anchor syntax. +
show/hide Instances
data ExecOption
show/hide Instances
compile
:: CompOptionFlags (summed together) +
-> ExecOptionFlags (summed together) +
-> Seq CharThe regular expression to compile +
-> Either String RegexReturns: the compiled regular expression +
execute
:: RegexCompiled regular expression +
-> Seq CharByteString to match against +
-> Either String (Maybe MatchArray)
regexec
:: RegexCompiled regular expression +
-> Seq CharByteString to match against +
-> Either String (Maybe (Seq Char, Seq Char, Seq Char, [Seq Char]))
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-String.html 1 + + +Text.Regex.TDFA.String
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.String
Contents
Types +
Medium level API functions +
Description

This modules provides RegexMaker and RegexLike instances for using +String with the TDFA backend. +

This exports instances of the high level API and the medium level +API of compile,execute, and regexec. +

Synopsis
data Regex
data CompOption
data ExecOption
compile :: CompOption -> ExecOption -> String -> Either String Regex
execute :: Regex -> String -> Either String (Maybe MatchArray)
regexec :: Regex -> String -> Either String (Maybe (String, String, String, [String]))
Types +
data Regex
The TDFA backend specific Regex type, used by this module's RegexOptions and RegexMaker +
show/hide Instances
data CompOption
Control whether the pattern is multiline or case-sensitive like Text.Regex and whether to + capture the subgroups (1, 2, etc). Controls enabling extra anchor syntax. +
show/hide Instances
data ExecOption
show/hide Instances
Medium level API functions +
compile
:: CompOptionFlags (summed together) +
-> ExecOptionFlags (summed together) +
-> StringThe regular expression to compile (ASCII only, no null bytes) +
-> Either String RegexReturns: the compiled regular expression +
execute
:: RegexCompiled regular expression +
-> StringString to match against +
-> Either String (Maybe MatchArray)
regexec
:: RegexCompiled regular expression +
-> StringString to match against +
-> Either String (Maybe (String, String, String, [String]))
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-TDFA.html 1 + + +Text.Regex.TDFA.TDFA
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.TDFA
Description
Text.Regex.TDFA.TDFA converts the QNFA from TNFA into the DFA. + A DFA state corresponds to a Set of QNFA states, repesented as list + of Index which are used to lookup the DFA state in a lazy Trie + which holds all possible subsets of QNFA states. +
Synopsis
patternToRegex :: (Pattern, (GroupIndex, DoPa)) -> CompOption -> ExecOption -> Regex
data DFA = DFA {
d_id :: SetIndex
d_dt :: DT
}
data DT
= Simple' {
dt_win :: IntMap Instructions
dt_trans :: CharMap Transition
dt_other :: Transition
}
| Testing' {
dt_test :: WhichTest
dt_dopas :: EnumSet DoPa
dt_a :: DT
dt_b :: DT
}
examineDFA :: Regex -> String
nfaToDFA :: ((Index, Array Index QNFA), Array Tag OP, Array GroupIndex [GroupInfo]) -> CompOption -> ExecOption -> Regex
dfaMap :: DFA -> Map SetIndex DFA
Documentation
patternToRegex :: (Pattern, (GroupIndex, DoPa)) -> CompOption -> ExecOption -> Regex
data DFA
Internal DFA node, identified by the Set of indices of the QNFA + nodes it represents. +
Constructors
DFA
d_id :: SetIndex
d_dt :: DT
show/hide Instances
data DT
Internal to the DFA node +
Constructors
Simple'
dt_win :: IntMap InstructionsActions to perform to win +
dt_trans :: CharMap TransitionTransition to accept Char +
dt_other :: Transitiondefault accepting transition +
Testing'
dt_test :: WhichTestThe test to perform +
dt_dopas :: EnumSet DoPalocation(s) of the anchor(s) in the original regexp +
dt_a :: DTuse dt_a if test is True else use dt_b +
dt_b :: DTuse dt_a if test is True else use dt_b +
show/hide Instances
examineDFA :: Regex -> String
nfaToDFA :: ((Index, Array Index QNFA), Array Tag OP, Array GroupIndex [GroupInfo]) -> CompOption -> ExecOption -> Regex
dfaMap :: DFA -> Map SetIndex DFA
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA-TNFA.html 1 + + +Text.Regex.TDFA.TNFA
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA.TNFA
Description

Text.Regex.TDFA.TNFA converts the CorePattern Q/P data (and its + Pattern leafs) to a QNFA tagged non-deterministic finite automata. +

This holds every possible way to follow one state by another, while + in the DFA these will be reduced by picking a single best + transition for each (soure,destination) pair. The transitions are + heavily and often redundantly annotated with tasks to perform, and + this redundancy is reduced when picking the best transition. So + far, keeping all this information has helped fix bugs in both the + design and implementation. +

The QNFA for a Pattern with a starTraned Q/P form with N one + character accepting leaves has at most N+1 nodes. These nodes + repesent the future choices after accepting a leaf. The processing + of Or nodes often reduces this number by sharing at the end of the + different paths. Turning off capturing while compiling the pattern + may (future extension) reduce this further for some patterns by + processing Star with optimizations. This compact design also means + that tags are assigned not just to be updated before taking a + transition (PreUpdate) but also after the transition (PostUpdate). +

Uses recursive do notation. +

Synopsis
patternToNFA :: CompOption -> (Pattern, (GroupIndex, DoPa)) -> ((Index, Array Index QNFA), Array Tag OP, Array GroupIndex [GroupInfo])
data QNFA = QNFA {
q_id :: Index
q_qt :: QT
}
data QT
= Simple {
qt_win :: WinTags
qt_trans :: CharMap QTrans
qt_other :: QTrans
}
| Testing {
qt_test :: WhichTest
qt_dopas :: EnumSet DoPa
qt_a :: QT
qt_b :: QT
}
type QTrans = IntMap [TagCommand]
data TagUpdate
= PreUpdate TagTask
| PostUpdate TagTask
Documentation
patternToNFA :: CompOption -> (Pattern, (GroupIndex, DoPa)) -> ((Index, Array Index QNFA), Array Tag OP, Array GroupIndex [GroupInfo])
data QNFA
Internal NFA node type +
Constructors
QNFA
q_id :: Index
q_qt :: QT
show/hide Instances
data QT
Internal to QNFA type. +
Constructors
Simple
qt_win :: WinTagsempty transitions to the virtual winning state +
qt_trans :: CharMap QTransall ways to leave this QNFA to other or the same QNFA +
qt_other :: QTransdefault ways to leave this QNFA to other or the same QNFA +
Testing
qt_test :: WhichTestThe test to perform +
qt_dopas :: EnumSet DoPalocation(s) of the anchor(s) in the original regexp +
qt_a :: QTuse qt_a if test is True, else use qt_b +
qt_b :: QTuse qt_a if test is True, else use qt_b +
show/hide Instances
type QTrans = IntMap [TagCommand]
Internal type to represent the tagged transition from one QNFA to + another (or itself). The key is the Index of the destination QNFA. +
data TagUpdate
When attached to a QTrans the TagTask can be done before or after + accepting the character. +
Constructors
PreUpdate TagTask
PostUpdate TagTask
show/hide Instances
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/Text-Regex-TDFA.html 1 + + +Text.Regex.TDFA
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Text.Regex.TDFA
Description

The Text.Regex.TDFA module provides a backend for regular +expressions. It provides instances for the classes defined and +documented in Text.Regex.Base and re-exported by this module. If +you import this along with other backends then you should do so with +qualified imports (with renaming for convenience). +

This regex-tdfa package implements, correctly, POSIX extended regular +expressions. It is highly unlikely that the regex-posix package on +your operating system is correct, see +http:www.haskell.orghaskellwikiRegex_Posix for examples of your +OS's bugs. +

This package does provide captured parenthesized subexpressions. +

Depending on the text being searched this package supports Unicode. +The [Char] and (Seq Char) text types support Unicode. The ByteString +and ByteString.Lazy text types only support ASCII. It is possible to +support utf8 encoded ByteString.Lazy by using regex-tdfa and +regex-tdfa-utf8 packages together (required the utf8-string package). +

As of version 1.1.1 the following GNU extensions are recognized, all +anchors: +

` at beginning of entire text +

' at end of entire text +

< at beginning of word +

> at end of word +

b at either beginning or end of word +

B at neither beginning nor end of word +

Where the word boundaries means between characters that are and are +not in the [:word:] character class which contains [a-zA-Z0-9_]. Note +that < and b may match before the entire text and > and b may +match at the end of the entire text. +

There is no locale support, so collating elements like [.ch.] are +simply ignored and equivalence classes like [=a=] are converted to +just [a]. The character classes like [:alnum:] are supported over +ASCII only, valid classes are alnum, digit, punct, alpha, graph, +space, blank, lower, upper, cntrl, print, xdigit, word. +

This package does not provide basic regular expressions. This +package does not provide back references inside regular expressions. +

The package does not provide Perl style regular expressions. Please +look at the regex-pcre and pcre-light packages instead. +

Synopsis
getVersion_Text_Regex_TDFA :: Version
(=~) :: (RegexMaker Regex CompOption ExecOption source, RegexContext Regex source1 target) => source1 -> source -> target
(=~~) :: (RegexMaker Regex CompOption ExecOption source, RegexContext Regex source1 target, Monad m) => source1 -> source -> m target
module Text.Regex.TDFA.Common
Documentation
getVersion_Text_Regex_TDFA :: Version
(=~) :: (RegexMaker Regex CompOption ExecOption source, RegexContext Regex source1 target) => source1 -> source -> target
This is the pure functional matching operator. If the target + cannot be produced then some empty result will be returned. If + there is an error in processing, then error will be called. +
(=~~) :: (RegexMaker Regex CompOption ExecOption source, RegexContext Regex source1 target, Monad m) => source1 -> source -> m target
This is the monadic matching operator. If a single match fails, + then fail will be called. +
module Text.Regex.TDFA.Common
Produced by Haddock version 2.3.0
hunk ./doc/html/regex-tdfa/doc-index.html 1 + + +regex-tdfa-1.1.1: Replaces/Enhances Text.Regex (Index)
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
Search:
!
1 (Function)
2 (Function)
=~
=~~
Action
adjust
1 (Function)
2 (Function)
adjustWithKey
1 (Function)
2 (Function)
after
AllMatches
1 (Type/Class)
2 (Data Constructor)
AllSubmatches
1 (Type/Class)
2 (Data Constructor)
AllTextMatches
1 (Type/Class)
2 (Data Constructor)
AllTextSubmatches
1 (Type/Class)
2 (Data Constructor)
assocs
1 (Function)
2 (Function)
basePos
before
blankCompOpt
blankExecOpt
cannotAccept
captureGroups
caseSensitive
CharMap
1 (Type/Class)
2 (Data Constructor)
childGroups
cleanNullView
common_error
compile
1 (Function)
2 (Function)
3 (Function)
4 (Function)
CompOption
1 (Type/Class)
2 (Data Constructor)
defaultCompOpt
defaultExecOpt
delete
1 (Function)
2 (Function)
3 (Function)
DFA
1 (Type/Class)
2 (Data Constructor)
dfaMap
dfsPattern
difference
1 (Function)
2 (Function)
3 (Function)
differenceWith
1 (Function)
2 (Function)
differenceWithKey
1 (Function)
2 (Function)
DoPa
1 (Type/Class)
2 (Data Constructor)
dopaIndex
DT
DTrans
DTrans'
dt_a
dt_b
dt_dopas
dt_other
dt_test
dt_trans
dt_win
d_dt
d_id
elems
1 (Function)
2 (Function)
3 (Function)
Empty
empty
1 (Function)
2 (Function)
3 (Function)
4 (Function)
EnterOrbitTask
EnumMap
1 (Type/Class)
2 (Data Constructor)
EnumSet
1 (Type/Class)
2 (Data Constructor)
examineDFA
execMatch
1 (Function)
2 (Function)
3 (Function)
4 (Function)
ExecOption
1 (Type/Class)
2 (Data Constructor)
execute
1 (Function)
2 (Function)
3 (Function)
4 (Function)
Extract
extract
filter
1 (Function)
2 (Function)
3 (Function)
filterWithKey
1 (Function)
2 (Function)
findWithDefault
1 (Function)
2 (Function)
firstNull
flagTag
flipOrder
fold
1 (Function)
2 (Function)
3 (Function)
foldWithKey
1 (Function)
2 (Function)
fromAscList
1 (Function)
2 (Function)
3 (Function)
fromAscListWith
1 (Function)
2 (Function)
fromAscListWithKey
1 (Function)
2 (Function)
fromBounds
fromDistinctAscList
1 (Function)
2 (Function)
3 (Function)
fromList
1 (Function)
2 (Function)
3 (Function)
fromListWith
1 (Function)
2 (Function)
fromListWithKey
1 (Function)
2 (Function)
fromSinglesMerge
fromSinglesSum
fst3
getAllMatches
getAllSubmatches
getAllTextMatches
getAllTextSubmatches
getDoPa
getExecOpts
getOrbit
getOrbits
getPatternChar
getPatternSet
getTests
getVersion_Text_Regex_Base
getVersion_Text_Regex_TDFA
GroupIndex
GroupInfo
1 (Type/Class)
2 (Data Constructor)
Ignore
indent
Index
inOrbit
insert
1 (Function)
2 (Function)
3 (Function)
insertLookupWithKey
1 (Function)
2 (Function)
insertWith
1 (Function)
2 (Function)
insertWithKey
1 (Function)
2 (Function)
Instructions
1 (Type/Class)
2 (Data Constructor)
intersection
1 (Function)
2 (Function)
3 (Function)
intersectionWith
1 (Function)
2 (Function)
intersectionWithKey
1 (Function)
2 (Function)
isProperSubmapOf
1 (Function)
2 (Function)
isProperSubmapOfBy
1 (Function)
2 (Function)
isProperSubsetOf
isSubmapOf
1 (Function)
2 (Function)
isSubmapOfBy
1 (Function)
2 (Function)
isSubsetOf
Key
keys
1 (Function)
2 (Function)
keysSet
1 (Function)
2 (Function)
lastStarGreedy
LeaveOrbitTask
look
lookup
1 (Function)
2 (Function)
lookupAsc
makeRegex
makeRegexM
makeRegexOpts
makeRegexOptsM
map
1 (Function)
2 (Function)
3 (Function)
mapAccum
1 (Function)
2 (Function)
mapAccumWithKey
1 (Function)
2 (Function)
mapEither
1 (Function)
2 (Function)
mapEitherWithKey
1 (Function)
2 (Function)
mapFst
mapMaybe
1 (Function)
2 (Function)
mapMaybeWithKey
1 (Function)
2 (Function)
mapSnd
mapWithKey
1 (Function)
2 (Function)
match
matchAll
matchAllText
MatchArray
matchCount
MatchLength
matchM
MatchOffset
matchOnce
matchOnceText
MatchResult
matchTest
1 (Function)
2 (Function)
MatchText
Maximize
member
1 (Function)
2 (Function)
3 (Function)
Minimize
MR
mrAfter
mrBefore
mrMatch
mrSubList
mrSubs
multiline
mustAccept
newOrbits
newPos
newSyntax
next
nfaToDFA
NonEmpty
norep
norepBy
notMember
1 (Function)
2 (Function)
3 (Function)
noWin
null
1 (Function)
2 (Function)
3 (Function)
nullQ
NullView
on
OneChar
OP
Or
Orbit
OrbitLog
Orbits
1 (Type/Class)
2 (Data Constructor)
OrbitTransformer
ordinal
P
PAny
PAnyNot
parentIndex
parseRegex
partition
1 (Function)
2 (Function)
3 (Function)
partitionWithKey
1 (Function)
2 (Function)
Pattern
PatternSet
1 (Type/Class)
2 (Data Constructor)
PatternSetCharacterClass
1 (Type/Class)
2 (Data Constructor)
PatternSetCollatingElement
1 (Type/Class)
2 (Data Constructor)
PatternSetEquivalenceClass
1 (Type/Class)
2 (Data Constructor)
patternToNFA
patternToQ
patternToRegex
PBound
PCarat
PChar
PConcat
PDollar
PDot
PEmpty
PEscape
PGroup
PNonCapture
PNonEmpty
POr
Position
postSet
postTag
PostUpdate
PPlus
PQuest
preReset
preTag
PreUpdate
PStar
Q
1 (Type/Class)
2 (Data Constructor)
QNFA
1 (Type/Class)
2 (Data Constructor)
QT
QTrans
qt_a
qt_b
qt_dopas
qt_other
qt_test
qt_trans
qt_win
q_id
q_qt
Regex
1 (Type/Class)
2 (Data Constructor)
RegexContext
regexec
1 (Function)
2 (Function)
3 (Function)
4 (Function)
RegexLike
RegexMaker
RegexOptions
regex_b_index
regex_b_tags
regex_compOptions
regex_dfa
regex_execOptions
regex_groups
regex_init
regex_isFrontAnchored
regex_tags
regex_trie
ResetGroupStopTask
resetOrbits
ResetOrbitTask
rightAssoc
seeDTrans
Seq
setExecOpts
SetGroupStopTask
SetIndex
SetPost
SetPre
SetTestInfo
1 (Type/Class)
2 (Data Constructor)
SetVal
showDT
showPattern
showQT
showTree
1 (Function)
2 (Function)
3 (Function)
showTreeWith
1 (Function)
2 (Function)
3 (Function)
Simple
Simple'
simplify'
singleton
1 (Function)
2 (Function)
3 (Function)
size
1 (Function)
2 (Function)
3 (Function)
snd3
split
1 (Function)
2 (Function)
3 (Function)
splitLookup
1 (Function)
2 (Function)
splitMember
Star
starTrans
starTrans'
startTag
stopTag
Tag
TagCommand
tagged
TagList
TagTask
1 (Type/Class)
2 (Data Constructor)
TagTasks
TagUpdate
takes
Test
TestInfo
Testing
Testing'
Test_BOB
Test_BOL
Test_BOW
Test_EdgeWord
Test_EOB
Test_EOL
Test_EOW
test_multiline
Test_NotEdgeWord
test_singleline
thd3
thisIndex
toAscList
1 (Function)
2 (Function)
3 (Function)
toList
1 (Function)
2 (Function)
3 (Function)
Transition
1 (Type/Class)
2 (Data Constructor)
trans_how
trans_many
trans_single
TrieSet
1 (Type/Class)
2 (Data Constructor)
unCharMap
Uncons
uncons
unEnumMap
unEnumSet
union
1 (Function)
2 (Function)
3 (Function)
unions
1 (Function)
2 (Function)
3 (Function)
unionsWith
1 (Function)
2 (Function)
unionWith
1 (Function)
2 (Function)
unionWithKey
1 (Function)
2 (Function)
unQ
unSCC
unSCE
unSEC
unStar
update
1 (Function)
2 (Function)
updateLookupWithKey
1 (Function)
2 (Function)
updateWithKey
1 (Function)
2 (Function)
value
Wanted
wants
WantsBoth
WantsEither
WantsQNFA
WantsQT
WhichTest
WinEmpty
1 (Type/Class)
2 (Data Constructor)
WinTags
WinTest
\\
1 (Function)
2 (Function)
3 (Function)
hunk ./doc/html/regex-tdfa/haddock-util.js 1 +// Haddock JavaScript utilities +function toggle(button,id) +{ + var n = document.getElementById(id).style; + if (n.display == "none") + { + button.src = "minus.gif"; + n.display = "block"; + } + else + { + button.src = "plus.gif"; + n.display = "none"; + } +} + + +var max_results = 75; // 50 is not enough to search for map in the base libraries +var shown_range = null; +var last_search = null; + +function quick_search() +{ + perform_search(false); +} + +function full_search() +{ + perform_search(true); +} + + +function perform_search(full) +{ + var text = document.getElementById("searchbox").value.toLowerCase(); + if (text == last_search && !full) return; + last_search = text; + + var table = document.getElementById("indexlist"); + var status = document.getElementById("searchmsg"); + var children = table.firstChild.childNodes; + + // first figure out the first node with the prefix + var first = bisect(-1); + var last = (first == -1 ? -1 : bisect(1)); + + if (first == -1) + { + table.className = ""; + status.innerHTML = "No results found, displaying all"; + } + else if (first == 0 && last == children.length - 1) + { + table.className = ""; + status.innerHTML = ""; + } + else if (last - first >= max_results && !full) + { + table.className = ""; + status.innerHTML = "More than " + max_results + ", press Search to display"; + } + else + { + // decide what you need to clear/show + if (shown_range) + setclass(shown_range[0], shown_range[1], "indexrow"); + setclass(first, last, "indexshow"); + shown_range = [first, last]; + table.className = "indexsearch"; + status.innerHTML = ""; + } + + + function setclass(first, last, status) + { + for (var i = first; i <= last; i++) + { + children[i].className = status; + } + } + + + // do a binary search, treating 0 as ... + // return either -1 (no 0's found) or location of most far match + function bisect(dir) + { + var first = 0, finish = children.length - 1; + var mid, success = false; + + while (finish - first > 3) + { + mid = Math.floor((finish + first) / 2); + + var i = checkitem(mid); + if (i == 0) i = dir; + if (i == -1) + finish = mid; + else + first = mid; + } + var a = (dir == 1 ? first : finish); + var b = (dir == 1 ? finish : first); + for (var i = b; i != a - dir; i -= dir) + { + if (checkitem(i) == 0) return i; + } + return -1; + } + + + // from an index, decide what the result is + // 0 = match, -1 is lower, 1 is higher + function checkitem(i) + { + var s = getitem(i).toLowerCase().substr(0, text.length); + if (s == text) return 0; + else return (s > text ? -1 : 1); + } + + + // from an index, get its string + // this abstracts over alternates + function getitem(i) + { + for ( ; i >= 0; i--) + { + var s = children[i].firstChild.firstChild.data; + if (s.indexOf(' ') == -1) + return s; + } + return ""; // should never be reached + } +} hunk ./doc/html/regex-tdfa/haddock.css 1 +/* -------- Global things --------- */ + +BODY { + background-color: #ffffff; + color: #000000; + font-family: sans-serif; + } + +A:link { color: #0000e0; text-decoration: none } +A:visited { color: #0000a0; text-decoration: none } +A:hover { background-color: #e0e0ff; text-decoration: none } + +TABLE.vanilla { + width: 100%; + border-width: 0px; + /* I can't seem to specify cellspacing or cellpadding properly using CSS... */ +} + +TABLE.vanilla2 { + border-width: 0px; +} + +/* font is a little too small in MSIE */ +TT { font-size: 100%; } +PRE { font-size: 100%; } + +LI P { margin: 0pt } + +TD { + border-width: 0px; +} + +TABLE.narrow { + border-width: 0px; +} + +TD.s8 { height: 8px; } +TD.s15 { height: 15px; } + +SPAN.keyword { text-decoration: underline; } + +/* Resize the buttom image to match the text size */ +IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em } + +/* --------- Contents page ---------- */ + +DIV.node { + padding-left: 3em; +} + +DIV.cnode { + padding-left: 1.75em; +} + +SPAN.pkg { + position: absolute; + left: 50em; +} + +/* --------- Documentation elements ---------- */ + +TD.children { + padding-left: 25px; + } + +TD.synopsis { + padding: 2px; + background-color: #f0f0f0; + font-family: monospace + } + +TD.decl { + padding: 2px; + background-color: #f0f0f0; + font-family: monospace; + vertical-align: top; + } + +TD.topdecl { + padding: 2px; + background-color: #f0f0f0; + font-family: monospace; + vertical-align: top; +} + +TABLE.declbar { + border-spacing: 0px; + } + +TD.declname { + width: 100%; + } + +TD.declbut { + padding-left: 5px; + padding-right: 5px; + border-left-width: 1px; + border-left-color: #000099; + border-left-style: solid; + white-space: nowrap; + font-size: small; + } + +/* + arg is just like decl, except that wrapping is not allowed. It is + used for function and constructor arguments which have a text box + to the right, where if wrapping is allowed the text box squashes up + the declaration by wrapping it. +*/ +TD.arg { + padding: 2px; + background-color: #f0f0f0; + font-family: monospace; + vertical-align: top; + white-space: nowrap; + } + +TD.recfield { padding-left: 20px } + +TD.doc { + padding-top: 2px; + padding-left: 10px; + } + +TD.ndoc { + padding: 2px; + } + +TD.rdoc { + padding: 2px; + padding-left: 10px; + width: 100%; + } + +TD.body { + padding-left: 10px + } + +TD.pkg { + width: 100%; + padding-left: 10px +} + +TABLE.indexsearch TR.indexrow { + display: none; +} +TABLE.indexsearch TR.indexshow { + display: table-row; +} + +TD.indexentry { + vertical-align: top; + padding-right: 10px + } + +TD.indexannot { + vertical-align: top; + padding-left: 20px; + white-space: nowrap + } + +TD.indexlinks { + width: 100% + } + +/* ------- Section Headings ------- */ + +TD.section1 { + padding-top: 15px; + font-weight: bold; + font-size: 150% + } + +TD.section2 { + padding-top: 10px; + font-weight: bold; + font-size: 130% + } + +TD.section3 { + padding-top: 5px; + font-weight: bold; + font-size: 110% + } + +TD.section4 { + font-weight: bold; + font-size: 100% + } + +/* -------------- The title bar at the top of the page */ + +TD.infohead { + color: #ffffff; + font-weight: bold; + padding-right: 10px; + text-align: left; +} + +TD.infoval { + color: #ffffff; + padding-right: 10px; + text-align: left; +} + +TD.topbar { + background-color: #000099; + padding: 5px; +} + +TD.title { + color: #ffffff; + padding-left: 10px; + width: 100% + } + +TD.topbut { + padding-left: 5px; + padding-right: 5px; + border-left-width: 1px; + border-left-color: #ffffff; + border-left-style: solid; + white-space: nowrap; + } + +TD.topbut A:link { + color: #ffffff + } + +TD.topbut A:visited { + color: #ffff00 + } + +TD.topbut A:hover { + background-color: #6060ff; + } + +TD.topbut:hover { + background-color: #6060ff + } + +TD.modulebar { + background-color: #0077dd; + padding: 5px; + border-top-width: 1px; + border-top-color: #ffffff; + border-top-style: solid; + } + +/* --------- The page footer --------- */ + +TD.botbar { + background-color: #000099; + color: #ffffff; + padding: 5px + } +TD.botbar A:link { + color: #ffffff; + text-decoration: underline + } +TD.botbar A:visited { + color: #ffff00 + } +TD.botbar A:hover { + background-color: #6060ff + } + binary ./doc/html/regex-tdfa/haskell_icon.gif oldhex * newhex *47494638376110001000f70f00000000800000008000808000000080800080008080c0c0c08080 *80ff000000ff00ffff000000ffff00ff00ffffffffff0000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *000000000000000000000000000000000000000000000000000000000000000000000000000000 *0021f90401000000002c000000001000100007086c0001007840b0a0418202073e38b0b021c387 *07143e2440c0a143040e091cd0787021c686151f84347800e343901d4b12646870e44a930d0952 *3ca832a6cc990555b2bc2992e4c79d3847ea2c88b3a7c89a2c8b8aa43874e941a60810003840b5 *aa55aa511346ddca75abc080003b hunk ./doc/html/regex-tdfa/index.html 1 + + +regex-tdfa-1.1.1: Replaces/Enhances Text.Regex
 regex-tdfa-1.1.1: Replaces/Enhances Text.RegexContentsIndex
regex-tdfa-1.1.1: Replaces/Enhances Text.Regex
A new all Haskell tagged DFA regex engine, inspired by libtre +
Modules
show/hideData
show/hideIntMap
Data.IntMap.CharMap2
Data.IntMap.EnumMap2
show/hideIntSet
Data.IntSet.EnumSet2
show/hideText
show/hideRegex
show/hideText.Regex.TDFA
show/hideText.Regex.TDFA.ByteString
Text.Regex.TDFA.ByteString.Lazy
Text.Regex.TDFA.Common
Text.Regex.TDFA.CorePattern
Text.Regex.TDFA.IntArrTrieSet
show/hideNewDFA
Text.Regex.TDFA.NewDFA.Engine
Text.Regex.TDFA.NewDFA.Engine_FA
Text.Regex.TDFA.NewDFA.Engine_NC
Text.Regex.TDFA.NewDFA.Engine_NC_FA
Text.Regex.TDFA.NewDFA.MakeTest
Text.Regex.TDFA.NewDFA.Tester
Text.Regex.TDFA.NewDFA.Uncons
Text.Regex.TDFA.Pattern
Text.Regex.TDFA.ReadRegex
Text.Regex.TDFA.Sequence
Text.Regex.TDFA.String
Text.Regex.TDFA.TDFA
Text.Regex.TDFA.TNFA
Produced by Haddock version 2.3.0
binary ./doc/html/regex-tdfa/minus.gif oldhex * newhex *47494638396109000900910000fefefe8282820202020000002c00000000090009000002118c8f *a00bc6eb5e0b40583b6596f1a11f14003b binary ./doc/html/regex-tdfa/plus.gif oldhex * newhex *47494638396109000900910000fefefe8282820202020000002c00000000090009000002148c8f *a00bb6b29c82ca897b5b7871cfce74085200003b binary ./doc/html/regex-tdfa/regex-tdfa.haddock oldhex * newhex *0d0cface00040000b5ef00009da5ff0000018e0000000000000000000000010000000100000000 *000000010000000200000000000000020000000300000000000000020000000400000000000000 *020000000500000000000000020000000600000000000000020000000700000000000000020000 *000800000000000000020000000900000000000000030000000a00000000000000030000000b00 *000000000000030000000c00000000000000030000000d00000000000000030000000e00000000 *000000030000000f00000000000000030000001000000000000000030000001100000000000000 *030000001200000000000000030000001300000000000000030000001400000000000000030000 *001500000000000000030000001600000000000000030000001700000000000000030000001800 *000000000000030000001900000000000000030000001a00000000000000030000001b00000000 *000000030000001c00000000000000030000001d00000000000000030000001e00000000000000 *030000001f00000000000000030000002000000000000000030000002100000000000000030000 *002200000000000000030000002300000000000000030000002400000000000000030000002500 *000000000000030000002600000000000000030000002700000000000000030000002800000000 *000000040000002900000000000000040000002a00000000000000040000002b00000000000000 *040000002c00000000000000040000002d00000000000000040000002e00000000000000040000 *002f00000000000000040000003000000000000000040000003100000000000000040000003200 *000000000000040000003300000000000000040000003400000000000000040000003500000000 *000000040000003600000000000000040000003700000000000000040000003800000000000000 *040000003900000000000000040000003a00000000000000040000003b00000000000000040000 *003c00000000000000040000003d00000000000000040000003e00000000000000040000003f00 *000000000000040000004000000000000000040000004100000000000000040000004200000000 *000000040000004300000000000000040000004400000000000000040000004500000000000000 *040000004600000000000000040000004700000000000000040000004800000000000000040000 *004900000000000000040000004a00000000000000040000004b00000000000000040000004c00 *000000000000040000004d00000000000000040000004e00000000000000040000004f00000000 *000000040000005000000000000000040000005100000000000000040000005200000000000000 *040000005300000000000000040000005400000000000000040000005500000000000000040000 *005600000000000000040000005700000000000000040000005800000000000000040000005900 *000000000000040000005a00000000000000040000005b00000000000000040000005c00000000 *000000040000005d00000000000000040000005e00000000000000040000005f00000000000000 *040000006000000000000000040000006100000000000000040000006200000000000000040000 *006300000000000000040000006400000000000000040000006500000000000000040000006600 *000000000000040000006700000000000000040000006800000000000000040000006900000000 *000000040000006a00000000000000040000006b00000000000000040000006c00000000000000 *050000006d00000000000000050000006e00000000000000050000006f00000000000000050000 *007000000000000000050000007100000000000000050000007200000000000000050000007300 *000000000000050000007400000000000000050000007500000000000000050000007600000000 *000000050000007700000000000000050000007800000000000000050000007900000000000000 *050000007a00000000000000050000007b00000000000000050000007c00000000000000050000 *007d00000000000000050000007e00000000000000050000007f00000000000000050000008000 *000000000000050000008100000000000000050000008200000000000000050000008300000000 *000000050000008400000000000000050000008500000000000000050000008600000000000000 *050000008700000000000000050000008800000000000000050000008900000000000000050000 *008a00000000000000050000008b00000000000000050000008c00000000000000050000008d00 *000000000000050000008e00000000000000050000008f00000000000000050000009000000000 *000000050000009100000000000000050000009200000000000000050000009300000000000000 *050000009400000000000000050000009500000000000000050000009600000000000000050000 *009700000000000000050000009800000000000000050000009900000000000000050000009a00 *000000000000050000009b00000000000000050000009c00000000000000050000009d00000000 *000000050000009e00000000000000050000009f0000000000000005000000a000000000000000 *05000000a10000000000000005000000a20000000000000005000000a300000000000000050000 *00a40000000000000005000000a50000000000000005000000a60000000000000005000000a700 *00000000000005000000a80000000000000005000000a90000000000000005000000aa00000000 *00000005000000ab0000000000000005000000ac0000000000000005000000ad00000000000000 *05000000ae0000000000000005000000af0000000000000005000000b000000000000000050000 *00b10000000000000006000000b20000000000000006000000b30000000000000006000000b400 *00000000000006000000b50000000000000006000000b60000000000000006000000b700000000 *00000006000000b80000000000000006000000b90000000000000006000000ba00000000000000 *06000000bb0000000000000006000000bc0000000000000006000000bd00000000000000060000 *00be0000000000000006000000bf0000000000000007000000c00000000000000006000000c100 *00000000000006000000c20000000000000006000000c30000000000000006000000c400000000 *00000007000000c50000000000000006000000c60000000000000006000000c700000000000000 *06000000c80000000000000006000000c90000000000000006000000ca00000000000000060000 *00cb0000000000000006000000cc0000000000000006000000cd0000000000000007000000ce00 *00000000000006000000cf0000000000000006000000d00000000000000006000000d100000000 *00000006000000d20000000000000006000000d30000000000000006000000d400000000000000 *08000000d50000000000000008000000d60000000000000006000000d700000000000000060000 *00d80000000000000006000000d90000000000000009000000da0000000000000009000000db00 *00000000000009000000dc0000000000000009000000dd0000000000000009000000de00000000 *00000009000000df0000000000000009000000e00000000000000009000000e100000000000000 *06000000e20000000000000006000000e30000000000000008000000e400000000000000060000 *00e50000000000000006000000e60000000000000006000000e70000000000000006000000e800 *00000000000008000000e90000000000000006000000ea0000000000000006000000eb00000000 *00000006000000ec0000000000000006000000ed0000000000000008000000ee00000000000000 *06000000ef0000000000000006000000f00000000000000006000000f100000000000000060000 *00f20000000000000006000000f30000000000000006000000f40000000000000006000000f500 *00000000000006000000f60000000000000006000000f70000000000000006000000f800000000 *00000006000000f90000000000000006000000fa0000000000000006000000fb00000000000000 *06000000fc0000000000000006000000fd0000000000000006000000fe00000000000000060000 *00ff00000000000000060000010000000000000000060000010100000000000000060000010200 *000000000000060000010300000000000000060000010400000000000000060000010500000000 *000000060000010600000000000000060000010700000000000000090000010800000000000000 *090000010900000000000000090000010a00000000000000090000010b00000000000000060000 *010c00000000000000060000010d00000000000000060000010e00000000000000060000010f00 *000000000000060000011000000000000000060000011100000000000000060000011200000000 *000000060000011300000000000000060000011400000000000000060000011500000000000000 *0a0000011600000000000000060000011700000000000000060000011800000000000000060000 *011900000000000000060000011a00000000000000060000011b00000000000000060000011c00 *000000000000060000011d00000000000000060000011e00000000000000060000011f00000000 *000000060000012000000000000000060000012100000000000000060000012200000000000000 *060000012300000000000000060000012400000000000000060000012500000000000000060000 *0126000000000000000600000127000000000000000b00000128000000000000000b0000012900 *0000000000000a0000012a000000000000000a0000012b000000000000000a0000012c00000000 *0000000a0000012d000000000000000a0000012e000000000000000a0000012f00000000000000 *0a00000130000000000000000a00000131000000000000000a00000132000000000000000a0000 *0133000000000000000a00000134000000000000000a00000135000000000000000a0000013600 *0000000000000a00000137000000000000000a00000138000000000000000a0000013900000000 *0000000a0000013a000000000000000a0000013b000000000000000a0000013c00000000000000 *0a0000013d000000000000000a0000013e000000000000000a0000013f000000000000000a0000 *0140000000000000000a00000141000000000000000a00000142000000000000000a0000014300 *0000000000000a00000144000000000000000a00000145000000000000000a0000014600000000 *0000000a00000147000000000000000a00000148000000000000000a0000014900000000000000 *0a0000014a000000000000000a0000014b000000000000000a0000014c000000000000000a0000 *014d000000000000000a0000014e00000000000000090000014f00000000000000090000015000 *000000000000090000015100000000000000090000015200000000000000090000015300000000 *000000090000015400000000000000090000015500000000000000090000015600000000000000 *090000015700000000000000090000015800000000000000090000015900000000000000090000 *015a00000000000000090000015b00000000000000090000015c00000000000000090000015d00 *000000000000090000015e00000000000000090000015f00000000000000090000016000000000 *000000090000016100000000000000090000016200000000000000090000016300000000000000 *090000016400000000000000090000016500000000000000090000016600000000000000090000 *016700000000000000090000016800000000000000090000016900000000000000090000016a00 *000000000000090000016b00000000000000090000016c00000000000000090000016d00000000 *000000090000016e00000000000000090000016f00000000000000090000017000000000000000 *090000017100000000000000090000017200000000000000090000017300000000000000090000 *0174000000000000000c00000175000000000000000d00000176000000000000000e0000017700 *0000000000000f0000017800000000000000100000017900000000000000110000017a00000000 *000000080000017b00000000000000070000017c00000000000000070000017d00000000000000 *070000017e00000000000000070000017f00000000000000120000018000000000000000120000 *018100000000000000120000018200000000000000130000018300000000000000130000018400 *000000000000130000018500000000000000140000018600000000000000140000018700000000 *000000140000018800000000000000150000018900000000000000150000018a00000000000000 *150000018b00000000000000160000018c00000000000000160000018d00000000000000161600 *000000000000010000000000020000000000000001020000000000000001000000000000000200 *00000004000000050301023e000000540000006800000069000000730000002000000069000000 *730000002000000074000000680000006500000020000000610000006300000063000000650000 *0073000000730000006f0000007200000020000000660000006f00000072000000200000007400 *0000680000006500000020000000540000007200000069000000650000002e0000002000000054 *0000006800000065000000200000006c000000690000007300000074000000200000006f000000 *66000000200000006b0000006500000079000000730000002000000073000000680000006f0000 *00750000006c000000640000002000000062000000650000000a02090000002000000073000000 *6f000000720000007400000065000000640000002e0000000a0000000603023900000054000000 *680000006900000073000000200000006900000073000000200000006100000020000000540000 *0072000000690000006500000020000000630000006f0000006e00000073000000740000007200 *00007500000063000000740000006f0000007200000020000000660000006f0000007200000020 *0000006100000020000000630000006f0000006d000000700000006c0000006500000074000000 *650000002000000072000000610000006e0000006700000065000000200000006f000000660000 *00200000006b0000006500000079000000730000002e0000000a00000007030102420000005400 *000068000000690000007300000020000000690000007300000020000000610000002000000054 *00000072000000690000006500000020000000630000006f0000006e0000007300000074000000 *720000007500000063000000740000006f0000007200000020000000660000006f000000720000 *00200000006100000020000000630000006f0000006d000000700000006c000000650000007400 *0000650000002000000072000000610000006e0000006700000065000000200000006f00000066 *000000200000006b00000065000000790000007300000020000000740000006800000061000000 *7400000020000000750000007300000065000000730000000a0102420000002000000061000000 *2000000066000000750000006e0000006300000074000000690000006f0000006e000000200000 *0066000000720000006f0000006d0000002000000073000000690000006e000000670000006c00 *0000650000002000000076000000610000006c0000007500000065000000730000002000000061 *0000006e000000640000002000000061000000200000006d000000650000007200000067000000 *65000000200000006f0000007000000065000000720000006100000074000000690000006f0000 *006e000000200000006f0000006e0000002000000076000000610000006c000000750000006500 *00007300000020000000740000006f0000000a02100000002000000066000000690000006c0000 *006c00000020000000740000006800000065000000200000005400000072000000690000006500 *00002e0000000a0000000803010242000000540000006800000069000000730000002000000069 *000000730000002000000061000000200000005400000072000000690000006500000020000000 *630000006f0000006e0000007300000074000000720000007500000063000000740000006f0000 *007200000020000000660000006f00000072000000200000006100000020000000630000006f00 *00006d000000700000006c0000006500000074000000650000002000000072000000610000006e *0000006700000065000000200000006f00000066000000200000006b0000006500000079000000 *730000002000000074000000680000006100000074000000200000007500000073000000650000 *00730000000a01024500000020000000610000002000000066000000750000006e000000630000 *0074000000690000006f0000006e0000002000000066000000720000006f0000006d0000002000 *000073000000690000006e000000670000006c000000650000002000000076000000610000006c *00000075000000650000007300000020000000610000006e000000640000002000000061000000 *2000000073000000750000006d000000200000006f000000700000006500000072000000610000 *0074000000690000006f0000006e000000200000006f0000006600000020000000760000006100 *00006c00000075000000650000007300000020000000740000006f000000200000006600000069 *0000006c0000006c0000000a020b00000020000000740000006800000065000000200000005400 *00007200000069000000650000002e0000000a08000000020000018e0000000300000004000000 *050000000600000007000000080700000002000000030000000400000005000000060000000700 *0000080000000000000003000000000020000000090000018f0000000a0000000b0000000c0000 *000d0000000e0000000f0000001000000011000000120000001300000014000000150000001600 *00001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f00000020 *000000210000002200000023000000240000002500000026000000271f000000090000000a0000 *000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400 *000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e *0000001f0000002000000021000000220000002300000024000000250000002600000027000000 *00000000040000000000450000002800000190000000290000002a0000002b0000002c0000002d *0000002e0000002f00000030000000310000003200000033000000340000003500000036000000 *3700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000 *004100000042000000430000004400000045000000460000004700000048000000490000004a00 *00004b0000004c0000004d0000004e0000004f0000005000000051000000520000005300000054 *00000055000000560000005700000058000000590000005a0000005b0000005c0000005d000000 *5e0000005f00000060000000610000006200000063000000640000006500000066000000670000 *0068000000690000006a0000006b4400000028000000290000002a0000002b0000002c0000002d *0000002e0000002f00000030000000310000003200000033000000340000003500000036000000 *3700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000 *004100000042000000430000004400000045000000460000004700000048000000490000004a00 *00004b0000004c0000004d0000004e0000004f0000005000000051000000520000005300000054 *00000055000000560000005700000058000000590000005a0000005b0000005c0000005d000000 *5e0000005f00000060000000610000006200000063000000640000006500000066000000670000 *0068000000690000006a0000006b00000000000000050000000000460000006c0000006d000001 *910000006e0000006f000000700000007100000072000000730000007400000075000000760000 *007700000078000000790000007a0000007b0000007c0000007d0000007e0000007f0000008000 *00008100000082000000830000008400000085000000860000008700000088000000890000008a *0000008b0000008c0000008d0000008e0000008f00000090000000910000009200000093000000 *9400000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000 *009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a700 *0000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b045000000 *6c0000006d0000006e0000006f0000007000000071000000720000007300000074000000750000 *00760000007700000078000000790000007a0000007b0000007c0000007d0000007e0000007f00 *000080000000810000008200000083000000840000008500000086000000870000008800000089 *0000008a0000008b0000008c0000008d0000008e0000008f000000900000009100000092000000 *930000009400000095000000960000009700000098000000990000009a0000009b0000009c0000 *009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a600 *0000a7000000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0 *0000000000000006000000003b000000b403010204000000540000006800000065000000200104 *0100000000b5000000000000000601020500000020000000610000006e00000064000000200102 *080000006e0000006500000077000000460000006c000000610000006700000073024400000020 *0000006c0000006900000073000000740000007300000020000000690000006e00000020000000 *490000006e000000730000007400000072000000750000006300000074000000690000006f0000 *006e000000730000002000000061000000720000006500000020000000730000006f0000007200 *00007400000065000000640000002000000062000000790000002c00000020000000610000006e *0000006400000020000000750000006e0000006900000071000000750000006500000020000000 *690000006e0000002c000000200000007400000068000000650000002000000054000000610000 *00670000002000000076000000610000006c0000007500000065000000730000000a000000b701 *0301023f000000500000006f000000730000006900000074000000690000006f0000006e000000 *7300000020000000660000006f0000007200000020000000770000006800000069000000630000 *00680000002000000061000000200000002a000000200000007700000061000000730000002000 *000072000000650000002d00000073000000740000006100000072000000740000006500000064 *000000200000007700000068000000690000006c00000065000000200000006c0000006f000000 *6f00000070000000690000006e000000670000002e00000020000000200000004e000000650000 *00650000006400000020000000740000006f0000000a0102420000002000000061000000700000 *0070000000650000006e00000064000000200000006c0000006f00000063000000610000007400 *0000690000006f0000006e00000073000000200000006100000074000000200000006200000061 *000000630000006b0000002000000062000000750000007400000020000000630000006f000000 *6d0000007000000061000000720000006500000020000000730000007400000061000000720000 *0074000000690000006e0000006700000020000000770000006900000074000000680000002000 *000066000000720000006f0000006e000000740000002c00000020000000730000006f00000020 *0000007500000073000000650000000a0102420000002000000053000000650000007100000020 *000000610000007300000020000000610000002000000051000000750000006500000075000000 *650000002e000000200000002000000054000000680000006500000020000000690000006e0000 *00690000007400000069000000610000006c00000020000000700000006f000000730000006900 *000074000000690000006f0000006e000000200000006900000073000000200000007300000061 *00000076000000650000006400000020000000690000006e000000200000006200000061000000 *7300000065000000500000006f000000730000002000000028000000610000006e000000640000 *0020000000610000000a01023f000000200000004d0000006100000078000000690000006d0000 *00690000007a0000006500000020000000540000006100000067000000290000002c0000002000 *0000740000006800000065000000200000006d0000006900000064000000640000006c00000065 *00000020000000700000006f000000730000006900000074000000690000006f0000006e000000 *7300000020000000690000006e0000002000000074000000680000006500000020000000530000 *0065000000710000002c00000020000000610000006e0000006400000020000000740000006800 *0000650000002000000066000000690000006e000000610000006c0000000a023f000000200000 *00700000006f000000730000006900000074000000690000006f0000006e000000200000006900 *000073000000200000004e0000004f000000540000002000000073000000610000007600000065 *0000006400000020000000690000006e0000002000000074000000680000006500000020000000 *4f000000720000006200000069000000740000007300000020000000280000006f0000006e0000 *006c0000007900000020000000690000006e0000002000000061000000200000004d0000006100 *000078000000690000006d000000690000007a0000006500000020000000540000006100000067 *000000290000002e0000000a03023a000000540000006800000065000000200000006f00000072 *000000640000006500000072000000690000006e000000610000006c0000002000000063000000 *6f0000006400000065000000200000006900000073000000200000006200000065000000690000 *006e00000067000000200000007700000072000000690000007400000074000000650000006e00 *00002000000058000000580000005800000020000000540000004f000000440000004f00000020 *000000640000006f00000063000000750000006d000000650000006e0000007400000020000000 *69000000740000002e0000000a000000bc030234000000490000006e0000007400000065000000 *720000006e000000610000006c00000020000000630000006f0000006e00000076000000650000 *006e00000069000000650000006e00000063000000650000002000000074000000790000007000 *00006500000020000000660000006f000000720000002000000074000000680000006500000020 *000000740000006500000078000000740000002000000064000000690000007300000070000000 *6c000000610000007900000020000000630000006f00000064000000650000000a000000bd0103 *010242000000490000006e0000007400000065000000720000006e000000610000006c00000020 *0000007400000079000000700000006500000020000000740000006f0000002000000072000000 *65000000700000006500000073000000650000006e000000740000002000000074000000680000 *006500000020000000630000006f0000006d0000006d000000610000006e000000640000007300 *000020000000660000006f00000072000000200000007400000068000000650000002000000074 *000000610000006700000067000000650000006400000020000000740000007200000061000000 *6e000000730000006900000074000000690000006f0000006e0000002e0000000a010244000000 *20000000540000006800000065000000200000006f000000750000007400000065000000720000 *0020000000490000006e000000740000004d000000610000007000000020000000690000007300 *000020000000660000006f00000072000000200000007400000068000000650000002000000064 *000000650000007300000074000000690000006e0000006100000074000000690000006f000000 *6e00000020000000490000006e00000064000000650000007800000020000000610000006e0000 *00640000002000000074000000680000006500000020000000690000006e0000006e0000006500 *00007200000020000000490000006e000000740000004d00000061000000700000000a01024500 *000020000000690000007300000020000000660000006f00000072000000200000007400000068 *0000006500000020000000530000006f0000007500000072000000630000006500000020000000 *490000006e0000006400000065000000780000002e000000200000002000000054000000680000 *00690000007300000020000000690000007300000020000000630000006f0000006e0000007600 *0000650000006e00000069000000650000006e000000740000002000000073000000690000006e *000000630000006500000020000000610000006c0000006c000000200000007200000075000000 *6e00000074000000690000006d0000006500000020000000640000006100000074000000610000 *000a024200000020000000670000006f000000690000006e000000670000002000000074000000 *6f000000200000007400000068000000650000002000000073000000610000006d000000650000 *002000000064000000650000007300000074000000690000006e00000061000000740000006900 *00006f0000006e000000200000006d000000750000007300000074000000200000006200000065 *00000020000000630000006f0000006d0000007000000061000000720000006500000064000000 *20000000740000006f0000002000000066000000690000006e0000006400000020000000740000 *00680000006500000020000000620000006500000073000000740000002e0000000a0301024200 *0000410000002000000044000000650000007300000074000000690000006e0000006100000074 *000000690000006f0000006e00000020000000490000006e000000740000004d00000061000000 *7000000020000000650000006e000000740000007200000079000000200000006d000000610000 *0079000000200000006800000061000000760000006500000020000000610000006e0000002000 *0000650000006d00000070000000740000007900000020000000530000006f0000007500000072 *000000630000006500000020000000490000006e000000740000004d0000006100000070000000 *20000000690000006600000020000000610000006e000000640000000a01023a00000020000000 *6f0000006e0000006c000000790000002000000069000000660000002000000074000000680000 *00650000002000000064000000650000007300000074000000690000006e000000610000007400 *0000690000006f0000006e00000020000000690000007300000020000000740000006800000065 *000000200000007300000074000000610000007200000074000000690000006e00000067000000 *20000000690000006e00000064000000650000007800000020000000610000006e000000640000 *0020000000740000006800000065000000200000004e00000046000000410102010000002f0102 *050000004400000046000000410000002e0000000a010245000000200000005400000068000000 *690000007300000020000000690000006e00000073000000740000007200000075000000630000 *00740000007300000020000000740000006800000065000000200000006d000000610000007400 *00006300000068000000690000006e0000006700000020000000650000006e0000006700000069 *0000006e0000006500000020000000740000006f00000020000000730000007000000061000000 *770000006e0000002000000061000000200000006e000000650000007700000020000000650000 *006e00000074000000720000007900000020000000730000007400000061000000720000007400 *0000690000006e000000670000002000000061000000740000000a021b00000020000000740000 *00680000006500000020000000700000006f00000073000000740000002d000000750000007000 *00006400000061000000740000006500000020000000700000006f000000730000006900000074 *000000690000006f0000006e0000002e0000000a000000be030219000000490000006e00000074 *00000065000000720000006e000000610000006c00000020000000740000006f00000020000000 *74000000680000006500000020000000440000004600000041000000200000006e0000006f0000 *0064000000650000000a000000c003021400000054000000680000006500000020000000740000 *0065000000730000007400000020000000740000006f0000002000000070000000650000007200 *0000660000006f000000720000006d0000000a000000c10302340000006c0000006f0000006300 *00006100000074000000690000006f0000006e000000280000007300000029000000200000006f *000000660000002000000074000000680000006500000020000000610000006e00000063000000 *680000006f0000007200000028000000730000002900000020000000690000006e000000200000 *00740000006800000065000000200000006f000000720000006900000067000000690000006e00 *0000610000006c000000200000007200000065000000670000006500000078000000700000000a *000000c20302270000007500000073000000650000002000000064000000740000005f00000061 *000000200000006900000066000000200000007400000065000000730000007400000020000000 *6900000073000000200000005400000072000000750000006500000020000000650000006c0000 *007300000065000000200000007500000073000000650000002000000064000000740000005f00 *0000620000000a000000c303022700000075000000730000006500000020000000640000007400 *00005f000000610000002000000069000000660000002000000074000000650000007300000074 *000000200000006900000073000000200000005400000072000000750000006500000020000000 *650000006c00000073000000650000002000000075000000730000006500000020000000640000 *00740000005f000000620000000a000000c503021a000000410000006300000074000000690000 *006f0000006e0000007300000020000000740000006f0000002000000070000000650000007200 *0000660000006f000000720000006d00000020000000740000006f000000200000007700000069 *0000006e0000000a000000c603021a0000005400000072000000610000006e0000007300000069 *00000074000000690000006f0000006e00000020000000740000006f0000002000000061000000 *630000006300000065000000700000007400000020000000430000006800000061000000720000 *000a000000c703021d00000064000000650000006600000061000000750000006c000000740000 *0020000000610000006300000063000000650000007000000074000000690000006e0000006700 *0000200000007400000072000000610000006e000000730000006900000074000000690000006f *0000006e0000000a000000c903022c000000770000006800000065000000720000006500000020 *000000740000006f00000020000000670000006f00000020000000280000006d00000061000000 *78000000690000006d000000610000006c000000290000002c00000020000000690000006e0000 *00630000006c0000007500000064000000690000006e0000006700000020000000720000006500 *0000730000007000000061000000770000006e000000690000006e000000670000000a000000ca *030226000000770000006800000065000000720000006500000020000000740000006f00000020 *000000670000006f0000002c000000200000006e0000006f000000740000002000000069000000 *6e000000630000006c0000007500000064000000690000006e0000006700000020000000720000 *0065000000730000007000000061000000770000006e000000690000006e000000670000000a00 *0000cb030220000000680000006f0000007700000020000000740000006f000000200000006700 *00006f0000002c00000020000000690000006e000000630000006c000000750000006400000069 *0000006e0000006700000020000000720000006500000073000000700000006100000077000000 *6e000000690000006e000000670000000a000000cc03010240000000490000006e000000740000 *0065000000720000006e000000610000006c000000200000004400000046000000410000002000 *00006e0000006f00000064000000650000002c000000200000006900000064000000650000006e *000000740000006900000066000000690000006500000064000000200000006200000079000000 *2000000074000000680000006500000020000000530000006500000074000000200000006f0000 *006600000020000000690000006e00000064000000690000006300000065000000730000002000 *00006f000000660000002000000074000000680000006500000020000000510000004e00000046 *000000410000000a0216000000200000006e0000006f0000006400000065000000730000002000 *000069000000740000002000000072000000650000007000000072000000650000007300000065 *0000006e00000074000000730000002e0000000a000000d00301023e0000004f00000072000000 *6400000065000000720000006500000064000000200000006c0000006900000073000000740000 *00200000006f000000660000002000000074000000610000006700000073000000200000006100 *00006e000000640000002000000074000000680000006500000069000000720000002000000061 *00000073000000730000006f000000630000006900000061000000740000006500000064000000 *20000000750000007000000064000000610000007400000065000000200000006f000000700000 *0065000000720000006100000074000000690000006f0000006e00000020000000740000006f00 *00000a023e00000020000000700000006500000072000000660000006f000000720000006d0000 *00200000006f0000006e00000020000000610000006e00000020000000650000006d0000007000 *00007400000079000000200000007400000072000000610000006e000000730000006900000074 *000000690000006f0000006e00000020000000740000006f000000200000007400000068000000 *65000000200000007600000069000000720000007400000075000000610000006c000000200000 *0077000000690000006e0000006e000000690000006e0000006700000020000000730000007400 *00006100000074000000650000002e0000000a000000d10301023f000000410000002000000054 *00000061000000670000004c00000069000000730000007400000020000000610000006e000000 *6400000020000000740000006800000065000000200000006c0000006f00000063000000610000 *0074000000690000006f0000006e000000200000006f0000006600000020000000740000006800 *000065000000200000006900000074000000650000006d00000020000000690000006e00000020 *000000740000006800000065000000200000006f00000072000000690000006700000069000000 *6e000000610000006c000000200000007000000061000000740000007400000065000000720000 *006e0000000a021900000020000000740000006800000061000000740000002000000069000000 *73000000200000006200000065000000690000006e000000670000002000000061000000630000 *006300000065000000700000007400000065000000640000002e0000000a000000d203023c0000 *004f000000720000006400000065000000720000006500000064000000200000006c0000006900 *00007300000074000000200000006f000000660000002000000074000000610000006700000073 *00000020000000610000006e000000640000002000000074000000680000006500000069000000 *72000000200000006100000073000000730000006f000000630000006900000061000000740000 *006500000064000000200000007500000070000000640000006100000074000000650000002000 *00006f0000007000000065000000720000006100000074000000690000006f0000006e0000002e *0000000a000000d3030102420000005700000068000000650000006e0000002000000061000000 *7400000074000000610000006300000068000000650000006400000020000000740000006f0000 *00200000006100000020000000510000005400000072000000610000006e000000730000002000 *000074000000680000006500000020000000540000006100000067000000540000006100000073 *0000006b0000002000000063000000610000006e00000020000000620000006500000020000000 *640000006f0000006e00000065000000200000006200000065000000660000006f000000720000 *0065000000200000006f0000007200000020000000610000006600000074000000650000007200 *00000a021a00000020000000610000006300000063000000650000007000000074000000690000 *006e00000067000000200000007400000068000000650000002000000063000000680000006100 *00007200000061000000630000007400000065000000720000002e0000000a000000d603022f00 *00004f000000720000006400000065000000720000006500000064000000200000006c00000069 *0000007300000074000000200000006f0000006600000020000000740000006100000067000000 *7300000020000000610000006e0000006400000020000000740000006800000065000000690000 *0072000000200000006100000073000000730000006f0000006300000069000000610000007400 *00006500000064000000200000005400000061000000730000006b0000000a000000d703010235 *000000540000006800000065000000200000007400000068000000690000006e00000067000000 *7300000020000000740000006800000061000000740000002000000063000000610000006e0000 *0020000000620000006500000020000000640000006f0000006e00000065000000200000007700 *00006900000074000000680000002000000061000000200000005400000061000000670000002e *00000020000000200000005400000061000000670000005400000061000000730000006b000000 *20000000610000006e000000640000000a01023e00000020000000520000006500000073000000 *650000007400000047000000720000006f000000750000007000000053000000740000006f0000 *00700000005400000061000000730000006b000000200000006100000072000000650000002000 *0000660000006f0000007200000020000000740000006100000067000000730000002000000077 *000000690000007400000068000000200000004d0000006100000078000000690000006d000000 *690000007a00000065000000200000006f00000072000000200000004d000000690000006e0000 *00690000006d000000690000007a00000065000000200000004f000000500000000a0102430000 *002000000076000000610000006c0000007500000065000000730000002e000000200000002000 *000052000000650000007300000065000000740000004f00000072000000620000006900000074 *0000005400000061000000730000006b00000020000000610000006e0000006400000020000000 *450000006e0000007400000065000000720000004f000000720000006200000069000000740000 *005400000061000000730000006b00000020000000610000006e00000064000000200000004c00 *0000650000006100000076000000650000004f0000007200000062000000690000007400000054 *00000061000000730000006b000000200000006100000072000000650000000a021f0000002000 *0000660000006f0000007200000020000000740000006100000067000000730000002000000077 *000000690000007400000068000000200000004f00000072000000620000006900000074000000 *200000004f000000500000002000000076000000610000006c00000075000000650000002e0000 *000a000000d8030102420000004b0000006e0000006f000000770000006e000000200000007000 *00007200000065000000640000006900000063000000610000007400000065000000730000002c *000000200000006a00000075000000730000007400000020000000420000006500000067000000 *690000006e0000006e000000690000006e00000067000000200000006f00000066000000200000 *004c000000690000006e0000006500000020000000280000005e00000029000000200000006100 *00006e0000006400000020000000450000006e00000064000000200000006f0000006600000020 *0000004c000000690000006e00000065000000200000002800000024000000290000002e000000 *0a01023100000020000000410000006c000000730000006f000000200000007300000075000000 *70000000700000006f000000720000007400000020000000660000006f00000072000000200000 *00470000004e0000005500000020000000650000007800000074000000650000006e0000007300 *0000690000006f0000006e00000073000000200000006900000073000000200000006200000065 *000000690000006e00000067000000200000006100000064000000640000006500000064000000 *3a000000200102010000006001020e00000020000000620000006500000067000000690000006e *0000006e000000690000006e00000067000000200000006f000000660000000a01020900000020 *0000006200000075000000660000006600000065000000720000002c0000002001020100000027 *01021000000020000000650000006e00000064000000200000006f000000660000002000000062 *00000075000000660000006600000065000000720000002c000000200102010000003c01020500 *000020000000610000006e00000064000000200102010000003e01021d00000020000000660000 *006f0000007200000020000000620000006500000067000000690000006e000000200000006100 *00006e0000006400000020000000650000006e00000064000000200000006f0000006600000020 *000000770000006f0000007200000064000000730000002c000000200102010000006201020100 *00000a01020500000020000000610000006e000000640000002001020100000042022a00000020 *000000660000006f0000007200000020000000770000006f000000720000006400000020000000 *620000006f000000750000006e0000006400000061000000720000007900000020000000610000 *006e00000064000000200000006e0000006f0000007400000020000000770000006f0000007200 *00006400000020000000620000006f000000750000006e00000064000000610000007200000079 *0000002e0000000a000000e103010242000000490000006e000000740000006500000072000000 *6e000000610000006c000000200000007400000079000000700000006500000020000000740000 *006f00000020000000720000006500000070000000720000006500000073000000650000006e00 *000074000000200000007400000068000000650000002000000074000000610000006700000067 *0000006500000064000000200000007400000072000000610000006e0000007300000069000000 *74000000690000006f0000006e0000002000000066000000720000006f0000006d000000200000 *006f0000006e0000006500000020000000510000004e0000004600000041000000200000007400 *00006f0000000a024500000020000000610000006e0000006f0000007400000068000000650000 *007200000020000000280000006f00000072000000200000006900000074000000730000006500 *00006c00000066000000290000002e000000200000002000000054000000680000006500000020 *0000006b0000006500000079000000200000006900000073000000200000007400000068000000 *6500000020000000490000006e000000640000006500000078000000200000006f000000660000 *002000000074000000680000006500000020000000640000006500000073000000740000006900 *00006e0000006100000074000000690000006f0000006e00000020000000510000004e00000046 *000000410000002e0000000a000000e2030217000000490000006e000000740000006500000072 *0000006e000000610000006c00000020000000740000006f00000020000000510000004e000000 *460000004100000020000000740000007900000070000000650000002e0000000a000000e40302 *140000005400000068000000650000002000000074000000650000007300000074000000200000 *00740000006f00000020000000700000006500000072000000660000006f000000720000006d00 *00000a000000e50302340000006c0000006f000000630000006100000074000000690000006f00 *00006e000000280000007300000029000000200000006f00000066000000200000007400000068 *0000006500000020000000610000006e00000063000000680000006f0000007200000028000000 *730000002900000020000000690000006e00000020000000740000006800000065000000200000 *006f000000720000006900000067000000690000006e000000610000006c000000200000007200 *000065000000670000006500000078000000700000000a000000e6030228000000750000007300 *0000650000002000000071000000740000005f0000006100000020000000690000006600000020 *000000740000006500000073000000740000002000000069000000730000002000000054000000 *7200000075000000650000002c00000020000000650000006c0000007300000065000000200000 *007500000073000000650000002000000071000000740000005f000000620000000a000000e703 *02280000007500000073000000650000002000000071000000740000005f000000610000002000 *000069000000660000002000000074000000650000007300000074000000200000006900000073 *00000020000000540000007200000075000000650000002c00000020000000650000006c000000 *7300000065000000200000007500000073000000650000002000000071000000740000005f0000 *00620000000a000000e903022f000000650000006d000000700000007400000079000000200000 *007400000072000000610000006e000000730000006900000074000000690000006f0000006e00 *00007300000020000000740000006f000000200000007400000068000000650000002000000076 *00000069000000720000007400000075000000610000006c000000200000007700000069000000 *6e0000006e000000690000006e0000006700000020000000730000007400000061000000740000 *00650000000a000000ea030236000000610000006c0000006c0000002000000077000000610000 *00790000007300000020000000740000006f000000200000006c00000065000000610000007600 *000065000000200000007400000068000000690000007300000020000000510000004e00000046 *0000004100000020000000740000006f000000200000006f000000740000006800000065000000 *72000000200000006f000000720000002000000074000000680000006500000020000000730000 *00610000006d0000006500000020000000510000004e00000046000000410000000a000000eb03 *023a00000064000000650000006600000061000000750000006c00000074000000200000007700 *000061000000790000007300000020000000740000006f000000200000006c0000006500000061 *000000760000006500000020000000740000006800000069000000730000002000000051000000 *4e000000460000004100000020000000740000006f000000200000006f00000074000000680000 *006500000072000000200000006f00000072000000200000007400000068000000650000002000 *000073000000610000006d0000006500000020000000510000004e00000046000000410000000a *000000ec030217000000490000006e0000007400000065000000720000006e000000610000006c *000000200000004e0000004600000041000000200000006e0000006f0000006400000065000000 *20000000740000007900000070000000650000000a000000f10301021a00000054000000680000 *006500000020000000540000004400000046000000410000002000000062000000610000006300 *00006b000000650000006e00000064000000200000007300000070000000650000006300000069 *0000006600000069000000630000002001040100000000f1000000000000000601021a00000020 *000000740000007900000070000000650000002c00000020000000750000007300000065000000 *640000002000000062000000790000002000000074000000680000006900000073000000200000 *006d0000006f00000064000000750000006c0000006501020100000027021e0000007300000020 *00000052000000650000006700000065000000780000004f000000700000007400000069000000 *6f0000006e0000007300000020000000610000006e000000640000002000000052000000650000 *006700000065000000780000004d000000610000006b00000065000000720000000a000000f203 *02130000007300000074000000610000007200000074000000690000006e000000670000002000 *00004400000046000000410000002000000073000000740000006100000074000000650000000a *000000f3030218000000690000006e000000640000006500000078000000200000006f00000066 *000000200000007300000074000000610000007200000074000000690000006e00000067000000 *2000000073000000740000006100000074000000650000000a000000f403022700000069000000 *6e0000006400000065000000780000006500000073000000200000006f00000066000000200000 *00730000006d000000610000006c0000006c000000650000007300000074000000200000006100 *00006e00000064000000200000006c000000610000007200000067000000650000007300000074 *000000200000007300000074000000610000007400000065000000730000000a000000f5030225 *000000690000006e0000006400000065000000780000006500000073000000200000006f000000 *6600000020000000730000006d000000610000006c0000006c0000006500000073000000740000 *0020000000610000006e00000064000000200000006c0000006100000072000000670000006500 *0000730000007400000020000000740000006100000067000000730000000a000000f603020f00 *0000410000006c0000006c00000020000000440000004600000041000000200000007300000074 *000000610000007400000065000000730000000a000000f703021b000000690000006e00000066 *0000006f000000720000006d0000006100000074000000690000006f0000006e00000020000000 *61000000620000006f000000750000007400000020000000650000006100000063000000680000 *00200000007400000061000000670000000a000000f803021d000000690000006e000000660000 *006f000000720000006d0000006100000074000000690000006f0000006e000000200000006100 *0000620000006f0000007500000074000000200000006500000061000000630000006800000020 *00000067000000720000006f00000075000000700000000a000000f903021e0000007500000073 *000000650000006400000020000000660000006f00000072000000200000006f00000070000000 *74000000690000006d000000690000007a000000690000006e0000006700000020000000650000 *007800000065000000630000007500000074000000690000006f0000006e0000000a000000fc03 *01024300000047000000720000006f0000007500000070000000490000006e000000660000006f *00000020000000630000006f0000006c0000006c00000065000000630000007400000073000000 *2000000074000000680000006500000020000000700000006100000072000000650000006e0000 *007400000020000000610000006e00000064000000200000007400000061000000670000002000 *0000690000006e000000660000006f000000720000006d0000006100000074000000690000006f *0000006e00000020000000660000006f0000007200000020000000610000006e00000020000000 *690000006e0000007300000074000000610000006e0000006300000065000000200000000a020c *000000200000006f0000006600000020000000610000002000000067000000720000006f000000 *75000000700000000a000001020301023500000047000000720000006f00000075000000700000 *00490000006e000000640000006500000078000000200000006900000073000000200000006600 *00006f0000007200000020000000690000006e000000640000006500000078000000690000006e *00000067000000200000007300000075000000620000006d000000610000007400000063000000 *6800000065000000730000002000000066000000720000006f0000006d00000020000000630000 *006100000070000000740000007500000072000000690000006e000000670000000a01021d0000 *0020000000700000006100000072000000650000006e0000007400000068000000650000007300 *0000690000007a00000065000000640000002000000067000000720000006f0000007500000070 *0000007300000020000000280000005000000047000000720000006f0000007500000070010201 *0000002f020700000047000000720000006f0000007500000070000000290000000a0000010303 *0223000000490000006e00000064000000650000007800000020000000690000006e0000007400 *00006f000000200000007400000068000000650000002000000074000000650000007800000074 *000000200000006200000065000000690000006e00000067000000200000007300000065000000 *6100000072000000630000006800000065000000640000000a0000010403022f00000049000000 *6e0000007400000065000000720000006e000000610000006c0000002000000044000000460000 *0041000000200000006900000064000000650000006e0000007400000069000000740000007900 *000020000000690000007300000020000000740000006800000069000000730000002000000053 *0000006500000074000000200000006f00000066000000200000004e0000004600000041000000 *20000000490000006e0000006400000065000000780000000a0000010503022200000049000000 *6e0000007400000065000000720000006e000000610000006c000000200000004e000000460000 *0041000000200000006e0000006f00000064000000650000002000000069000000640000006500 *00006e00000074000000690000007400000079000000200000006e000000750000006d00000062 *00000065000000720000000a00000106030254000000490000006e000000740000006500000072 *0000006e000000610000006c000000200000007500000073000000650000002000000074000000 *6f00000020000000690000006e0000006400000069000000630000006100000074000000650000 *002000000074000000790000007000000065000000200000006f00000066000000200000007400 *0000610000006700000020000000610000006e0000006400000020000000700000007200000065 *000000660000006500000072000000650000006e00000063000000650000002000000066000000 *6f00000072000000200000006c0000006100000072000000670000006500000072000000200000 *006f0000007200000020000000730000006d000000610000006c0000006c000000650000007200 *000020000000500000006f000000730000006900000074000000690000006f0000006e00000073 *0000000a0000010b03010237000000550000007300000065000000640000002000000062000000 *7900000020000000690000006d000000700000006c000000650000006d000000650000006e0000 *00740000006100000074000000690000006f0000006e00000020000000740000006f0000002000 *00006e000000610000006d00000065000000200000006300000065000000720000007400000061 *000000690000006e00000020000000500000006f0000007300000074000000690000006f000000 *6e0000007300000020000000640000007500000072000000690000006e000000670000000a023f *000000200000006d00000061000000740000006300000068000000690000006e00000067000000 *2e000000200000004900000064000000650000006e000000740000006900000074000000790000 *00200000006f0000006600000020000000500000006f0000007300000069000000740000006900 *00006f0000006e0000002000000074000000610000006700000020000000740000006f00000020 *00000073000000650000007400000020000000640000007500000072000000690000006e000000 *670000002000000061000000200000007400000072000000610000006e00000073000000690000 *0074000000690000006f0000006e0000000a0000010d03023d0000005400000072000000750000 *006500000020000000620000007900000020000000640000006500000066000000610000007500 *00006c000000740000002e00000020000000200000005300000065000000740000002000000074 *0000006f0000002000000046000000610000006c00000073000000650000002000000074000000 *6f00000020000000690000006d00000070000000720000006f0000007600000065000000200000 *0073000000700000006500000065000000640000002000000028000000610000006e0000006400 *0000200000007300000070000000610000006300000065000000290000002e0000000a0000010e *0301025a000000430000006f0000006e00000074000000720000006f0000006c00000020000000 *770000006800000065000000740000006800000065000000720000002000000074000000680000 *0065000000200000007000000061000000740000007400000065000000720000006e0000002000 *00006900000073000000200000006d000000750000006c00000074000000690000006c00000069 *0000006e00000065000000200000006f0000007200000020000000630000006100000073000000 *650000002d00000073000000650000006e00000073000000690000007400000069000000760000 *0065000000200000006c000000690000006b000000650000002000000054000000650000007800 *0000740000002e000000520000006500000067000000650000007800000020000000610000006e *000000640000002000000077000000680000006500000074000000680000006500000072000000 *20000000740000006f0000000a0102180000002000000063000000610000007000000074000000 *750000007200000065000000200000007400000068000000650000002000000073000000750000 *006200000067000000720000006f00000075000000700000007300000020000000280102010000 *00310102020000002c000000200102010000003202300000002c00000020000000650000007400 *000063000000290000002e0000002000000020000000430000006f0000006e0000007400000072 *0000006f0000006c0000007300000020000000650000006e00000061000000620000006c000000 *690000006e00000067000000200000006500000078000000740000007200000061000000200000 *00610000006e00000063000000680000006f000000720000002000000073000000790000006e00 *00007400000061000000780000002e0000000a0000010f03022800000054000000720000007500 *00006500000020000000690000006e00000020000000620000006c000000610000006e0000006b *000000430000006f0000006d000000700000004f00000070000000740000002000000061000000 *6e000000640000002000000064000000650000006600000061000000750000006c000000740000 *00430000006f0000006d000000700000004f00000070000000740000000a000001100301023b00 *000046000000610000006c000000730000006500000020000000690000006e0000002000000062 *0000006c000000610000006e0000006b000000430000006f0000006d000000700000004f000000 *70000000740000002c000000200000005400000072000000750000006500000020000000690000 *006e0000002000000064000000650000006600000061000000750000006c000000740000004300 *00006f0000006d000000700000004f00000070000000740000002e00000020000000430000006f *0000006d00000070000000690000006c0000006500000020000000660000006f00000072000000 *0a0102330000002000000020000000200000002000000020000000200000002000000020000000 *200000002000000020000000200000002000000020000000200000002000000020000000200000 *00200000002000000020000000200000006e00000065000000770000006c000000690000006e00 *0000650000002d00000073000000650000006e0000007300000069000000740000006900000076 *00000065000000200000006d00000061000000740000006300000068000000690000006e000000 *670000002e00000020000000200105ff000001f400000042000000790000002000000064000000 *650000006600000061000000750000006c000000740000002c000000200000006e000000650000 *00770000006c000000690000006e00000065000000200000006900000073000000200000006100 *000020000000630000006f0000006d000000700000006c0000006500000074000000650000006c *00000079000000200000006f0000007200000064000000690000006e0000006100000072000000 *790000000a00000020000000200000002000000020000000200000002000000020000000200000 *002000000020000000200000002000000020000000200000002000000020000000200000002000 *000020000000200000002000000020000000630000006800000061000000720000006100000063 *000000740000006500000072000000200000007700000069000000740000006800000020000000 *6e0000006f000000200000007300000070000000650000006300000069000000610000006c0000 *00200000006d00000065000000610000006e000000690000006e00000067000000200000006900 *00006e000000200000006500000069000000740000006800000065000000720000002000000052 *0000004500000073000000200000006f0000007200000020000000730000007400000072000000 *690000006e00000067000000730000002e00000020000000200000005700000069000000740000 *0068000000200000007400000068000000690000007300000020000000660000006c0000006100 *0000670000002c0000000a00000020000000200000002000000020000000200000002000000020 *000000200000002000000020000000200000002000000020000000200000002000000020000000 *200000002000000020000000200000002000000020000000690000006e00000076000000650000 *007200000074000000650000006400000020000000620000007200000061000000630000006b00 *000065000000740000002000000065000000780000007000000072000000650000007300000073 *000000690000006f0000006e0000007300000020000000610000006e0000006400000020000000 *2e000000200000006e00000065000000760000006500000072000000200000006d000000610000 *00740000006300000068000000200000006e00000065000000770000006c000000690000006e00 *0000650000002c0000002000000061000000200000005e00000020000000610000006e00000063 *000000680000006f00000072000000200000006d00000061000000740000006300000068000000 *6500000073000000200000007400000068000000650000000a0000002000000020000000200000 *002000000020000000200000002000000020000000200000002000000020000000200000002000 *00002000000020000000200000002000000020000000200000002000000020000000200000006e *000000750000006c0000006c00000020000000730000007400000072000000690000006e000000 *6700000020000000610000006600000074000000650000007200000020000000610000006e0000 *0079000000200000006e00000065000000770000006c000000690000006e000000650000002000 *0000690000006e0000002000000074000000680000006500000020000000730000007400000072 *000000690000006e0000006700000020000000690000006e000000200000006100000064000000 *640000006900000074000000690000006f0000006e00000020000000740000006f000000200000 *00690000007400000073000000200000006e0000006f000000720000006d000000610000006c00 *00000a000000200000002000000020000000200000002000000020000000200000002000000020 *000000200000002000000020000000200000002000000020000000200000002000000020000000 *2000000020000000200000002000000066000000750000006e0000006300000074000000690000 *006f0000006e0000002c00000020000000610000006e0000006400000020000000740000006800 *000065000000200000002400000020000000610000006e00000063000000680000006f00000072 *000000200000006d00000061000000740000006300000068000000650000007300000020000000 *740000006800000065000000200000006e000000750000006c0000006c00000020000000730000 *007400000072000000690000006e00000067000000200000006200000065000000660000006f00 *0000720000006500000020000000610000006e00000079000000200000006e0000006500000077 *0000006c000000690000006e0000006500000020000000690000006e0000002000000074000000 *68000000650000000a000000200000002000000020000000200000002000000020000000200000 *002000000020000000200000002000000020000000200000002000000020000000200000002000 *00002000000020000000200000002000000020000000730000007400000072000000690000006e *0000006700000020000000690000006e0000002000000061000000640000006400000069000000 *74000000690000006f0000006e00000020000000740000006f0000002000000069000000740000 *0073000000200000006e0000006f000000720000006d000000610000006c000000200000006600 *0000750000006e0000006300000074000000690000006f0000006e0000002e0202000000200000 *000a0000011103024a000000540000007200000075000000650000002000000028000000610000 *006e00000064000000200000007400000068000000650000007200000065000000660000006f00 *000072000000650000002000000052000000690000006700000068000000740000002000000061 *00000073000000730000006f000000630000006900000061000000740000006900000076000000 *650000002900000020000000690000006e00000020000000620000006c000000610000006e0000 *006b000000430000006f0000006d000000700000004f0000007000000074000000200000006100 *00006e000000640000002000000064000000650000006600000061000000750000006c00000074 *000000430000006f0000006d000000700000004f00000070000000740000000a00000112030102 *5e00000046000000610000006c000000730000006500000020000000690000006e000000200000 *00620000006c000000610000006e0000006b000000430000006f0000006d000000700000004f00 *000070000000740000002c00000020000000540000007200000075000000650000002000000069 *0000006e0000002000000064000000650000006600000061000000750000006c00000074000000 *430000006f0000006d000000700000004f00000070000000740000002e00000020000000410000 *006400000064000000200000007400000068000000650000002000000065000000780000007400 *0000650000006e000000640000006500000064000000200000006e0000006f0000006e0000002d *000000500000004f0000005300000049000000580000002000000073000000790000006e000000 *740000006100000078000000200000006400000065000000730000006300000072000000690000 *0062000000650000006400000020000000690000006e0000002001050f00000054000000650000 *0078000000740000002e00000052000000650000006700000065000000780000002e0000005400 *0000440000004600000041021800000020000000680000006100000064000000640000006f0000 *00630000006b00000020000000640000006f00000063000000750000006d000000650000006e00 *0000740000006100000074000000690000006f0000006e0000002e0000000a000001130301024b *00000046000000610000006c000000730000006500000020000000620000007900000020000000 *64000000650000006600000061000000750000006c000000740000002e00000020000000200000 *005400000068000000690000007300000020000000690000007300000020000000500000004f00 *000053000000490000005800000020000000630000006f00000072000000720000006500000063 *000000740000002000000062000000750000007400000020000000690000007400000020000000 *74000000610000006b000000650000007300000020000000730000007000000061000000630000 *006500000020000000610000006e00000064000000200000006900000073000000200000007300 *00006c0000006f0000007700000065000000720000002e0000000a010243000000200000005300 *0000650000007400000074000000690000006e0000006700000020000000740000006800000069 *0000007300000020000000740000006f0000002000000074000000720000007500000065000000 *2000000077000000690000006c0000006c00000020000000690000006d00000070000000720000 *006f000000760000006500000020000000700000006500000072000000660000006f0000007200 *00006d000000610000006e00000063000000650000002c00000020000000610000006e00000064 *0000002000000073000000680000006f000000750000006c000000640000002000000062000000 *6500000020000000640000006f0000006e000000650000000a023b000000200000006900000066 *00000020000000790000006f0000007500000020000000700000006c000000610000006e000000 *20000000740000006f000000200000007300000065000000740000002000000074000000680000 *006500000020000000630000006100000070000000740000007500000072000000650000004700 *0000720000006f0000007500000070000000730000002000000065000000780000006500000063 *0000006f0000007000000074000000690000006f0000006e00000020000000740000006f000000 *2000000046000000610000006c00000073000000650000002e0000000a00000114030102410000 *005500000073000000650000006400000020000000740000006f00000020000000740000007200 *000061000000630000006b00000020000000650000006c000000650000006d000000650000006e *0000007400000073000000200000006f0000006600000020000000740000006800000065000000 *200000007000000061000000740000007400000065000000720000006e00000020000000740000 *006800000061000000740000002000000061000000630000006300000065000000700000007400 *000020000000630000006800000061000000720000006100000063000000740000006500000072 *00000073000000200000006f00000072000000200000000a020d00000020000000610000007200 *00006500000020000000610000006e00000063000000680000006f00000072000000730000000a *0000011a0301022300000061000000660000007400000065000000720000002000000073000000 *6f0000007200000074000000200000006f0000007200000020000000730000006f000000720000 *007400000042000000790000002000000074000000680000006500000020000000750000007300 *000065000000200000006f00000066000000200000006e00000075000000620106021e0000006e *000000750000006200000042000000790000002000000063000000610000006e00000020000000 *6200000065000000200000007200000065000000700000006c0000006100000063000000650000 *0064000000200000006200000079000000200000006e0000006f00000072000000650000007002 *080000006e0000006f00000072000000650000007000000042000000790000000a0000011b0301 *0223000000610000006600000074000000650000007200000020000000730000006f0000007200 *000074000000200000006f0000007200000020000000730000006f000000720000007400000042 *000000790000002000000074000000680000006500000020000000750000007300000065000000 *200000006f00000066000000200000006e00000075000000620106021e0000006e000000750000 *006200000042000000790000002000000063000000610000006e00000020000000620000006500 *0000200000007200000065000000700000006c0000006100000063000000650000006400000020 *0000006200000079000000200000006e0000006f00000072000000650000007002080000006e00 *00006f00000072000000650000007000000042000000790000000a88000000b1000000b2000000 *b3000001920000019300000194000000b400000195000000b5000000b6000000b7000001960000 *00b8000000b9000000ba000000bb000000bc000000bd000000be000000bf000000c0000000c100 *0000c2000000c3000000c4000000c5000000c6000000c7000000c800000197000000c9000000ca *000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000 *d4000000d5000000d6000000d700000198000001990000019a0000019b0000019c0000019d0000 *00d8000000d9000000da000000db000000dc000000dd000000de000000df000000e0000000e100 *0000e2000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb *000000ec000000ed000000ee000000ef000000f00000019e0000019f000000f1000001a0000000 *f2000000f3000000f4000000f5000000f6000000f7000000f8000000f9000000fa000000fb0000 *00fc000001a1000000fd000000fe000000ff000001000000010100000102000001030000010400 *000105000001060000010700000108000001090000010a0000010b0000010c000001a20000010d *0000010e000001a30000010f000001100000011100000112000001130000011400000115000001 *160000011700000118000001190000011a0000011b0000011c0000011d0000011e0000011f0000 *012000000121000001220000012300000124000001250000012661000000b1000000b2000000b3 *000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000 *bd000000be000000c0000000c1000000c2000000c3000000c5000000c6000000c7000000c80000 *00c9000000ca000000cb000000cc000000ce000000cf000000d0000000d1000000d2000000d300 *0000d6000000d7000000d8000000e1000000e2000000e4000000e5000000e6000000e7000000e9 *000000ea000000eb000000ec000000ee000000ef000000f0000000f1000000f2000000f3000000 *f4000000f5000000f6000000f7000000f8000000f9000000fa000000fb000000fc000000fd0000 *00fe000000ff000001000000010100000102000001030000010400000105000001060000010b00 *00010c0000010d0000010e0000010f000001100000011100000112000001130000011400000116 *0000011700000118000001190000011a0000011b0000011c0000011d0000011e0000011f000001 *20000001210000012200000123000001240000012500000126000000000000000b000000000002 *0000012700000128020000012800000127000000000000000a0000000007000001340301023f00 *00005000000061000000740000007400000065000000720000006e000000200000006900000073 *000000200000007400000068000000650000002000000074000000790000007000000065000000 *2000000072000000650000007400000075000000720000006e0000006500000064000000200000 *006200000079000000200000007400000068000000650000002000000072000000650000006700 *0000750000006c0000006100000072000000200000006500000078000000700000007200000065 *0000007300000073000000690000006f0000006e00000020000000700000006100000072000000 *7300000065000000720000002e0000000a01024200000020000000540000006800000069000000 *7300000020000000690000007300000020000000630000006f0000006e00000073000000750000 *006d00000065000000640000002000000062000000790000002000000074000000680000006500 *000020000000430000006f00000072000000650000005000000061000000740000007400000065 *000000720000006e000000200000006d0000006f00000064000000750000006c00000065000000 *20000000610000006e000000640000002000000074000000680000006500000020000000740000 *00650000006e000000640000006500000072000000200000006c00000065000000610000007600 *000065000000730000000a022100000020000000610000007200000065000000200000006e0000 *006900000062000000620000006c00000065000000640000002000000062000000790000002000 *000074000000680000006500000020000000540000004e0000004600000041000000200000006d *0000006f00000064000000750000006c000000650000002e0000000a0000014903010241000000 *490000002000000068000000610000007600000065000000200000006e0000006f000000740000 *00200000006200000065000000650000006e000000200000006300000068000000650000006300 *00006b000000690000006e000000670000002c0000002000000062000000750000007400000020 *000000740000006800000069000000730000002000000073000000680000006f00000075000000 *6c0000006400000020000000680000006100000076000000650000002000000074000000680000 *00650000002000000070000000720000006f000000700000006500000072000000740000007900 *000020000000740000006800000061000000740000000a01024500000020000000700000006100 *00007200000073000000690000006e000000670000002000000074000000680000006500000020 *000000720000006500000073000000750000006c00000074000000690000006e00000067000000 *20000000730000007400000072000000690000006e000000670000002000000073000000680000 *006f000000750000006c0000006400000020000000720000006500000073000000750000006c00 *00007400000020000000690000006e00000020000000610000006e000000200000006900000064 *000000650000006e000000740000006900000063000000610000006c0000002000000050000000 *61000000740000007400000065000000720000006e0000002e0000000a01024500000020000000 *54000000680000006900000073000000200000006900000073000000200000006e0000006f0000 *007400000020000000740000007200000075000000650000002000000069000000660000002000 *0000730000007400000061000000720000005400000072000000610000006e0000007300000020 *000000680000006100000073000000200000006300000072000000650000006100000074000000 *650000006400000020000000500000004e0000006f0000006e0000004300000061000000700000 *007400000075000000720000006500000020000000610000006e00000064000000200000005000 *00004e0000006f0000006e000000450000006d0000007000000074000000790000000a01022f00 *00002000000076000000610000006c000000750000006500000073000000200000006f00000072 *000000200000006100000020000000280000005000000053000000740000006100000072000000 *2000000046000000610000006c0000007300000065000000290000002e00000020000000200000 *0054000000680000006500000020000000630000006f0000006e00000074000000650000006e00 *00007400000073000000200000006f000000660000002000000061000000200105030000005b00 *0000200000005d01020e0000002000000067000000720000006f00000075000000700000006900 *00006e00000067000000200000006100000072000000650000000a022b00000020000000610000 *006c000000770000006100000079000000730000002000000073000000680000006f0000007700 *00006e00000020000000690000006e000000200000006100000020000000730000006f00000072 *0000007400000065000000640000002000000063000000610000006e0000006f0000006e000000 *6900000063000000610000006c000000200000006f000000720000006400000065000000720000 *002e0000000a0000014a03010240000000440000006f0000002000000074000000680000006500 *0000200000007400000072000000610000006e00000073000000660000006f000000720000006d *0000006100000074000000690000006f0000006e00000020000000610000006e00000064000000 *2000000073000000690000006d000000700000006c000000690000006600000069000000630000 *006100000074000000690000006f0000006e00000020000000690000006e000000200000006100 *00002000000073000000690000006e000000670000006c00000065000000200000007400000072 *0000006100000076000000650000007200000073000000610000006c0000002e0000000a010244 *00000020000000540000006800000069000000730000002000000072000000650000006d000000 *6f0000007600000065000000730000002000000074000000680000006500000020000000500000 *00500000006c00000075000000730000002c000000200000005000000051000000750000006500 *000073000000740000002c00000020000000610000006e00000064000000200000005000000042 *0000006f000000750000006e000000640000002000000076000000610000006c00000075000000 *65000000730000002c000000200000006300000068000000610000006e00000067000000690000 *006e0000006700000020000000740000006f00000020000000500000004f000000720000000a01 *021a00000020000000610000006e000000640000002000000050000000450000006d0000007000 *0000740000007900000020000000610000006e0000006400000020000000500000005300000074 *000000610000007200000020000000540000007200000075000000650102010000002f01022700 *000046000000610000006c00000073000000650000002e0000002000000020000000460000006f *0000007200000020000000730000006f0000006d00000065000000200000005000000042000000 *6f000000750000006e000000640000002000000076000000610000006c00000075000000650000 *007300000020000000690000007400000020000000610000006400000064000000730000000a01 *024300000020000000500000004e0000006f0000006e000000450000006d000000700000007400 *00007900000020000000610000006e0000006400000020000000500000004e0000006f0000006e *000000430000006100000070000000740000007500000072000000650000002000000073000000 *650000006d000000610000006e000000740000006900000063000000200000006d000000610000 *00720000006b00000065000000720000002e000000200000002000000049000000740000002000 *0000610000006c000000730000006f0000002000000073000000690000006d000000700000006c *000000690000006600000069000000650000007300000020000000740000006f0000000a010241 *00000020000000660000006c000000610000007400000074000000650000006e00000020000000 *6f0000007500000074000000200000006e00000065000000730000007400000065000000640000 *0020000000500000004f0000007200000020000000610000006e00000064000000200000005000 *0000430000006f0000006e00000063000000610000007400000020000000690000006e00000073 *00000074000000610000006e00000063000000650000007300000020000000610000006e000000 *6400000020000000650000006c000000690000006d000000690000006e00000061000000740000 *006500000020000000730000006f0000006d000000650000000a02180000002000000075000000 *6e00000065000000650000006400000065000000640000002000000050000000450000006d0000 *007000000074000000790000002000000076000000610000006c00000075000000650000007300 *00002e0000000a0000014b0302330000004100000070000000700000006c000000790000002000 *000061000000200000005000000061000000740000007400000065000000720000006e00000020 *0000007400000072000000610000006e00000073000000660000006f0000006d00000061000000 *74000000690000006f0000006e0000002000000066000000750000006e00000063000000740000 *00690000006f0000006e0000002000000064000000650000007000000074000000680000002000 *000066000000690000007200000073000000740000000a0000014d0301023d0000004600000075 *0000006e0000006300000074000000690000006f0000006e00000020000000740000006f000000 *200000007400000072000000610000006e00000073000000660000006f000000720000006d0000 *002000000061000000200000007000000061000000740000007400000065000000720000006e00 *000020000000690000006e000000740000006f00000020000000610000006e0000002000000065 *00000071000000750000006900000076000000610000006c000000650000006e00000074000000 *2c00000020000000620000007500000074000000200000006c0000006500000073000000730000 *000a01021900000020000000720000006500000064000000750000006e00000064000000610000 *006e0000007400000020000000660000006f000000720000006d0000002e000000200000002000 *00004e000000650000007300000074000000650000006400000020010401000000014600000000 *0000000a01020500000020000000610000006e0000006400000020010401000000014500000000 *0000000a0102170000002000000061000000720000006500000020000000660000006c00000061 *0000007400000074000000650000006e00000065000000640000002e0000002000000050000000 *450000006d0000007000000074000000790000000a021000000020000000690000007300000020 *00000070000000720000006f000000700000006100000067000000610000007400000065000000 *640000002e0000000a000001a403024000000046000000750000006e0000006300000074000000 *690000006f0000006e00000020000000740000006f00000020000000660000006c000000610000 *007400000074000000650000006e000000200000006e0000006500000073000000740000006500 *00006400000020000000500000004f00000072000000200000006f00000072000000200000006e *00000065000000730000007400000065000000640000002000000050000000430000006f000000 *6e000000630000006100000074000000200000006100000070000000700000006c000000690000 *0063000000610000007400000061000000690000006f0000006e000000730000002e0000000a00 *0001a50301022700000044000000650000007400000065000000720000006d000000690000006e *00000065000000730000002000000069000000660000002000000070000000490000006e000000 *2000000077000000690000006c0000006c000000200000006600000061000000690000006c0000 *00200000006f000000720000002000000061000000630000006300000065000000700000007400 *0000200000005b0102010000005d01021600000020000000610000006e00000064000000200000 *006e00000065000000760000006500000072000000200000006100000063000000630000006500 *0000700000007400000020000000610000006e000000790000000a022f00000020000000630000 *006800000061000000720000006100000063000000740000006500000072000000730000002e00 *000020000000540000007200000065000000610000007400000020000000500000004300000061 *00000072000000610000007400000020000000610000006e000000640000002000000050000000 *440000006f0000006c0000006c0000006100000072000000200000006100000073000000200000 *00540000007200000075000000650000002e0000000a2900000102000001140000011500000116 *000001290000012a0000012b0000012c0000012d0000012e0000012f0000013000000131000001 *32000001330000013400000135000001360000013700000138000001390000013a0000013b0000 *013c0000013d0000013e0000013f00000140000001410000014200000143000001440000014500 *0001460000014700000148000001490000014a0000014b0000014c0000014d2900000134000001 *35000001360000013700000138000001390000013a0000013b0000013c0000013d0000013e0000 *013f00000140000001410000014200000143000001440000014500000146000001470000014800 *000132000001330000012f00000130000001310000012c0000012d0000012e000001290000012a *0000012b00000102000001140000011500000116000001490000014a0000014c0000014d000001 *4b0000000000000009000000000034000000d8000000d9000000da000000db000000dc000000dd *000000de000000df000000e0000001060000010700000108000001090000010a0000014e000001 *4f0000015000000151000001520000015300000154000001550000015600000157000001580000 *01590000015a0000015b0000015c0000015d0000015e0000015f00000160000001610000016200 *0001630000016400000165000001660000016700000168000001690000016a0000016b0000016c *0000016d0000016e0000016f000001700000017100000172000001733400000158000001590000 *015a0000015b0000015c0000015d0000015e0000015f0000016000000161000001620000016300 *00016400000165000001660000016700000168000001690000016a0000016b0000016c0000016d *0000016e0000016f000000d8000000d9000000da000000db000000dc000000dd000000de000000 *df000000e00000014e0000014f0000015000000151000001520000015700000106000001070000 *0108000001090000010a0000015400000155000001560000015300000173000001700000017200 *000171000000000000000c0000000002000001a603022a00000042000000720000006100000063 *0000006b0000006500000074000000450000006c000000650000006d000000650000006e000000 *7400000020000000690000007300000020000000690000006e0000007400000065000000720000 *006e000000610000006c00000020000000740000006f0000002000000074000000680000006900 *000073000000200000006d0000006f00000064000000750000006c000000650000000a00000174 *0301024100000052000000650000007400000075000000720000006e0000002000000065000000 *690000007400000068000000650000007200000020000000610000006e00000020000000650000 *0072000000720000006f00000072000000200000006d0000006500000073000000730000006100 *00006700000065000000200000006f000000720000002000000061000000200000007400000075 *000000700000006c00000065000000200000006f00000066000000200000007400000068000000 *65000000200000005000000061000000740000007400000065000000720000006e000000200000 *00610000006e00000064000000200000007400000068000000650000000a010244000000200000 *006c00000061000000720000006700000065000000730000007400000020000000670000007200 *00006f000000750000007000000020000000690000006e00000064000000650000007800000020 *000000610000006e0000006400000020000000740000006800000065000000200000006c000000 *61000000720000006700000065000000730000007400000020000000440000006f000000500000 *006100000020000000690000006e00000064000000650000007800000020000000280000006200 *00006f000000740000006800000020000000680000006100000076000000650000002000000073 *0000006d000000610000006c0000006c0000006500000073000000740000000a01024000000020 *000000690000006e000000640000006500000078000000200000006f0000006600000020000000 *31000000290000002e000000200000002000000053000000690000006e00000063000000650000 *002000000074000000680000006500000020000000720000006500000067000000750000006c00 *000061000000720000002000000065000000780000007000000072000000650000007300000073 *000000690000006f0000006e000000200000006900000073000000200000007300000075000000 *70000000700000006c000000690000006500000064000000200000006100000073000000200000 *005b000000430000006800000061000000720102010000005d0102040000002000000069000000 *740000000a010224000000200000006100000075000000740000006f0000006d00000061000000 *740000006900000063000000610000006c0000006c000000790000002000000073000000750000 *0070000000700000006f00000072000000740000007300000020000000750000006e0000006900 *0000630000006f000000640000006500000020000000610000006e000000640000002001020600 *0000270000005c0000004e000000550000004c00000027020d0000002000000063000000680000 *0061000000720000006100000063000000740000006500000072000000730000002e0000000a01 *000001740100000174000000000000000d00000000000100000175010000017500000000000000 *0e000000000001000001760100000176000000000000000f000000000001000001770100000177 *000000000000001000000000000100000178010000017800000000000000110000000000010000 *0179010000017900000000000000080000000002000001a70301023c0000006400000065000000 *630000006f00000064000000650000005000000061000000740000007400000065000000720000 *006e0000005300000065000000740000002000000063000000610000006e0000006e0000006f00 *0000740000002000000068000000610000006e000000640000006c000000650000002000000063 *0000006f0000006c0000006c0000006100000074000000690000006e0000006700000020000000 *650000006c000000650000006d000000650000006e0000007400000020000000610000006e0000 *0064000000200000007400000072000000650000006100000074000000730000000a0240000000 *200000006500000071000000750000006900000076000000610000006c000000650000006e0000 *00630000006500000020000000630000006c000000610000007300000073000000650000007300 *0000200000006100000073000000200000006a0000007500000073000000740000002000000074 *000000680000006500000069000000720000002000000064000000650000006600000069000000 *6e0000006900000074000000690000006f0000006e00000020000000610000006e000000640000 *00200000006e0000006f0000007400000068000000690000006e00000067000000200000006d00 *00006f00000072000000650000002e0000000a000001a803010238000000540000006800000069 *000000730000002000000072000000650000007400000075000000720000006e00000073000000 *200000007400000068000000650000002000000064000000690000007300000063000000740000 *00690000006e000000630000006500000020000000610000007300000063000000650000006e00 *000064000000690000006e00000067000000200000006c00000069000000730000007400000020 *0000006f0000006600000020000000630000006800000061000000720000006100000063000000 *740000006500000072000000730000000a01021400000020000000720000006500000070000000 *720000006500000073000000650000006e00000074000000650000006400000020000000620000 *0079000000200000005b0000003a000000200000003a0102010000005d01022f00000020000000 *76000000610000006c00000075000000650000007300000020000000690000006e000000200000 *006c0000006500000067000000610000006c000000430000006800000061000000720000006100 *000063000000740000006500000072000000430000006c00000061000000730000007300000065 *000000730000003b00000020000000750000006e0000007200000065000000630000006f000000 *670000006e000000690000007a00000065000000640000000a022400000020000000630000006c *000000610000007300000073000000200000006e000000610000006d0000006500000073000000 *2000000072000000650000007400000075000000720000006e00000020000000610000006e0000 *0020000000650000006d0000007000000074000000790000002000000073000000740000007200 *0000690000006e000000670000000a13000000d3000000d4000000d5000000e1000000e2000000 *e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000ec0000 *00ed000000ee000000ef0000017a130000017a000000ec000000ed000000ee000000ef000000e2 *000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000 *e1000000d3000000d4000000d50000000000000007000000000012000000be000000bf000000c0 *000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000cc000000cd000000 *ce000000cf0000017b0000017c0000017d0000017e120000017c000000cc000000cd000000ce00 *0000cf000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6 *000000c70000017e0000017b0000017d0000000000000012000000000008000001a9000001aa00 *0000f10000010c0000010e0000017f000001800000018106000000f10000010e0000010c000001 *7f00000180000001810000000000000013000000000006000000f10000010c0000010e00000182 *000001830000018406000000f10000010e0000010c000001820000018300000184000000000000 *0014000000000006000000f10000010c0000010e00000185000001860000018706000000f10000 *010e0000010c0000018500000186000001870000000000000015000000000006000000f1000001 *0c0000010e00000188000001890000018a06000000f10000010e0000010c000001880000018900 *00018a000000000000001600000000020000018c0301023e000000540000006800000069000000 *730000002000000069000000730000002000000074000000680000006500000020000000700000 *007500000072000000650000002000000066000000750000006e00000063000000740000006900 *00006f0000006e000000610000006c000000200000006d00000061000000740000006300000068 *000000690000006e00000067000000200000006f00000070000000650000007200000061000000 *740000006f000000720000002e0000002000000020000000490000006600000020000000740000 *006800000065000000200000007400000061000000720000006700000065000000740000000a01 *02410000002000000063000000610000006e0000006e0000006f00000074000000200000006200 *0000650000002000000070000000720000006f0000006400000075000000630000006500000064 *000000200000007400000068000000650000006e00000020000000730000006f0000006d000000 *6500000020000000650000006d0000007000000074000000790000002000000072000000650000 *0073000000750000006c000000740000002000000077000000690000006c0000006c0000002000 *000062000000650000002000000072000000650000007400000075000000720000006e00000065 *000000640000002e000000200000002000000049000000660000000a0102270000002000000074 *000000680000006500000072000000650000002000000069000000730000002000000061000000 *6e000000200000006500000072000000720000006f0000007200000020000000690000006e0000 *002000000070000000720000006f00000063000000650000007300000073000000690000006e00 *0000670000002c000000200000007400000068000000650000006e0000002001040100000001ab *000000170000001802110000002000000077000000690000006c0000006c000000200000006200 *0000650000002000000063000000610000006c0000006c00000065000000640000002e0000000a *0000018d0301024100000054000000680000006900000073000000200000006900000073000000 *20000000740000006800000065000000200000006d0000006f0000006e00000061000000640000 *006900000063000000200000006d00000061000000740000006300000068000000690000006e00 *000067000000200000006f00000070000000650000007200000061000000740000006f00000072 *0000002e0000002000000020000000490000006600000020000000610000002000000073000000 *690000006e000000670000006c00000065000000200000006d0000006100000074000000630000 *0068000000200000006600000061000000690000006c000000730000002c0000000a0102060000 *00200000007400000068000000650000006e0000002001040100000001ac000000170000001902 *110000002000000077000000690000006c0000006c000000200000006200000065000000200000 *0063000000610000006c0000006c00000065000000640000002e0000000a41000001ad000001ae *000001af000001b0000001b1000001b2000001b3000001b4000001b5000001b6000001b7000001 *b8000001b9000001ba000001bb000001bc000001bd000001be000001bf000001a9000001aa0000 *01c0000001c1000001c2000001c3000001c4000001c5000001c6000001c7000001c8000001c900 *0001ca000001cb000001cc000001cd000001ce000001cf000001d0000001d1000001d2000001d3 *000001d4000001d5000001d6000001d7000001d8000001d9000001da000001db000001dc000001 *dd000000f10000010c000001a20000010d0000010e000001a30000010f00000110000001110000 *0112000001130000018b0000018c0000018d030000018b0000018c0000018d000001de00000000 *00000001030000001a0000000000000001000000001b0000000000000002030000001c00000000 *00000002000000001d0000000000000002000000001e0000000000000002000000001f00000000 *000000020000000020000000000000000200000000210000000000000002000000002200000000 *000000030300000023000000000000000300000000240000000000000003000000002500000000 *000000030000000026000000000000000300000000270000000000000003000000002800000000 *0000000300000000290000000000000003000000002a0000000000000003000000002b00000000 *00000003000000002c0000000000000003000000002d0000000000000003000000002e00000000 *00000003000000002f000000000000000300000000300000000000000003000000003100000000 *000000030000000032000000000000000300000000330000000000000003000000003400000000 *000000030000000035000000000000000300000000360000000000000003000000003700000000 *000000030000000038000000000000000300000000390000000000000003000000003a00000000 *00000003000000003b0000000000000003000000003c0000000000000003000000003d00000000 *00000003000000003e0000000000000003000000003f0000000000000003000000004000000000 *000000030000000041000000000000000403000000420000000000000004000000004300000000 *000000040000000044000000000000000400000000250000000000000004000000002600000000 *000000040000000027000000000000000400000000280000000000000004000000002900000000 *000000040000000045000000000000000400000000460000000000000004000000002c00000000 *00000004000000002d0000000000000004000000002e0000000000000004000000004700000000 *000000040000000048000000000000000400000000490000000000000004000000002f00000000 *00000004000000004a0000000000000004000000004b0000000000000004000000004c00000000 *00000004000000004d0000000000000004000000004e0000000000000004000000003000000000 *00000004000000004f000000000000000400000000500000000000000004000000003100000000 *000000040000000051000000000000000400000000320000000000000004000000005200000000 *000000040000000053000000000000000400000000330000000000000004000000005400000000 *000000040000000055000000000000000400000000380000000000000004000000005600000000 *000000040000000057000000000000000400000000580000000000000004000000003900000000 *0000000400000000590000000000000004000000003a0000000000000004000000005a00000000 *00000004000000005b0000000000000004000000005c0000000000000004000000003b00000000 *00000004000000003c0000000000000004000000005d0000000000000004000000005e00000000 *00000004000000003d0000000000000004000000003e0000000000000004000000005f00000000 *0000000400000000600000000000000004000000003f0000000000000004000000003400000000 *000000040000000061000000000000000400000000350000000000000004000000006200000000 *000000040000000063000000000000000400000000640000000000000004000000006500000000 *000000040000000066000000000000000400000000360000000000000004000000006700000000 *000000040000000068000000000000000400000000690000000000000004000000006a00000000 *00000004000000006b000000000000000400000000400000000000000004000000004100000000 *00000005030000006c0000000000000005030000006d0000000000000005000000006e00000000 *000000050000000044000000000000000500000000250000000000000005000000002600000000 *000000050000000027000000000000000500000000280000000000000005000000002900000000 *000000050000000045000000000000000500000000460000000000000005000000002c00000000 *00000005000000002d0000000000000005000000002e0000000000000005000000004700000000 *000000050000000048000000000000000500000000490000000000000005000000002f00000000 *00000005000000004a0000000000000005000000004b0000000000000005000000004c00000000 *00000005000000004d0000000000000005000000004e0000000000000005000000003000000000 *00000005000000004f000000000000000500000000500000000000000005000000003100000000 *000000050000000051000000000000000500000000320000000000000005000000005200000000 *000000050000000053000000000000000500000000330000000000000005000000005400000000 *000000050000000055000000000000000500000000380000000000000005000000005600000000 *000000050000000057000000000000000500000000580000000000000005000000003900000000 *0000000500000000590000000000000005000000003a0000000000000005000000005a00000000 *00000005000000005b0000000000000005000000005c0000000000000005000000003b00000000 *00000005000000003c0000000000000005000000005d0000000000000005000000005e00000000 *00000005000000003d0000000000000005000000003e0000000000000005000000005f00000000 *0000000500000000600000000000000005000000003f0000000000000005000000003400000000 *000000050000000061000000000000000500000000350000000000000005000000006200000000 *000000050000000063000000000000000500000000640000000000000005000000006500000000 *000000050000000066000000000000000500000000360000000000000005000000006700000000 *000000050000000068000000000000000500000000690000000000000005000000006a00000000 *00000005000000006b000000000000000500000000400000000000000005000000004100000000 *00000006030000006f000000000000000603000000700000000000000006030000007100000000 *000000060300000072000000000000000600000000730000000000000006000000007400000000 *000000060300000075000000000000000600000000760000000000000006000000007700000000 *000000060000000078000000000000000600000000790000000000000006030000007a00000000 *00000006030000007b0000000000000006030000007c0000000000000006010000007d00000000 *00000006000000007e0000000000000006000000007f0000000000000006000000008000000000 *000000060000000081000000000000000601000000820000000000000006000000008300000000 *000000060000000084000000000000000600000000850000000000000006030000008600000000 *000000060000000087000000000000000600000000880000000000000006000000008900000000 *00000006030000008a0000000000000006010000008a0000000000000006000000008b00000000 *00000006000000008c0000000000000006030000008d0000000000000006030000008e00000000 *00000006030000008f000000000000000603000000900000000000000006010000009100000000 *000000060100000092000000000000000603000000930000000000000006030000009400000000 *000000060300000095000000000000000601000000960000000000000006010000009700000000 *000000060100000098000000000000000601000000990000000000000006010000009a00000000 *00000006010000009b0000000000000006010000009c0000000000000006010000009d00000000 *00000006030000009e0000000000000006030000009f000000000000000601000000a000000000 *0000000600000000a1000000000000000600000000a2000000000000000600000000a300000000 *0000000600000000a4000000000000000601000000a5000000000000000600000000a600000000 *0000000600000000a7000000000000000600000000a8000000000000000603000000a900000000 *0000000601000000a9000000000000000600000000aa000000000000000600000000ab00000000 *0000000603000000ac000000000000000603000000ad000000000000000600000000ae00000000 *0000000600000000af000000000000000600000000b0000000000000000600000000b100000000 *0000000600000000b2000000000000000600000000b3000000000000000600000000b400000000 *0000000600000000b5000000000000000600000000b6000000000000000600000000b700000000 *0000000603000000b8000000000000000600000000b9000000000000000600000000ba00000000 *0000000600000000bb000000000000000600000000bc000000000000000600000000bd00000000 *0000000603000000be000000000000000603000000bf000000000000000603000000c000000000 *0000000603000000c1000000000000000603000000c2000000000000000601000000c300000000 *0000000601000000c4000000000000000601000000c5000000000000000601000000c600000000 *0000000603000000c7000000000000000603000000c8000000000000000600000000c900000000 *0000000603000000ca000000000000000600000000cb000000000000000600000000cc00000000 *0000000600000000cd000000000000000600000000ce000000000000000600000000cf00000000 *0000000603000000d0000000000000000601000000d0000000000000000600000000d100000000 *0000000600000000d2000000000000000600000000d3000000000000000600000000d400000000 *0000000600000000d5000000000000000600000000d6000000000000000600000000d700000000 *0000000600000000d8000000000000000600000000d9000000000000000600000000da00000000 *0000000600000000db000000000000000600000000dc000000000000000600000000dd00000000 *0000000600000000de000000000000000600000000df000000000000000600000000e000000000 *0000000600000000e1000000000000000b00000000e2000000000000000b00000000e300000000 *0000000a03000000e4000000000000000a01000000e4000000000000000a00000000e500000000 *0000000a03000000e6000000000000000a01000000e6000000000000000a00000000e700000000 *0000000a03000000e8000000000000000a01000000e8000000000000000a00000000e900000000 *0000000a03000000ea000000000000000a01000000ea000000000000000a03000000eb00000000 *0000000a01000000ec000000000000000a01000000ed000000000000000a01000000ee00000000 *0000000a01000000ef000000000000000a00000000f0000000000000000a01000000f100000000 *0000000a01000000f2000000000000000a00000000f3000000000000000a01000000f400000000 *0000000a01000000f5000000000000000a01000000f6000000000000000a00000000f700000000 *0000000a01000000f8000000000000000a01000000f9000000000000000a01000000fa00000000 *0000000a01000000fb000000000000000a01000000fc000000000000000a01000000fd00000000 *0000000a01000000fe000000000000000a01000000ff000000000000000a000000010000000000 *0000000a0000000101000000000000000a0000000102000000000000000a000000010300000000 *0000000a0000000104000000000000000903000001050000000000000009010000010600000000 *000000090100000107000000000000000901000001080000000000000009010000010900000000 *00000009030000010a0000000000000009030000010b0000000000000009010000010b00000000 *00000009000000010c0000000000000009030000010d0000000000000009030000010e00000000 *00000009010000010e0000000000000009000000010f0000000000000009000000011000000000 *000000090000000111000000000000000900000001120000000000000009000000011300000000 *000000090000000114000000000000000900000001150000000000000009000000011600000000 *000000090000000117000000000000000900000001180000000000000009030000011900000000 *00000009010000011a0000000000000009010000011b0000000000000009010000011c00000000 *00000009010000011d0000000000000009000000011e0000000000000009000000011f00000000 *000000090000000120000000000000000900000001210000000000000009010000012200000000 *000000090100000123000000000000000901000001240000000000000009000000012500000000 *000000090000000126000000000000000900000001270000000000000009000000012800000000 *0000000c0000000129000000000000000d000000012a000000000000000e000000012a00000000 *0000000f000000012a0000000000000010000000012a0000000000000011000000012b00000000 *00000008000000012c0000000000000007000000012d0000000000000007000000012e00000000 *00000007000000012f000000000000000700000001300000000000000012000000013100000000 *000000120000000132000000000000001200000001330000000000000013000000013100000000 *000000130000000132000000000000001300000001330000000000000014000000013100000000 *000000140000000132000000000000001400000001330000000000000015000000013100000000 *000000150000000132000000000000001500000001330000000000000016000000013400000000 *000000160000000135000000000000001600000001360000000000000002010000001c00000000 *000000030100000023000000000000000401000000420000000000000005010000006d00000000 *000000060100000137000000000000000601000001380000000000000006010000013900000000 *000000060100000072000000000000000601000000750000000000000006010000008600000000 *00000006010000013a0000000000000006010000013b0000000000000006010000013c00000000 *00000006010000013d0000000000000006010000013e0000000000000006010000009400000000 *00000006010000013f000000000000000601000000ac000000000000000601000000ad00000000 *0000000601000000b8000000000000000601000000c8000000000000000601000000ca00000000 *0000000a0000000140000000000000000a0000000141000000000000000c030000014200000000 *000000080000000143000000000000000800000001440000014500000146030000014700000145 *00000146030000014800000017000000180000000149000000170000014a000000014b00000145 *0000014c000000014d0000014500000146030000014e0000014500000146010000014e00000145 *00000146000000014f000001450000014603000001500000014500000146010000015000000145 *000001460000000151000001450000014603000001520000014500000146010000015200000145 *000001460000000153000001450000014603000001540000014500000146010000015400000145 *000001460000000155000001450000014603000001560000014500000146000000015700000145 *0000014600000001580000014500000146000000002c0000014500000146000000015900000145 *00000146030000015a0000014500000146030000015b0000014500000146010000015c00000145 *00000146000000015d0000014500000146000000015e0000014500000146000000015f00000145 *000001460000000160000001450000014600000001610000014500000146030000016200000145 *000001460300000163000001450000014600000001640000014500000146000000016500000145 *000001460300000166000001450000014600000001670000014500000146000000016800000145 *0000014600000001690000014500000146000000016a0000014500000146000000016b00000145 *00000146000000012b0000014500000146030000016c0000014500000146000000016d00000145 *00000146000000016e0000014500000146000000016f0000014500000146000000017000000145 *000001460300000171000001450000014600000001720000014500000146000000017300000145 *000001460000000174000001450000014600000001750000014500000146000000017600000145 *000001460000000177000001780000001072656765782d746466612d312e312e310000001d5465 *78742e52656765782e544446412e4e65774446412e556e636f6e730000001d546578742e526567 *65782e544446412e496e744172725472696553657400000014446174612e496e745365742e456e *756d5365743200000014446174612e496e744d61702e456e756d4d61703200000014446174612e *496e744d61702e436861724d61703200000016546578742e52656765782e544446412e436f6d6d *6f6e00000014546578742e52656765782e544446412e5444464100000014546578742e52656765 *782e544446412e544e46410000001b546578742e52656765782e544446412e436f726550617474 *65726e00000017546578742e52656765782e544446412e5061747465726e0000001f546578742e *52656765782e544446412e4e65774446412e4d616b655465737400000019546578742e52656765 *782e544446412e52656164526567657800000020546578742e52656765782e544446412e4e6577 *4446412e456e67696e655f464100000020546578742e52656765782e544446412e4e6577444641 *2e456e67696e655f4e4300000023546578742e52656765782e544446412e4e65774446412e456e *67696e655f4e435f46410000001d546578742e52656765782e544446412e4e65774446412e456e *67696e650000001d546578742e52656765782e544446412e4e65774446412e5465737465720000 *0016546578742e52656765782e544446412e537472696e670000001a546578742e52656765782e *544446412e42797465537472696e670000001f546578742e52656765782e544446412e42797465 *537472696e672e4c617a7900000018546578742e52656765782e544446412e53657175656e6365 *0000000f546578742e52656765782e544446410000000462617365000000074748432e45727200 *00000d436f6e74726f6c2e4d6f6e616400000006556e636f6e7300000006756e636f6e73000000 *07547269655365740000000576616c7565000000046e657874000000096c6f6f6b757041736300 *00000a66726f6d426f756e64730000001066726f6d53696e676c65734d657267650000000e6672 *6f6d53696e676c657353756d00000007456e756d53657400000009756e456e756d536574000000 *025c5c000000046e756c6c0000000473697a65000000066d656d626572000000096e6f744d656d *6265720000000a69735375627365744f6600000010697350726f7065725375627365744f660000 *0005656d7074790000000973696e676c65746f6e00000006696e736572740000000664656c6574 *6500000005756e696f6e00000006756e696f6e730000000a646966666572656e63650000000c69 *6e74657273656374696f6e0000000666696c74657200000009706172746974696f6e0000000573 *706c69740000000b73706c69744d656d626572000000036d617000000004666f6c640000000565 *6c656d7300000006746f4c6973740000000866726f6d4c69737400000009746f4173634c697374 *0000000b66726f6d4173634c6973740000001366726f6d44697374696e63744173634c69737400 *00000873686f77547265650000000c73686f77547265655769746800000007456e756d4d617000 *000009756e456e756d4d61700000000121000000066c6f6f6b75700000000f66696e6457697468 *44656661756c740000000a696e73657274576974680000000d696e73657274576974684b657900 *000013696e736572744c6f6f6b7570576974684b65790000000661646a7573740000000d61646a *757374576974684b6579000000067570646174650000000d757064617465576974684b65790000 *00137570646174654c6f6f6b7570576974684b657900000009756e696f6e576974680000000c75 *6e696f6e576974684b65790000000a756e696f6e73576974680000000e646966666572656e6365 *5769746800000011646966666572656e6365576974684b657900000010696e7465727365637469 *6f6e5769746800000013696e74657273656374696f6e576974684b65790000000a6d6170576974 *684b6579000000086d6170416363756d0000000f6d6170416363756d576974684b65790000000b *666f6c64576974684b6579000000046b657973000000076b657973536574000000066173736f63 *730000000c66726f6d4c697374576974680000000f66726f6d4c697374576974684b6579000000 *0f66726f6d4173634c697374576974680000001266726f6d4173634c697374576974684b657900 *00000d66696c746572576974684b657900000010706172746974696f6e576974684b6579000000 *086d61704d617962650000000f6d61704d61796265576974684b6579000000096d617045697468 *6572000000106d6170456974686572576974684b65790000000b73706c69744c6f6f6b75700000 *000a69735375626d61704f660000000c69735375626d61704f66427900000010697350726f7065 *725375626d61704f6600000012697350726f7065725375626d61704f664279000000034b657900 *000007436861724d617000000009756e436861724d6170000000084f726269744c6f6700000010 *4f726269745472616e73666f726d657200000006416374696f6e0000000c496e73747275637469 *6f6e73000000066e6577506f73000000096e65774f7262697473000000064f7262697473000000 *07696e4f726269740000000762617365506f73000000076f7264696e616c000000096765744f72 *6269747300000007445472616e732700000006445472616e730000000244540000000854657374 *696e67270000000764745f746573740000000864745f646f7061730000000464745f6100000004 *64745f620000000753696d706c65270000000664745f77696e0000000864745f7472616e730000 *000864745f6f746865720000000a5472616e736974696f6e0000000a7472616e735f6d616e7900 *00000c7472616e735f73696e676c65000000097472616e735f686f770000000344464100000004 *645f696400000004645f64740000000757696e546167730000000a546167436f6d6d616e640000 *00075461674c697374000000095461675570646174650000000a506f7374557064617465000000 *09507265557064617465000000085461675461736b73000000075461675461736b000000095768 *6963685465737400000010546573745f4e6f7445646765576f72640000000d546573745f456467 *65576f726400000008546573745f454f5700000008546573745f424f5700000008546573745f45 *4f4200000008546573745f424f4200000008546573745f454f4c00000008546573745f424f4c00 *000006515472616e730000000251540000000754657374696e670000000771745f746573740000 *000871745f646f7061730000000471745f610000000471745f620000000653696d706c65000000 *0671745f77696e0000000871745f7472616e730000000871745f6f7468657200000004514e4641 *00000004715f696400000004715f71740000000857696e456d7074790000000552656765780000 *000972656765785f6466610000000a72656765785f696e69740000000d72656765785f625f696e *6465780000000c72656765785f625f746167730000000a72656765785f747269650000000a7265 *6765785f746167730000000c72656765785f67726f7570730000001572656765785f697346726f *6e74416e63686f7265640000001172656765785f636f6d704f7074696f6e730000001172656765 *785f657865634f7074696f6e730000000947726f7570496e666f0000000974686973496e646578 *0000000b706172656e74496e6465780000000873746172745461670000000773746f7054616700 *000007666c61675461670000000a47726f7570496e64657800000008506f736974696f6e000000 *08536574496e64657800000005496e646578000000024f500000000649676e6f7265000000054f *72626974000000084d696e696d697a65000000084d6178696d697a65000000035461670000000a *457865634f7074696f6e0000000d6361707475726547726f7570730000000a436f6d704f707469 *6f6e0000000d6361736553656e736974697665000000096d756c74696c696e650000000a726967 *68744173736f63000000096e657753796e7461780000000e6c6173745374617247726565647900 *000004446f506100000009646f7061496e646578000000046c6f6f6b0000000c636f6d6d6f6e5f *6572726f72000000026f6e000000056e6f726570000000076e6f7265704279000000066d617046 *7374000000066d6170536e64000000046673743300000004736e64330000000474686433000000 *09666c69704f72646572000000056e6f57696e0000000673686f77515400000006696e64656e74 *0000000673686f77445400000009736565445472616e730000000e746573745f6d756c74696c69 *6e650000000f746573745f73696e676c656c696e650000001a5061747465726e53657445717569 *76616c656e6365436c61737300000005756e5345430000001a5061747465726e536574436f6c6c *6174696e67456c656d656e7400000005756e534345000000185061747465726e53657443686172 *6163746572436c61737300000005756e5343430000000a5061747465726e536574000000075061 *747465726e00000009504e6f6e456d7074790000000b504e6f6e43617074757265000000055043 *68617200000007504573636170650000000e6765745061747465726e436861720000000750416e *794e6f740000000450416e790000000d6765745061747465726e5365740000000450446f740000 *000750446f6c6c61720000000650436172617400000007676574446f50610000000650426f756e *640000000550537461720000000550506c7573000000065051756573740000000750436f6e6361 *7400000003504f72000000065047726f75700000000650456d7074790000000b73686f77506174 *7465726e00000009737461725472616e730000000a6466735061747465726e0000000a73746172 *5472616e73270000000973696d706c696679270000000657616e7465640000000b57616e747345 *69746865720000000957616e7473426f74680000000757616e747351540000000957616e747351 *4e4641000000084e756c6c566965770000000b53657454657374496e666f000000086765745465 *7374730000000854657374496e666f0000000151000000056e756c6c510000000574616b657300 *000008707265526573657400000007706f73745365740000000670726554616700000007706f73 *74546167000000067461676765640000000b6368696c6447726f7570730000000577616e747300 *000003756e510000000150000000084e6f6e456d707479000000074f6e65436861720000000454 *6573740000000453746172000000086765744f726269740000000b72657365744f726269747300 *00000966697273744e756c6c00000006756e5374617200000003536571000000024f7200000005 *456d7074790000000d636c65616e4e756c6c566965770000000a6d757374416363657074000000 *0c63616e6e6f744163636570740000000a7061747465726e546f510000000a7061727365526567 *657800000009657865634d61746368000000096d61746368546573740000000c7061747465726e *546f4e4641000000086e6661546f4446410000000e7061747465726e546f526567657800000006 *6466614d61700000000a6578616d696e6544464100000007636f6d70696c650000000765786563 *75746500000007726567657865630000001a67657456657273696f6e5f546578745f5265676578 *5f54444641000000023d7e000000033d7e7e0000000653657456616c00000007536574506f7374 *000000065365745072650000000e4c656176654f726269745461736b0000000e456e7465724f72 *6269745461736b0000000e52657365744f726269745461736b0000001053657447726f75705374 *6f705461736b00000012526573657447726f757053746f705461736b0000000757696e54657374 *00000007666c617474656e0000001063616e4f6e6c794d617463684e756c6c0000000e42726163 *6b6574456c656d656e74000000106465636f64655061747465726e536574000000146465636f64 *65436861726163746572436c6173730000001172656765782d626173652d302e39332e31000000 *19546578742e52656765782e426173652e52656765784c696b650000000b4d617463684c656e67 *74680000000b4d617463684f6666736574000000056572726f72000000084748432e4261736500 *0000046661696c0000000f546578742e52656765782e426173650000001a67657456657273696f *6e5f546578745f52656765785f426173650000000a416c6c4d6174636865730000000d67657441 *6c6c4d6174636865730000000d416c6c5375626d61746368657300000010676574416c6c537562 *6d6174636865730000000e416c6c546578744d61746368657300000011676574416c6c54657874 *4d61746368657300000011416c6c546578745375626d61746368657300000014676574416c6c54 *6578745375626d6174636865730000000745787472616374000000056166746572000000066265 *666f726500000007657874726163740000000a4d6174636841727261790000000b4d6174636852 *6573756c74000000024d52000000076d724166746572000000086d724265666f7265000000076d *724d61746368000000096d725375624c697374000000066d7253756273000000094d6174636854 *6578740000000c5265676578436f6e74657874000000056d61746368000000066d617463684d00 *00000952656765784c696b65000000086d61746368416c6c0000000c6d61746368416c6c546578 *740000000a6d61746368436f756e74000000096d617463684f6e63650000000d6d617463684f6e *6365546578740000000a52656765784d616b6572000000096d616b6552656765780000000a6d61 *6b6552656765784d0000000d6d616b6552656765784f7074730000000e6d616b6552656765784f *7074734d0000000c52656765784f7074696f6e730000000c626c616e6b436f6d704f7074000000 *0c626c616e6b457865634f70740000000e64656661756c74436f6d704f70740000000e64656661 *756c74457865634f70740000000b676574457865634f7074730000000b736574457865634f7074 *73 }