ghc-events-0.6.0/include/0000755000000000000000000000000013113376563013401 5ustar0000000000000000ghc-events-0.6.0/src/0000755000000000000000000000000013056362630012541 5ustar0000000000000000ghc-events-0.6.0/src/GHC/0000755000000000000000000000000013056362630013142 5ustar0000000000000000ghc-events-0.6.0/src/GHC/RTS/0000755000000000000000000000000013113376567013622 5ustar0000000000000000ghc-events-0.6.0/src/GHC/RTS/Events/0000755000000000000000000000000013113376567015066 5ustar0000000000000000ghc-events-0.6.0/src/GHC/RTS/Events/Analysis/0000755000000000000000000000000013066646663016655 5ustar0000000000000000ghc-events-0.6.0/test/0000755000000000000000000000000013113376567012741 5ustar0000000000000000ghc-events-0.6.0/src/GHC/RTS/Events.hs0000644000000000000000000004551013113376567015427 0ustar0000000000000000{-# LANGUAGE CPP,BangPatterns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE MultiWayIf #-} {-# OPTIONS_GHC -fsimpl-tick-factor=150 #-} {- - Parser functions for GHC RTS EventLog framework. -} module GHC.RTS.Events ( -- * The event log types EventLog(..), Header(..), Data(..), EventType(..), Event(..), EventInfo(..), ThreadStopStatus(..), CapsetType(..), Timestamp, ThreadId, TaskId, KernelThreadId(..), EventTypeNum, EventTypeDesc, EventTypeSize, BlockSize, Capset, StringId, -- some types for the parallel RTS ProcessId, MachineId, PortId, MessageSize, MessageTag(..), ParConjDynId, ParConjStaticId, SparkId, FutureId, PerfEventTypeNum, -- * Reading and writing event logs readEventLogFromFile, writeEventLogToFile, serialiseEventLog, -- * Utilities CapEvent(..), sortEvents, buildEventTypeMap, -- * Printing printEventsIncremental, showEventInfo, buildEventInfo, showThreadStopStatus, ppEventLog, ppEventType, ppEvent, buildEvent, buildEvent', -- * Perf events nEVENT_PERF_NAME, nEVENT_PERF_COUNTER, nEVENT_PERF_TRACEPOINT, sz_perf_num, sz_kernel_tid, -- * For compatibility with old clients -- readEventLogFromFile, TODO spec, time, ) where {- Libraries. -} import Control.Applicative import Control.Concurrent hiding (ThreadId) import qualified Data.Binary.Put as P import qualified Data.ByteString as B import qualified Data.ByteString.Builder as BB import qualified Data.ByteString.Lazy as BL import qualified Data.ByteString.Lazy.Char8 as BL8 import Data.IntMap (IntMap) import qualified Data.IntMap as IM import Data.Foldable (foldMap) import Data.Function hiding (id) import Data.List import Data.Monoid ((<>)) import System.IO import Prelude hiding (gcd, rem, id) import GHC.RTS.EventTypes import GHC.RTS.Events.Binary import GHC.RTS.Events.Incremental -- | Read an entire eventlog file. It returns an error message if it -- encouters an error while decoding. -- -- Note that it doesn't fail if it consumes all input in the middle of decoding -- of an event. readEventLogFromFile :: FilePath -> IO (Either String EventLog) readEventLogFromFile path = fmap fst . readEventLog <$> BL.readFile path -- | Read an eventlog file and pretty print it to stdout printEventsIncremental :: Bool -- ^ Follow the file or not -> FilePath -> IO () printEventsIncremental follow path = withFile path ReadMode (hPrintEventsIncremental follow) -- | Read an eventlog from the Handle and pretty print it to stdout hPrintEventsIncremental :: Bool -- ^ Follow the handle or not -> Handle -> IO () hPrintEventsIncremental follow hdl = go decodeEventLog where go decoder = case decoder of Produce event decoder' -> do BB.hPutBuilder stdout $ buildEvent' event <> "\n" go decoder' Consume k -> do chunk <- B.hGetSome hdl 4096 if | not (B.null chunk) -> go $ k chunk | follow -> threadDelay 1000000 >> go decoder | otherwise -> return () Done {} -> return () Error _ err -> fail err -- | Writes the 'EventLog' to file. The log is expected to __NOT__ have 'EventBlock' -- markers/events - the parsers no longer emit them and they are handled behind -- the scenes. writeEventLogToFile :: FilePath -> EventLog -> IO () writeEventLogToFile fp = BL.writeFile fp . serialiseEventLog -- | Serialises an 'EventLog' back to a 'ByteString', usually for writing it -- back to a file. serialiseEventLog :: EventLog -> BL.ByteString serialiseEventLog el@(EventLog _ (Data events)) = P.runPut $ putEventLog blockedEl where eventsMap = capSplitEvents events blockedEventsMap = IM.mapWithKey addBlockMarker eventsMap blockedEl = el{dat = Data blockedEvents} blockedEvents = IM.foldr (++) [] blockedEventsMap -- Gets the Capability of an event in numeric form getIntCap :: Event -> Int getIntCap Event{evCap = cap} = case cap of Just capNo -> capNo Nothing -> -1 -- Creates an IntMap of the events with capability number as the key. -- Key -1 indicates global (capless) event capSplitEvents :: [Event] -> IM.IntMap [Event] capSplitEvents evts = capSplitEvents' evts IM.empty capSplitEvents' :: [Event] -> IM.IntMap [Event] -> IM.IntMap [Event] capSplitEvents' evts imap = case evts of (x:xs) -> capSplitEvents' xs (IM.insertWith (++) (getIntCap x) [x] imap) [] -> imap -- Adds a block marker to the beginnng of a list of events, annotated with -- its capability. All events are expected to belong to the same cap. addBlockMarker :: Int -> [Event] -> [Event] addBlockMarker cap evts = (Event startTime (EventBlock endTime cap sz) (mkCap cap)) : sortedEvts where sz = fromIntegral . BL.length $ P.runPut $ mapM_ putEvent evts startTime = case sortedEvts of (x:_) -> evTime x [] -> error "Cannot add block marker to an empty list of events" sortedEvts = sortEvents evts endTime = evTime $ last sortedEvts -- ----------------------------------------------------------------------------- -- Utilities sortEvents :: [Event] -> [Event] sortEvents = sortBy (compare `on` evTime) buildEventTypeMap :: [EventType] -> IntMap EventType buildEventTypeMap etypes = IM.fromList [ (fromIntegral (num t),t) | t <- etypes ] ----------------------------------------------------------------------------- -- Some pretty-printing support showEventInfo :: EventInfo -> String showEventInfo = BL8.unpack . BB.toLazyByteString . buildEventInfo buildEventInfo :: EventInfo -> BB.Builder buildEventInfo spec' = case spec' of EventBlock end_time cap _block_events -> "event block: cap " <> BB.intDec cap <> ", end time: " <> BB.word64Dec end_time <> "\n" Startup n_caps -> "startup: " <> BB.intDec n_caps <> " capabilities" CreateThread thread -> "creating thread " <> BB.word32Dec thread RunThread thread -> "running thread " <> BB.word32Dec thread StopThread thread status -> "stopping thread " <> BB.word32Dec thread <> " (" <> BB.stringUtf8 (showThreadStopStatus status) <> ")" ThreadRunnable thread -> "thread " <> BB.word32Dec thread <> " is runnable" MigrateThread thread newCap -> "migrating thread " <> BB.word32Dec thread <> " to cap " <> BB.intDec newCap CreateSparkThread sparkThread -> "creating spark thread " <> BB.word32Dec sparkThread SparkCounters crt dud ovf cnv fiz gcd rem -> "spark stats: " <> BB.word64Dec crt <> " created, " <> BB.word64Dec cnv <> " converted, " <> BB.word64Dec rem <> " remaining (" <> BB.word64Dec ovf <> " overflowed, " <> BB.word64Dec dud <> " dud, " <> BB.word64Dec gcd <> " GC'd, " <> BB.word64Dec fiz <> " fizzled)" SparkCreate -> "spark created" SparkDud -> "dud spark discarded" SparkOverflow -> "overflowed spark discarded" SparkRun -> "running a local spark" SparkSteal victimCap -> "stealing a spark from cap " <> BB.intDec victimCap SparkFizzle -> "spark fizzled" SparkGC -> "spark GCed" TaskCreate taskId cap tid -> "task 0x" <> BB.word64Hex taskId <> " created on cap " <> BB.intDec cap <>" with OS kernel thread " <> BB.word64Dec (kernelThreadId tid) TaskMigrate taskId cap new_cap -> "task 0x" <> BB.word64Hex taskId <> " migrated from cap " <> BB.intDec cap <> " to cap " <> BB.intDec new_cap TaskDelete taskId -> "task 0x" <> BB.word64Hex taskId <> " deleted" Shutdown -> "shutting down" WakeupThread thread otherCap -> "waking up thread " <> BB.word32Dec thread <> " on cap " <> BB.intDec otherCap ThreadLabel thread label -> "thread " <> BB.word32Dec thread <> " has label \"" <> BB.stringUtf8 label <> "\"" RequestSeqGC -> "requesting sequential GC" RequestParGC -> "requesting parallel GC" StartGC -> "starting GC" EndGC -> "finished GC" GCWork -> "GC working" GCIdle -> "GC idle" GCDone -> "GC done" GlobalSyncGC -> "all caps stopped for GC" GCStatsGHC{..} -> "GC stats for heap capset " <> BB.word32Dec heapCapset <> ": generation " <> BB.intDec gen <> ", " <> BB.word64Dec copied <> " bytes copied, " <> BB.word64Dec slop <> " bytes slop, " <> BB.word64Dec frag <> " bytes fragmentation, " <> BB.intDec parNThreads <> " par threads, " <> BB.word64Dec parMaxCopied <> " bytes max par copied, " <> BB.word64Dec parTotCopied <> " bytes total par copied" HeapAllocated{..} -> "allocated on heap capset " <> BB.word32Dec heapCapset <> ": " <> BB.word64Dec allocBytes <> " total bytes till now" HeapSize{..} -> "size of heap capset " <> BB.word32Dec heapCapset <> ": " <> BB.word64Dec sizeBytes <> " bytes" HeapLive{..} -> "live data in heap capset " <> BB.word32Dec heapCapset <> ": " <> BB.word64Dec liveBytes <> " bytes" HeapInfoGHC{..} -> "heap stats for heap capset " <> BB.word32Dec heapCapset <> ": generations " <> BB.intDec gens <> ", " <> BB.word64Dec maxHeapSize <> " bytes max heap size, " <> BB.word64Dec allocAreaSize <> " bytes alloc area size, " <> BB.word64Dec mblockSize <> " bytes mblock size, " <> BB.word64Dec blockSize <> " bytes block size" CapCreate{cap} -> "created cap " <> BB.intDec cap CapDelete{cap} -> "deleted cap " <> BB.intDec cap CapDisable{cap} -> "disabled cap " <> BB.intDec cap CapEnable{cap} -> "enabled cap " <> BB.intDec cap Message msg -> BB.stringUtf8 msg UserMessage msg -> BB.stringUtf8 msg UserMarker markername -> "marker: " <> BB.stringUtf8 markername CapsetCreate cs ct -> "created capset " <> BB.word32Dec cs <> " of type " <> BB.stringUtf8 (show ct) CapsetDelete cs -> "deleted capset " <> BB.word32Dec cs CapsetAssignCap cs cp -> "assigned cap " <> BB.intDec cp <> " to capset " <> BB.word32Dec cs CapsetRemoveCap cs cp -> "removed cap " <> BB.intDec cp <> " from capset " <> BB.word32Dec cs OsProcessPid cs pid -> "capset " <> BB.word32Dec cs <> ": pid " <> BB.word32Dec pid OsProcessParentPid cs ppid -> "capset " <> BB.word32Dec cs <> ": parent pid " <> BB.word32Dec ppid WallClockTime cs sec nsec -> "capset " <> BB.word32Dec cs <> ": wall clock time " <> BB.word64Dec sec <> "s " <> BB.word32Dec nsec <> "ns (unix epoch)" RtsIdentifier cs i -> "capset " <> BB.word32Dec cs <> ": RTS version \"" <> BB.stringUtf8 i <> "\"" ProgramArgs cs args -> "capset " <> BB.word32Dec cs <> ": args: " <> BB.stringUtf8 (show args) ProgramEnv cs env -> "capset " <> BB.word32Dec cs <> ": env: " <> BB.stringUtf8 (show env) UnknownEvent n -> "Unknown event type " <> BB.word16Dec n InternString str sId -> "Interned string: \"" <> BB.stringUtf8 str <> "\" with id " <> BB.word32Dec sId -- events for the parallel RTS Version version -> "compiler version is " <> BB.stringUtf8 version ProgramInvocation commandline -> "program invocation: " <> BB.stringUtf8 commandline EdenStartReceive -> "starting to receive" EdenEndReceive -> "stop receiving" CreateProcess process -> "creating process " <> BB.word32Dec process KillProcess process -> "killing process " <> BB.word32Dec process AssignThreadToProcess thread process -> "assigning thread " <> BB.word32Dec thread <> " to process " <> BB.word32Dec process CreateMachine machine realtime -> "creating machine " <> BB.word16Dec machine <> " at " <> BB.word64Dec realtime KillMachine machine -> "killing machine " <> BB.word16Dec machine SendMessage mesTag senderProcess senderThread receiverMachine receiverProcess receiverInport -> "sending message with tag " <> BB.stringUtf8 (show mesTag) <> " from process " <> BB.word32Dec senderProcess <> ", thread " <> BB.word32Dec senderThread <> " to machine " <> BB.word16Dec receiverMachine <> ", process " <> BB.word32Dec receiverProcess <> " on inport " <> BB.word32Dec receiverInport ReceiveMessage mesTag receiverProcess receiverInport senderMachine senderProcess senderThread messageSize -> "receiving message with tag " <> BB.stringUtf8 (show mesTag) <> " at process " <> BB.word32Dec receiverProcess <> ", inport " <> BB.word32Dec receiverInport <> " from machine " <> BB.word16Dec senderMachine <> ", process " <> BB.word32Dec senderProcess <> ", thread " <> BB.word32Dec senderThread <> " with size " <> BB.word32Dec messageSize SendReceiveLocalMessage mesTag senderProcess senderThread receiverProcess receiverInport -> "sending/receiving message with tag " <> BB.stringUtf8 (show mesTag) <> " from process " <> BB.word32Dec senderProcess <> ", thread " <> BB.word32Dec senderThread <> " to process " <> BB.word32Dec receiverProcess <> " on inport " <> BB.word32Dec receiverInport MerStartParConjunction dyn_id static_id -> "Start a parallel conjunction 0x" <> BB.word64Hex dyn_id <> ", static_id: " <> BB.word32Dec static_id MerEndParConjunction dyn_id -> "End par conjunction: 0x" <> BB.word64Hex dyn_id MerEndParConjunct dyn_id -> "End par conjunct: 0x" <> BB.word64Hex dyn_id MerCreateSpark dyn_id spark_id -> "Create spark for conjunction: 0x" <> BB.word64Hex dyn_id <> " spark: 0x" <> BB.word32Hex spark_id MerFutureCreate future_id name_id -> "Create future 0x" <> BB.word64Hex future_id <> " named " <> BB.word32Dec name_id MerFutureWaitNosuspend future_id -> "Wait didn't suspend for future: 0x" <> BB.word64Hex future_id MerFutureWaitSuspended future_id -> "Wait suspended on future: 0x" <> BB.word64Hex future_id MerFutureSignal future_id -> "Signaled future 0x" <> BB.word64Hex future_id MerLookingForGlobalThread -> "Looking for global thread to resume" MerWorkStealing -> "Trying to steal a spark" MerLookingForLocalSpark -> "Looking for a local spark to execute" MerReleaseThread thread_id -> "Releasing thread " <> BB.word32Dec thread_id <> " to the free pool" MerCapSleeping -> "Capability going to sleep" MerCallingMain -> "About to call the program entry point" PerfName{perfNum, name} -> "perf event " <> BB.word32Dec perfNum <> " named \"" <> BB.stringUtf8 name <> "\"" PerfCounter{perfNum, tid, period} -> "perf event counter " <> BB.word32Dec perfNum <> " incremented by " <> BB.word64Dec (period + 1) <> " in OS thread " <> BB.word64Dec (kernelThreadId tid) PerfTracepoint{perfNum, tid} -> "perf event tracepoint " <> BB.word32Dec perfNum <> " reached in OS thread " <> BB.word64Dec (kernelThreadId tid) showThreadStopStatus :: ThreadStopStatus -> String showThreadStopStatus HeapOverflow = "heap overflow" showThreadStopStatus StackOverflow = "stack overflow" showThreadStopStatus ThreadYielding = "thread yielding" showThreadStopStatus ThreadBlocked = "thread blocked" showThreadStopStatus ThreadFinished = "thread finished" showThreadStopStatus ForeignCall = "making a foreign call" showThreadStopStatus BlockedOnMVar = "blocked on an MVar" showThreadStopStatus BlockedOnMVarRead = "blocked reading an MVar" showThreadStopStatus BlockedOnBlackHole = "blocked on a black hole" showThreadStopStatus BlockedOnRead = "blocked on I/O read" showThreadStopStatus BlockedOnWrite = "blocked on I/O write" showThreadStopStatus BlockedOnDelay = "blocked on threadDelay" showThreadStopStatus BlockedOnSTM = "blocked in STM retry" showThreadStopStatus BlockedOnDoProc = "blocked on asyncDoProc" showThreadStopStatus BlockedOnCCall = "blocked in a foreign call" showThreadStopStatus BlockedOnCCall_NoUnblockExc = "blocked in a foreign call" showThreadStopStatus BlockedOnMsgThrowTo = "blocked in throwTo" showThreadStopStatus ThreadMigrating = "thread migrating" showThreadStopStatus BlockedOnMsgGlobalise = "waiting for data to be globalised" showThreadStopStatus (BlockedOnBlackHoleOwnedBy target) = "blocked on black hole owned by thread " ++ show target showThreadStopStatus NoStatus = "No stop thread status" ppEventLog :: EventLog -> String ppEventLog = BL8.unpack . BB.toLazyByteString . buildEventLog buildEventLog :: EventLog -> BB.Builder buildEventLog (EventLog (Header ets) (Data es)) = "Event Types:\n" <> foldMap (\evType -> buildEventType evType <> "\n") ets <> "\n" <> "Events:\n" <> foldMap (\ev -> buildEvent imap ev <> "\n") sorted where imap = buildEventTypeMap ets sorted = sortEvents es ppEventType :: EventType -> String ppEventType = BL8.unpack . BB.toLazyByteString . buildEventType buildEventType :: EventType -> BB.Builder buildEventType (EventType num dsc msz) = BB.word16Dec num <> ": " <> BB.stringUtf8 dsc <> " (size " <> maybe "variable" BB.word16Dec msz <> ")" -- | Pretty prints an 'Event', with clean handling for 'UnknownEvent' ppEvent :: IntMap EventType -> Event -> String ppEvent imap = BL8.unpack . BB.toLazyByteString . buildEvent imap buildEvent :: IntMap EventType -> Event -> BB.Builder buildEvent imap Event {..} = BB.word64Dec evTime <> ": " <> maybe "" (\c -> "cap " <> BB.intDec c <> ": ") evCap <> case evSpec of UnknownEvent{ ref=ref } -> maybe "" (BB.stringUtf8 . desc) $ IM.lookup (fromIntegral ref) imap _ -> buildEventInfo evSpec buildEvent' :: Event -> BB.Builder buildEvent' Event {..} = BB.word64Dec evTime <> ": " <> maybe "" (\c -> "cap " <> BB.intDec c <> ": ") evCap <> case evSpec of UnknownEvent{ ref=ref } -> "Unknown Event (ref: " <> BB.word16Dec ref <> ")" _ -> buildEventInfo evSpec ghc-events-0.6.0/src/GHC/RTS/Events/Incremental.hs0000644000000000000000000001645413113376567017675 0ustar0000000000000000{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE MultiWayIf #-} module GHC.RTS.Events.Incremental ( -- * Incremental API Decoder(..) , decodeHeader , decodeEvents , decodeEventLog -- * Lazy API , readHeader , readEvents , readEventLog ) where import Control.Monad import Data.Either import Data.Maybe import Prelude import qualified Data.Binary.Get as G import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as BL import qualified Data.ByteString.Lazy.Internal as BL import qualified Data.IntMap.Strict as IM import GHC.RTS.EventParserUtils import GHC.RTS.EventTypes import GHC.RTS.Events.Binary #define EVENTLOG_CONSTANTS_ONLY #include "EventLogFormat.h" -- | The unfolding of the decoding process. data Decoder a = Consume (B.ByteString -> Decoder a) -- ^ The decoder has consumed all the available input and needs more to -- continue. | Produce !a (Decoder a) -- ^ The decoder has returned a decoded value and the next decoder state to -- continue. | Done B.ByteString -- ^ The decoder has ended with leftover input. | Error B.ByteString String -- ^ The decoder has encountered an error with lefover input and an error -- message. -- | Push an input chunk to the decoder pushChunk :: Decoder a -> B.ByteString -> Decoder a pushChunk decoder chunk = case decoder of Consume k -> k chunk Produce a decoder' -> Produce a $ decoder' `pushChunk` chunk Done leftover -> Done $ leftover `B.append` chunk Error leftover err -> Error (leftover `B.append` chunk) err -- | Decode a header and continue with the provided decoder withHeader :: (Header -> B.ByteString -> Decoder r) -- ^ Continuation -> Decoder r withHeader f = go $ G.runGetIncremental getHeader where go decoder = case decoder of G.Done leftover _ header -> f header leftover G.Partial k -> Consume $ \chunk -> go $ k $ Just chunk G.Fail leftover _ err -> Error leftover err -- | Decode a header decodeHeader :: Decoder Header decodeHeader = withHeader $ \header leftover -> Produce header $ Done leftover -- | Decode events decodeEvents :: Header -> Decoder Event decodeEvents header = go (0 :: Int) Nothing decoder0 where decoder0 = mkEventDecoder header go !remaining !blockCap decoder = case decoder of G.Done leftover consumed r -> do let !decoder' = decoder0 `G.pushChunk` leftover case r of Just event -> case evSpec event of EventBlock {..} -> go (fromIntegral block_size) (mkCap cap) decoder' _ -> do let !remaining' = remaining - fromIntegral consumed !blockCap' = if remaining' > 0 then blockCap else Nothing !event' = event { evCap = blockCap } Produce event' $ go remaining' blockCap' decoder' Nothing -> go remaining blockCap decoder' G.Partial k -> Consume $ \chunk -> go remaining blockCap $ k $ Just chunk G.Fail leftover _ err -> Error leftover err -- | Decode a header and events decodeEventLog :: Decoder Event decodeEventLog = withHeader $ \header leftover -> decodeEvents header `pushChunk` leftover -- | Read a header from a lazy bytestring and return the header and the -- leftover input for subsequent decoding. -- -- Note that the input must contain a whole header in one go. If incremental -- parsing of a header is necessary, use 'decodeHeader' instead. readHeader :: BL.ByteString -> Either String (Header, BL.ByteString) readHeader = go $ Left decodeHeader where go r bytes = case r of Left decoder -> case decoder of Produce header decoder' -> case decoder' of Done leftover -> Right (header, BL.Chunk leftover bytes) _ -> fail "readHeader: unexpected decoder" Consume k -> case bytes of BL.Empty -> fail "readHeader: not enough bytes" BL.Chunk chunk chunks -> go (Left $! k chunk) chunks Done _ -> fail "readHeader: unexpected termination" Error _ err -> fail err Right header -> Right (header, bytes) -- | Read events from a lazy bytestring. It returns an error message if it -- encouters an error while decoding. -- -- Note that it doesn't fail if it consumes all input in the middle of decoding -- of an event. readEvents :: Header -> BL.ByteString -> ([Event], Maybe String) readEvents header = f . go (decodeEvents header) where f :: [Either e a] -> ([a], Maybe e) f xs = (rights rs, listToMaybe (lefts ls)) where (rs, ls) = break isLeft xs #if !MIN_VERSION_base(4, 7, 0) isLeft (Left _) = True isLeft _ = False #endif go :: Decoder Event -> BL.ByteString -> [Either String Event] go decoder bytes = case decoder of Produce event decoder' -> Right event : go decoder' bytes Consume k -> case bytes of BL.Empty -> [] BL.Chunk chunk chunks -> go (k chunk) chunks Done {} -> [] Error _ err -> [Left err] -- | Read an entire eventlog from a lazy bytestring. It returns an error message if it -- encouters an error while decoding. -- -- Note that it doesn't fail if it consumes all input in the middle of decoding -- of an event. readEventLog :: BL.ByteString -> Either String (EventLog, Maybe String) readEventLog bytes = do (header, bytes') <- readHeader bytes case readEvents header bytes' of (events, err) -> return (EventLog header (Data events), err) -- | Makes a decoder with all the required parsers when given a Header mkEventDecoder :: Header -> G.Decoder (Maybe Event) mkEventDecoder header = G.runGetIncremental $ getEvent parsers where imap = IM.fromList [(fromIntegral (num t), t) | t <- eventTypes header] -- This test is complete, no-one has extended this event yet and all future -- extensions will use newly allocated event IDs. is_ghc_6 = Just sz_old_tid == do create_et <- IM.lookup EVENT_CREATE_THREAD imap size create_et -- GHC6 writes an invalid header, we handle it here by using a -- different set of event parsers. Note that the ghc7 event parsers -- are standard events, and can be used by other runtime systems that -- make use of threadscope. -- GHC-7.8.2 uses a different thread block status encoding, -- and therefore requires a different parser for the stop -- event. Later, in GHC-7.8.3, the old encoding was restored. -- GHC-7.8.2 can be recognised by presence and absence of -- events in the header: -- * User markers were added in GHC-7.8 -- * an empty event HACK_BUG_T9003 was added in GHC-7.8.3 -- This fix breaks software which uses ghc-events and combines -- user markers with the older stop status encoding. We don't -- know of any such software, though. is_pre77 = IM.notMember EVENT_USER_MARKER imap is_ghc782 = IM.member EVENT_USER_MARKER imap && IM.notMember EVENT_HACK_BUG_T9003 imap stopParsers | is_pre77 = pre77StopParsers | is_ghc782 = [ghc782StopParser] | otherwise = [post782StopParser] event_parsers | is_ghc_6 = concat [ standardParsers , ghc6Parsers , parRTSParsers sz_old_tid ] | otherwise = concat [ standardParsers , ghc7Parsers , stopParsers , parRTSParsers sz_tid , mercuryParsers , perfParsers ] parsers = EventParsers $ mkEventTypeParsers imap event_parsers ghc-events-0.6.0/src/GHC/RTS/Events/Merge.hs0000644000000000000000000001176113113376567016467 0ustar0000000000000000module GHC.RTS.Events.Merge (mergeEventLogs) where import GHC.RTS.Events import Data.Monoid import Data.List (foldl') import qualified Data.Map as M import Data.Word (Word32) import Prelude -- TODO: add a merge mode where the events are synchronized using -- the wall clock time event at the start of both eventlogs (for newer GHCs). -- Such merge is not associative so we either need to take many arguments -- or cope with eventlogs with many wall clock time events (assume they -- are products of previous merges). To decide. {- GHC numbers caps and capsets in sequential order, starting at 0. Threads are similarly numbered, but start at 1. In order to merge logs 'x' and 'y', we find the # of occupied numbers for each variable type in 'x', then increment each variable in 'y' by that amount. We assume that if a number is occupied, so are all lower numbers. This guarantees that variables in each log don't clash, and that the meaning of each reference to a thread/cap/capset is preserved. -} mergeEventLogs :: EventLog -> EventLog -> EventLog mergeEventLogs (EventLog h1 (Data xs)) (EventLog h2 (Data ys)) = let headerMap = M.fromList . map (\ et@EventType {num} -> (num, et)) m1 = headerMap $ eventTypes h1 m2 = headerMap $ eventTypes h2 combine et1 et2 | et1 == et2 = et1 combine _ _ = error "can't merge eventlogs with inconsistent headers" m = M.unionWith combine m1 m2 h = Header $ M.elems m in h == h `seq` -- Detect inconsistency ASAP. EventLog h . Data . mergeOn evTime xs $ shift (maxVars xs) ys mergeOn :: Ord b => (a -> b) -> [a] -> [a] -> [a] mergeOn _ [] ys = ys mergeOn _ xs [] = xs mergeOn f (x:xs) (y:ys) | f x <= f y = x : mergeOn f xs (y:ys) | otherwise = y : mergeOn f (x:xs) ys -- TODO: rename, since these are not maximal values, but numbers of used values data MaxVars = MaxVars { mcapset :: !Word32 , mcap :: !Int , mthread :: !ThreadId } -- TODO introduce parallel RTS process and machine var.s instance Monoid MaxVars where mempty = MaxVars 0 0 0 mappend (MaxVars a b c) (MaxVars x y z) = MaxVars (max a x) (b + y) (max c z) -- avoid space leaks: mconcat = foldl' mappend mempty -- For caps we find the maximum value by summing the @Startup@ declarations. -- TODO: it's not trivial to add CapCreate since we don't know -- if created caps are guaranteed to be numbered consecutively or not -- (are they? is it asserted in GHC code somewhere?). We might instead -- just scan all events mentioning a cap and take the maximum, -- but it's a slower and much longer code, requiring constant maintenance. maxVars :: [Event] -> MaxVars maxVars = mconcat . map (maxSpec . evSpec) where -- only checking binding sites right now, sufficient? maxSpec (Startup n) = mempty { mcap = n } -- Threads start at 1. maxSpec (CreateThread t) = mempty { mthread = t } maxSpec (CreateSparkThread t) = mempty { mthread = t } -- Capsets start at 0. maxSpec (CapsetCreate cs _) = mempty {mcapset = cs + 1 } maxSpec _ = mempty sh :: Num a => a -> a -> a sh x y = x + y updateSpec :: (EventInfo -> EventInfo) -> Event -> Event updateSpec f (Event {evTime = t, evSpec = s, evCap = cap}) = Event {evTime = t, evSpec = f s, evCap = cap} shift :: MaxVars -> [Event] -> [Event] shift (MaxVars mcs mc mt) = map (updateSpec shift') where -- -1 marks a block that isn't attached to a particular capability shift' (CreateThread t) = CreateThread $ sh mt t shift' (RunThread t) = RunThread $ sh mt t shift' (StopThread t s) = StopThread (sh mt t) s shift' (ThreadRunnable t) = ThreadRunnable $ sh mt t shift' (MigrateThread t c) = MigrateThread (sh mt t) (sh mc c) shift' (WakeupThread t c) = WakeupThread (sh mt t) (sh mc c) shift' (ThreadLabel t l) = ThreadLabel (sh mt t) l shift' (CreateSparkThread t) = CreateSparkThread (sh mt t) shift' (SparkSteal c) = SparkSteal (sh mc c) shift' (TaskCreate tk c tid) = TaskCreate tk (sh mc c) tid shift' (TaskMigrate tk c1 c2) = TaskMigrate tk (sh mc c1) (sh mc c2) shift' (CapCreate c) = CapCreate (sh mc c) -- TODO: correct? shift' (CapDelete c) = CapDelete (sh mc c) -- TODO: correct? shift' (CapDisable c) = CapDisable (sh mc c) shift' (CapEnable c) = CapEnable (sh mc c) shift' (CapsetCreate cs cst) = CapsetCreate (sh mcs cs) cst shift' (CapsetDelete cs) = CapsetDelete (sh mcs cs) shift' (CapsetAssignCap cs c) = CapsetAssignCap (sh mcs cs) (sh mc c) shift' (CapsetRemoveCap cs c) = CapsetRemoveCap (sh mcs cs) (sh mc c) shift' (RtsIdentifier cs rts) = RtsIdentifier (sh mcs cs) rts shift' (ProgramArgs cs as) = ProgramArgs (sh mcs cs) as shift' (ProgramEnv cs es) = ProgramEnv (sh mcs cs) es shift' (OsProcessPid cs pid) = OsProcessPid (sh mcs cs) pid shift' (OsProcessParentPid cs ppid) = OsProcessParentPid (sh mcs cs) ppid shift' (WallClockTime cs sec nsec) = WallClockTime (sh mcs cs) sec nsec shift' x = x -- TODO extend by new shift for Eden events ghc-events-0.6.0/src/GHC/RTS/Events/Analysis.hs0000644000000000000000000002364413113376567017216 0ustar0000000000000000module GHC.RTS.Events.Analysis ( Machine (..) , validate , validates , simulate , Profile (..) , profile , profileIndexed , profileRouted , extractIndexed , refineM , profileM , indexM , toList , toMaybe , Process (..) , routeM ) where import GHC.RTS.Events import Data.Map (Map) import qualified Data.Map as M import Data.Maybe (fromMaybe) -------------------------------------------------------------------------------- -- | This is based on a simple finite state machine hence the names `delta` -- for the state transition function. -- Since states might be more than simple pattern matched constructors, we -- use `finals :: state -> Bool`, rather than `Set state`, to indicate that -- the machine is in some final state. Similarly for `alpha`, which -- indicates the alphabet of inputs to a machine. -- The function `delta` returns `Maybe` values, where `Nothing` -- indicates that no valid transition is possible: ie, there has been an -- error. data Machine s i = Machine { initial :: s -- ^ Initial state , final :: s -> Bool -- ^ Valid final states , alpha :: i -> Bool -- ^ Valid input alphabet , delta :: s -> i -> Maybe s -- ^ State transition function } -- | The `step` function runs a machine in a state against a single input. -- The state remains fixed once a final state is encountered. The -- result is `Left state input` if some `state` failed for an `ìnput`, and -- `Right state` for a successful state. step :: Machine s i -> s -> i -> Either (s, i) s step m s i | final m s = Right s | alpha m i = case delta m s i of Just s' -> Right s' Nothing -> Left (s, i) | otherwise = Right s -- | The `validate` function takes a machine and a list of inputs. The machine -- is started from its initial state and run against the inputs in turn. -- It returns the state and input on failure, and just the state on success. validate :: Machine s i -> [i] -> Either (s, i) s validate m = foldl (>>=) (Right (initial m)) . map (flip (step m)) -- | This function is similar to `validate`, but outputs each intermediary -- state as well. For an incremental version, use `simulate`. validates :: Machine s i -> [i] -> [Either (s, i) s] validates m = scanl (>>=) (Right (initial m)) . map (flip (step m)) -------------------------------------------------------------------------------- -- A Process is a list of successful values, followed by an error if one -- occured. This captures the idea that a computation may produce a list of -- elements before possibly failing. This gives us an incremental interface -- to data processed from machine transitions. data Process e a = Done | Fail e | Prod a (Process e a) deriving Show toList :: Process e a -> [a] toList (Fail _) = [] toList Done = [] toList (Prod a as) = a : toList as toMaybe :: Process e a -> Maybe e toMaybe (Fail e) = Just e toMaybe Done = Nothing toMaybe (Prod _ as) = toMaybe as -- | A machine can be analysed while it is accepting input in order to extract -- some information. This function takes a machine and a function that extracts -- data and produces output. On failure, the machine state and input are -- produced. Note that when an input is not in the machine's alphabet, -- then there is no transition, and so no output is produced in response -- to that input. analyse :: Machine s i -- ^ The machine used -> (s -> i -> Maybe o) -- ^ An extraction function that may produce output -> [i] -- ^ A list of input -> Process (s, i) o -- ^ A process that produces output analyse machine extract = go (initial machine) where -- go :: s -> [i] -> Process (s, i) o go _ [] = Done go s (i:is) | final machine s = Done | alpha machine i = case delta machine s i of Nothing -> Fail (s, i) Just s' -> case extract s i of Nothing -> go s' is Just o -> Prod o (go s' is) | otherwise = go s is -- | Machines sometimes need to operate on coarser input than they are defined -- for. This function takes a function that refines input and a machine that -- works on refined input, and produces a machine that can work on coarse input. refineM :: (i -> j) -> Machine s j -> Machine s i refineM refine machine = Machine { initial = initial machine , final = final machine , alpha = alpha machine . refine , delta = \s -> delta machine s . refine } -------------------------------------------------------------------------------- -- | This function produces a process that outputs all the states that a -- machine goes through. simulate :: Machine s i -> [i] -> Process (s, i) (s, i) simulate machine = analyse machine (\s i -> delta machine s i >>= \s' -> return (s', i)) -------------------------------------------------------------------------------- -- | A state augmented by Timestamp information is held in `profileState`. -- When the state changes, `profileMap` stores a map between each state -- and its cumulative time. data Profile s = Profile { profileState :: s -- ^ The current state , profileTime :: Timestamp -- ^ The entry time of the state } deriving (Show) -- | This function takes a machine and profiles its state. profileM :: Ord s => (i -> Timestamp) -> Machine s i -> Machine (Profile s) i profileM timer machine = Machine { initial = Profile (initial machine) 0 , final = final machine . profileState , alpha = alpha machine , delta = profileMDelta } where profileMDelta (Profile s _) i = do s' <- delta machine s i return $ Profile s' (timer i) -- | extractProfile returns the state, the time this state was made, -- and the time spent in this state. extractProfile :: (i -> Timestamp) -- ^ Extracts current timestamp -> Profile s -- ^ A profiled state -> i -- ^ Some input -> Maybe (s, Timestamp, Timestamp) -- ^ (state, currentTime, elapsedTime) extractProfile timer p i = Just (profileState p, profileTime p, timer i - profileTime p) profile :: (Ord s, Eq s) => Machine s i -- ^ A machine to profile -> (i -> Timestamp) -- ^ Converts input to timestamps -> [i] -- ^ The list of input -> Process (Profile s, i) (s, Timestamp, Timestamp) profile machine timer = analyse (profileM timer machine) (extractProfile timer) profileIndexed :: (Ord k, Ord s, Eq s) => Machine s i -> (i -> Maybe k) -> (i -> Timestamp) -> [i] -> Process (Map k (Profile s), i) (k, (s, Timestamp, Timestamp)) profileIndexed machine index timer = analyse (indexM index (profileM timer machine)) (extractIndexed (extractProfile timer) index) extractIndexed :: Ord k => (s -> i -> Maybe o) -> (i -> Maybe k) -> (Map k s -> i -> Maybe (k, o)) extractIndexed extract index m i = do k <- index i s <- M.lookup k m o <- extract s i return (k, o) -- | An indexed machine takes a function that multiplexes the input to a key -- and then takes a machine description to an indexed machine. indexM :: Ord k => (i -> Maybe k) -- ^ An indexing function -> Machine s i -- ^ A machine to index with -> Machine (Map k s) i -- ^ The indexed machine indexM index machine = Machine { initial = M.empty , final = indexMFinal , alpha = indexMAlpha , delta = indexMDelta } where -- An indexer never reaches a final state: it is always possible that -- an event comes along that is accepted by a machine that is not -- yet in in the index. -- -- An alternative view is that the indexer is in a final state if all its -- elements are, but this would not allow the creation of new indexes: -- indexMFinal m = not (M.null m) && (all (final machine) . M.elems $ m) indexMFinal = const False -- The alphabet of the indexer is that of its elements. indexMAlpha = alpha machine -- If the index is not yet in the mapping, we start a new machine in its -- initial state. The indexer fails if indexed state fails. indexMDelta m i = do k <- index i let state = fromMaybe (initial machine) (M.lookup k m) state' <- delta machine state i return $ M.insert k state' m profileRouted :: (Ord k, Ord s, Eq s, Eq r) => Machine s i -> Machine r i -> (r -> i -> Maybe k) -> (i -> Timestamp) -> [i] -> Process ((Map k (Profile s), r), i) (k, (s, Timestamp, Timestamp)) profileRouted machine router index timer = analyse (routeM router index (profileM timer machine)) (extractRouted (extractProfile timer) index) extractRouted :: Ord k => (s -> i -> Maybe o) -> (r -> i -> Maybe k) -> ((Map k s, r) -> i -> Maybe (k, o)) extractRouted extract index (m, r) i = do k <- index r i s <- M.lookup k m o <- extract s i return (k, o) -- | A machine can be indexed not only by the inputs, but also by the state -- of an intermediary routing machine. This is a generalisation of indexM. routeM :: (Ord k) => Machine r i -> (r -> i -> Maybe k) -> Machine s i -> Machine (Map k s, r) i routeM router index machine = Machine { initial = (M.empty, initial router) , final = routeMFinal , alpha = routeMAlpha , delta = routeMDelta } where -- As with indexers, there is no final state. routeMFinal = const False -- The alphabet is that of the router combined with the machine routeMAlpha i = alpha router i || alpha machine i routeMDelta (m, r) i = do r' <- if alpha router i then delta router r i else return r m' <- if alpha machine i then case index r' i of Just k -> do s' <- delta machine (fromMaybe (initial machine) (M.lookup k m)) i return $ M.insert k s' m Nothing -> return m else return m return (m', r') ghc-events-0.6.0/src/GHC/RTS/Events/Analysis/Capability.hs0000644000000000000000000002116113056362630021257 0ustar0000000000000000module GHC.RTS.Events.Analysis.Capability ( capabilityThreadPoolMachine , capabilityThreadRunMachine , capabilityThreadIndexer , capabilityTaskPoolMachine , capabilityTaskOSMachine ) where import GHC.RTS.Events import GHC.RTS.Events.Analysis import Data.Map (Map) import qualified Data.Map as M -- | This state machine tracks threads residing on capabilities. -- Each thread can only reside on one capability, but can be migrated between -- them. capabilityThreadPoolMachine :: Machine (Map ThreadId Int) Event capabilityThreadPoolMachine = Machine { initial = M.empty , final = const False , alpha = capabilityThreadPoolMachineAlpha , delta = capabilityThreadPoolMachineDelta } where capabilityThreadPoolMachineAlpha evt = case evSpec evt of (CreateThread _) -> True (StopThread _ _) -> True (MigrateThread _ _) -> True _ -> False capabilityThreadPoolMachineDelta mapping evt = do capId <- evCap evt case evSpec evt of (CreateThread threadId) -> insertThread threadId capId mapping (StopThread threadId ThreadFinished) -> deleteThread threadId mapping (StopThread _ _) -> Just mapping (MigrateThread threadId capId') -> deleteThread threadId mapping >>= insertThread threadId capId' _ -> Nothing where insertThread :: ThreadId -> Int -> Map ThreadId Int -> Maybe (Map ThreadId Int) insertThread threadId capId m | threadId `M.member` m = Nothing -- The thread already exists | otherwise = Just $ M.insert threadId capId m deleteThread :: ThreadId -> Map ThreadId Int -> Maybe (Map ThreadId Int) deleteThread threadId m | threadId `M.notMember` m = Nothing -- The thread doesn't exist | otherwise = Just $ M.delete threadId m -- | This state machine tracks threads running on capabilities, only one thread -- may run on a capability at a time. capabilityThreadRunMachine :: Machine (Map Int ThreadId) Event capabilityThreadRunMachine = Machine { initial = M.empty , final = const False , alpha = threadRunAlpha , delta = threadRunDelta } where threadRunAlpha event = case evSpec event of -- TODO: can threads be migrated while they are running? -- TODO: take into account paused threads (RunThread _) -> True (StopThread _ _ ) -> True _ -> False -- The indexer fails if a thread is inserted where one already exists, -- or if a thread is deleted that doesn't exist. threadRunDelta mapping e = do capId <- evCap e case evSpec $ e of (RunThread threadId) -> runThread capId threadId mapping (StopThread threadId _ ) -> stopThread threadId mapping _ -> Just mapping where runThread :: Int -> ThreadId -> Map Int ThreadId -> Maybe (Map Int ThreadId) runThread capId threadId m | capId `M.member` m = Nothing -- A thread is already on this cap | threadId `elem` M.elems m = Nothing -- This thread is already on a cap | otherwise = Just $ M.insert capId threadId m stopThread :: ThreadId -> Map Int ThreadId -> Maybe (Map Int ThreadId) stopThread threadId m | notElem threadId . M.elems $ m = Nothing -- The thread doesn't exist | otherwise = Just $ M.filter (/= threadId) m capabilityThreadIndexer :: Map Int ThreadId -> Event -> Maybe ThreadId capabilityThreadIndexer m evt = case evSpec evt of (CreateSparkThread threadId) -> Just threadId (CreateThread threadId) -> Just threadId (RunThread threadId) -> Just threadId (StopThread threadId _) -> Just threadId (ThreadRunnable threadId) -> Just threadId (MigrateThread threadId _) -> Just threadId (WakeupThread threadId capId) -> if Just capId == evCap evt then Just threadId else Nothing _ -> mThreadId where mThreadId = evCap evt >>= (\capId -> M.lookup capId m) -- | This state machine tracks Haskell tasks, represented by TaskId, -- residing on capabilities. -- Each Haskell task can only reside on one capability, but can be migrated -- between them. capabilityTaskPoolMachine :: Machine (Map TaskId Int) Event capabilityTaskPoolMachine = Machine { initial = M.empty , final = const False , alpha = capabilityTaskPoolMachineAlpha , delta = capabilityTaskPoolMachineDelta } where capabilityTaskPoolMachineAlpha evt = case evSpec evt of TaskCreate{} -> True TaskDelete{} -> True TaskMigrate{} -> True _ -> False capabilityTaskPoolMachineDelta mapping evt = do case evSpec evt of TaskCreate {taskId, cap} -> insertTask taskId cap mapping TaskDelete {taskId} -> deleteTask taskId Nothing mapping TaskMigrate {taskId, cap, new_cap} -> deleteTask taskId (Just cap) mapping >>= insertTask taskId new_cap _ -> Nothing where insertTask :: TaskId -> Int -> Map TaskId Int -> Maybe (Map TaskId Int) insertTask taskId cap m | taskId `M.member` m = Nothing -- The task already exists. | otherwise = Just $ M.insert taskId cap m deleteTask :: TaskId -> Maybe Int -> Map TaskId Int -> Maybe (Map TaskId Int) deleteTask taskId expectedcap m | Just oldcap <- M.lookup taskId m , maybe True (==oldcap) expectedcap = Just $ M.delete taskId m | otherwise = Nothing -- The task doesn't exist, or does but with an unexpected cap. -- | This state machine tracks Haskell tasks (represented by the KernelThreadId -- of their OS thread) residing on capabilities and additionally -- tracks the (immutable) assignment of OS thread ids (KernelThreadId) -- to tasks ids (TaskId). -- Each Haskell task can only reside on one capability, but can be migrated -- between them. -- -- Invariant for the @(Map KernelThreadId Int, Map TaskId KernelThreadId)@ -- type: the second map is an injection (verified by the machine -- in 'insertTaskOS') and the following sets are equal: -- keys of the fist map and values of the second -- (follows from the construction of the maps by the machine). -- -- The machine verifies as much as 'capabilityTaskPoolMachine' and additionally -- the data invariant, and offers a richer verification profile. capabilityTaskOSMachine :: Machine (Map KernelThreadId Int, Map TaskId KernelThreadId) Event capabilityTaskOSMachine = Machine { initial = (M.empty, M.empty) , final = const False , alpha = capabilityTaskOSMachineAlpha , delta = capabilityTaskOSMachineDelta } where capabilityTaskOSMachineAlpha evt = case evSpec evt of TaskCreate{} -> True TaskDelete{} -> True TaskMigrate{} -> True _ -> False capabilityTaskOSMachineDelta mapping evt = do case evSpec evt of TaskCreate {taskId, cap, tid} -> insertTaskOS taskId cap tid mapping TaskDelete {taskId} -> deleteTaskOS taskId mapping TaskMigrate {taskId, new_cap} -> migrateTaskOS taskId new_cap mapping _ -> Nothing where insertTaskOS :: TaskId -> Int -> KernelThreadId -> (Map KernelThreadId Int, Map TaskId KernelThreadId) -> Maybe (Map KernelThreadId Int, Map TaskId KernelThreadId) insertTaskOS taskId cap tid (m, ma) | taskId `M.member` ma = Nothing -- The task already exists. | tid `M.member` m = Nothing -- The OS thread already exists. | otherwise = Just (M.insert tid cap m, M.insert taskId tid ma) deleteTaskOS :: TaskId -> (Map KernelThreadId Int, Map TaskId KernelThreadId) -> Maybe (Map KernelThreadId Int, Map TaskId KernelThreadId) deleteTaskOS taskId (m, ma) = case M.lookup taskId ma of Nothing -> Nothing -- The task doesn't exist. Just tid -> Just (M.delete tid m, M.delete taskId ma) migrateTaskOS :: TaskId -> Int -> (Map KernelThreadId Int, Map TaskId KernelThreadId) -> Maybe (Map KernelThreadId Int, Map TaskId KernelThreadId) migrateTaskOS taskId new_cap (m, ma) = case M.lookup taskId ma of Nothing -> Nothing -- The task doesn't exist. Just tid -> Just (M.insert tid new_cap m, ma) -- The assignment is immutable. ghc-events-0.6.0/src/GHC/RTS/Events/Analysis/SparkThread.hs0000644000000000000000000001075013056362630021410 0ustar0000000000000000module GHC.RTS.Events.Analysis.SparkThread ( SparkThreadState (..) , sparkThreadMachine , capabilitySparkThreadMachine , capabilitySparkThreadIndexer ) where import GHC.RTS.Events import GHC.RTS.Events.Analysis import Data.Map (Map) import qualified Data.Map as M import Data.Set (Set) import qualified Data.Set as S data SparkThreadState = SparkThreadInitial | SparkThreadCreated | SparkThreadRunning Int | SparkThreadPaused Int | SparkThreadFinal deriving (Eq, Ord, Show) sparkThreadMachine :: Machine SparkThreadState EventInfo sparkThreadMachine = Machine { initial = SparkThreadInitial , final = sparkThreadFinal , alpha = sparkThreadAlpha , delta = sparkThreadDelta } where sparkThreadFinal SparkThreadFinal = True sparkThreadFinal _ = False -- sparkThreadAlpha (CreateSparkThread _) = True sparkThreadAlpha (RunThread _) = True sparkThreadAlpha (StopThread _ _) = True sparkThreadAlpha SparkRun = True sparkThreadAlpha (SparkSteal _) = True sparkThreadAlpha _ = False -- SparkThreadInitial -- sparkThreadDelta SparkThreadInitial (CreateSparkThread _) = Just SparkThreadInitial sparkThreadDelta SparkThreadInitial (RunThread _) = Just SparkThreadCreated -- SparkThreadCreated sparkThreadDelta SparkThreadCreated SparkRun = Just (SparkThreadRunning 0) sparkThreadDelta SparkThreadCreated (SparkSteal _) = Just (SparkThreadRunning 0) sparkThreadDelta SparkThreadCreated (StopThread _ ThreadFinished) = Just SparkThreadFinal -- SparkThreadRunning sparkThreadDelta (SparkThreadRunning _) (StopThread _ ThreadFinished) = Just SparkThreadFinal sparkThreadDelta (SparkThreadRunning n) (StopThread _ _) = Just (SparkThreadPaused n) sparkThreadDelta (SparkThreadRunning n) SparkRun = Just (SparkThreadRunning (n+1)) sparkThreadDelta (SparkThreadRunning n) (SparkSteal _) = Just (SparkThreadRunning (n+1)) -- SparkThreadPaused sparkThreadDelta (SparkThreadPaused n) (RunThread _) = Just (SparkThreadRunning n) -- Other sparkThreadDelta _ _ = Nothing capabilitySparkThreadMachine :: Machine (Map Int ThreadId, Set ThreadId) Event capabilitySparkThreadMachine = Machine { initial = (M.empty, S.empty) , final = const False , alpha = capabilitySparkThreadAlpha , delta = capabilitySparkThreadDelta } where capabilitySparkThreadAlpha evt = case evSpec evt of (CreateSparkThread _) -> True (RunThread _) -> True (StopThread _ _) -> True _ -> False capabilitySparkThreadDelta (m, s) evt = do capId <- evCap evt case evSpec evt of (CreateSparkThread threadId) -> createThread threadId (StopThread threadId _) -> pauseThread threadId (RunThread threadId) -> runThread capId threadId _ -> Just (m, s) where createThread :: ThreadId -> Maybe (Map Int ThreadId, Set ThreadId) createThread threadId | S.member threadId s = Nothing -- A spark thread with this Id already created | otherwise = Just (m, S.insert threadId s) runThread :: Int -> ThreadId -> Maybe (Map Int ThreadId, Set ThreadId) runThread capId threadId | M.member capId m = Nothing -- A thread is already on this cap | threadId `elem` M.elems m = Nothing -- This thread is already on a cap | S.notMember threadId s = Just (m, s) -- Not a spark thread | otherwise = Just (M.insert capId threadId m, S.insert threadId s) stopThread :: ThreadId -> Maybe (Map Int ThreadId, Set ThreadId) stopThread threadId = Just (M.filter (/= threadId) m, S.delete threadId s) pauseThread :: ThreadId -> Maybe (Map Int ThreadId, Set ThreadId) pauseThread threadId = Just (M.filter (/= threadId) m, s) capabilitySparkThreadIndexer :: (Map Int ThreadId, Set ThreadId) -> Event -> Maybe ThreadId capabilitySparkThreadIndexer (m, s) evt = case evSpec evt of (CreateThread threadId) -> inSparkThreadPool threadId (RunThread threadId) -> inSparkThreadPool threadId (StopThread threadId _) -> inSparkThreadPool threadId _ -> evCap evt >>= (\capId -> M.lookup capId m) where inSparkThreadPool :: ThreadId -> Maybe ThreadId inSparkThreadPool threadId | S.member threadId s = Just threadId | otherwise = Nothing ghc-events-0.6.0/src/GHC/RTS/Events/Analysis/Thread.hs0000644000000000000000000000337313056362630020412 0ustar0000000000000000module GHC.RTS.Events.Analysis.Thread ( ThreadState (..) , threadMachine ) where import GHC.RTS.Events import GHC.RTS.Events.Analysis -------------------------------------------------------------------------------- -- | This datatype defines the state machine for a single thread. data ThreadState = ThreadInitial | ThreadQueued | ThreadRunning | ThreadStopped | ThreadFinal deriving (Show, Eq, Ord) -- | This state machine tracks the events processed by a thread. threadMachine :: Machine ThreadState EventInfo threadMachine = Machine { initial = ThreadInitial , final = threadFinal , alpha = threadAlpha , delta = threadDelta } where threadFinal ThreadFinal = True threadFinal _ = False threadAlpha (CreateThread _) = True threadAlpha (RunThread _) = True threadAlpha (StopThread _ _) = True threadAlpha (WakeupThread _ _) = True threadAlpha _ = False -- ThreadInitial threadDelta ThreadInitial (CreateThread _) = Just ThreadQueued -- ThreadQueued threadDelta ThreadQueued (RunThread _) = Just ThreadRunning threadDelta ThreadQueued (WakeupThread _ _) = Just ThreadQueued -- ThreadRunning threadDelta ThreadRunning (StopThread _ StackOverflow) = Just ThreadQueued threadDelta ThreadRunning (StopThread _ HeapOverflow) = Just ThreadQueued threadDelta ThreadRunning (StopThread _ ForeignCall) = Just ThreadQueued threadDelta ThreadRunning (StopThread _ ThreadFinished) = Just ThreadFinal threadDelta ThreadRunning (StopThread _ _) = Just ThreadStopped -- ThreadStopped threadDelta ThreadStopped (RunThread _) = Just ThreadRunning threadDelta ThreadStopped (WakeupThread _ _) = Just ThreadQueued -- Unknown threadDelta _ _ = Nothingghc-events-0.6.0/src/GHC/RTS/EventParserUtils.hs0000644000000000000000000001511113113376567017434 0ustar0000000000000000{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-} module GHC.RTS.EventParserUtils ( EventParser(..), EventParsers(..), getString, mkEventTypeParsers, simpleEvent, skip, ) where import Control.Monad import Data.Array import Data.Binary import Data.Binary.Get () import qualified Data.Binary.Get as G import Data.Binary.Put () import Data.Char import Data.IntMap (IntMap) import qualified Data.IntMap as M import Data.List #define EVENTLOG_CONSTANTS_ONLY #include "EventLogFormat.h" import GHC.RTS.EventTypes newtype EventParsers = EventParsers (Array Int (Get EventInfo)) nBytes :: Integral a => a -> Get [Word8] nBytes n = replicateM (fromIntegral n) get getString :: Integral a => a -> Get String getString len = do bytes <- nBytes len return $ map (chr . fromIntegral) bytes skip :: Integral a => a -> Get () skip n = G.skip (fromIntegral n) -- -- Code to build the event parser table. -- -- -- | Event parser data. Parsers are either fixed or vairable size. -- data EventParser a = FixedSizeParser { fsp_type :: Int, fsp_size :: EventTypeSize, fsp_parser :: Get a } | VariableSizeParser { vsp_type :: Int, vsp_parser :: Get a } getParser :: EventParser a -> Get a getParser (FixedSizeParser _ _ p) = p getParser (VariableSizeParser _ p) = p getType :: EventParser a -> Int getType (FixedSizeParser t _ _) = t getType (VariableSizeParser t _) = t isFixedSize :: EventParser a -> Bool isFixedSize (FixedSizeParser {}) = True isFixedSize (VariableSizeParser {}) = False simpleEvent :: Int -> a -> EventParser a simpleEvent t p = FixedSizeParser t 0 (return p) -- Our event log format allows new fields to be added to events over -- time. This means that our parser must be able to handle: -- -- * old versions of an event, with fewer fields than expected, -- * new versions of an event, with more fields than expected -- -- The event log file declares the size for each event type, so we can -- select the correct parser for the event type based on its size. We -- do this once after parsing the header: given the EventTypes, we build -- an array of event parsers indexed by event type. -- -- For each event type, we may have multiple parsers for different -- versions of the event, indexed by size. These are listed in the -- eventTypeParsers list below. For the given log file we select the -- parser for the most recent version (largest size less than the size -- declared in the header). If this is a newer version of the event -- than we understand, there may be extra bytes that we have to read -- and discard in the parser for this event type. -- -- Summary: -- if size is smaller that we expect: -- parse the earier version, or ignore the event -- if size is just right: -- parse it -- if size is too big: -- parse the bits we understand and discard the rest mkEventTypeParsers :: IntMap EventType -> [EventParser EventInfo] -> Array Int (Get EventInfo) mkEventTypeParsers etypes event_parsers = accumArray (flip const) undefined (0, max_event_num) [ (num, parser num) | num <- [0..max_event_num] ] where max_event_num = maximum (M.keys etypes) undeclared_etype num = fail ("undeclared event type: " ++ show num) parser_map = makeParserMap event_parsers parser num = -- Get the event's size from the header, -- the first Maybe describes whether the event was declared in the header. -- the second Maybe selects between variable and fixed size events. let mb_mb_et_size = do et <- M.lookup num etypes return $ size et -- Find a parser for the event with the given size. maybe_parser mb_et_size = do possible <- M.lookup num parser_map best_parser <- case mb_et_size of Nothing -> getVariableParser possible Just et_size -> getFixedParser et_size possible return $ getParser best_parser in case mb_mb_et_size of -- This event is declared in the log file's header Just mb_et_size -> case maybe_parser mb_et_size of -- And we have a valid parser for it. Just p -> p -- But we don't have a valid parser for it. Nothing -> noEventTypeParser num mb_et_size -- This event is not declared in the log file's header Nothing -> undeclared_etype num -- Find the first variable length parser. getVariableParser :: [EventParser a] -> Maybe (EventParser a) getVariableParser [] = Nothing getVariableParser (x:xs) = case x of FixedSizeParser _ _ _ -> getVariableParser xs VariableSizeParser _ _ -> Just x -- Find the best fixed size parser, that is to say, the parser for the largest -- event that does not exceed the size of the event as declared in the log -- file's header. getFixedParser :: EventTypeSize -> [EventParser a] -> Maybe (EventParser a) getFixedParser size parsers = do parser <- ((filter isFixedSize) `pipe` (filter (\x -> (fsp_size x) <= size)) `pipe` (sortBy descending_size) `pipe` maybe_head) parsers return $ padParser size parser where pipe f g = g . f descending_size (FixedSizeParser _ s1 _) (FixedSizeParser _ s2 _) = compare s2 s1 descending_size _ _ = undefined maybe_head [] = Nothing maybe_head (x:_) = Just x padParser :: EventTypeSize -> (EventParser a) -> (EventParser a) padParser _ (VariableSizeParser t p) = VariableSizeParser t p padParser size (FixedSizeParser t orig_size orig_p) = FixedSizeParser t size p where p = if (size == orig_size) then orig_p else do d <- orig_p skip (size - orig_size) return d makeParserMap :: [EventParser a] -> IntMap [EventParser a] makeParserMap = foldl buildParserMap M.empty where buildParserMap map' parser = M.alter (addParser parser) (getType parser) map' addParser p Nothing = Just [p] addParser p (Just ps) = Just (p:ps) noEventTypeParser :: Int -> Maybe EventTypeSize -> Get EventInfo noEventTypeParser num mb_size = do bytes <- case mb_size of Just n -> return n Nothing -> get :: Get Word16 skip bytes return UnknownEvent{ ref = fromIntegral num } ghc-events-0.6.0/src/GHC/RTS/EventTypes.hs0000644000000000000000000004203413113376567016267 0ustar0000000000000000module GHC.RTS.EventTypes where import Control.Monad import Data.Binary -- EventType. type EventTypeNum = Word16 type EventTypeDescLen = Word32 type EventTypeDesc = String type EventTypeSize = Word16 -- Event. type EventDescription = String type Timestamp = Word64 type ThreadId = Word32 type CapNo = Word16 type Marker = Word32 type BlockSize = Word32 type RawThreadStopStatus = Word16 type StringId = Word32 type Capset = Word32 type PerfEventTypeNum = Word32 type TaskId = Word64 type PID = Word32 newtype KernelThreadId = KernelThreadId { kernelThreadId :: Word64 } deriving (Eq, Ord, Show) instance Binary KernelThreadId where put (KernelThreadId tid) = put tid get = fmap KernelThreadId get -- Types for Parallel-RTS Extension type ProcessId = Word32 type MachineId = Word16 type PortId = ThreadId type MessageSize = Word32 type RawMsgTag = Word8 -- These types are used by Mercury events. type ParConjDynId = Word64 type ParConjStaticId = StringId type SparkId = Word32 type FutureId = Word64 sz_event_type_num :: EventTypeSize sz_event_type_num = 2 sz_cap :: EventTypeSize sz_cap = 2 sz_time :: EventTypeSize sz_time = 8 sz_tid :: EventTypeSize sz_tid = 4 sz_old_tid :: EventTypeSize sz_old_tid = 8 -- GHC 6.12 was using 8 for ThreadID when declaring the size -- of events, but was actually using 32 bits for ThreadIDs sz_capset :: EventTypeSize sz_capset = 4 sz_capset_type :: EventTypeSize sz_capset_type = 2 sz_block_size :: EventTypeSize sz_block_size = 4 sz_block_event :: EventTypeSize sz_block_event = fromIntegral (sz_event_type_num + sz_time + sz_block_size + sz_time + sz_cap) sz_pid :: EventTypeSize sz_pid = 4 sz_taskid :: EventTypeSize sz_taskid = 8 sz_kernel_tid :: EventTypeSize sz_kernel_tid = 8 sz_th_stop_status :: EventTypeSize sz_th_stop_status = 2 sz_string_id :: EventTypeSize sz_string_id = 4 sz_perf_num :: EventTypeSize sz_perf_num = 4 -- Sizes for Parallel-RTS event fields sz_procid, sz_mid, sz_mes, sz_realtime, sz_msgtag :: EventTypeSize sz_procid = 4 sz_mid = 2 sz_mes = 4 sz_realtime = 8 sz_msgtag = 1 -- Sizes for Mercury event fields. sz_par_conj_dyn_id :: EventTypeSize sz_par_conj_dyn_id = 8 sz_par_conj_static_id :: EventTypeSize sz_par_conj_static_id = sz_string_id sz_spark_id :: EventTypeSize sz_spark_id = 4 sz_future_id :: EventTypeSize sz_future_id = 8 {- - Data type delcarations to build the GHC RTS data format, - which is a (header, data) pair. - - Header contains EventTypes. - Data contains Events. -} data EventLog = EventLog { header :: Header, dat :: Data } deriving Show newtype Header = Header { eventTypes :: [EventType] } deriving (Show, Eq) data Data = Data { events :: [Event] } deriving Show data EventType = EventType { num :: EventTypeNum, desc :: EventTypeDesc, size :: Maybe EventTypeSize -- ^ 'Nothing' indicates variable size } deriving (Show, Eq) data Event = Event { evTime :: {-# UNPACK #-}!Timestamp, evSpec :: EventInfo, evCap :: Maybe Int } deriving Show {-# DEPRECATED time "The field is now called evTime" #-} time :: Event -> Timestamp time = evTime {-# DEPRECATED spec "The field is now called evSpec" #-} spec :: Event -> EventInfo spec = evSpec data EventInfo -- pseudo events = EventBlock { end_time :: Timestamp, cap :: Int, block_size :: BlockSize } | UnknownEvent { ref :: {-# UNPACK #-}!EventTypeNum } -- init and shutdown | Startup { n_caps :: Int } -- EVENT_SHUTDOWN is replaced by EVENT_CAP_DELETE and GHC 7.6+ -- no longer generate the event; should be removed at some point | Shutdown { } -- thread scheduling | CreateThread { thread :: {-# UNPACK #-}!ThreadId } | RunThread { thread :: {-# UNPACK #-}!ThreadId } | StopThread { thread :: {-# UNPACK #-}!ThreadId, status :: !ThreadStopStatus } | ThreadRunnable { thread :: {-# UNPACK #-}!ThreadId } | MigrateThread { thread :: {-# UNPACK #-}!ThreadId, newCap :: {-# UNPACK #-}!Int } | WakeupThread { thread :: {-# UNPACK #-}!ThreadId, otherCap :: {-# UNPACK #-}!Int } | ThreadLabel { thread :: {-# UNPACK #-}!ThreadId, threadlabel :: String } -- par sparks | CreateSparkThread { sparkThread :: {-# UNPACK #-}!ThreadId } | SparkCounters { sparksCreated, sparksDud, sparksOverflowed, sparksConverted, sparksFizzled, sparksGCd, sparksRemaining :: {-# UNPACK #-}! Word64 } | SparkCreate { } | SparkDud { } | SparkOverflow { } | SparkRun { } | SparkSteal { victimCap :: {-# UNPACK #-}!Int } | SparkFizzle { } | SparkGC { } -- tasks | TaskCreate { taskId :: TaskId, cap :: {-# UNPACK #-}!Int, tid :: {-# UNPACK #-}!KernelThreadId } | TaskMigrate { taskId :: TaskId, cap :: {-# UNPACK #-}!Int, new_cap :: {-# UNPACK #-}!Int } | TaskDelete { taskId :: TaskId } -- garbage collection | RequestSeqGC { } | RequestParGC { } | StartGC { } | GCWork { } | GCIdle { } | GCDone { } | EndGC { } | GlobalSyncGC { } | GCStatsGHC { heapCapset :: {-# UNPACK #-}!Capset , gen :: {-# UNPACK #-}!Int , copied :: {-# UNPACK #-}!Word64 , slop, frag :: {-# UNPACK #-}!Word64 , parNThreads :: {-# UNPACK #-}!Int , parMaxCopied :: {-# UNPACK #-}!Word64 , parTotCopied :: {-# UNPACK #-}!Word64 } -- heap statistics | HeapAllocated { heapCapset :: {-# UNPACK #-}!Capset , allocBytes :: {-# UNPACK #-}!Word64 } | HeapSize { heapCapset :: {-# UNPACK #-}!Capset , sizeBytes :: {-# UNPACK #-}!Word64 } | HeapLive { heapCapset :: {-# UNPACK #-}!Capset , liveBytes :: {-# UNPACK #-}!Word64 } | HeapInfoGHC { heapCapset :: {-# UNPACK #-}!Capset , gens :: {-# UNPACK #-}!Int , maxHeapSize :: {-# UNPACK #-}!Word64 , allocAreaSize :: {-# UNPACK #-}!Word64 , mblockSize :: {-# UNPACK #-}!Word64 , blockSize :: {-# UNPACK #-}!Word64 } -- adjusting the number of capabilities on the fly | CapCreate { cap :: {-# UNPACK #-}!Int } | CapDelete { cap :: {-# UNPACK #-}!Int } | CapDisable { cap :: {-# UNPACK #-}!Int } | CapEnable { cap :: {-# UNPACK #-}!Int } -- capability sets | CapsetCreate { capset :: {-# UNPACK #-}!Capset , capsetType :: CapsetType } | CapsetDelete { capset :: {-# UNPACK #-}!Capset } | CapsetAssignCap { capset :: {-# UNPACK #-}!Capset , cap :: {-# UNPACK #-}!Int } | CapsetRemoveCap { capset :: {-# UNPACK #-}!Capset , cap :: {-# UNPACK #-}!Int } -- program/process info | RtsIdentifier { capset :: {-# UNPACK #-}!Capset , rtsident :: String } | ProgramArgs { capset :: {-# UNPACK #-}!Capset , args :: [String] } | ProgramEnv { capset :: {-# UNPACK #-}!Capset , env :: [String] } | OsProcessPid { capset :: {-# UNPACK #-}!Capset , pid :: {-# UNPACK #-}!PID } | OsProcessParentPid { capset :: {-# UNPACK #-}!Capset , ppid :: {-# UNPACK #-}!PID } | WallClockTime { capset :: {-# UNPACK #-}!Capset , sec :: {-# UNPACK #-}!Word64 , nsec :: {-# UNPACK #-}!Word32 } -- messages | Message { msg :: String } | UserMessage { msg :: String } | UserMarker { markername :: String } -- Events emitted by a parallel RTS -- Program /process info (tools might prefer newer variants above) | Version { version :: String } | ProgramInvocation { commandline :: String } -- startup and shutdown (incl. real start time, not first log entry) | CreateMachine { machine :: {-# UNPACK #-} !MachineId, realtime :: {-# UNPACK #-} !Timestamp} | KillMachine { machine :: {-# UNPACK #-} !MachineId } -- Haskell processes mgmt (thread groups that share heap and communicate) | CreateProcess { process :: {-# UNPACK #-} !ProcessId } | KillProcess { process :: {-# UNPACK #-} !ProcessId } | AssignThreadToProcess { thread :: {-# UNPACK #-} !ThreadId, process :: {-# UNPACK #-} !ProcessId } -- communication between processes | EdenStartReceive { } | EdenEndReceive { } | SendMessage { mesTag :: !MessageTag, senderProcess :: {-# UNPACK #-} !ProcessId, senderThread :: {-# UNPACK #-} !ThreadId, receiverMachine :: {-# UNPACK #-} !MachineId, receiverProcess :: {-# UNPACK #-} !ProcessId, receiverInport :: {-# UNPACK #-} !PortId } | ReceiveMessage { mesTag :: !MessageTag, receiverProcess :: {-# UNPACK #-} !ProcessId, receiverInport :: {-# UNPACK #-} !PortId, senderMachine :: {-# UNPACK #-} !MachineId, senderProcess :: {-# UNPACK #-} !ProcessId, senderThread :: {-# UNPACK #-} !ThreadId, messageSize :: {-# UNPACK #-} !MessageSize } | SendReceiveLocalMessage { mesTag :: !MessageTag, senderProcess :: {-# UNPACK #-} !ProcessId, senderThread :: {-# UNPACK #-} !ThreadId, receiverProcess :: {-# UNPACK #-} !ProcessId, receiverInport :: {-# UNPACK #-} !PortId } -- These events have been added for Mercury's benifit but are generally -- useful. | InternString { str :: String, sId :: {-# UNPACK #-}!StringId } -- Mercury specific events. | MerStartParConjunction { dyn_id :: {-# UNPACK #-}!ParConjDynId, static_id :: {-# UNPACK #-}!ParConjStaticId } | MerEndParConjunction { dyn_id :: {-# UNPACK #-}!ParConjDynId } | MerEndParConjunct { dyn_id :: {-# UNPACK #-}!ParConjDynId } | MerCreateSpark { dyn_id :: {-# UNPACK #-}!ParConjDynId, spark_id :: {-# UNPACK #-}!SparkId } | MerFutureCreate { future_id :: {-# UNPACK #-}!FutureId, name_id :: {-# UNPACK #-}!StringId } | MerFutureWaitNosuspend { future_id :: {-# UNPACK #-}!FutureId } | MerFutureWaitSuspended { future_id :: {-# UNPACK #-}!FutureId } | MerFutureSignal { future_id :: {-# UNPACK #-}!FutureId } | MerLookingForGlobalThread | MerWorkStealing | MerLookingForLocalSpark | MerReleaseThread { thread_id :: {-# UNPACK #-}!ThreadId } | MerCapSleeping | MerCallingMain -- perf events | PerfName { perfNum :: {-# UNPACK #-}!PerfEventTypeNum , name :: String } | PerfCounter { perfNum :: {-# UNPACK #-}!PerfEventTypeNum , tid :: {-# UNPACK #-}!KernelThreadId , period :: {-# UNPACK #-}!Word64 } | PerfTracepoint { perfNum :: {-# UNPACK #-}!PerfEventTypeNum , tid :: {-# UNPACK #-}!KernelThreadId } deriving Show {- [Note: Stop status in GHC-7.8.2] In GHC-7.7, a new thread block reason "BlockedOnMVarRead" was introduced, and placed adjacent to BlockedOnMVar (7). Therefore, event logs produced by GHC pre-7.8.2 encode BlockedOnBlackHole and following as 8..18, whereas GHC-7.8.2 event logs encode them as 9..19. Later, the prior event numbering was restored for GHC-7.8.3. See GHC bug #9003 for a discussion. The parsers in Events.hs have to be adapted accordingly, providing special ghc-7.8.2 parsers for the thread-stop event if GHC-7.8.2 produced the eventlog. The EVENT_USER_MARKER was not present in GHC-7.6.3, and a new event EVENT_HACK_BUG_T9003 was added in GHC-7.8.3, so we take presence of USER_MARKER and absence of HACK_BUG_T9003 as an indication that ghc-7.8.2 parsers should be used. -} --sync with ghc/includes/Constants.h data ThreadStopStatus = NoStatus | HeapOverflow | StackOverflow | ThreadYielding | ThreadBlocked | ThreadFinished | ForeignCall | BlockedOnMVar | BlockedOnMVarRead -- since GHC-7.8, see [Stop status since GHC-7.7] | BlockedOnBlackHole | BlockedOnRead | BlockedOnWrite | BlockedOnDelay | BlockedOnSTM | BlockedOnDoProc | BlockedOnCCall | BlockedOnCCall_NoUnblockExc | BlockedOnMsgThrowTo | ThreadMigrating | BlockedOnMsgGlobalise | BlockedOnBlackHoleOwnedBy {-# UNPACK #-}!ThreadId deriving (Show) -- normal GHC encoding, see [Stop status in GHC-7.8.2] mkStopStatus :: RawThreadStopStatus -> ThreadStopStatus mkStopStatus n = case n of 0 -> NoStatus 1 -> HeapOverflow 2 -> StackOverflow 3 -> ThreadYielding 4 -> ThreadBlocked 5 -> ThreadFinished 6 -> ForeignCall 7 -> BlockedOnMVar 8 -> BlockedOnBlackHole 9 -> BlockedOnRead 10 -> BlockedOnWrite 11 -> BlockedOnDelay 12 -> BlockedOnSTM 13 -> BlockedOnDoProc 14 -> BlockedOnCCall 15 -> BlockedOnCCall_NoUnblockExc 16 -> BlockedOnMsgThrowTo 17 -> ThreadMigrating 18 -> BlockedOnMsgGlobalise 19 -> NoStatus -- yeuch... this one does not actually exist in GHC eventlogs 20 -> BlockedOnMVarRead -- since GHC-7.8.3 _ -> error "mkStat" -- GHC 7.8.2 encoding, see [Stop status in GHC-7.8.2] mkStopStatus782 :: RawThreadStopStatus -> ThreadStopStatus mkStopStatus782 n = case n of 0 -> NoStatus 1 -> HeapOverflow 2 -> StackOverflow 3 -> ThreadYielding 4 -> ThreadBlocked 5 -> ThreadFinished 6 -> ForeignCall 7 -> BlockedOnMVar 8 -> BlockedOnMVarRead -- in GHC-7.8.2 9 -> BlockedOnBlackHole 10 -> BlockedOnRead 11 -> BlockedOnWrite 12 -> BlockedOnDelay 13 -> BlockedOnSTM 14 -> BlockedOnDoProc 15 -> BlockedOnCCall 16 -> BlockedOnCCall_NoUnblockExc 17 -> BlockedOnMsgThrowTo 18 -> ThreadMigrating 19 -> BlockedOnMsgGlobalise _ -> error "mkStat" maxThreadStopStatusPre77, maxThreadStopStatus782, maxThreadStopStatus :: RawThreadStopStatus maxThreadStopStatusPre77 = 18 -- see [Stop status in GHC-7.8.2] maxThreadStopStatus782 = 19 -- need to distinguish three cases maxThreadStopStatus = 20 data CapsetType = CapsetCustom | CapsetOsProcess | CapsetClockDomain | CapsetUnknown deriving Show mkCapsetType :: Word16 -> CapsetType mkCapsetType n = case n of 1 -> CapsetCustom 2 -> CapsetOsProcess 3 -> CapsetClockDomain _ -> CapsetUnknown -- | An event annotated with the Capability that generated it, if any {-# DEPRECATED CapEvent "CapEvents will be removed soon, now Event has a field evCap" #-} data CapEvent = CapEvent { ce_cap :: Maybe Int, ce_event :: Event -- we could UNPACK ce_event, but the Event constructor -- might be shared, in which case we could end up -- increasing the space usage. } deriving Show --sync with ghc/parallel/PEOpCodes.h data MessageTag = Ready | NewPE | PETIDS | Finish | FailPE | RFork | Connect | DataMes | Head | Constr | Part | Terminate | Packet -- with GUM and its variants, add: -- ...| Fetch | Resume | Ack -- ...| Fish | Schedule | Free | Reval | Shark deriving (Enum, Show) offset :: RawMsgTag offset = 0x50 -- decoder and encoder toMsgTag :: RawMsgTag -> MessageTag toMsgTag = toEnum . fromIntegral . (\n -> n - offset) fromMsgTag :: MessageTag -> RawMsgTag fromMsgTag = (+ offset) . fromIntegral . fromEnum -- Checks if the capability is not -1 (which indicates a global eventblock), so -- has no associated capability mkCap :: Int -> Maybe Int mkCap cap = do guard $ fromIntegral cap /= (maxBound :: Word16) return cap ghc-events-0.6.0/src/GHC/RTS/Events/Binary.hs0000644000000000000000000011170113113376567016647 0ustar0000000000000000{-# LANGUAGE CPP #-} module GHC.RTS.Events.Binary ( -- * Readers getHeader , getEvent , standardParsers , ghc6Parsers , ghc7Parsers , mercuryParsers , perfParsers , pre77StopParsers , ghc782StopParser , post782StopParser , parRTSParsers -- * Writers , putEventLog , putHeader , putEvent -- * Perf events , nEVENT_PERF_NAME , nEVENT_PERF_COUNTER , nEVENT_PERF_TRACEPOINT ) where import Control.Monad import Data.Maybe import Prelude hiding (gcd, rem, id) import Data.Array import Data.Binary import Data.Binary.Put import qualified Data.Binary.Get as G import GHC.RTS.EventTypes import GHC.RTS.EventParserUtils #define EVENTLOG_CONSTANTS_ONLY #include "EventLogFormat.h" getEventType :: Get EventType getEventType = do etNum <- get size <- get :: Get EventTypeSize let etSize = if size == 0xffff then Nothing else Just size -- 0xffff indicates variable-sized event etDescLen <- get :: Get EventTypeDescLen etDesc <- getEtDesc (fromIntegral etDescLen) etExtraLen <- get :: Get Word32 G.skip (fromIntegral etExtraLen) ete <- get :: Get Marker when (ete /= EVENT_ET_END) $ fail "Event Type end marker not found." return (EventType etNum etDesc etSize) where getEtDesc :: Int -> Get [Char] getEtDesc s = replicateM s (get :: Get Char) getHeader :: Get Header getHeader = do hdrb <- get :: Get Marker when (hdrb /= EVENT_HEADER_BEGIN) $ fail "Header begin marker not found" hetm <- get :: Get Marker when (hetm /= EVENT_HET_BEGIN) $ fail "Header Event Type begin marker not found" ets <- getEventTypes emark <- get :: Get Marker when (emark /= EVENT_HEADER_END) $ fail "Header end marker not found" db <- get :: Get Marker when (db /= EVENT_DATA_BEGIN) $ fail "My Data begin marker not found" return $ Header ets where getEventTypes :: Get [EventType] getEventTypes = do m <- get :: Get Marker case m of EVENT_ET_BEGIN -> do et <- getEventType nextET <- getEventTypes return (et : nextET) EVENT_HET_END -> return [] _ -> fail "Malformed list of Event Types in header" getEvent :: EventParsers -> Get (Maybe Event) getEvent (EventParsers parsers) = do etRef <- get :: Get EventTypeNum if etRef == EVENT_DATA_END then return Nothing else do !evTime <- get evSpec <- parsers ! fromIntegral etRef return $ Just Event { evCap = undefined, .. } -- -- standardEventParsers. -- standardParsers :: [EventParser EventInfo] standardParsers = [ (FixedSizeParser EVENT_STARTUP sz_cap (do -- (n_caps) c <- get :: Get CapNo return Startup{ n_caps = fromIntegral c } )), (FixedSizeParser EVENT_BLOCK_MARKER (sz_block_size + sz_time + sz_cap) (do -- (size, end_time, cap) block_size <- get :: Get BlockSize end_time <- get :: Get Timestamp c <- get :: Get CapNo return EventBlock { end_time = end_time, cap = fromIntegral c, block_size = ((fromIntegral block_size) - (fromIntegral sz_block_event)) } )), -- EVENT_SHUTDOWN is replaced by EVENT_CAP_DELETE and GHC 7.6+ -- no longer generate the event; should be removed at some point (simpleEvent EVENT_SHUTDOWN Shutdown), (simpleEvent EVENT_REQUEST_SEQ_GC RequestSeqGC), (simpleEvent EVENT_REQUEST_PAR_GC RequestParGC), (simpleEvent EVENT_GC_START StartGC), (simpleEvent EVENT_GC_WORK GCWork), (simpleEvent EVENT_GC_IDLE GCIdle), (simpleEvent EVENT_GC_DONE GCDone), (simpleEvent EVENT_GC_END EndGC), (simpleEvent EVENT_GC_GLOBAL_SYNC GlobalSyncGC), (FixedSizeParser EVENT_GC_STATS_GHC (sz_capset + 2 + 5*8 + 4) (do -- (heap_capset, generation, copied_bytes, slop_bytes, frag_bytes, par_n_threads, par_max_copied, par_tot_copied) heapCapset <- get gen <- get :: Get Word16 copied <- get :: Get Word64 slop <- get :: Get Word64 frag <- get :: Get Word64 parNThreads <- get :: Get Word32 parMaxCopied <- get :: Get Word64 parTotCopied <- get :: Get Word64 return GCStatsGHC{ gen = fromIntegral gen , parNThreads = fromIntegral parNThreads , ..} )), (FixedSizeParser EVENT_HEAP_ALLOCATED (sz_capset + 8) (do -- (heap_capset, alloc_bytes) heapCapset <- get allocBytes <- get return HeapAllocated{..} )), (FixedSizeParser EVENT_HEAP_SIZE (sz_capset + 8) (do -- (heap_capset, size_bytes) heapCapset <- get sizeBytes <- get return HeapSize{..} )), (FixedSizeParser EVENT_HEAP_LIVE (sz_capset + 8) (do -- (heap_capset, live_bytes) heapCapset <- get liveBytes <- get return HeapLive{..} )), (FixedSizeParser EVENT_HEAP_INFO_GHC (sz_capset + 2 + 4*8) (do -- (heap_capset, n_generations, max_heap_size, alloc_area_size, mblock_size, block_size) heapCapset <- get gens <- get :: Get Word16 maxHeapSize <- get :: Get Word64 allocAreaSize <- get :: Get Word64 mblockSize <- get :: Get Word64 blockSize <- get :: Get Word64 return HeapInfoGHC{gens = fromIntegral gens, ..} )), (FixedSizeParser EVENT_CAP_CREATE (sz_cap) (do -- (cap) cap <- get :: Get CapNo return CapCreate{cap = fromIntegral cap} )), (FixedSizeParser EVENT_CAP_DELETE (sz_cap) (do -- (cap) cap <- get :: Get CapNo return CapDelete{cap = fromIntegral cap} )), (FixedSizeParser EVENT_CAP_DISABLE (sz_cap) (do -- (cap) cap <- get :: Get CapNo return CapDisable{cap = fromIntegral cap} )), (FixedSizeParser EVENT_CAP_ENABLE (sz_cap) (do -- (cap) cap <- get :: Get CapNo return CapEnable{cap = fromIntegral cap} )), (FixedSizeParser EVENT_CAPSET_CREATE (sz_capset + sz_capset_type) (do -- (capset, capset_type) cs <- get ct <- fmap mkCapsetType get return CapsetCreate{capset=cs,capsetType=ct} )), (FixedSizeParser EVENT_CAPSET_DELETE sz_capset (do -- (capset) cs <- get return CapsetDelete{capset=cs} )), (FixedSizeParser EVENT_CAPSET_ASSIGN_CAP (sz_capset + sz_cap) (do -- (capset, cap) cs <- get cp <- get :: Get CapNo return CapsetAssignCap{capset=cs,cap=fromIntegral cp} )), (FixedSizeParser EVENT_CAPSET_REMOVE_CAP (sz_capset + sz_cap) (do -- (capset, cap) cs <- get cp <- get :: Get CapNo return CapsetRemoveCap{capset=cs,cap=fromIntegral cp} )), (FixedSizeParser EVENT_OSPROCESS_PID (sz_capset + sz_pid) (do -- (capset, pid) cs <- get pd <- get return OsProcessPid{capset=cs,pid=pd} )), (FixedSizeParser EVENT_OSPROCESS_PPID (sz_capset + sz_pid) (do -- (capset, ppid) cs <- get pd <- get return OsProcessParentPid{capset=cs,ppid=pd} )), (FixedSizeParser EVENT_WALL_CLOCK_TIME (sz_capset + 8 + 4) (do -- (capset, unix_epoch_seconds, nanoseconds) cs <- get s <- get ns <- get return WallClockTime{capset=cs,sec=s,nsec=ns} )), (VariableSizeParser EVENT_LOG_MSG (do -- (msg) num <- get :: Get Word16 string <- getString num return Message{ msg = string } )), (VariableSizeParser EVENT_USER_MSG (do -- (msg) num <- get :: Get Word16 string <- getString num return UserMessage{ msg = string } )), (VariableSizeParser EVENT_USER_MARKER (do -- (markername) num <- get :: Get Word16 string <- getString num return UserMarker{ markername = string } )), (VariableSizeParser EVENT_PROGRAM_ARGS (do -- (capset, [arg]) num <- get :: Get Word16 cs <- get string <- getString (num - sz_capset) return ProgramArgs{ capset = cs , args = splitNull string } )), (VariableSizeParser EVENT_PROGRAM_ENV (do -- (capset, [arg]) num <- get :: Get Word16 cs <- get string <- getString (num - sz_capset) return ProgramEnv{ capset = cs , env = splitNull string } )), (VariableSizeParser EVENT_RTS_IDENTIFIER (do -- (capset, str) num <- get :: Get Word16 cs <- get string <- getString (num - sz_capset) return RtsIdentifier{ capset = cs , rtsident = string } )), (VariableSizeParser EVENT_INTERN_STRING (do -- (str, id) num <- get :: Get Word16 string <- getString (num - sz_string_id) sId <- get :: Get StringId return (InternString string sId) )), (VariableSizeParser EVENT_THREAD_LABEL (do -- (thread, str) num <- get :: Get Word16 tid <- get str <- getString (num - sz_tid) return ThreadLabel{ thread = tid , threadlabel = str } )) ] -- Parsers valid for GHC7 but not GHC6. ghc7Parsers :: [EventParser EventInfo] ghc7Parsers = [ (FixedSizeParser EVENT_CREATE_THREAD sz_tid (do -- (thread) t <- get return CreateThread{thread=t} )), (FixedSizeParser EVENT_RUN_THREAD sz_tid (do -- (thread) t <- get return RunThread{thread=t} )), (FixedSizeParser EVENT_THREAD_RUNNABLE sz_tid (do -- (thread) t <- get return ThreadRunnable{thread=t} )), (FixedSizeParser EVENT_MIGRATE_THREAD (sz_tid + sz_cap) (do -- (thread, newCap) t <- get nc <- get :: Get CapNo return MigrateThread{thread=t,newCap=fromIntegral nc} )), -- Yes, EVENT_RUN/STEAL_SPARK are deprecated, but see the explanation in the -- 'ghc6Parsers' section below. Since we're parsing them anyway, we might -- as well convert them to the new SparkRun/SparkSteal events. (FixedSizeParser EVENT_RUN_SPARK sz_tid (do -- (thread) _ <- get :: Get ThreadId return SparkRun )), (FixedSizeParser EVENT_STEAL_SPARK (sz_tid + sz_cap) (do -- (thread, victimCap) _ <- get :: Get ThreadId vc <- get :: Get CapNo return SparkSteal{victimCap=fromIntegral vc} )), (FixedSizeParser EVENT_CREATE_SPARK_THREAD sz_tid (do -- (sparkThread) st <- get :: Get ThreadId return CreateSparkThread{sparkThread=st} )), (FixedSizeParser EVENT_SPARK_COUNTERS (7*8) (do -- (crt,dud,ovf,cnv,gcd,fiz,rem) crt <- get :: Get Word64 dud <- get :: Get Word64 ovf <- get :: Get Word64 cnv <- get :: Get Word64 gcd <- get :: Get Word64 fiz <- get :: Get Word64 rem <- get :: Get Word64 return SparkCounters{sparksCreated = crt, sparksDud = dud, sparksOverflowed = ovf, sparksConverted = cnv, -- Warning: order of fiz and gcd reversed! sparksFizzled = fiz, sparksGCd = gcd, sparksRemaining = rem} )), (simpleEvent EVENT_SPARK_CREATE SparkCreate), (simpleEvent EVENT_SPARK_DUD SparkDud), (simpleEvent EVENT_SPARK_OVERFLOW SparkOverflow), (simpleEvent EVENT_SPARK_RUN SparkRun), (FixedSizeParser EVENT_SPARK_STEAL sz_cap (do -- (victimCap) vc <- get :: Get CapNo return SparkSteal{victimCap=fromIntegral vc} )), (simpleEvent EVENT_SPARK_FIZZLE SparkFizzle), (simpleEvent EVENT_SPARK_GC SparkGC), (FixedSizeParser EVENT_TASK_CREATE (sz_taskid + sz_cap + sz_kernel_tid) (do -- (taskID, cap, tid) taskId <- get :: Get TaskId cap <- get :: Get CapNo tid <- get :: Get KernelThreadId return TaskCreate{ taskId, cap = fromIntegral cap, tid } )), (FixedSizeParser EVENT_TASK_MIGRATE (sz_taskid + sz_cap*2) (do -- (taskID, cap, new_cap) taskId <- get :: Get TaskId cap <- get :: Get CapNo new_cap <- get :: Get CapNo return TaskMigrate{ taskId, cap = fromIntegral cap , new_cap = fromIntegral new_cap } )), (FixedSizeParser EVENT_TASK_DELETE (sz_taskid) (do -- (taskID) taskId <- get :: Get TaskId return TaskDelete{ taskId } )), (FixedSizeParser EVENT_THREAD_WAKEUP (sz_tid + sz_cap) (do -- (thread, other_cap) t <- get oc <- get :: Get CapNo return WakeupThread{thread=t,otherCap=fromIntegral oc} )) ] -- special thread stop event parsers for GHC version 7.8.2 -- see [Stop status in GHC-7.8.2] in EventTypes.hs ghc782StopParser :: EventParser EventInfo ghc782StopParser = (FixedSizeParser EVENT_STOP_THREAD (sz_tid + sz_th_stop_status + sz_tid) (do -- (thread, status, info) t <- get s <- get :: Get RawThreadStopStatus i <- get :: Get ThreadId return StopThread{thread = t, status = case () of _ | s > maxThreadStopStatus782 -> NoStatus | s == 9 {- XXX yeuch -} -- GHC-7.8.2: 9 == BlockedOnBlackHole -> BlockedOnBlackHoleOwnedBy i | otherwise -> mkStopStatus782 s} )) -- parsers for GHC < 7.8.2. Older versions do not use block info -- (different length). See [Stop status in GHC-7.8.2] in -- EventTypes.hs pre77StopParsers :: [EventParser EventInfo] pre77StopParsers = [ (FixedSizeParser EVENT_STOP_THREAD (sz_tid + sz_th_stop_status) (do -- (thread, status) t <- get s <- get :: Get RawThreadStopStatus return StopThread{thread=t, status = if s > maxThreadStopStatusPre77 then NoStatus else mkStopStatus s} -- older version of the event, no block info )), (FixedSizeParser EVENT_STOP_THREAD (sz_tid + sz_th_stop_status + sz_tid) (do -- (thread, status, info) t <- get s <- get :: Get RawThreadStopStatus i <- get :: Get ThreadId return StopThread{thread = t, status = case () of _ | s > maxThreadStopStatusPre77 -> NoStatus | s == 8 {- XXX yeuch -} -- pre-7.7: 8==BlockedOnBlackhole -> BlockedOnBlackHoleOwnedBy i | otherwise -> mkStopStatus s} )) ] -- parsers for GHC >= 7.8.3, always using block info field parser. -- See [Stop status in GHC-7.8.2] in EventTypes.hs post782StopParser :: EventParser EventInfo post782StopParser = (FixedSizeParser EVENT_STOP_THREAD (sz_tid + sz_th_stop_status + sz_tid) (do -- (thread, status, info) t <- get s <- get :: Get RawThreadStopStatus i <- get :: Get ThreadId return StopThread{thread = t, status = case () of _ | s > maxThreadStopStatus -> NoStatus | s == 8 {- XXX yeuch -} -- post-7.8.2: 8==BlockedOnBlackhole -> BlockedOnBlackHoleOwnedBy i | otherwise -> mkStopStatus s} )) ----------------------- -- GHC 6.12 compat: GHC 6.12 reported the wrong sizes for some events, -- so we have to recognise those wrong sizes here for backwards -- compatibility. ghc6Parsers :: [EventParser EventInfo] ghc6Parsers = [ (FixedSizeParser EVENT_STARTUP 0 (do -- BUG in GHC 6.12: the startup event was incorrectly -- declared as size 0, so we accept it here. c <- get :: Get CapNo return Startup{ n_caps = fromIntegral c } )), (FixedSizeParser EVENT_CREATE_THREAD sz_old_tid (do -- (thread) t <- get return CreateThread{thread=t} )), (FixedSizeParser EVENT_RUN_THREAD sz_old_tid (do -- (thread) t <- get return RunThread{thread=t} )), (FixedSizeParser EVENT_STOP_THREAD (sz_old_tid + 2) (do -- (thread, status) t <- get s <- get :: Get RawThreadStopStatus return StopThread{thread=t, status = if s > maxThreadStopStatusPre77 then NoStatus else mkStopStatus s} -- older version of the event uses pre-77 encoding -- (actually, it only uses encodings 0 to 5) -- see [Stop status in GHC-7.8.2] in EventTypes.hs )), (FixedSizeParser EVENT_THREAD_RUNNABLE sz_old_tid (do -- (thread) t <- get return ThreadRunnable{thread=t} )), (FixedSizeParser EVENT_MIGRATE_THREAD (sz_old_tid + sz_cap) (do -- (thread, newCap) t <- get nc <- get :: Get CapNo return MigrateThread{thread=t,newCap=fromIntegral nc} )), -- Note: it is vital that these two (EVENT_RUN/STEAL_SPARK) remain here (at -- least in the ghc6Parsers section) even though both events are deprecated. -- The reason is that .eventlog files created by the buggy GHC-6.12 -- mis-declare the size of these two events. So we have to handle them -- specially here otherwise we'll get the wrong size, leading to us getting -- out of sync and eventual parse failure. Since we're parsing them anyway, -- we might as well convert them to the new SparkRun/SparkSteal events. (FixedSizeParser EVENT_RUN_SPARK sz_old_tid (do -- (thread) _ <- get :: Get ThreadId return SparkRun )), (FixedSizeParser EVENT_STEAL_SPARK (sz_old_tid + sz_cap) (do -- (thread, victimCap) _ <- get :: Get ThreadId vc <- get :: Get CapNo return SparkSteal{victimCap=fromIntegral vc} )), (FixedSizeParser EVENT_CREATE_SPARK_THREAD sz_old_tid (do -- (sparkThread) st <- get :: Get ThreadId return CreateSparkThread{sparkThread=st} )), (FixedSizeParser EVENT_THREAD_WAKEUP (sz_old_tid + sz_cap) (do -- (thread, other_cap) t <- get oc <- get :: Get CapNo return WakeupThread{thread=t,otherCap=fromIntegral oc} )) ] -- Parsers for parallel events. Parameter is the thread_id size, to create -- ghc6-parsers (using the wrong size) where necessary. parRTSParsers :: EventTypeSize -> [EventParser EventInfo] parRTSParsers sz_tid' = [ (VariableSizeParser EVENT_VERSION (do -- (version) num <- get :: Get Word16 string <- getString num return Version{ version = string } )), (VariableSizeParser EVENT_PROGRAM_INVOCATION (do -- (cmd. line) num <- get :: Get Word16 string <- getString num return ProgramInvocation{ commandline = string } )), (simpleEvent EVENT_EDEN_START_RECEIVE EdenStartReceive), (simpleEvent EVENT_EDEN_END_RECEIVE EdenEndReceive), (FixedSizeParser EVENT_CREATE_PROCESS sz_procid (do p <- get return CreateProcess{ process = p }) ), (FixedSizeParser EVENT_KILL_PROCESS sz_procid (do p <- get return KillProcess{ process = p }) ), (FixedSizeParser EVENT_ASSIGN_THREAD_TO_PROCESS (sz_tid' + sz_procid) (do t <- get p <- get return AssignThreadToProcess { thread = t, process = p }) ), (FixedSizeParser EVENT_CREATE_MACHINE (sz_mid + sz_realtime) (do m <- get t <- get return CreateMachine { machine = m, realtime = t }) ), (FixedSizeParser EVENT_KILL_MACHINE sz_mid (do m <- get :: Get MachineId return KillMachine { machine = m }) ), (FixedSizeParser EVENT_SEND_MESSAGE (sz_msgtag + 2*sz_procid + 2*sz_tid' + sz_mid) (do tag <- get :: Get RawMsgTag sP <- get :: Get ProcessId sT <- get :: Get ThreadId rM <- get :: Get MachineId rP <- get :: Get ProcessId rIP <- get :: Get PortId return SendMessage { mesTag = toMsgTag tag, senderProcess = sP, senderThread = sT, receiverMachine = rM, receiverProcess = rP, receiverInport = rIP }) ), (FixedSizeParser EVENT_RECEIVE_MESSAGE (sz_msgtag + 2*sz_procid + 2*sz_tid' + sz_mid + sz_mes) (do tag <- get :: Get Word8 rP <- get :: Get ProcessId rIP <- get :: Get PortId sM <- get :: Get MachineId sP <- get :: Get ProcessId sT <- get :: Get ThreadId mS <- get :: Get MessageSize return ReceiveMessage { mesTag = toMsgTag tag, receiverProcess = rP, receiverInport = rIP, senderMachine = sM, senderProcess = sP, senderThread= sT, messageSize = mS }) ), (FixedSizeParser EVENT_SEND_RECEIVE_LOCAL_MESSAGE (sz_msgtag + 2*sz_procid + 2*sz_tid') (do tag <- get :: Get Word8 sP <- get :: Get ProcessId sT <- get :: Get ThreadId rP <- get :: Get ProcessId rIP <- get :: Get PortId return SendReceiveLocalMessage { mesTag = toMsgTag tag, senderProcess = sP, senderThread = sT, receiverProcess = rP, receiverInport = rIP }) )] mercuryParsers :: [EventParser EventInfo] mercuryParsers = [ (FixedSizeParser EVENT_MER_START_PAR_CONJUNCTION (sz_par_conj_dyn_id + sz_par_conj_static_id) (do dyn_id <- get static_id <- get return (MerStartParConjunction dyn_id static_id)) ), (FixedSizeParser EVENT_MER_STOP_PAR_CONJUNCTION sz_par_conj_dyn_id (do dyn_id <- get return (MerEndParConjunction dyn_id)) ), (FixedSizeParser EVENT_MER_STOP_PAR_CONJUNCT sz_par_conj_dyn_id (do dyn_id <- get return (MerEndParConjunct dyn_id)) ), (FixedSizeParser EVENT_MER_CREATE_SPARK (sz_par_conj_dyn_id + sz_spark_id) (do dyn_id <- get spark_id <- get return (MerCreateSpark dyn_id spark_id)) ), (FixedSizeParser EVENT_MER_FUT_CREATE (sz_future_id + sz_string_id) (do future_id <- get name_id <- get return (MerFutureCreate future_id name_id)) ), (FixedSizeParser EVENT_MER_FUT_WAIT_NOSUSPEND (sz_future_id) (do future_id <- get return (MerFutureWaitNosuspend future_id)) ), (FixedSizeParser EVENT_MER_FUT_WAIT_SUSPENDED (sz_future_id) (do future_id <- get return (MerFutureWaitSuspended future_id)) ), (FixedSizeParser EVENT_MER_FUT_SIGNAL (sz_future_id) (do future_id <- get return (MerFutureSignal future_id)) ), (simpleEvent EVENT_MER_LOOKING_FOR_GLOBAL_CONTEXT MerLookingForGlobalThread), (simpleEvent EVENT_MER_WORK_STEALING MerWorkStealing), (simpleEvent EVENT_MER_LOOKING_FOR_LOCAL_SPARK MerLookingForLocalSpark), (FixedSizeParser EVENT_MER_RELEASE_CONTEXT sz_tid (do thread_id <- get return (MerReleaseThread thread_id)) ), (simpleEvent EVENT_MER_ENGINE_SLEEPING MerCapSleeping), (simpleEvent EVENT_MER_CALLING_MAIN MerCallingMain) ] perfParsers :: [EventParser EventInfo] perfParsers = [ (VariableSizeParser EVENT_PERF_NAME (do -- (perf_num, name) num <- get :: Get Word16 perfNum <- get name <- getString (num - sz_perf_num) return PerfName{perfNum, name} )), (FixedSizeParser EVENT_PERF_COUNTER (sz_perf_num + sz_kernel_tid + 8) (do -- (perf_num, tid, period) perfNum <- get tid <- get period <- get return PerfCounter{perfNum, tid, period} )), (FixedSizeParser EVENT_PERF_TRACEPOINT (sz_perf_num + sz_kernel_tid) (do -- (perf_num, tid) perfNum <- get tid <- get return PerfTracepoint{perfNum, tid} )) ] ----------------------------------------------------------- putE :: Binary a => a -> PutM () putE = put putType :: EventTypeNum -> PutM () putType = putE putCap :: Int -> PutM () putCap c = putE (fromIntegral c :: CapNo) putMarker :: Word32 -> PutM () putMarker = putE putEStr :: String -> PutM () putEStr = mapM_ putE putEventLog :: EventLog -> PutM () putEventLog (EventLog hdr es) = do putHeader hdr putData es putHeader :: Header -> PutM () putHeader (Header ets) = do putMarker EVENT_HEADER_BEGIN putMarker EVENT_HET_BEGIN mapM_ putEventType ets putMarker EVENT_HET_END putMarker EVENT_HEADER_END where putEventType (EventType n d msz) = do putMarker EVENT_ET_BEGIN putType n putE $ fromMaybe 0xffff msz putE (fromIntegral $ length d :: EventTypeDescLen) mapM_ put d -- the event type header allows for extra data, which we don't use: putE (0 :: Word32) putMarker EVENT_ET_END putData :: Data -> PutM () putData (Data es) = do putMarker EVENT_DATA_BEGIN -- Word32 mapM_ putEvent es putType EVENT_DATA_END -- Word16 eventTypeNum :: EventInfo -> EventTypeNum eventTypeNum e = case e of CreateThread {} -> EVENT_CREATE_THREAD RunThread {} -> EVENT_RUN_THREAD StopThread {} -> EVENT_STOP_THREAD ThreadRunnable {} -> EVENT_THREAD_RUNNABLE MigrateThread {} -> EVENT_MIGRATE_THREAD Shutdown {} -> EVENT_SHUTDOWN WakeupThread {} -> EVENT_THREAD_WAKEUP ThreadLabel {} -> EVENT_THREAD_LABEL StartGC {} -> EVENT_GC_START EndGC {} -> EVENT_GC_END GlobalSyncGC {} -> EVENT_GC_GLOBAL_SYNC RequestSeqGC {} -> EVENT_REQUEST_SEQ_GC RequestParGC {} -> EVENT_REQUEST_PAR_GC CreateSparkThread {} -> EVENT_CREATE_SPARK_THREAD SparkCounters {} -> EVENT_SPARK_COUNTERS SparkCreate {} -> EVENT_SPARK_CREATE SparkDud {} -> EVENT_SPARK_DUD SparkOverflow {} -> EVENT_SPARK_OVERFLOW SparkRun {} -> EVENT_SPARK_RUN SparkSteal {} -> EVENT_SPARK_STEAL SparkFizzle {} -> EVENT_SPARK_FIZZLE SparkGC {} -> EVENT_SPARK_GC TaskCreate {} -> EVENT_TASK_CREATE TaskMigrate {} -> EVENT_TASK_MIGRATE TaskDelete {} -> EVENT_TASK_DELETE Message {} -> EVENT_LOG_MSG Startup {} -> EVENT_STARTUP EventBlock {} -> EVENT_BLOCK_MARKER UserMessage {} -> EVENT_USER_MSG UserMarker {} -> EVENT_USER_MARKER GCIdle {} -> EVENT_GC_IDLE GCWork {} -> EVENT_GC_WORK GCDone {} -> EVENT_GC_DONE GCStatsGHC{} -> EVENT_GC_STATS_GHC HeapAllocated{} -> EVENT_HEAP_ALLOCATED HeapSize{} -> EVENT_HEAP_SIZE HeapLive{} -> EVENT_HEAP_LIVE HeapInfoGHC{} -> EVENT_HEAP_INFO_GHC CapCreate{} -> EVENT_CAP_CREATE CapDelete{} -> EVENT_CAP_DELETE CapDisable{} -> EVENT_CAP_DISABLE CapEnable{} -> EVENT_CAP_ENABLE CapsetCreate {} -> EVENT_CAPSET_CREATE CapsetDelete {} -> EVENT_CAPSET_DELETE CapsetAssignCap {} -> EVENT_CAPSET_ASSIGN_CAP CapsetRemoveCap {} -> EVENT_CAPSET_REMOVE_CAP RtsIdentifier {} -> EVENT_RTS_IDENTIFIER ProgramArgs {} -> EVENT_PROGRAM_ARGS ProgramEnv {} -> EVENT_PROGRAM_ENV OsProcessPid {} -> EVENT_OSPROCESS_PID OsProcessParentPid{} -> EVENT_OSPROCESS_PPID WallClockTime{} -> EVENT_WALL_CLOCK_TIME UnknownEvent {} -> error "eventTypeNum UnknownEvent" InternString {} -> EVENT_INTERN_STRING Version {} -> EVENT_VERSION ProgramInvocation {} -> EVENT_PROGRAM_INVOCATION EdenStartReceive {} -> EVENT_EDEN_START_RECEIVE EdenEndReceive {} -> EVENT_EDEN_END_RECEIVE CreateProcess {} -> EVENT_CREATE_PROCESS KillProcess {} -> EVENT_KILL_PROCESS AssignThreadToProcess {} -> EVENT_ASSIGN_THREAD_TO_PROCESS CreateMachine {} -> EVENT_CREATE_MACHINE KillMachine {} -> EVENT_KILL_MACHINE SendMessage {} -> EVENT_SEND_MESSAGE ReceiveMessage {} -> EVENT_RECEIVE_MESSAGE SendReceiveLocalMessage {} -> EVENT_SEND_RECEIVE_LOCAL_MESSAGE MerStartParConjunction {} -> EVENT_MER_START_PAR_CONJUNCTION MerEndParConjunction _ -> EVENT_MER_STOP_PAR_CONJUNCTION MerEndParConjunct _ -> EVENT_MER_STOP_PAR_CONJUNCT MerCreateSpark {} -> EVENT_MER_CREATE_SPARK MerFutureCreate {} -> EVENT_MER_FUT_CREATE MerFutureWaitNosuspend _ -> EVENT_MER_FUT_WAIT_NOSUSPEND MerFutureWaitSuspended _ -> EVENT_MER_FUT_WAIT_SUSPENDED MerFutureSignal _ -> EVENT_MER_FUT_SIGNAL MerLookingForGlobalThread -> EVENT_MER_LOOKING_FOR_GLOBAL_CONTEXT MerWorkStealing -> EVENT_MER_WORK_STEALING MerLookingForLocalSpark -> EVENT_MER_LOOKING_FOR_LOCAL_SPARK MerReleaseThread _ -> EVENT_MER_RELEASE_CONTEXT MerCapSleeping -> EVENT_MER_ENGINE_SLEEPING MerCallingMain -> EVENT_MER_CALLING_MAIN PerfName {} -> nEVENT_PERF_NAME PerfCounter {} -> nEVENT_PERF_COUNTER PerfTracepoint {} -> nEVENT_PERF_TRACEPOINT nEVENT_PERF_NAME, nEVENT_PERF_COUNTER, nEVENT_PERF_TRACEPOINT :: EventTypeNum nEVENT_PERF_NAME = EVENT_PERF_NAME nEVENT_PERF_COUNTER = EVENT_PERF_COUNTER nEVENT_PERF_TRACEPOINT = EVENT_PERF_TRACEPOINT putEvent :: Event -> PutM () putEvent Event {..} = do putType (eventTypeNum evSpec) put evTime putEventSpec evSpec putEventSpec :: EventInfo -> PutM () putEventSpec (Startup caps) = do putCap (fromIntegral caps) putEventSpec (EventBlock end cap sz) = do putE (fromIntegral (sz+24) :: BlockSize) putE end putE (fromIntegral cap :: CapNo) putEventSpec (CreateThread t) = putE t putEventSpec (RunThread t) = putE t -- here we assume that ThreadStopStatus fromEnum matches the definitions in -- EventLogFormat.h -- The standard encoding is used here, which is wrong for eventlogs -- produced by GHC-7.8.2 ([Stop status in GHC-7.8.2] in EventTypes.hs putEventSpec (StopThread t s) = do putE t putE $ case s of NoStatus -> 0 :: Word16 HeapOverflow -> 1 StackOverflow -> 2 ThreadYielding -> 3 ThreadBlocked -> 4 ThreadFinished -> 5 ForeignCall -> 6 BlockedOnMVar -> 7 BlockedOnMVarRead -> 20 -- since GHC-7.8.3 BlockedOnBlackHole -> 8 BlockedOnBlackHoleOwnedBy _ -> 8 BlockedOnRead -> 9 BlockedOnWrite -> 10 BlockedOnDelay -> 11 BlockedOnSTM -> 12 BlockedOnDoProc -> 13 BlockedOnCCall -> 14 BlockedOnCCall_NoUnblockExc -> 15 BlockedOnMsgThrowTo -> 16 ThreadMigrating -> 17 BlockedOnMsgGlobalise -> 18 putE $ case s of BlockedOnBlackHoleOwnedBy i -> i _ -> 0 putEventSpec (ThreadRunnable t) = putE t putEventSpec (MigrateThread t c) = do putE t putCap c putEventSpec (CreateSparkThread t) = putE t putEventSpec (SparkCounters crt dud ovf cnv fiz gcd rem) = do putE crt putE dud putE ovf putE cnv -- Warning: order of fiz and gcd reversed! putE gcd putE fiz putE rem putEventSpec SparkCreate = return () putEventSpec SparkDud = return () putEventSpec SparkOverflow = return () putEventSpec SparkRun = return () putEventSpec (SparkSteal c) = putCap c putEventSpec SparkFizzle = return () putEventSpec SparkGC = return () putEventSpec (WakeupThread t c) = do putE t putCap c putEventSpec (ThreadLabel t l) = do putE (fromIntegral (length l) + sz_tid :: Word16) putE t putEStr l putEventSpec Shutdown = return () putEventSpec RequestSeqGC = return () putEventSpec RequestParGC = return () putEventSpec StartGC = return () putEventSpec GCWork = return () putEventSpec GCIdle = return () putEventSpec GCDone = return () putEventSpec EndGC = return () putEventSpec GlobalSyncGC = return () putEventSpec (TaskCreate taskId cap tid) = do putE taskId putCap cap putE tid putEventSpec (TaskMigrate taskId cap new_cap) = do putE taskId putCap cap putCap new_cap putEventSpec (TaskDelete taskId) = putE taskId putEventSpec GCStatsGHC{..} = do putE heapCapset putE (fromIntegral gen :: Word16) putE copied putE slop putE frag putE (fromIntegral parNThreads :: Word32) putE parMaxCopied putE parTotCopied putEventSpec HeapAllocated{..} = do putE heapCapset putE allocBytes putEventSpec HeapSize{..} = do putE heapCapset putE sizeBytes putEventSpec HeapLive{..} = do putE heapCapset putE liveBytes putEventSpec HeapInfoGHC{..} = do putE heapCapset putE (fromIntegral gens :: Word16) putE maxHeapSize putE allocAreaSize putE mblockSize putE blockSize putEventSpec CapCreate{cap} = putCap cap putEventSpec CapDelete{cap} = putCap cap putEventSpec CapDisable{cap} = putCap cap putEventSpec CapEnable{cap} = putCap cap putEventSpec (CapsetCreate cs ct) = do putE cs putE $ case ct of CapsetCustom -> 1 :: Word16 CapsetOsProcess -> 2 CapsetClockDomain -> 3 CapsetUnknown -> 0 putEventSpec (CapsetDelete cs) = putE cs putEventSpec (CapsetAssignCap cs cp) = do putE cs putCap cp putEventSpec (CapsetRemoveCap cs cp) = do putE cs putCap cp putEventSpec (RtsIdentifier cs rts) = do putE (fromIntegral (length rts) + sz_capset :: Word16) putE cs putEStr rts putEventSpec (ProgramArgs cs as) = do let as' = unsep as putE (fromIntegral (length as') + sz_capset :: Word16) putE cs mapM_ putE as' putEventSpec (ProgramEnv cs es) = do let es' = unsep es putE (fromIntegral (length es') + sz_capset :: Word16) putE cs mapM_ putE es' putEventSpec (OsProcessPid cs pid) = do putE cs putE pid putEventSpec (OsProcessParentPid cs ppid) = do putE cs putE ppid putEventSpec (WallClockTime cs sec nsec) = do putE cs putE sec putE nsec putEventSpec (Message s) = do putE (fromIntegral (length s) :: Word16) mapM_ putE s putEventSpec (UserMessage s) = do putE (fromIntegral (length s) :: Word16) mapM_ putE s putEventSpec (UserMarker s) = do putE (fromIntegral (length s) :: Word16) mapM_ putE s putEventSpec (UnknownEvent {}) = error "putEventSpec UnknownEvent" putEventSpec (InternString str id) = do putE len mapM_ putE str putE id where len = (fromIntegral (length str) :: Word16) + sz_string_id putEventSpec (Version s) = do putE (fromIntegral (length s) :: Word16) mapM_ putE s putEventSpec (ProgramInvocation s) = do putE (fromIntegral (length s) :: Word16) mapM_ putE s putEventSpec ( EdenStartReceive ) = return () putEventSpec ( EdenEndReceive ) = return () putEventSpec ( CreateProcess process ) = do putE process putEventSpec ( KillProcess process ) = do putE process putEventSpec ( AssignThreadToProcess thread process ) = do putE thread putE process putEventSpec ( CreateMachine machine realtime ) = do putE machine putE realtime putEventSpec ( KillMachine machine ) = do putE machine putEventSpec ( SendMessage mesTag senderProcess senderThread receiverMachine receiverProcess receiverInport ) = do putE (fromMsgTag mesTag) putE senderProcess putE senderThread putE receiverMachine putE receiverProcess putE receiverInport putEventSpec ( ReceiveMessage mesTag receiverProcess receiverInport senderMachine senderProcess senderThread messageSize ) = do putE (fromMsgTag mesTag) putE receiverProcess putE receiverInport putE senderMachine putE senderProcess putE senderThread putE messageSize putEventSpec ( SendReceiveLocalMessage mesTag senderProcess senderThread receiverProcess receiverInport ) = do putE (fromMsgTag mesTag) putE senderProcess putE senderThread putE receiverProcess putE receiverInport putEventSpec (MerStartParConjunction dyn_id static_id) = do putE dyn_id putE static_id putEventSpec (MerEndParConjunction dyn_id) = putE dyn_id putEventSpec (MerEndParConjunct dyn_id) = putE dyn_id putEventSpec (MerCreateSpark dyn_id spark_id) = do putE dyn_id putE spark_id putEventSpec (MerFutureCreate future_id name_id) = do putE future_id putE name_id putEventSpec (MerFutureWaitNosuspend future_id) = putE future_id putEventSpec (MerFutureWaitSuspended future_id) = putE future_id putEventSpec (MerFutureSignal future_id) = putE future_id putEventSpec MerLookingForGlobalThread = return () putEventSpec MerWorkStealing = return () putEventSpec MerLookingForLocalSpark = return () putEventSpec (MerReleaseThread thread_id) = putE thread_id putEventSpec MerCapSleeping = return () putEventSpec MerCallingMain = return () putEventSpec PerfName{..} = do putE (fromIntegral (length name) + sz_perf_num :: Word16) putE perfNum mapM_ putE name putEventSpec PerfCounter{..} = do putE perfNum putE tid putE period putEventSpec PerfTracepoint{..} = do putE perfNum putE tid -- [] == [] -- [x] == x\0 -- [x, y, z] == x\0y\0 unsep :: [String] -> String unsep = concatMap (++"\0") -- not the most efficient, but should be ok splitNull :: String -> [String] splitNull [] = [] splitNull xs = case span (/= '\0') xs of (x, xs') -> x : splitNull (drop 1 xs') ghc-events-0.6.0/GhcEvents.hs0000644000000000000000000002327213113376567014212 0ustar0000000000000000{-# LANGUAGE CPP #-} module Main where import GHC.RTS.Events import GHC.RTS.Events.Incremental import GHC.RTS.Events.Merge import GHC.RTS.Events.Analysis import GHC.RTS.Events.Analysis.SparkThread import GHC.RTS.Events.Analysis.Thread import GHC.RTS.Events.Analysis.Capability import System.Environment (getArgs) import Data.Either (rights) import qualified Data.Map as M import System.IO import System.Exit main :: IO () main = getArgs >>= command command :: [String] -> IO () command ["--help"] = putStr usage command ["inc", file] = printEventsIncremental False file command ["inc", "force", file] = printEventsIncremental True file command ["show", file] = do evtLog <- readLogOrDie file putStrLn $ ppEventLog evtLog command ["show", "threads", file] = do eventLog <- readLogOrDie file let eventTypeMap = buildEventTypeMap . eventTypes . header $ eventLog evts = sortEvents $ events $ dat eventLog mappings = rights . validates capabilityThreadRunMachine $ evts indexes = zipWith capabilityThreadIndexer mappings evts threadMap = M.fromListWith (++) . reverse $ zip indexes (map return evts) putStrLn "Event Types:" putStrLn . unlines . map ppEventType . eventTypes . header $ eventLog putStrLn "Thread Indexed Events:" putStrLn . showMap ((++ "\n") . show) (unlines . map ((" " ++) . ppEvent eventTypeMap)) $ threadMap command ["show", "caps", file] = do eventLog <- readLogOrDie file let eventTypeMap = buildEventTypeMap . eventTypes . header $ eventLog let evts = sortEvents . events . dat $ eventLog indexes = map evCap evts capMap = M.fromListWith (++) . reverse $ zip indexes (map return evts) putStrLn "Event Types:" putStrLn . unlines . map ppEventType . eventTypes . header $ eventLog putStrLn "Cap Indexed Events:" putStrLn . showMap ((++ "\n") . show) (unlines . map ((" " ++) . ppEvent eventTypeMap)) $ capMap command ["merge", out, file1, file2] = do log1 <- readLogOrDie file1 log2 <- readLogOrDie file2 let m = mergeEventLogs log1 log2 writeEventLogToFile out m command ["validate", "threads", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = validate (routeM capabilityThreadRunMachine capabilityThreadIndexer (refineM evSpec threadMachine)) evts putStrLn $ showValidate (\(m, n) -> "\nThread States:\n" ++ showIndexed show show m ++ "\nCap States:\n" ++ showIndexed show show n) show result command ["validate", "threadpool", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = validate capabilityThreadPoolMachine evts putStrLn $ showValidate show show result command ["validate", "threadrun", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = validate capabilityThreadRunMachine evts putStrLn $ showValidate show show result command ["validate", "taskpool", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = validate capabilityTaskPoolMachine evts putStrLn $ showValidate show show result command ["validate", "tasks", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = validate capabilityTaskOSMachine evts putStrLn $ showValidate show show result command ["validate", "sparks", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = validate (routeM capabilitySparkThreadMachine capabilitySparkThreadIndexer (refineM evSpec sparkThreadMachine)) evts putStrLn $ showValidate show show result command ["simulate", "threads", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = simulate (routeM capabilityThreadRunMachine capabilityThreadIndexer (refineM evSpec threadMachine)) evts putStrLn . showProcess $ result command ["simulate", "threadpool", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = simulate capabilityThreadPoolMachine evts putStrLn . showProcess $ result command ["simulate", "threadrun", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = simulate capabilityThreadRunMachine evts putStrLn . showProcess $ result command ["simulate", "taskpool", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = simulate capabilityTaskPoolMachine evts putStrLn . showProcess $ result command ["simulate", "tasks", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = simulate capabilityTaskOSMachine evts putStrLn . showProcess $ result command ["simulate", "sparks", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = simulate (routeM capabilitySparkThreadMachine capabilitySparkThreadIndexer (refineM evSpec sparkThreadMachine)) evts putStrLn . showProcess $ result command ["profile", "threads", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = profileRouted (refineM evSpec threadMachine) capabilityThreadRunMachine capabilityThreadIndexer evTime evts putStrLn . showProcess $ result command ["profile", "sparks", file] = do eventLog <- readLogOrDie file let evts = sortEvents . events . dat $ eventLog let result = profileRouted (refineM evSpec sparkThreadMachine) capabilitySparkThreadMachine capabilitySparkThreadIndexer evTime evts putStrLn . showProcess $ result command _ = putStr usage >> die "Unrecognized command" readLogOrDie :: FilePath -> IO EventLog readLogOrDie file = do e <- readEventLogFromFile file case e of Left s -> die ("Failed to parse " ++ file ++ ": " ++ s) Right evtLog -> return evtLog usage :: String usage = unlines $ map pad strings where align = 4 + (maximum . map (length . fst) $ strings) pad (x, y) = zipWith const (x ++ repeat ' ') (replicate align ()) ++ y strings = [ ("ghc-events --help:", "Display this help.") , ("ghc-events inc :", "Pretty print an event log incrementally") , ("ghc-events inc force :", "Pretty print an event log incrementally. Retry on incomplete input (aka 'tail -f').") , ("ghc-events show :", "Pretty print an event log.") , ("ghc-events show threads :", "Pretty print an event log, ordered by threads.") , ("ghc-events show caps :", "Pretty print an event log, ordered by capabilities.") , ("ghc-events merge :", "Merge two event logs.") , ("ghc-events sparks-csv :", "Print spark information in CSV.") , ("ghc-events validate threads :", "Validate thread states.") , ("ghc-events validate threadpool :", "Validate thread pool state.") , ("ghc-events validate threadrun :", "Validate thread running state.") , ("ghc-events validate tasks :", "Validate task states.") , ("ghc-events validate sparks :", "Validate spark thread states.") , ("ghc-events simulate threads :", "Simulate thread states.") , ("ghc-events simulate threadpool :", "Simulate thread pool state.") , ("ghc-events simulate threadrun :", "Simulate thread running state.") , ("ghc-events simulate tasks :", "Simulate task states.") , ("ghc-events simulate sparks :", "Simulate spark thread states.") , ("ghc-events profile threads :", "Profile thread states.") , ("ghc-events profile sparks :", "Profile spark thread states.") ] showValidate :: (s -> String) -> (i -> String) -> Either (s, i) s -> String showValidate showState showInput (Left (state, input)) = "Invalid eventlog:" ++ "\nState:\n" ++ showState state ++ "\nInput:\n" ++ showInput input showValidate showState _ (Right state) = "Valid eventlog: " ++ showState state showProcess :: (Show e, Show a) => Process e a -> String showProcess process = "Trace:\n" ++ (unlines . map show . toList) process ++ "\n" ++ (maybe "Valid." (("Invalid:\n" ++) . show) . toMaybe) process showIndexed :: (k -> String) -> (v -> String) -> M.Map k v -> String showIndexed showKey showValue m | M.null m = "Empty map\n" | otherwise = "Indexed output:\n" ++ concatMap (\(k, v) -> "Key: " ++ showKey k ++ ", Value: " ++ showValue v ++ "\n") (M.toList m) showMap :: Ord k => (k -> String) -> (a -> String) -> M.Map k a -> String showMap showKey showValue m = concat $ zipWith (++) (map showKey . M.keys $ m :: [String]) (map (showValue . (M.!) m) . M.keys $ m :: [String]) #if !MIN_VERSION_base(4,8,0) die :: String -> IO a die err = hPutStrLn stderr err >> exitFailure #endif ghc-events-0.6.0/test/WriteMerge.hs0000644000000000000000000000253413113376567015353 0ustar0000000000000000{- This test checks the functionality of `ghc-events merge` and writeEventLogToFile -} import Control.Monad import qualified Data.ByteString.Lazy as BL import Data.List (( \\ )) import Data.Maybe (fromJust) import System.Exit (exitFailure) import GHC.RTS.Events import GHC.RTS.Events.Incremental (readEventLog) import Utils (files, diffLines) -- Failing test cases due to changes introduced some time in the past but -- went unnoticed. Needs fixing. TODO failingCases :: [FilePath] failingCases = map ("test/"++) [ "queens-ghc-6.12.1.eventlog" , "queens-ghc-7.0.2.eventlog" , "mandelbrot-mmc-2011-06-14.eventlog" , "782stop.eventlog"] rewriteLog :: EventLog -> EventLog rewriteLog oldLog = case readEventLog (serialiseEventLog oldLog) of Left reason -> error reason Right (newLog, _) -> newLog testFile :: FilePath -> IO Bool testFile f = do e <- readEventLogFromFile f let oops s = putStrLn (f ++ ": failure " ++ s) >> return False case e of Left m -> oops m Right log -> do let old = ppEventLog log let new = ppEventLog $ rewriteLog log if old == new then putStrLn (f ++ ": success") >> return True else do putStrLn $ diffLines old new oops "re-written file does not match the original" main :: IO () main = do successes <- mapM testFile files unless (and successes) exitFailure ghc-events-0.6.0/test/Utils.hs0000644000000000000000000000164513113376563014377 0ustar0000000000000000module Utils where files :: [FilePath] files = map ("test/"++) [ "queens-ghc-6.12.1.eventlog" , "queens-ghc-7.0.2.eventlog" , "mandelbrot-mmc-2011-06-14.eventlog" , "parallelTest.eventlog" , "pre77stop.eventlog", "782stop.eventlog", "783stop.eventlog" ] -- Code to help print the differences between a working test and a failing test. diffLines o n = diff 1 (lines o) (lines n) diff :: Int -> [String] -> [String] -> String diff _ [] [] = "Logs match" diff l [] (n:ns) = "Extra lines in new log at line " ++ show l ++ ":\n" ++ (unlines (n:ns)) diff l (o:os) [] = "Missing lines in new log at line " ++ show l ++ ":\n" ++ (unlines (o:os)) diff l (o:os) (n:ns) = if (o == n) then diff (l+1) os ns else "Different output at line " ++ show l ++ ":\n" ++ "Original: " ++ o ++ "\n" ++ "New: " ++ n ghc-events-0.6.0/test/TestVersions.hs0000644000000000000000000000270113113376567015745 0ustar0000000000000000{- This test parses sample event logs from each major GHC version and compares the pretty printed output with reference output. When tests fail, use a diff tool to compare the output of "ghc-events show" with the reference file. Resolve the differences in either the library code or the reference file, and 'darcs record' the changes. Steps to produce event log and reference output: $ ghc --make queens.hs -o queens-ghc-$VERSION -threaded -eventlog $ queens-ghc-$VERSION 8 +RTS -N4 -ls $ ghc-events show queens-ghc-$VERSION.eventlog > queens-ghc-$VERSION.eventlog.reference Where queens.hs is http://darcs.haskell.org/nofib/parallel/queens/Main.hs -} import System.Exit (exitFailure) import GHC.RTS.Events import GHC.RTS.Events.Incremental import Utils (files, diffLines) testFile :: FilePath -> IO Bool testFile f = do e <- readEventLogFromFile f let oops s = putStrLn (f ++ ": failure " ++ s) >> return False case e of Left m -> oops m Right newlogdata -> do oldlog <- readFile (f ++ ".reference") let newlog = ppEventLog newlogdata ++ "\n" in if oldlog == newlog then putStrLn (f ++ ": success") >> return True else do putStrLn $ diffLines oldlog newlog oops "pretty print output does not match" main = do successes <- mapM testFile files if and successes then return () else exitFailure ghc-events-0.6.0/test/Utils.hs0000644000000000000000000000164513113376563014377 0ustar0000000000000000module Utils where files :: [FilePath] files = map ("test/"++) [ "queens-ghc-6.12.1.eventlog" , "queens-ghc-7.0.2.eventlog" , "mandelbrot-mmc-2011-06-14.eventlog" , "parallelTest.eventlog" , "pre77stop.eventlog", "782stop.eventlog", "783stop.eventlog" ] -- Code to help print the differences between a working test and a failing test. diffLines o n = diff 1 (lines o) (lines n) diff :: Int -> [String] -> [String] -> String diff _ [] [] = "Logs match" diff l [] (n:ns) = "Extra lines in new log at line " ++ show l ++ ":\n" ++ (unlines (n:ns)) diff l (o:os) [] = "Missing lines in new log at line " ++ show l ++ ":\n" ++ (unlines (o:os)) diff l (o:os) (n:ns) = if (o == n) then diff (l+1) os ns else "Different output at line " ++ show l ++ ":\n" ++ "Original: " ++ o ++ "\n" ++ "New: " ++ n ghc-events-0.6.0/LICENSE0000644000000000000000000000312712676645645013003 0ustar0000000000000000The Glasgow Haskell Compiler License Copyright 2002-2012, The University Court of the University of Glasgow and others. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ghc-events-0.6.0/Setup.lhs0000644000000000000000000000011512676645645013600 0ustar0000000000000000#!/usr/bin/env runhaskell > import Distribution.Simple > main = defaultMain ghc-events-0.6.0/ghc-events.cabal0000644000000000000000000000760013113447011014773 0ustar0000000000000000name: ghc-events version: 0.6.0 synopsis: Library and tool for parsing .eventlog files from GHC description: Parses .eventlog files emitted by GHC 6.12.1 and later. Includes the ghc-events tool permitting, in particular, to dump an event log file as text. category: Development, GHC, Debug, Profiling, Trace license: BSD3 license-file: LICENSE author: Donnie Jones , Simon Marlow , Paul Bone , Mischa Dieterle , Thomas Horstmeyer , Duncan Coutts , Nicolas Wu , Jost Berthold Mikolaj Konarski Karolis Velicka maintainer: Simon Marlow bug-reports: https://github.com/haskell/ghc-events/issues build-type: Simple tested-with: GHC == 7.6.1, GHC == 7.6.3, GHC == 7.8.2, GHC == 7.8.3, GHC == 7.10.1, GHC == 8.0.2 cabal-version: >= 1.8 extra-source-files: include/EventLogFormat.h test/queens-ghc-6.12.1.eventlog test/queens-ghc-6.12.1.eventlog.reference test/queens-ghc-7.0.2.eventlog test/queens-ghc-7.0.2.eventlog.reference test/mandelbrot-mmc-2011-06-14.eventlog test/mandelbrot-mmc-2011-06-14.eventlog.reference test/parallelTest.eventlog test/parallelTest.eventlog.reference test/pre77stop.eventlog test/pre77stop.eventlog.reference test/782stop.eventlog test/782stop.eventlog.reference test/783stop.eventlog test/783stop.eventlog.reference test/Utils.hs test/stop.hs README.md CHANGELOG.md source-repository head type: git location: git@github.com:haskell/ghc-events.git library build-depends: base == 4.*, containers >= 0.5 && < 0.6, binary >= 0.7 && < 0.10, bytestring >= 0.10.4, array >= 0.2 && < 0.6 exposed-modules: GHC.RTS.Events, GHC.RTS.Events.Incremental GHC.RTS.Events.Merge GHC.RTS.Events.Analysis GHC.RTS.Events.Analysis.Capability GHC.RTS.Events.Analysis.SparkThread GHC.RTS.Events.Analysis.Thread other-modules: GHC.RTS.EventParserUtils, GHC.RTS.EventTypes GHC.RTS.Events.Binary hs-source-dirs: src include-dirs: include extensions: RecordWildCards, NamedFieldPuns, BangPatterns, PatternGuards other-extensions: FlexibleContexts, CPP ghc-options: -Wall executable ghc-events main-is: GhcEvents.hs build-depends: ghc-events, base, containers extensions: RecordWildCards, NamedFieldPuns, BangPatterns, PatternGuards test-suite test-versions type: exitcode-stdio-1.0 main-is: TestVersions.hs other-modules: Utils hs-source-dirs: ., test build-depends: ghc-events, base extensions: RecordWildCards, NamedFieldPuns, BangPatterns, PatternGuards test-suite write-merge type: exitcode-stdio-1.0 main-is: WriteMerge.hs other-modules: Utils hs-source-dirs: ., test build-depends: ghc-events, base, bytestring extensions: RecordWildCards, NamedFieldPuns, BangPatterns, PatternGuards buildable: False ghc-events-0.6.0/include/EventLogFormat.h0000644000000000000000000003245413113376563016456 0ustar0000000000000000/* ----------------------------------------------------------------------------- * * (c) The GHC Team, 2008-2012 * * Event log format * * The log format is designed to be extensible: old tools should be * able to parse (but not necessarily understand all of) new versions * of the format, and new tools will be able to understand old log * files. * * Each event has a specific format. If you add new events, give them * new numbers: we never re-use old event numbers. * * - The format is endian-independent: all values are represented in * bigendian order. * * - The format is extensible: * * - The header describes each event type and its length. Tools * that don't recognise a particular event type can skip those events. * * - There is room for extra information in the event type * specification, which can be ignored by older tools. * * - Events can have extra information added, but existing fields * cannot be changed. Tools should ignore extra fields at the * end of the event record. * * - Old event type ids are never re-used; just take a new identifier. * * * The format * ---------- * * log : EVENT_HEADER_BEGIN * EventType* * EVENT_HEADER_END * EVENT_DATA_BEGIN * Event* * EVENT_DATA_END * * EventType : * EVENT_ET_BEGIN * Word16 -- unique identifier for this event * Int16 -- >=0 size of the event in bytes (minus the header) * -- -1 variable size * Word32 -- length of the next field in bytes * Word8* -- string describing the event * Word32 -- length of the next field in bytes * Word8* -- extra info (for future extensions) * EVENT_ET_END * * Event : * Word16 -- event_type * Word64 -- time (nanosecs) * [Word16] -- length of the rest (for variable-sized events only) * ... extra event-specific info ... * * * To add a new event * ------------------ * * - In this file: * - give it a new number, add a new #define EVENT_XXX below * - In EventLog.c * - add it to the EventDesc array * - emit the event type in initEventLogging() * - emit the new event in postEvent_() * - generate the event itself by calling postEvent() somewhere * - In the Haskell code to parse the event log file: * - add types and code to read the new event * * -------------------------------------------------------------------------- */ #ifndef RTS_EVENTLOGFORMAT_H #define RTS_EVENTLOGFORMAT_H /* * Markers for begin/end of the Header. */ #define EVENT_HEADER_BEGIN 0x68647262 /* 'h' 'd' 'r' 'b' */ #define EVENT_HEADER_END 0x68647265 /* 'h' 'd' 'r' 'e' */ #define EVENT_DATA_BEGIN 0x64617462 /* 'd' 'a' 't' 'b' */ #define EVENT_DATA_END 0xffff /* * Markers for begin/end of the list of Event Types in the Header. * Header, Event Type, Begin = hetb * Header, Event Type, End = hete */ #define EVENT_HET_BEGIN 0x68657462 /* 'h' 'e' 't' 'b' */ #define EVENT_HET_END 0x68657465 /* 'h' 'e' 't' 'e' */ #define EVENT_ET_BEGIN 0x65746200 /* 'e' 't' 'b' 0 */ #define EVENT_ET_END 0x65746500 /* 'e' 't' 'e' 0 */ /* * Types of event */ #define EVENT_CREATE_THREAD 0 /* (thread) */ #define EVENT_RUN_THREAD 1 /* (thread) */ #define EVENT_STOP_THREAD 2 /* (thread, status, blockinfo) */ #define EVENT_THREAD_RUNNABLE 3 /* (thread) */ #define EVENT_MIGRATE_THREAD 4 /* (thread, new_cap) */ /* 5, 6, 7 deprecated */ #define EVENT_THREAD_WAKEUP 8 /* (thread, other_cap) */ #define EVENT_GC_START 9 /* () */ #define EVENT_GC_END 10 /* () */ #define EVENT_REQUEST_SEQ_GC 11 /* () */ #define EVENT_REQUEST_PAR_GC 12 /* () */ /* 13, 14 deprecated */ #define EVENT_CREATE_SPARK_THREAD 15 /* (spark_thread) */ #define EVENT_LOG_MSG 16 /* (message ...) */ /* EVENT_STARTUP should be deprecated at some point */ #define EVENT_STARTUP 17 /* (num_capabilities) */ #define EVENT_BLOCK_MARKER 18 /* (size, end_time, capability) */ #define EVENT_USER_MSG 19 /* (message ...) */ #define EVENT_GC_IDLE 20 /* () */ #define EVENT_GC_WORK 21 /* () */ #define EVENT_GC_DONE 22 /* () */ /* 23, 24 used by eden */ #define EVENT_CAPSET_CREATE 25 /* (capset, capset_type) */ #define EVENT_CAPSET_DELETE 26 /* (capset) */ #define EVENT_CAPSET_ASSIGN_CAP 27 /* (capset, cap) */ #define EVENT_CAPSET_REMOVE_CAP 28 /* (capset, cap) */ /* the RTS identifier is in the form of "GHC-version rts_way" */ #define EVENT_RTS_IDENTIFIER 29 /* (capset, name_version_string) */ /* the vectors in these events are null separated strings */ #define EVENT_PROGRAM_ARGS 30 /* (capset, commandline_vector) */ #define EVENT_PROGRAM_ENV 31 /* (capset, environment_vector) */ #define EVENT_OSPROCESS_PID 32 /* (capset, pid) */ #define EVENT_OSPROCESS_PPID 33 /* (capset, parent_pid) */ #define EVENT_SPARK_COUNTERS 34 /* (crt,dud,ovf,cnv,gcd,fiz,rem) */ #define EVENT_SPARK_CREATE 35 /* () */ #define EVENT_SPARK_DUD 36 /* () */ #define EVENT_SPARK_OVERFLOW 37 /* () */ #define EVENT_SPARK_RUN 38 /* () */ #define EVENT_SPARK_STEAL 39 /* (victim_cap) */ #define EVENT_SPARK_FIZZLE 40 /* () */ #define EVENT_SPARK_GC 41 /* () */ #define EVENT_INTERN_STRING 42 /* (string, id) {not used by ghc} */ #define EVENT_WALL_CLOCK_TIME 43 /* (capset, unix_epoch_seconds, nanoseconds) */ #define EVENT_THREAD_LABEL 44 /* (thread, name_string) */ #define EVENT_CAP_CREATE 45 /* (cap) */ #define EVENT_CAP_DELETE 46 /* (cap) */ #define EVENT_CAP_DISABLE 47 /* (cap) */ #define EVENT_CAP_ENABLE 48 /* (cap) */ #define EVENT_HEAP_ALLOCATED 49 /* (heap_capset, alloc_bytes) */ #define EVENT_HEAP_SIZE 50 /* (heap_capset, size_bytes) */ #define EVENT_HEAP_LIVE 51 /* (heap_capset, live_bytes) */ #define EVENT_HEAP_INFO_GHC 52 /* (heap_capset, n_generations, max_heap_size, alloc_area_size, mblock_size, block_size) */ #define EVENT_GC_STATS_GHC 53 /* (heap_capset, generation, copied_bytes, slop_bytes, frag_bytes, par_n_threads, par_max_copied, par_tot_copied) */ #define EVENT_GC_GLOBAL_SYNC 54 /* () */ #define EVENT_TASK_CREATE 55 /* (taskID, cap, tid) */ #define EVENT_TASK_MIGRATE 56 /* (taskID, cap, new_cap) */ #define EVENT_TASK_DELETE 57 /* (taskID) */ #define EVENT_USER_MARKER 58 /* (marker_name) */ #define EVENT_HACK_BUG_T9003 59 /* Hack: see trac #9003 */ /* Range 59 - 59 is available for new GHC and common events. */ /* Range 60 - 80 is used by eden for parallel tracing * see http://www.mathematik.uni-marburg.de/~eden/ */ /* these are used by eden but are replaced by new alternatives for ghc */ #define EVENT_VERSION 23 /* (version_string) */ #define EVENT_PROGRAM_INVOCATION 24 /* (commandline_string) */ /* start of parallel trace events */ #define EVENT_EDEN_START_RECEIVE 60 /* () */ #define EVENT_EDEN_END_RECEIVE 61 /* () */ #define EVENT_CREATE_PROCESS 62 /* (process) */ #define EVENT_KILL_PROCESS 63 /* (process) */ #define EVENT_ASSIGN_THREAD_TO_PROCESS 64 /* (thread, process) */ #define EVENT_CREATE_MACHINE 65 /* (machine, startupTime(in 10^-8 seconds after 19xx)) */ #define EVENT_KILL_MACHINE 66 /* (machine) */ #define EVENT_SEND_MESSAGE 67 /* (tag, sender_process, sender_thread, receiver_machine, receiver_process, receiver_inport) */ #define EVENT_RECEIVE_MESSAGE 68 /* (tag, receiver_process, receiver_inport, sender_machine, sender_process, sender_outport, message_size) */ #define EVENT_SEND_RECEIVE_LOCAL_MESSAGE 69 /* (tag, sender_process, sender_thread, receiver_process, receiver_inport) */ /* Range 100 - 139 is reserved for Mercury, see below. */ /* Range 140 - 159 is reserved for Perf events, see below. */ /* * The highest event code +1 that ghc itself emits. Note that some event * ranges higher than this are reserved but not currently emitted by ghc. * This must match the size of the EventDesc[] array in EventLog.c */ #define NUM_GHC_EVENT_TAGS 70 /* DEPRECATED EVENTS: */ /* These two are deprecated because we don't need to record the thread, it's implicit. We have to keep these #defines because for tiresome reasons we still need to parse them, see GHC.RTS.Events.ghc6Parsers for details. */ #define EVENT_RUN_SPARK 5 /* (thread) */ #define EVENT_STEAL_SPARK 6 /* (thread, victim_cap) */ /* shutdown replaced by EVENT_CAP_DELETE */ #define EVENT_SHUTDOWN 7 /* () */ #if 0 /* ghc changed how it handles sparks so these are no longer applicable */ #define EVENT_CREATE_SPARK 13 /* (cap, thread) */ #define EVENT_SPARK_TO_THREAD 14 /* (cap, thread, spark_thread) */ #endif /* * These event types are Mercury specific, Mercury may use up to event number * 139 */ #define EVENT_FIRST_MER_EVENT 100 #define NUM_MER_EVENTS 14 #define EVENT_MER_START_PAR_CONJUNCTION 100 /* (dyn id, static id) */ #define EVENT_MER_STOP_PAR_CONJUNCTION 101 /* (dyn id) */ #define EVENT_MER_STOP_PAR_CONJUNCT 102 /* (dyn id) */ #define EVENT_MER_CREATE_SPARK 103 /* (dyn id, spark id) */ #define EVENT_MER_FUT_CREATE 104 /* (fut id, memo'd name id) */ #define EVENT_MER_FUT_WAIT_NOSUSPEND 105 /* (fut id) */ #define EVENT_MER_FUT_WAIT_SUSPENDED 106 /* (fut id) */ #define EVENT_MER_FUT_SIGNAL 107 /* (fut id) */ #define EVENT_MER_LOOKING_FOR_GLOBAL_CONTEXT \ 108 /* () */ #define EVENT_MER_WORK_STEALING 109 /* () */ #define EVENT_MER_LOOKING_FOR_LOCAL_SPARK \ 112 /* () */ #define EVENT_MER_RELEASE_CONTEXT 110 /* (context id) */ #define EVENT_MER_ENGINE_SLEEPING 111 /* () */ #define EVENT_MER_CALLING_MAIN 113 /* () */ /* * These event types are parsed from hardware performance counters logs, * such as the Linux Performance Counters data available through * the perf subsystem. */ #define EVENT_PERF_NAME 140 /* (perf_num, name) */ #define EVENT_PERF_COUNTER 141 /* (perf_num, tid, period) */ #define EVENT_PERF_TRACEPOINT 142 /* (perf_num, tid) */ /* * Status values for EVENT_STOP_THREAD * * 1-5 are the StgRun return values (from includes/rts/Constants.h): * * #define HeapOverflow 1 * #define StackOverflow 2 * #define ThreadYielding 3 * #define ThreadBlocked 4 * #define ThreadFinished 5 * #define ForeignCall 6 * #define BlockedOnMVar 7 * #define BlockedOnMVarRead 20 * NOTE: in GHC-7.8.2, this was 8, and following states shifted one up * #define BlockedOnBlackHole 8 * #define BlockedOnRead 9 * #define BlockedOnWrite 10 * #define BlockedOnDelay 11 * #define BlockedOnSTM 12 * #define BlockedOnDoProc 13 * NOTE: unused GUM states 8, 9 (here: 14,15) in rts/Constants.h * #define BlockedOnCCall -- not used (see ForeignCall) * #define BlockedOnCCall_NoUnblockExc -- not used (see ForeignCall) * #define BlockedOnMsgThrowTo 16 * NOTE: 16 because unused GUM states ignored in ghc-events lib * Otherwise it would be 18, following would be 19, 20 * TODO: verify the above is what GHC does (16/17 could be 18/19) * #define ThreadMigrating 17 * #define BlockedOnMsgGlobalise 18 * NOTE: not present in GHC. Mercury-Event? */ #define THREAD_SUSPENDED_FOREIGN_CALL 6 /* * Capset type values for EVENT_CAPSET_CREATE */ #define CAPSET_TYPE_CUSTOM 1 /* reserved for end-user applications */ #define CAPSET_TYPE_OSPROCESS 2 /* caps belong to the same OS process */ #define CAPSET_TYPE_CLOCKDOMAIN 3 /* caps share a local clock/time */ #ifndef EVENTLOG_CONSTANTS_ONLY typedef StgWord16 EventTypeNum; typedef StgWord64 EventTimestamp; /* in nanoseconds */ typedef StgWord32 EventThreadID; typedef StgWord16 EventCapNo; typedef StgWord16 EventPayloadSize; /* variable-size events */ typedef StgWord16 EventThreadStatus; /* status for EVENT_STOP_THREAD */ typedef StgWord32 EventCapsetID; typedef StgWord16 EventCapsetType; /* types for EVENT_CAPSET_CREATE */ typedef StgWord64 EventTaskId; /* for EVENT_TASK_* */ typedef StgWord64 EventKernelThreadId; /* for EVENT_TASK_CREATE */ typedef StgWord32 EventProcessID; typedef StgWord16 EventMachineID; typedef EventThreadID EventPortID; #endif #endif /* RTS_EVENTLOGFORMAT_H */ ghc-events-0.6.0/test/queens-ghc-6.12.1.eventlog0000644000000000000000000001653112676645645017307 0ustar0000000000000000hdrbhetbetb Create threadeteetb Run threadeteetb Stop threadeteetbThread runnableeteetb Migrate threadeteetb Run sparketeetb Steal sparketeetbShutdowneteetb Wakeup threadeteetb Starting GCeteetb Finished GCeteetb Request sequential GCeteetb Request parallel GCeteetbCreate spark threadeteetb Log messageeteetbStartupeteetb Block markereteetb User messageetehetehdredatb xNbh n0 ppXX!`dd ** * [X_@PP8$h$h $h %%%0%0%+x+| +| ,,,,,0,01T1T 1T 111(115Š77 7 7x7x7778U9:A@BB B CqCuC@C@C(D%PD)8 D- D- D- D- D E. E. E2 F0 F0F4F F FG>HG>H GB0 GFGJGJGJGMGMGMGMHHH PH$H<0 H IIJ8J J K K LMH Nj8 y XXX@!`ddx"" & [X_@P88$h$h $h %%x%%%+u+u +x ,,,,,0,01T1T 1T 111116 77 7 7x7`77786:":* :. :. :. :2p ;? ;C;C;C;G;G;G;K<8< <  < ===p=p=pAAϨ AӐ B͐ Bx Bx CqCu C C C Ea Ei Ei Ei Ei Emp FP F F F G. G. G2 G2G:`GUGUGYGYGYGYGҸH hH hH PHH H I& IIIpIpIXIIhM0 Nn  y 5 99@"& & [X_@PP8$h$P $P %%x%0%%+u+u +x ,,,,,0,01Q1Q 1Q 11p1115877 7 7x7x7778h8P8P888888pBBɨ Bɨ CqCuC@C@C(DEEhE' E' E' E+ E+ E. GM GM GQ GX H hH HH4` I" IJ J$xJ,HJ,HJ,HJ?JXJ@J(JPK K KKxPKKˆKpLLMh Oxghc-events-0.6.0/test/queens-ghc-6.12.1.eventlog.reference0000644000000000000000000004576513113376567021246 0ustar0000000000000000Event Types: 0: Create thread (size 8) 1: Run thread (size 8) 2: Stop thread (size 10) 3: Thread runnable (size 8) 4: Migrate thread (size 10) 5: Run spark (size 8) 6: Steal spark (size 10) 7: Shutdown (size 0) 8: Wakeup thread (size 10) 9: Starting GC (size 0) 10: Finished GC (size 0) 11: Request sequential GC (size 0) 12: Request parallel GC (size 0) 15: Create spark thread (size 8) 16: Log message (size variable) 17: Startup (size 0) 18: Block marker (size 14) 19: User message (size variable) Events: 106000: startup: 4 capabilities 431000: cap 3: creating thread 1 431000: cap 3: thread 1 is runnable 432000: cap 3: running thread 1 471000: cap 3: creating thread 2 471000: cap 3: thread 2 is runnable 471000: cap 3: stopping thread 1 (thread finished) 478000: cap 3: creating thread 3 479000: cap 3: thread 3 is runnable 517000: cap 3: running thread 2 580000: cap 3: stopping thread 2 (making a foreign call) 585000: cap 3: running thread 2 606000: cap 3: stopping thread 2 (making a foreign call) 612000: cap 3: running thread 3 667000: cap 3: stopping thread 3 (thread yielding) 668000: cap 3: thread 3 is runnable 668000: cap 3: running thread 3 834000: cap 3: stopping thread 3 (stack overflow) 839000: cap 3: running thread 3 1459000: cap 3: stopping thread 3 (heap overflow) 1460000: cap 3: requesting parallel GC 1470000: cap 0: starting GC 1473000: cap 1: starting GC 1473000: cap 2: starting GC 1474000: cap 3: starting GC 1631000: cap 3: finished GC 1632000: cap 0: finished GC 1632000: cap 1: finished GC 1632000: cap 2: finished GC 1633000: cap 3: running thread 3 1637000: cap 2: creating thread 4 1637000: cap 2: creating spark thread 4 1637000: cap 2: thread 4 is runnable 1637000: cap 2: running thread 4 1638000: cap 0: creating thread 5 1638000: cap 0: creating spark thread 5 1638000: cap 3: stopping thread 3 (thread yielding) 1638000: cap 3: thread 3 is runnable 1639000: cap 0: thread 5 is runnable 1639000: cap 0: running thread 5 1639000: cap 1: creating thread 6 1639000: cap 1: creating spark thread 6 1639000: cap 1: thread 6 is runnable 1639000: cap 3: running thread 3 1640000: cap 1: running thread 6 1642000: cap 2: stealing a spark from cap 3 1647000: cap 0: stealing a spark from cap 3 1647000: cap 1: stealing a spark from cap 3 1652000: cap 2: stopping thread 4 (thread yielding) 1653000: cap 2: thread 4 is runnable 1653000: cap 2: running thread 4 1663000: cap 0: stopping thread 5 (thread yielding) 1663000: cap 1: stopping thread 6 (thread yielding) 1664000: cap 0: thread 5 is runnable 1664000: cap 0: running thread 5 1664000: cap 1: thread 6 is runnable 1664000: cap 1: running thread 6 1672000: cap 2: stopping thread 4 (stack overflow) 1676000: cap 2: running thread 4 1684000: cap 0: stopping thread 5 (stack overflow) 1687000: cap 1: stopping thread 6 (stack overflow) 1688000: cap 0: running thread 5 1691000: cap 1: running thread 6 1974000: cap 3: stopping thread 3 (heap overflow) 1974000: cap 3: requesting parallel GC 1975000: cap 1: stopping thread 6 (thread yielding) 1975000: cap 1: thread 6 is runnable 1975000: cap 2: stopping thread 4 (thread yielding) 1976000: cap 1: starting GC 1976000: cap 2: thread 4 is runnable 1976000: cap 2: starting GC 1977000: cap 0: stopping thread 5 (thread yielding) 1977000: cap 0: thread 5 is runnable 1977000: cap 0: starting GC 1978000: cap 3: starting GC 2054000: cap 3: finished GC 2055000: cap 0: finished GC 2055000: cap 1: finished GC 2055000: cap 2: finished GC 2056000: cap 0: running thread 5 2056000: cap 1: running thread 6 2056000: cap 2: running thread 4 2056000: cap 3: running thread 3 2066000: cap 0: stopping thread 5 (thread yielding) 2066000: cap 0: thread 5 is runnable 2066000: cap 1: stopping thread 6 (thread yielding) 2066000: cap 2: stopping thread 4 (thread yielding) 2066000: cap 2: thread 4 is runnable 2066000: cap 3: stopping thread 3 (thread yielding) 2066000: cap 3: thread 3 is runnable 2067000: cap 0: running thread 5 2067000: cap 1: thread 6 is runnable 2067000: cap 1: running thread 6 2067000: cap 2: running thread 4 2067000: cap 3: running thread 3 2413000: cap 3: stopping thread 3 (heap overflow) 2414000: cap 3: requesting parallel GC 2417000: cap 0: stopping thread 5 (thread yielding) 2417000: cap 0: thread 5 is runnable 2417000: cap 0: starting GC 2417000: cap 1: stopping thread 6 (thread yielding) 2417000: cap 1: thread 6 is runnable 2417000: cap 1: starting GC 2417000: cap 2: stopping thread 4 (thread yielding) 2418000: cap 2: thread 4 is runnable 2418000: cap 2: starting GC 2419000: cap 3: starting GC 2457000: cap 3: finished GC 2458000: cap 0: finished GC 2458000: cap 0: running thread 5 2458000: cap 1: finished GC 2458000: cap 2: finished GC 2458000: cap 3: running thread 3 2459000: cap 1: running thread 6 2459000: cap 2: running thread 4 2462000: cap 0: stopping thread 5 (thread yielding) 2462000: cap 0: thread 5 is runnable 2462000: cap 2: stopping thread 4 (thread yielding) 2463000: cap 0: running thread 5 2463000: cap 1: stopping thread 6 (thread yielding) 2463000: cap 2: thread 4 is runnable 2463000: cap 2: running thread 4 2463000: cap 3: stopping thread 3 (thread yielding) 2463000: cap 3: thread 3 is runnable 2463000: cap 3: running thread 3 2464000: cap 1: thread 6 is runnable 2464000: cap 1: running thread 6 2573000: cap 3: stopping thread 3 (thread blocked) 2612000: cap 3: creating thread 7 2612000: cap 3: creating spark thread 7 2612000: cap 3: thread 7 is runnable 2613000: cap 3: running thread 7 2616000: cap 3: running a local spark 2629000: cap 3: stopping thread 7 (stack overflow) 2630000: cap 3: running thread 7 2845000: cap 3: stopping thread 7 (heap overflow) 2846000: cap 3: requesting parallel GC 2848000: cap 1: stopping thread 6 (thread yielding) 2848000: cap 1: thread 6 is runnable 2848000: cap 2: stopping thread 4 (thread yielding) 2848000: cap 2: thread 4 is runnable 2849000: cap 0: stopping thread 5 (thread yielding) 2849000: cap 1: starting GC 2849000: cap 2: starting GC 2850000: cap 0: thread 5 is runnable 2850000: cap 0: starting GC 2851000: cap 3: starting GC 2890000: cap 0: finished GC 2890000: cap 1: finished GC 2890000: cap 3: finished GC 2891000: cap 0: running thread 5 2891000: cap 1: running thread 6 2891000: cap 2: finished GC 2891000: cap 2: running thread 4 2891000: cap 3: running thread 7 2894000: cap 3: stopping thread 7 (thread yielding) 2895000: cap 0: stopping thread 5 (thread yielding) 2895000: cap 1: stopping thread 6 (thread yielding) 2895000: cap 2: stopping thread 4 (thread yielding) 2895000: cap 3: thread 7 is runnable 2895000: cap 3: running thread 7 2896000: cap 0: thread 5 is runnable 2896000: cap 0: running thread 5 2896000: cap 1: thread 6 is runnable 2896000: cap 1: running thread 6 2896000: cap 2: thread 4 is runnable 2896000: cap 2: running thread 4 3231000: cap 3: stopping thread 7 (heap overflow) 3231000: cap 3: requesting parallel GC 3232000: cap 2: stopping thread 4 (thread yielding) 3232000: cap 2: thread 4 is runnable 3232000: cap 2: starting GC 3233000: cap 0: stopping thread 5 (thread yielding) 3233000: cap 0: thread 5 is runnable 3233000: cap 0: starting GC 3233000: cap 1: stopping thread 6 (thread yielding) 3233000: cap 1: thread 6 is runnable 3233000: cap 1: starting GC 3234000: cap 3: starting GC 3268000: cap 3: finished GC 3269000: cap 0: finished GC 3269000: cap 0: running thread 5 3269000: cap 1: finished GC 3269000: cap 1: running thread 6 3269000: cap 2: finished GC 3269000: cap 3: running thread 7 3270000: cap 2: running thread 4 3273000: cap 0: stopping thread 5 (thread yielding) 3274000: cap 0: thread 5 is runnable 3274000: cap 0: running thread 5 3274000: cap 2: stopping thread 4 (thread yielding) 3274000: cap 2: thread 4 is runnable 3274000: cap 3: stopping thread 7 (thread yielding) 3274000: cap 3: thread 7 is runnable 3275000: cap 1: stopping thread 6 (thread yielding) 3275000: cap 1: thread 6 is runnable 3275000: cap 1: running thread 6 3275000: cap 2: running thread 4 3275000: cap 3: running thread 7 3507000: cap 2: stealing a spark from cap 3 3524000: cap 0: stealing a spark from cap 2 3540000: cap 1: stealing a spark from cap 0 3607000: cap 3: stopping thread 7 (heap overflow) 3607000: cap 3: requesting parallel GC 3609000: cap 0: stopping thread 5 (thread yielding) 3609000: cap 0: thread 5 is runnable 3609000: cap 0: starting GC 3609000: cap 1: stopping thread 6 (thread yielding) 3609000: cap 1: thread 6 is runnable 3609000: cap 1: starting GC 3609000: cap 2: stopping thread 4 (thread yielding) 3609000: cap 2: thread 4 is runnable 3610000: cap 2: starting GC 3610000: cap 3: thread 3 is runnable 3610000: cap 3: waking up thread 3 on cap 3 3611000: cap 3: starting GC 3642000: cap 3: finished GC 3643000: cap 0: finished GC 3643000: cap 0: running thread 5 3643000: cap 1: finished GC 3643000: cap 2: finished GC 3643000: cap 2: running thread 4 3644000: cap 1: running thread 6 3644000: cap 3: running thread 7 3647000: cap 0: stopping thread 5 (thread yielding) 3647000: cap 2: stopping thread 4 (thread yielding) 3647000: cap 2: thread 4 is runnable 3648000: cap 0: thread 5 is runnable 3648000: cap 0: running thread 5 3648000: cap 1: stopping thread 6 (thread yielding) 3648000: cap 1: thread 6 is runnable 3648000: cap 1: running thread 6 3648000: cap 2: running thread 4 3648000: cap 3: stopping thread 7 (thread yielding) 3648000: cap 3: thread 7 is runnable 3662000: cap 3: running thread 3 3666000: cap 3: stopping thread 3 (thread blocked) 3668000: cap 3: running thread 7 3684000: cap 1: stealing a spark from cap 2 3692000: cap 0: stealing a spark from cap 1 3729000: cap 2: stopping thread 4 (thread blocked) 3730000: cap 2: creating thread 8 3730000: cap 2: creating spark thread 8 3731000: cap 2: thread 8 is runnable 3731000: cap 2: running thread 8 3731000: cap 2: running a local spark 3770000: cap 0: stealing a spark from cap 1 3810000: cap 1: stopping thread 6 (thread blocked) 3812000: cap 1: creating thread 9 3813000: cap 1: creating spark thread 9 3813000: cap 1: thread 9 is runnable 3813000: cap 1: running thread 9 3814000: cap 1: stealing a spark from cap 2 3865000: cap 0: stealing a spark from cap 1 3883000: cap 1: stopping thread 9 (thread blocked) 3884000: cap 1: thread 6 is runnable 3884000: cap 1: waking up thread 6 on cap 1 3884000: cap 1: running thread 6 3885000: cap 1: stopping thread 6 (thread yielding) 3885000: cap 1: thread 6 is runnable 3885000: cap 1: running thread 6 3886000: cap 1: running a local spark 3955000: cap 0: stealing a spark from cap 1 3985000: cap 2: stopping thread 8 (heap overflow) 3986000: cap 2: requesting parallel GC 3987000: cap 0: stopping thread 5 (heap overflow) 3987000: cap 0: thread 5 is runnable 3987000: cap 0: starting GC 3987000: cap 1: stealing a spark from cap 3 3988000: cap 1: stopping thread 6 (thread yielding) 3988000: cap 1: thread 6 is runnable 3988000: cap 1: starting GC 3988000: cap 3: stopping thread 7 (thread yielding) 3988000: cap 3: thread 7 is runnable 3988000: cap 3: starting GC 3989000: cap 2: waking up thread 9 on cap 1 3990000: cap 2: thread 4 is runnable 3990000: cap 2: waking up thread 4 on cap 2 3990000: cap 2: starting GC 4032000: cap 0: finished GC 4032000: cap 2: finished GC 4033000: cap 0: running thread 5 4033000: cap 1: finished GC 4033000: cap 1: running thread 6 4033000: cap 2: running thread 8 4033000: cap 3: finished GC 4033000: cap 3: running thread 7 4037000: cap 0: stopping thread 5 (thread yielding) 4037000: cap 0: thread 5 is runnable 4037000: cap 0: running thread 5 4037000: cap 3: stopping thread 7 (thread yielding) 4037000: cap 3: thread 7 is runnable 4037000: cap 3: running thread 7 4038000: cap 1: stopping thread 6 (thread yielding) 4038000: cap 1: thread 6 is runnable 4038000: cap 1: running thread 6 4038000: cap 2: stopping thread 8 (thread yielding) 4038000: cap 2: thread 8 is runnable 4038000: cap 2: running thread 4 4041000: cap 2: stopping thread 4 (thread blocked) 4041000: cap 2: running thread 8 4053000: cap 2: stealing a spark from cap 1 4064000: cap 0: stealing a spark from cap 1 4102000: cap 3: running a local spark 4296000: cap 0: stealing a spark from cap 1 4308000: cap 2: stealing a spark from cap 0 4312000: cap 1: stopping thread 6 (thread blocked) 4313000: cap 1: running thread 9 4314000: cap 1: running a local spark 4375000: cap 2: stopping thread 8 (heap overflow) 4375000: cap 2: requesting parallel GC 4376000: cap 0: stopping thread 5 (heap overflow) 4376000: cap 0: thread 5 is runnable 4376000: cap 0: starting GC 4376000: cap 3: stopping thread 7 (thread yielding) 4377000: cap 3: thread 7 is runnable 4377000: cap 3: starting GC 4378000: cap 1: stopping thread 9 (thread yielding) 4379000: cap 1: thread 9 is runnable 4379000: cap 1: starting GC 4380000: cap 2: thread 4 is runnable 4380000: cap 2: waking up thread 4 on cap 2 4380000: cap 2: waking up thread 3 on cap 3 4380000: cap 2: starting GC 4419000: cap 2: finished GC 4420000: cap 0: finished GC 4420000: cap 1: finished GC 4420000: cap 3: finished GC 4421000: cap 0: running thread 5 4421000: cap 1: running thread 9 4421000: cap 2: running thread 8 4421000: cap 3: running thread 7 4424000: cap 0: stopping thread 5 (thread yielding) 4424000: cap 0: thread 5 is runnable 4424000: cap 3: stopping thread 7 (thread yielding) 4424000: cap 3: thread 7 is runnable 4425000: cap 0: running thread 5 4425000: cap 2: stopping thread 8 (thread yielding) 4425000: cap 2: thread 8 is runnable 4425000: cap 2: running thread 4 4425000: cap 3: running thread 7 4426000: cap 1: stopping thread 9 (thread yielding) 4426000: cap 1: thread 9 is runnable 4426000: cap 1: running thread 9 4428000: cap 2: stopping thread 4 (thread finished) 4428000: cap 2: running thread 8 4440000: cap 2: stealing a spark from cap 0 4466000: cap 0: stopping thread 5 (thread blocked) 4467000: cap 0: creating thread 10 4468000: cap 0: creating spark thread 10 4468000: cap 0: thread 10 is runnable 4468000: cap 0: running thread 10 4468000: cap 0: running a local spark 4497000: cap 2: stealing a spark from cap 1 4512000: cap 0: stealing a spark from cap 3 4515000: cap 3: stopping thread 7 (thread blocked) 4527000: cap 3: running thread 3 4529000: cap 3: stopping thread 3 (thread blocked) 4532000: cap 3: waking up thread 5 on cap 0 4532000: cap 3: creating thread 11 4532000: cap 3: creating spark thread 11 4533000: cap 3: thread 11 is runnable 4533000: cap 3: running thread 11 4534000: cap 0: stopping thread 10 (thread yielding) 4534000: cap 0: thread 10 is runnable 4534000: cap 3: running a local spark 4535000: cap 0: running thread 10 4547000: cap 1: stopping thread 9 (thread blocked) 4549000: cap 1: creating thread 12 4549000: cap 1: creating spark thread 12 4549000: cap 1: thread 12 is runnable 4549000: cap 1: running thread 12 4550000: cap 1: stealing a spark from cap 0 4562000: cap 2: stealing a spark from cap 0 4595000: cap 2: stealing a spark from cap 3 4600000: cap 0: stopping thread 10 (thread blocked) 4600000: cap 0: running thread 5 4601000: cap 0: stealing a spark from cap 2 4608000: cap 1: stealing a spark from cap 2 4625000: cap 2: stopping thread 8 (thread blocked) 4626000: cap 2: waking up thread 10 on cap 0 4627000: cap 2: waking up thread 9 on cap 1 4627000: cap 2: waking up thread 6 on cap 1 4628000: cap 0: stopping thread 5 (thread yielding) 4628000: cap 0: thread 5 is runnable 4628000: cap 2: creating thread 13 4628000: cap 2: creating spark thread 13 4628000: cap 2: thread 13 is runnable 4629000: cap 0: running thread 5 4629000: cap 1: stopping thread 12 (thread yielding) 4629000: cap 1: thread 12 is runnable 4629000: cap 1: running thread 12 4629000: cap 2: running thread 13 4629000: cap 2: running a local spark 4665000: cap 1: stopping thread 12 (thread finished) 4665000: cap 1: running thread 9 4666000: cap 1: stopping thread 9 (thread finished) 4666000: cap 1: running thread 6 4668000: cap 1: stealing a spark from cap 3 4669000: cap 0: stopping thread 5 (thread finished) 4669000: cap 0: running thread 10 4670000: cap 0: stopping thread 10 (thread finished) 4671000: cap 0: waking up thread 8 on cap 2 4672000: cap 0: waking up thread 3 on cap 3 4672000: cap 0: waking up thread 7 on cap 3 4672000: cap 0: creating thread 14 4673000: cap 0: creating spark thread 14 4673000: cap 0: thread 14 is runnable 4673000: cap 0: running thread 14 4673000: cap 0: stealing a spark from cap 1 4673000: cap 3: stopping thread 11 (thread yielding) 4673000: cap 3: thread 11 is runnable 4674000: cap 2: stopping thread 13 (thread yielding) 4674000: cap 2: thread 13 is runnable 4674000: cap 3: running thread 11 4675000: cap 1: stopping thread 6 (thread blocked) 4675000: cap 1: creating thread 15 4675000: cap 2: running thread 13 4676000: cap 1: creating spark thread 15 4676000: cap 1: thread 15 is runnable 4676000: cap 1: running thread 15 4676000: cap 1: running a local spark 4685000: cap 2: stopping thread 13 (thread finished) 4686000: cap 2: running thread 8 4687000: cap 2: stealing a spark from cap 1 4707000: cap 1: running a local spark 4711000: cap 3: stopping thread 11 (thread finished) 4719000: cap 0: stopping thread 14 (thread finished) 4719000: cap 0: waking up thread 6 on cap 1 4721000: cap 1: stopping thread 15 (thread yielding) 4721000: cap 1: thread 15 is runnable 4721000: cap 3: running thread 3 4722000: cap 0: thread 6 is runnable 4722000: cap 1: migrating thread 6 to cap 0 4724000: cap 3: stopping thread 3 (thread blocked) 4725000: cap 1: running thread 15 4726000: cap 3: running thread 7 4728000: cap 0: running thread 6 4728000: cap 2: stopping thread 8 (thread finished) 4732000: cap 3: stopping thread 7 (thread blocked) 4734000: cap 0: stopping thread 6 (thread blocked) 4778000: cap 1: stopping thread 15 (heap overflow) 4779000: cap 1: requesting parallel GC 4784000: cap 0: starting GC 4790000: cap 2: starting GC 4793000: cap 3: starting GC 4794000: cap 1: starting GC 4833000: cap 1: finished GC 4834000: cap 0: finished GC 4834000: cap 1: running thread 15 4834000: cap 2: finished GC 4834000: cap 3: finished GC 4838000: cap 1: stopping thread 15 (thread yielding) 4838000: cap 1: thread 15 is runnable 4839000: cap 1: running thread 15 4846000: cap 0: thread 6 is runnable 4846000: cap 1: stopping thread 15 (thread finished) 4849000: cap 1: waking up thread 6 on cap 0 4851000: cap 0: running thread 6 4852000: cap 0: stopping thread 6 (thread finished) 4853000: cap 3: thread 7 is runnable 4857000: cap 0: waking up thread 7 on cap 3 4859000: cap 3: running thread 7 4861000: cap 3: stopping thread 7 (thread finished) 4861000: cap 3: thread 3 is runnable 4861000: cap 3: waking up thread 3 on cap 3 4866000: cap 3: running thread 3 4903000: cap 3: stopping thread 3 (making a foreign call) 4904000: cap 3: running thread 3 4905000: cap 3: stopping thread 3 (making a foreign call) 4914000: cap 3: running thread 3 4918000: cap 3: stopping thread 3 (thread yielding) 4918000: cap 3: thread 3 is runnable 4919000: cap 3: running thread 3 4946000: cap 3: stopping thread 3 (thread finished) 4962000: cap 3: running thread 2 4964000: cap 0: requesting sequential GC 4965000: cap 3: stopping thread 2 (thread yielding) 4966000: cap 3: thread 2 is runnable 4972000: cap 0: starting GC 5026000: cap 0: finished GC 5037000: cap 3: running thread 2 5037000: cap 3: stopping thread 2 (thread finished) 5053000: cap 0: shutting down 5054000: cap 1: shutting down 5104000: cap 2: shutting down 5105000: cap 3: shutting down ghc-events-0.6.0/test/queens-ghc-7.0.2.eventlog0000644000000000000000000003112312676645645017220 0ustar0000000000000000hdrbhetbetb Create threadeteetb Run threadeteetb Stop threadeteetbThread runnableeteetbMigrate threadeteetb Run sparketeetb Steal sparketeetbShutdowneteetb Wakeup threadeteetb Starting GCeteetb Finished GCeteetb Request sequential GCeteetb Request parallel GCeteetbCreate spark threadeteetb Log messageeteetbStartupeteetb Block markereteetb User messageeteetbGC idleeteetb GC workingeteetbGC doneetehetehdredatb80 { H @ A 0` 9T`T`T`XHohhh( aX 00#?p#CX #CX#r8#0# ### # #\{\ \\x\ՠ\ ]/x]3`]N]R]Raa aaab bD@bH(bWbWb[eHeHe0e0e0ef(f( f(fhf`fH g5g5gIhgIhgXggghhhhhh/h/h7h; h; h; h; h? h h hhh i` i`iHiHiHiHi0i0iii i ijj j p jj0 jn jn k kX kX kXkXk@ kH kH k0lpl/Pm m\m\mcmg mwp mwp mwp nJ`nJ`nJ` nJ`nNHnR0nPnPn8oc ogrr rhX (( 8 `H--1 ###''ˑHˑH˕0˕0˕0    ΞΞ ΞHH CCWW[jְxPPTTXXXXXX\ٛJ@ ۇ8 @` <```dwhhh( e@ 0θθҠ#7#; #;#b## ##h# # #)) )\\\ ]3`]3`]F]F]Jaa aaa b bH(bH(bWb[b[epeHeHef@f( f(fPff` g5g9gEgIhgIhg|0g g g g g g g ggg h h h hjj0jn jn jr jr ju kx k` k`lXlhm m\m` mo mo m{X nV nV nVnZnZ nh nhnn n n n n oL0 oP oP og og okp okp ooX pp p p pp ppPpPp8p8p8p p*p*p*p.p2qq qrrΠ pp< OO SPz HH))-ٰ NNRRR͠͠͠ΞΞ ΞJhu`0 zzԆ@Ԋ(Ԋ(ȨȨȨȨ̐Հ@Հ@Հ@Հ@Մ(֩ ֩ ְ0PP"8"8-(  (H <PxPxT`T`g`0 ]p 0θ#?p#?p #?p#f#H# ##h# # #%f8%f8%n)H )0 \\x\\\\\\\\\\\ ]/x]3`]J]N]Na a apahab b b b b b bxbxbxbx bD@bH(b[b[b[eefX f@ ffhff`fHfHfHf0f0f0f0f0f0 g5g9gIhgIhgMPg|0g|0ggPg8h/h3h3h(h(i`iHiHi ij pj pj pkpkXkѐ kѐ k0lplmmmmmm!m!m!m!m! mX0m`momomwpoL0oP oP oP oT oW p p p p p pP pP p8p8p p#p#p# p&p&p&q q r|rr0hhhhhhPPP *hK0 K0  z ~~~~~~ɁɁɁ `H)))  'ˍ`ˑHјFJΖ Ζ 2aqxH000000 vzԆ@Ԋ(Ԋ(ԹȨ̐xp|X, , , ~(֍ <Jhߠtt`٠٠ q x x H  H ^ bx ``H000 9<LPxPxH 0  hhhPPP H0θθθ#3 #3 #CX############ #ߘ#h###%j %j %n%n%%%׀%h)) )\`\\ ]3`]7H]N]N]Raa aaްb b bH(bLbWbWbWeeeeef(f( ff8fxfH g9ghgt`gpgggiiiiik`k` k`lmm m` rxr0rʸ ,888888x((/OO O3z z / /iϐC z~pԑԑԑԑԕ(8COH֙֝h֝h֩ 111155M0ݸݸ؉ ؼ` 0 0ughc-events-0.6.0/test/queens-ghc-7.0.2.eventlog.reference0000644000000000000000000010214713113376567021151 0ustar0000000000000000Event Types: 0: Create thread (size 4) 1: Run thread (size 4) 2: Stop thread (size 6) 3: Thread runnable (size 4) 4: Migrate thread (size 6) 5: Run spark (size 4) 6: Steal spark (size 6) 7: Shutdown (size 0) 8: Wakeup thread (size 6) 9: Starting GC (size 0) 10: Finished GC (size 0) 11: Request sequential GC (size 0) 12: Request parallel GC (size 0) 15: Create spark thread (size 4) 16: Log message (size variable) 17: Startup (size 2) 18: Block marker (size 14) 19: User message (size variable) 20: GC idle (size 0) 21: GC working (size 0) 22: GC done (size 0) Events: 115000: startup: 4 capabilities 430000: cap 3: creating thread 1 430000: cap 3: thread 1 is runnable 433000: cap 3: running thread 1 512000: cap 3: stopping thread 1 (making a foreign call) 513000: cap 3: running thread 1 516000: cap 3: stopping thread 1 (making a foreign call) 517000: cap 3: running thread 1 554000: cap 3: creating thread 2 554000: cap 3: thread 2 is runnable 572000: cap 3: stopping thread 1 (thread finished) 580000: cap 3: creating thread 3 580000: cap 3: thread 3 is runnable 619000: cap 3: running thread 2 635000: cap 3: stopping thread 2 (thread yielding) 635000: cap 3: thread 2 is runnable 637000: cap 0: thread 2 is runnable 637000: cap 3: migrating thread 2 to cap 0 648000: cap 0: running thread 2 655000: cap 3: running thread 3 672000: cap 0: stopping thread 2 (making a foreign call) 893000: cap 3: stopping thread 3 (stack overflow) 897000: cap 3: running thread 3 1466000: cap 3: stopping thread 3 (heap overflow) 1467000: cap 3: requesting parallel GC 1476000: cap 0: starting GC 1480000: cap 1: starting GC 1481000: cap 2: starting GC 1483000: cap 3: starting GC 1503000: cap 1: GC working 1503000: cap 2: GC working 1506000: cap 2: GC idle 1507000: cap 1: GC idle 1509000: cap 0: GC working 1514000: cap 3: GC working 1566000: cap 0: GC idle 1628000: cap 0: GC done 1628000: cap 1: GC done 1628000: cap 3: GC idle 1628000: cap 3: GC done 1629000: cap 2: GC done 1629000: cap 3: GC working 1630000: cap 3: GC idle 1630000: cap 3: GC done 1630000: cap 3: GC working 1631000: cap 3: GC idle 1631000: cap 3: GC done 1631000: cap 3: GC working 1631000: cap 3: GC idle 1632000: cap 3: GC done 1653000: cap 0: finished GC 1653000: cap 3: finished GC 1654000: cap 1: finished GC 1654000: cap 2: finished GC 1654000: cap 3: running thread 3 1658000: cap 3: stopping thread 3 (thread yielding) 1659000: cap 2: creating thread 4 1659000: cap 2: creating spark thread 4 1659000: cap 3: thread 3 is runnable 1659000: cap 3: running thread 3 1660000: cap 0: creating thread 5 1660000: cap 0: creating spark thread 5 1660000: cap 0: thread 5 is runnable 1660000: cap 2: thread 4 is runnable 1660000: cap 2: running thread 4 1661000: cap 0: running thread 5 1663000: cap 1: creating thread 6 1663000: cap 1: creating spark thread 6 1663000: cap 1: thread 6 is runnable 1664000: cap 1: running thread 6 1665000: cap 2: stealing a spark from cap 3 1667000: cap 0: stealing a spark from cap 3 1669000: cap 1: stealing a spark from cap 3 1675000: cap 2: stopping thread 4 (thread yielding) 1675000: cap 2: thread 4 is runnable 1676000: cap 2: running thread 4 1681000: cap 0: stopping thread 5 (thread yielding) 1681000: cap 0: thread 5 is runnable 1681000: cap 0: running thread 5 1681000: cap 1: stopping thread 6 (thread yielding) 1681000: cap 1: thread 6 is runnable 1681000: cap 1: running thread 6 1692000: cap 2: stopping thread 4 (stack overflow) 1694000: cap 2: running thread 4 1699000: cap 0: stopping thread 5 (stack overflow) 1700000: cap 1: stopping thread 6 (stack overflow) 1705000: cap 0: running thread 5 1705000: cap 1: running thread 6 1949000: cap 3: stopping thread 3 (heap overflow) 1950000: cap 3: requesting parallel GC 1951000: cap 0: stopping thread 5 (thread yielding) 1951000: cap 0: thread 5 is runnable 1951000: cap 0: starting GC 1951000: cap 1: stopping thread 6 (thread yielding) 1951000: cap 1: thread 6 is runnable 1951000: cap 1: starting GC 1951000: cap 2: stopping thread 4 (thread yielding) 1951000: cap 2: thread 4 is runnable 1952000: cap 2: starting GC 1953000: cap 3: starting GC 1962000: cap 1: GC working 1963000: cap 2: GC working 1964000: cap 0: GC working 1969000: cap 3: GC working 1990000: cap 2: GC idle 1991000: cap 0: GC idle 1992000: cap 1: GC idle 1999000: cap 0: GC done 1999000: cap 1: GC done 1999000: cap 2: GC done 1999000: cap 3: GC idle 1999000: cap 3: GC done 2000000: cap 3: GC working 2000000: cap 3: GC idle 2000000: cap 3: GC done 2000000: cap 3: GC working 2001000: cap 3: GC idle 2001000: cap 3: GC done 2002000: cap 3: GC working 2002000: cap 3: GC idle 2002000: cap 3: GC done 2013000: cap 3: finished GC 2014000: cap 0: finished GC 2014000: cap 0: running thread 5 2014000: cap 1: finished GC 2014000: cap 2: finished GC 2014000: cap 3: running thread 3 2015000: cap 1: running thread 6 2015000: cap 2: running thread 4 2017000: cap 0: stopping thread 5 (thread yielding) 2018000: cap 0: thread 5 is runnable 2018000: cap 0: running thread 5 2018000: cap 2: stopping thread 4 (thread yielding) 2018000: cap 2: thread 4 is runnable 2019000: cap 1: stopping thread 6 (thread yielding) 2019000: cap 1: thread 6 is runnable 2019000: cap 2: running thread 4 2019000: cap 3: stopping thread 3 (thread yielding) 2019000: cap 3: thread 3 is runnable 2019000: cap 3: running thread 3 2020000: cap 1: running thread 6 2307000: cap 3: stopping thread 3 (heap overflow) 2307000: cap 3: requesting parallel GC 2308000: cap 1: stopping thread 6 (thread yielding) 2309000: cap 1: thread 6 is runnable 2309000: cap 1: starting GC 2310000: cap 0: stopping thread 5 (thread yielding) 2310000: cap 2: stopping thread 4 (thread yielding) 2310000: cap 2: thread 4 is runnable 2310000: cap 2: starting GC 2311000: cap 0: thread 5 is runnable 2311000: cap 0: starting GC 2311000: cap 3: starting GC 2319000: cap 1: GC working 2320000: cap 2: GC working 2323000: cap 0: GC working 2327000: cap 3: GC working 2333000: cap 2: GC idle 2334000: cap 0: GC idle 2335000: cap 3: GC idle 2336000: cap 0: GC done 2336000: cap 1: GC idle 2336000: cap 1: GC done 2336000: cap 2: GC done 2336000: cap 3: GC done 2337000: cap 3: GC working 2337000: cap 3: GC idle 2337000: cap 3: GC done 2337000: cap 3: GC working 2337000: cap 3: GC idle 2337000: cap 3: GC done 2338000: cap 3: GC working 2338000: cap 3: GC idle 2338000: cap 3: GC done 2351000: cap 3: finished GC 2352000: cap 0: finished GC 2352000: cap 0: running thread 5 2352000: cap 1: finished GC 2352000: cap 2: finished GC 2353000: cap 1: running thread 6 2353000: cap 2: running thread 4 2353000: cap 3: running thread 3 2356000: cap 0: stopping thread 5 (thread yielding) 2356000: cap 0: thread 5 is runnable 2356000: cap 1: stopping thread 6 (thread yielding) 2356000: cap 1: thread 6 is runnable 2356000: cap 2: stopping thread 4 (thread yielding) 2356000: cap 2: thread 4 is runnable 2357000: cap 0: running thread 5 2357000: cap 1: running thread 6 2357000: cap 2: running thread 4 2357000: cap 3: stopping thread 3 (thread yielding) 2357000: cap 3: thread 3 is runnable 2357000: cap 3: running thread 3 2451000: cap 2: stopping thread 4 (thread yielding) 2451000: cap 2: thread 4 is runnable 2452000: cap 3: stopping thread 3 (thread blocked) 2452000: cap 3: creating thread 7 2453000: cap 2: running thread 4 2453000: cap 3: creating spark thread 7 2453000: cap 3: thread 7 is runnable 2463000: cap 3: running thread 7 2465000: cap 3: running a local spark 2480000: cap 3: stopping thread 7 (stack overflow) 2481000: cap 3: running thread 7 2749000: cap 2: stopping thread 4 (heap overflow) 2750000: cap 2: requesting parallel GC 2751000: cap 1: stopping thread 6 (thread yielding) 2751000: cap 3: stopping thread 7 (thread yielding) 2752000: cap 1: thread 6 is runnable 2752000: cap 1: starting GC 2752000: cap 3: thread 7 is runnable 2752000: cap 3: starting GC 6061000: cap 0: stopping thread 5 (thread yielding) 6062000: cap 0: thread 5 is runnable 6062000: cap 0: starting GC 6063000: cap 2: starting GC 6074000: cap 1: GC working 6075000: cap 0: GC working 6075000: cap 2: GC working 6076000: cap 3: GC working 6079000: cap 2: GC idle 6082000: cap 1: GC idle 6084000: cap 0: GC idle 6090000: cap 0: GC done 6090000: cap 1: GC done 6090000: cap 2: GC done 6090000: cap 3: GC idle 6090000: cap 3: GC done 6091000: cap 2: GC working 6091000: cap 2: GC idle 6091000: cap 2: GC done 6091000: cap 2: GC working 6091000: cap 2: GC idle 6091000: cap 2: GC done 6092000: cap 2: GC working 6092000: cap 2: GC idle 6092000: cap 2: GC done 6107000: cap 0: finished GC 6107000: cap 2: finished GC 6108000: cap 0: running thread 5 6108000: cap 1: finished GC 6108000: cap 1: running thread 6 6108000: cap 2: running thread 4 6108000: cap 3: finished GC 6109000: cap 3: running thread 7 6113000: cap 1: stopping thread 6 (thread yielding) 6113000: cap 1: thread 6 is runnable 6114000: cap 1: running thread 6 6114000: cap 2: stopping thread 4 (thread yielding) 6115000: cap 0: stopping thread 5 (thread yielding) 6115000: cap 2: thread 4 is runnable 6115000: cap 2: running thread 4 6115000: cap 3: stopping thread 7 (thread yielding) 6115000: cap 3: thread 7 is runnable 6116000: cap 0: thread 5 is runnable 6116000: cap 0: running thread 5 6116000: cap 3: running thread 7 6403000: cap 2: stopping thread 4 (heap overflow) 6403000: cap 2: requesting parallel GC 6404000: cap 0: stopping thread 5 (thread yielding) 6404000: cap 0: thread 5 is runnable 6404000: cap 1: stopping thread 6 (heap overflow) 6404000: cap 1: thread 6 is runnable 6404000: cap 3: stopping thread 7 (thread yielding) 6405000: cap 0: starting GC 6405000: cap 1: starting GC 6405000: cap 3: thread 7 is runnable 6405000: cap 3: starting GC 6406000: cap 2: starting GC 6414000: cap 3: GC working 6415000: cap 0: GC working 6415000: cap 1: GC working 6417000: cap 2: GC working 6420000: cap 1: GC idle 6421000: cap 0: GC idle 6422000: cap 2: GC idle 6425000: cap 0: GC done 6425000: cap 1: GC done 6425000: cap 2: GC done 6425000: cap 3: GC idle 6425000: cap 3: GC done 6426000: cap 2: GC working 6426000: cap 2: GC idle 6426000: cap 2: GC done 6426000: cap 2: GC working 6426000: cap 2: GC idle 6427000: cap 2: GC done 6427000: cap 2: GC working 6427000: cap 2: GC idle 6427000: cap 2: GC done 6440000: cap 0: finished GC 6440000: cap 2: finished GC 6441000: cap 0: running thread 5 6441000: cap 1: finished GC 6441000: cap 1: running thread 6 6441000: cap 2: running thread 4 6441000: cap 3: finished GC 6442000: cap 3: running thread 7 6445000: cap 0: stopping thread 5 (thread yielding) 6445000: cap 0: thread 5 is runnable 6445000: cap 1: stopping thread 6 (thread yielding) 6445000: cap 3: stopping thread 7 (thread yielding) 6445000: cap 3: thread 7 is runnable 6445000: cap 3: running thread 7 6446000: cap 0: running thread 5 6446000: cap 1: thread 6 is runnable 6446000: cap 1: running thread 6 6446000: cap 2: stopping thread 4 (thread yielding) 6446000: cap 2: thread 4 is runnable 6446000: cap 2: running thread 4 6648000: cap 1: stealing a spark from cap 0 6653000: cap 0: stopping thread 5 (thread blocked) 6653000: cap 0: creating thread 8 6653000: cap 1: stopping thread 6 (thread yielding) 6653000: cap 1: thread 6 is runnable 6654000: cap 0: creating spark thread 8 6654000: cap 0: thread 8 is runnable 6654000: cap 0: running thread 8 6655000: cap 0: running a local spark 6655000: cap 1: running thread 6 6656000: cap 2: waking up thread 3 on cap 3 6658000: cap 2: stealing a spark from cap 1 6658000: cap 3: stopping thread 7 (thread yielding) 6658000: cap 3: thread 7 is runnable 6659000: cap 3: waking up thread 3 on cap 3 6659000: cap 3: thread 3 is runnable 6660000: cap 3: running thread 7 6727000: cap 2: stopping thread 4 (heap overflow) 6728000: cap 1: stopping thread 6 (thread yielding) 6728000: cap 2: requesting parallel GC 6729000: cap 0: stopping thread 8 (thread yielding) 6729000: cap 0: thread 8 is runnable 6729000: cap 0: starting GC 6729000: cap 1: thread 6 is runnable 6729000: cap 1: starting GC 6729000: cap 3: stopping thread 7 (thread yielding) 6729000: cap 3: thread 7 is runnable 6730000: cap 2: starting GC 6730000: cap 3: starting GC 6737000: cap 0: GC working 6737000: cap 2: GC working 6738000: cap 1: GC working 6739000: cap 3: GC working 6741000: cap 2: GC idle 6744000: cap 1: GC idle 6747000: cap 3: GC idle 6748000: cap 0: GC idle 6748000: cap 1: GC done 6748000: cap 2: GC done 6749000: cap 0: GC done 6749000: cap 2: GC working 6749000: cap 2: GC idle 6749000: cap 2: GC done 6749000: cap 3: GC done 6750000: cap 2: GC working 6750000: cap 2: GC idle 6750000: cap 2: GC done 6750000: cap 2: GC working 6750000: cap 2: GC idle 6750000: cap 2: GC done 6764000: cap 0: finished GC 6764000: cap 0: running thread 8 6764000: cap 1: finished GC 6764000: cap 2: finished GC 6765000: cap 1: running thread 6 6765000: cap 2: running thread 4 6765000: cap 3: finished GC 6768000: cap 1: stopping thread 6 (thread yielding) 6769000: cap 0: stopping thread 8 (thread yielding) 6769000: cap 0: thread 8 is runnable 6769000: cap 1: thread 6 is runnable 6769000: cap 1: running thread 6 6769000: cap 2: stopping thread 4 (thread yielding) 6769000: cap 2: thread 4 is runnable 6770000: cap 2: running thread 4 6777000: cap 3: running thread 3 6780000: cap 3: stopping thread 3 (thread blocked) 6782000: cap 1: stopping thread 6 (thread blocked) 6782000: cap 2: stopping thread 4 (thread yielding) 6782000: cap 2: thread 4 is runnable 6784000: cap 1: creating thread 9 6784000: cap 1: creating spark thread 9 6784000: cap 2: running thread 4 6785000: cap 1: thread 9 is runnable 6785000: cap 1: running thread 9 6786000: cap 1: stealing a spark from cap 0 6790000: cap 3: running thread 7 6791000: cap 0: running thread 8 6794000: cap 3: stopping thread 7 (thread yielding) 6794000: cap 3: thread 7 is runnable 6795000: cap 0: stopping thread 8 (thread yielding) 6795000: cap 0: thread 8 is runnable 6795000: cap 3: running thread 7 6796000: cap 0: running thread 8 6802000: cap 2: waking up thread 6 on cap 1 6803000: cap 2: stealing a spark from cap 0 6804000: cap 1: stopping thread 9 (thread yielding) 6804000: cap 1: thread 9 is runnable 6805000: cap 1: waking up thread 6 on cap 1 6805000: cap 1: thread 6 is runnable 6805000: cap 1: running thread 9 6818000: cap 1: stopping thread 9 (thread finished) 6819000: cap 1: running thread 6 6819000: cap 1: waking up thread 5 on cap 0 6820000: cap 0: stopping thread 8 (thread yielding) 6820000: cap 1: stealing a spark from cap 3 6821000: cap 0: thread 8 is runnable 6821000: cap 0: waking up thread 5 on cap 0 6821000: cap 0: thread 5 is runnable 6821000: cap 0: running thread 8 6828000: cap 0: stopping thread 8 (thread blocked) 6828000: cap 0: running thread 5 6828000: cap 2: stopping thread 4 (thread yielding) 6829000: cap 2: thread 4 is runnable 6829000: cap 2: running thread 4 6830000: cap 0: stopping thread 5 (thread blocked) 6831000: cap 0: creating thread 10 6831000: cap 0: creating spark thread 10 6831000: cap 0: thread 10 is runnable 6831000: cap 0: running thread 10 6832000: cap 0: stealing a spark from cap 1 6857000: cap 2: waking up thread 8 on cap 0 6857000: cap 2: stealing a spark from cap 0 6858000: cap 0: stopping thread 10 (thread yielding) 6858000: cap 0: thread 10 is runnable 6858000: cap 0: waking up thread 8 on cap 0 6859000: cap 0: thread 8 is runnable 6859000: cap 0: running thread 10 6940000: cap 0: stopping thread 10 (thread blocked) 6940000: cap 0: running thread 8 6940000: cap 2: stopping thread 4 (thread yielding) 6941000: cap 0: waking up thread 5 on cap 0 6941000: cap 0: thread 5 is runnable 6941000: cap 0: stopping thread 8 (thread finished) 6941000: cap 0: running thread 5 6941000: cap 2: thread 4 is runnable 6941000: cap 2: running thread 4 6942000: cap 0: waking up thread 3 on cap 3 6942000: cap 0: stealing a spark from cap 1 6943000: cap 3: stopping thread 7 (thread yielding) 6943000: cap 3: thread 7 is runnable 6944000: cap 2: waking up thread 10 on cap 0 6944000: cap 3: waking up thread 3 on cap 3 6944000: cap 3: thread 3 is runnable 6944000: cap 3: running thread 7 6945000: cap 0: stopping thread 5 (thread yielding) 6945000: cap 0: thread 5 is runnable 6945000: cap 2: stealing a spark from cap 0 6946000: cap 0: waking up thread 10 on cap 0 6946000: cap 0: thread 10 is runnable 6946000: cap 0: running thread 5 6949000: cap 0: stopping thread 5 (thread blocked) 6949000: cap 0: running thread 10 6950000: cap 0: running a local spark 6950000: cap 2: stopping thread 4 (thread yielding) 6950000: cap 2: thread 4 is runnable 6950000: cap 2: running thread 4 6974000: cap 0: stopping thread 10 (thread yielding) 6974000: cap 1: stopping thread 6 (thread blocked) 6975000: cap 0: thread 10 is runnable 6975000: cap 0: running thread 10 6975000: cap 1: creating thread 11 6975000: cap 1: creating spark thread 11 6976000: cap 1: thread 11 is runnable 6976000: cap 1: running thread 11 6977000: cap 1: running a local spark 7019000: cap 0: running a local spark 7046000: cap 2: waking up thread 5 on cap 0 7047000: cap 0: stopping thread 10 (thread yielding) 7047000: cap 0: thread 10 is runnable 7047000: cap 0: waking up thread 5 on cap 0 7047000: cap 0: thread 5 is runnable 7047000: cap 2: stealing a spark from cap 1 7048000: cap 0: running thread 10 7066000: cap 2: stopping thread 4 (heap overflow) 7066000: cap 2: requesting parallel GC 7067000: cap 1: stopping thread 11 (thread yielding) 7068000: cap 1: thread 11 is runnable 7068000: cap 1: starting GC 7068000: cap 3: stopping thread 7 (thread yielding) 7068000: cap 3: thread 7 is runnable 7068000: cap 3: starting GC 7069000: cap 0: stopping thread 10 (thread yielding) 7069000: cap 0: thread 10 is runnable 7070000: cap 0: starting GC 7070000: cap 2: starting GC 7078000: cap 0: GC working 7078000: cap 2: GC working 7083000: cap 2: GC idle 7090000: cap 0: GC idle 7111000: cap 1: GC working 7121000: cap 1: GC idle 7141000: cap 3: GC working 7150000: cap 0: GC done 7150000: cap 1: GC done 7150000: cap 2: GC done 7150000: cap 3: GC idle 7150000: cap 3: GC done 7151000: cap 2: GC working 7151000: cap 2: GC idle 7151000: cap 2: GC done 7151000: cap 2: GC working 7152000: cap 2: GC idle 7152000: cap 2: GC done 7152000: cap 2: GC working 7152000: cap 2: GC idle 7152000: cap 2: GC done 7166000: cap 2: finished GC 7167000: cap 0: finished GC 7167000: cap 0: running thread 5 7167000: cap 1: finished GC 7168000: cap 1: running thread 11 7168000: cap 2: running thread 4 7168000: cap 3: finished GC 7169000: cap 0: stopping thread 5 (thread blocked) 7170000: cap 0: running thread 10 7172000: cap 1: stopping thread 11 (thread yielding) 7172000: cap 1: thread 11 is runnable 7172000: cap 2: stopping thread 4 (thread yielding) 7172000: cap 2: thread 4 is runnable 7174000: cap 0: stopping thread 10 (thread yielding) 7174000: cap 0: thread 10 is runnable 7174000: cap 0: running thread 10 7174000: cap 2: running thread 4 7175000: cap 1: running thread 11 7228000: cap 0: waking up thread 5 on cap 0 7228000: cap 0: thread 5 is runnable 7228000: cap 0: stopping thread 10 (thread finished) 7228000: cap 0: running thread 5 7229000: cap 0: waking up thread 6 on cap 1 7230000: cap 0: stealing a spark from cap 1 7231000: cap 1: stopping thread 11 (thread yielding) 7231000: cap 1: thread 11 is runnable 7231000: cap 1: waking up thread 6 on cap 1 7232000: cap 1: thread 6 is runnable 7232000: cap 1: running thread 11 7249000: cap 1: stopping thread 11 (thread blocked) 7249000: cap 1: running thread 6 7250000: cap 0: stopping thread 5 (thread yielding) 7250000: cap 0: thread 5 is runnable 7251000: cap 0: running thread 5 7253000: cap 1: stopping thread 6 (thread blocked) 7254000: cap 1: creating thread 12 7254000: cap 1: creating spark thread 12 7254000: cap 1: thread 12 is runnable 7254000: cap 1: running thread 12 7255000: cap 1: stealing a spark from cap 2 7294000: cap 1: stopping thread 12 (thread yielding) 7294000: cap 2: stopping thread 4 (thread blocked) 7295000: cap 1: thread 12 is runnable 7295000: cap 1: running thread 12 7295000: cap 2: creating thread 13 7295000: cap 2: creating spark thread 13 7295000: cap 2: thread 13 is runnable 7296000: cap 2: running thread 13 7297000: cap 2: running a local spark 7300000: cap 0: waking up thread 11 on cap 1 7301000: cap 0: stealing a spark from cap 3 7301000: cap 1: stopping thread 12 (thread yielding) 7301000: cap 1: thread 12 is runnable 7302000: cap 1: waking up thread 11 on cap 1 7302000: cap 1: thread 11 is runnable 7303000: cap 1: running thread 12 7341000: cap 1: waking up thread 4 on cap 2 7342000: cap 1: stopping thread 12 (thread finished) 7342000: cap 1: running thread 11 7342000: cap 2: stopping thread 13 (thread yielding) 7342000: cap 2: thread 13 is runnable 7343000: cap 1: waking up thread 6 on cap 1 7343000: cap 2: waking up thread 4 on cap 2 7343000: cap 2: thread 4 is runnable 7344000: cap 1: thread 6 is runnable 7344000: cap 1: stopping thread 11 (thread finished) 7344000: cap 1: running thread 6 7344000: cap 2: running thread 13 7346000: cap 1: stopping thread 6 (thread blocked) 7346000: cap 1: creating thread 14 7346000: cap 2: stopping thread 13 (thread yielding) 7346000: cap 2: thread 13 is runnable 7347000: cap 1: creating spark thread 14 7347000: cap 1: thread 14 is runnable 7347000: cap 1: running thread 14 7347000: cap 2: running thread 4 7347000: cap 2: stopping thread 4 (thread blocked) 7348000: cap 1: stealing a spark from cap 0 7348000: cap 2: running thread 13 7349000: cap 2: waking up thread 4 on cap 2 7349000: cap 2: thread 4 is runnable 7349000: cap 2: stopping thread 13 (thread finished) 7350000: cap 2: running thread 4 7350000: cap 2: waking up thread 6 on cap 1 7350000: cap 2: stealing a spark from cap 0 7351000: cap 1: stopping thread 14 (thread yielding) 7351000: cap 1: thread 14 is runnable 7351000: cap 1: waking up thread 6 on cap 1 7352000: cap 1: thread 6 is runnable 7353000: cap 1: running thread 14 7468000: cap 2: stopping thread 4 (heap overflow) 7468000: cap 2: requesting parallel GC 7469000: cap 1: stopping thread 14 (thread yielding) 7469000: cap 1: thread 14 is runnable 7471000: cap 1: starting GC 7472000: cap 0: stopping thread 5 (thread yielding) 7472000: cap 0: thread 5 is runnable 7473000: cap 0: starting GC 7502000: cap 3: starting GC 7503000: cap 2: starting GC 7510000: cap 1: GC working 7514000: cap 2: GC working 7518000: cap 2: GC idle 7518000: cap 3: GC working 7523000: cap 3: GC idle 7524000: cap 1: GC idle 8359000: cap 0: GC working 8368000: cap 0: GC idle 8368000: cap 0: GC done 8368000: cap 1: GC done 8368000: cap 2: GC done 8368000: cap 3: GC done 8369000: cap 2: GC working 8369000: cap 2: GC idle 8369000: cap 2: GC done 8369000: cap 2: GC working 8369000: cap 2: GC idle 8369000: cap 2: GC done 8370000: cap 2: GC working 8370000: cap 2: GC idle 8370000: cap 2: GC done 8383000: cap 0: finished GC 8383000: cap 2: finished GC 8384000: cap 0: running thread 5 8384000: cap 1: finished GC 8384000: cap 1: running thread 6 8384000: cap 2: running thread 4 8384000: cap 3: finished GC 8384000: cap 3: running thread 3 8385000: cap 1: stopping thread 6 (thread finished) 8386000: cap 1: running thread 14 8389000: cap 2: stopping thread 4 (thread yielding) 8389000: cap 2: thread 4 is runnable 8389000: cap 2: running thread 4 8389000: cap 3: stopping thread 3 (thread blocked) 8390000: cap 1: stopping thread 14 (thread yielding) 8390000: cap 1: thread 14 is runnable 8393000: cap 0: stopping thread 5 (thread yielding) 8393000: cap 0: thread 5 is runnable 8400000: cap 3: running thread 7 8403000: cap 3: stopping thread 7 (thread yielding) 8403000: cap 3: thread 7 is runnable 8403000: cap 3: running thread 7 8404000: cap 1: running thread 14 8465000: cap 2: stealing a spark from cap 0 8504000: cap 1: stealing a spark from cap 0 8623000: cap 3: waking up thread 3 on cap 3 8623000: cap 3: thread 3 is runnable 8623000: cap 3: stopping thread 7 (thread finished) 8634000: cap 0: running thread 5 8635000: cap 3: running thread 3 8640000: cap 0: stopping thread 5 (thread yielding) 8640000: cap 0: thread 5 is runnable 8640000: cap 3: stopping thread 3 (thread blocked) 8641000: cap 3: creating thread 15 8641000: cap 3: creating spark thread 15 8641000: cap 3: thread 15 is runnable 8649000: cap 3: running thread 15 8650000: cap 3: running a local spark 8661000: cap 3: stopping thread 15 (stack overflow) 8663000: cap 3: running thread 15 8670000: cap 2: stopping thread 4 (heap overflow) 8670000: cap 2: requesting parallel GC 8671000: cap 1: stopping thread 14 (thread yielding) 8671000: cap 1: thread 14 is runnable 8671000: cap 3: stopping thread 15 (thread yielding) 8671000: cap 3: thread 15 is runnable 8671000: cap 3: starting GC 8672000: cap 1: starting GC 13162000: cap 0: starting GC 13162000: cap 2: starting GC 13170000: cap 1: GC working 13171000: cap 0: GC working 13172000: cap 2: GC working 13177000: cap 1: GC idle 13178000: cap 0: GC idle 13178000: cap 2: GC idle 13186000: cap 3: GC working 13204000: cap 1: GC done 13204000: cap 2: GC done 13204000: cap 3: GC idle 13204000: cap 3: GC done 13205000: cap 2: GC working 13205000: cap 2: GC idle 13205000: cap 2: GC done 13205000: cap 2: GC working 13205000: cap 2: GC idle 13205000: cap 2: GC done 13206000: cap 2: GC working 13206000: cap 2: GC idle 13206000: cap 2: GC done 13229000: cap 0: GC done 13244000: cap 0: finished GC 13244000: cap 2: finished GC 13245000: cap 0: running thread 5 13245000: cap 1: finished GC 13245000: cap 1: running thread 14 13245000: cap 2: running thread 4 13249000: cap 1: stopping thread 14 (thread yielding) 13249000: cap 1: thread 14 is runnable 13249000: cap 2: stopping thread 4 (thread yielding) 13249000: cap 2: thread 4 is runnable 13249000: cap 2: running thread 4 13250000: cap 0: stopping thread 5 (thread yielding) 13250000: cap 0: thread 5 is runnable 13250000: cap 1: running thread 14 13251000: cap 0: running thread 5 13292000: cap 2: stealing a spark from cap 0 13294000: cap 1: stealing a spark from cap 3 13312000: cap 0: stopping thread 5 (thread blocked) 13312000: cap 2: stopping thread 4 (thread yielding) 13312000: cap 2: thread 4 is runnable 13313000: cap 0: creating thread 16 13313000: cap 0: creating spark thread 16 13313000: cap 0: thread 16 is runnable 13314000: cap 0: running thread 16 13314000: cap 0: stealing a spark from cap 1 13314000: cap 2: running thread 4 13340000: cap 2: waking up thread 5 on cap 0 13341000: cap 0: stopping thread 16 (thread yielding) 13341000: cap 0: thread 16 is runnable 13341000: cap 2: stealing a spark from cap 1 13342000: cap 0: waking up thread 5 on cap 0 13342000: cap 0: thread 5 is runnable 13342000: cap 0: running thread 16 13364000: cap 0: stopping thread 16 (thread yielding) 13364000: cap 0: thread 16 is runnable 13364000: cap 0: running thread 16 13364000: cap 1: stopping thread 14 (thread blocked) 13365000: cap 1: creating thread 17 13365000: cap 1: creating spark thread 17 13365000: cap 1: thread 17 is runnable 13365000: cap 1: running thread 17 13365000: cap 1: stealing a spark from cap 3 13375000: cap 2: stealing a spark from cap 1 13423000: cap 2: stealing a spark from cap 1 13428000: cap 0: waking up thread 14 on cap 1 13429000: cap 0: stopping thread 16 (thread finished) 13429000: cap 0: running thread 5 13430000: cap 1: stopping thread 17 (thread yielding) 13430000: cap 1: thread 17 is runnable 13431000: cap 1: waking up thread 14 on cap 1 13431000: cap 1: thread 14 is runnable 13431000: cap 1: running thread 17 13432000: cap 0: waking up thread 3 on cap 3 13433000: cap 0: stealing a spark from cap 3 13442000: cap 1: stopping thread 17 (thread blocked) 13442000: cap 1: running thread 14 13442000: cap 2: stopping thread 4 (thread yielding) 13442000: cap 2: thread 4 is runnable 13443000: cap 1: stealing a spark from cap 0 13443000: cap 2: running thread 4 13453000: cap 2: waking up thread 17 on cap 1 13454000: cap 2: stealing a spark from cap 0 13455000: cap 1: stopping thread 14 (thread yielding) 13455000: cap 1: thread 14 is runnable 13456000: cap 1: waking up thread 17 on cap 1 13456000: cap 1: thread 17 is runnable 13456000: cap 1: running thread 14 13476000: cap 1: stopping thread 14 (thread finished) 13476000: cap 1: running thread 17 13476000: cap 1: stealing a spark from cap 3 13505000: cap 2: stealing a spark from cap 1 13539000: cap 2: stopping thread 4 (heap overflow) 13539000: cap 2: requesting parallel GC 13541000: cap 0: stopping thread 5 (thread yielding) 13541000: cap 0: thread 5 is runnable 13541000: cap 0: starting GC 13541000: cap 1: stopping thread 17 (thread yielding) 13541000: cap 1: thread 17 is runnable 13541000: cap 1: starting GC 13578000: cap 3: finished GC 13578000: cap 3: starting GC 13579000: cap 2: starting GC 13585000: cap 1: GC working 13591000: cap 2: GC working 13593000: cap 3: GC working 13595000: cap 2: GC idle 13596000: cap 1: GC idle 13603000: cap 3: GC idle 13880000: cap 0: GC working 13885000: cap 0: GC idle 13885000: cap 0: GC done 13885000: cap 2: GC done 13886000: cap 1: GC done 13886000: cap 2: GC working 13886000: cap 2: GC idle 13886000: cap 2: GC done 13886000: cap 2: GC working 13886000: cap 2: GC idle 13886000: cap 2: GC done 13887000: cap 2: GC working 13887000: cap 2: GC idle 13887000: cap 2: GC done 13911000: cap 3: GC done 13924000: cap 2: finished GC 13925000: cap 1: finished GC 13925000: cap 1: running thread 17 13925000: cap 2: running thread 4 13925000: cap 3: finished GC 13926000: cap 3: running thread 15 13928000: cap 1: stopping thread 17 (thread yielding) 13928000: cap 2: stopping thread 4 (thread yielding) 13929000: cap 1: thread 17 is runnable 13929000: cap 1: running thread 17 13929000: cap 2: thread 4 is runnable 13929000: cap 2: running thread 4 13931000: cap 3: stopping thread 15 (thread yielding) 13931000: cap 3: thread 15 is runnable 13931000: cap 3: waking up thread 3 on cap 3 13931000: cap 3: thread 3 is runnable 13932000: cap 3: running thread 15 13941000: cap 2: stealing a spark from cap 1 13944000: cap 1: stopping thread 17 (thread blocked) 13944000: cap 2: stopping thread 4 (thread yielding) 13945000: cap 1: creating thread 18 13945000: cap 1: creating spark thread 18 13945000: cap 1: thread 18 is runnable 13945000: cap 1: running thread 18 13945000: cap 2: thread 4 is runnable 13946000: cap 1: stealing a spark from cap 3 13946000: cap 2: running thread 4 13990000: cap 2: waking up thread 17 on cap 1 13991000: cap 2: stealing a spark from cap 1 13992000: cap 1: stopping thread 18 (thread yielding) 13992000: cap 1: thread 18 is runnable 13992000: cap 1: waking up thread 17 on cap 1 13992000: cap 1: thread 17 is runnable 13993000: cap 1: running thread 18 14018000: cap 1: stopping thread 18 (thread blocked) 14018000: cap 1: running thread 17 14018000: cap 1: running a local spark 14019000: cap 2: stopping thread 4 (thread yielding) 14019000: cap 2: thread 4 is runnable 14020000: cap 2: running thread 4 14029000: cap 2: waking up thread 18 on cap 1 14030000: cap 1: stopping thread 17 (thread yielding) 14030000: cap 1: thread 17 is runnable 14030000: cap 1: waking up thread 18 on cap 1 14030000: cap 2: stealing a spark from cap 3 14031000: cap 1: thread 18 is runnable 14031000: cap 1: running thread 17 14035000: cap 3: stopping thread 15 (thread blocked) 14036000: cap 2: stopping thread 4 (thread yielding) 14036000: cap 2: thread 4 is runnable 14036000: cap 2: running thread 4 14042000: cap 0: finished GC 14042000: cap 0: running thread 5 14042000: cap 3: running thread 3 14045000: cap 3: stopping thread 3 (thread blocked) 14047000: cap 0: stopping thread 5 (thread yielding) 14047000: cap 0: thread 5 is runnable 14048000: cap 0: running thread 5 14052000: cap 0: stopping thread 5 (thread finished) 14057000: cap 2: waking up thread 15 on cap 3 14061000: cap 2: stopping thread 4 (thread finished) 14064000: cap 3: waking up thread 15 on cap 3 14065000: cap 3: thread 15 is runnable 14065000: cap 3: running thread 15 14068000: cap 1: stopping thread 17 (thread yielding) 14068000: cap 1: thread 17 is runnable 14068000: cap 3: stopping thread 15 (thread blocked) 14070000: cap 0: thread 17 is runnable 14070000: cap 1: migrating thread 17 to cap 0 14075000: cap 0: running thread 17 14078000: cap 1: running thread 18 14079000: cap 1: stopping thread 18 (thread blocked) 14080000: cap 0: stopping thread 17 (thread yielding) 14080000: cap 0: thread 17 is runnable 14081000: cap 0: running thread 17 14094000: cap 0: waking up thread 18 on cap 1 14096000: cap 0: stopping thread 17 (thread finished) 14098000: cap 1: waking up thread 18 on cap 1 14098000: cap 1: thread 18 is runnable 14099000: cap 1: running thread 18 14099000: cap 1: waking up thread 15 on cap 3 14102000: cap 1: stopping thread 18 (thread finished) 14103000: cap 3: waking up thread 15 on cap 3 14103000: cap 3: thread 15 is runnable 14103000: cap 3: running thread 15 14103000: cap 3: waking up thread 3 on cap 3 14104000: cap 3: thread 3 is runnable 14104000: cap 3: stopping thread 15 (thread finished) 14110000: cap 3: running thread 3 14146000: cap 3: stopping thread 3 (making a foreign call) 14147000: cap 3: running thread 3 14147000: cap 3: stopping thread 3 (making a foreign call) 14157000: cap 3: running thread 3 14191000: cap 3: stopping thread 3 (thread finished) 14204000: cap 3: requesting sequential GC 14206000: cap 3: starting GC 14229000: cap 0: GC working 14242000: cap 0: GC idle 14242000: cap 0: GC done 14243000: cap 0: GC working 14243000: cap 0: GC idle 14244000: cap 0: GC done 14244000: cap 0: GC working 14244000: cap 0: GC idle 14244000: cap 0: GC done 14244000: cap 0: GC working 14244000: cap 0: GC idle 14245000: cap 0: GC done 14254000: cap 3: finished GC 14261000: cap 0: running thread 2 14306000: cap 0: stopping thread 2 (thread finished) 14344000: cap 0: shutting down 14345000: cap 1: shutting down 14346000: cap 2: shutting down 14346000: cap 3: shutting down ghc-events-0.6.0/test/mandelbrot-mmc-2011-06-14.eventlog0000644000000000000000000031336612676645645020462 0ustar0000000000000000hdrbhetbetbStartup (num_engines)eteetbShutdowneteetb8A block of events generated by a specific engine followseteetbA context is created or re-usedeteetb,The context is being placed on the run queueeteetb Run a spark from the local stacketeetb &Run a spark stolen from another engineeteetb Run contexteteetbContext stoppedeteetb&Create a context for executing a sparketeetbA user-provided log messageeteetb Start GCeteetb Stop GCeteetb'Register an id->string mappingeteetb(About to call main/2eteetbCreate an engine seteteetbDetete an engine seteteetbAdd an engine to an engine seteteetbAdd an engine to an engine seteteetb.The type of the runtime system for this capseteteetb*The command line arguments of this processeteetb0The environment variables this process inheritedeteetb &The pid and parent pid of this processeteetbg A spark is being createdeteetbd 0Start a parallel conjunction (dyn id, static id)eteetbe#End a parallel conjunction (dyn id)eteetbf End a parallel conjunct (dyn id)eteetbh Create a future (future id)eteetbi/Wait on a future without suspending (future id)eteetbj6Wait on a future by suspending this thread (future id)eteetbkSignal a future (future id)eteetbl.Engine begins looking for a context to executeeteetbm#Engine begins attempt to steal worketeetbn-Release this context to the free context pooletehetehdredatb mmc-DEV'STATE_VARIABLE_Acc_19'f9|Qhm99uAfC]QimC^bC_:CfM\QjpmM]M]FfWOQkmWQqWSIfaQlmaaKfk#QmpmkkNfu!Qnmu<uQf%"Qom&&Sf6QppmI3Vf QqmYf2Qrm23[f5Qspm ^fQtm6afQumcf˼Qvpm̐hffb8QwmceifsQxmT:kf6Qypm7y8Vnf-QzmqEqfQ{msfIQ|pm%vfAyQ}mC)D yf*HQ~m*?*{f8.`Qpm8/n80F~fEؐQmE EfeQmeefȻQm:fRQmT)UfV QpmVWfpQ0mqsfQmffQmfQPmF=f.APQpm.B5.C fHQmHDHf\RuQm\T*\Vf|ϣQm||fQmfCkQmDEfu=Q0muTuf oQPm  fQpmafQm&&fCQm*f ҰQm Ҳl ҳqf S@Qm S S|f <Qm  fqQ0muAwfbCQPmbbfPNQpmPOPQAf3Qm5fNQmNNfQmf0Qm35&fQmff!Q0m!!f$1QPm$$f'Qpm''6f*Z|Qm*\*`If.,Qm.,0.,Շf1w Qm1w61wmf5&MQm5&\5&$f8Qm8q8f=<Q0m=?=CdfA6\QPmA6_6A6afEQpmEEfIQmIIL> L> LJ{LKfO%QmO% O%(fTUQmTYTT]zfY%QmY%Y%@ f^Qm^A^  fcQ0mcbcfhQPmhhfnQpmnnfs Qms s fyQmyyWf~lQm~qV~u"fGkQmG2G"fQmV%fϺPQ0mϼϿ{(f(QPm06>+f-Qpm.fЀQmЃІ1fKzQðmKK4fWQmZN\7fQm!&:f/bQm//>f\QȐm\p\NAfǥ4QɰmǥǥDfQmGf8KQm8M8OJf}XQm}[;}]JMfxQ0mz}Pf,UQPm,Yq,\&SfNQpmQSVfDw7QѐmD}DXfQPmy![fQpm}_fQm=bf Qm  KefQ0mhfhQPm !xjfB@QmBG4BNlf#Qm#I#of)C-Qm)C)Crf.Qm..uf4Q0m4j4pyf:gQްm:g:gf|f@$cQm@$f%@$hfE^2QmEeEnfK3QmKKfQԽQ0mQ"QݢfWÈjQPmWÊWÌf]Qpm] ] *fcۂQmcc/fiBQmiDiFfp%k&Qmp%m0p%o~fvQQmvQvQ(f|Qm||yf^mQ0m^p^s=flQPmnqfTC1QpmTETIfVQmYZfF/=QmF0F2kfQm}foǥQmoɢof^Qm^^7f_.Q0m_5_=f`*uQPm`2g`<-fJQmQYfuQ0mZf5QPm8W:ftQpmf#XQm#t#f#Qm%'fYQ0m f -QPm / 1YfRpm^f7SRm7V 7Wf BRm  fRmfVRmV6Vf#FRm##:f+Q#R0m+Q$+Q&f38!RPm38=38f;_:R pm;_-fR"0m/fOR"mz2f"eR$m$&6f/R%m//9fx'R&mxxq<f ơ-R'm ƨ Ʊ>f)cR(m)cQ)cAf1l&R)m1qL1wDf:cR*m::GfBruR+mBr'Br|JfJKR-mJ3JMfSuLWR.0mSuNSuQPf[ R/Pm[[Sfd^iR0pmd^ld^oVflrR1mllHYfv U{R2mv ]%v fz\f~R3m~~_fR4mEbfbjR6mbb6ef"sR70m""?hfǀR8PmDŽLJkfy%R9pm|nfBR:mB9BVqf[KR;m[QL[Utf6R<m6E6wfR=mizf@R?mD;G}f©R@0mf5LFRAPm5N5PyfiRBmkPm~fRCm>f-wREm-{ -|fRF0m #faQ:RGPmaSDaUnf#;RHpm#?#@f,RIm,,f6FSRJm6FU6FWf?RKm? ?fIIRLmIIfSRNmSLSf]YRO0m]]h]^ffAt=RPPmfAvfAxfo}+RQpo}.o}DGno}Mo}Qeo}RRQpfo}TRQeo}TRQfo}URPeo}V>RPfo}VRPPeo}WgRPPfo}WROeo}XqROfo}YMROeo}ZROfo}[&RO0eo}[RO0fo}JRNeo}RNfo}RNpeo}9RNpfo}'RNeo}RNfo}}RMeo}RMfo}RMPeo} RMPfo}RLeo}RLfo}RLeo}RLfo}RL0eo}RL0fo}RKeo}"RKfo}RKpeo}"RKpfo}RKeo}]RKfo}RJeo}^RJfo}RJPeo}^RJPfo}RIeo}RIfo}RRIeo}RIfo}RRI0eo}RI0fo}WRHeo}RHfo}XRHpeo}RHpfo}aRHeo}RHfo}]RGeo}URGfo}RGPeo}ZRGPfo}QRFeo}RFfo}RRFeo}RFfo}WRF0eo}RF0fo}WREeo}REfo}\REpeo}REpfo}]REeo}REfo}fRDeo}RDfo}bRDPeo}RDPfo}cRCeo}RCfo}cRCeo}RCfo}_RC0eo}RC0fo}dRBeo}RBfo}eRBpeo}RBpfo}jRBeo}RBfo}fRAeo}RAfo}oRAPeo}RAPfo}tR@eo}R@fo}yR@eo}R@fo}~R@0eo}R@0fo}vR?eo}R?fo}R?peo}R?pfo}R?eo}R?fo}#R>eo}R>fo}R>Peo}R>Pfo}R=eo}ÝR=fo} R=eo}ĞR=fo}%R=0eo}ţR=0fo}%R<eo}ƟR<fo}&R'Rfo~>Reo~?0Rfo~?RPeo~@5RPfo~@Reo~A6Rfo~AReo~B6Rfo~BR0eo~C@R0fo~CReo~DRfo~ERpeo~FRpfo~G"Reo~GRfo~H0Reo~HRfo~I,RPeo~IRPfo~J1R eo~JR fo~K-R eo~KR fo~L2R 0eo~LR 0fo~M7R eo~MR fo~N<R peo~NR pfo~OFR eo~OR fo~PFR eo~PR fo~QPR Peo~QR Pfo~RUR eo~RR fo~SUR eo~SR fo~T_R 0eo~TR 0fo~U[R eo~UR fo~VdR peo~VR pfo~W`R eo~WR fo~XnReo~XRfo~YjRPeo~YRPfo~ZoReo~ZRfo~[pReo~[Rfo~\pR0eo~\R0fo~]uReo~]Rfo~^qRpeo~^Rpfo~_vReo~_Rfo~`{Reo~aRfo~aRPeo~bRPfo~bReo~cRfo~cReo~d Rfo~dR0eo~eR0fo~eReo~fRfo~fRpeo~gRpfo~gReo~hRfo~hReo~iERfo~iRPeo~jARPfo~jReo~kBRfo~kReo~lBRfo~lR0eo~mLR0fo~mReo~nHRfo~nRpeo~oqRpfo~oReo~phRfo~qQeo~rQfo~sXQPeo~tBQPfo~tQeo~uGQfo~uQeo~vLQfo~vQ0eo~wQQ0fo~wQeo~xVQfo~xQpeo~y[Qpfo~yQeo~z`Qfo~zQeo~{`Qfo~{QPeo~|aQPfo~|Qeo~}aQfo~}Qeo~~bQfo~~Q0eo~gQ0fo~Qeo~cQfo~Qpeo~hQpfo~Qeo~dQfo~Qeo~rQfo~QPeo~rQPfo~Qeo~sQfo~Qeo~xQfo~Q0eo~Q0fo~Qeo~Qfo~Qpeo~Qpfo~Qeo~Qfo~ Qeo~Qfo~QPeo~QPfo~ Qeo~Qfo~ Qeo~Qfo~Q0eo~Q0fo~Qeo~Qfo~Qpeo~Qpfo~ Qeo~Qfo~ Qeo~Qfo~QPeo~QPfo~!Qeo~Qfo~!Qeo~Qfo~Q0eo~Q0fo~Qeo~Qfo~Qpeo~Qpfo~Qeo~Qfo~Qeo~Qfo~QPeo~QPfo~Qeo~wQfo~Qeo~|Qfo~ Q0eo~Q0fo~Qeo~Qfo~Qpeo~Qpfo~Qeo~Qfo~Qeo~Qfo~QPeo~!QPfo~Qeo~&Qfo~Qeo~+Qfo~Q0eo~9Q0fo~Qeo~>Qfo~Qpeo~CQpfo~Qeo~CQfo~Qeo~DQfo~QPeo~DQPfo~Qeo~EQfo~Qeo~EQfo~Q0eo~JQ0fo~Qeo~FQfo~Qpeo~PQpfo~Qeo~PQfo~Qeo~ZQfo~QPeo~ZQPfo~Qeo~_Qfo~Qeo~dQfo~Q0eo~nQ0fo~Qeo~wQfo~Qpeo~xQpfo~Qeo~}Qfo~Qeo~}Qfo~QPeo~тQPfo~Qeo~҃Qfo~Qeo~ӃQfo~Q0eo~ԈQ0fo~Qeo~ՄQfo~Qpeo~։Qpfo~ Qeo~דQfo~Qeo~ؘQfo~QPeo~ٔQPfo~Qeo~ڙQfo~Qeo~۞Qfo~ Q0eo~ܚQ0fo~Qeo~&Qfo~Qpeo~ Qpfo~Qeo~Qfo~Qްeo~Qްfo~QPeo~QPfo~Qeo~Qfo~Qݐeo~Qݐfo~Q0eo~Q0fo~Qeo~Qfo~Qpeo~Qpfo~Qeo~Qfo~Q۰eo~#Q۰fo~QPeo~#QPfo~Qeo~$Qfo~Qڐeo~)Qڐfo~Q0eo~.Q0fo~Qeo~3Qfo~Qpeo~8Qpfo~Qeo~=Qfo~Qذeo~=Qذfo~QPeo~>QPfo~Qeo~>Qfo~Qאeo~:Qאfo~Q0eo~?Q0fo~Qeo~;Qfo~Qpeo~@Qpfo~Qeo~EQfo~Qհeo~JQհfo~QPeo~OQPfo~Qeo~PQfo~QԐeo~PQԐfo~Q0eo~UQ0fo~Qeo~ZQfo~Qpeo[QpfoQeodQfoQҰeoeQҰfoQPeoeQPfoQeoaQfoQѐeobQѐfoQ0eogQ0foQeocQfoQpeolQpfoQeo hQfo [Qϰeo Qϰfo wQPeo XQPfo Qeo]QfoQΐeobQΐfoQ0eogQ0foQeoqQfoQpeoqQpfoQeovQfoQ̰eowQ̰foQPeowQPfoQeoxQfoQːeotQːfoQ0eoyQ0foQeouQfoQpeo~QpfoQeozQfoQɰeoQɰfoQPeoQPfo QeoQfoQȐeoQȐfo Q0eo Q0fo! Qeo" Qfo"Qpeo# Qpfo#Qeo$vQfo$Qưeo%vQưfo%QPeo&rQPfo&Qeo'sQfo'QŐeo(sQŐfo(Q0eo)xQ0fo)Qeo*tQfo*Qpeo+yQpfo+Qeo,zQfo,Qðeo-Qðfo.QPeo.QPfo/Qeo/Qfo0Qeo0Qfo1 Q0eo1Q0fo2Qeo2Qfo3Qpeo3Qpfo4 Qeo4Qfo5Qeo6Qfo6QPeo7QPfo7Qeo8nQfo8Qeo9nQfo9Q0eo:xQ0fo:Qeo;tQfo;Qpeo~Qfo?QPeo?QPfo@Qeo@QfoAQeoAQfoBQ0eoBQ0foC QeoCQfoDQpeoDQpfoE QeoEQfoFQeoFQfoGQPeoGQPfoHQeoHQfoIQeoIQfoJQ0eoJQ0foKQeoKQfoLQpeoLQpfoMQeoMQfoNQeoNQfoOQPeoOQPfoP$QeoPQfoQ%QeoQQfoRWQ0eoRQ0foSWQeoSQfoTQpeoUQpfoUQeoV5QfoVQeoWYQfoWQPeoX^QPfoXQeoYcQfoYQeoZdQfoZQ0eo[mQ0fo[Qeo\nQfo\Qpeo]wQpfo]Qeo^|Qfo^Qeo_Qfo`QPeo`QPfoaQeoaQfobQeobQfocQ0eocQ0fodQeoeQfof QpeofQpfog|QeohQfohQeohQfoi}QPeojQPfoj~QeojQfok~QeokQfolQ0eolQ0fomQeomQfonQpeooQpfooQeopQfopQeoqQfoqQPeorQPforQeos QfosQeotQfotQ0eou Q0fouQeov%QfovQpeow&QpfowQeox/QfoxQeoy0QfoyQPeoz0QPfozQeo{1Qfo{Qeo|1Qfo|Q0eo}2Q0fo}Qeo~2Qfo~Qpeo3QpfoQeo3QfoQeo=QfoQPeoBQPfoQeoGQfoQeoLQfoQ0eoQQ0foQeoZQfoQpeo[QpfoQeo`QfoQeoQfo QPeoQPfoQeoQfoQeoQfoQ0eoQ0foQeoQfoQpeoQpfoQeoQfoQeoQfoQPeoQPfo]QeoQfo]QeoQfogQ0eoQ0fogQeoQfoqQpeoQpfoqQeo`QfoQeo`QfoQPeoQPfoOQeoQfoPQeoQfoGQ0eoQ0foLQeoQfoHQpeoQpfoMQeoQfoIQeoQfoSQPeoQPfoXQeoQfoXQeoQfobQ0eoQ0fobQeoQfogQpeoQpfocQeoQfomQeoQfoiQPeoQPfoiQeoQfojQeoQfofQ0eoQ0fofQeoQfogQpeoQpfolQeoQfoqQeoQfozQPeoQPfoQeoQfoQeo QfoQ0eoQ0foQeoQfoQpeoQpfoQeoQfoQeoQfo QPeoQPfoQeoQfo{QeoQfoQ0eo Q0foeQeoQfoaQpeoQpfooQeoQfokQeoQfouQPeoQPfozQeoQfozQeoQfoQ0eoQ0fo{QeoQfoۅQpeoQpfo܁QeoQfo݆QeoQfoނQPeoQPfo߇QeoQfoQeoQfoQ0eoQ0foQeoQfoQpeoQpfoQeoQfoQeo QfoQPeo QPfoQeoQfoQeoQfoQ0eoQ0foQeo%QfoQpeo&QpfoQeo+QfoQeo'QfoQPeo'QPfoQeo(QfoQeo(QfoQ0eo$Q0foQeo QfoQpeo%QpfoQeo*QfoQeo/QfoQPeo0QPfoQeo5QfoQeo5QfoQ0eo1Q0foQeoQfoQpeoQpfo*QeoQfo4Q~eoQ~fo0Q~PeoQ~Pfo5Q}eoQ}fo5Q}eoQ}fo6Q}0eoQ}0fo6Q|eoQ|fo7Q|peoQ|pfoEQ|eoQ|foAQ{eoQ{foFQ{PeoQ{Pfo KQzeo Qzfo KQzeo Qzfo UQz0eo Qz0fo QQyeo Qyfo ZQypeo Qypfo[QyeoQyfo`QxeoQxfo\QxPeoQxPfoeQweoQwfoaQweoQwfobQw0eoQw0fogQveoQvfogQvpeoQvpfoqQveoQvfomQueoQufovQuPeoQuPfo{QteoQtfo|QteoQtfoQt0eoQt0foQseoQsfoQspeo QspfoQseoQsfoQreo Qrfo QrPeo!QrPfo"Qqeo"Qqfo#sQqeo#Qqfo$xQq0eo$Qq0fo%xQpeo%Qpfo&}Qppeo'Qppfo'Qpeo'Qpfo(Qoeo*Qofo*QoPeo+SQoPfo+Qneo,XQnfo,Qneo-]Qnfo-Qn0eo.bQn0fo.Qmeo/gQmfo/Qmpeo0gQmpfo0Qmeo1lQmfo1Qleo2hQlfo2QlPeo3iQlPfo3Qkeo4iQkfo4Qkeo5jQkfo5Qk0eo6oQk0fo6Qjeo7kQjfo7Qjpeo8pQjpfo8Qjeo9pQjfo9Qieo:zQifo:QiPeo;zQiPfo<Qheo<{Qhfo=Qheo=Qhfo>Qh0eo>Qh0fo?Qgeo?Qgfo@ Qgpeo@QgpfoA QgeoAQgfoBQfeoBQffoCQfPeoCQfPfoDQeeoDQefoEQeeoEQefoFQe0eoFQe0foGQdeoGQdfoHQdpeoHQdpfoIQdeoIQdfoJQceoJQcfoK$QcPeoKQcPfoL)QbeoLQbfoM)QbeoMQbfoN3Qb0eoNQb0foO3QaeoOQafoPAQapeoPQapfoQBQaeoQQafoRPQ`eoS:Q`foSQ`PeoT6Q`PfoTQ_eoUQ_foV.Q_eoVQ_foW7Q_0eoWQ_0foX8Q^eoXQ^foY=Q^peoYQ^pfoZBQ^eoZQ^fo[GQ]eo[Q]fo\PQ]Peo\Q]Pfo]UQ\eo]Q\fo^VQ\eo^Q\fo_hQ\0eo_Q\0fo`iQ[eo`Q[foanQ[peoaQ[pfobnQ[eobQ[focxQZeocQZfodtQZPeodQZPfoeyQYeoeQYfofuQYeofQYfoguQY0eogQY0fohvQXeohQXfoirQXpeoiQXpfoj{QXeojQXfok|QWeokQWfolQWPeolQWPfomQVeonQVfonQVeoo QVfooQV0eopQV0fopQUeoqQUfoqQUpeor@QUpforQUeosnQUfotQTeotQTfouQTPeouQTPfov#QSeovQSfow#QSeowQSfox$QS0eoxQS0foy)QReoyQRfoz)QRpeozQRpfo{3QReo{QRfo|3QQeo|QQfo}=QQPeo}QQPzzlz7mz:z;z=a"z>Tz=-,Vz@yl-m/md9<f˒ QQPm˕˙v-j]fo_QRmog4onrfyLQSmyMyO7 fLQUmR fQV0mfQVmfQXmf_QY0m`axfQYmfEQ[mFHf{2Q\0m||f̗Q\m̘̙"f<Q^m "X%foQ_0mpq'fiQ_mJ́*fQam@-f.YQb0m/60l/fuQbm[32fEQdmFH_5foQe0mP֋7f"Qem"":f,BQgm,D,F=f6PQh0m6Q6S?f@OQhm@P@RZBfJQjmJJ-EfTQk0mTTGf^{Qkm^|^}zJfh.QmmhhMfrQn0mrrOf|Qnm||RfQpmUf8[Qq0m9<:WfQqm+]Zf Qsm " ]fWQt0m8n_ffQtmghbfxQvmef-Qw0mEgfVQwmWXjfQym_軨mfeQz0mizmJpfrQ{Pmt4u}rf TQ|m  uf=Q}0m?qA\xf*%Q~Pm**zf6hQm6{6}fCQ0mCCfTQPmTQT)fwQmw$wfQ0m%fQmQfIQmKqMWfQmf:Qm鿐dfQ0m!f}Qmf!zQm!!\f8uQ0m8w8xfN)QPmNqNIfu"#Qmu$u(f?QmAzCfGQmfD$QmD&D)fƺaQmƻƽUf=Qm>fV{Q0mV}OVf7QPm7!7xf NbQpm NC Nf 9Qm  f 44DQm 47 49f /Qm 1 3[f1FQm35gfX {QmX ]Xfo Q0mo8o jfQPmnpfXQpmY[fSYQmS،SھfQmmJf0Qm# f"c_Qm"ca["cc<f%RfQm%R%Rf(f.Q0m(f+(ff+ +QPm+G+Vf.*Qpm..f22ذQm2222Of5-Qm5S5}f9Qm99f="Qm=$=&fAQmA !A"fF$Q0mF$F$fJA*QmJBiJDxL?LnfOaSQmOg2OjfTi+Q0mTi.$Ti/fYi+QPmYqYy f`aϜQpm`aO`aޟff%pQmf%f%vfk+<Qmk+AAk+FMfp@QeQ0mp@Tp@XvfuQPmuufzAEQpmzCzEfp^'Qmp`pb!f\Qm^ga%$fY_Qm\J_>'fQm')*f tQm'"--fuQ0mu;u0f]bQPm]]3feQpme#e6fQŐmC̚9fQưmDr<f߈Qm?f,cQm,^,pBfWQmƐEfNQ0mPRHfQPmKfQpm  XNfUQΐmnQf-Qϰm5=;UfliQ0ml0lYfOQҰmR1S\fsQmv\x^ftQԐmt,taf \ Qհm \/ \dfuQmuugfI8QmI IQkfAQpmDH)nf%=Qڐm%>%>qf*kQ۰m**mtf/*Qm/-J//0wf5]i{Qm5]k/5]lszf:ؔ=Qm:ؕ:ؗ}f@d_Q0m@da@dcfHUQPmH_SHdfNQpmNNfT\jQmT\xT\fZ#QmZZ)f_%Qm__䊥fe͚Qme͜ e͝mfkQmkukfq,Q0mq.nq/fwCQPmw)w*f}IQpm}K0}LfPQm;fI) QmI+I,ff3Qm5>6fkQmnLpvfQm-fAQpmAA8f7Qm(fVQmY'\uf+Qm.0f Qm  nfBQpmBB f Qmsf"Qm$%dfӴ;Qmӷӹf⧝=Qm⧠⧤NfY ;QmY YPf?QmfHQm f}Rmfv+R0mv-v0Vf b-RPm b b$fJVRpmJJfjFRmjIjL7f KCRm O` Rf'MRm'i'f/PgRm/PM/PWf7! R m7!7!Af?y0R 0m?y9?yBfI0(R PmI7I?fR"!R pmR#^R# fZO¸R mZOIZOfbzWRmbzbzfjRmjjfuZRmuPuf~rtRm~r~r[fR0mfi#RPmmo fiRpmiicfKb RmKdKfLfBRmEGQftR0mx{{]fORmfUh6RmUkUmf̹R0m̺^̺  f>RPm#fG9RpmG$Gv&flRmI)fnR mnn,fz R!m}-0fR#Pm3fޢR$pmޤާ5f=R%0m@B8fk$OR&Pmk+%k2;f"|R'pm""W?f* MR(m**XBf2R*m22IEf::R+0m:<:>HfEh{R,PmEh%Eh.LfM:R-mM<M>NfUR.mUBUQf^.R/m^1^3lTffO%R0mfOGfOWfq0.R1mq0q0G[fzyR3pmzz^fDR4mFHaf)[R5m+"-dfxR6mx4xUgfڭR7mڰEڲ|if@R8m@H@ lf{R9mԠof&6R:m&:n&= rfR<mOPuf=y}R=0m={H=}xfOR>PmRNS{fk4(R?pmk5k6~fzR@mfiRAmlEp9fzRBpmfBERCmBHBK_fQRDmV[f REm Z f1RFm116f (KRHm - 2f)RI0m))f31RJPm31+31ffqQS0mq^qif=QTPm@0Bu fQUm fQWPm:f\QXm^af'QZPm),$fFQ[mHK' f Q]Pm$f)RQ^m+-(foQ`Pmqt>,fQam0f ^QcPm R 4fQdm8f(/QfPm(0(<f7B.Qgm7D+7F}@fEFQiPmEkEDfUQjmU"U%nHfd.QlPmdOdKLfs\Qmms_@saPffQoPmhkITf(QpmXfQrPm \f7Qsm\`fIQuPmKN6df6Qvm8H:hfQxPmlfUQymofQzm.tfqrQ|msouwf-d3Q}m-f0-h|f=!Qm=#=%sfURMQmUSUUfxQpmx9xfj3Qmkmf\=QPm]_fQmfPHQmQSfۗQPmۙۛfQpmXf 1Qm  f Qm X f7Qm7}7^fZ+QmZ ZfoQpmo ofKQ0m?fQPmڠf+cQpm+e%+ff?QmAC?fX QmXXf%aQm%%ϯf'Qm)L+qf Qm \ f FQ0m Fu Ff ՏQPm Ց< Ւf zjQpm zl zn|f?,Qm??fQm fQm t"?fWbQmWWfQm߮fDQ0mعڄfz3jQPmz5z6fQpm1f!Qm!!Uf$CAQm$D$Gf')Qm'+'-f+F Qm+F+Ff.Qm.&.f1[Q0m1]c1_f5 ,QPm5 ?5 f9Qpm99f=!Qm==fAqQmAt:Av.fF& \QmF& TF&fJQPmJJL?{L fPQpmPPfTQmTfTp fZ!QmZZ f_tQm_?_fdDQmdDdD fijnQmijp%ijrfn|Qmnn .ft Qmt t KfyQmyy֋f2;Q0m22 fnQPmor#f3Qpm&f]?Qm] ])f4"Qm44,f+TQm+W +Y/fLQmL+LT2ftQmtt5f":Q0m#%8fQPmUz;f'Qpm''=fHN9Q0mHPHQ@fz/MQPmz0z3 Cfͱ0QpmͱͱMFf. Qːm02FIf4Q̰m44fLfuQmuuZOf2QmNFRf8Qm4Tfm Qmm mWfQmZfQmk]f Q0m  -`f 1QPm 1 1|cf/2Qpm//!ff%IQאm'{)ifkQذmkkEmf#Q0m#!i##pf)S$QPm)S)S sf.fQpm..vf4qpQݐm4q64qxf: QPm: : {f?gQpm??~fE}QmE}?E}fKNQmKNKNfQ";QmQ"=cQ"?RfW0QmWWlf\ <Qm\ \fcQ0mcWcficQPmii%fo@Qpmo@Eo@fuebQmuedueef{Qm{{f]Qm_a:fnGQmngnҰfQm?fEQ0mLoSf.QPmyf)1 Q0m)2)4fQPm GfVQpmXaZfQmLfQm~fǫoQmǫ Cǫ _fαQmα1αf?QmAoBf̙Q0m̝̚fQPmf6fQpm66RfQmf@bQmADvfhFRmjlf ̆Rm + f3Rm9?lfݴR0mKf RPm if&Rpm&E&f.rWRm.rY.r[f6`Rm6`6`3f>R m>>ufFΖR mFΘ~FΚvfO/R mO/#O/SfWy,R 0mWzW|f_>RPm_As_CfhRiRpmhRjhRlfpRmpĆp-fy7jRmy7Uy7_fRmտfKRmKFK ftRm fx$R0mx&<x(jfY+RPm[k]lf=Rpm?!Afj Rmj j0fORmQxRfƫz]Rmƫ|ƫ~dfѻ RmѻڽѻU"f:Rm::%fmR0morI(f;cR Pm=@A+fR!pm&.fRR"mUwW1fUR#mWaXx4f 4R$m 4 4 7fYR%mYY7:f1R'mq=f#|^R(0m#~#ÂX@f, R)Pm, , Cf4TR*pm4Ti4TœFf"Rm``|fByR?mBdBfV,RR@mV-V/sfŽRBmǚ/fRC0mBfRDPm7f0l6REpm0m0o{fxURFm|f.RGm.%.,6f'LRHm'N'Q`f1X~RIm1X>1Xf:lRKm:%:JfDr۬RL0mDrDrGfNRMPmNZN`fWRNpmW;Wf`cROm`r`ホfj\RPmjljNnzJZzR5zS"zTzT_@Czy@@X(d2MQQPg9 QQPd^QQQg_QQdp^QRgq QRdzQRpg{zQRpd|QRg}QRdQS0gQS0d QSghQSdzQSgQSdQTPg2QTPdߺQTgQT dQUg]QU dxQUpg5QUp dUQUgQU dQV0gQV0 dQVgQVdQVgQVdQWPgkQWPd~QWg5#QWd6pQXg7$QXd8[QXpg9QXpd:QXg:QXd;QY0g<QY0d=QYg>QYd?QYg@ZQYdAhQZPgBQZPdCNQZgDQZdEQ[gEQ[dFQ[pgGQ[pdHQ[gI~Q[dJQ\0gKdQ\0dLQ\gM8Q\dNTQ\gO Q\dP(Q]PgPQ]P dRQ]gl3Q]!dmQ^gnQ^"doQ^pgpQ^p#dqQ^grqQ^$dsQ_0gtIQ_0%dueQ_gv&Q_&dwFQ_gxQ_'dy,Q`PgyQ`P(d{Q`g{Q`)d|Qag}Qa*d~QapgnQap+dQagGQa,d^Qb0gQb0-d2QbgQb.dQbgQb/dQcPgwQcP0dQcgBQc1dLQdgQd2d QdpgQdp3dQdgQd4dQe0gQe05dQegkQe6dtQeg:Qe7dVQfPgQfP8d3QfgQf9dQggQg:dQgpg}Qgp;dQggQQg<dhQh0g;Qh0=dRQhgQh>d"QhgQh?dQiPgQiP@dQigRQiAdT%QjgTQjBdV QjpgVQjpCdWQjgXQjDdYQk0gZQk0Ed[Qkg\ZQkFd]mQkg^3QkGd_EQlPg_QlPHda'QlgaQlIdcQmgcQmJddQmpgeQmpKdfQmggmQmLdhQn0giJQn0MdjTQngkQnNdl,QnglQnOdmQoPgnQoPPdoQogpQoQdqQpgrnQpRdsQppgtYQppSdubQpgv$QpTdw6Qq0gwQq0UdyQqgyQqVdzQqg{QqWd|QrPg}}QrPXd~Qrg^QrYdqQsg;QsZdRQspg!Qsp[dQsgoQs\dxQt0gQt0]dQtgQt^d%QtgQt_dQuPgQuP`dQugQuadQvg^QvbduQvpg7Qvpcd7QvgQvddQw0gQw0edQwgQwfdQwgpQwgdQxPg;QxPhdWQxgQxid4QygQyjdQypgQypkd QygQyldQz0gQz0mdQzgNQzndeQzg0Qzod0Q{PgQ{PpdQ{gQ{qdQ|gQ|rdQ|pgQ|psdQ|gjQ|tdxQ}0gCQ}0udcQ}g Q}vd.Q}gQ}wd Q~PgQ~PxdQ~gQ~ydQgbQzdpQpg2Qp{d[QgQ|dSQ0g/Q0}daQgQ~dPQgQd QPgQPdQgQdDQg Qd<QpgQpd QgQdQ0gQ0d Qg!Qd"Qg#qQd$QPg%QPd&Qg'sQd(Qg)>Qd*Qpg+Qpd,Qg-Qd.Q0g/wQ0d0Qg19Qd2UQg3 Qd4QPg4QPd5Qg6Qd7Qg8sQd9Qpg:]Qpd;gQg<-Qd=QQ0g>Q0d?*Qg?Qd@QgAQdBQPgCxQPdDQgElQdFQgGIQdH`QpgI!QpdJ8QgJQdLQ0gLQ0dMQgNQdOQgPQdQQPgR<QPdSJQgT QdUQgUQdWQpgWQpdXQgYQdZQ0g[SQ0d\wQg]OQd^Qg_YQd`pQPga-QPdbMQgcQdd QgdQdeQpgfQpdgQghQdiQ0gjhQ0dkvQgl*QdmNQgnQdoQPgoQPdpQgqQdrQgsuQdtQpguQpdvQgwQdxQ0gyQ0dzQg{ZQd|cQg};Qd~[QPgQPdQgQdQgQdQpgQpd QgQdQ0gQ0dQgoQdQgHQdMQPgQPd*QgQdQgQdQpgQpdQgUQduQ0g;Q0dRQg QdQgQdQPgQPdUQgQd%QgQdQpgQpdQgQdQ0gUQ0dlQg$Qd@QgQdQPgQPdQgQdQgQdQpgvQpdQgNQdeQ0g+Q0dKQgQdQgQdQPgQPdQgQdQgTQdkQpg(Qpd?QgQdQ0gQ0dQgǒQdȭQgjQdtQPg(QPd:QgQdQgQdQpgФQpdѲQg|QdӥQ0ggQ0dՇQg;QdDQgQdQPgQPdQgۥQdܮQgtQd1QpgQpdlQgQdQ0g!Q0dQgSQdQgQdKQPgQPdxQgQdQg$QdQpgZQpd QgQd@Q0gQ0dQgQdQg'QdQPg YQPd Qg Qd LQg Qd _Qpg QpdNQgQd9Q0gQ0dtQgQdQg$QdQPgQQPdQgpQdqQgrEQdsQpgsQpdtFQgtQduQ0gv1Q0dvQgwlQdx)QgxQdydQPgz QPdzQg{WQ d| Qg|Q d}BQpg}Qp d~xQg~Q dQ0g?Q0 dQgqQd7QgQdmQPgQPdQg/QdQgXQdQpgQpdGQgQdQ0g Q0dVQgQdQgAQdQPgsQPd9QgQdyQgQdQpgDQpdQgzQd.Q0gQ0dnQgQdQg'QdQPgTQP d QgQ!dLQgQ"dQpgQp#dQgNQ$dQ0gQ0%dQg"Q&dYQgQ'dQPgQP(dQgVQ)dQgQ*d<QpgQp+dnQgQ,dQ0gQ0-dQgGQ.dkQgQ/dQPg QP0dQðg@Qð1dQgiQ2dQpgQp3dQgKQ4d Q0gQ05dYQŐgQŐ6dQgQ7dQPgDQP8dQưgQư9d<QgQ:dnQpgQp;dQgQ<dQ0gYQ0=d QȐgQȐ>d;QgQ?dmQPgQP@d£Qɰg&QɰAdQg\QBdQpgŗQpCdKQgQDddžQ0g Q0EdQːg?QːFdQgmQGd!QPg˚QPHdWQ̰gQ̰Id͎Qg QJdQpgTQpKdQgЋQLdCQ0gQ0Md~QΐgQΐNdӰQg.QOdQPg`QPPdQϰg֛QϰQdQgTQRdQpg٦QpSdZQgQTdەQ0gQ0UdQѐgIQѐVdQgހQWd4QPg߭QPXdjQҰgQҰYdQgQZd~QpgQp[dQg7Q\dQ0grQ0]d&QԐgQԐ^deQgQ_dQPgQP`dQհgYQհadQgQbd_QpgQpcdQgQddQ0gSQ0edQאgQאfd9QgQgdtQPgQPhdQذg$QذidQgMQjdQpgQpkd<QgQldiQ0gQ0mdQڐg"QڐndQg]QodQPgQPpd?Q۰gQ۰qdzQgQrd@QpgQpsdrQgQtdQ0gQ0udQݐgCQݐvdQgyQwd;QPgQPxd Qްg Qްyd Qg <Qzd Qpg sQp{d QgQ|dUQ0gQ0}dQg Q~dQgDQdQPgrQPd3QgQdnQgQdQpg0QpdQgQdCQ0gQ0d~QgQdIQgQdQPg+QPdQgoQd Qg Qd!PQpg!Qpd"Qg#Qd#Q0g$DQ0d$Qg%rQd&/Qg&Qd'aQPg'QPd(Qg)Qd)Qg*LQd+ Qpg+Qpd,;Qg,Qd-vQ0g-Q0d.Qg//Qd/Qg0eQd1QPg1QPd2kQg2Qd3Qg4$Qd4Qpg5VQpd6Qg6Qd7<Q0g7Q0d8nQg8Qd9Qg:'Qd:QPg;TQPd< Qg<Qd=CQg=Qd>zQpg?Qpd?Qg@@QdAQ0gAQ0dB=QgBQdDQgDQdELQPgEQPdFQgGQdGQgHvQdI*QpgIQpdJnQgJQdKQ0gL+Q0dLQgMbQdNQgNQdOUQPgOQPdPQgQ QdQQgR7QdSNQpgSQpdT|QgTQdUQ0gV'Q0dVQgWYQdX QgXQdYDQPgYQPdZQg[Qd[Qg\8Qd\Qpg]|Qpd^4Qg^Qd_bQ0g_Q0d`QgaQdaQgbQQdcQPgczQPdd.QgdQdeWQgeQdfQpggQpdgQghBQdhQ0giQ0djCQgjQdklQgkQdlQPgm%QPdmQgnnQdoQgoQdpOQpgpQpdqQgrQdrQ0gsHQ0dtQgtzQdu2QguQdv`QPgwJQPdxwQgxQdzRg{Rd{Rpg|HRpd|Rg}uRd~.R0g~R0dvRgRdeRgRdRPg#RPdRgbRd RgRdDRpgRpdzRgRdR0g/R0dRgXRdRgRdBRPgRPdpRgRdRgRdRpg_Rpd RgRdSR0gR0dRgRdRgBRdRPg}RPd?RgRduR gR dR pg*R pdR g`R dR 0gR 0dKR gR d}R gR dR Pg-R PdR g_R dR gR dIR pgR pdR gR dR 0gBR 0dR gxR d1R gR dpRPgRPdRg)RdRgRRd RpgRpdRgKRdR0gR0dRgCRdRgRd2RPgRPddRgzqRd{`Rg{Rd|Rpg}4Rpd}Rg~sRd5R0gR0dtRgRdRg6RdRPgvRPdIRgR dRgR dRpgORp dRgR dGR0gR0 dRg RdRgMRdERPgRPdwRgRdRg"RdRpgkRpd#RgRdUR0gR0dRg.RdRgiRd=RPgRPdRgRdRg>RdRpgyRpd6RgRdvR0gR0dRg*RdRgjRdRPgRP dKRgR!dRg R"dRpgDRp#dRgvR$d.R0gR0%diRgR&d+RgR'dkR PgR P(dR g-R )dR!gcR!*d R!pgR!p+dmR!gR!,dR"0gR"0-dBR"gR".dyR"gR"/dR#Pg%R#P0dR#g[R#1dR$gR$2dFR$pgR$p3d|R$gR$4dR%0g:R%05dR%g~R%6d;R%gR%7dˆR&PgR&P8dR&gER&9dR'g|R':d4R'pgƲR'p;dxR'gR'<dȯR(0g:R(0=dR(ghR(>d%R(g˧R(?dWR)PgR)P@d4R)gβR)AdfR*gR*BdМR*pgR*pCdR*gQR*Dd R+0gӌR+0EdMR+gR+FdՄR+gR+GdR,PgJR,PHdR,gؠR,IdPR-gR-JdڔR-pgR-pKdR-gVR-LdR.0gݚR.0MdRR.gR.Nd߉R.g R.OdR/Pg4R/PPdR/gR/QdR0g6R0RdR0pgzR0pSd2R0gR0TdvR10gR10UdR1g/R1VdR1gxR1Wd,R2PgR2PXdkR2gR2YdR3g R3ZdR3pgR3p[dR3gAR3\dR40gR40]d4R4gR4^doR4gR4_dR5PgR5P`dR5gVR5adR6gR6bdIR6pgR6pcdR6gR6ddR70gaR70ed#R7gR7fdYR7gR7gdR8PgR8PhdR8gMR8idR9gR9jd8R9pgR9pkd|R9gR9ldR:0g5R:0mdR:g^R:ndR:gR:od QR;Pg R;Ppd R;g R;qd R<g JR<rd RPgR>PxdR>gR>ydR?g8R?zdR?pgsR?p{dR?g>R?|dR@0g~R@0}d7R@gR@~dmR@gR@dRAPg&RAPdRAg aRAd!RBg!RBd"GRBpg"RBpd#RBg$2RBd$RC0g%zRC0d&<RCg&RCd'eRCg'RCd(RDPg)ORDPd*RDg*RDd+YREg,uREd-)REpg-REpd0REg0REd1JRF0g1RF0d2RFg3RFd3RFg4>RFd4RGPg5pRGPd6$RGg6RGd7_RHg7RHd8RHpg9*RHpd9RHg:nRHd;4RI0g;RI0d:RId>RJPg?lRJPd@)RJg@RJdA[RKgARKdBRKpgCRKpdCRKgDFRKdDRL0gERL0dF:RLgFRLdGyRLgGRLdHRMPgI%RMPdIRMgJ`RMdKRNgKRNdLJRNpgLRNpdMRNgN RNdNRO0gOPRO0dP ROgPROdRROgS%ROdSRPPgT`RPPdU"RPgURPdVXRQgVRQdWRQpgXRQpdXRQgYHRQdZRR0gZRR0d[;RRg[RRd\rRRg\RRd]RSPg^&RSPd^RSg_aRSd`RTg`RTdaURTpgaRTpdbRTgcRTdcRU0gdRRU0deRUgeRUdfARUgfRUdgRVPggRVPdhRVgiKRVdiRWgjyRWdk1RWpgkRWpdllRWglRWdmRX0gn*RX0dnRXgo\RXdp/RXgpRXdqfRYPgqRYPdrRYgs,RYdsRZgtcRZdu)RZpguRZpdv_RZgvRZdwR[0gx!R[0dxR[gy\R[dzR[gzR[d{TR\Pg{R\Pd|R\g}R\d}R]g~MR]dR]pgR]pdIR]gR]dR^0g R^0dR^gFR^dR^gR^dPR_PgR_Pd)R_gR_dR`gNR`dR`pgR`pdAR`gR`d|Ra0gRa0dRag:RaduRagRadRbPg2RbPdRbgmRbd!RcgRcdXRcpgRcpdRcgRcdLRd0gRd0dRdgRddRdg;RddRePgdRePdRegRedSRfgRfdRfpgRfpdRfgPRfdRg0gRg0dVRggRgdRggRgd`RhPgRhPdRhgRhdYRigRidRipg RipdRig?RidRj0gzRj0d.RjgRjdnRjgRjdRkPg'RkPdRkgkRkd#RlgRldZRlpgRlpdRlgRldRm0gRRm0dRmgRmdARmgRmdxRnPgRnPdRng1RndRogZRodRopgRopdRRogRodRp0g&Rp0dRpg\RpdRpg—RpdKRqPgRqPdyRqgRqdůRrg)RrdRrpgdRrpdRrgRrd{Rs0gRs0dʶRsg0RsdRsgoRsdRtPgRtPdΐRtgRt dRug@Ru dRupg{Rup d3RugҭRu deRv0gRv0 dԩRvg#RvdRvgbRvdRwPgיRwPdHRwgRwdRxgRxdڱRxpg8RxpdRxgjRxdݥRy0g#Ry0dRyg^RydRygRydQRzPgRzPdRzgRzdR{g<R{dR{pgwR{pd4R{gR{dbR|0gR|0dR|g$R|dR|gqR|fR|׵j1df SR|e R|f fR| fWR|eXR|fYR|0[SfR|0eR|0fճR{׫f)hR{e)iR{f)jsR{p)lf3R{pe3nR{pf3R{3f=R{e=OR{f= Rz=fG(jRzeG)5RzfG*gRzPG+pL?VL fRRzPeRRzPfRRyR7f\Rye\Ryf\|Ry\}ff]RyefURyffċRy0fŕfp |Ry0ep |Ry0fp 9Rxp f{''Rxe{'Rxf{4Rxp{6AfARxpeRxpfTRxf#Rxe%/Rxf%Rw'fr8Rwer9HRwfr9RwPr;[fGRwPeGfRwPfGRvGfRveKRvfRv1f jRveRvf>Rv0 f*Rv0eRv0fRuܠ fʿQRueʿDRufʿRupʿ fԑ%Rupeԑ`RupfԑRuԑ f^pYRue^q(Ruf^qRt^sm f)Rte)Rtf)tRtP)f8RtPe9RtPf:Rs<ffRseBRsfRsf,PRse-^Rsf.Rs0/fWRs0eWRs0fWRrW2f"HRre"Rrf"Rrp"Nf"Rrpe"Rrpf"3Rr"f,PRre,RRrf,RRq,T~f6s.Rqe6sRqf6sRqP6sf@7bRqPe@7$RqPf@7Rp@7fJRpeJRpfJ;RpJdfS&RpeSRpfSRp0Sf],WRp0e]-"Rp0f]-Ro]/]fg"Roeg0RofgKRopgfqLRopeqMaRopfqNRoqO5f{_Roe{_Rof{_lRn{_f_CRne_EiRnf_FRnP_G+fgRnPegRnPfgZRmgfn5Rmen8 Rmfn:&Rmn>fwRmewRmfwRm0wfvRm0eRm0fJRlf'*Rle(jRlf)Rlp+PfRlpeeRlpfRlYf˥a$Rle˥aRlf˥bRk˥cfշRkeշCRkfշcRkPշfRkPeRkPfgRjfxiRje{Rjf}RjӁfðRjeRjfRj0̓f{Rj0e{Rj0f|aRi~xf&Rie'Rif(>Rip)fRipeRipfCRi@f=Rie=9Rif=Rh=Of+oiTRhe+oiRhf+oj}RhP+okf5fubRhPe5fvRhPf5fvRg5fxMf?MRge?MMRgf?MRg?MefIRgeI RgfIRg0IfSdyRg0eSdCRg0fSdZRfSd f]6Rfe]6Rff]6Rfp]6ff"RfpefRfpffRfffpRfepRffpRepfzSfReezSgRefzShRePzSifWMRePeX7RePfYRd[afRdemRdfRdfRdeRdfPRd05f:Rd0eRd0fyRcqf93Rce9Rcf9fRcp9f1Rcpe28Rcpf3aRc4xf]Rce]{Rcf]Rb]fRbeĢRbf$RbPưff=RbPef2RbPff7Raf^fE{RaeERafERaE $fk+RaekRafmRa0nfGyRa0eGzRa0fG{}R`G|fR`eR`fR`pfCR`peCR`pfCgR`Cf R`e R`f R_ f놻R_e뇆R_f,R_PfjR_PejmR_PfjR^jf%ҁ'R^e%҂R^f%҃R^%҄f/V:8R^e/V;TR^f/V;R^0/V<f8R^0e8R^0f8R]8fBuER]eBu/R]fBuR]pBufKR]peKlR]pfK_R]K%PfUR]eUR]fUR\Uf_R\e_R\f_|R\P_xfhؕR\Peh.R\PfhER[hۉfqRR[eqSiR[fqTR[qUsf{ZR[e{ZR[f{ZiR[0{ZfR[0eR[0f=RZfRZeRZfRZpfx.RZpexRZpfxڑRZxۿf5RZe6lRZf7)RY8*f&RRYe&!RYf&RYP&f|RYPe|RYPf|̵RX|fRXeCRXfRXf:yRXe:zRXf:{RX0:}fϙ iRX0eϙ RX0fϙ eRWϙ fPRWePRWfQORWpRfC~RWpeC;RWpfCRWCfvRWew=RWfwRVyGf8RVe9^RVf:(RVP;qfRVPeRVPf{RU"fY(RUeY)RUfY*RUY+frRUeXRUfRU0҄fc:RU0efRU0fhRTn%f#1eRTe#1ARTf#1XRTp#1f,s}sRTpe,s~oRTpf,sRT,sf5RTe5NRTf5RS5Tf>RSe>XRSf>RSP>0fH'qRSPeH'rRSPfH'sRRH'ufQiRReQiORRfQiRRQi fZ}RReZRRfZRR0Z fcpRR0ecqQRR0fcqRQcrfmRQemRQfmRQpmmmlm>zjz{zz"zzVzBghc-events-0.6.0/test/mandelbrot-mmc-2011-06-14.eventlog.reference0000644000000000000000000110743113113376567022401 0ustar0000000000000000Event Types: 17: Startup (num_engines) (size 2) 7: Shutdown (size 0) 18: A block of events generated by a specific engine follows (size 14) 0: A context is created or re-used (size 4) 3: The context is being placed on the run queue (size 4) 5: Run a spark from the local stack (size 8) 6: Run a spark stolen from another engine (size 10) 1: Run context (size 4) 2: Context stopped (size 6) 15: Create a context for executing a spark (size 4) 16: A user-provided log message (size variable) 9: Start GC (size 0) 10: Stop GC (size 0) 39: Register an id->string mapping (size variable) 40: About to call main/2 (size 0) 25: Create an engine set (size 6) 26: Detete an engine set (size 4) 27: Add an engine to an engine set (size 6) 28: Add an engine to an engine set (size 6) 29: The type of the runtime system for this capset (size variable) 30: The command line arguments of this process (size variable) 31: The environment variables this process inherited (size variable) 32: The pid and parent pid of this process (size 8) 103: A spark is being created (size 12) 100: Start a parallel conjunction (dyn id, static id) (size 12) 101: End a parallel conjunction (dyn id) (size 8) 102: End a parallel conjunct (dyn id) (size 8) 104: Create a future (future id) (size 12) 105: Wait on a future without suspending (future id) (size 8) 106: Wait on a future by suspending this thread (future id) (size 8) 107: Signal a future (future id) (size 8) 108: Engine begins looking for a context to execute (size 0) 109: Engine begins attempt to steal work (size 0) 110: Release this context to the free context pool (size 4) Events: 0: created capset 0 of type CapsetOsProcess 0: capset 0: RTS version "mmc-DEV" 0: startup: 4 capabilities 0: Register an id->string mapping 0: Register an id->string mapping 0: Register an id->string mapping 0: Register an id->string mapping 0: assigned cap 0 to capset 0 0: assigned cap 3 to capset 0 0: assigned cap 1 to capset 0 0: assigned cap 2 to capset 0 4198126: cap 0: creating thread 1 4199512: cap 0: running thread 1 9983902: cap 3: Looking for global thread to resume 9987484: cap 3: Trying to steal a spark 10575823: cap 1: Looking for global thread to resume 10577452: cap 1: Trying to steal a spark 10694043: cap 2: Looking for global thread to resume 10694551: cap 2: Trying to steal a spark 10852245: cap 0: spark fizzled 11153997: cap 0: Start a parallel conjunction 0x2515150, static_id: 2 11155725: cap 0: Create spark for conjunction: 0x2515150 spark: 0x0 11165265: cap 0: Start a parallel conjunction 0x25151b0, static_id: 2 11165593: cap 0: Create spark for conjunction: 0x25151b0 spark: 0x1 11169886: cap 0: Start a parallel conjunction 0x2515210, static_id: 2 11170080: cap 0: Create spark for conjunction: 0x2515210 spark: 0x2 11172546: cap 0: Start a parallel conjunction 0x2515270, static_id: 2 11172730: cap 0: Create spark for conjunction: 0x2515270 spark: 0x3 11173041: cap 0: Start a parallel conjunction 0x25152d0, static_id: 2 11173338: cap 0: Create spark for conjunction: 0x25152d0 spark: 0x4 11173905: cap 0: Start a parallel conjunction 0x2515330, static_id: 2 11174107: cap 0: Create spark for conjunction: 0x2515330 spark: 0x5 11174143: cap 2: Trying to steal a spark 11174413: cap 0: Start a parallel conjunction 0x2515390, static_id: 2 11174760: cap 0: Create spark for conjunction: 0x2515390 spark: 0x6 11175034: cap 0: Start a parallel conjunction 0x25153f0, static_id: 2 11175610: cap 0: Create spark for conjunction: 0x25153f0 spark: 0x7 11175853: cap 3: Trying to steal a spark 11175885: cap 0: Start a parallel conjunction 0x2515450, static_id: 2 11177316: cap 2: stealing a spark from cap 0 11178108: cap 3: stealing a spark from cap 0 11198002: cap 0: Create spark for conjunction: 0x2515450 spark: 0x8 11198394: cap 0: Start a parallel conjunction 0x25154b0, static_id: 2 11198601: cap 0: Create spark for conjunction: 0x25154b0 spark: 0x9 11198880: cap 0: Start a parallel conjunction 0x2515510, static_id: 2 11199069: cap 0: Create spark for conjunction: 0x2515510 spark: 0xa 11199352: cap 0: Start a parallel conjunction 0x2515570, static_id: 2 11199541: cap 0: Create spark for conjunction: 0x2515570 spark: 0xb 11199829: cap 0: Start a parallel conjunction 0x25155d0, static_id: 2 11200014: cap 0: Create spark for conjunction: 0x25155d0 spark: 0xc 11200275: cap 0: Start a parallel conjunction 0x2515630, static_id: 2 11200468: cap 0: Create spark for conjunction: 0x2515630 spark: 0xd 11200743: cap 0: Start a parallel conjunction 0x2515690, static_id: 2 11200918: cap 0: Create spark for conjunction: 0x2515690 spark: 0xe 11201206: cap 0: Start a parallel conjunction 0x25156f0, static_id: 2 11201418: cap 0: Create spark for conjunction: 0x25156f0 spark: 0xf 11201719: cap 0: Start a parallel conjunction 0x2515750, static_id: 2 11201899: cap 0: Create spark for conjunction: 0x2515750 spark: 0x10 11202174: cap 0: Start a parallel conjunction 0x25157b0, static_id: 2 11220259: cap 0: Create spark for conjunction: 0x25157b0 spark: 0x11 11220592: cap 0: Start a parallel conjunction 0x2515810, static_id: 2 11220772: cap 0: Create spark for conjunction: 0x2515810 spark: 0x12 11221083: cap 0: Start a parallel conjunction 0x2515870, static_id: 2 11221272: cap 0: Create spark for conjunction: 0x2515870 spark: 0x13 11221533: cap 0: Start a parallel conjunction 0x25158d0, static_id: 2 11221731: cap 0: Create spark for conjunction: 0x25158d0 spark: 0x14 11222005: cap 0: Start a parallel conjunction 0x2515930, static_id: 2 11222199: cap 0: Create spark for conjunction: 0x2515930 spark: 0x15 11222478: cap 0: Start a parallel conjunction 0x2515990, static_id: 2 11222671: cap 0: Create spark for conjunction: 0x2515990 spark: 0x16 11222941: cap 0: Start a parallel conjunction 0x25159f0, static_id: 2 11223130: cap 0: Create spark for conjunction: 0x25159f0 spark: 0x17 11223400: cap 0: Start a parallel conjunction 0x2515a50, static_id: 2 11223580: cap 0: Create spark for conjunction: 0x2515a50 spark: 0x18 11223886: cap 0: Start a parallel conjunction 0x2515ab0, static_id: 2 11224066: cap 0: Create spark for conjunction: 0x2515ab0 spark: 0x19 11224336: cap 0: Start a parallel conjunction 0x2515b10, static_id: 2 11224543: cap 0: Create spark for conjunction: 0x2515b10 spark: 0x1a 11224827: cap 0: Start a parallel conjunction 0x2515b70, static_id: 2 11225007: cap 0: Create spark for conjunction: 0x2515b70 spark: 0x1b 11225286: cap 0: Start a parallel conjunction 0x2515bd0, static_id: 2 11225470: cap 0: Create spark for conjunction: 0x2515bd0 spark: 0x1c 11225758: cap 0: Start a parallel conjunction 0x2515c30, static_id: 2 11225956: cap 0: Create spark for conjunction: 0x2515c30 spark: 0x1d 11226240: cap 0: Start a parallel conjunction 0x2515c90, static_id: 2 11226424: cap 0: Create spark for conjunction: 0x2515c90 spark: 0x1e 11226708: cap 0: Start a parallel conjunction 0x2515cf0, static_id: 2 11226892: cap 0: Create spark for conjunction: 0x2515cf0 spark: 0x1f 11227176: cap 0: Start a parallel conjunction 0x2515d50, static_id: 2 11227374: cap 0: Create spark for conjunction: 0x2515d50 spark: 0x20 11227653: cap 0: Start a parallel conjunction 0x2515db0, static_id: 2 11299891: cap 0: Create spark for conjunction: 0x2515db0 spark: 0x21 11300346: cap 0: Start a parallel conjunction 0x2515e10, static_id: 2 11300535: cap 0: Create spark for conjunction: 0x2515e10 spark: 0x22 11300845: cap 0: Start a parallel conjunction 0x2515e70, static_id: 2 11301034: cap 0: Create spark for conjunction: 0x2515e70 spark: 0x23 11301291: cap 0: Start a parallel conjunction 0x2515ed0, static_id: 2 11301489: cap 0: Create spark for conjunction: 0x2515ed0 spark: 0x24 11301772: cap 0: Start a parallel conjunction 0x2515f30, static_id: 2 11301961: cap 0: Create spark for conjunction: 0x2515f30 spark: 0x25 11302245: cap 0: Start a parallel conjunction 0x2515f90, static_id: 2 11302438: cap 0: Create spark for conjunction: 0x2515f90 spark: 0x26 11302726: cap 0: Start a parallel conjunction 0x2515ff0, static_id: 2 11302929: cap 0: Create spark for conjunction: 0x2515ff0 spark: 0x27 11303212: cap 0: Start a parallel conjunction 0x2516050, static_id: 2 11303401: cap 0: Create spark for conjunction: 0x2516050 spark: 0x28 11303698: cap 0: Start a parallel conjunction 0x25160b0, static_id: 2 11303883: cap 0: Create spark for conjunction: 0x25160b0 spark: 0x29 11304162: cap 0: Start a parallel conjunction 0x2516110, static_id: 2 11304351: cap 0: Create spark for conjunction: 0x2516110 spark: 0x2a 11304630: cap 0: Start a parallel conjunction 0x2516170, static_id: 2 11304814: cap 0: Create spark for conjunction: 0x2516170 spark: 0x2b 11305093: cap 0: Start a parallel conjunction 0x25161d0, static_id: 2 11305287: cap 0: Create spark for conjunction: 0x25161d0 spark: 0x2c 11305566: cap 0: Start a parallel conjunction 0x2516230, static_id: 2 11305759: cap 0: Create spark for conjunction: 0x2516230 spark: 0x2d 11306034: cap 0: Start a parallel conjunction 0x2516290, static_id: 2 11306214: cap 0: Create spark for conjunction: 0x2516290 spark: 0x2e 11306493: cap 0: Start a parallel conjunction 0x25162f0, static_id: 2 11306673: cap 0: Create spark for conjunction: 0x25162f0 spark: 0x2f 11306943: cap 0: Start a parallel conjunction 0x2516350, static_id: 2 11307127: cap 0: Create spark for conjunction: 0x2516350 spark: 0x30 11307402: cap 0: Start a parallel conjunction 0x25163b0, static_id: 2 11307586: cap 0: Create spark for conjunction: 0x25163b0 spark: 0x31 11307852: cap 0: Start a parallel conjunction 0x2516410, static_id: 2 11308036: cap 0: Create spark for conjunction: 0x2516410 spark: 0x32 11308320: cap 0: Start a parallel conjunction 0x2516470, static_id: 2 11308509: cap 0: Create spark for conjunction: 0x2516470 spark: 0x33 11308788: cap 0: Start a parallel conjunction 0x25164d0, static_id: 2 11308990: cap 0: Create spark for conjunction: 0x25164d0 spark: 0x34 11309265: cap 0: Start a parallel conjunction 0x2516530, static_id: 2 11309445: cap 0: Create spark for conjunction: 0x2516530 spark: 0x35 11309751: cap 0: Start a parallel conjunction 0x2516590, static_id: 2 11309931: cap 0: Create spark for conjunction: 0x2516590 spark: 0x36 11310196: cap 0: Start a parallel conjunction 0x25165f0, static_id: 2 11310394: cap 0: Create spark for conjunction: 0x25165f0 spark: 0x37 11310678: cap 0: Start a parallel conjunction 0x2516650, static_id: 2 11310867: cap 0: Create spark for conjunction: 0x2516650 spark: 0x38 11311155: cap 0: Start a parallel conjunction 0x25166b0, static_id: 2 11311339: cap 0: Create spark for conjunction: 0x25166b0 spark: 0x39 11311609: cap 0: Start a parallel conjunction 0x2516710, static_id: 2 11311794: cap 0: Create spark for conjunction: 0x2516710 spark: 0x3a 11312073: cap 0: Start a parallel conjunction 0x2516770, static_id: 2 11312253: cap 0: Create spark for conjunction: 0x2516770 spark: 0x3b 11312532: cap 0: Start a parallel conjunction 0x25167d0, static_id: 2 11312721: cap 0: Create spark for conjunction: 0x25167d0 spark: 0x3c 11313000: cap 0: Start a parallel conjunction 0x2516830, static_id: 2 11313211: cap 0: Create spark for conjunction: 0x2516830 spark: 0x3d 11313490: cap 0: Start a parallel conjunction 0x2516890, static_id: 2 11313670: cap 0: Create spark for conjunction: 0x2516890 spark: 0x3e 11313954: cap 0: Start a parallel conjunction 0x25168f0, static_id: 2 11314138: cap 0: Create spark for conjunction: 0x25168f0 spark: 0x3f 11314399: cap 0: Start a parallel conjunction 0x2516950, static_id: 2 11314593: cap 0: Create spark for conjunction: 0x2516950 spark: 0x40 11314872: cap 0: Start a parallel conjunction 0x25169b0, static_id: 2 11358931: cap 0: Create spark for conjunction: 0x25169b0 spark: 0x41 11359269: cap 0: Start a parallel conjunction 0x2516a10, static_id: 2 11359453: cap 0: Create spark for conjunction: 0x2516a10 spark: 0x42 11359755: cap 0: Start a parallel conjunction 0x2516a70, static_id: 2 11359948: cap 0: Create spark for conjunction: 0x2516a70 spark: 0x43 11360232: cap 0: Start a parallel conjunction 0x2516ad0, static_id: 2 11360421: cap 0: Create spark for conjunction: 0x2516ad0 spark: 0x44 11360700: cap 0: Start a parallel conjunction 0x2516b30, static_id: 2 11360902: cap 0: Create spark for conjunction: 0x2516b30 spark: 0x45 11361181: cap 0: Start a parallel conjunction 0x2516b90, static_id: 2 11361370: cap 0: Create spark for conjunction: 0x2516b90 spark: 0x46 11361645: cap 0: Start a parallel conjunction 0x2516bf0, static_id: 2 11361843: cap 0: Create spark for conjunction: 0x2516bf0 spark: 0x47 11362117: cap 0: Start a parallel conjunction 0x2516c50, static_id: 2 11362302: cap 0: Create spark for conjunction: 0x2516c50 spark: 0x48 11362599: cap 0: Start a parallel conjunction 0x2516cb0, static_id: 2 11362810: cap 0: Create spark for conjunction: 0x2516cb0 spark: 0x49 11363089: cap 0: Start a parallel conjunction 0x2516d10, static_id: 2 11363274: cap 0: Create spark for conjunction: 0x2516d10 spark: 0x4a 11363553: cap 0: Start a parallel conjunction 0x2516d70, static_id: 2 11363742: cap 0: Create spark for conjunction: 0x2516d70 spark: 0x4b 11364021: cap 0: Start a parallel conjunction 0x2516dd0, static_id: 2 11364205: cap 0: Create spark for conjunction: 0x2516dd0 spark: 0x4c 11364480: cap 0: Start a parallel conjunction 0x2516e30, static_id: 2 11364682: cap 0: Create spark for conjunction: 0x2516e30 spark: 0x4d 11364948: cap 0: Start a parallel conjunction 0x2516e90, static_id: 2 11365128: cap 0: Create spark for conjunction: 0x2516e90 spark: 0x4e 11365420: cap 0: Start a parallel conjunction 0x2516ef0, static_id: 2 11365609: cap 0: Create spark for conjunction: 0x2516ef0 spark: 0x4f 11365879: cap 0: Start a parallel conjunction 0x2516f50, static_id: 2 11366059: cap 0: Create spark for conjunction: 0x2516f50 spark: 0x50 11366338: cap 0: Start a parallel conjunction 0x2516fb0, static_id: 2 11366527: cap 0: Create spark for conjunction: 0x2516fb0 spark: 0x51 11366833: cap 0: Start a parallel conjunction 0x2517010, static_id: 2 11367022: cap 0: Create spark for conjunction: 0x2517010 spark: 0x52 11367319: cap 0: Start a parallel conjunction 0x2517070, static_id: 2 11367513: cap 0: Create spark for conjunction: 0x2517070 spark: 0x53 11367778: cap 0: Start a parallel conjunction 0x25170d0, static_id: 2 11367972: cap 0: Create spark for conjunction: 0x25170d0 spark: 0x54 11368246: cap 0: Start a parallel conjunction 0x2517130, static_id: 2 11368444: cap 0: Create spark for conjunction: 0x2517130 spark: 0x55 11368723: cap 0: Start a parallel conjunction 0x2517190, static_id: 2 11368908: cap 0: Create spark for conjunction: 0x2517190 spark: 0x56 11369182: cap 0: Start a parallel conjunction 0x25171f0, static_id: 2 11369385: cap 0: Create spark for conjunction: 0x25171f0 spark: 0x57 11369664: cap 0: Start a parallel conjunction 0x2517250, static_id: 2 11369853: cap 0: Create spark for conjunction: 0x2517250 spark: 0x58 11370136: cap 0: Start a parallel conjunction 0x25172b0, static_id: 2 11370334: cap 0: Create spark for conjunction: 0x25172b0 spark: 0x59 11370609: cap 0: Start a parallel conjunction 0x2517310, static_id: 2 11370811: cap 0: Create spark for conjunction: 0x2517310 spark: 0x5a 11371090: cap 0: Start a parallel conjunction 0x2517370, static_id: 2 11371297: cap 0: Create spark for conjunction: 0x2517370 spark: 0x5b 11371702: cap 0: Start a parallel conjunction 0x25173d0, static_id: 2 11371887: cap 0: Create spark for conjunction: 0x25173d0 spark: 0x5c 11372152: cap 0: Start a parallel conjunction 0x2517430, static_id: 2 11372463: cap 0: Create spark for conjunction: 0x2517430 spark: 0x5d 11372746: cap 0: Start a parallel conjunction 0x2517490, static_id: 2 11372931: cap 0: Create spark for conjunction: 0x2517490 spark: 0x5e 11373349: cap 0: Start a parallel conjunction 0x25174f0, static_id: 2 11373552: cap 0: Create spark for conjunction: 0x25174f0 spark: 0x5f 11373831: cap 0: Start a parallel conjunction 0x2517550, static_id: 2 11374024: cap 0: Create spark for conjunction: 0x2517550 spark: 0x60 11374299: cap 0: Start a parallel conjunction 0x25175b0, static_id: 2 11374492: cap 0: Create spark for conjunction: 0x25175b0 spark: 0x61 11374758: cap 0: Start a parallel conjunction 0x2517610, static_id: 2 11374942: cap 0: Create spark for conjunction: 0x2517610 spark: 0x62 11375221: cap 0: Start a parallel conjunction 0x2517670, static_id: 2 11375415: cap 0: Create spark for conjunction: 0x2517670 spark: 0x63 11375671: cap 0: Start a parallel conjunction 0x25176d0, static_id: 2 11375865: cap 0: Create spark for conjunction: 0x25176d0 spark: 0x64 11376148: cap 0: Start a parallel conjunction 0x2517730, static_id: 2 11376342: cap 0: Create spark for conjunction: 0x2517730 spark: 0x65 11376616: cap 0: Start a parallel conjunction 0x2517790, static_id: 2 11376805: cap 0: Create spark for conjunction: 0x2517790 spark: 0x66 11377062: cap 0: Start a parallel conjunction 0x25177f0, static_id: 2 11377264: cap 0: Create spark for conjunction: 0x25177f0 spark: 0x67 11377539: cap 0: Start a parallel conjunction 0x2517850, static_id: 2 11377723: cap 0: Create spark for conjunction: 0x2517850 spark: 0x68 11378007: cap 0: Start a parallel conjunction 0x25178b0, static_id: 2 11378205: cap 0: Create spark for conjunction: 0x25178b0 spark: 0x69 11378484: cap 0: Start a parallel conjunction 0x2517910, static_id: 2 11378677: cap 0: Create spark for conjunction: 0x2517910 spark: 0x6a 11378965: cap 0: Start a parallel conjunction 0x2517970, static_id: 2 11379168: cap 0: Create spark for conjunction: 0x2517970 spark: 0x6b 11379465: cap 0: Start a parallel conjunction 0x25179d0, static_id: 2 11379649: cap 0: Create spark for conjunction: 0x25179d0 spark: 0x6c 11379915: cap 0: Start a parallel conjunction 0x2517a30, static_id: 2 11380117: cap 0: Create spark for conjunction: 0x2517a30 spark: 0x6d 11380378: cap 0: Start a parallel conjunction 0x2517a90, static_id: 2 11380558: cap 0: Create spark for conjunction: 0x2517a90 spark: 0x6e 11380837: cap 0: Start a parallel conjunction 0x2517af0, static_id: 2 11381040: cap 0: Create spark for conjunction: 0x2517af0 spark: 0x6f 11381296: cap 0: Start a parallel conjunction 0x2517b50, static_id: 2 11381481: cap 0: Create spark for conjunction: 0x2517b50 spark: 0x70 11381751: cap 0: Start a parallel conjunction 0x2517bb0, static_id: 2 11381953: cap 0: Create spark for conjunction: 0x2517bb0 spark: 0x71 11382219: cap 0: Start a parallel conjunction 0x2517c10, static_id: 2 11382412: cap 0: Create spark for conjunction: 0x2517c10 spark: 0x72 11382700: cap 0: Start a parallel conjunction 0x2517c70, static_id: 2 11382912: cap 0: Create spark for conjunction: 0x2517c70 spark: 0x73 11383195: cap 0: Start a parallel conjunction 0x2517cd0, static_id: 2 11383402: cap 0: Create spark for conjunction: 0x2517cd0 spark: 0x74 11383672: cap 0: Start a parallel conjunction 0x2517d30, static_id: 2 11383875: cap 0: Create spark for conjunction: 0x2517d30 spark: 0x75 11384163: cap 0: Start a parallel conjunction 0x2517d90, static_id: 2 11384352: cap 0: Create spark for conjunction: 0x2517d90 spark: 0x76 11384622: cap 0: Start a parallel conjunction 0x2517df0, static_id: 2 11384824: cap 0: Create spark for conjunction: 0x2517df0 spark: 0x77 11385099: cap 0: Start a parallel conjunction 0x2517e50, static_id: 2 11385288: cap 0: Create spark for conjunction: 0x2517e50 spark: 0x78 11385567: cap 0: Start a parallel conjunction 0x2517eb0, static_id: 2 11385765: cap 0: Create spark for conjunction: 0x2517eb0 spark: 0x79 11386021: cap 0: Start a parallel conjunction 0x2517f10, static_id: 2 11386210: cap 0: Create spark for conjunction: 0x2517f10 spark: 0x7a 11386480: cap 0: Start a parallel conjunction 0x2517f70, static_id: 2 11386674: cap 0: Create spark for conjunction: 0x2517f70 spark: 0x7b 11386971: cap 0: Start a parallel conjunction 0x2517fd0, static_id: 2 11387160: cap 0: Create spark for conjunction: 0x2517fd0 spark: 0x7c 11387475: cap 0: Start a parallel conjunction 0x2518030, static_id: 2 11387695: cap 0: Create spark for conjunction: 0x2518030 spark: 0x7d 11388001: cap 0: Start a parallel conjunction 0x2518090, static_id: 2 11388190: cap 0: Create spark for conjunction: 0x2518090 spark: 0x7e 11388496: cap 0: Start a parallel conjunction 0x25180f0, static_id: 2 11388699: cap 0: Create spark for conjunction: 0x25180f0 spark: 0x7f 11388960: cap 0: Start a parallel conjunction 0x2518150, static_id: 2 11389144: cap 0: Create spark for conjunction: 0x2518150 spark: 0x80 11389423: cap 0: Start a parallel conjunction 0x25181b0, static_id: 2 11409403: cap 0: Create spark for conjunction: 0x25181b0 spark: 0x81 11409732: cap 0: Start a parallel conjunction 0x2518210, static_id: 2 11409930: cap 0: Create spark for conjunction: 0x2518210 spark: 0x82 11410236: cap 0: Start a parallel conjunction 0x2518270, static_id: 2 11410425: cap 0: Create spark for conjunction: 0x2518270 spark: 0x83 11410699: cap 0: Start a parallel conjunction 0x25182d0, static_id: 2 11410947: cap 0: Create spark for conjunction: 0x25182d0 spark: 0x84 11411226: cap 0: Start a parallel conjunction 0x2518330, static_id: 2 11411406: cap 0: Create spark for conjunction: 0x2518330 spark: 0x85 11411694: cap 0: Start a parallel conjunction 0x2518390, static_id: 2 11411874: cap 0: Create spark for conjunction: 0x2518390 spark: 0x86 11412135: cap 0: Start a parallel conjunction 0x25183f0, static_id: 2 11412337: cap 0: Create spark for conjunction: 0x25183f0 spark: 0x87 11412621: cap 0: Start a parallel conjunction 0x2518450, static_id: 2 11412868: cap 0: Create spark for conjunction: 0x2518450 spark: 0x88 11413170: cap 0: Start a parallel conjunction 0x25184b0, static_id: 2 11413363: cap 0: Create spark for conjunction: 0x25184b0 spark: 0x89 11413638: cap 0: Start a parallel conjunction 0x2518510, static_id: 2 11413822: cap 0: Create spark for conjunction: 0x2518510 spark: 0x8a 11414218: cap 0: Start a parallel conjunction 0x2518570, static_id: 2 11414461: cap 0: Create spark for conjunction: 0x2518570 spark: 0x8b 11414758: cap 0: Start a parallel conjunction 0x25185d0, static_id: 2 11414938: cap 0: Create spark for conjunction: 0x25185d0 spark: 0x8c 11415213: cap 0: Start a parallel conjunction 0x2518630, static_id: 2 11415415: cap 0: Create spark for conjunction: 0x2518630 spark: 0x8d 11415685: cap 0: Start a parallel conjunction 0x2518690, static_id: 2 11415865: cap 0: Create spark for conjunction: 0x2518690 spark: 0x8e 11416149: cap 0: Start a parallel conjunction 0x25186f0, static_id: 2 11416333: cap 0: Create spark for conjunction: 0x25186f0 spark: 0x8f 11416603: cap 0: Start a parallel conjunction 0x2518750, static_id: 2 11416788: cap 0: Create spark for conjunction: 0x2518750 spark: 0x90 11417067: cap 0: Start a parallel conjunction 0x25187b0, static_id: 2 11417256: cap 0: Create spark for conjunction: 0x25187b0 spark: 0x91 11417530: cap 0: Start a parallel conjunction 0x2518810, static_id: 2 11417715: cap 0: Create spark for conjunction: 0x2518810 spark: 0x92 11418012: cap 0: Start a parallel conjunction 0x2518870, static_id: 2 11418205: cap 0: Create spark for conjunction: 0x2518870 spark: 0x93 11418471: cap 0: Start a parallel conjunction 0x25188d0, static_id: 2 11418669: cap 0: Create spark for conjunction: 0x25188d0 spark: 0x94 11418961: cap 0: Start a parallel conjunction 0x2518930, static_id: 2 11419150: cap 0: Create spark for conjunction: 0x2518930 spark: 0x95 11419434: cap 0: Start a parallel conjunction 0x2518990, static_id: 2 11419618: cap 0: Create spark for conjunction: 0x2518990 spark: 0x96 11419879: cap 0: Start a parallel conjunction 0x25189f0, static_id: 2 11420077: cap 0: Create spark for conjunction: 0x25189f0 spark: 0x97 11420352: cap 0: Start a parallel conjunction 0x2518a50, static_id: 2 11420536: cap 0: Create spark for conjunction: 0x2518a50 spark: 0x98 11420838: cap 0: Start a parallel conjunction 0x2518ab0, static_id: 2 11421036: cap 0: Create spark for conjunction: 0x2518ab0 spark: 0x99 11421315: cap 0: Start a parallel conjunction 0x2518b10, static_id: 2 11421513: cap 0: Create spark for conjunction: 0x2518b10 spark: 0x9a 11421792: cap 0: Start a parallel conjunction 0x2518b70, static_id: 2 11421985: cap 0: Create spark for conjunction: 0x2518b70 spark: 0x9b 11422264: cap 0: Start a parallel conjunction 0x2518bd0, static_id: 2 11422449: cap 0: Create spark for conjunction: 0x2518bd0 spark: 0x9c 11422737: cap 0: Start a parallel conjunction 0x2518c30, static_id: 2 11422939: cap 0: Create spark for conjunction: 0x2518c30 spark: 0x9d 11423209: cap 0: Start a parallel conjunction 0x2518c90, static_id: 2 11423403: cap 0: Create spark for conjunction: 0x2518c90 spark: 0x9e 11423686: cap 0: Start a parallel conjunction 0x2518cf0, static_id: 2 11423871: cap 0: Create spark for conjunction: 0x2518cf0 spark: 0x9f 11424136: cap 0: Start a parallel conjunction 0x2518d50, static_id: 2 11424316: cap 0: Create spark for conjunction: 0x2518d50 spark: 0xa0 11424586: cap 0: Start a parallel conjunction 0x2518db0, static_id: 2 11424780: cap 0: Create spark for conjunction: 0x2518db0 spark: 0xa1 11425050: cap 0: Start a parallel conjunction 0x2518e10, static_id: 2 11425234: cap 0: Create spark for conjunction: 0x2518e10 spark: 0xa2 11425536: cap 0: Start a parallel conjunction 0x2518e70, static_id: 2 11425725: cap 0: Create spark for conjunction: 0x2518e70 spark: 0xa3 11425995: cap 0: Start a parallel conjunction 0x2518ed0, static_id: 2 11426184: cap 0: Create spark for conjunction: 0x2518ed0 spark: 0xa4 11426458: cap 0: Start a parallel conjunction 0x2518f30, static_id: 2 11426643: cap 0: Create spark for conjunction: 0x2518f30 spark: 0xa5 11426935: cap 0: Start a parallel conjunction 0x2518f90, static_id: 2 11427151: cap 0: Create spark for conjunction: 0x2518f90 spark: 0xa6 11427466: cap 0: Start a parallel conjunction 0x2518ff0, static_id: 2 11427673: cap 0: Create spark for conjunction: 0x2518ff0 spark: 0xa7 11427952: cap 0: Start a parallel conjunction 0x2519050, static_id: 2 11428141: cap 0: Create spark for conjunction: 0x2519050 spark: 0xa8 11428429: cap 0: Start a parallel conjunction 0x25190b0, static_id: 2 11428609: cap 0: Create spark for conjunction: 0x25190b0 spark: 0xa9 11428875: cap 0: Start a parallel conjunction 0x2519110, static_id: 2 11429064: cap 0: Create spark for conjunction: 0x2519110 spark: 0xaa 11429365: cap 0: Start a parallel conjunction 0x2519170, static_id: 2 11429554: cap 0: Create spark for conjunction: 0x2519170 spark: 0xab 11429842: cap 0: Start a parallel conjunction 0x25191d0, static_id: 2 11430036: cap 0: Create spark for conjunction: 0x25191d0 spark: 0xac 11430310: cap 0: Start a parallel conjunction 0x2519230, static_id: 2 11430504: cap 0: Create spark for conjunction: 0x2519230 spark: 0xad 11430774: cap 0: Start a parallel conjunction 0x2519290, static_id: 2 11430954: cap 0: Create spark for conjunction: 0x2519290 spark: 0xae 11431246: cap 0: Start a parallel conjunction 0x25192f0, static_id: 2 11431431: cap 0: Create spark for conjunction: 0x25192f0 spark: 0xaf 11431696: cap 0: Start a parallel conjunction 0x2519350, static_id: 2 11431885: cap 0: Create spark for conjunction: 0x2519350 spark: 0xb0 11432164: cap 0: Start a parallel conjunction 0x25193b0, static_id: 2 11432358: cap 0: Create spark for conjunction: 0x25193b0 spark: 0xb1 11432632: cap 0: Start a parallel conjunction 0x2519410, static_id: 2 11432821: cap 0: Create spark for conjunction: 0x2519410 spark: 0xb2 11433213: cap 0: Start a parallel conjunction 0x2519470, static_id: 2 11433406: cap 0: Create spark for conjunction: 0x2519470 spark: 0xb3 11433681: cap 0: Start a parallel conjunction 0x25194d0, static_id: 2 11433892: cap 0: Create spark for conjunction: 0x25194d0 spark: 0xb4 11434185: cap 0: Start a parallel conjunction 0x2519530, static_id: 2 11434378: cap 0: Create spark for conjunction: 0x2519530 spark: 0xb5 11434657: cap 0: Start a parallel conjunction 0x2519590, static_id: 2 11434842: cap 0: Create spark for conjunction: 0x2519590 spark: 0xb6 11435107: cap 0: Start a parallel conjunction 0x25195f0, static_id: 2 11435323: cap 0: Create spark for conjunction: 0x25195f0 spark: 0xb7 11435611: cap 0: Start a parallel conjunction 0x2519650, static_id: 2 11435805: cap 0: Create spark for conjunction: 0x2519650 spark: 0xb8 11436237: cap 0: Start a parallel conjunction 0x25196b0, static_id: 2 11436421: cap 0: Create spark for conjunction: 0x25196b0 spark: 0xb9 11436682: cap 0: Start a parallel conjunction 0x2519710, static_id: 2 11436979: cap 0: Create spark for conjunction: 0x2519710 spark: 0xba 11437285: cap 0: Start a parallel conjunction 0x2519770, static_id: 2 11437488: cap 0: Create spark for conjunction: 0x2519770 spark: 0xbb 11437834: cap 0: Start a parallel conjunction 0x25197d0, static_id: 2 11438028: cap 0: Create spark for conjunction: 0x25197d0 spark: 0xbc 11438311: cap 0: Start a parallel conjunction 0x2519830, static_id: 2 11438500: cap 0: Create spark for conjunction: 0x2519830 spark: 0xbd 11438770: cap 0: Start a parallel conjunction 0x2519890, static_id: 2 11438959: cap 0: Create spark for conjunction: 0x2519890 spark: 0xbe 11439243: cap 0: Start a parallel conjunction 0x25198f0, static_id: 2 11439432: cap 0: Create spark for conjunction: 0x25198f0 spark: 0xbf 11439693: cap 0: Start a parallel conjunction 0x2519950, static_id: 2 11439886: cap 0: Create spark for conjunction: 0x2519950 spark: 0xc0 11440170: cap 0: Start a parallel conjunction 0x25199b0, static_id: 2 11440363: cap 0: Create spark for conjunction: 0x25199b0 spark: 0xc1 11440633: cap 0: Start a parallel conjunction 0x2519a10, static_id: 2 11440818: cap 0: Create spark for conjunction: 0x2519a10 spark: 0xc2 11441097: cap 0: Start a parallel conjunction 0x2519a70, static_id: 2 11441290: cap 0: Create spark for conjunction: 0x2519a70 spark: 0xc3 11441560: cap 0: Start a parallel conjunction 0x2519ad0, static_id: 2 11441749: cap 0: Create spark for conjunction: 0x2519ad0 spark: 0xc4 11442037: cap 0: Start a parallel conjunction 0x2519b30, static_id: 2 11442235: cap 0: Create spark for conjunction: 0x2519b30 spark: 0xc5 11442514: cap 0: Start a parallel conjunction 0x2519b90, static_id: 2 11442699: cap 0: Create spark for conjunction: 0x2519b90 spark: 0xc6 11442964: cap 0: Start a parallel conjunction 0x2519bf0, static_id: 2 11443167: cap 0: Create spark for conjunction: 0x2519bf0 spark: 0xc7 11443446: cap 0: Start a parallel conjunction 0x2519c50, static_id: 2 11443635: cap 0: Create spark for conjunction: 0x2519c50 spark: 0xc8 11444053: cap 0: Start a parallel conjunction 0x2519cb0, static_id: 2 11444251: cap 0: Create spark for conjunction: 0x2519cb0 spark: 0xc9 11444517: cap 0: Start a parallel conjunction 0x2519d10, static_id: 2 11444701: cap 0: Create spark for conjunction: 0x2519d10 spark: 0xca 11444971: cap 0: Start a parallel conjunction 0x2519d70, static_id: 2 11445165: cap 0: Create spark for conjunction: 0x2519d70 spark: 0xcb 11445453: cap 0: Start a parallel conjunction 0x2519dd0, static_id: 2 11445637: cap 0: Create spark for conjunction: 0x2519dd0 spark: 0xcc 11445912: cap 0: Start a parallel conjunction 0x2519e30, static_id: 2 11446101: cap 0: Create spark for conjunction: 0x2519e30 spark: 0xcd 11446380: cap 0: Start a parallel conjunction 0x2519e90, static_id: 2 11446564: cap 0: Create spark for conjunction: 0x2519e90 spark: 0xce 11446848: cap 0: Start a parallel conjunction 0x2519ef0, static_id: 2 11447041: cap 0: Create spark for conjunction: 0x2519ef0 spark: 0xcf 11447316: cap 0: Start a parallel conjunction 0x2519f50, static_id: 2 11447505: cap 0: Create spark for conjunction: 0x2519f50 spark: 0xd0 11447793: cap 0: Start a parallel conjunction 0x2519fb0, static_id: 2 11447991: cap 0: Create spark for conjunction: 0x2519fb0 spark: 0xd1 11448544: cap 0: Start a parallel conjunction 0x251a010, static_id: 2 11448729: cap 0: Create spark for conjunction: 0x251a010 spark: 0xd2 11449026: cap 0: Start a parallel conjunction 0x251a070, static_id: 2 11449206: cap 0: Create spark for conjunction: 0x251a070 spark: 0xd3 11449480: cap 0: Start a parallel conjunction 0x251a0d0, static_id: 2 11449678: cap 0: Create spark for conjunction: 0x251a0d0 spark: 0xd4 11449957: cap 0: Start a parallel conjunction 0x251a130, static_id: 2 11450155: cap 0: Create spark for conjunction: 0x251a130 spark: 0xd5 11450443: cap 0: Start a parallel conjunction 0x251a190, static_id: 2 11450623: cap 0: Create spark for conjunction: 0x251a190 spark: 0xd6 11450884: cap 0: Start a parallel conjunction 0x251a1f0, static_id: 2 11451087: cap 0: Create spark for conjunction: 0x251a1f0 spark: 0xd7 11451370: cap 0: Start a parallel conjunction 0x251a250, static_id: 2 11451555: cap 0: Create spark for conjunction: 0x251a250 spark: 0xd8 11451852: cap 0: Start a parallel conjunction 0x251a2b0, static_id: 2 11452041: cap 0: Create spark for conjunction: 0x251a2b0 spark: 0xd9 11452311: cap 0: Start a parallel conjunction 0x251a310, static_id: 2 11452500: cap 0: Create spark for conjunction: 0x251a310 spark: 0xda 11452779: cap 0: Start a parallel conjunction 0x251a370, static_id: 2 11452968: cap 0: Create spark for conjunction: 0x251a370 spark: 0xdb 11453247: cap 0: Start a parallel conjunction 0x251a3d0, static_id: 2 11453427: cap 0: Create spark for conjunction: 0x251a3d0 spark: 0xdc 11453701: cap 0: Start a parallel conjunction 0x251a430, static_id: 2 11453904: cap 0: Create spark for conjunction: 0x251a430 spark: 0xdd 11454174: cap 0: Start a parallel conjunction 0x251a490, static_id: 2 11454354: cap 0: Create spark for conjunction: 0x251a490 spark: 0xde 11454637: cap 0: Start a parallel conjunction 0x251a4f0, static_id: 2 11454826: cap 0: Create spark for conjunction: 0x251a4f0 spark: 0xdf 11455092: cap 0: Start a parallel conjunction 0x251a550, static_id: 2 11455272: cap 0: Create spark for conjunction: 0x251a550 spark: 0xe0 11455546: cap 0: Start a parallel conjunction 0x251a5b0, static_id: 2 11455731: cap 0: Create spark for conjunction: 0x251a5b0 spark: 0xe1 11456014: cap 0: Start a parallel conjunction 0x251a610, static_id: 2 11456199: cap 0: Create spark for conjunction: 0x251a610 spark: 0xe2 11456487: cap 0: Start a parallel conjunction 0x251a670, static_id: 2 11456676: cap 0: Create spark for conjunction: 0x251a670 spark: 0xe3 11456946: cap 0: Start a parallel conjunction 0x251a6d0, static_id: 2 11457148: cap 0: Create spark for conjunction: 0x251a6d0 spark: 0xe4 11457445: cap 0: Start a parallel conjunction 0x251a730, static_id: 2 11457639: cap 0: Create spark for conjunction: 0x251a730 spark: 0xe5 11457927: cap 0: Start a parallel conjunction 0x251a790, static_id: 2 11458107: cap 0: Create spark for conjunction: 0x251a790 spark: 0xe6 11458372: cap 0: Start a parallel conjunction 0x251a7f0, static_id: 2 11458566: cap 0: Create spark for conjunction: 0x251a7f0 spark: 0xe7 11458836: cap 0: Start a parallel conjunction 0x251a850, static_id: 2 11459020: cap 0: Create spark for conjunction: 0x251a850 spark: 0xe8 11459299: cap 0: Start a parallel conjunction 0x251a8b0, static_id: 2 11459493: cap 0: Create spark for conjunction: 0x251a8b0 spark: 0xe9 11459758: cap 0: Start a parallel conjunction 0x251a910, static_id: 2 11466868: cap 0: Create spark for conjunction: 0x251a910 spark: 0xea 11467057: cap 0: Start a parallel conjunction 0x251a970, static_id: 2 11467179: cap 0: Create spark for conjunction: 0x251a970 spark: 0xeb 11467372: cap 0: Start a parallel conjunction 0x251a9d0, static_id: 2 11467494: cap 0: Create spark for conjunction: 0x251a9d0 spark: 0xec 11467683: cap 0: Start a parallel conjunction 0x251aa30, static_id: 2 11467809: cap 0: Create spark for conjunction: 0x251aa30 spark: 0xed 11467993: cap 0: Start a parallel conjunction 0x251aa90, static_id: 2 11468115: cap 0: Create spark for conjunction: 0x251aa90 spark: 0xee 11468304: cap 0: Start a parallel conjunction 0x251aaf0, static_id: 2 11468434: cap 0: Create spark for conjunction: 0x251aaf0 spark: 0xef 11468619: cap 0: Start a parallel conjunction 0x251ab50, static_id: 2 11468740: cap 0: Create spark for conjunction: 0x251ab50 spark: 0xf0 11468920: cap 0: Start a parallel conjunction 0x251abb0, static_id: 2 11469046: cap 0: Create spark for conjunction: 0x251abb0 spark: 0xf1 11469226: cap 0: Start a parallel conjunction 0x251ac10, static_id: 2 11469348: cap 0: Create spark for conjunction: 0x251ac10 spark: 0xf2 11469532: cap 0: Start a parallel conjunction 0x251ac70, static_id: 2 11469658: cap 0: Create spark for conjunction: 0x251ac70 spark: 0xf3 11469834: cap 0: Start a parallel conjunction 0x251acd0, static_id: 2 11469960: cap 0: Create spark for conjunction: 0x251acd0 spark: 0xf4 11470144: cap 0: Start a parallel conjunction 0x251ad30, static_id: 2 11470270: cap 0: Create spark for conjunction: 0x251ad30 spark: 0xf5 11470464: cap 0: Start a parallel conjunction 0x251ad90, static_id: 2 11470585: cap 0: Create spark for conjunction: 0x251ad90 spark: 0xf6 11470761: cap 0: Start a parallel conjunction 0x251adf0, static_id: 2 11470887: cap 0: Create spark for conjunction: 0x251adf0 spark: 0xf7 11471071: cap 0: Start a parallel conjunction 0x251ae50, static_id: 2 11471193: cap 0: Create spark for conjunction: 0x251ae50 spark: 0xf8 11471391: cap 0: Start a parallel conjunction 0x251aeb0, static_id: 2 11471512: cap 0: Create spark for conjunction: 0x251aeb0 spark: 0xf9 11471692: cap 0: Start a parallel conjunction 0x251af10, static_id: 2 11471818: cap 0: Create spark for conjunction: 0x251af10 spark: 0xfa 11472223: cap 0: Start a parallel conjunction 0x251af70, static_id: 2 11472349: cap 0: Create spark for conjunction: 0x251af70 spark: 0xfb 11472718: cap 0: Start a parallel conjunction 0x251afd0, static_id: 2 11472844: cap 0: Create spark for conjunction: 0x251afd0 spark: 0xfc 11473209: cap 0: Start a parallel conjunction 0x251b030, static_id: 2 11473339: cap 0: Create spark for conjunction: 0x251b030 spark: 0xfd 11473524: cap 0: Start a parallel conjunction 0x251b090, static_id: 2 11473645: cap 0: Create spark for conjunction: 0x251b090 spark: 0xfe 11473834: cap 0: Start a parallel conjunction 0x251b0f0, static_id: 2 11473956: cap 0: Create spark for conjunction: 0x251b0f0 spark: 0xff 11474136: cap 0: Start a parallel conjunction 0x251b150, static_id: 2 11474257: cap 0: Create spark for conjunction: 0x251b150 spark: 0x100 11474446: cap 0: Start a parallel conjunction 0x251b1b0, static_id: 2 11497689: cap 0: Create spark for conjunction: 0x251b1b0 spark: 0x101 11497918: cap 0: Start a parallel conjunction 0x251b210, static_id: 2 11498053: cap 0: Create spark for conjunction: 0x251b210 spark: 0x102 11498256: cap 0: Start a parallel conjunction 0x251b270, static_id: 2 11498391: cap 0: Create spark for conjunction: 0x251b270 spark: 0x103 11498566: cap 0: Start a parallel conjunction 0x251b2d0, static_id: 2 11498742: cap 0: Create spark for conjunction: 0x251b2d0 spark: 0x104 11498926: cap 0: Start a parallel conjunction 0x251b330, static_id: 2 11499057: cap 0: Create spark for conjunction: 0x251b330 spark: 0x105 11499246: cap 0: Start a parallel conjunction 0x251b390, static_id: 2 11499372: cap 0: Create spark for conjunction: 0x251b390 spark: 0x106 11499561: cap 0: Start a parallel conjunction 0x251b3f0, static_id: 2 11499696: cap 0: Create spark for conjunction: 0x251b3f0 spark: 0x107 11499876: cap 0: Start a parallel conjunction 0x251b450, static_id: 2 11500042: cap 0: Create spark for conjunction: 0x251b450 spark: 0x108 11500245: cap 0: Start a parallel conjunction 0x251b4b0, static_id: 2 11500375: cap 0: Create spark for conjunction: 0x251b4b0 spark: 0x109 11500555: cap 0: Start a parallel conjunction 0x251b510, static_id: 2 11500681: cap 0: Create spark for conjunction: 0x251b510 spark: 0x10a 11500866: cap 0: Start a parallel conjunction 0x251b570, static_id: 2 11500987: cap 0: Create spark for conjunction: 0x251b570 spark: 0x10b 11501176: cap 0: Start a parallel conjunction 0x251b5d0, static_id: 2 11501307: cap 0: Create spark for conjunction: 0x251b5d0 spark: 0x10c 11501496: cap 0: Start a parallel conjunction 0x251b630, static_id: 2 11501631: cap 0: Create spark for conjunction: 0x251b630 spark: 0x10d 11501815: cap 0: Start a parallel conjunction 0x251b690, static_id: 2 11501937: cap 0: Create spark for conjunction: 0x251b690 spark: 0x10e 11502135: cap 0: Start a parallel conjunction 0x251b6f0, static_id: 2 11502274: cap 0: Create spark for conjunction: 0x251b6f0 spark: 0x10f 11502445: cap 0: Start a parallel conjunction 0x251b750, static_id: 2 11502567: cap 0: Create spark for conjunction: 0x251b750 spark: 0x110 11502769: cap 0: Start a parallel conjunction 0x251b7b0, static_id: 2 11502895: cap 0: Create spark for conjunction: 0x251b7b0 spark: 0x111 11503075: cap 0: Start a parallel conjunction 0x251b810, static_id: 2 11503192: cap 0: Create spark for conjunction: 0x251b810 spark: 0x112 11503377: cap 0: Start a parallel conjunction 0x251b870, static_id: 2 11503507: cap 0: Create spark for conjunction: 0x251b870 spark: 0x113 11503687: cap 0: Start a parallel conjunction 0x251b8d0, static_id: 2 11503818: cap 0: Create spark for conjunction: 0x251b8d0 spark: 0x114 11504007: cap 0: Start a parallel conjunction 0x251b930, static_id: 2 11504137: cap 0: Create spark for conjunction: 0x251b930 spark: 0x115 11504470: cap 0: Start a parallel conjunction 0x251b990, static_id: 2 11504592: cap 0: Create spark for conjunction: 0x251b990 spark: 0x116 11504790: cap 0: Start a parallel conjunction 0x251b9f0, static_id: 2 11505217: cap 0: Create spark for conjunction: 0x251b9f0 spark: 0x117 11505402: cap 0: Start a parallel conjunction 0x251ba50, static_id: 2 11505523: cap 0: Create spark for conjunction: 0x251ba50 spark: 0x118 11505721: cap 0: Start a parallel conjunction 0x251bab0, static_id: 2 11505852: cap 0: Create spark for conjunction: 0x251bab0 spark: 0x119 11506041: cap 0: Start a parallel conjunction 0x251bb10, static_id: 2 11506167: cap 0: Create spark for conjunction: 0x251bb10 spark: 0x11a 11506369: cap 0: Start a parallel conjunction 0x251bb70, static_id: 2 11506500: cap 0: Create spark for conjunction: 0x251bb70 spark: 0x11b 11506689: cap 0: Start a parallel conjunction 0x251bbd0, static_id: 2 11506810: cap 0: Create spark for conjunction: 0x251bbd0 spark: 0x11c 11506990: cap 0: Start a parallel conjunction 0x251bc30, static_id: 2 11507130: cap 0: Create spark for conjunction: 0x251bc30 spark: 0x11d 11507310: cap 0: Start a parallel conjunction 0x251bc90, static_id: 2 11507431: cap 0: Create spark for conjunction: 0x251bc90 spark: 0x11e 11507620: cap 0: Start a parallel conjunction 0x251bcf0, static_id: 2 11507751: cap 0: Create spark for conjunction: 0x251bcf0 spark: 0x11f 11507926: cap 0: Start a parallel conjunction 0x251bd50, static_id: 2 11508052: cap 0: Create spark for conjunction: 0x251bd50 spark: 0x120 11508237: cap 0: Start a parallel conjunction 0x251bdb0, static_id: 2 11508363: cap 0: Create spark for conjunction: 0x251bdb0 spark: 0x121 11508556: cap 0: Start a parallel conjunction 0x251be10, static_id: 2 11508682: cap 0: Create spark for conjunction: 0x251be10 spark: 0x122 11508889: cap 0: Start a parallel conjunction 0x251be70, static_id: 2 11509020: cap 0: Create spark for conjunction: 0x251be70 spark: 0x123 11509200: cap 0: Start a parallel conjunction 0x251bed0, static_id: 2 11509326: cap 0: Create spark for conjunction: 0x251bed0 spark: 0x124 11509510: cap 0: Start a parallel conjunction 0x251bf30, static_id: 2 11509636: cap 0: Create spark for conjunction: 0x251bf30 spark: 0x125 11509929: cap 0: Start a parallel conjunction 0x251bf90, static_id: 2 11510050: cap 0: Create spark for conjunction: 0x251bf90 spark: 0x126 11510361: cap 0: Start a parallel conjunction 0x251bff0, static_id: 2 11510496: cap 0: Create spark for conjunction: 0x251bff0 spark: 0x127 11510685: cap 0: Start a parallel conjunction 0x251c050, static_id: 2 11510811: cap 0: Create spark for conjunction: 0x251c050 spark: 0x128 11511000: cap 0: Start a parallel conjunction 0x251c0b0, static_id: 2 11511126: cap 0: Create spark for conjunction: 0x251c0b0 spark: 0x129 11511301: cap 0: Start a parallel conjunction 0x251c110, static_id: 2 11511427: cap 0: Create spark for conjunction: 0x251c110 spark: 0x12a 11511612: cap 0: Start a parallel conjunction 0x251c170, static_id: 2 11511733: cap 0: Create spark for conjunction: 0x251c170 spark: 0x12b 11511918: cap 0: Start a parallel conjunction 0x251c1d0, static_id: 2 11512039: cap 0: Create spark for conjunction: 0x251c1d0 spark: 0x12c 11512219: cap 0: Start a parallel conjunction 0x251c230, static_id: 2 11512345: cap 0: Create spark for conjunction: 0x251c230 spark: 0x12d 11512530: cap 0: Start a parallel conjunction 0x251c290, static_id: 2 11512647: cap 0: Create spark for conjunction: 0x251c290 spark: 0x12e 11512939: cap 0: Start a parallel conjunction 0x251c2f0, static_id: 2 11513061: cap 0: Create spark for conjunction: 0x251c2f0 spark: 0x12f 11513232: cap 0: Start a parallel conjunction 0x251c350, static_id: 2 11513353: cap 0: Create spark for conjunction: 0x251c350 spark: 0x130 11513538: cap 0: Start a parallel conjunction 0x251c3b0, static_id: 2 11513664: cap 0: Create spark for conjunction: 0x251c3b0 spark: 0x131 11513839: cap 0: Start a parallel conjunction 0x251c410, static_id: 2 11513961: cap 0: Create spark for conjunction: 0x251c410 spark: 0x132 11514267: cap 0: Start a parallel conjunction 0x251c470, static_id: 2 11514397: cap 0: Create spark for conjunction: 0x251c470 spark: 0x133 11514568: cap 0: Start a parallel conjunction 0x251c4d0, static_id: 2 11514699: cap 0: Create spark for conjunction: 0x251c4d0 spark: 0x134 11514892: cap 0: Start a parallel conjunction 0x251c530, static_id: 2 11515027: cap 0: Create spark for conjunction: 0x251c530 spark: 0x135 11515225: cap 0: Start a parallel conjunction 0x251c590, static_id: 2 11515351: cap 0: Create spark for conjunction: 0x251c590 spark: 0x136 11515531: cap 0: Start a parallel conjunction 0x251c5f0, static_id: 2 11515662: cap 0: Create spark for conjunction: 0x251c5f0 spark: 0x137 11515846: cap 0: Start a parallel conjunction 0x251c650, static_id: 2 11515972: cap 0: Create spark for conjunction: 0x251c650 spark: 0x138 11516175: cap 0: Start a parallel conjunction 0x251c6b0, static_id: 2 11516296: cap 0: Create spark for conjunction: 0x251c6b0 spark: 0x139 11516476: cap 0: Start a parallel conjunction 0x251c710, static_id: 2 11516598: cap 0: Create spark for conjunction: 0x251c710 spark: 0x13a 11516782: cap 0: Start a parallel conjunction 0x251c770, static_id: 2 11516908: cap 0: Create spark for conjunction: 0x251c770 spark: 0x13b 11517093: cap 0: Start a parallel conjunction 0x251c7d0, static_id: 2 11517214: cap 0: Create spark for conjunction: 0x251c7d0 spark: 0x13c 11517394: cap 0: Start a parallel conjunction 0x251c830, static_id: 2 11517529: cap 0: Create spark for conjunction: 0x251c830 spark: 0x13d 11517705: cap 0: Start a parallel conjunction 0x251c890, static_id: 2 11517826: cap 0: Create spark for conjunction: 0x251c890 spark: 0x13e 11518011: cap 0: Start a parallel conjunction 0x251c8f0, static_id: 2 11518141: cap 0: Create spark for conjunction: 0x251c8f0 spark: 0x13f 11518317: cap 0: Start a parallel conjunction 0x251c950, static_id: 2 11518443: cap 0: Create spark for conjunction: 0x251c950 spark: 0x140 11518627: cap 0: Start a parallel conjunction 0x251c9b0, static_id: 2 11518758: cap 0: Create spark for conjunction: 0x251c9b0 spark: 0x141 11518942: cap 0: Start a parallel conjunction 0x251ca10, static_id: 2 11519068: cap 0: Create spark for conjunction: 0x251ca10 spark: 0x142 11519257: cap 0: Start a parallel conjunction 0x251ca70, static_id: 2 11519383: cap 0: Create spark for conjunction: 0x251ca70 spark: 0x143 11519563: cap 0: Start a parallel conjunction 0x251cad0, static_id: 2 11519694: cap 0: Create spark for conjunction: 0x251cad0 spark: 0x144 11519878: cap 0: Start a parallel conjunction 0x251cb30, static_id: 2 11520009: cap 0: Create spark for conjunction: 0x251cb30 spark: 0x145 11520198: cap 0: Start a parallel conjunction 0x251cb90, static_id: 2 11520319: cap 0: Create spark for conjunction: 0x251cb90 spark: 0x146 11520490: cap 0: Start a parallel conjunction 0x251cbf0, static_id: 2 11520621: cap 0: Create spark for conjunction: 0x251cbf0 spark: 0x147 11520801: cap 0: Start a parallel conjunction 0x251cc50, static_id: 2 11520922: cap 0: Create spark for conjunction: 0x251cc50 spark: 0x148 11521111: cap 0: Start a parallel conjunction 0x251ccb0, static_id: 2 11521251: cap 0: Create spark for conjunction: 0x251ccb0 spark: 0x149 11521422: cap 0: Start a parallel conjunction 0x251cd10, static_id: 2 11521548: cap 0: Create spark for conjunction: 0x251cd10 spark: 0x14a 11521741: cap 0: Start a parallel conjunction 0x251cd70, static_id: 2 11521876: cap 0: Create spark for conjunction: 0x251cd70 spark: 0x14b 11522065: cap 0: Start a parallel conjunction 0x251cdd0, static_id: 2 11522187: cap 0: Create spark for conjunction: 0x251cdd0 spark: 0x14c 11522371: cap 0: Start a parallel conjunction 0x251ce30, static_id: 2 11522506: cap 0: Create spark for conjunction: 0x251ce30 spark: 0x14d 11522686: cap 0: Start a parallel conjunction 0x251ce90, static_id: 2 11522808: cap 0: Create spark for conjunction: 0x251ce90 spark: 0x14e 11522992: cap 0: Start a parallel conjunction 0x251cef0, static_id: 2 11523118: cap 0: Create spark for conjunction: 0x251cef0 spark: 0x14f 11523298: cap 0: Start a parallel conjunction 0x251cf50, static_id: 2 11523424: cap 0: Create spark for conjunction: 0x251cf50 spark: 0x150 11523609: cap 0: Start a parallel conjunction 0x251cfb0, static_id: 2 11523739: cap 0: Create spark for conjunction: 0x251cfb0 spark: 0x151 11524059: cap 0: Start a parallel conjunction 0x251d010, static_id: 2 11524180: cap 0: Create spark for conjunction: 0x251d010 spark: 0x152 11524378: cap 0: Start a parallel conjunction 0x251d070, static_id: 2 11524518: cap 0: Create spark for conjunction: 0x251d070 spark: 0x153 11524698: cap 0: Start a parallel conjunction 0x251d0d0, static_id: 2 11524828: cap 0: Create spark for conjunction: 0x251d0d0 spark: 0x154 11525013: cap 0: Start a parallel conjunction 0x251d130, static_id: 2 11525134: cap 0: Create spark for conjunction: 0x251d130 spark: 0x155 11525319: cap 0: Start a parallel conjunction 0x251d190, static_id: 2 11525449: cap 0: Create spark for conjunction: 0x251d190 spark: 0x156 11525625: cap 0: Start a parallel conjunction 0x251d1f0, static_id: 2 11525760: cap 0: Create spark for conjunction: 0x251d1f0 spark: 0x157 11525940: cap 0: Start a parallel conjunction 0x251d250, static_id: 2 11526061: cap 0: Create spark for conjunction: 0x251d250 spark: 0x158 11526250: cap 0: Start a parallel conjunction 0x251d2b0, static_id: 2 11526381: cap 0: Create spark for conjunction: 0x251d2b0 spark: 0x159 11526556: cap 0: Start a parallel conjunction 0x251d310, static_id: 2 11526678: cap 0: Create spark for conjunction: 0x251d310 spark: 0x15a 11527038: cap 0: Start a parallel conjunction 0x251d370, static_id: 2 11527168: cap 0: Create spark for conjunction: 0x251d370 spark: 0x15b 11527357: cap 0: Start a parallel conjunction 0x251d3d0, static_id: 2 11527479: cap 0: Create spark for conjunction: 0x251d3d0 spark: 0x15c 11527659: cap 0: Start a parallel conjunction 0x251d430, static_id: 2 11527794: cap 0: Create spark for conjunction: 0x251d430 spark: 0x15d 11527974: cap 0: Start a parallel conjunction 0x251d490, static_id: 2 11528095: cap 0: Create spark for conjunction: 0x251d490 spark: 0x15e 11528293: cap 0: Start a parallel conjunction 0x251d4f0, static_id: 2 11528424: cap 0: Create spark for conjunction: 0x251d4f0 spark: 0x15f 11528608: cap 0: Start a parallel conjunction 0x251d550, static_id: 2 11528730: cap 0: Create spark for conjunction: 0x251d550 spark: 0x160 11528914: cap 0: Start a parallel conjunction 0x251d5b0, static_id: 2 11529049: cap 0: Create spark for conjunction: 0x251d5b0 spark: 0x161 11529234: cap 0: Start a parallel conjunction 0x251d610, static_id: 2 11529355: cap 0: Create spark for conjunction: 0x251d610 spark: 0x162 11529567: cap 0: Start a parallel conjunction 0x251d670, static_id: 2 11529693: cap 0: Create spark for conjunction: 0x251d670 spark: 0x163 11529877: cap 0: Start a parallel conjunction 0x251d6d0, static_id: 2 11530003: cap 0: Create spark for conjunction: 0x251d6d0 spark: 0x164 11530197: cap 0: Start a parallel conjunction 0x251d730, static_id: 2 11530323: cap 0: Create spark for conjunction: 0x251d730 spark: 0x165 11530512: cap 0: Start a parallel conjunction 0x251d790, static_id: 2 11530633: cap 0: Create spark for conjunction: 0x251d790 spark: 0x166 11530809: cap 0: Start a parallel conjunction 0x251d7f0, static_id: 2 11530944: cap 0: Create spark for conjunction: 0x251d7f0 spark: 0x167 11531124: cap 0: Start a parallel conjunction 0x251d850, static_id: 2 11531245: cap 0: Create spark for conjunction: 0x251d850 spark: 0x168 11531430: cap 0: Start a parallel conjunction 0x251d8b0, static_id: 2 11531556: cap 0: Create spark for conjunction: 0x251d8b0 spark: 0x169 11531731: cap 0: Start a parallel conjunction 0x251d910, static_id: 2 11531853: cap 0: Create spark for conjunction: 0x251d910 spark: 0x16a 11532033: cap 0: Start a parallel conjunction 0x251d970, static_id: 2 11532163: cap 0: Create spark for conjunction: 0x251d970 spark: 0x16b 11532348: cap 0: Start a parallel conjunction 0x251d9d0, static_id: 2 11532469: cap 0: Create spark for conjunction: 0x251d9d0 spark: 0x16c 11532649: cap 0: Start a parallel conjunction 0x251da30, static_id: 2 11532784: cap 0: Create spark for conjunction: 0x251da30 spark: 0x16d 11532969: cap 0: Start a parallel conjunction 0x251da90, static_id: 2 11533090: cap 0: Create spark for conjunction: 0x251da90 spark: 0x16e 11533279: cap 0: Start a parallel conjunction 0x251daf0, static_id: 2 11533405: cap 0: Create spark for conjunction: 0x251daf0 spark: 0x16f 11533590: cap 0: Start a parallel conjunction 0x251db50, static_id: 2 11533711: cap 0: Create spark for conjunction: 0x251db50 spark: 0x170 11533887: cap 0: Start a parallel conjunction 0x251dbb0, static_id: 2 11534017: cap 0: Create spark for conjunction: 0x251dbb0 spark: 0x171 11534202: cap 0: Start a parallel conjunction 0x251dc10, static_id: 2 11534323: cap 0: Create spark for conjunction: 0x251dc10 spark: 0x172 11534656: cap 0: Start a parallel conjunction 0x251dc70, static_id: 2 11534787: cap 0: Create spark for conjunction: 0x251dc70 spark: 0x173 11534962: cap 0: Start a parallel conjunction 0x251dcd0, static_id: 2 11535309: cap 0: Create spark for conjunction: 0x251dcd0 spark: 0x174 11535507: cap 0: Start a parallel conjunction 0x251dd30, static_id: 2 11535633: cap 0: Create spark for conjunction: 0x251dd30 spark: 0x175 11535817: cap 0: Start a parallel conjunction 0x251dd90, static_id: 2 11535939: cap 0: Create spark for conjunction: 0x251dd90 spark: 0x176 11536114: cap 0: Start a parallel conjunction 0x251ddf0, static_id: 2 11536249: cap 0: Create spark for conjunction: 0x251ddf0 spark: 0x177 11536443: cap 0: Start a parallel conjunction 0x251de50, static_id: 2 11536569: cap 0: Create spark for conjunction: 0x251de50 spark: 0x178 11536771: cap 0: Start a parallel conjunction 0x251deb0, static_id: 2 11536902: cap 0: Create spark for conjunction: 0x251deb0 spark: 0x179 11537091: cap 0: Start a parallel conjunction 0x251df10, static_id: 2 11537212: cap 0: Create spark for conjunction: 0x251df10 spark: 0x17a 11537397: cap 0: Start a parallel conjunction 0x251df70, static_id: 2 11537523: cap 0: Create spark for conjunction: 0x251df70 spark: 0x17b 11537820: cap 0: Start a parallel conjunction 0x251dfd0, static_id: 2 11537941: cap 0: Create spark for conjunction: 0x251dfd0 spark: 0x17c 11538261: cap 0: Start a parallel conjunction 0x251e030, static_id: 2 11538396: cap 0: Create spark for conjunction: 0x251e030 spark: 0x17d 11538576: cap 0: Start a parallel conjunction 0x251e090, static_id: 2 11538697: cap 0: Create spark for conjunction: 0x251e090 spark: 0x17e 11538882: cap 0: Start a parallel conjunction 0x251e0f0, static_id: 2 11539012: cap 0: Create spark for conjunction: 0x251e0f0 spark: 0x17f 11539188: cap 0: Start a parallel conjunction 0x251e150, static_id: 2 11539314: cap 0: Create spark for conjunction: 0x251e150 spark: 0x180 11539507: cap 0: Start a parallel conjunction 0x251e1b0, static_id: 2 11539638: cap 0: Create spark for conjunction: 0x251e1b0 spark: 0x181 11539822: cap 0: Start a parallel conjunction 0x251e210, static_id: 2 11539944: cap 0: Create spark for conjunction: 0x251e210 spark: 0x182 11540137: cap 0: Start a parallel conjunction 0x251e270, static_id: 2 11540272: cap 0: Create spark for conjunction: 0x251e270 spark: 0x183 11540448: cap 0: Start a parallel conjunction 0x251e2d0, static_id: 2 11540614: cap 0: Create spark for conjunction: 0x251e2d0 spark: 0x184 11540803: cap 0: Start a parallel conjunction 0x251e330, static_id: 2 11540929: cap 0: Create spark for conjunction: 0x251e330 spark: 0x185 11541118: cap 0: Start a parallel conjunction 0x251e390, static_id: 2 11541240: cap 0: Create spark for conjunction: 0x251e390 spark: 0x186 11541577: cap 0: Start a parallel conjunction 0x251e3f0, static_id: 2 11541712: cap 0: Create spark for conjunction: 0x251e3f0 spark: 0x187 11541897: cap 0: Start a parallel conjunction 0x251e450, static_id: 2 11542059: cap 0: Create spark for conjunction: 0x251e450 spark: 0x188 11542261: cap 0: Start a parallel conjunction 0x251e4b0, static_id: 2 11542383: cap 0: Create spark for conjunction: 0x251e4b0 spark: 0x189 11542558: cap 0: Start a parallel conjunction 0x251e510, static_id: 2 11542680: cap 0: Create spark for conjunction: 0x251e510 spark: 0x18a 11542864: cap 0: Start a parallel conjunction 0x251e570, static_id: 2 11542990: cap 0: Create spark for conjunction: 0x251e570 spark: 0x18b 11543175: cap 0: Start a parallel conjunction 0x251e5d0, static_id: 2 11543296: cap 0: Create spark for conjunction: 0x251e5d0 spark: 0x18c 11543476: cap 0: Start a parallel conjunction 0x251e630, static_id: 2 11543620: cap 0: Create spark for conjunction: 0x251e630 spark: 0x18d 11543800: cap 0: Start a parallel conjunction 0x251e690, static_id: 2 11543922: cap 0: Create spark for conjunction: 0x251e690 spark: 0x18e 11544111: cap 0: Start a parallel conjunction 0x251e6f0, static_id: 2 11544241: cap 0: Create spark for conjunction: 0x251e6f0 spark: 0x18f 11544417: cap 0: Start a parallel conjunction 0x251e750, static_id: 2 11544547: cap 0: Create spark for conjunction: 0x251e750 spark: 0x190 11544732: cap 0: Start a parallel conjunction 0x251e7b0, static_id: 2 11544858: cap 0: Create spark for conjunction: 0x251e7b0 spark: 0x191 11545042: cap 0: Start a parallel conjunction 0x251e810, static_id: 2 11545164: cap 0: Create spark for conjunction: 0x251e810 spark: 0x192 11545353: cap 0: Start a parallel conjunction 0x251e870, static_id: 2 11545479: cap 0: Create spark for conjunction: 0x251e870 spark: 0x193 11545659: cap 0: Start a parallel conjunction 0x251e8d0, static_id: 2 11545785: cap 0: Create spark for conjunction: 0x251e8d0 spark: 0x194 11545974: cap 0: Start a parallel conjunction 0x251e930, static_id: 2 11546100: cap 0: Create spark for conjunction: 0x251e930 spark: 0x195 11546293: cap 0: Start a parallel conjunction 0x251e990, static_id: 2 11546415: cap 0: Create spark for conjunction: 0x251e990 spark: 0x196 11546590: cap 0: Start a parallel conjunction 0x251e9f0, static_id: 2 11546725: cap 0: Create spark for conjunction: 0x251e9f0 spark: 0x197 11546910: cap 0: Start a parallel conjunction 0x251ea50, static_id: 2 11547036: cap 0: Create spark for conjunction: 0x251ea50 spark: 0x198 11547243: cap 0: Start a parallel conjunction 0x251eab0, static_id: 2 11547378: cap 0: Create spark for conjunction: 0x251eab0 spark: 0x199 11547562: cap 0: Start a parallel conjunction 0x251eb10, static_id: 2 11547684: cap 0: Create spark for conjunction: 0x251eb10 spark: 0x19a 11547868: cap 0: Start a parallel conjunction 0x251eb70, static_id: 2 11547990: cap 0: Create spark for conjunction: 0x251eb70 spark: 0x19b 11548174: cap 0: Start a parallel conjunction 0x251ebd0, static_id: 2 11548296: cap 0: Create spark for conjunction: 0x251ebd0 spark: 0x19c 11548476: cap 0: Start a parallel conjunction 0x251ec30, static_id: 2 11548602: cap 0: Create spark for conjunction: 0x251ec30 spark: 0x19d 11548782: cap 0: Start a parallel conjunction 0x251ec90, static_id: 2 11548903: cap 0: Create spark for conjunction: 0x251ec90 spark: 0x19e 11549092: cap 0: Start a parallel conjunction 0x251ecf0, static_id: 2 11549223: cap 0: Create spark for conjunction: 0x251ecf0 spark: 0x19f 11549403: cap 0: Start a parallel conjunction 0x251ed50, static_id: 2 11549524: cap 0: Create spark for conjunction: 0x251ed50 spark: 0x1a0 11549709: cap 0: Start a parallel conjunction 0x251edb0, static_id: 2 11549839: cap 0: Create spark for conjunction: 0x251edb0 spark: 0x1a1 11550019: cap 0: Start a parallel conjunction 0x251ee10, static_id: 2 11550141: cap 0: Create spark for conjunction: 0x251ee10 spark: 0x1a2 11550330: cap 0: Start a parallel conjunction 0x251ee70, static_id: 2 11550465: cap 0: Create spark for conjunction: 0x251ee70 spark: 0x1a3 11550658: cap 0: Start a parallel conjunction 0x251eed0, static_id: 2 11550784: cap 0: Create spark for conjunction: 0x251eed0 spark: 0x1a4 11550982: cap 0: Start a parallel conjunction 0x251ef30, static_id: 2 11551108: cap 0: Create spark for conjunction: 0x251ef30 spark: 0x1a5 11551293: cap 0: Start a parallel conjunction 0x251ef90, static_id: 2 11551419: cap 0: Create spark for conjunction: 0x251ef90 spark: 0x1a6 11551752: cap 0: Start a parallel conjunction 0x251eff0, static_id: 2 11551887: cap 0: Create spark for conjunction: 0x251eff0 spark: 0x1a7 11552076: cap 0: Start a parallel conjunction 0x251f050, static_id: 2 11552197: cap 0: Create spark for conjunction: 0x251f050 spark: 0x1a8 11552386: cap 0: Start a parallel conjunction 0x251f0b0, static_id: 2 11552517: cap 0: Create spark for conjunction: 0x251f0b0 spark: 0x1a9 11552755: cap 0: Start a parallel conjunction 0x251f110, static_id: 2 11552886: cap 0: Create spark for conjunction: 0x251f110 spark: 0x1aa 11553066: cap 0: Start a parallel conjunction 0x251f170, static_id: 2 11553196: cap 0: Create spark for conjunction: 0x251f170 spark: 0x1ab 11553390: cap 0: Start a parallel conjunction 0x251f1d0, static_id: 2 11553511: cap 0: Create spark for conjunction: 0x251f1d0 spark: 0x1ac 11553696: cap 0: Start a parallel conjunction 0x251f230, static_id: 2 11553835: cap 0: Create spark for conjunction: 0x251f230 spark: 0x1ad 11554015: cap 0: Start a parallel conjunction 0x251f290, static_id: 2 11554146: cap 0: Create spark for conjunction: 0x251f290 spark: 0x1ae 11554330: cap 0: Start a parallel conjunction 0x251f2f0, static_id: 2 11554465: cap 0: Create spark for conjunction: 0x251f2f0 spark: 0x1af 11554645: cap 0: Start a parallel conjunction 0x251f350, static_id: 2 11554767: cap 0: Create spark for conjunction: 0x251f350 spark: 0x1b0 11554956: cap 0: Start a parallel conjunction 0x251f3b0, static_id: 2 11555082: cap 0: Create spark for conjunction: 0x251f3b0 spark: 0x1b1 11555262: cap 0: Start a parallel conjunction 0x251f410, static_id: 2 11555383: cap 0: Create spark for conjunction: 0x251f410 spark: 0x1b2 11555662: cap 0: Start a parallel conjunction 0x251f470, static_id: 2 11555788: cap 0: Create spark for conjunction: 0x251f470 spark: 0x1b3 11555964: cap 0: Start a parallel conjunction 0x251f4d0, static_id: 2 11556090: cap 0: Create spark for conjunction: 0x251f4d0 spark: 0x1b4 11556270: cap 0: Start a parallel conjunction 0x251f530, static_id: 2 11556391: cap 0: Create spark for conjunction: 0x251f530 spark: 0x1b5 11556576: cap 0: Start a parallel conjunction 0x251f590, static_id: 2 11556697: cap 0: Create spark for conjunction: 0x251f590 spark: 0x1b6 11556877: cap 0: Start a parallel conjunction 0x251f5f0, static_id: 2 11557008: cap 0: Create spark for conjunction: 0x251f5f0 spark: 0x1b7 11557188: cap 0: Start a parallel conjunction 0x251f650, static_id: 2 11557309: cap 0: Create spark for conjunction: 0x251f650 spark: 0x1b8 11557503: cap 0: Start a parallel conjunction 0x251f6b0, static_id: 2 11557638: cap 0: Create spark for conjunction: 0x251f6b0 spark: 0x1b9 11557818: cap 0: Start a parallel conjunction 0x251f710, static_id: 2 11557944: cap 0: Create spark for conjunction: 0x251f710 spark: 0x1ba 11558137: cap 0: Start a parallel conjunction 0x251f770, static_id: 2 11558268: cap 0: Create spark for conjunction: 0x251f770 spark: 0x1bb 11558452: cap 0: Start a parallel conjunction 0x251f7d0, static_id: 2 11558578: cap 0: Create spark for conjunction: 0x251f7d0 spark: 0x1bc 11558754: cap 0: Start a parallel conjunction 0x251f830, static_id: 2 11558893: cap 0: Create spark for conjunction: 0x251f830 spark: 0x1bd 11559069: cap 0: Start a parallel conjunction 0x251f890, static_id: 2 11559190: cap 0: Create spark for conjunction: 0x251f890 spark: 0x1be 11559375: cap 0: Start a parallel conjunction 0x251f8f0, static_id: 2 11559505: cap 0: Create spark for conjunction: 0x251f8f0 spark: 0x1bf 11559681: cap 0: Start a parallel conjunction 0x251f950, static_id: 2 11559802: cap 0: Create spark for conjunction: 0x251f950 spark: 0x1c0 11559982: cap 0: Start a parallel conjunction 0x251f9b0, static_id: 2 11560099: cap 0: Create spark for conjunction: 0x251f9b0 spark: 0x1c1 11560279: cap 0: Start a parallel conjunction 0x251fa10, static_id: 2 11560396: cap 0: Create spark for conjunction: 0x251fa10 spark: 0x1c2 11560581: cap 0: Start a parallel conjunction 0x251fa70, static_id: 2 11560711: cap 0: Create spark for conjunction: 0x251fa70 spark: 0x1c3 11560896: cap 0: Start a parallel conjunction 0x251fad0, static_id: 2 11561026: cap 0: Create spark for conjunction: 0x251fad0 spark: 0x1c4 11561215: cap 0: Start a parallel conjunction 0x251fb30, static_id: 2 11561350: cap 0: Create spark for conjunction: 0x251fb30 spark: 0x1c5 11561539: cap 0: Start a parallel conjunction 0x251fb90, static_id: 2 11561665: cap 0: Create spark for conjunction: 0x251fb90 spark: 0x1c6 11561836: cap 0: Start a parallel conjunction 0x251fbf0, static_id: 2 11561971: cap 0: Create spark for conjunction: 0x251fbf0 spark: 0x1c7 11562151: cap 0: Start a parallel conjunction 0x251fc50, static_id: 2 11562277: cap 0: Create spark for conjunction: 0x251fc50 spark: 0x1c8 11562466: cap 0: Start a parallel conjunction 0x251fcb0, static_id: 2 11562606: cap 0: Create spark for conjunction: 0x251fcb0 spark: 0x1c9 11562781: cap 0: Start a parallel conjunction 0x251fd10, static_id: 2 11562907: cap 0: Create spark for conjunction: 0x251fd10 spark: 0x1ca 11563087: cap 0: Start a parallel conjunction 0x251fd70, static_id: 2 11563209: cap 0: Create spark for conjunction: 0x251fd70 spark: 0x1cb 11563402: cap 0: Start a parallel conjunction 0x251fdd0, static_id: 2 11563524: cap 0: Create spark for conjunction: 0x251fdd0 spark: 0x1cc 11563713: cap 0: Start a parallel conjunction 0x251fe30, static_id: 2 11563848: cap 0: Create spark for conjunction: 0x251fe30 spark: 0x1cd 11564032: cap 0: Start a parallel conjunction 0x251fe90, static_id: 2 11564154: cap 0: Create spark for conjunction: 0x251fe90 spark: 0x1ce 11564338: cap 0: Start a parallel conjunction 0x251fef0, static_id: 2 11564469: cap 0: Create spark for conjunction: 0x251fef0 spark: 0x1cf 11564640: cap 0: Start a parallel conjunction 0x251ff50, static_id: 2 11564874: cap 0: Create spark for conjunction: 0x251ff50 spark: 0x1d0 11565175: cap 0: Start a parallel conjunction 0x251ffb0, static_id: 2 11565301: cap 0: Create spark for conjunction: 0x251ffb0 spark: 0x1d1 11565711: cap 0: Start a parallel conjunction 0x2520010, static_id: 2 11565832: cap 0: Create spark for conjunction: 0x2520010 spark: 0x1d2 11566026: cap 0: Start a parallel conjunction 0x2520070, static_id: 2 11566152: cap 0: Create spark for conjunction: 0x2520070 spark: 0x1d3 11566327: cap 0: Start a parallel conjunction 0x25200d0, static_id: 2 11566453: cap 0: Create spark for conjunction: 0x25200d0 spark: 0x1d4 11566638: cap 0: Start a parallel conjunction 0x2520130, static_id: 2 11566768: cap 0: Create spark for conjunction: 0x2520130 spark: 0x1d5 11566966: cap 0: Start a parallel conjunction 0x2520190, static_id: 2 11567088: cap 0: Create spark for conjunction: 0x2520190 spark: 0x1d6 11567461: cap 0: Start a parallel conjunction 0x25201f0, static_id: 2 11567596: cap 0: Create spark for conjunction: 0x25201f0 spark: 0x1d7 11567781: cap 0: Start a parallel conjunction 0x2520250, static_id: 2 11567907: cap 0: Create spark for conjunction: 0x2520250 spark: 0x1d8 11568105: cap 0: Start a parallel conjunction 0x25202b0, static_id: 2 11568226: cap 0: Create spark for conjunction: 0x25202b0 spark: 0x1d9 11568397: cap 0: Start a parallel conjunction 0x2520310, static_id: 2 11568523: cap 0: Create spark for conjunction: 0x2520310 spark: 0x1da 11568708: cap 0: Start a parallel conjunction 0x2520370, static_id: 2 11568834: cap 0: Create spark for conjunction: 0x2520370 spark: 0x1db 11569018: cap 0: Start a parallel conjunction 0x25203d0, static_id: 2 11569140: cap 0: Create spark for conjunction: 0x25203d0 spark: 0x1dc 11569320: cap 0: Start a parallel conjunction 0x2520430, static_id: 2 11569455: cap 0: Create spark for conjunction: 0x2520430 spark: 0x1dd 11569630: cap 0: Start a parallel conjunction 0x2520490, static_id: 2 11569752: cap 0: Create spark for conjunction: 0x2520490 spark: 0x1de 11569936: cap 0: Start a parallel conjunction 0x25204f0, static_id: 2 11570067: cap 0: Create spark for conjunction: 0x25204f0 spark: 0x1df 11570242: cap 0: Start a parallel conjunction 0x2520550, static_id: 2 11570364: cap 0: Create spark for conjunction: 0x2520550 spark: 0x1e0 11570544: cap 0: Start a parallel conjunction 0x25205b0, static_id: 2 11570670: cap 0: Create spark for conjunction: 0x25205b0 spark: 0x1e1 11570850: cap 0: Start a parallel conjunction 0x2520610, static_id: 2 11570971: cap 0: Create spark for conjunction: 0x2520610 spark: 0x1e2 11571160: cap 0: Start a parallel conjunction 0x2520670, static_id: 2 11571295: cap 0: Create spark for conjunction: 0x2520670 spark: 0x1e3 11571466: cap 0: Start a parallel conjunction 0x25206d0, static_id: 2 11571601: cap 0: Create spark for conjunction: 0x25206d0 spark: 0x1e4 11571795: cap 0: Start a parallel conjunction 0x2520730, static_id: 2 11571921: cap 0: Create spark for conjunction: 0x2520730 spark: 0x1e5 11572114: cap 0: Start a parallel conjunction 0x2520790, static_id: 2 11572240: cap 0: Create spark for conjunction: 0x2520790 spark: 0x1e6 11572416: cap 0: Start a parallel conjunction 0x25207f0, static_id: 2 11572546: cap 0: Create spark for conjunction: 0x25207f0 spark: 0x1e7 11572735: cap 0: Start a parallel conjunction 0x2520850, static_id: 2 11572861: cap 0: Create spark for conjunction: 0x2520850 spark: 0x1e8 11573055: cap 0: Start a parallel conjunction 0x25208b0, static_id: 2 11573190: cap 0: Create spark for conjunction: 0x25208b0 spark: 0x1e9 11573365: cap 0: Start a parallel conjunction 0x2520910, static_id: 2 11573487: cap 0: Create spark for conjunction: 0x2520910 spark: 0x1ea 11573676: cap 0: Start a parallel conjunction 0x2520970, static_id: 2 11573802: cap 0: Create spark for conjunction: 0x2520970 spark: 0x1eb 11573986: cap 0: Start a parallel conjunction 0x25209d0, static_id: 2 11574112: cap 0: Create spark for conjunction: 0x25209d0 spark: 0x1ec 11574288: cap 0: Start a parallel conjunction 0x2520a30, static_id: 2 11574427: cap 0: Create spark for conjunction: 0x2520a30 spark: 0x1ed 11574603: cap 0: Start a parallel conjunction 0x2520a90, static_id: 2 11574724: cap 0: Create spark for conjunction: 0x2520a90 spark: 0x1ee 11574909: cap 0: Start a parallel conjunction 0x2520af0, static_id: 2 11575039: cap 0: Create spark for conjunction: 0x2520af0 spark: 0x1ef 11575219: cap 0: Start a parallel conjunction 0x2520b50, static_id: 2 11575341: cap 0: Create spark for conjunction: 0x2520b50 spark: 0x1f0 11575521: cap 0: Start a parallel conjunction 0x2520bb0, static_id: 2 11575647: cap 0: Create spark for conjunction: 0x2520bb0 spark: 0x1f1 11575827: cap 0: Start a parallel conjunction 0x2520c10, static_id: 2 11575948: cap 0: Create spark for conjunction: 0x2520c10 spark: 0x1f2 11576137: cap 0: Start a parallel conjunction 0x2520c70, static_id: 2 11576277: cap 0: Create spark for conjunction: 0x2520c70 spark: 0x1f3 11576452: cap 0: Start a parallel conjunction 0x2520cd0, static_id: 2 11576578: cap 0: Create spark for conjunction: 0x2520cd0 spark: 0x1f4 11576772: cap 0: Start a parallel conjunction 0x2520d30, static_id: 2 11576898: cap 0: Create spark for conjunction: 0x2520d30 spark: 0x1f5 11577087: cap 0: Start a parallel conjunction 0x2520d90, static_id: 2 11577208: cap 0: Create spark for conjunction: 0x2520d90 spark: 0x1f6 11577393: cap 0: Start a parallel conjunction 0x2520df0, static_id: 2 11577523: cap 0: Create spark for conjunction: 0x2520df0 spark: 0x1f7 11577712: cap 0: Start a parallel conjunction 0x2520e50, static_id: 2 11577834: cap 0: Create spark for conjunction: 0x2520e50 spark: 0x1f8 11578032: cap 0: Start a parallel conjunction 0x2520eb0, static_id: 2 11578153: cap 0: Create spark for conjunction: 0x2520eb0 spark: 0x1f9 11578324: cap 0: Start a parallel conjunction 0x2520f10, static_id: 2 11578450: cap 0: Create spark for conjunction: 0x2520f10 spark: 0x1fa 11578635: cap 0: Start a parallel conjunction 0x2520f70, static_id: 2 11578765: cap 0: Create spark for conjunction: 0x2520f70 spark: 0x1fb 11579089: cap 0: Start a parallel conjunction 0x2520fd0, static_id: 2 11579211: cap 0: Create spark for conjunction: 0x2520fd0 spark: 0x1fc 11579530: cap 0: Start a parallel conjunction 0x2521030, static_id: 2 11579670: cap 0: Create spark for conjunction: 0x2521030 spark: 0x1fd 11579850: cap 0: Start a parallel conjunction 0x2521090, static_id: 2 11579971: cap 0: Create spark for conjunction: 0x2521090 spark: 0x1fe 11580160: cap 0: Start a parallel conjunction 0x25210f0, static_id: 2 11580291: cap 0: Create spark for conjunction: 0x25210f0 spark: 0x1ff 11580466: cap 0: Start a parallel conjunction 0x2521150, static_id: 2 11580588: cap 0: Create spark for conjunction: 0x2521150 spark: 0x200 11580772: cap 0: Start a parallel conjunction 0x25211b0, static_id: 2 11625201: cap 1: Trying to steal a spark 11626915: cap 1: stealing a spark from cap 0 11631217: cap 0: Create spark for conjunction: 0x25211b0 spark: 0x201 11631456: cap 0: Start a parallel conjunction 0x2521210, static_id: 2 11631586: cap 0: Create spark for conjunction: 0x2521210 spark: 0x202 11631789: cap 0: Start a parallel conjunction 0x2521270, static_id: 2 11631924: cap 0: Create spark for conjunction: 0x2521270 spark: 0x203 11632104: cap 0: Start a parallel conjunction 0x25212d0, static_id: 2 11632243: cap 0: Create spark for conjunction: 0x25212d0 spark: 0x204 11632437: cap 0: Start a parallel conjunction 0x2521330, static_id: 2 11632567: cap 0: Create spark for conjunction: 0x2521330 spark: 0x205 11632756: cap 0: Start a parallel conjunction 0x2521390, static_id: 2 11632882: cap 0: Create spark for conjunction: 0x2521390 spark: 0x206 11633062: cap 0: Start a parallel conjunction 0x25213f0, static_id: 2 11633206: cap 0: Create spark for conjunction: 0x25213f0 spark: 0x207 11633395: cap 0: Start a parallel conjunction 0x2521450, static_id: 2 11633526: cap 0: Create spark for conjunction: 0x2521450 spark: 0x208 11633737: cap 0: Start a parallel conjunction 0x25214b0, static_id: 2 11633872: cap 0: Create spark for conjunction: 0x25214b0 spark: 0x209 11634057: cap 0: Start a parallel conjunction 0x2521510, static_id: 2 11634183: cap 0: Create spark for conjunction: 0x2521510 spark: 0x20a 11634381: cap 0: Start a parallel conjunction 0x2521570, static_id: 2 11634511: cap 0: Create spark for conjunction: 0x2521570 spark: 0x20b 11634705: cap 0: Start a parallel conjunction 0x25215d0, static_id: 2 11634831: cap 0: Create spark for conjunction: 0x25215d0 spark: 0x20c 11635015: cap 0: Start a parallel conjunction 0x2521630, static_id: 2 11635159: cap 0: Create spark for conjunction: 0x2521630 spark: 0x20d 11635344: cap 0: Start a parallel conjunction 0x2521690, static_id: 2 11635465: cap 0: Create spark for conjunction: 0x2521690 spark: 0x20e 11635659: cap 0: Start a parallel conjunction 0x25216f0, static_id: 2 11635789: cap 0: Create spark for conjunction: 0x25216f0 spark: 0x20f 11636037: cap 0: Start a parallel conjunction 0x2521750, static_id: 2 11636158: cap 0: Create spark for conjunction: 0x2521750 spark: 0x210 11636343: cap 0: Start a parallel conjunction 0x25217b0, static_id: 2 11636473: cap 0: Create spark for conjunction: 0x25217b0 spark: 0x211 11636649: cap 0: Start a parallel conjunction 0x2521810, static_id: 2 11636770: cap 0: Create spark for conjunction: 0x2521810 spark: 0x212 11636964: cap 0: Start a parallel conjunction 0x2521870, static_id: 2 11637099: cap 0: Create spark for conjunction: 0x2521870 spark: 0x213 11637283: cap 0: Start a parallel conjunction 0x25218d0, static_id: 2 11637409: cap 0: Create spark for conjunction: 0x25218d0 spark: 0x214 11637589: cap 0: Start a parallel conjunction 0x2521930, static_id: 2 11637729: cap 0: Create spark for conjunction: 0x2521930 spark: 0x215 11637931: cap 0: Start a parallel conjunction 0x2521990, static_id: 2 11638062: cap 0: Create spark for conjunction: 0x2521990 spark: 0x216 11638246: cap 0: Start a parallel conjunction 0x25219f0, static_id: 2 11638377: cap 0: Create spark for conjunction: 0x25219f0 spark: 0x217 11638845: cap 0: Start a parallel conjunction 0x2521a50, static_id: 2 11638971: cap 0: Create spark for conjunction: 0x2521a50 spark: 0x218 11639173: cap 0: Start a parallel conjunction 0x2521ab0, static_id: 2 11639304: cap 0: Create spark for conjunction: 0x2521ab0 spark: 0x219 11639488: cap 0: Start a parallel conjunction 0x2521b10, static_id: 2 11639614: cap 0: Create spark for conjunction: 0x2521b10 spark: 0x21a 11639799: cap 0: Start a parallel conjunction 0x2521b70, static_id: 2 11639929: cap 0: Create spark for conjunction: 0x2521b70 spark: 0x21b 11640118: cap 0: Start a parallel conjunction 0x2521bd0, static_id: 2 11640249: cap 0: Create spark for conjunction: 0x2521bd0 spark: 0x21c 11640438: cap 0: Start a parallel conjunction 0x2521c30, static_id: 2 11640573: cap 0: Create spark for conjunction: 0x2521c30 spark: 0x21d 11640753: cap 0: Start a parallel conjunction 0x2521c90, static_id: 2 11640874: cap 0: Create spark for conjunction: 0x2521c90 spark: 0x21e 11641063: cap 0: Start a parallel conjunction 0x2521cf0, static_id: 2 11641194: cap 0: Create spark for conjunction: 0x2521cf0 spark: 0x21f 11641374: cap 0: Start a parallel conjunction 0x2521d50, static_id: 2 11641495: cap 0: Create spark for conjunction: 0x2521d50 spark: 0x220 11641675: cap 0: Start a parallel conjunction 0x2521db0, static_id: 2 11641810: cap 0: Create spark for conjunction: 0x2521db0 spark: 0x221 11641990: cap 0: Start a parallel conjunction 0x2521e10, static_id: 2 11642121: cap 0: Create spark for conjunction: 0x2521e10 spark: 0x222 11642305: cap 0: Start a parallel conjunction 0x2521e70, static_id: 2 11642436: cap 0: Create spark for conjunction: 0x2521e70 spark: 0x223 11642616: cap 0: Start a parallel conjunction 0x2521ed0, static_id: 2 11642742: cap 0: Create spark for conjunction: 0x2521ed0 spark: 0x224 11642926: cap 0: Start a parallel conjunction 0x2521f30, static_id: 2 11643057: cap 0: Create spark for conjunction: 0x2521f30 spark: 0x225 11643241: cap 0: Start a parallel conjunction 0x2521f90, static_id: 2 11643367: cap 0: Create spark for conjunction: 0x2521f90 spark: 0x226 11643691: cap 0: Start a parallel conjunction 0x2521ff0, static_id: 2 11643826: cap 0: Create spark for conjunction: 0x2521ff0 spark: 0x227 11644011: cap 0: Start a parallel conjunction 0x2522050, static_id: 2 11644137: cap 0: Create spark for conjunction: 0x2522050 spark: 0x228 11644335: cap 0: Start a parallel conjunction 0x25220b0, static_id: 2 11644461: cap 0: Create spark for conjunction: 0x25220b0 spark: 0x229 11644645: cap 0: Start a parallel conjunction 0x2522110, static_id: 2 11644771: cap 0: Create spark for conjunction: 0x2522110 spark: 0x22a 11644960: cap 0: Start a parallel conjunction 0x2522170, static_id: 2 11645100: cap 0: Create spark for conjunction: 0x2522170 spark: 0x22b 11645293: cap 0: Start a parallel conjunction 0x25221d0, static_id: 2 11645419: cap 0: Create spark for conjunction: 0x25221d0 spark: 0x22c 11645599: cap 0: Start a parallel conjunction 0x2522230, static_id: 2 11646090: cap 0: Create spark for conjunction: 0x2522230 spark: 0x22d 11646274: cap 0: Start a parallel conjunction 0x2522290, static_id: 2 11646391: cap 0: Create spark for conjunction: 0x2522290 spark: 0x22e 11646841: cap 0: Start a parallel conjunction 0x25222f0, static_id: 2 11646972: cap 0: Create spark for conjunction: 0x25222f0 spark: 0x22f 11647147: cap 0: Start a parallel conjunction 0x2522350, static_id: 2 11647269: cap 0: Create spark for conjunction: 0x2522350 spark: 0x230 11647453: cap 0: Start a parallel conjunction 0x25223b0, static_id: 2 11647579: cap 0: Create spark for conjunction: 0x25223b0 spark: 0x231 11647759: cap 0: Start a parallel conjunction 0x2522410, static_id: 2 11647881: cap 0: Create spark for conjunction: 0x2522410 spark: 0x232 11648070: cap 0: Start a parallel conjunction 0x2522470, static_id: 2 11648196: cap 0: Create spark for conjunction: 0x2522470 spark: 0x233 11648380: cap 0: Start a parallel conjunction 0x25224d0, static_id: 2 11648506: cap 0: Create spark for conjunction: 0x25224d0 spark: 0x234 11648691: cap 0: Start a parallel conjunction 0x2522530, static_id: 2 11648826: cap 0: Create spark for conjunction: 0x2522530 spark: 0x235 11649024: cap 0: Start a parallel conjunction 0x2522590, static_id: 2 11649150: cap 0: Create spark for conjunction: 0x2522590 spark: 0x236 11649339: cap 0: Start a parallel conjunction 0x25225f0, static_id: 2 11649483: cap 0: Create spark for conjunction: 0x25225f0 spark: 0x237 11649672: cap 0: Start a parallel conjunction 0x2522650, static_id: 2 11649793: cap 0: Create spark for conjunction: 0x2522650 spark: 0x238 11649991: cap 0: Start a parallel conjunction 0x25226b0, static_id: 2 11650117: cap 0: Create spark for conjunction: 0x25226b0 spark: 0x239 11650302: cap 0: Start a parallel conjunction 0x2522710, static_id: 2 11650428: cap 0: Create spark for conjunction: 0x2522710 spark: 0x23a 11650612: cap 0: Start a parallel conjunction 0x2522770, static_id: 2 11650738: cap 0: Create spark for conjunction: 0x2522770 spark: 0x23b 11650936: cap 0: Start a parallel conjunction 0x25227d0, static_id: 2 11651058: cap 0: Create spark for conjunction: 0x25227d0 spark: 0x23c 11651247: cap 0: Start a parallel conjunction 0x2522830, static_id: 2 11651386: cap 0: Create spark for conjunction: 0x2522830 spark: 0x23d 11651562: cap 0: Start a parallel conjunction 0x2522890, static_id: 2 11651688: cap 0: Create spark for conjunction: 0x2522890 spark: 0x23e 11651877: cap 0: Start a parallel conjunction 0x25228f0, static_id: 2 11652007: cap 0: Create spark for conjunction: 0x25228f0 spark: 0x23f 11652183: cap 0: Start a parallel conjunction 0x2522950, static_id: 2 11652304: cap 0: Create spark for conjunction: 0x2522950 spark: 0x240 11652660: cap 0: Start a parallel conjunction 0x25229b0, static_id: 2 11652786: cap 0: Create spark for conjunction: 0x25229b0 spark: 0x241 11652966: cap 0: Start a parallel conjunction 0x2522a10, static_id: 2 11653087: cap 0: Create spark for conjunction: 0x2522a10 spark: 0x242 11653276: cap 0: Start a parallel conjunction 0x2522a70, static_id: 2 11653402: cap 0: Create spark for conjunction: 0x2522a70 spark: 0x243 11653587: cap 0: Start a parallel conjunction 0x2522ad0, static_id: 2 11653713: cap 0: Create spark for conjunction: 0x2522ad0 spark: 0x244 11653897: cap 0: Start a parallel conjunction 0x2522b30, static_id: 2 11654028: cap 0: Create spark for conjunction: 0x2522b30 spark: 0x245 11654221: cap 0: Start a parallel conjunction 0x2522b90, static_id: 2 11654347: cap 0: Create spark for conjunction: 0x2522b90 spark: 0x246 11654532: cap 0: Start a parallel conjunction 0x2522bf0, static_id: 2 11654676: cap 0: Create spark for conjunction: 0x2522bf0 spark: 0x247 11654865: cap 0: Start a parallel conjunction 0x2522c50, static_id: 2 11654986: cap 0: Create spark for conjunction: 0x2522c50 spark: 0x248 11655189: cap 0: Start a parallel conjunction 0x2522cb0, static_id: 2 11655328: cap 0: Create spark for conjunction: 0x2522cb0 spark: 0x249 11655504: cap 0: Start a parallel conjunction 0x2522d10, static_id: 2 11655630: cap 0: Create spark for conjunction: 0x2522d10 spark: 0x24a 11655828: cap 0: Start a parallel conjunction 0x2522d70, static_id: 2 11655958: cap 0: Create spark for conjunction: 0x2522d70 spark: 0x24b 11656152: cap 0: Start a parallel conjunction 0x2522dd0, static_id: 2 11656278: cap 0: Create spark for conjunction: 0x2522dd0 spark: 0x24c 11656462: cap 0: Start a parallel conjunction 0x2522e30, static_id: 2 11656602: cap 0: Create spark for conjunction: 0x2522e30 spark: 0x24d 11656786: cap 0: Start a parallel conjunction 0x2522e90, static_id: 2 11656908: cap 0: Create spark for conjunction: 0x2522e90 spark: 0x24e 11657097: cap 0: Start a parallel conjunction 0x2522ef0, static_id: 2 11657227: cap 0: Create spark for conjunction: 0x2522ef0 spark: 0x24f 11657407: cap 0: Start a parallel conjunction 0x2522f50, static_id: 2 11657524: cap 0: Create spark for conjunction: 0x2522f50 spark: 0x250 11657857: cap 0: Start a parallel conjunction 0x2522fb0, static_id: 2 11657983: cap 0: Create spark for conjunction: 0x2522fb0 spark: 0x251 11658172: cap 0: Start a parallel conjunction 0x2523010, static_id: 2 11658294: cap 0: Create spark for conjunction: 0x2523010 spark: 0x252 11658487: cap 0: Start a parallel conjunction 0x2523070, static_id: 2 11658618: cap 0: Create spark for conjunction: 0x2523070 spark: 0x253 11658802: cap 0: Start a parallel conjunction 0x25230d0, static_id: 2 11658933: cap 0: Create spark for conjunction: 0x25230d0 spark: 0x254 11659126: cap 0: Start a parallel conjunction 0x2523130, static_id: 2 11659252: cap 0: Create spark for conjunction: 0x2523130 spark: 0x255 11659446: cap 0: Start a parallel conjunction 0x2523190, static_id: 2 11659567: cap 0: Create spark for conjunction: 0x2523190 spark: 0x256 11659752: cap 0: Start a parallel conjunction 0x25231f0, static_id: 2 11659896: cap 0: Create spark for conjunction: 0x25231f0 spark: 0x257 11660076: cap 0: Start a parallel conjunction 0x2523250, static_id: 2 11660202: cap 0: Create spark for conjunction: 0x2523250 spark: 0x258 11660395: cap 0: Start a parallel conjunction 0x25232b0, static_id: 2 11660530: cap 0: Create spark for conjunction: 0x25232b0 spark: 0x259 11660710: cap 0: Start a parallel conjunction 0x2523310, static_id: 2 11660832: cap 0: Create spark for conjunction: 0x2523310 spark: 0x25a 11661183: cap 0: Start a parallel conjunction 0x2523370, static_id: 2 11661313: cap 0: Create spark for conjunction: 0x2523370 spark: 0x25b 11661507: cap 0: Start a parallel conjunction 0x25233d0, static_id: 2 11661633: cap 0: Create spark for conjunction: 0x25233d0 spark: 0x25c 11661813: cap 0: Start a parallel conjunction 0x2523430, static_id: 2 11661952: cap 0: Create spark for conjunction: 0x2523430 spark: 0x25d 11662132: cap 0: Start a parallel conjunction 0x2523490, static_id: 2 11662254: cap 0: Create spark for conjunction: 0x2523490 spark: 0x25e 11662447: cap 0: Start a parallel conjunction 0x25234f0, static_id: 2 11662573: cap 0: Create spark for conjunction: 0x25234f0 spark: 0x25f 11662753: cap 0: Start a parallel conjunction 0x2523550, static_id: 2 11662875: cap 0: Create spark for conjunction: 0x2523550 spark: 0x260 11663059: cap 0: Start a parallel conjunction 0x25235b0, static_id: 2 11663190: cap 0: Create spark for conjunction: 0x25235b0 spark: 0x261 11663374: cap 0: Start a parallel conjunction 0x2523610, static_id: 2 11663500: cap 0: Create spark for conjunction: 0x2523610 spark: 0x262 11663689: cap 0: Start a parallel conjunction 0x2523670, static_id: 2 11663824: cap 0: Create spark for conjunction: 0x2523670 spark: 0x263 11664018: cap 0: Start a parallel conjunction 0x25236d0, static_id: 2 11664157: cap 0: Create spark for conjunction: 0x25236d0 spark: 0x264 11664346: cap 0: Start a parallel conjunction 0x2523730, static_id: 2 11664481: cap 0: Create spark for conjunction: 0x2523730 spark: 0x265 11664675: cap 0: Start a parallel conjunction 0x2523790, static_id: 2 11664801: cap 0: Create spark for conjunction: 0x2523790 spark: 0x266 11664985: cap 0: Start a parallel conjunction 0x25237f0, static_id: 2 11665116: cap 0: Create spark for conjunction: 0x25237f0 spark: 0x267 11665300: cap 0: Start a parallel conjunction 0x2523850, static_id: 2 11665422: cap 0: Create spark for conjunction: 0x2523850 spark: 0x268 11665611: cap 0: Start a parallel conjunction 0x25238b0, static_id: 2 11665741: cap 0: Create spark for conjunction: 0x25238b0 spark: 0x269 11665921: cap 0: Start a parallel conjunction 0x2523910, static_id: 2 11666047: cap 0: Create spark for conjunction: 0x2523910 spark: 0x26a 11666232: cap 0: Start a parallel conjunction 0x2523970, static_id: 2 11666367: cap 0: Create spark for conjunction: 0x2523970 spark: 0x26b 11666556: cap 0: Start a parallel conjunction 0x25239d0, static_id: 2 11666677: cap 0: Create spark for conjunction: 0x25239d0 spark: 0x26c 11666862: cap 0: Start a parallel conjunction 0x2523a30, static_id: 2 11666997: cap 0: Create spark for conjunction: 0x2523a30 spark: 0x26d 11667172: cap 0: Start a parallel conjunction 0x2523a90, static_id: 2 11667294: cap 0: Create spark for conjunction: 0x2523a90 spark: 0x26e 11667483: cap 0: Start a parallel conjunction 0x2523af0, static_id: 2 11667609: cap 0: Create spark for conjunction: 0x2523af0 spark: 0x26f 11667793: cap 0: Start a parallel conjunction 0x2523b50, static_id: 2 11667915: cap 0: Create spark for conjunction: 0x2523b50 spark: 0x270 11668099: cap 0: Start a parallel conjunction 0x2523bb0, static_id: 2 11668252: cap 0: Create spark for conjunction: 0x2523bb0 spark: 0x271 11668432: cap 0: Start a parallel conjunction 0x2523c10, static_id: 2 11668554: cap 0: Create spark for conjunction: 0x2523c10 spark: 0x272 11668747: cap 0: Start a parallel conjunction 0x2523c70, static_id: 2 11668878: cap 0: Create spark for conjunction: 0x2523c70 spark: 0x273 11669058: cap 0: Start a parallel conjunction 0x2523cd0, static_id: 2 11669193: cap 0: Create spark for conjunction: 0x2523cd0 spark: 0x274 11669391: cap 0: Start a parallel conjunction 0x2523d30, static_id: 2 11669521: cap 0: Create spark for conjunction: 0x2523d30 spark: 0x275 11669710: cap 0: Start a parallel conjunction 0x2523d90, static_id: 2 11669836: cap 0: Create spark for conjunction: 0x2523d90 spark: 0x276 11670021: cap 0: Start a parallel conjunction 0x2523df0, static_id: 2 11670160: cap 0: Create spark for conjunction: 0x2523df0 spark: 0x277 11670340: cap 0: Start a parallel conjunction 0x2523e50, static_id: 2 11670466: cap 0: Create spark for conjunction: 0x2523e50 spark: 0x278 11670660: cap 0: Start a parallel conjunction 0x2523eb0, static_id: 2 11670790: cap 0: Create spark for conjunction: 0x2523eb0 spark: 0x279 11670970: cap 0: Start a parallel conjunction 0x2523f10, static_id: 2 11671096: cap 0: Create spark for conjunction: 0x2523f10 spark: 0x27a 11671281: cap 0: Start a parallel conjunction 0x2523f70, static_id: 2 11671411: cap 0: Create spark for conjunction: 0x2523f70 spark: 0x27b 11671744: cap 0: Start a parallel conjunction 0x2523fd0, static_id: 2 11671870: cap 0: Create spark for conjunction: 0x2523fd0 spark: 0x27c 11672298: cap 0: Start a parallel conjunction 0x2524030, static_id: 2 11672446: cap 0: Create spark for conjunction: 0x2524030 spark: 0x27d 11672631: cap 0: Start a parallel conjunction 0x2524090, static_id: 2 11672752: cap 0: Create spark for conjunction: 0x2524090 spark: 0x27e 11672941: cap 0: Start a parallel conjunction 0x25240f0, static_id: 2 11673076: cap 0: Create spark for conjunction: 0x25240f0 spark: 0x27f 11673256: cap 0: Start a parallel conjunction 0x2524150, static_id: 2 11673382: cap 0: Create spark for conjunction: 0x2524150 spark: 0x280 11673567: cap 0: Start a parallel conjunction 0x25241b0, static_id: 2 11673697: cap 0: Create spark for conjunction: 0x25241b0 spark: 0x281 11673873: cap 0: Start a parallel conjunction 0x2524210, static_id: 2 11673994: cap 0: Create spark for conjunction: 0x2524210 spark: 0x282 11674183: cap 0: Start a parallel conjunction 0x2524270, static_id: 2 11674318: cap 0: Create spark for conjunction: 0x2524270 spark: 0x283 11674503: cap 0: Start a parallel conjunction 0x25242d0, static_id: 2 11674674: cap 0: Create spark for conjunction: 0x25242d0 spark: 0x284 11674867: cap 0: Start a parallel conjunction 0x2524330, static_id: 2 11675002: cap 0: Create spark for conjunction: 0x2524330 spark: 0x285 11675196: cap 0: Start a parallel conjunction 0x2524390, static_id: 2 11675317: cap 0: Create spark for conjunction: 0x2524390 spark: 0x286 11675493: cap 0: Start a parallel conjunction 0x25243f0, static_id: 2 11675632: cap 0: Create spark for conjunction: 0x25243f0 spark: 0x287 11675817: cap 0: Start a parallel conjunction 0x2524450, static_id: 2 11675983: cap 0: Create spark for conjunction: 0x2524450 spark: 0x288 11676190: cap 0: Start a parallel conjunction 0x25244b0, static_id: 2 11676321: cap 0: Create spark for conjunction: 0x25244b0 spark: 0x289 11676505: cap 0: Start a parallel conjunction 0x2524510, static_id: 2 11676789: cap 0: Create spark for conjunction: 0x2524510 spark: 0x28a 11676969: cap 0: Start a parallel conjunction 0x2524570, static_id: 2 11677131: cap 0: Create spark for conjunction: 0x2524570 spark: 0x28b 11677720: cap 0: Start a parallel conjunction 0x25245d0, static_id: 2 11677842: cap 0: Create spark for conjunction: 0x25245d0 spark: 0x28c 11678026: cap 0: Start a parallel conjunction 0x2524630, static_id: 2 11678166: cap 0: Create spark for conjunction: 0x2524630 spark: 0x28d 11678346: cap 0: Start a parallel conjunction 0x2524690, static_id: 2 11678467: cap 0: Create spark for conjunction: 0x2524690 spark: 0x28e 11678652: cap 0: Start a parallel conjunction 0x25246f0, static_id: 2 11678782: cap 0: Create spark for conjunction: 0x25246f0 spark: 0x28f 11678967: cap 0: Start a parallel conjunction 0x2524750, static_id: 2 11679088: cap 0: Create spark for conjunction: 0x2524750 spark: 0x290 11679268: cap 0: Start a parallel conjunction 0x25247b0, static_id: 2 11679399: cap 0: Create spark for conjunction: 0x25247b0 spark: 0x291 11679583: cap 0: Start a parallel conjunction 0x2524810, static_id: 2 11679714: cap 0: Create spark for conjunction: 0x2524810 spark: 0x292 11679912: cap 0: Start a parallel conjunction 0x2524870, static_id: 2 11680042: cap 0: Create spark for conjunction: 0x2524870 spark: 0x293 11680231: cap 0: Start a parallel conjunction 0x25248d0, static_id: 2 11680366: cap 0: Create spark for conjunction: 0x25248d0 spark: 0x294 11680564: cap 0: Start a parallel conjunction 0x2524930, static_id: 2 11680695: cap 0: Create spark for conjunction: 0x2524930 spark: 0x295 11680888: cap 0: Start a parallel conjunction 0x2524990, static_id: 2 11681014: cap 0: Create spark for conjunction: 0x2524990 spark: 0x296 11681199: cap 0: Start a parallel conjunction 0x25249f0, static_id: 2 11681338: cap 0: Create spark for conjunction: 0x25249f0 spark: 0x297 11681518: cap 0: Start a parallel conjunction 0x2524a50, static_id: 2 11681644: cap 0: Create spark for conjunction: 0x2524a50 spark: 0x298 11681833: cap 0: Start a parallel conjunction 0x2524ab0, static_id: 2 11681959: cap 0: Create spark for conjunction: 0x2524ab0 spark: 0x299 11682139: cap 0: Start a parallel conjunction 0x2524b10, static_id: 2 11682261: cap 0: Create spark for conjunction: 0x2524b10 spark: 0x29a 11682445: cap 0: Start a parallel conjunction 0x2524b70, static_id: 2 11682576: cap 0: Create spark for conjunction: 0x2524b70 spark: 0x29b 11682760: cap 0: Start a parallel conjunction 0x2524bd0, static_id: 2 11682886: cap 0: Create spark for conjunction: 0x2524bd0 spark: 0x29c 11683062: cap 0: Start a parallel conjunction 0x2524c30, static_id: 2 11683206: cap 0: Create spark for conjunction: 0x2524c30 spark: 0x29d 11683386: cap 0: Start a parallel conjunction 0x2524c90, static_id: 2 11683512: cap 0: Create spark for conjunction: 0x2524c90 spark: 0x29e 11683705: cap 0: Start a parallel conjunction 0x2524cf0, static_id: 2 11683836: cap 0: Create spark for conjunction: 0x2524cf0 spark: 0x29f 11684011: cap 0: Start a parallel conjunction 0x2524d50, static_id: 2 11684133: cap 0: Create spark for conjunction: 0x2524d50 spark: 0x2a0 11684317: cap 0: Start a parallel conjunction 0x2524db0, static_id: 2 11684448: cap 0: Create spark for conjunction: 0x2524db0 spark: 0x2a1 11684628: cap 0: Start a parallel conjunction 0x2524e10, static_id: 2 11684749: cap 0: Create spark for conjunction: 0x2524e10 spark: 0x2a2 11684938: cap 0: Start a parallel conjunction 0x2524e70, static_id: 2 11685073: cap 0: Create spark for conjunction: 0x2524e70 spark: 0x2a3 11685253: cap 0: Start a parallel conjunction 0x2524ed0, static_id: 2 11685388: cap 0: Create spark for conjunction: 0x2524ed0 spark: 0x2a4 11685577: cap 0: Start a parallel conjunction 0x2524f30, static_id: 2 11685712: cap 0: Create spark for conjunction: 0x2524f30 spark: 0x2a5 11685901: cap 0: Start a parallel conjunction 0x2524f90, static_id: 2 11686027: cap 0: Create spark for conjunction: 0x2524f90 spark: 0x2a6 11686554: cap 0: Start a parallel conjunction 0x2524ff0, static_id: 2 11686693: cap 0: Create spark for conjunction: 0x2524ff0 spark: 0x2a7 11686882: cap 0: Start a parallel conjunction 0x2525050, static_id: 2 11687008: cap 0: Create spark for conjunction: 0x2525050 spark: 0x2a8 11687202: cap 0: Start a parallel conjunction 0x25250b0, static_id: 2 11687332: cap 0: Create spark for conjunction: 0x25250b0 spark: 0x2a9 11687512: cap 0: Start a parallel conjunction 0x2525110, static_id: 2 11687643: cap 0: Create spark for conjunction: 0x2525110 spark: 0x2aa 11687827: cap 0: Start a parallel conjunction 0x2525170, static_id: 2 11687953: cap 0: Create spark for conjunction: 0x2525170 spark: 0x2ab 11688142: cap 0: Start a parallel conjunction 0x25251d0, static_id: 2 11688264: cap 0: Create spark for conjunction: 0x25251d0 spark: 0x2ac 11688448: cap 0: Start a parallel conjunction 0x2525230, static_id: 2 11688583: cap 0: Create spark for conjunction: 0x2525230 spark: 0x2ad 11688763: cap 0: Start a parallel conjunction 0x2525290, static_id: 2 11688885: cap 0: Create spark for conjunction: 0x2525290 spark: 0x2ae 11689074: cap 0: Start a parallel conjunction 0x25252f0, static_id: 2 11689209: cap 0: Create spark for conjunction: 0x25252f0 spark: 0x2af 11689389: cap 0: Start a parallel conjunction 0x2525350, static_id: 2 11689510: cap 0: Create spark for conjunction: 0x2525350 spark: 0x2b0 11689695: cap 0: Start a parallel conjunction 0x25253b0, static_id: 2 11689825: cap 0: Create spark for conjunction: 0x25253b0 spark: 0x2b1 11690005: cap 0: Start a parallel conjunction 0x2525410, static_id: 2 11690131: cap 0: Create spark for conjunction: 0x2525410 spark: 0x2b2 11690325: cap 0: Start a parallel conjunction 0x2525470, static_id: 2 11690455: cap 0: Create spark for conjunction: 0x2525470 spark: 0x2b3 11690631: cap 0: Start a parallel conjunction 0x25254d0, static_id: 2 11690766: cap 0: Create spark for conjunction: 0x25254d0 spark: 0x2b4 11690955: cap 0: Start a parallel conjunction 0x2525530, static_id: 2 11691090: cap 0: Create spark for conjunction: 0x2525530 spark: 0x2b5 11691279: cap 0: Start a parallel conjunction 0x2525590, static_id: 2 11691405: cap 0: Create spark for conjunction: 0x2525590 spark: 0x2b6 11691585: cap 0: Start a parallel conjunction 0x25255f0, static_id: 2 11691724: cap 0: Create spark for conjunction: 0x25255f0 spark: 0x2b7 11691904: cap 0: Start a parallel conjunction 0x2525650, static_id: 2 11692026: cap 0: Create spark for conjunction: 0x2525650 spark: 0x2b8 11692233: cap 0: Start a parallel conjunction 0x25256b0, static_id: 2 11692363: cap 0: Create spark for conjunction: 0x25256b0 spark: 0x2b9 11692539: cap 0: Start a parallel conjunction 0x2525710, static_id: 2 11692665: cap 0: Create spark for conjunction: 0x2525710 spark: 0x2ba 11692849: cap 0: Start a parallel conjunction 0x2525770, static_id: 2 11692975: cap 0: Create spark for conjunction: 0x2525770 spark: 0x2bb 11693164: cap 0: Start a parallel conjunction 0x25257d0, static_id: 2 11693290: cap 0: Create spark for conjunction: 0x25257d0 spark: 0x2bc 11693475: cap 0: Start a parallel conjunction 0x2525830, static_id: 2 11693610: cap 0: Create spark for conjunction: 0x2525830 spark: 0x2bd 11693794: cap 0: Start a parallel conjunction 0x2525890, static_id: 2 11693916: cap 0: Create spark for conjunction: 0x2525890 spark: 0x2be 11694127: cap 0: Start a parallel conjunction 0x25258f0, static_id: 2 11694258: cap 0: Create spark for conjunction: 0x25258f0 spark: 0x2bf 11694438: cap 0: Start a parallel conjunction 0x2525950, static_id: 2 11694564: cap 0: Create spark for conjunction: 0x2525950 spark: 0x2c0 11694753: cap 0: Start a parallel conjunction 0x25259b0, static_id: 2 11694892: cap 0: Create spark for conjunction: 0x25259b0 spark: 0x2c1 11695081: cap 0: Start a parallel conjunction 0x2525a10, static_id: 2 11695203: cap 0: Create spark for conjunction: 0x2525a10 spark: 0x2c2 11695401: cap 0: Start a parallel conjunction 0x2525a70, static_id: 2 11695531: cap 0: Create spark for conjunction: 0x2525a70 spark: 0x2c3 11695711: cap 0: Start a parallel conjunction 0x2525ad0, static_id: 2 11695842: cap 0: Create spark for conjunction: 0x2525ad0 spark: 0x2c4 11696031: cap 0: Start a parallel conjunction 0x2525b30, static_id: 2 11696161: cap 0: Create spark for conjunction: 0x2525b30 spark: 0x2c5 11696350: cap 0: Start a parallel conjunction 0x2525b90, static_id: 2 11696476: cap 0: Create spark for conjunction: 0x2525b90 spark: 0x2c6 11696656: cap 0: Start a parallel conjunction 0x2525bf0, static_id: 2 11696791: cap 0: Create spark for conjunction: 0x2525bf0 spark: 0x2c7 11696980: cap 0: Start a parallel conjunction 0x2525c50, static_id: 2 11697106: cap 0: Create spark for conjunction: 0x2525c50 spark: 0x2c8 11697300: cap 0: Start a parallel conjunction 0x2525cb0, static_id: 2 11697435: cap 0: Create spark for conjunction: 0x2525cb0 spark: 0x2c9 11697615: cap 0: Start a parallel conjunction 0x2525d10, static_id: 2 11697741: cap 0: Create spark for conjunction: 0x2525d10 spark: 0x2ca 11697925: cap 0: Start a parallel conjunction 0x2525d70, static_id: 2 11698060: cap 0: Create spark for conjunction: 0x2525d70 spark: 0x2cb 11698249: cap 0: Start a parallel conjunction 0x2525dd0, static_id: 2 11698380: cap 0: Create spark for conjunction: 0x2525dd0 spark: 0x2cc 11698560: cap 0: Start a parallel conjunction 0x2525e30, static_id: 2 11698699: cap 0: Create spark for conjunction: 0x2525e30 spark: 0x2cd 11698888: cap 0: Start a parallel conjunction 0x2525e90, static_id: 2 11699014: cap 0: Create spark for conjunction: 0x2525e90 spark: 0x2ce 11699221: cap 0: Start a parallel conjunction 0x2525ef0, static_id: 2 11699356: cap 0: Create spark for conjunction: 0x2525ef0 spark: 0x2cf 11699536: cap 0: Start a parallel conjunction 0x2525f50, static_id: 2 11699662: cap 0: Create spark for conjunction: 0x2525f50 spark: 0x2d0 11700009: cap 0: Start a parallel conjunction 0x2525fb0, static_id: 2 11700139: cap 0: Create spark for conjunction: 0x2525fb0 spark: 0x2d1 11700432: cap 0: Start a parallel conjunction 0x2526010, static_id: 2 11700558: cap 0: Create spark for conjunction: 0x2526010 spark: 0x2d2 11700751: cap 0: Start a parallel conjunction 0x2526070, static_id: 2 11700882: cap 0: Create spark for conjunction: 0x2526070 spark: 0x2d3 11701057: cap 0: Start a parallel conjunction 0x25260d0, static_id: 2 11701183: cap 0: Create spark for conjunction: 0x25260d0 spark: 0x2d4 11701372: cap 0: Start a parallel conjunction 0x2526130, static_id: 2 11701503: cap 0: Create spark for conjunction: 0x2526130 spark: 0x2d5 11701692: cap 0: Start a parallel conjunction 0x2526190, static_id: 2 11701818: cap 0: Create spark for conjunction: 0x2526190 spark: 0x2d6 11702133: cap 0: Start a parallel conjunction 0x25261f0, static_id: 2 11702272: cap 0: Create spark for conjunction: 0x25261f0 spark: 0x2d7 11702457: cap 0: Start a parallel conjunction 0x2526250, static_id: 2 11702578: cap 0: Create spark for conjunction: 0x2526250 spark: 0x2d8 11702763: cap 0: Start a parallel conjunction 0x25262b0, static_id: 2 11702893: cap 0: Create spark for conjunction: 0x25262b0 spark: 0x2d9 11703073: cap 0: Start a parallel conjunction 0x2526310, static_id: 2 11703199: cap 0: Create spark for conjunction: 0x2526310 spark: 0x2da 11703384: cap 0: Start a parallel conjunction 0x2526370, static_id: 2 11703510: cap 0: Create spark for conjunction: 0x2526370 spark: 0x2db 11703825: cap 0: Start a parallel conjunction 0x25263d0, static_id: 2 11703946: cap 0: Create spark for conjunction: 0x25263d0 spark: 0x2dc 11704140: cap 0: Start a parallel conjunction 0x2526430, static_id: 2 11704275: cap 0: Create spark for conjunction: 0x2526430 spark: 0x2dd 11704455: cap 0: Start a parallel conjunction 0x2526490, static_id: 2 11704576: cap 0: Create spark for conjunction: 0x2526490 spark: 0x2de 11704761: cap 0: Start a parallel conjunction 0x25264f0, static_id: 2 11704891: cap 0: Create spark for conjunction: 0x25264f0 spark: 0x2df 11705067: cap 0: Start a parallel conjunction 0x2526550, static_id: 2 11705188: cap 0: Create spark for conjunction: 0x2526550 spark: 0x2e0 11705373: cap 0: Start a parallel conjunction 0x25265b0, static_id: 2 11705499: cap 0: Create spark for conjunction: 0x25265b0 spark: 0x2e1 11705683: cap 0: Start a parallel conjunction 0x2526610, static_id: 2 11705814: cap 0: Create spark for conjunction: 0x2526610 spark: 0x2e2 11706003: cap 0: Start a parallel conjunction 0x2526670, static_id: 2 11706133: cap 0: Create spark for conjunction: 0x2526670 spark: 0x2e3 11706318: cap 0: Start a parallel conjunction 0x25266d0, static_id: 2 11706448: cap 0: Create spark for conjunction: 0x25266d0 spark: 0x2e4 11706642: cap 0: Start a parallel conjunction 0x2526730, static_id: 2 11706777: cap 0: Create spark for conjunction: 0x2526730 spark: 0x2e5 11706966: cap 0: Start a parallel conjunction 0x2526790, static_id: 2 11707092: cap 0: Create spark for conjunction: 0x2526790 spark: 0x2e6 11707272: cap 0: Start a parallel conjunction 0x25267f0, static_id: 2 11707551: cap 0: Create spark for conjunction: 0x25267f0 spark: 0x2e7 11707744: cap 0: Start a parallel conjunction 0x2526850, static_id: 2 11707866: cap 0: Create spark for conjunction: 0x2526850 spark: 0x2e8 11708185: cap 0: Start a parallel conjunction 0x25268b0, static_id: 2 11708316: cap 0: Create spark for conjunction: 0x25268b0 spark: 0x2e9 11708505: cap 0: Start a parallel conjunction 0x2526910, static_id: 2 11708626: cap 0: Create spark for conjunction: 0x2526910 spark: 0x2ea 11708811: cap 0: Start a parallel conjunction 0x2526970, static_id: 2 11708937: cap 0: Create spark for conjunction: 0x2526970 spark: 0x2eb 11709126: cap 0: Start a parallel conjunction 0x25269d0, static_id: 2 11709247: cap 0: Create spark for conjunction: 0x25269d0 spark: 0x2ec 11709427: cap 0: Start a parallel conjunction 0x2526a30, static_id: 2 11709562: cap 0: Create spark for conjunction: 0x2526a30 spark: 0x2ed 11709742: cap 0: Start a parallel conjunction 0x2526a90, static_id: 2 11709864: cap 0: Create spark for conjunction: 0x2526a90 spark: 0x2ee 11710062: cap 0: Start a parallel conjunction 0x2526af0, static_id: 2 11710197: cap 0: Create spark for conjunction: 0x2526af0 spark: 0x2ef 11710372: cap 0: Start a parallel conjunction 0x2526b50, static_id: 2 11710503: cap 0: Create spark for conjunction: 0x2526b50 spark: 0x2f0 11710696: cap 0: Start a parallel conjunction 0x2526bb0, static_id: 2 11710827: cap 0: Create spark for conjunction: 0x2526bb0 spark: 0x2f1 11711011: cap 0: Start a parallel conjunction 0x2526c10, static_id: 2 11711128: cap 0: Create spark for conjunction: 0x2526c10 spark: 0x2f2 11711322: cap 0: Start a parallel conjunction 0x2526c70, static_id: 2 11711457: cap 0: Create spark for conjunction: 0x2526c70 spark: 0x2f3 11711637: cap 0: Start a parallel conjunction 0x2526cd0, static_id: 2 11711763: cap 0: Create spark for conjunction: 0x2526cd0 spark: 0x2f4 11711952: cap 0: Start a parallel conjunction 0x2526d30, static_id: 2 11712082: cap 0: Create spark for conjunction: 0x2526d30 spark: 0x2f5 11712271: cap 0: Start a parallel conjunction 0x2526d90, static_id: 2 11712397: cap 0: Create spark for conjunction: 0x2526d90 spark: 0x2f6 11712577: cap 0: Start a parallel conjunction 0x2526df0, static_id: 2 11712712: cap 0: Create spark for conjunction: 0x2526df0 spark: 0x2f7 11712888: cap 0: Start a parallel conjunction 0x2526e50, static_id: 2 11713009: cap 0: Create spark for conjunction: 0x2526e50 spark: 0x2f8 11713198: cap 0: Start a parallel conjunction 0x2526eb0, static_id: 2 11713329: cap 0: Create spark for conjunction: 0x2526eb0 spark: 0x2f9 11713504: cap 0: Start a parallel conjunction 0x2526f10, static_id: 2 11713626: cap 0: Create spark for conjunction: 0x2526f10 spark: 0x2fa 11713810: cap 0: Start a parallel conjunction 0x2526f70, static_id: 2 11713936: cap 0: Create spark for conjunction: 0x2526f70 spark: 0x2fb 11714130: cap 0: Start a parallel conjunction 0x2526fd0, static_id: 2 11714256: cap 0: Create spark for conjunction: 0x2526fd0 spark: 0x2fc 11714463: cap 0: Start a parallel conjunction 0x2527030, static_id: 2 11714598: cap 0: Create spark for conjunction: 0x2527030 spark: 0x2fd 11714787: cap 0: Start a parallel conjunction 0x2527090, static_id: 2 11714908: cap 0: Create spark for conjunction: 0x2527090 spark: 0x2fe 11715097: cap 0: Start a parallel conjunction 0x25270f0, static_id: 2 11715223: cap 0: Create spark for conjunction: 0x25270f0 spark: 0x2ff 11715403: cap 0: Start a parallel conjunction 0x2527150, static_id: 2 11715525: cap 0: Create spark for conjunction: 0x2527150 spark: 0x300 11715705: cap 0: Start a parallel conjunction 0x25271b0, static_id: 2 11715835: cap 0: Create spark for conjunction: 0x25271b0 spark: 0x301 11716015: cap 0: Start a parallel conjunction 0x2527210, static_id: 2 11716137: cap 0: Create spark for conjunction: 0x2527210 spark: 0x302 11716321: cap 0: Start a parallel conjunction 0x2527270, static_id: 2 11716452: cap 0: Create spark for conjunction: 0x2527270 spark: 0x303 11716632: cap 0: Start a parallel conjunction 0x25272d0, static_id: 2 11716803: cap 0: Create spark for conjunction: 0x25272d0 spark: 0x304 11716987: cap 0: Start a parallel conjunction 0x2527330, static_id: 2 11717113: cap 0: Create spark for conjunction: 0x2527330 spark: 0x305 11717302: cap 0: Start a parallel conjunction 0x2527390, static_id: 2 11717424: cap 0: Create spark for conjunction: 0x2527390 spark: 0x306 11717604: cap 0: Start a parallel conjunction 0x25273f0, static_id: 2 11717743: cap 0: Create spark for conjunction: 0x25273f0 spark: 0x307 11717919: cap 0: Start a parallel conjunction 0x2527450, static_id: 2 11718085: cap 0: Create spark for conjunction: 0x2527450 spark: 0x308 11718288: cap 0: Start a parallel conjunction 0x25274b0, static_id: 2 11718418: cap 0: Create spark for conjunction: 0x25274b0 spark: 0x309 11718594: cap 0: Start a parallel conjunction 0x2527510, static_id: 2 11718720: cap 0: Create spark for conjunction: 0x2527510 spark: 0x30a 11718904: cap 0: Start a parallel conjunction 0x2527570, static_id: 2 11719035: cap 0: Create spark for conjunction: 0x2527570 spark: 0x30b 11719219: cap 0: Start a parallel conjunction 0x25275d0, static_id: 2 11719341: cap 0: Create spark for conjunction: 0x25275d0 spark: 0x30c 11719525: cap 0: Start a parallel conjunction 0x2527630, static_id: 2 11719669: cap 0: Create spark for conjunction: 0x2527630 spark: 0x30d 11719849: cap 0: Start a parallel conjunction 0x2527690, static_id: 2 11719971: cap 0: Create spark for conjunction: 0x2527690 spark: 0x30e 11720155: cap 0: Start a parallel conjunction 0x25276f0, static_id: 2 11720290: cap 0: Create spark for conjunction: 0x25276f0 spark: 0x30f 11720475: cap 0: Start a parallel conjunction 0x2527750, static_id: 2 11720601: cap 0: Create spark for conjunction: 0x2527750 spark: 0x310 11720776: cap 0: Start a parallel conjunction 0x25277b0, static_id: 2 11720907: cap 0: Create spark for conjunction: 0x25277b0 spark: 0x311 11721087: cap 0: Start a parallel conjunction 0x2527810, static_id: 2 11721204: cap 0: Create spark for conjunction: 0x2527810 spark: 0x312 11721393: cap 0: Start a parallel conjunction 0x2527870, static_id: 2 11721528: cap 0: Create spark for conjunction: 0x2527870 spark: 0x313 11721708: cap 0: Start a parallel conjunction 0x25278d0, static_id: 2 11721834: cap 0: Create spark for conjunction: 0x25278d0 spark: 0x314 11722149: cap 0: Start a parallel conjunction 0x2527930, static_id: 2 11722275: cap 0: Create spark for conjunction: 0x2527930 spark: 0x315 11722464: cap 0: Start a parallel conjunction 0x2527990, static_id: 2 11722590: cap 0: Create spark for conjunction: 0x2527990 spark: 0x316 11722770: cap 0: Start a parallel conjunction 0x25279f0, static_id: 2 11722905: cap 0: Create spark for conjunction: 0x25279f0 spark: 0x317 11723089: cap 0: Start a parallel conjunction 0x2527a50, static_id: 2 11723215: cap 0: Create spark for conjunction: 0x2527a50 spark: 0x318 11723400: cap 0: Start a parallel conjunction 0x2527ab0, static_id: 2 11723535: cap 0: Create spark for conjunction: 0x2527ab0 spark: 0x319 11723715: cap 0: Start a parallel conjunction 0x2527b10, static_id: 2 11723836: cap 0: Create spark for conjunction: 0x2527b10 spark: 0x31a 11724021: cap 0: Start a parallel conjunction 0x2527b70, static_id: 2 11724151: cap 0: Create spark for conjunction: 0x2527b70 spark: 0x31b 11724340: cap 0: Start a parallel conjunction 0x2527bd0, static_id: 2 11724462: cap 0: Create spark for conjunction: 0x2527bd0 spark: 0x31c 11724642: cap 0: Start a parallel conjunction 0x2527c30, static_id: 2 11724781: cap 0: Create spark for conjunction: 0x2527c30 spark: 0x31d 11724961: cap 0: Start a parallel conjunction 0x2527c90, static_id: 2 11725092: cap 0: Create spark for conjunction: 0x2527c90 spark: 0x31e 11725285: cap 0: Start a parallel conjunction 0x2527cf0, static_id: 2 11725425: cap 0: Create spark for conjunction: 0x2527cf0 spark: 0x31f 11728597: cap 0: End par conjunct: 0x2527cf0 11730312: cap 0: running a local spark 12148717: cap 3: creating spark thread 3 12149284: cap 3: running thread 3 12335386: cap 2: creating spark thread 2 12336304: cap 2: running thread 2 12609625: cap 1: creating spark thread 4 12610075: cap 1: running thread 4 12877888: cap 3: End par conjunct: 0x25151b0 12878455: cap 3: Trying to steal a spark 12879013: cap 3: stealing a spark from cap 0 13341195: cap 2: End par conjunct: 0x2515150 13342090: cap 2: Trying to steal a spark 13343094: cap 2: stealing a spark from cap 0 13501534: cap 3: End par conjunct: 0x2515270 13501827: cap 3: Trying to steal a spark 13502322: cap 3: stealing a spark from cap 0 13596930: cap 1: End par conjunct: 0x2515210 13597681: cap 1: Trying to steal a spark 13598401: cap 1: stealing a spark from cap 0 14083335: cap 1: stopping thread 4 (heap overflow) 14083542: cap 1: starting GC 14136727: cap 0: stopping thread 1 (thread yielding) 14140219: cap 3: stopping thread 3 (thread yielding) 14149165: cap 2: stopping thread 2 (thread yielding) 23736676: cap 0: running thread 1 23740087: cap 3: running thread 3 23748079: cap 2: running thread 2 23783076: cap 1: finished GC 23783292: cap 1: running thread 4 24076197: cap 2: End par conjunct: 0x25152d0 24078132: cap 2: Trying to steal a spark 24079986: cap 2: stealing a spark from cap 0 24232905: cap 3: End par conjunct: 0x2515330 24233566: cap 3: Trying to steal a spark 24234601: cap 3: stealing a spark from cap 0 24254811: cap 1: End par conjunct: 0x2515390 24255621: cap 1: Trying to steal a spark 24256161: cap 1: stealing a spark from cap 0 24726721: cap 2: End par conjunct: 0x25153f0 24726996: cap 2: Trying to steal a spark 24727351: cap 2: stealing a spark from cap 0 24884374: cap 1: End par conjunct: 0x25154b0 24884775: cap 1: Trying to steal a spark 24884995: cap 1: stealing a spark from cap 0 25181676: cap 3: End par conjunct: 0x2515450 25182256: cap 3: Trying to steal a spark 25182837: cap 3: stealing a spark from cap 0 25332556: cap 2: End par conjunct: 0x2515510 25332939: cap 2: Trying to steal a spark 25333330: cap 2: stealing a spark from cap 0 25496014: cap 1: End par conjunct: 0x2515570 25496253: cap 1: Trying to steal a spark 25496473: cap 1: stealing a spark from cap 0 25927915: cap 2: End par conjunct: 0x2515630 25928122: cap 2: Trying to steal a spark 25928334: cap 2: stealing a spark from cap 0 26084745: cap 3: End par conjunct: 0x25155d0 26085249: cap 3: Trying to steal a spark 26085843: cap 3: stealing a spark from cap 0 26090298: cap 1: End par conjunct: 0x2515690 26090689: cap 1: Trying to steal a spark 26091085: cap 1: stealing a spark from cap 0 26536383: cap 2: End par conjunct: 0x25156f0 26536603: cap 2: Trying to steal a spark 26536914: cap 2: stealing a spark from cap 0 26692762: cap 1: End par conjunct: 0x25157b0 26692992: cap 1: Trying to steal a spark 26693203: cap 1: stealing a spark from cap 0 26979043: cap 3: End par conjunct: 0x2515750 26979642: cap 3: Trying to steal a spark 26980258: cap 3: stealing a spark from cap 0 27137002: cap 2: End par conjunct: 0x2515810 27137416: cap 2: Trying to steal a spark 27137952: cap 2: stealing a spark from cap 0 27307827: cap 1: End par conjunct: 0x2515870 27308056: cap 1: Trying to steal a spark 27308272: cap 1: stealing a spark from cap 0 27746244: cap 2: End par conjunct: 0x2515930 27746469: cap 2: Trying to steal a spark 27746680: cap 2: stealing a spark from cap 0 27876528: cap 3: End par conjunct: 0x25158d0 27877045: cap 3: Trying to steal a spark 27877761: cap 3: stealing a spark from cap 0 27921861: cap 1: End par conjunct: 0x2515990 27922432: cap 1: Trying to steal a spark 27922869: cap 1: stealing a spark from cap 0 28351957: cap 2: End par conjunct: 0x25159f0 28352187: cap 2: Trying to steal a spark 28352407: cap 2: stealing a spark from cap 0 28533199: cap 1: End par conjunct: 0x2515ab0 28533424: cap 1: Trying to steal a spark 28533631: cap 1: stealing a spark from cap 0 28780488: cap 3: End par conjunct: 0x2515a50 28780996: cap 3: Trying to steal a spark 28781604: cap 3: stealing a spark from cap 0 28984594: cap 2: End par conjunct: 0x2515b10 28985049: cap 2: Trying to steal a spark 28985485: cap 2: stealing a spark from cap 0 29173518: cap 1: End par conjunct: 0x2515b70 29173806: cap 1: Trying to steal a spark 29174062: cap 1: stealing a spark from cap 0 29588274: cap 2: End par conjunct: 0x2515c30 29588494: cap 2: Trying to steal a spark 29588706: cap 2: stealing a spark from cap 0 29705886: cap 3: End par conjunct: 0x2515bd0 29706475: cap 3: Trying to steal a spark 29707047: cap 3: stealing a spark from cap 0 29788911: cap 1: End par conjunct: 0x2515c90 29789302: cap 1: Trying to steal a spark 29789694: cap 1: stealing a spark from cap 0 30185464: cap 2: End par conjunct: 0x2515cf0 30185671: cap 2: Trying to steal a spark 30185982: cap 2: stealing a spark from cap 0 30392149: cap 1: End par conjunct: 0x2515db0 30392374: cap 1: Trying to steal a spark 30392590: cap 1: stealing a spark from cap 0 30611209: cap 3: End par conjunct: 0x2515d50 30611916: cap 3: Trying to steal a spark 30612640: cap 3: stealing a spark from cap 0 30809916: cap 2: End par conjunct: 0x2515e10 30810312: cap 2: Trying to steal a spark 30810712: cap 2: stealing a spark from cap 0 31008384: cap 1: End par conjunct: 0x2515e70 31008600: cap 1: Trying to steal a spark 31008901: cap 1: stealing a spark from cap 0 31420368: cap 2: End par conjunct: 0x2515f30 31420593: cap 2: Trying to steal a spark 31420809: cap 2: stealing a spark from cap 0 31533394: cap 3: End par conjunct: 0x2515ed0 31533984: cap 3: Trying to steal a spark 31534591: cap 3: stealing a spark from cap 0 31615168: cap 1: End par conjunct: 0x2515f90 31615596: cap 1: Trying to steal a spark 31615992: cap 1: stealing a spark from cap 0 32033641: cap 2: End par conjunct: 0x2515ff0 32033866: cap 2: Trying to steal a spark 32034177: cap 2: stealing a spark from cap 0 32268591: cap 1: End par conjunct: 0x25160b0 32268874: cap 1: Trying to steal a spark 32269131: cap 1: stealing a spark from cap 0 32468868: cap 3: End par conjunct: 0x2516050 32469426: cap 3: Trying to steal a spark 32470078: cap 3: stealing a spark from cap 0 32677348: cap 2: End par conjunct: 0x2516110 32677776: cap 2: Trying to steal a spark 32678208: cap 2: stealing a spark from cap 0 32876379: cap 1: End par conjunct: 0x2516170 32876590: cap 1: Trying to steal a spark 32876811: cap 1: stealing a spark from cap 0 33304153: cap 2: End par conjunct: 0x2516230 33304374: cap 2: Trying to steal a spark 33304684: cap 2: stealing a spark from cap 0 33398968: cap 3: End par conjunct: 0x25161d0 33399441: cap 3: Trying to steal a spark 33399936: cap 3: stealing a spark from cap 0 33498414: cap 1: End par conjunct: 0x2516290 33498900: cap 1: Trying to steal a spark 33499372: cap 1: stealing a spark from cap 0 33926773: cap 2: End par conjunct: 0x25162f0 33927003: cap 2: Trying to steal a spark 33927219: cap 2: stealing a spark from cap 0 34125759: cap 1: End par conjunct: 0x25163b0 34125984: cap 1: Trying to steal a spark 34126200: cap 1: stealing a spark from cap 0 34343518: cap 3: End par conjunct: 0x2516350 34344018: cap 3: Trying to steal a spark 34344841: cap 3: stealing a spark from cap 0 34555158: cap 2: End par conjunct: 0x2516410 34555585: cap 2: Trying to steal a spark 34555999: cap 2: stealing a spark from cap 0 34755426: cap 1: End par conjunct: 0x2516470 34755651: cap 1: Trying to steal a spark 34755885: cap 1: stealing a spark from cap 0 35181679: cap 2: End par conjunct: 0x2516530 35181904: cap 2: Trying to steal a spark 35182219: cap 2: stealing a spark from cap 0 35299462: cap 3: End par conjunct: 0x25164d0 35300011: cap 3: Trying to steal a spark 35300614: cap 3: stealing a spark from cap 0 35403894: cap 1: End par conjunct: 0x2516590 35404425: cap 1: Trying to steal a spark 35404992: cap 1: stealing a spark from cap 0 35817421: cap 2: End par conjunct: 0x25165f0 35817651: cap 2: Trying to steal a spark 35817867: cap 2: stealing a spark from cap 0 36025614: cap 1: End par conjunct: 0x25166b0 36025843: cap 1: Trying to steal a spark 36026055: cap 1: stealing a spark from cap 0 36222511: cap 3: End par conjunct: 0x2516650 36223024: cap 3: Trying to steal a spark 36223618: cap 3: stealing a spark from cap 0 36455044: cap 2: End par conjunct: 0x2516710 36455602: cap 2: Trying to steal a spark 36456102: cap 2: stealing a spark from cap 0 36668988: cap 1: End par conjunct: 0x2516770 36669204: cap 1: Trying to steal a spark 36669415: cap 1: stealing a spark from cap 0 37113880: cap 2: End par conjunct: 0x2516830 37114330: cap 2: Trying to steal a spark 37114650: cap 2: stealing a spark from cap 0 37175854: cap 3: End par conjunct: 0x25167d0 37176363: cap 3: Trying to steal a spark 37176957: cap 3: stealing a spark from cap 0 37328764: cap 1: End par conjunct: 0x2516890 37329291: cap 1: Trying to steal a spark 37329781: cap 1: stealing a spark from cap 0 37769184: cap 2: End par conjunct: 0x25168f0 37769454: cap 2: Trying to steal a spark 37769818: cap 2: stealing a spark from cap 0 37969281: cap 1: End par conjunct: 0x25169b0 37969506: cap 1: Trying to steal a spark 37969722: cap 1: stealing a spark from cap 0 38118726: cap 3: End par conjunct: 0x2516950 38119275: cap 3: Trying to steal a spark 38119873: cap 3: stealing a spark from cap 0 38409223: cap 2: End par conjunct: 0x2516a10 38409628: cap 2: Trying to steal a spark 38410029: cap 2: stealing a spark from cap 0 38624274: cap 1: End par conjunct: 0x2516a70 38624539: cap 1: Trying to steal a spark 38624760: cap 1: stealing a spark from cap 0 39093678: cap 2: End par conjunct: 0x2516b30 39093957: cap 2: Trying to steal a spark 39094204: cap 2: stealing a spark from cap 0 39133138: cap 3: End par conjunct: 0x2516ad0 39133723: cap 3: Trying to steal a spark 39134574: cap 3: stealing a spark from cap 0 39276504: cap 1: End par conjunct: 0x2516b90 39276913: cap 1: Trying to steal a spark 39277332: cap 1: stealing a spark from cap 0 39746497: cap 2: End par conjunct: 0x2516bf0 39746718: cap 2: Trying to steal a spark 39746938: cap 2: stealing a spark from cap 0 39951765: cap 1: End par conjunct: 0x2516cb0 39952062: cap 1: Trying to steal a spark 39952341: cap 1: stealing a spark from cap 0 40113454: cap 3: End par conjunct: 0x2516c50 40113999: cap 3: Trying to steal a spark 40114507: cap 3: stealing a spark from cap 0 40408366: cap 2: End par conjunct: 0x2516d10 40408816: cap 2: Trying to steal a spark 40409239: cap 2: stealing a spark from cap 0 40619043: cap 1: End par conjunct: 0x2516d70 40619268: cap 1: Trying to steal a spark 40619488: cap 1: stealing a spark from cap 0 41067765: cap 2: End par conjunct: 0x2516e30 41068017: cap 2: Trying to steal a spark 41068260: cap 2: stealing a spark from cap 0 41114754: cap 3: End par conjunct: 0x2516dd0 41115456: cap 3: Trying to steal a spark 41116095: cap 3: stealing a spark from cap 0 41283873: cap 1: End par conjunct: 0x2516e90 41284156: cap 1: Trying to steal a spark 41284548: cap 1: stealing a spark from cap 0 41730048: cap 2: End par conjunct: 0x2516ef0 41730273: cap 2: Trying to steal a spark 41730583: cap 2: stealing a spark from cap 0 41952546: cap 1: End par conjunct: 0x2516fb0 41952771: cap 1: Trying to steal a spark 41952982: cap 1: stealing a spark from cap 0 42100420: cap 3: End par conjunct: 0x2516f50 42100924: cap 3: Trying to steal a spark 42101577: cap 3: stealing a spark from cap 0 42400962: cap 2: End par conjunct: 0x2517010 42401286: cap 2: Trying to steal a spark 42401709: cap 2: stealing a spark from cap 0 42633526: cap 1: End par conjunct: 0x2517070 42633801: cap 1: Trying to steal a spark 42634035: cap 1: stealing a spark from cap 0 43071579: cap 2: End par conjunct: 0x2517130 43071804: cap 2: Trying to steal a spark 43072141: cap 2: stealing a spark from cap 0 43098408: cap 3: End par conjunct: 0x25170d0 43099047: cap 3: Trying to steal a spark 43099650: cap 3: stealing a spark from cap 0 43299085: cap 1: End par conjunct: 0x2517190 43299540: cap 1: Trying to steal a spark 43299994: cap 1: stealing a spark from cap 0 43749342: cap 2: End par conjunct: 0x25171f0 43749675: cap 2: Trying to steal a spark 43749981: cap 2: stealing a spark from cap 0 43987482: cap 1: End par conjunct: 0x25172b0 43987711: cap 1: Trying to steal a spark 43987927: cap 1: stealing a spark from cap 0 44106511: cap 3: End par conjunct: 0x2517250 44107020: cap 3: Trying to steal a spark 44107524: cap 3: stealing a spark from cap 0 44435862: cap 2: End par conjunct: 0x2517310 44436258: cap 2: Trying to steal a spark 44436654: cap 2: stealing a spark from cap 0 44685877: cap 1: End par conjunct: 0x2517370 44686093: cap 1: Trying to steal a spark 44686305: cap 1: stealing a spark from cap 0 45133911: cap 2: End par conjunct: 0x2517430 45134136: cap 2: Trying to steal a spark 45134446: cap 2: stealing a spark from cap 0 45154615: cap 3: End par conjunct: 0x25173d0 45155164: cap 3: Trying to steal a spark 45155763: cap 3: stealing a spark from cap 0 45397935: cap 1: End par conjunct: 0x2517490 45398326: cap 1: Trying to steal a spark 45398718: cap 1: stealing a spark from cap 0 45836001: cap 2: End par conjunct: 0x25174f0 45836226: cap 2: Trying to steal a spark 45836541: cap 2: stealing a spark from cap 0 46110154: cap 1: End par conjunct: 0x25175b0 46110379: cap 1: Trying to steal a spark 46110595: cap 1: stealing a spark from cap 0 46221808: cap 3: End par conjunct: 0x2517550 46222308: cap 3: Trying to steal a spark 46222902: cap 3: stealing a spark from cap 0 46588792: cap 2: End par conjunct: 0x2517610 46589211: cap 2: Trying to steal a spark 46589625: cap 2: stealing a spark from cap 0 46844860: cap 1: End par conjunct: 0x2517670 46845072: cap 1: Trying to steal a spark 46845288: cap 1: stealing a spark from cap 0 47312941: cap 2: End par conjunct: 0x2517730 47313166: cap 2: Trying to steal a spark 47313477: cap 2: stealing a spark from cap 0 47330820: cap 3: End par conjunct: 0x25176d0 47331400: cap 3: Trying to steal a spark 47332035: cap 3: stealing a spark from cap 0 47604280: cap 1: End par conjunct: 0x2517790 47604735: cap 1: Trying to steal a spark 47605203: cap 1: stealing a spark from cap 0 48060094: cap 2: End par conjunct: 0x25177f0 48060297: cap 2: Trying to steal a spark 48060603: cap 2: stealing a spark from cap 0 48358003: cap 1: End par conjunct: 0x25178b0 48358228: cap 1: Trying to steal a spark 48358458: cap 1: stealing a spark from cap 0 48437491: cap 3: End par conjunct: 0x2517850 48437964: cap 3: Trying to steal a spark 48438558: cap 3: stealing a spark from cap 0 48805825: cap 2: End par conjunct: 0x2517910 48806239: cap 2: Trying to steal a spark 48806824: cap 2: stealing a spark from cap 0 49100440: cap 1: End par conjunct: 0x2517970 49100665: cap 1: Trying to steal a spark 49100886: cap 1: stealing a spark from cap 0 49579861: cap 3: End par conjunct: 0x25179d0 49580419: cap 3: Trying to steal a spark 49581022: cap 3: stealing a spark from cap 0 49636854: cap 2: End par conjunct: 0x2517a30 49637754: cap 2: Trying to steal a spark 49638730: cap 2: stealing a spark from cap 0 49870381: cap 1: End par conjunct: 0x2517a90 49870705: cap 1: Trying to steal a spark 49870917: cap 1: stealing a spark from cap 0 50426550: cap 2: End par conjunct: 0x2517b50 50426932: cap 2: Trying to steal a spark 50427261: cap 2: stealing a spark from cap 0 50665230: cap 1: End par conjunct: 0x2517bb0 50665441: cap 1: Trying to steal a spark 50665653: cap 1: stealing a spark from cap 0 50830560: cap 3: End par conjunct: 0x2517af0 50831068: cap 3: Trying to steal a spark 50831662: cap 3: stealing a spark from cap 0 51224148: cap 2: End par conjunct: 0x2517c10 51224454: cap 2: Trying to steal a spark 51225012: cap 2: stealing a spark from cap 0 51483465: cap 1: End par conjunct: 0x2517c70 51483685: cap 1: Trying to steal a spark 51483906: cap 1: stealing a spark from cap 0 52064626: cap 3: End par conjunct: 0x2517cd0 52065135: cap 3: Trying to steal a spark 52065729: cap 3: stealing a spark from cap 0 52247997: cap 2: End par conjunct: 0x2517d30 52248433: cap 2: Trying to steal a spark 52248924: cap 2: stealing a spark from cap 0 52314489: cap 1: End par conjunct: 0x2517d90 52314921: cap 1: Trying to steal a spark 52315168: cap 1: stealing a spark from cap 0 53089573: cap 2: End par conjunct: 0x2517e50 53089983: cap 2: Trying to steal a spark 53090334: cap 2: stealing a spark from cap 0 53148744: cap 1: End par conjunct: 0x2517eb0 53148991: cap 1: Trying to steal a spark 53149203: cap 1: stealing a spark from cap 0 53306419: cap 3: End par conjunct: 0x2517df0 53306928: cap 3: Trying to steal a spark 53307544: cap 3: stealing a spark from cap 0 53907304: cap 2: End par conjunct: 0x2517f10 53907579: cap 2: Trying to steal a spark 53907961: cap 2: stealing a spark from cap 0 54013536: cap 1: End par conjunct: 0x2517f70 54013806: cap 1: Trying to steal a spark 54014022: cap 1: stealing a spark from cap 0 54337927: cap 3: End par conjunct: 0x2517fd0 54338431: cap 3: Trying to steal a spark 54338931: cap 3: stealing a spark from cap 0 54762241: cap 2: End par conjunct: 0x2518030 54762664: cap 2: Trying to steal a spark 54763177: cap 2: stealing a spark from cap 0 54909072: cap 1: End par conjunct: 0x2518090 54909450: cap 1: Trying to steal a spark 54909684: cap 1: stealing a spark from cap 0 55878903: cap 2: End par conjunct: 0x2518150 55879249: cap 2: Trying to steal a spark 55879465: cap 2: stealing a spark from cap 0 55923277: cap 3: End par conjunct: 0x25180f0 55923610: cap 3: Trying to steal a spark 55924101: cap 3: stealing a spark from cap 0 56954371: cap 1: End par conjunct: 0x25181b0 56954632: cap 1: Trying to steal a spark 56955096: cap 1: stealing a spark from cap 0 58131936: cap 2: End par conjunct: 0x2518210 58132260: cap 2: Trying to steal a spark 58132476: cap 2: stealing a spark from cap 0 58232556: cap 3: End par conjunct: 0x2518270 58232889: cap 3: Trying to steal a spark 58233262: cap 3: stealing a spark from cap 0 59230395: cap 1: End par conjunct: 0x25182d0 59231034: cap 1: Trying to steal a spark 59231439: cap 1: stealing a spark from cap 0 59402803: cap 3: End par conjunct: 0x2518390 59403244: cap 3: Trying to steal a spark 59403739: cap 3: stealing a spark from cap 0 59775511: cap 2: End par conjunct: 0x2518330 59775781: cap 2: Trying to steal a spark 59776168: cap 2: stealing a spark from cap 0 60382269: cap 3: End par conjunct: 0x2518450 60382647: cap 3: Trying to steal a spark 60383133: cap 3: stealing a spark from cap 0 60445363: cap 1: End par conjunct: 0x25183f0 60445737: cap 1: Trying to steal a spark 60446155: cap 1: stealing a spark from cap 0 61507039: cap 2: End par conjunct: 0x25184b0 61507665: cap 2: Trying to steal a spark 61508101: cap 2: stealing a spark from cap 0 62346784: cap 1: End par conjunct: 0x2518570 62347000: cap 1: Trying to steal a spark 62347216: cap 1: stealing a spark from cap 0 62512888: cap 3: End par conjunct: 0x2518510 62513284: cap 3: Trying to steal a spark 62513658: cap 3: stealing a spark from cap 0 63392238: cap 2: End par conjunct: 0x25185d0 63392625: cap 2: Trying to steal a spark 63393111: cap 2: stealing a spark from cap 0 63590472: cap 3: End par conjunct: 0x2518690 63590904: cap 3: Trying to steal a spark 63591385: cap 3: stealing a spark from cap 0 64123029: cap 1: End par conjunct: 0x2518630 64123375: cap 1: Trying to steal a spark 64123893: cap 1: stealing a spark from cap 0 64477633: cap 2: End par conjunct: 0x25186f0 64477975: cap 2: Trying to steal a spark 64478223: cap 2: stealing a spark from cap 0 64722933: cap 3: End par conjunct: 0x2518750 64723369: cap 3: Trying to steal a spark 64723851: cap 3: stealing a spark from cap 0 65542941: cap 1: End par conjunct: 0x25187b0 65543301: cap 1: Trying to steal a spark 65543782: cap 1: stealing a spark from cap 0 65650234: cap 2: End par conjunct: 0x2518810 65650576: cap 2: Trying to steal a spark 65650788: cap 2: stealing a spark from cap 0 66578935: cap 3: End par conjunct: 0x2518870 66579484: cap 3: Trying to steal a spark 66580056: cap 3: stealing a spark from cap 0 66854529: cap 2: End par conjunct: 0x2518930 66854853: cap 2: Trying to steal a spark 66855343: cap 2: stealing a spark from cap 0 66946320: cap 1: End par conjunct: 0x25188d0 66946707: cap 1: Trying to steal a spark 66946963: cap 1: stealing a spark from cap 0 67733041: cap 3: End par conjunct: 0x2518990 67733455: cap 3: Trying to steal a spark 67733950: cap 3: stealing a spark from cap 0 68058499: cap 2: End par conjunct: 0x25189f0 68058882: cap 2: Trying to steal a spark 68059377: cap 2: stealing a spark from cap 0 68678649: cap 1: End par conjunct: 0x2518a50 68678982: cap 1: Trying to steal a spark 68679229: cap 1: stealing a spark from cap 0 69240861: cap 3: End par conjunct: 0x2518ab0 69241176: cap 3: Trying to steal a spark 69241567: cap 3: stealing a spark from cap 0 69304954: cap 2: End par conjunct: 0x2518b10 69305319: cap 2: Trying to steal a spark 69305692: cap 2: stealing a spark from cap 0 70140240: cap 1: End par conjunct: 0x2518b70 70140469: cap 1: Trying to steal a spark 70140685: cap 1: stealing a spark from cap 0 70773511: cap 3: End par conjunct: 0x2518bd0 70773885: cap 3: Trying to steal a spark 70774366: cap 3: stealing a spark from cap 0 70808850: cap 2: End par conjunct: 0x2518c30 70809367: cap 2: Trying to steal a spark 70809768: cap 2: stealing a spark from cap 0 71873527: cap 1: End par conjunct: 0x2518c90 71873860: cap 1: Trying to steal a spark 71874072: cap 1: stealing a spark from cap 0 72283689: cap 2: End par conjunct: 0x2518d50 72284017: cap 2: Trying to steal a spark 72284233: cap 2: stealing a spark from cap 0 73054251: cap 3: End par conjunct: 0x2518cf0 73054732: cap 3: Trying to steal a spark 73055466: cap 3: stealing a spark from cap 0 73159285: cap 1: End par conjunct: 0x2518db0 73159722: cap 1: Trying to steal a spark 73160388: cap 1: stealing a spark from cap 0 74440966: cap 3: End par conjunct: 0x2518e70 74441227: cap 3: Trying to steal a spark 74441610: cap 3: stealing a spark from cap 0 74785315: cap 2: End par conjunct: 0x2518e10 74786017: cap 2: Trying to steal a spark 74787043: cap 2: stealing a spark from cap 0 75288483: cap 1: End par conjunct: 0x2518ed0 75288820: cap 1: Trying to steal a spark 75289032: cap 1: stealing a spark from cap 0 77436747: cap 3: End par conjunct: 0x2518f30 77437134: cap 3: Trying to steal a spark 77437759: cap 3: stealing a spark from cap 0 78004147: cap 2: End par conjunct: 0x2518f90 78004602: cap 2: Trying to steal a spark 78005169: cap 2: stealing a spark from cap 0 78438784: cap 1: End par conjunct: 0x2518ff0 78439081: cap 1: Trying to steal a spark 78439360: cap 1: stealing a spark from cap 0 80926996: cap 3: End par conjunct: 0x2519050 80927392: cap 3: Trying to steal a spark 80927775: cap 3: stealing a spark from cap 0 82047559: cap 2: End par conjunct: 0x25190b0 82047987: cap 2: Trying to steal a spark 82048459: cap 2: stealing a spark from cap 0 83968875: cap 1: End par conjunct: 0x2519110 83969217: cap 1: Trying to steal a spark 83969428: cap 1: stealing a spark from cap 0 86729665: cap 3: End par conjunct: 0x2519170 86730021: cap 3: Trying to steal a spark 86730417: cap 3: stealing a spark from cap 0 88351767: cap 2: End par conjunct: 0x25191d0 88352401: cap 2: Trying to steal a spark 88353040: cap 2: stealing a spark from cap 0 91559997: cap 1: End par conjunct: 0x2519230 91560532: cap 1: Trying to steal a spark 91560888: cap 1: stealing a spark from cap 0 94191606: cap 3: End par conjunct: 0x2519290 94192038: cap 3: Trying to steal a spark 94192447: cap 3: stealing a spark from cap 0 96909921: cap 2: End par conjunct: 0x25192f0 96910249: cap 2: Trying to steal a spark 96910677: cap 2: stealing a spark from cap 0 101435247: cap 1: End par conjunct: 0x2519350 101435656: cap 1: Trying to steal a spark 101435913: cap 1: stealing a spark from cap 0 106433743: cap 3: End par conjunct: 0x25193b0 106434189: cap 3: Trying to steal a spark 106434796: cap 3: stealing a spark from cap 0 109706557: cap 2: End par conjunct: 0x2519410 109707070: cap 2: Trying to steal a spark 109707538: cap 2: stealing a spark from cap 0 114820515: cap 1: End par conjunct: 0x2519470 114820857: cap 1: Trying to steal a spark 114821217: cap 1: stealing a spark from cap 0 119917665: cap 3: End par conjunct: 0x25194d0 119918088: cap 3: Trying to steal a spark 119918511: cap 3: stealing a spark from cap 0 123108241: cap 2: End par conjunct: 0x2519530 123108687: cap 2: Trying to steal a spark 123109312: cap 2: stealing a spark from cap 0 128630704: cap 1: End par conjunct: 0x2519590 128631078: cap 1: Trying to steal a spark 128631334: cap 1: stealing a spark from cap 0 134686683: cap 3: End par conjunct: 0x25195f0 134687052: cap 3: Trying to steal a spark 134687601: cap 3: stealing a spark from cap 0 137862301: cap 2: End par conjunct: 0x2519650 137862945: cap 2: Trying to steal a spark 137863800: cap 2: stealing a spark from cap 0 144241731: cap 1: End par conjunct: 0x25196b0 144242343: cap 1: Trying to steal a spark 144242730: cap 1: stealing a spark from cap 0 151251367: cap 3: End par conjunct: 0x2519710 151251804: cap 3: Trying to steal a spark 151252218: cap 3: stealing a spark from cap 0 156148578: cap 2: End par conjunct: 0x2519770 156149059: cap 2: Trying to steal a spark 156149635: cap 2: stealing a spark from cap 0 164802690: cap 1: End par conjunct: 0x25197d0 164803180: cap 1: Trying to steal a spark 164803441: cap 1: stealing a spark from cap 0 172408338: cap 3: End par conjunct: 0x2519830 172408693: cap 3: Trying to steal a spark 172409116: cap 3: stealing a spark from cap 0 178849849: cap 2: End par conjunct: 0x2519890 178850839: cap 2: Trying to steal a spark 178851514: cap 2: stealing a spark from cap 0 190023232: cap 1: End par conjunct: 0x25198f0 190023628: cap 1: Trying to steal a spark 190024060: cap 1: stealing a spark from cap 0 198545305: cap 3: End par conjunct: 0x2519950 198545724: cap 3: Trying to steal a spark 198546151: cap 3: stealing a spark from cap 0 198953811: cap 0: End par conjunct: 0x2527cf0 198958869: cap 0: End par conjunction: 0x2527cf0 198959206: cap 0: End par conjunct: 0x2527c90 198959832: cap 0: running a local spark 204747844: cap 2: End par conjunct: 0x25199b0 204748560: cap 2: Trying to steal a spark 204749253: cap 2: stealing a spark from cap 0 216975420: cap 1: End par conjunct: 0x2519a10 216976068: cap 1: Trying to steal a spark 216976392: cap 1: stealing a spark from cap 0 226126588: cap 3: End par conjunct: 0x2519a70 226127047: cap 3: Trying to steal a spark 226127484: cap 3: stealing a spark from cap 0 231747502: cap 2: End par conjunct: 0x2519ad0 231747970: cap 2: Trying to steal a spark 231748443: cap 2: stealing a spark from cap 0 247099896: cap 1: End par conjunct: 0x2519b30 247100737: cap 1: Trying to steal a spark 247101367: cap 1: stealing a spark from cap 0 255828780: cap 3: End par conjunct: 0x2519b90 255829216: cap 3: Trying to steal a spark 255829729: cap 3: stealing a spark from cap 0 260583750: cap 2: End par conjunct: 0x2519bf0 260584209: cap 2: Trying to steal a spark 260584807: cap 2: stealing a spark from cap 0 274906435: cap 1: End par conjunct: 0x2519c50 274906827: cap 1: Trying to steal a spark 274907083: cap 1: stealing a spark from cap 0 284926387: cap 3: End par conjunct: 0x2519cb0 284926752: cap 3: Trying to steal a spark 284927184: cap 3: stealing a spark from cap 0 290982267: cap 2: End par conjunct: 0x2519d10 290983005: cap 2: Trying to steal a spark 290983702: cap 2: stealing a spark from cap 0 307252908: cap 1: End par conjunct: 0x2519d70 307253191: cap 1: Trying to steal a spark 307253569: cap 1: stealing a spark from cap 0 319299286: cap 3: End par conjunct: 0x2519dd0 319299700: cap 3: Trying to steal a spark 319300159: cap 3: stealing a spark from cap 0 326048778: cap 2: End par conjunct: 0x2519e30 326049336: cap 2: Trying to steal a spark 326049898: cap 2: stealing a spark from cap 0 350669619: cap 1: End par conjunct: 0x2519e90 350670901: cap 1: Trying to steal a spark 350671846: cap 1: stealing a spark from cap 0 358029666: cap 3: End par conjunct: 0x2519ef0 358030057: cap 3: Trying to steal a spark 358030525: cap 3: stealing a spark from cap 0 364705011: cap 2: End par conjunct: 0x2519f50 364706158: cap 2: Trying to steal a spark 364706928: cap 2: stealing a spark from cap 0 365778837: cap 0: End par conjunct: 0x2527c90 365779084: cap 0: End par conjunction: 0x2527c90 365779363: cap 0: End par conjunct: 0x2527c30 365779795: cap 0: running a local spark 391049748: cap 1: End par conjunct: 0x2519fb0 391050117: cap 1: Trying to steal a spark 391050733: cap 1: stealing a spark from cap 0 397728738: cap 3: End par conjunct: 0x251a010 397729296: cap 3: Trying to steal a spark 397729710: cap 3: stealing a spark from cap 0 403134480: cap 2: End par conjunct: 0x251a070 403134916: cap 2: Trying to steal a spark 403135398: cap 2: stealing a spark from cap 0 430105333: cap 1: End par conjunct: 0x251a0d0 430105828: cap 1: Trying to steal a spark 430106098: cap 1: stealing a spark from cap 0 436262724: cap 3: End par conjunct: 0x251a130 436263097: cap 3: Trying to steal a spark 436263556: cap 3: stealing a spark from cap 0 441701977: cap 2: End par conjunct: 0x251a190 441702540: cap 2: Trying to steal a spark 441703102: cap 2: stealing a spark from cap 0 471085258: cap 1: End par conjunct: 0x251a1f0 471085825: cap 1: Trying to steal a spark 471086374: cap 1: stealing a spark from cap 0 477770602: cap 3: End par conjunct: 0x251a250 477771034: cap 3: Trying to steal a spark 477771471: cap 3: stealing a spark from cap 0 484487622: cap 2: End par conjunct: 0x251a2b0 484488301: cap 2: Trying to steal a spark 484488778: cap 2: stealing a spark from cap 0 514659478: cap 1: End par conjunct: 0x251a310 514659942: cap 1: Trying to steal a spark 514660297: cap 1: stealing a spark from cap 0 521906107: cap 3: End par conjunct: 0x251a370 521906481: cap 3: Trying to steal a spark 521906908: cap 3: stealing a spark from cap 0 529207344: cap 2: End par conjunct: 0x251a3d0 529207843: cap 2: Trying to steal a spark 529208352: cap 2: stealing a spark from cap 0 531944473: cap 0: End par conjunct: 0x2527c30 531944712: cap 0: End par conjunction: 0x2527c30 531944883: cap 0: End par conjunct: 0x2527bd0 531945387: cap 0: running a local spark 562630792: cap 1: End par conjunct: 0x251a430 562631112: cap 1: Trying to steal a spark 562631571: cap 1: stealing a spark from cap 0 570400015: cap 3: End par conjunct: 0x251a490 570400758: cap 3: Trying to steal a spark 570401365: cap 3: stealing a spark from cap 0 576937926: cap 2: End par conjunct: 0x251a4f0 576938331: cap 2: Trying to steal a spark 576938812: cap 2: stealing a spark from cap 0 612735025: cap 1: End par conjunct: 0x251a550 612735705: cap 1: Trying to steal a spark 612736429: cap 1: stealing a spark from cap 0 619791169: cap 3: End par conjunct: 0x251a5b0 619791552: cap 3: Trying to steal a spark 619792128: cap 3: stealing a spark from cap 0 626189926: cap 2: End par conjunct: 0x251a610 626190583: cap 2: Trying to steal a spark 626191096: cap 2: stealing a spark from cap 0 663484621: cap 1: End par conjunct: 0x251a670 663484909: cap 1: Trying to steal a spark 663485238: cap 1: stealing a spark from cap 0 671033749: cap 3: End par conjunct: 0x251a6d0 671034276: cap 3: Trying to steal a spark 671034811: cap 3: stealing a spark from cap 0 677780014: cap 2: End par conjunct: 0x251a730 677780779: cap 2: Trying to steal a spark 677781445: cap 2: stealing a spark from cap 0 699230403: cap 0: End par conjunct: 0x2527bd0 699230659: cap 0: End par conjunction: 0x2527bd0 699230835: cap 0: End par conjunct: 0x2527b70 699231397: cap 0: running a local spark 717773436: cap 1: End par conjunct: 0x251a790 717774057: cap 1: Trying to steal a spark 717774921: cap 1: stealing a spark from cap 0 726011095: cap 3: End par conjunct: 0x251a7f0 726011635: cap 3: Trying to steal a spark 726012076: cap 3: stealing a spark from cap 0 730991659: cap 2: End par conjunct: 0x251a850 730992199: cap 2: Trying to steal a spark 730992726: cap 2: stealing a spark from cap 0 774688756: cap 1: End par conjunct: 0x251a8b0 774689584: cap 1: Trying to steal a spark 774690183: cap 1: stealing a spark from cap 0 781757100: cap 3: End par conjunct: 0x251a910 781757734: cap 3: Trying to steal a spark 781758225: cap 3: stealing a spark from cap 0 785501482: cap 2: End par conjunct: 0x251a970 785502193: cap 2: Trying to steal a spark 785502751: cap 2: stealing a spark from cap 0 829932813: cap 1: End par conjunct: 0x251a9d0 829933366: cap 1: Trying to steal a spark 829933677: cap 1: stealing a spark from cap 0 837245920: cap 3: End par conjunct: 0x251aa30 837246307: cap 3: Trying to steal a spark 837246870: cap 3: stealing a spark from cap 0 842193072: cap 2: End par conjunct: 0x251aa90 842193535: cap 2: Trying to steal a spark 842193999: cap 2: stealing a spark from cap 0 865855660: cap 0: End par conjunct: 0x2527b70 865855854: cap 0: End par conjunction: 0x2527b70 865856250: cap 0: End par conjunct: 0x2527b10 865856655: cap 0: running a local spark 891740749: cap 1: End par conjunct: 0x251aaf0 891741532: cap 1: Trying to steal a spark 891742756: cap 1: stealing a spark from cap 0 899877420: cap 3: End par conjunct: 0x251ab50 899877951: cap 3: Trying to steal a spark 899878387: cap 3: stealing a spark from cap 0 904794669: cap 2: End par conjunct: 0x251abb0 904795731: cap 2: Trying to steal a spark 904796541: cap 2: stealing a spark from cap 0 956212956: cap 1: End par conjunct: 0x251ac10 956213617: cap 1: Trying to steal a spark 956213982: cap 1: stealing a spark from cap 0 965154496: cap 3: End par conjunct: 0x251ac70 965154946: cap 3: Trying to steal a spark 965155464: cap 3: stealing a spark from cap 0 968214550: cap 2: End par conjunct: 0x251acd0 968215018: cap 2: Trying to steal a spark 968215549: cap 2: stealing a spark from cap 0 1023491304: cap 1: End par conjunct: 0x251ad30 1023492051: cap 1: Trying to steal a spark 1023492964: cap 1: stealing a spark from cap 0 1033080210: cap 0: End par conjunct: 0x2527b10 1033080399: cap 0: End par conjunction: 0x2527b10 1033080588: cap 0: End par conjunct: 0x2527ab0 1033080961: cap 0: running a local spark 1033241377: cap 3: End par conjunct: 0x251ad90 1033241832: cap 3: Trying to steal a spark 1033242088: cap 3: stealing a spark from cap 0 1035608773: cap 2: End par conjunct: 0x251adf0 1035609259: cap 2: Trying to steal a spark 1035609754: cap 2: stealing a spark from cap 0 1094081674: cap 1: End par conjunct: 0x251ae50 1094082358: cap 1: Trying to steal a spark 1094083029: cap 1: stealing a spark from cap 0 1104048639: cap 3: End par conjunct: 0x251aeb0 1104049210: cap 3: Trying to steal a spark 1104049710: cap 3: stealing a spark from cap 0 1106189802: cap 2: End par conjunct: 0x251af10 1106190369: cap 2: Trying to steal a spark 1106190873: cap 2: stealing a spark from cap 0 1166137375: cap 1: End par conjunct: 0x251af70 1166138239: cap 1: Trying to steal a spark 1166138883: cap 1: stealing a spark from cap 0 1176810660: cap 2: End par conjunct: 0x251b030 1176811240: cap 2: Trying to steal a spark 1176811735: cap 2: stealing a spark from cap 0 1176898396: cap 3: End par conjunct: 0x251afd0 1176898900: cap 3: Trying to steal a spark 1176899553: cap 3: stealing a spark from cap 0 1200629866: cap 0: End par conjunct: 0x2527ab0 1200630069: cap 0: End par conjunction: 0x2527ab0 1200630375: cap 0: End par conjunct: 0x2527a50 1200630640: cap 0: running a local spark 1240834045: cap 1: End par conjunct: 0x251b090 1240834689: cap 1: Trying to steal a spark 1240835539: cap 1: stealing a spark from cap 0 1250312490: cap 2: End par conjunct: 0x251b0f0 1250312809: cap 2: Trying to steal a spark 1250313336: cap 2: stealing a spark from cap 0 1252791828: cap 3: End par conjunct: 0x251b150 1252792251: cap 3: Trying to steal a spark 1252792773: cap 3: stealing a spark from cap 0 1279191181: cap 1: stopping thread 4 (heap overflow) 1279191564: cap 1: starting GC 1279219414: cap 0: stopping thread 1 (thread yielding) 1279228891: cap 3: stopping thread 3 (thread yielding) 1279232685: cap 2: stopping thread 2 (thread yielding) 1288309455: cap 3: running thread 3 1288309464: cap 0: running thread 1 1288379502: cap 2: running thread 2 1288653435: cap 1: finished GC 1288653723: cap 1: running thread 4 1327831524: cap 1: End par conjunct: 0x251b1b0 1327833261: cap 1: Trying to steal a spark 1327835277: cap 1: stealing a spark from cap 0 1336238419: cap 2: End par conjunct: 0x251b210 1336239922: cap 2: Trying to steal a spark 1336240854: cap 2: stealing a spark from cap 0 1342275511: cap 3: End par conjunct: 0x251b270 1342276861: cap 3: Trying to steal a spark 1342278328: cap 3: stealing a spark from cap 0 1377233797: cap 0: End par conjunct: 0x2527a50 1377234085: cap 0: End par conjunction: 0x2527a50 1377234360: cap 0: End par conjunct: 0x25279f0 1377234999: cap 0: running a local spark 1411012053: cap 1: End par conjunct: 0x251b2d0 1411012948: cap 1: Trying to steal a spark 1411014010: cap 1: stealing a spark from cap 0 1416178687: cap 2: End par conjunct: 0x251b330 1416179236: cap 2: Trying to steal a spark 1416179596: cap 2: stealing a spark from cap 0 1425281166: cap 3: End par conjunct: 0x251b390 1425281638: cap 3: Trying to steal a spark 1425282160: cap 3: stealing a spark from cap 0 1495637941: cap 1: End par conjunct: 0x251b3f0 1495639008: cap 1: Trying to steal a spark 1495639872: cap 1: stealing a spark from cap 0 1504078123: cap 2: End par conjunct: 0x251b450 1504080297: cap 2: Trying to steal a spark 1504082367: cap 2: stealing a spark from cap 0 1510001185: cap 3: End par conjunct: 0x251b4b0 1510001685: cap 3: Trying to steal a spark 1510002126: cap 3: stealing a spark from cap 0 1544941570: cap 0: End par conjunct: 0x25279f0 1544941795: cap 0: End par conjunction: 0x25279f0 1544941948: cap 0: End par conjunct: 0x2527990 1544942205: cap 0: running a local spark 1586146329: cap 1: End par conjunct: 0x251b510 1586148417: cap 1: Trying to steal a spark 1586150667: cap 1: stealing a spark from cap 0 1595586420: cap 3: End par conjunct: 0x251b5d0 1595586879: cap 3: Trying to steal a spark 1595587329: cap 3: stealing a spark from cap 0 1617022876: cap 2: End par conjunct: 0x251b570 1617024591: cap 2: Trying to steal a spark 1617026719: cap 2: stealing a spark from cap 0 1672840125: cap 1: End par conjunct: 0x251b630 1672842082: cap 1: Trying to steal a spark 1672843959: cap 1: stealing a spark from cap 0 1682179780: cap 3: End par conjunct: 0x251b690 1682180307: cap 3: Trying to steal a spark 1682180811: cap 3: stealing a spark from cap 0 1712636509: cap 0: End par conjunct: 0x2527990 1712636757: cap 0: End par conjunction: 0x2527990 1712637067: cap 0: End par conjunct: 0x2527930 1712637333: cap 0: running a local spark 1713749616: cap 2: End par conjunct: 0x251b6f0 1713751249: cap 2: Trying to steal a spark 1713752950: cap 2: stealing a spark from cap 0 1760724864: cap 1: End par conjunct: 0x251b750 1760726002: cap 1: Trying to steal a spark 1760727222: cap 1: stealing a spark from cap 0 1768582786: cap 3: End par conjunct: 0x251b7b0 1768583205: cap 3: Trying to steal a spark 1768583812: cap 3: stealing a spark from cap 0 1797995713: cap 2: End par conjunct: 0x251b810 1797996865: cap 2: Trying to steal a spark 1797998157: cap 2: stealing a spark from cap 0 1847496091: cap 1: End par conjunct: 0x251b870 1847496856: cap 1: Trying to steal a spark 1847497662: cap 1: stealing a spark from cap 0 1856177788: cap 3: End par conjunct: 0x251b8d0 1856178396: cap 3: Trying to steal a spark 1856178990: cap 3: stealing a spark from cap 0 1879742844: cap 0: End par conjunct: 0x2527930 1879743100: cap 0: End par conjunction: 0x2527930 1879743289: cap 0: End par conjunct: 0x25278d0 1879743667: cap 0: running a local spark 1883263333: cap 2: End par conjunct: 0x251b930 1883264202: cap 2: Trying to steal a spark 1883265142: cap 2: stealing a spark from cap 0 1937704716: cap 1: End par conjunct: 0x251b990 1937705656: cap 1: Trying to steal a spark 1937706174: cap 1: stealing a spark from cap 0 1947000595: cap 3: End par conjunct: 0x251b9f0 1947001081: cap 3: Trying to steal a spark 1947001675: cap 3: stealing a spark from cap 0 1972568475: cap 2: End par conjunct: 0x251ba50 1972569087: cap 2: Trying to steal a spark 1972569622: cap 2: stealing a spark from cap 0 2030619109: cap 1: End par conjunct: 0x251bab0 2030619519: cap 1: Trying to steal a spark 2030619991: cap 1: stealing a spark from cap 0 2040124135: cap 3: End par conjunct: 0x251bb10 2040124612: cap 3: Trying to steal a spark 2040125067: cap 3: stealing a spark from cap 0 2062369093: cap 2: End par conjunct: 0x251bb70 2062369728: cap 2: Trying to steal a spark 2062370209: cap 2: stealing a spark from cap 0 2078025511: cap 0: End par conjunct: 0x25278d0 2078025673: cap 0: End par conjunction: 0x25278d0 2078028985: cap 0: End par conjunct: 0x2527870 2078029377: cap 0: running a local spark 2124377307: cap 1: End par conjunct: 0x251bbd0 2124378454: cap 1: Trying to steal a spark 2124379426: cap 1: stealing a spark from cap 0 2133988411: cap 3: End par conjunct: 0x251bc30 2133988821: cap 3: Trying to steal a spark 2133989334: cap 3: stealing a spark from cap 0 2154847783: cap 2: End par conjunct: 0x251bc90 2154848440: cap 2: Trying to steal a spark 2154848980: cap 2: stealing a spark from cap 0 2219288427: cap 1: End par conjunct: 0x251bcf0 2219289138: cap 1: Trying to steal a spark 2219289561: cap 1: stealing a spark from cap 0 2229366276: cap 3: End par conjunct: 0x251bd50 2229366739: cap 3: Trying to steal a spark 2229367311: cap 3: stealing a spark from cap 0 2243419969: cap 0: End par conjunct: 0x2527870 2243420307: cap 0: End par conjunction: 0x2527870 2243420500: cap 0: End par conjunct: 0x2527810 2243420883: cap 0: running a local spark 2247777301: cap 2: End par conjunct: 0x251bdb0 2247777895: cap 2: Trying to steal a spark 2247778597: cap 2: stealing a spark from cap 0 2316280018: cap 1: End par conjunct: 0x251be10 2316280662: cap 1: Trying to steal a spark 2316281274: cap 1: stealing a spark from cap 0 2325087283: cap 3: End par conjunct: 0x251be70 2325087769: cap 3: Trying to steal a spark 2325088224: cap 3: stealing a spark from cap 0 2340641119: cap 2: End par conjunct: 0x251bed0 2340641866: cap 2: Trying to steal a spark 2340642622: cap 2: stealing a spark from cap 0 2409047023: cap 0: End par conjunct: 0x2527810 2409047343: cap 0: End par conjunction: 0x2527810 2409047532: cap 0: End par conjunct: 0x25277b0 2409047811: cap 0: running a local spark 2412755536: cap 1: End par conjunct: 0x251bf30 2412756139: cap 1: Trying to steal a spark 2412756859: cap 1: stealing a spark from cap 0 2422017855: cap 3: End par conjunct: 0x251bf90 2422018314: cap 3: Trying to steal a spark 2422018728: cap 3: stealing a spark from cap 0 2434172382: cap 2: End par conjunct: 0x251bff0 2434173223: cap 2: Trying to steal a spark 2434173993: cap 2: stealing a spark from cap 0 2510563581: cap 1: End par conjunct: 0x251c050 2510565430: cap 1: Trying to steal a spark 2510569161: cap 1: stealing a spark from cap 0 2520040482: cap 3: End par conjunct: 0x251c0b0 2520040959: cap 3: Trying to steal a spark 2520041422: cap 3: stealing a spark from cap 0 2558992500: cap 2: End par conjunct: 0x251c110 2558994210: cap 2: Trying to steal a spark 2558995884: cap 2: stealing a spark from cap 0 2574399645: cap 0: End par conjunct: 0x25277b0 2574399816: cap 0: End par conjunction: 0x25277b0 2574399969: cap 0: End par conjunct: 0x2527750 2574400347: cap 0: running a local spark 2610752301: cap 1: End par conjunct: 0x251c170 2610753934: cap 1: Trying to steal a spark 2610755797: cap 1: stealing a spark from cap 0 2620085427: cap 3: End par conjunct: 0x251c1d0 2620086048: cap 3: Trying to steal a spark 2620086768: cap 3: stealing a spark from cap 0 2675306461: cap 2: End par conjunct: 0x251c230 2675308347: cap 2: Trying to steal a spark 2675309980: cap 2: stealing a spark from cap 0 2714796225: cap 1: End par conjunct: 0x251c290 2714797030: cap 1: Trying to steal a spark 2714797593: cap 1: stealing a spark from cap 0 2722951039: cap 3: End par conjunct: 0x251c2f0 2722951467: cap 3: Trying to steal a spark 2722952020: cap 3: stealing a spark from cap 0 2739383973: cap 0: End par conjunct: 0x2527750 2739384166: cap 0: End par conjunction: 0x2527750 2739384342: cap 0: End par conjunct: 0x25276f0 2739384837: cap 0: running a local spark 2774395746: cap 2: End par conjunct: 0x251c350 2774396821: cap 2: Trying to steal a spark 2774397874: cap 2: stealing a spark from cap 0 2823531642: cap 1: End par conjunct: 0x251c3b0 2823532524: cap 1: Trying to steal a spark 2823533046: cap 1: stealing a spark from cap 0 2826237402: cap 3: End par conjunct: 0x251c410 2826237888: cap 3: Trying to steal a spark 2826238351: cap 3: stealing a spark from cap 0 2875559067: cap 2: End par conjunct: 0x251c470 2875559715: cap 2: Trying to steal a spark 2875560331: cap 2: stealing a spark from cap 0 2904336270: cap 0: End par conjunct: 0x25276f0 2904336459: cap 0: End par conjunction: 0x25276f0 2904336598: cap 0: End par conjunct: 0x2527690 2904336945: cap 0: running a local spark 2929743756: cap 1: End par conjunct: 0x251c4d0 2929744462: cap 1: Trying to steal a spark 2929745119: cap 1: stealing a spark from cap 0 2932351546: cap 3: End par conjunct: 0x251c530 2932351933: cap 3: Trying to steal a spark 2932352451: cap 3: stealing a spark from cap 0 2978596588: cap 2: End par conjunct: 0x251c590 2978597187: cap 2: Trying to steal a spark 2978598042: cap 2: stealing a spark from cap 0 3035545497: cap 1: End par conjunct: 0x251c5f0 3035546145: cap 1: Trying to steal a spark 3035546662: cap 1: stealing a spark from cap 0 3036216996: cap 3: End par conjunct: 0x251c650 3036218197: cap 3: Trying to steal a spark 3036218746: cap 3: stealing a spark from cap 0 3070365034: cap 0: End par conjunct: 0x2527690 3070365327: cap 0: End par conjunction: 0x2527690 3070365502: cap 0: End par conjunct: 0x2527630 3070365894: cap 0: running a local spark 3079323792: cap 2: End par conjunct: 0x251c6b0 3079324228: cap 2: Trying to steal a spark 3079324786: cap 2: stealing a spark from cap 0 3139956252: cap 3: End par conjunct: 0x251c770 3139956657: cap 3: Trying to steal a spark 3139957264: cap 3: stealing a spark from cap 0 3140464482: cap 1: End par conjunct: 0x251c710 3140465692: cap 1: Trying to steal a spark 3140466867: cap 1: stealing a spark from cap 0 3185762184: cap 2: End par conjunct: 0x251c7d0 3185764056: cap 2: Trying to steal a spark 3185766328: cap 2: stealing a spark from cap 0 3236157738: cap 0: End par conjunct: 0x2527630 3236157981: cap 0: End par conjunction: 0x2527630 3236158165: cap 0: End par conjunct: 0x25275d0 3236158624: cap 0: running a local spark 3242741305: cap 3: End par conjunct: 0x251c830 3242741967: cap 3: Trying to steal a spark 3242742264: cap 3: stealing a spark from cap 0 3244070614: cap 1: End par conjunct: 0x251c890 3244073584: cap 1: Trying to steal a spark 3244076878: cap 1: stealing a spark from cap 0 3324819811: cap 2: End par conjunct: 0x251c8f0 3324821854: cap 2: Trying to steal a spark 3324823920: cap 2: stealing a spark from cap 0 3346673485: cap 3: End par conjunct: 0x251c950 3346673917: cap 3: Trying to steal a spark 3346674444: cap 3: stealing a spark from cap 0 3349538100: cap 1: End par conjunct: 0x251c9b0 3349539823: cap 1: Trying to steal a spark 3349542892: cap 1: stealing a spark from cap 0 3401577553: cap 0: End par conjunct: 0x25275d0 3401577796: cap 0: End par conjunction: 0x25275d0 3401577976: cap 0: End par conjunct: 0x2527570 3401578467: cap 0: running a local spark 3438720855: cap 2: End par conjunct: 0x251ca10 3438722511: cap 2: Trying to steal a spark 3438724752: cap 2: stealing a spark from cap 0 3450992944: cap 3: End par conjunct: 0x251ca70 3450993430: cap 3: Trying to steal a spark 3450993997: cap 3: stealing a spark from cap 0 3455301627: cap 1: End par conjunct: 0x251cad0 3455302590: cap 1: Trying to steal a spark 3455303166: cap 1: stealing a spark from cap 0 3540340399: cap 2: End par conjunct: 0x251cb30 3540340863: cap 2: Trying to steal a spark 3540341277: cap 2: stealing a spark from cap 0 3555929610: cap 3: End par conjunct: 0x251cb90 3555930127: cap 3: Trying to steal a spark 3555930694: cap 3: stealing a spark from cap 0 3560459175: cap 1: End par conjunct: 0x251cbf0 3560459719: cap 1: Trying to steal a spark 3560460259: cap 1: stealing a spark from cap 0 3566313765: cap 0: End par conjunct: 0x2527570 3566314080: cap 0: End par conjunction: 0x2527570 3566314255: cap 0: End par conjunct: 0x2527510 3566314651: cap 0: running a local spark 3641768923: cap 2: End par conjunct: 0x251cc50 3641769747: cap 2: Trying to steal a spark 3641770408: cap 2: stealing a spark from cap 0 3660900102: cap 3: End par conjunct: 0x251ccb0 3660900511: cap 3: Trying to steal a spark 3660900966: cap 3: stealing a spark from cap 0 3665647633: cap 1: End par conjunct: 0x251cd10 3665648443: cap 1: Trying to steal a spark 3665648970: cap 1: stealing a spark from cap 0 3730731097: cap 0: End par conjunct: 0x2527510 3730731304: cap 0: End par conjunction: 0x2527510 3730731480: cap 0: End par conjunct: 0x25274b0 3730731885: cap 0: running a local spark 3743352760: cap 2: End par conjunct: 0x251cd70 3743353305: cap 2: Trying to steal a spark 3743353944: cap 2: stealing a spark from cap 0 3765799894: cap 3: End par conjunct: 0x251cdd0 3765800340: cap 3: Trying to steal a spark 3765800794: cap 3: stealing a spark from cap 0 3771103450: cap 1: End par conjunct: 0x251ce30 3771103918: cap 1: Trying to steal a spark 3771104539: cap 1: stealing a spark from cap 0 3850822485: cap 2: End par conjunct: 0x251ce90 3850824190: cap 2: Trying to steal a spark 3850826094: cap 2: stealing a spark from cap 0 3871264050: cap 3: End par conjunct: 0x251cef0 3871264590: cap 3: Trying to steal a spark 3871265094: cap 3: stealing a spark from cap 0 3878442486: cap 1: End par conjunct: 0x251cf50 3878443377: cap 1: Trying to steal a spark 3878444070: cap 1: stealing a spark from cap 0 3895063317: cap 0: End par conjunct: 0x25274b0 3895063519: cap 0: End par conjunction: 0x25274b0 3895063668: cap 0: End par conjunct: 0x2527450 3895064023: cap 0: running a local spark 3977831736: cap 3: End par conjunct: 0x251d010 3977832244: cap 3: Trying to steal a spark 3977832685: cap 3: stealing a spark from cap 0 3990236616: cap 2: End par conjunct: 0x251cfb0 3990238492: cap 2: Trying to steal a spark 3990240571: cap 2: stealing a spark from cap 0 3991293468: cap 1: End par conjunct: 0x251d070 3991294359: cap 1: Trying to steal a spark 3991294746: cap 1: stealing a spark from cap 0 4059510961: cap 0: End par conjunct: 0x2527450 4059511191: cap 0: End par conjunction: 0x2527450 4059511479: cap 0: End par conjunct: 0x25273f0 4059511938: cap 0: running a local spark 4084069900: cap 3: End par conjunct: 0x251d0d0 4084070413: cap 3: Trying to steal a spark 4084070827: cap 3: stealing a spark from cap 0 4098127671: cap 1: End par conjunct: 0x251d190 4098129345: cap 1: Trying to steal a spark 4098131190: cap 1: stealing a spark from cap 0 4100764009: cap 2: End par conjunct: 0x251d130 4100764720: cap 2: Trying to steal a spark 4100765107: cap 2: stealing a spark from cap 0 4189030627: cap 3: End par conjunct: 0x251d1f0 4189031041: cap 3: Trying to steal a spark 4189031622: cap 3: stealing a spark from cap 0 4202895316: cap 1: End par conjunct: 0x251d250 4202896761: cap 1: Trying to steal a spark 4202897868: cap 1: stealing a spark from cap 0 4203368370: cap 2: End par conjunct: 0x251d2b0 4203369009: cap 2: Trying to steal a spark 4203369432: cap 2: stealing a spark from cap 0 4224118374: cap 0: End par conjunct: 0x25273f0 4224118594: cap 0: End par conjunction: 0x25273f0 4224118779: cap 0: End par conjunct: 0x2527390 4224119193: cap 0: running a local spark 4293500643: cap 3: End par conjunct: 0x251d310 4293501210: cap 3: Trying to steal a spark 4293501547: cap 3: stealing a spark from cap 0 4303451088: cap 2: End par conjunct: 0x251d3d0 4303451740: cap 2: Trying to steal a spark 4303452370: cap 2: stealing a spark from cap 0 4306702729: cap 1: End par conjunct: 0x251d370 4306703229: cap 1: Trying to steal a spark 4306703593: cap 1: stealing a spark from cap 0 4388432976: cap 0: End par conjunct: 0x2527390 4388433246: cap 0: End par conjunction: 0x2527390 4388433552: cap 0: End par conjunct: 0x2527330 4388433889: cap 0: running a local spark 4396328653: cap 3: End par conjunct: 0x251d430 4396329103: cap 3: Trying to steal a spark 4396329517: cap 3: stealing a spark from cap 0 4403295733: cap 2: End par conjunct: 0x251d490 4403296300: cap 2: Trying to steal a spark 4403297182: cap 2: stealing a spark from cap 0 4410306522: cap 1: End par conjunct: 0x251d4f0 4410306877: cap 1: Trying to steal a spark 4410307246: cap 1: stealing a spark from cap 0 4499511997: cap 3: End par conjunct: 0x251d550 4499512465: cap 3: Trying to steal a spark 4499512956: cap 3: stealing a spark from cap 0 4502380810: cap 2: End par conjunct: 0x251d5b0 4502381359: cap 2: Trying to steal a spark 4502381818: cap 2: stealing a spark from cap 0 4512594357: cap 1: End par conjunct: 0x251d610 4512594910: cap 1: Trying to steal a spark 4512595275: cap 1: stealing a spark from cap 0 4552369659: cap 0: End par conjunct: 0x2527330 4552369816: cap 0: End par conjunction: 0x2527330 4552369951: cap 0: End par conjunct: 0x25272d0 4552370226: cap 0: running a local spark 4600086066: cap 3: End par conjunct: 0x251d670 4600086556: cap 3: Trying to steal a spark 4600086817: cap 3: stealing a spark from cap 0 4604659614: cap 2: End par conjunct: 0x251d6d0 4604661180: cap 2: Trying to steal a spark 4604662786: cap 2: stealing a spark from cap 0 4612849681: cap 1: End par conjunct: 0x251d730 4612850379: cap 1: Trying to steal a spark 4612850883: cap 1: stealing a spark from cap 0 4699006281: cap 3: End par conjunct: 0x251d790 4699006843: cap 3: Trying to steal a spark 4699007370: cap 3: stealing a spark from cap 0 4710339432: cap 1: End par conjunct: 0x251d850 4710341389: cap 1: Trying to steal a spark 4710343032: cap 1: stealing a spark from cap 0 4716631368: cap 0: End par conjunct: 0x25272d0 4716631579: cap 0: End par conjunction: 0x25272d0 4716631741: cap 0: End par conjunct: 0x2527270 4716632142: cap 0: running a local spark 4735995192: cap 2: End par conjunct: 0x251d7f0 4735995916: cap 2: Trying to steal a spark 4735996753: cap 2: stealing a spark from cap 0 4802625774: cap 1: End par conjunct: 0x251d910 4802627380: cap 1: Trying to steal a spark 4802629302: cap 1: stealing a spark from cap 0 4805334769: cap 3: End par conjunct: 0x251d8b0 4805336542: cap 3: Trying to steal a spark 4805338437: cap 3: stealing a spark from cap 0 4831134097: cap 2: End par conjunct: 0x251d970 4831134948: cap 2: Trying to steal a spark 4831135785: cap 2: stealing a spark from cap 0 4880466819: cap 0: End par conjunct: 0x2527270 4880467201: cap 0: End par conjunction: 0x2527270 4880467507: cap 0: End par conjunct: 0x2527210 4880467917: cap 0: running a local spark 4894799611: cap 1: End par conjunct: 0x251d9d0 4894800457: cap 1: Trying to steal a spark 4894801132: cap 1: stealing a spark from cap 0 4896399325: cap 3: End par conjunct: 0x251da30 4896399721: cap 3: Trying to steal a spark 4896400383: cap 3: stealing a spark from cap 0 4919787211: cap 2: End par conjunct: 0x251da90 4919787738: cap 2: Trying to steal a spark 4919788192: cap 2: stealing a spark from cap 0 4987284781: cap 1: End par conjunct: 0x251daf0 4987285263: cap 1: Trying to steal a spark 4987285713: cap 1: stealing a spark from cap 0 4988328228: cap 3: End par conjunct: 0x251db50 4988328700: cap 3: Trying to steal a spark 4988329227: cap 3: stealing a spark from cap 0 5009116779: cap 2: End par conjunct: 0x251dbb0 5009117323: cap 2: Trying to steal a spark 5009117805: cap 2: stealing a spark from cap 0 5044457664: cap 0: End par conjunct: 0x2527210 5044458010: cap 0: End par conjunction: 0x2527210 5044458235: cap 0: End par conjunct: 0x25271b0 5044458622: cap 0: running a local spark 5080150813: cap 1: End par conjunct: 0x251dc10 5080151259: cap 1: Trying to steal a spark 5080151767: cap 1: stealing a spark from cap 0 5081340006: cap 3: End par conjunct: 0x251dc70 5081340672: cap 3: Trying to steal a spark 5081341099: cap 3: stealing a spark from cap 0 5099104935: cap 2: End par conjunct: 0x251dcd0 5099105610: cap 2: Trying to steal a spark 5099106096: cap 2: stealing a spark from cap 0 5174841456: cap 3: End par conjunct: 0x251dd90 5174841910: cap 3: Trying to steal a spark 5174842351: cap 3: stealing a spark from cap 0 5179632331: cap 1: End par conjunct: 0x251dd30 5179633258: cap 1: Trying to steal a spark 5179634032: cap 1: stealing a spark from cap 0 5190281595: cap 2: End par conjunct: 0x251ddf0 5190282031: cap 2: Trying to steal a spark 5190282355: cap 2: stealing a spark from cap 0 5208519726: cap 0: End par conjunct: 0x25271b0 5208519951: cap 0: End par conjunction: 0x25271b0 5208520212: cap 0: End par conjunct: 0x2527150 5208520594: cap 0: running a local spark 5269359082: cap 3: End par conjunct: 0x251de50 5269359537: cap 3: Trying to steal a spark 5269359901: cap 3: stealing a spark from cap 0 5274835857: cap 1: End par conjunct: 0x251deb0 5274836505: cap 1: Trying to steal a spark 5274837094: cap 1: stealing a spark from cap 0 5282239549: cap 2: End par conjunct: 0x251df10 5282239977: cap 2: Trying to steal a spark 5282240287: cap 2: stealing a spark from cap 0 5364891751: cap 3: End par conjunct: 0x251df70 5364892188: cap 3: Trying to steal a spark 5364892642: cap 3: stealing a spark from cap 0 5371093939: cap 1: End par conjunct: 0x251dfd0 5371094565: cap 1: Trying to steal a spark 5371095226: cap 1: stealing a spark from cap 0 5372349538: cap 0: End par conjunct: 0x2527150 5372349732: cap 0: End par conjunction: 0x2527150 5372349907: cap 0: End par conjunct: 0x25270f0 5372350204: cap 0: running a local spark 5375287273: cap 2: End par conjunct: 0x251e030 5375287737: cap 2: Trying to steal a spark 5375288263: cap 2: stealing a spark from cap 0 5460822751: cap 3: End par conjunct: 0x251e090 5460823359: cap 3: Trying to steal a spark 5460824029: cap 3: stealing a spark from cap 0 5468675634: cap 1: End par conjunct: 0x251e0f0 5468677600: cap 1: Trying to steal a spark 5468679922: cap 1: stealing a spark from cap 0 5511468537: cap 2: End par conjunct: 0x251e150 5511470931: cap 2: Trying to steal a spark 5511472380: cap 2: stealing a spark from cap 0 5536802232: cap 0: End par conjunct: 0x25270f0 5536802448: cap 0: End par conjunction: 0x25270f0 5536802619: cap 0: End par conjunct: 0x2527090 5536802916: cap 0: running a local spark 5558417905: cap 3: End par conjunct: 0x251e1b0 5558418310: cap 3: Trying to steal a spark 5558418571: cap 3: stealing a spark from cap 0 5566822195: cap 1: End par conjunct: 0x251e210 5566823829: cap 1: Trying to steal a spark 5566825089: cap 1: stealing a spark from cap 0 5613784794: cap 2: End par conjunct: 0x251e270 5613786652: cap 2: Trying to steal a spark 5613788389: cap 2: stealing a spark from cap 0 5656165357: cap 3: End par conjunct: 0x251e2d0 5656165731: cap 3: Trying to steal a spark 5656166226: cap 3: stealing a spark from cap 0 5667148989: cap 1: End par conjunct: 0x251e330 5667150114: cap 1: Trying to steal a spark 5667151266: cap 1: stealing a spark from cap 0 5702150182: cap 0: End par conjunct: 0x2527090 5702150398: cap 0: End par conjunction: 0x2527090 5702150677: cap 0: End par conjunct: 0x2527030 5702151082: cap 0: running a local spark 5710287978: cap 2: End par conjunct: 0x251e390 5710288504: cap 2: Trying to steal a spark 5710289094: cap 2: stealing a spark from cap 0 5755608112: cap 3: End par conjunct: 0x251e3f0 5755608495: cap 3: Trying to steal a spark 5755608940: cap 3: stealing a spark from cap 0 5767399530: cap 1: End par conjunct: 0x251e450 5767400074: cap 1: Trying to steal a spark 5767400655: cap 1: stealing a spark from cap 0 5806750243: cap 2: End par conjunct: 0x251e4b0 5806750702: cap 2: Trying to steal a spark 5806751017: cap 2: stealing a spark from cap 0 5854923580: cap 3: End par conjunct: 0x251e510 5854924039: cap 3: Trying to steal a spark 5854924462: cap 3: stealing a spark from cap 0 5867308777: cap 1: End par conjunct: 0x251e570 5867309322: cap 1: Trying to steal a spark 5867309866: cap 1: stealing a spark from cap 0 5868694615: cap 0: End par conjunct: 0x2527030 5868694818: cap 0: End par conjunction: 0x2527030 5868694980: cap 0: End par conjunct: 0x2526fd0 5868695389: cap 0: running a local spark 5903779621: cap 2: End par conjunct: 0x251e5d0 5903780049: cap 2: Trying to steal a spark 5903780517: cap 2: stealing a spark from cap 0 5955976417: cap 3: End par conjunct: 0x251e630 5955976791: cap 3: Trying to steal a spark 5955977236: cap 3: stealing a spark from cap 0 5969468290: cap 1: End par conjunct: 0x251e690 5969468898: cap 1: Trying to steal a spark 5969469487: cap 1: stealing a spark from cap 0 6002940645: cap 2: End par conjunct: 0x251e6f0 6002940960: cap 2: Trying to steal a spark 6002941293: cap 2: stealing a spark from cap 0 6036253218: cap 0: End par conjunct: 0x2526fd0 6036253488: cap 0: End par conjunction: 0x2526fd0 6036253771: cap 0: End par conjunct: 0x2526f70 6036254190: cap 0: running a local spark 6058467171: cap 3: End par conjunct: 0x251e750 6058467612: cap 3: Trying to steal a spark 6058467877: cap 3: stealing a spark from cap 0 6073172662: cap 1: End par conjunct: 0x251e7b0 6073173180: cap 1: Trying to steal a spark 6073173729: cap 1: stealing a spark from cap 0 6102897106: cap 2: End par conjunct: 0x251e810 6102897525: cap 2: Trying to steal a spark 6102897934: cap 2: stealing a spark from cap 0 6161465551: cap 3: End par conjunct: 0x251e870 6161465925: cap 3: Trying to steal a spark 6161466361: cap 3: stealing a spark from cap 0 6176467750: cap 1: End par conjunct: 0x251e8d0 6176468272: cap 1: Trying to steal a spark 6176468862: cap 1: stealing a spark from cap 0 6202076346: cap 2: End par conjunct: 0x251e930 6202076782: cap 2: Trying to steal a spark 6202077183: cap 2: stealing a spark from cap 0 6202608786: cap 0: End par conjunct: 0x2526f70 6202608993: cap 0: End par conjunction: 0x2526f70 6202609159: cap 0: End par conjunct: 0x2526f10 6202609461: cap 0: running a local spark 6264545985: cap 3: End par conjunct: 0x251e990 6264546435: cap 3: Trying to steal a spark 6264546718: cap 3: stealing a spark from cap 0 6280029117: cap 1: End par conjunct: 0x251e9f0 6280030134: cap 1: Trying to steal a spark 6280031272: cap 1: stealing a spark from cap 0 6302836035: cap 2: End par conjunct: 0x251ea50 6302836521: cap 2: Trying to steal a spark 6302837034: cap 2: stealing a spark from cap 0 6364841238: cap 0: End par conjunct: 0x2526f10 6364841436: cap 0: End par conjunction: 0x2526f10 6364841580: cap 0: End par conjunct: 0x2526eb0 6364841931: cap 0: running a local spark 6368895904: cap 3: End par conjunct: 0x251eab0 6368896278: cap 3: Trying to steal a spark 6368896660: cap 3: stealing a spark from cap 0 6391330479: cap 1: End par conjunct: 0x251eb10 6391331721: cap 1: Trying to steal a spark 6391332729: cap 1: stealing a spark from cap 0 6406162888: cap 2: End par conjunct: 0x251eb70 6406163248: cap 2: Trying to steal a spark 6406163586: cap 2: stealing a spark from cap 0 6475439569: cap 3: End par conjunct: 0x251ebd0 6475440010: cap 3: Trying to steal a spark 6475440442: cap 3: stealing a spark from cap 0 6498971127: cap 1: End par conjunct: 0x251ec30 6498971671: cap 1: Trying to steal a spark 6498972477: cap 1: stealing a spark from cap 0 6510126928: cap 2: End par conjunct: 0x251ec90 6510127342: cap 2: Trying to steal a spark 6510127675: cap 2: stealing a spark from cap 0 6532580326: cap 0: End par conjunct: 0x2526eb0 6532580713: cap 0: End par conjunction: 0x2526eb0 6532580866: cap 0: End par conjunct: 0x2526e50 6532581163: cap 0: running a local spark 6583930695: cap 3: End par conjunct: 0x251ecf0 6583931239: cap 3: Trying to steal a spark 6583931568: cap 3: stealing a spark from cap 0 6607367370: cap 1: End par conjunct: 0x251ed50 6607367905: cap 1: Trying to steal a spark 6607368616: cap 1: stealing a spark from cap 0 6615017739: cap 2: End par conjunct: 0x251edb0 6615018261: cap 2: Trying to steal a spark 6615018598: cap 2: stealing a spark from cap 0 6692534527: cap 3: End par conjunct: 0x251ee10 6692535103: cap 3: Trying to steal a spark 6692535679: cap 3: stealing a spark from cap 0 6700865737: cap 0: End par conjunct: 0x2526e50 6700865953: cap 0: End par conjunction: 0x2526e50 6700866138: cap 0: End par conjunct: 0x2526df0 6700866475: cap 0: running a local spark 6716408625: cap 1: End par conjunct: 0x251ee70 6716409237: cap 1: Trying to steal a spark 6716410335: cap 1: stealing a spark from cap 0 6720467719: cap 2: End par conjunct: 0x251eed0 6720468286: cap 2: Trying to steal a spark 6720468646: cap 2: stealing a spark from cap 0 6806783403: cap 3: End par conjunct: 0x251ef30 6806785135: cap 3: Trying to steal a spark 6806786967: cap 3: stealing a spark from cap 0 6823963629: cap 2: End par conjunct: 0x251eff0 6823964236: cap 2: Trying to steal a spark 6823964790: cap 2: stealing a spark from cap 0 6825203406: cap 1: End par conjunct: 0x251ef90 6825203973: cap 1: Trying to steal a spark 6825204369: cap 1: stealing a spark from cap 0 6869104015: cap 0: End par conjunct: 0x2526df0 6869104672: cap 0: End par conjunction: 0x2526df0 6869105190: cap 0: End par conjunct: 0x2526d90 6869106378: cap 0: running a local spark 6928249585: cap 2: End par conjunct: 0x251f0b0 6928249995: cap 2: Trying to steal a spark 6928250413: cap 2: stealing a spark from cap 0 6933589821: cap 1: End par conjunct: 0x251f110 6933590262: cap 1: Trying to steal a spark 6933590635: cap 1: stealing a spark from cap 0 6956958510: cap 3: End par conjunct: 0x251f050 6956960251: cap 3: Trying to steal a spark 6956962425: cap 3: stealing a spark from cap 0 7033972122: cap 2: End par conjunct: 0x251f170 7033973503: cap 2: Trying to steal a spark 7033974840: cap 2: stealing a spark from cap 0 7037497476: cap 0: End par conjunct: 0x2526d90 7037497863: cap 0: End par conjunction: 0x2526d90 7037498353: cap 0: End par conjunct: 0x2526d30 7037498799: cap 0: running a local spark 7043018242: cap 1: End par conjunct: 0x251f1d0 7043018877: cap 1: Trying to steal a spark 7043019408: cap 1: stealing a spark from cap 0 7065907465: cap 3: End par conjunct: 0x251f230 7065907906: cap 3: Trying to steal a spark 7065908442: cap 3: stealing a spark from cap 0 7139790391: cap 2: End par conjunct: 0x251f290 7139791053: cap 2: Trying to steal a spark 7139791656: cap 2: stealing a spark from cap 0 7154419621: cap 1: End par conjunct: 0x251f2f0 7154420130: cap 1: Trying to steal a spark 7154420463: cap 1: stealing a spark from cap 0 7178493060: cap 3: End par conjunct: 0x251f350 7178493568: cap 3: Trying to steal a spark 7178494023: cap 3: stealing a spark from cap 0 7205940342: cap 0: End par conjunct: 0x2526d30 7205940661: cap 0: End par conjunction: 0x2526d30 7205940810: cap 0: End par conjunct: 0x2526cd0 7205941197: cap 0: running a local spark 7249679901: cap 2: End par conjunct: 0x251f3b0 7249680679: cap 2: Trying to steal a spark 7249681525: cap 2: stealing a spark from cap 0 7270700197: cap 1: End par conjunct: 0x251f410 7270700742: cap 1: Trying to steal a spark 7270701111: cap 1: stealing a spark from cap 0 7294506664: cap 3: End par conjunct: 0x251f470 7294507105: cap 3: Trying to steal a spark 7294507659: cap 3: stealing a spark from cap 0 7362194377: cap 2: End par conjunct: 0x251f4d0 7362195111: cap 2: Trying to steal a spark 7362195624: cap 2: stealing a spark from cap 0 7374448426: cap 0: End par conjunct: 0x2526cd0 7374448746: cap 0: End par conjunction: 0x2526cd0 7374448917: cap 0: End par conjunct: 0x2526c70 7374449488: cap 0: running a local spark 7388212914: cap 1: End par conjunct: 0x251f530 7388214682: cap 1: Trying to steal a spark 7388216793: cap 1: stealing a spark from cap 0 7409992662: cap 3: End par conjunct: 0x251f590 7409993112: cap 3: Trying to steal a spark 7409993548: cap 3: stealing a spark from cap 0 7505717877: cap 1: End par conjunct: 0x251f650 7505719911: cap 1: Trying to steal a spark 7505722413: cap 1: stealing a spark from cap 0 7516908211: cap 2: End par conjunct: 0x251f5f0 7516909035: cap 2: Trying to steal a spark 7516909422: cap 2: stealing a spark from cap 0 7526619144: cap 3: End par conjunct: 0x251f6b0 7526619607: cap 3: Trying to steal a spark 7526620030: cap 3: stealing a spark from cap 0 7542900904: cap 0: End par conjunct: 0x2526c70 7542901093: cap 0: End par conjunction: 0x2526c70 7542901233: cap 0: End par conjunct: 0x2526c10 7542901593: cap 0: running a local spark 7629785779: cap 1: End par conjunct: 0x251f710 7629787647: cap 1: Trying to steal a spark 7629789586: cap 1: stealing a spark from cap 0 7638019537: cap 2: End par conjunct: 0x251f770 7638020248: cap 2: Trying to steal a spark 7638020640: cap 2: stealing a spark from cap 0 7644842095: cap 3: End par conjunct: 0x251f7d0 7644842563: cap 3: Trying to steal a spark 7644843103: cap 3: stealing a spark from cap 0 7711580452: cap 0: End par conjunct: 0x2526c10 7711580659: cap 0: End par conjunction: 0x2526c10 7711580830: cap 0: End par conjunct: 0x2526bb0 7711581078: cap 0: running a local spark 7748250741: cap 1: End par conjunct: 0x251f830 7748251834: cap 1: Trying to steal a spark 7748253274: cap 1: stealing a spark from cap 0 7752907786: cap 2: End par conjunct: 0x251f890 7752908403: cap 2: Trying to steal a spark 7752908754: cap 2: stealing a spark from cap 0 7762712247: cap 3: End par conjunct: 0x251f8f0 7762712625: cap 3: Trying to steal a spark 7762713061: cap 3: stealing a spark from cap 0 7866824067: cap 1: End par conjunct: 0x251f950 7866824791: cap 1: Trying to steal a spark 7866825435: cap 1: stealing a spark from cap 0 7868129994: cap 2: End par conjunct: 0x251f9b0 7868130318: cap 2: Trying to steal a spark 7868130660: cap 2: stealing a spark from cap 0 7880553090: cap 0: End par conjunct: 0x2526bb0 7880553283: cap 0: End par conjunction: 0x2526bb0 7880553571: cap 0: End par conjunct: 0x2526b50 7880553886: cap 0: running a local spark 7881310125: cap 3: End par conjunct: 0x251fa10 7881310575: cap 3: Trying to steal a spark 7881310930: cap 3: stealing a spark from cap 0 7983051835: cap 2: End par conjunct: 0x251fad0 7983052690: cap 2: Trying to steal a spark 7983053311: cap 2: stealing a spark from cap 0 7986387316: cap 1: End par conjunct: 0x251fa70 7986387856: cap 1: Trying to steal a spark 7986388225: cap 1: stealing a spark from cap 0 7999363462: cap 3: End par conjunct: 0x251fb30 7999363831: cap 3: Trying to steal a spark 7999364371: cap 3: stealing a spark from cap 0 8049000447: cap 0: End par conjunct: 0x2526b50 8049000636: cap 0: End par conjunction: 0x2526b50 8049000807: cap 0: End par conjunct: 0x2526af0 8049001171: cap 0: running a local spark 8097602877: cap 2: End par conjunct: 0x251fb90 8097603786: cap 2: Trying to steal a spark 8097604686: cap 2: stealing a spark from cap 0 8105726808: cap 1: End par conjunct: 0x251fbf0 8105727348: cap 1: Trying to steal a spark 8105727708: cap 1: stealing a spark from cap 0 8122236853: cap 3: End par conjunct: 0x251fc50 8122238694: cap 3: Trying to steal a spark 8122240728: cap 3: stealing a spark from cap 0 8209894459: cap 2: End par conjunct: 0x251fcb0 8209895179: cap 2: Trying to steal a spark 8209895760: cap 2: stealing a spark from cap 0 8217917545: cap 0: End par conjunct: 0x2526af0 8217918414: cap 0: End par conjunction: 0x2526af0 8217918882: cap 0: End par conjunct: 0x2526a90 8217919912: cap 0: running a local spark 8222221260: cap 1: End par conjunct: 0x251fd10 8222221822: cap 1: Trying to steal a spark 8222222331: cap 1: stealing a spark from cap 0 8274741862: cap 3: End par conjunct: 0x251fd70 8274743266: cap 3: Trying to steal a spark 8274745170: cap 3: stealing a spark from cap 0 8322421567: cap 2: End par conjunct: 0x251fdd0 8322422215: cap 2: Trying to steal a spark 8322422940: cap 2: stealing a spark from cap 0 8338848345: cap 1: End par conjunct: 0x251fe30 8338848705: cap 1: Trying to steal a spark 8338849056: cap 1: stealing a spark from cap 0 8387412912: cap 0: End par conjunct: 0x2526a90 8387413497: cap 0: End par conjunction: 0x2526a90 8387414005: cap 0: End par conjunct: 0x2526a30 8387415427: cap 0: running a local spark 8397977359: cap 3: End par conjunct: 0x251fe90 8397978768: cap 3: Trying to steal a spark 8397980046: cap 3: stealing a spark from cap 0 8435992648: cap 2: End par conjunct: 0x251fef0 8435993760: cap 2: Trying to steal a spark 8435994781: cap 2: stealing a spark from cap 0 8456515038: cap 1: End par conjunct: 0x251ff50 8456515564: cap 1: Trying to steal a spark 8456515929: cap 1: stealing a spark from cap 0 8514977890: cap 3: End par conjunct: 0x251ffb0 8514978282: cap 3: Trying to steal a spark 8514978934: cap 3: stealing a spark from cap 0 8550261373: cap 2: End par conjunct: 0x2520010 8550261990: cap 2: Trying to steal a spark 8550262786: cap 2: stealing a spark from cap 0 8556870406: cap 0: End par conjunct: 0x2526a30 8556870582: cap 0: End par conjunction: 0x2526a30 8556870753: cap 0: End par conjunct: 0x25269d0 8556871288: cap 0: running a local spark 8574920581: cap 1: End par conjunct: 0x2520070 8574921054: cap 1: Trying to steal a spark 8574921639: cap 1: stealing a spark from cap 0 8633149510: cap 3: End par conjunct: 0x25200d0 8633150113: cap 3: Trying to steal a spark 8633150716: cap 3: stealing a spark from cap 0 8664787926: cap 2: End par conjunct: 0x2520130 8664788367: cap 2: Trying to steal a spark 8664789078: cap 2: stealing a spark from cap 0 8694223839: cap 1: End par conjunct: 0x2520190 8694224397: cap 1: Trying to steal a spark 8694224788: cap 1: stealing a spark from cap 0 8726062792: cap 0: End par conjunct: 0x25269d0 8726062995: cap 0: End par conjunction: 0x25269d0 8726063166: cap 0: End par conjunct: 0x2526970 8726063571: cap 0: running a local spark 8752188550: cap 3: End par conjunct: 0x25201f0 8752189995: cap 3: Trying to steal a spark 8752191502: cap 3: stealing a spark from cap 0 8780949805: cap 2: End par conjunct: 0x2520250 8780951065: cap 2: Trying to steal a spark 8780952100: cap 2: stealing a spark from cap 0 8819446338: cap 1: End par conjunct: 0x25202b0 8819447175: cap 1: Trying to steal a spark 8819447544: cap 1: stealing a spark from cap 0 8871555856: cap 3: End par conjunct: 0x2520310 8871557584: cap 3: Trying to steal a spark 8871559020: cap 3: stealing a spark from cap 0 8896779094: cap 2: End par conjunct: 0x2520370 8896779801: cap 2: Trying to steal a spark 8896780467: cap 2: stealing a spark from cap 0 8937728199: cap 0: End par conjunct: 0x2526970 8937728946: cap 0: End par conjunction: 0x2526970 8937729603: cap 0: End par conjunct: 0x2526910 8937730624: cap 0: running a local spark 8941134757: cap 1: End par conjunct: 0x25203d0 8941135234: cap 1: Trying to steal a spark 8941135860: cap 1: stealing a spark from cap 0 8994217396: cap 3: End par conjunct: 0x2520430 8994218571: cap 3: Trying to steal a spark 8994220483: cap 3: stealing a spark from cap 0 9016329973: cap 2: End par conjunct: 0x2520490 9016330657: cap 2: Trying to steal a spark 9016331319: cap 2: stealing a spark from cap 0 9065391511: cap 1: End par conjunct: 0x25204f0 9065392182: cap 1: Trying to steal a spark 9065392542: cap 1: stealing a spark from cap 0 9114060033: cap 0: End par conjunct: 0x2526910 9114061369: cap 0: End par conjunction: 0x2526910 9114062017: cap 0: End par conjunct: 0x25268b0 9114063439: cap 0: running a local spark 9118985994: cap 3: End par conjunct: 0x2520550 9118987276: cap 3: Trying to steal a spark 9118988649: cap 3: stealing a spark from cap 0 9137965891: cap 2: End par conjunct: 0x25205b0 9137966944: cap 2: Trying to steal a spark 9137967768: cap 2: stealing a spark from cap 0 9190963782: cap 1: End par conjunct: 0x2520610 9190964430: cap 1: Trying to steal a spark 9190964794: cap 1: stealing a spark from cap 0 9244042654: cap 3: End par conjunct: 0x2520670 9244043077: cap 3: Trying to steal a spark 9244043527: cap 3: stealing a spark from cap 0 9259115341: cap 2: End par conjunct: 0x25206d0 9259115881: cap 2: Trying to steal a spark 9259116448: cap 2: stealing a spark from cap 0 9316672281: cap 1: End par conjunct: 0x2520730 9316672717: cap 1: Trying to steal a spark 9316673172: cap 1: stealing a spark from cap 0 9318656340: cap 0: End par conjunct: 0x25268b0 9318656502: cap 0: End par conjunction: 0x25268b0 9318656637: cap 0: End par conjunct: 0x2526850 9318656965: cap 0: running a local spark 9369180099: cap 3: End par conjunct: 0x2520790 9369180544: cap 3: Trying to steal a spark 9369180931: cap 3: stealing a spark from cap 0 9383760999: cap 2: End par conjunct: 0x25207f0 9383761741: cap 2: Trying to steal a spark 9383762263: cap 2: stealing a spark from cap 0 9449296929: cap 1: End par conjunct: 0x2520850 9449297469: cap 1: Trying to steal a spark 9449297946: cap 1: stealing a spark from cap 0 9485841762: cap 0: End par conjunct: 0x2526850 9485841924: cap 0: End par conjunction: 0x2526850 9485842077: cap 0: End par conjunct: 0x25267f0 9485842509: cap 0: running a local spark 9502258122: cap 3: End par conjunct: 0x25208b0 9502258671: cap 3: Trying to steal a spark 9502258995: cap 3: stealing a spark from cap 0 9514881801: cap 2: End par conjunct: 0x2520910 9514882534: cap 2: Trying to steal a spark 9514883137: cap 2: stealing a spark from cap 0 9586031359: cap 1: End par conjunct: 0x2520970 9586031724: cap 1: Trying to steal a spark 9586032093: cap 1: stealing a spark from cap 0 9638764969: cap 3: End par conjunct: 0x25209d0 9638765464: cap 3: Trying to steal a spark 9638765941: cap 3: stealing a spark from cap 0 9651997687: cap 0: End par conjunct: 0x25267f0 9651998029: cap 0: End par conjunction: 0x25267f0 9651998214: cap 0: End par conjunct: 0x2526790 9651998565: cap 0: running a local spark 9654841575: cap 2: End par conjunct: 0x2520a30 9654843897: cap 2: Trying to steal a spark 9654845958: cap 2: stealing a spark from cap 0 9725912271: cap 1: End par conjunct: 0x2520a90 9725915304: cap 1: Trying to steal a spark 9725918872: cap 1: stealing a spark from cap 0 9777878748: cap 3: End par conjunct: 0x2520af0 9777879166: cap 3: Trying to steal a spark 9777879670: cap 3: stealing a spark from cap 0 9824287432: cap 0: End par conjunct: 0x2526790 9824288269: cap 0: End par conjunction: 0x2526790 9824288706: cap 0: End par conjunct: 0x2526730 9824289768: cap 0: running a local spark 9830543400: cap 2: End par conjunct: 0x2520b50 9830545330: cap 2: Trying to steal a spark 9830547454: cap 2: stealing a spark from cap 0 9867722602: cap 1: End par conjunct: 0x2520bb0 9867723367: cap 1: Trying to steal a spark 9867723768: cap 1: stealing a spark from cap 0 9918449059: cap 3: End par conjunct: 0x2520c10 9918450211: cap 3: Trying to steal a spark 9918451539: cap 3: stealing a spark from cap 0 9967959841: cap 2: End par conjunct: 0x2520c70 9967961182: cap 2: Trying to steal a spark 9967962555: cap 2: stealing a spark from cap 0 9989056377: cap 0: End par conjunct: 0x2526730 9989056579: cap 0: End par conjunction: 0x2526730 9989056858: cap 0: End par conjunct: 0x25266d0 9989057290: cap 0: running a local spark 10015182895: cap 1: End par conjunct: 0x2520cd0 10015183467: cap 1: Trying to steal a spark 10015184277: cap 1: stealing a spark from cap 0 10059675948: cap 3: End par conjunct: 0x2520d30 10059676402: cap 3: Trying to steal a spark 10059676888: cap 3: stealing a spark from cap 0 10105111224: cap 2: End par conjunct: 0x2520d90 10105111881: cap 2: Trying to steal a spark 10105112583: cap 2: stealing a spark from cap 0 10153755009: cap 0: End par conjunct: 0x25266d0 10153755400: cap 0: End par conjunction: 0x25266d0 10153755567: cap 0: End par conjunct: 0x2526670 10153756350: cap 0: running a local spark 10156564170: cap 1: End par conjunct: 0x2520df0 10156564795: cap 1: Trying to steal a spark 10156565889: cap 1: stealing a spark from cap 0 10199449233: cap 3: End par conjunct: 0x2520e50 10199449971: cap 3: Trying to steal a spark 10199450623: cap 3: stealing a spark from cap 0 10242140503: cap 2: End par conjunct: 0x2520eb0 10242141174: cap 2: Trying to steal a spark 10242141844: cap 2: stealing a spark from cap 0 10297449207: cap 1: End par conjunct: 0x2520f10 10297449886: cap 1: Trying to steal a spark 10297450435: cap 1: stealing a spark from cap 0 10317707554: cap 0: End par conjunct: 0x2526670 10317707797: cap 0: End par conjunction: 0x2526670 10317707968: cap 0: End par conjunct: 0x2526610 10317708265: cap 0: running a local spark 10340165916: cap 3: End par conjunct: 0x2520f70 10340166298: cap 3: Trying to steal a spark 10340166829: cap 3: stealing a spark from cap 0 10378737562: cap 2: End par conjunct: 0x2520fd0 10378738183: cap 2: Trying to steal a spark 10378738926: cap 2: stealing a spark from cap 0 10438743933: cap 1: End par conjunct: 0x2521030 10438745697: cap 1: Trying to steal a spark 10438747713: cap 1: stealing a spark from cap 0 10480589802: cap 0: End par conjunct: 0x2526610 10480590054: cap 0: End par conjunction: 0x2526610 10480590229: cap 0: End par conjunct: 0x25265b0 10480590585: cap 0: running a local spark 10481222119: cap 3: End par conjunct: 0x2521090 10481222790: cap 3: Trying to steal a spark 10481223469: cap 3: stealing a spark from cap 0 10563616602: cap 2: End par conjunct: 0x25210f0 10563618640: cap 2: Trying to steal a spark 10563620764: cap 2: stealing a spark from cap 0 10583217459: cap 1: End par conjunct: 0x2521150 10583219313: cap 1: Trying to steal a spark 10583221414: cap 1: stealing a spark from cap 0 10623586666: cap 3: End par conjunct: 0x25211b0 10623587157: cap 3: Trying to steal a spark 10623587679: cap 3: stealing a spark from cap 0 10642220793: cap 0: End par conjunct: 0x25265b0 10642221031: cap 0: End par conjunction: 0x25265b0 10642221202: cap 0: End par conjunct: 0x2526550 10642221454: cap 0: running a local spark 10711376500: cap 2: End par conjunct: 0x2521210 10711378080: cap 2: Trying to steal a spark 10711379547: cap 2: stealing a spark from cap 0 10727115322: cap 1: End par conjunct: 0x2521270 10727115952: cap 1: Trying to steal a spark 10727116326: cap 1: stealing a spark from cap 0 10766963713: cap 3: End par conjunct: 0x25212d0 10766964159: cap 3: Trying to steal a spark 10766964708: cap 3: stealing a spark from cap 0 10803763021: cap 0: End par conjunct: 0x2526550 10803763255: cap 0: End par conjunction: 0x2526550 10803763669: cap 0: End par conjunct: 0x25264f0 10803764065: cap 0: running a local spark 10850931634: cap 2: End par conjunct: 0x2521330 10850932723: cap 2: Trying to steal a spark 10850933682: cap 2: stealing a spark from cap 0 10871063343: cap 1: End par conjunct: 0x2521390 10871063959: cap 1: Trying to steal a spark 10871064324: cap 1: stealing a spark from cap 0 10910143683: cap 3: End par conjunct: 0x25213f0 10910144070: cap 3: Trying to steal a spark 10910144668: cap 3: stealing a spark from cap 0 10964218027: cap 0: End par conjunct: 0x25264f0 10964218221: cap 0: End par conjunction: 0x25264f0 10964218396: cap 0: End par conjunct: 0x2526490 10964218648: cap 0: running a local spark 10990676259: cap 2: End par conjunct: 0x2521450 10990677249: cap 2: Trying to steal a spark 10990677919: cap 2: stealing a spark from cap 0 11016644328: cap 1: End par conjunct: 0x25214b0 11016644814: cap 1: Trying to steal a spark 11016645349: cap 1: stealing a spark from cap 0 11054020212: cap 3: End par conjunct: 0x2521510 11054020747: cap 3: Trying to steal a spark 11054021283: cap 3: stealing a spark from cap 0 11124312552: cap 0: End par conjunct: 0x2526490 11124312741: cap 0: End par conjunction: 0x2526490 11124312912: cap 0: End par conjunct: 0x2526430 11124313141: cap 0: running a local spark 11130237697: cap 2: End par conjunct: 0x2521570 11130238665: cap 2: Trying to steal a spark 11130239587: cap 2: stealing a spark from cap 0 11166443280: cap 1: End par conjunct: 0x25215d0 11166443941: cap 1: Trying to steal a spark 11166444351: cap 1: stealing a spark from cap 0 11198276806: cap 3: End par conjunct: 0x2521630 11198277180: cap 3: Trying to steal a spark 11198277738: cap 3: stealing a spark from cap 0 11284699194: cap 0: End par conjunct: 0x2526430 11284699360: cap 0: End par conjunction: 0x2526430 11284699513: cap 0: End par conjunct: 0x25263d0 11284699761: cap 0: running a local spark 11312440254: cap 1: End par conjunct: 0x25216f0 11312442040: cap 1: Trying to steal a spark 11312444371: cap 1: stealing a spark from cap 0 11312783883: cap 2: End par conjunct: 0x2521690 11312784580: cap 2: Trying to steal a spark 11312784972: cap 2: stealing a spark from cap 0 11342731563: cap 3: End par conjunct: 0x2521750 11342732139: cap 3: Trying to steal a spark 11342732652: cap 3: stealing a spark from cap 0 11445803059: cap 0: End par conjunct: 0x25263d0 11445803433: cap 0: End par conjunction: 0x25263d0 11445803622: cap 0: End par conjunct: 0x2526370 11445804027: cap 0: running a local spark 11458751418: cap 1: End par conjunct: 0x25217b0 11458753222: cap 1: Trying to steal a spark 11458755310: cap 1: stealing a spark from cap 0 11460625096: cap 2: End par conjunct: 0x2521810 11460625893: cap 2: Trying to steal a spark 11460626257: cap 2: stealing a spark from cap 0 11487493503: cap 3: End par conjunct: 0x2521870 11487493921: cap 3: Trying to steal a spark 11487494565: cap 3: stealing a spark from cap 0 11601736843: cap 2: End par conjunct: 0x2521930 11601737851: cap 2: Trying to steal a spark 11601738589: cap 2: stealing a spark from cap 0 11604598339: cap 1: End par conjunct: 0x25218d0 11604598888: cap 1: Trying to steal a spark 11604599257: cap 1: stealing a spark from cap 0 11606569362: cap 0: End par conjunct: 0x2526370 11606569528: cap 0: End par conjunction: 0x2526370 11606569825: cap 0: End par conjunct: 0x2526310 11606570104: cap 0: running a local spark 11633560339: cap 3: End par conjunct: 0x2521990 11633560816: cap 3: Trying to steal a spark 11633561136: cap 3: stealing a spark from cap 0 11743114063: cap 2: End par conjunct: 0x25219f0 11743115157: cap 2: Trying to steal a spark 11743115940: cap 2: stealing a spark from cap 0 11751459736: cap 1: End par conjunct: 0x2521a50 11751460425: cap 1: Trying to steal a spark 11751460942: cap 1: stealing a spark from cap 0 11766982891: cap 0: End par conjunct: 0x2526310 11766983035: cap 0: End par conjunction: 0x2526310 11766983175: cap 0: End par conjunct: 0x25262b0 11766983422: cap 0: running a local spark 11779198884: cap 3: End par conjunct: 0x2521ab0 11779199352: cap 3: Trying to steal a spark 11779199617: cap 3: stealing a spark from cap 0 11883866166: cap 2: End par conjunct: 0x2521b10 11883867021: cap 2: Trying to steal a spark 11883867556: cap 2: stealing a spark from cap 0 11896785247: cap 1: End par conjunct: 0x2521b70 11896785634: cap 1: Trying to steal a spark 11896786044: cap 1: stealing a spark from cap 0 11923061341: cap 3: End par conjunct: 0x2521bd0 11923061922: cap 3: Trying to steal a spark 11923062372: cap 3: stealing a spark from cap 0 11926619131: cap 0: End par conjunct: 0x25262b0 11926619298: cap 0: End par conjunction: 0x25262b0 11926619428: cap 0: End par conjunct: 0x2526250 11926619824: cap 0: running a local spark 12024676044: cap 2: End par conjunct: 0x2521c30 12024677214: cap 2: Trying to steal a spark 12024678789: cap 2: stealing a spark from cap 0 12041377704: cap 1: End par conjunct: 0x2521c90 12041378595: cap 1: Trying to steal a spark 12041378955: cap 1: stealing a spark from cap 0 12086340925: cap 0: End par conjunct: 0x2526250 12086341938: cap 0: End par conjunction: 0x2526250 12086342455: cap 0: End par conjunct: 0x25261f0 12086343774: cap 0: running a local spark 12108682764: cap 3: End par conjunct: 0x2521cf0 12108683965: cap 3: Trying to steal a spark 12108685653: cap 3: stealing a spark from cap 0 12164697918: cap 2: End par conjunct: 0x2521d50 12164699362: cap 2: Trying to steal a spark 12164700856: cap 2: stealing a spark from cap 0 12184922889: cap 1: End par conjunct: 0x2521db0 12184923429: cap 1: Trying to steal a spark 12184923888: cap 1: stealing a spark from cap 0 12251227675: cap 3: End par conjunct: 0x2521e10 12251229313: cap 3: Trying to steal a spark 12251230870: cap 3: stealing a spark from cap 0 12251896699: cap 0: End par conjunct: 0x25261f0 12251897073: cap 0: End par conjunction: 0x25261f0 12251897343: cap 0: End par conjunct: 0x2526190 12251897892: cap 0: running a local spark 12302414905: cap 2: End par conjunct: 0x2521e70 12302415652: cap 2: Trying to steal a spark 12302416246: cap 2: stealing a spark from cap 0 12333407085: cap 1: End par conjunct: 0x2521ed0 12333407895: cap 1: Trying to steal a spark 12333408480: cap 1: stealing a spark from cap 0 12392754678: cap 3: End par conjunct: 0x2521f30 12392755141: cap 3: Trying to steal a spark 12392755785: cap 3: stealing a spark from cap 0 12411366187: cap 0: End par conjunct: 0x2526190 12411366376: cap 0: End par conjunction: 0x2526190 12411366673: cap 0: End par conjunct: 0x2526130 12411367051: cap 0: running a local spark 12440491884: cap 2: End par conjunct: 0x2521f90 12440493301: cap 2: Trying to steal a spark 12440494921: cap 2: stealing a spark from cap 0 12473435754: cap 1: End par conjunct: 0x2521ff0 12473436339: cap 1: Trying to steal a spark 12473436748: cap 1: stealing a spark from cap 0 12530891619: cap 3: End par conjunct: 0x2522050 12530892181: cap 3: Trying to steal a spark 12530892865: cap 3: stealing a spark from cap 0 12570819007: cap 0: End par conjunct: 0x2526130 12570819277: cap 0: End par conjunction: 0x2526130 12570819453: cap 0: End par conjunct: 0x25260d0 12570819714: cap 0: running a local spark 12573405976: cap 2: End par conjunct: 0x25220b0 12573407128: cap 2: Trying to steal a spark 12573407970: cap 2: stealing a spark from cap 0 12609466533: cap 1: End par conjunct: 0x2522110 12609468292: cap 1: Trying to steal a spark 12609469975: cap 1: stealing a spark from cap 0 12665593035: cap 3: End par conjunct: 0x2522170 12665593894: cap 3: Trying to steal a spark 12665594556: cap 3: stealing a spark from cap 0 12730098919: cap 0: End par conjunct: 0x25260d0 12730099153: cap 0: End par conjunction: 0x25260d0 12730099329: cap 0: End par conjunct: 0x2526070 12730099702: cap 0: running a local spark 12746089467: cap 1: End par conjunct: 0x2522230 12746091240: cap 1: Trying to steal a spark 12746093512: cap 1: stealing a spark from cap 0 12747438603: cap 2: End par conjunct: 0x25221d0 12747439525: cap 2: Trying to steal a spark 12747439917: cap 2: stealing a spark from cap 0 12800840445: cap 3: End par conjunct: 0x2522290 12800841079: cap 3: Trying to steal a spark 12800841687: cap 3: stealing a spark from cap 0 12882794319: cap 1: End par conjunct: 0x25222f0 12882795804: cap 1: Trying to steal a spark 12882797946: cap 1: stealing a spark from cap 0 12885226623: cap 2: End par conjunct: 0x2522350 12885227482: cap 2: Trying to steal a spark 12885227986: cap 2: stealing a spark from cap 0 12889340410: cap 0: End par conjunct: 0x2526070 12889340604: cap 0: End par conjunction: 0x2526070 12889340775: cap 0: End par conjunct: 0x2526010 12889341090: cap 0: running a local spark 12936631729: cap 3: End par conjunct: 0x25223b0 12936632161: cap 3: Trying to steal a spark 12936632440: cap 3: stealing a spark from cap 0 13016933113: cap 2: End par conjunct: 0x2522470 13016933599: cap 2: Trying to steal a spark 13016934391: cap 2: stealing a spark from cap 0 13019456101: cap 1: End par conjunct: 0x2522410 13019456655: cap 1: Trying to steal a spark 13019457055: cap 1: stealing a spark from cap 0 13048585978: cap 0: End par conjunct: 0x2526010 13048586176: cap 0: End par conjunction: 0x2526010 13048586469: cap 0: End par conjunct: 0x2525fb0 13048586914: cap 0: running a local spark 13072866543: cap 3: End par conjunct: 0x25224d0 13072866988: cap 3: Trying to steal a spark 13072867348: cap 3: stealing a spark from cap 0 13149420961: cap 2: End par conjunct: 0x2522530 13149421587: cap 2: Trying to steal a spark 13149422266: cap 2: stealing a spark from cap 0 13156455595: cap 1: End par conjunct: 0x2522590 13156456378: cap 1: Trying to steal a spark 13156456887: cap 1: stealing a spark from cap 0 13202327227: cap 0: End par conjunct: 0x2525fb0 13202327430: cap 0: End par conjunction: 0x2525fb0 13202327596: cap 0: End par conjunct: 0x2525f50 13202328006: cap 0: running a local spark 13209541380: cap 3: End par conjunct: 0x25225f0 13209541816: cap 3: Trying to steal a spark 13209542199: cap 3: stealing a spark from cap 0 13294576719: cap 2: End par conjunct: 0x2522650 13294578469: cap 2: Trying to steal a spark 13294580467: cap 2: stealing a spark from cap 0 13295452455: cap 1: End par conjunct: 0x25226b0 13295453157: cap 1: Trying to steal a spark 13295453553: cap 1: stealing a spark from cap 0 13346993713: cap 3: End par conjunct: 0x2522710 13346994289: cap 3: Trying to steal a spark 13346994838: cap 3: stealing a spark from cap 0 13361654686: cap 0: End par conjunct: 0x2525f50 13361654893: cap 0: End par conjunction: 0x2525f50 13361655055: cap 0: End par conjunct: 0x2525ef0 13361655514: cap 0: running a local spark 13434790189: cap 1: End par conjunct: 0x25227d0 13434792075: cap 1: Trying to steal a spark 13434794478: cap 1: stealing a spark from cap 0 13465013116: cap 2: End par conjunct: 0x2522770 13465015015: cap 2: Trying to steal a spark 13465016919: cap 2: stealing a spark from cap 0 13484915806: cap 3: End par conjunct: 0x2522830 13484916477: cap 3: Trying to steal a spark 13484917336: cap 3: stealing a spark from cap 0 13519454503: cap 0: End par conjunct: 0x2525ef0 13519454850: cap 0: End par conjunction: 0x2525ef0 13519455124: cap 0: End par conjunct: 0x2525e90 13519455376: cap 0: running a local spark 13579299810: cap 1: End par conjunct: 0x2522890 13579301457: cap 1: Trying to steal a spark 13579302429: cap 1: stealing a spark from cap 0 13599378765: cap 2: End par conjunct: 0x25228f0 13599379377: cap 2: Trying to steal a spark 13599379800: cap 2: stealing a spark from cap 0 13623892609: cap 3: End par conjunct: 0x2522950 13623893185: cap 3: Trying to steal a spark 13623893649: cap 3: stealing a spark from cap 0 13679082040: cap 0: End par conjunct: 0x2525e90 13679082324: cap 0: End par conjunction: 0x2525e90 13679082490: cap 0: End par conjunct: 0x2525e30 13679082742: cap 0: running a local spark 13719399462: cap 1: End par conjunct: 0x25229b0 13719400780: cap 1: Trying to steal a spark 13719402382: cap 1: stealing a spark from cap 0 13734837477: cap 2: End par conjunct: 0x2522a10 13734837954: cap 2: Trying to steal a spark 13734838345: cap 2: stealing a spark from cap 0 13762870983: cap 3: End par conjunct: 0x2522a70 13762871401: cap 3: Trying to steal a spark 13762871964: cap 3: stealing a spark from cap 0 13839696346: cap 0: End par conjunct: 0x2525e30 13839696603: cap 0: End par conjunction: 0x2525e30 13839696792: cap 0: End par conjunct: 0x2525dd0 13839697048: cap 0: running a local spark 13859145571: cap 1: End par conjunct: 0x2522ad0 13859146750: cap 1: Trying to steal a spark 13859147745: cap 1: stealing a spark from cap 0 13870250689: cap 2: End par conjunct: 0x2522b30 13870251175: cap 2: Trying to steal a spark 13870251544: cap 2: stealing a spark from cap 0 13902688201: cap 3: End par conjunct: 0x2522b90 13902688687: cap 3: Trying to steal a spark 13902689376: cap 3: stealing a spark from cap 0 13999707765: cap 1: End par conjunct: 0x2522bf0 13999709479: cap 1: Trying to steal a spark 13999711612: cap 1: stealing a spark from cap 0 13999929925: cap 0: End par conjunct: 0x2525dd0 13999930159: cap 0: End par conjunction: 0x2525dd0 13999930330: cap 0: End par conjunct: 0x2525d70 13999930789: cap 0: running a local spark 14044262805: cap 3: End par conjunct: 0x2522cb0 14044263592: cap 3: Trying to steal a spark 14044264146: cap 3: stealing a spark from cap 0 14049352827: cap 2: End par conjunct: 0x2522c50 14049355230: cap 2: Trying to steal a spark 14049357529: cap 2: stealing a spark from cap 0 14142702411: cap 1: End par conjunct: 0x2522d10 14142703923: cap 1: Trying to steal a spark 14142705565: cap 1: stealing a spark from cap 0 14159583769: cap 0: End par conjunct: 0x2525d70 14159584620: cap 0: End par conjunction: 0x2525d70 14159585119: cap 0: End par conjunct: 0x2525d10 14159586640: cap 0: running a local spark 14189476360: cap 2: End par conjunct: 0x2522dd0 14189477049: cap 2: Trying to steal a spark 14189477629: cap 2: stealing a spark from cap 0 14204428195: cap 3: End par conjunct: 0x2522d70 14204429865: cap 3: Trying to steal a spark 14204431737: cap 3: stealing a spark from cap 0 14285098071: cap 1: End par conjunct: 0x2522e30 14285098629: cap 1: Trying to steal a spark 14285099290: cap 1: stealing a spark from cap 0 14319386586: cap 0: End par conjunct: 0x2525d10 14319386770: cap 0: End par conjunction: 0x2525d10 14319387045: cap 0: End par conjunct: 0x2525cb0 14319387364: cap 0: running a local spark 14326496716: cap 2: End par conjunct: 0x2522e90 14326497346: cap 2: Trying to steal a spark 14326498039: cap 2: stealing a spark from cap 0 14345105616: cap 3: End par conjunct: 0x2522ef0 14345106169: cap 3: Trying to steal a spark 14345106669: cap 3: stealing a spark from cap 0 14426574268: cap 1: End par conjunct: 0x2522f50 14426574975: cap 1: Trying to steal a spark 14426575848: cap 1: stealing a spark from cap 0 14463282816: cap 2: End par conjunct: 0x2522fb0 14463283608: cap 2: Trying to steal a spark 14463284076: cap 2: stealing a spark from cap 0 14479039764: cap 0: End par conjunct: 0x2525cb0 14479039966: cap 0: End par conjunction: 0x2525cb0 14479040124: cap 0: End par conjunct: 0x2525c50 14479040632: cap 0: running a local spark 14486433358: cap 3: End par conjunct: 0x2523010 14486433831: cap 3: Trying to steal a spark 14486434155: cap 3: stealing a spark from cap 0 14568810984: cap 1: End par conjunct: 0x2523070 14568811731: cap 1: Trying to steal a spark 14568812536: cap 1: stealing a spark from cap 0 14601411877: cap 2: End par conjunct: 0x25230d0 14601412935: cap 2: Trying to steal a spark 14601413380: cap 2: stealing a spark from cap 0 14628823312: cap 3: End par conjunct: 0x2523130 14628823843: cap 3: Trying to steal a spark 14628824293: cap 3: stealing a spark from cap 0 14638176405: cap 0: End par conjunct: 0x2525c50 14638176558: cap 0: End par conjunction: 0x2525c50 14638176837: cap 0: End par conjunct: 0x2525bf0 14638177161: cap 0: running a local spark 14712473970: cap 1: End par conjunct: 0x2523190 14712475869: cap 1: Trying to steal a spark 14712478024: cap 1: stealing a spark from cap 0 14771506563: cap 3: End par conjunct: 0x2523250 14771507184: cap 3: Trying to steal a spark 14771507814: cap 3: stealing a spark from cap 0 14783932206: cap 2: End par conjunct: 0x25231f0 14783933722: cap 2: Trying to steal a spark 14783935815: cap 2: stealing a spark from cap 0 14796214938: cap 0: End par conjunct: 0x2525bf0 14796215145: cap 0: End par conjunction: 0x2525bf0 14796215320: cap 0: End par conjunct: 0x2525b90 14796215667: cap 0: running a local spark 14865487227: cap 1: End par conjunct: 0x25232b0 14865489189: cap 1: Trying to steal a spark 14865491578: cap 1: stealing a spark from cap 0 14916953641: cap 3: End par conjunct: 0x2523310 14916954114: cap 3: Trying to steal a spark 14916954879: cap 3: stealing a spark from cap 0 14933806969: cap 2: End par conjunct: 0x2523370 14933807860: cap 2: Trying to steal a spark 14933808607: cap 2: stealing a spark from cap 0 14954455723: cap 0: End par conjunct: 0x2525b90 14954455980: cap 0: End par conjunction: 0x2525b90 14954456169: cap 0: End par conjunct: 0x2525b30 14954456547: cap 0: running a local spark 15012382698: cap 1: End par conjunct: 0x25233d0 15012383508: cap 1: Trying to steal a spark 15012384228: cap 1: stealing a spark from cap 0 15062862001: cap 3: End par conjunct: 0x2523430 15062862519: cap 3: Trying to steal a spark 15062863090: cap 3: stealing a spark from cap 0 15075263713: cap 2: End par conjunct: 0x2523490 15075264213: cap 2: Trying to steal a spark 15075264712: cap 2: stealing a spark from cap 0 15111651541: cap 0: End par conjunct: 0x2525b30 15111651730: cap 0: End par conjunction: 0x2525b30 15111651901: cap 0: End par conjunct: 0x2525ad0 15111652338: cap 0: running a local spark 15159532509: cap 1: End par conjunct: 0x25234f0 15159532869: cap 1: Trying to steal a spark 15159533517: cap 1: stealing a spark from cap 0 15209371957: cap 3: End par conjunct: 0x2523550 15209372385: cap 3: Trying to steal a spark 15209372830: cap 3: stealing a spark from cap 0 15217142107: cap 2: End par conjunct: 0x25235b0 15217142562: cap 2: Trying to steal a spark 15217143066: cap 2: stealing a spark from cap 0 15269150128: cap 0: End par conjunct: 0x2525ad0 15269150335: cap 0: End par conjunction: 0x2525ad0 15269150470: cap 0: End par conjunct: 0x2525a70 15269150875: cap 0: running a local spark 15307307370: cap 1: End par conjunct: 0x2523610 15307308000: cap 1: Trying to steal a spark 15307308598: cap 1: stealing a spark from cap 0 15356259828: cap 3: End par conjunct: 0x2523670 15356260264: cap 3: Trying to steal a spark 15356260719: cap 3: stealing a spark from cap 0 15359061276: cap 2: End par conjunct: 0x25236d0 15359062068: cap 2: Trying to steal a spark 15359062869: cap 2: stealing a spark from cap 0 15426181422: cap 0: End par conjunct: 0x2525a70 15426181611: cap 0: End par conjunction: 0x2525a70 15426181777: cap 0: End par conjunct: 0x2525a10 15426182079: cap 0: running a local spark 15454049139: cap 1: End par conjunct: 0x2523730 15454049773: cap 1: Trying to steal a spark 15454050367: cap 1: stealing a spark from cap 0 15499701720: cap 2: End par conjunct: 0x25237f0 15499702341: cap 2: Trying to steal a spark 15499702908: cap 2: stealing a spark from cap 0 15501423757: cap 3: End par conjunct: 0x2523790 15501424230: cap 3: Trying to steal a spark 15501424765: cap 3: stealing a spark from cap 0 15583032742: cap 0: End par conjunct: 0x2525a10 15583032940: cap 0: End par conjunction: 0x2525a10 15583033129: cap 0: End par conjunct: 0x25259b0 15583033386: cap 0: running a local spark 15599108277: cap 1: End par conjunct: 0x2523850 15599109303: cap 1: Trying to steal a spark 15599110086: cap 1: stealing a spark from cap 0 15640560369: cap 2: End par conjunct: 0x25238b0 15640561480: cap 2: Trying to steal a spark 15640562115: cap 2: stealing a spark from cap 0 15646349893: cap 3: End par conjunct: 0x2523910 15646350348: cap 3: Trying to steal a spark 15646350793: cap 3: stealing a spark from cap 0 15739566930: cap 0: End par conjunct: 0x25259b0 15739567137: cap 0: End par conjunction: 0x25259b0 15739567308: cap 0: End par conjunct: 0x2525950 15739567560: cap 0: running a local spark 15745644837: cap 1: End par conjunct: 0x2523970 15745645597: cap 1: Trying to steal a spark 15745646556: cap 1: stealing a spark from cap 0 15781384827: cap 2: End par conjunct: 0x25239d0 15781385376: cap 2: Trying to steal a spark 15781385727: cap 2: stealing a spark from cap 0 15791739669: cap 3: End par conjunct: 0x2523a30 15791740051: cap 3: Trying to steal a spark 15791740510: cap 3: stealing a spark from cap 0 15892384153: cap 1: End par conjunct: 0x2523a90 15892385337: cap 1: Trying to steal a spark 15892386390: cap 1: stealing a spark from cap 0 15896202012: cap 0: End par conjunct: 0x2525950 15896202246: cap 0: End par conjunction: 0x2525950 15896202421: cap 0: End par conjunct: 0x25258f0 15896202997: cap 0: running a local spark 15924082396: cap 2: End par conjunct: 0x2523af0 15924083310: cap 2: Trying to steal a spark 15924083980: cap 2: stealing a spark from cap 0 15937728102: cap 3: End par conjunct: 0x2523b50 15937728588: cap 3: Trying to steal a spark 15937729150: cap 3: stealing a spark from cap 0 16045001689: cap 1: End par conjunct: 0x2523bb0 16045003084: cap 1: Trying to steal a spark 16045004160: cap 1: stealing a spark from cap 0 16053299329: cap 0: End par conjunct: 0x25258f0 16053299523: cap 0: End par conjunction: 0x25258f0 16053299671: cap 0: End par conjunct: 0x2525890 16053299982: cap 0: running a local spark 16066608561: cap 2: End par conjunct: 0x2523c10 16066609231: cap 2: Trying to steal a spark 16066609744: cap 2: stealing a spark from cap 0 16084188706: cap 3: End par conjunct: 0x2523c70 16084189174: cap 3: Trying to steal a spark 16084189714: cap 3: stealing a spark from cap 0 16193615319: cap 1: End par conjunct: 0x2523cd0 16193616453: cap 1: Trying to steal a spark 16193617564: cap 1: stealing a spark from cap 0 16210622965: cap 0: End par conjunct: 0x2525890 16210623222: cap 0: End par conjunction: 0x2525890 16210623411: cap 0: End par conjunct: 0x2525830 16210623978: cap 0: running a local spark 16210819453: cap 2: End par conjunct: 0x2523d30 16210819912: cap 2: Trying to steal a spark 16210820493: cap 2: stealing a spark from cap 0 16232694493: cap 3: End par conjunct: 0x2523d90 16232695141: cap 3: Trying to steal a spark 16232695753: cap 3: stealing a spark from cap 0 16342119135: cap 1: End par conjunct: 0x2523df0 16342120183: cap 1: Trying to steal a spark 16342120809: cap 1: stealing a spark from cap 0 16354987947: cap 2: End par conjunct: 0x2523e50 16354988622: cap 2: Trying to steal a spark 16354988977: cap 2: stealing a spark from cap 0 16367815017: cap 0: End par conjunct: 0x2525830 16367815350: cap 0: End par conjunction: 0x2525830 16367815525: cap 0: End par conjunct: 0x25257d0 16367815836: cap 0: running a local spark 16380890707: cap 3: End par conjunct: 0x2523eb0 16380891310: cap 3: Trying to steal a spark 16380891652: cap 3: stealing a spark from cap 0 16492019895: cap 1: End par conjunct: 0x2523f10 16492020795: cap 1: Trying to steal a spark 16492021740: cap 1: stealing a spark from cap 0 16499029032: cap 2: End par conjunct: 0x2523f70 16499029392: cap 2: Trying to steal a spark 16499029711: cap 2: stealing a spark from cap 0 16524922896: cap 0: End par conjunct: 0x25257d0 16524923058: cap 0: End par conjunction: 0x25257d0 16524923215: cap 0: End par conjunct: 0x2525770 16524923607: cap 0: running a local spark 16529886841: cap 3: End par conjunct: 0x2523fd0 16529887332: cap 3: Trying to steal a spark 16529887768: cap 3: stealing a spark from cap 0 16642523817: cap 1: End par conjunct: 0x2524030 16642524627: cap 1: Trying to steal a spark 16642525428: cap 1: stealing a spark from cap 0 16643228026: cap 2: End par conjunct: 0x2524090 16643228620: cap 2: Trying to steal a spark 16643228958: cap 2: stealing a spark from cap 0 16680950910: cap 0: End par conjunct: 0x2525770 16680951099: cap 0: End par conjunction: 0x2525770 16680951247: cap 0: End par conjunct: 0x2525710 16680951499: cap 0: running a local spark 16682200146: cap 3: End par conjunct: 0x25240f0 16682200569: cap 3: Trying to steal a spark 16682200947: cap 3: stealing a spark from cap 0 16793102727: cap 2: End par conjunct: 0x25241b0 16793103429: cap 2: Trying to steal a spark 16793104441: cap 2: stealing a spark from cap 0 16797486150: cap 1: End par conjunct: 0x2524150 16797486825: cap 1: Trying to steal a spark 16797487225: cap 1: stealing a spark from cap 0 16836621975: cap 0: End par conjunct: 0x2525710 16836622141: cap 0: End par conjunction: 0x2525710 16836622321: cap 0: End par conjunct: 0x25256b0 16836622663: cap 0: running a local spark 16837625277: cap 3: End par conjunct: 0x2524210 16837625754: cap 3: Trying to steal a spark 16837626159: cap 3: stealing a spark from cap 0 16945347280: cap 2: End par conjunct: 0x2524270 16945348770: cap 2: Trying to steal a spark 16945349895: cap 2: stealing a spark from cap 0 16955697573: cap 1: End par conjunct: 0x25242d0 16955698000: cap 1: Trying to steal a spark 16955698558: cap 1: stealing a spark from cap 0 16992188572: cap 0: End par conjunct: 0x25256b0 16992188766: cap 0: End par conjunction: 0x25256b0 16992188968: cap 0: End par conjunct: 0x2525650 16992189297: cap 0: running a local spark 16996860166: cap 3: End par conjunct: 0x2524330 16996860612: cap 3: Trying to steal a spark 16996860994: cap 3: stealing a spark from cap 0 17100326358: cap 2: End par conjunct: 0x2524390 17100327078: cap 2: Trying to steal a spark 17100327775: cap 2: stealing a spark from cap 0 17121939421: cap 1: End par conjunct: 0x25243f0 17121940146: cap 1: Trying to steal a spark 17121940542: cap 1: stealing a spark from cap 0 17147488131: cap 0: End par conjunct: 0x2525650 17147488477: cap 0: End par conjunction: 0x2525650 17147488635: cap 0: End par conjunct: 0x25255f0 17147489058: cap 0: running a local spark 17156473344: cap 3: End par conjunct: 0x2524450 17156473798: cap 3: Trying to steal a spark 17156474167: cap 3: stealing a spark from cap 0 17257222408: cap 2: End par conjunct: 0x25244b0 17257223875: cap 2: Trying to steal a spark 17257225095: cap 2: stealing a spark from cap 0 17283512254: cap 1: End par conjunct: 0x2524510 17283513100: cap 1: Trying to steal a spark 17283513496: cap 1: stealing a spark from cap 0 17303152891: cap 0: End par conjunct: 0x25255f0 17303153125: cap 0: End par conjunction: 0x25255f0 17303153301: cap 0: End par conjunct: 0x2525590 17303153638: cap 0: running a local spark 17317260342: cap 3: End par conjunct: 0x2524570 17317260765: cap 3: Trying to steal a spark 17317261179: cap 3: stealing a spark from cap 0 17413679826: cap 2: End par conjunct: 0x25245d0 17413680730: cap 2: Trying to steal a spark 17413681639: cap 2: stealing a spark from cap 0 17445166501: cap 1: End par conjunct: 0x2524630 17445167343: cap 1: Trying to steal a spark 17445167896: cap 1: stealing a spark from cap 0 17459300466: cap 0: End par conjunct: 0x2525590 17459301208: cap 0: End par conjunction: 0x2525590 17459301870: cap 0: End par conjunct: 0x2525530 17459303044: cap 0: running a local spark 17482807381: cap 3: End par conjunct: 0x2524690 17482808547: cap 3: Trying to steal a spark 17482809829: cap 3: stealing a spark from cap 0 17569003230: cap 2: End par conjunct: 0x25246f0 17569004233: cap 2: Trying to steal a spark 17569004854: cap 2: stealing a spark from cap 0 17605677370: cap 1: End par conjunct: 0x2524750 17605677892: cap 1: Trying to steal a spark 17605678446: cap 1: stealing a spark from cap 0 17615119162: cap 0: End par conjunct: 0x2525530 17615120013: cap 0: End par conjunction: 0x2525530 17615120620: cap 0: End par conjunct: 0x25254d0 17615121957: cap 0: running a local spark 17686208227: cap 3: End par conjunct: 0x25247b0 17686209937: cap 3: Trying to steal a spark 17686211638: cap 3: stealing a spark from cap 0 17725139019: cap 2: End par conjunct: 0x2524810 17725140454: cap 2: Trying to steal a spark 17725141692: cap 2: stealing a spark from cap 0 17767218150: cap 1: End par conjunct: 0x2524870 17767218951: cap 1: Trying to steal a spark 17767219387: cap 1: stealing a spark from cap 0 17770340709: cap 0: End par conjunct: 0x25254d0 17770340929: cap 0: End par conjunction: 0x25254d0 17770341208: cap 0: End par conjunct: 0x2525470 17770341649: cap 0: running a local spark 17846979615: cap 3: End par conjunct: 0x25248d0 17846980263: cap 3: Trying to steal a spark 17846980960: cap 3: stealing a spark from cap 0 17882204926: cap 2: End par conjunct: 0x2524930 17882206677: cap 2: Trying to steal a spark 17882208459: cap 2: stealing a spark from cap 0 17925635443: cap 0: End par conjunct: 0x2525470 17925635695: cap 0: End par conjunction: 0x2525470 17925635983: cap 0: End par conjunct: 0x2525410 17925636316: cap 0: running a local spark 17929204371: cap 1: End par conjunct: 0x2524990 17929205428: cap 1: Trying to steal a spark 17929206256: cap 1: stealing a spark from cap 0 18007752343: cap 3: End par conjunct: 0x25249f0 18007752766: cap 3: Trying to steal a spark 18007753437: cap 3: stealing a spark from cap 0 18038756245: cap 2: End par conjunct: 0x2524a50 18038757163: cap 2: Trying to steal a spark 18038757798: cap 2: stealing a spark from cap 0 18080380548: cap 0: End par conjunct: 0x2525410 18080380750: cap 0: End par conjunction: 0x2525410 18080380926: cap 0: End par conjunct: 0x25253b0 18080381268: cap 0: running a local spark 18090447849: cap 1: End par conjunct: 0x2524ab0 18090448285: cap 1: Trying to steal a spark 18090448825: cap 1: stealing a spark from cap 0 18168395116: cap 3: End par conjunct: 0x2524b10 18168395557: cap 3: Trying to steal a spark 18168396106: cap 3: stealing a spark from cap 0 18194295892: cap 2: End par conjunct: 0x2524b70 18194296734: cap 2: Trying to steal a spark 18194297454: cap 2: stealing a spark from cap 0 18235582875: cap 0: End par conjunct: 0x25253b0 18235583064: cap 0: End par conjunction: 0x25253b0 18235583217: cap 0: End par conjunct: 0x2525350 18235583536: cap 0: running a local spark 18251847418: cap 1: End par conjunct: 0x2524bd0 18251847949: cap 1: Trying to steal a spark 18251848642: cap 1: stealing a spark from cap 0 18328247212: cap 3: End par conjunct: 0x2524c30 18328247581: cap 3: Trying to steal a spark 18328248135: cap 3: stealing a spark from cap 0 18349427848: cap 2: End par conjunct: 0x2524c90 18349428879: cap 2: Trying to steal a spark 18349429522: cap 2: stealing a spark from cap 0 18390413767: cap 0: End par conjunct: 0x2525350 18390414015: cap 0: End par conjunction: 0x2525350 18390414307: cap 0: End par conjunct: 0x25252f0 18390414771: cap 0: running a local spark 18418554441: cap 1: End par conjunct: 0x2524cf0 18418556151: cap 1: Trying to steal a spark 18418558081: cap 1: stealing a spark from cap 0 18488594830: cap 3: End par conjunct: 0x2524d50 18488595802: cap 3: Trying to steal a spark 18488596576: cap 3: stealing a spark from cap 0 18545712619: cap 0: End par conjunct: 0x25252f0 18545712975: cap 0: End par conjunction: 0x25252f0 18545713146: cap 0: End par conjunct: 0x2525290 18545713398: cap 0: running a local spark 18548312062: cap 2: End par conjunct: 0x2524db0 18548314159: cap 2: Trying to steal a spark 18548316522: cap 2: stealing a spark from cap 0 18581090584: cap 1: End par conjunct: 0x2524e10 18581091916: cap 1: Trying to steal a spark 18581092528: cap 1: stealing a spark from cap 0 18647874999: cap 3: End par conjunct: 0x2524e70 18647876155: cap 3: Trying to steal a spark 18647877249: cap 3: stealing a spark from cap 0 18701289085: cap 0: End par conjunct: 0x2525290 18701289450: cap 0: End par conjunction: 0x2525290 18701289634: cap 0: End par conjunct: 0x2525230 18701290008: cap 0: running a local spark 18709436227: cap 2: End par conjunct: 0x2524ed0 18709437973: cap 2: Trying to steal a spark 18709439710: cap 2: stealing a spark from cap 0 18740173275: cap 1: End par conjunct: 0x2524f30 18740174184: cap 1: Trying to steal a spark 18740174580: cap 1: stealing a spark from cap 0 18805391203: cap 3: End par conjunct: 0x2524f90 18805391730: cap 3: Trying to steal a spark 18805392283: cap 3: stealing a spark from cap 0 18855587983: cap 0: End par conjunct: 0x2525230 18855588177: cap 0: End par conjunction: 0x2525230 18855588330: cap 0: End par conjunct: 0x25251d0 18855588541: cap 0: running a local spark 18861182568: cap 2: End par conjunct: 0x2524ff0 18861183427: cap 2: Trying to steal a spark 18861184143: cap 2: stealing a spark from cap 0 18895434813: cap 1: End par conjunct: 0x2525050 18895435393: cap 1: Trying to steal a spark 18895435798: cap 1: stealing a spark from cap 0 18959237212: cap 3: End par conjunct: 0x25250b0 18959238031: cap 3: Trying to steal a spark 18959238990: cap 3: Looking for global thread to resume 19010127069: cap 0: End par conjunct: 0x25251d0 19010127645: cap 0: End par conjunction: 0x25251d0 19010128009: cap 0: End par conjunct: 0x2525170 19010128540: cap 0: Trying to steal a spark 19010134809: cap 0: stopping thread 1 (thread blocked) 19010135358: cap 0: Looking for global thread to resume 19010337894: cap 2: End par conjunct: 0x2525110 19010338645: cap 2: Trying to steal a spark 19010339802: cap 2: Looking for global thread to resume 19050343357: cap 1: End par conjunct: 0x2525170 19050344109: cap 1: stopping thread 4 (thread finished) 19050349639: cap 1: thread 1 is runnable 19050352011: cap 1: Releasing thread 4 to the free pool 19050353118: cap 1: running thread 1 19050353397: cap 1: End par conjunction: 0x2525170 19050353689: cap 1: End par conjunct: 0x2525110 19050353869: cap 1: End par conjunction: 0x2525110 19050354108: cap 1: End par conjunct: 0x25250b0 19050354238: cap 1: End par conjunction: 0x25250b0 19050354409: cap 1: End par conjunct: 0x2525050 19050354535: cap 1: End par conjunction: 0x2525050 19050354666: cap 1: End par conjunct: 0x2524ff0 19050354801: cap 1: End par conjunction: 0x2524ff0 19050355021: cap 1: End par conjunct: 0x2524f90 19050355345: cap 1: End par conjunction: 0x2524f90 19050355494: cap 1: End par conjunct: 0x2524f30 19050355620: cap 1: End par conjunction: 0x2524f30 19050369354: cap 1: End par conjunct: 0x2524ed0 19050369520: cap 1: End par conjunction: 0x2524ed0 19050369709: cap 1: End par conjunct: 0x2524e70 19050369849: cap 1: End par conjunction: 0x2524e70 19050370087: cap 1: End par conjunct: 0x2524e10 19050370299: cap 1: End par conjunction: 0x2524e10 19050370429: cap 1: End par conjunct: 0x2524db0 19050370564: cap 1: End par conjunction: 0x2524db0 19050370699: cap 1: End par conjunct: 0x2524d50 19050370825: cap 1: End par conjunction: 0x2524d50 19050370960: cap 1: End par conjunct: 0x2524cf0 19050371086: cap 1: End par conjunction: 0x2524cf0 19050371221: cap 1: End par conjunct: 0x2524c90 19050371352: cap 1: End par conjunction: 0x2524c90 19050371482: cap 1: End par conjunct: 0x2524c30 19050371613: cap 1: End par conjunction: 0x2524c30 19050371739: cap 1: End par conjunct: 0x2524bd0 19050371874: cap 1: End par conjunction: 0x2524bd0 19050372004: cap 1: End par conjunct: 0x2524b70 19050372130: cap 1: End par conjunction: 0x2524b70 19050372306: cap 1: End par conjunct: 0x2524b10 19050372445: cap 1: End par conjunction: 0x2524b10 19050372576: cap 1: End par conjunct: 0x2524ab0 19050372702: cap 1: End par conjunction: 0x2524ab0 19050372828: cap 1: End par conjunct: 0x2524a50 19050372958: cap 1: End par conjunction: 0x2524a50 19050373147: cap 1: End par conjunct: 0x25249f0 19050373273: cap 1: End par conjunction: 0x25249f0 19050373458: cap 1: End par conjunct: 0x2524990 19050373584: cap 1: End par conjunction: 0x2524990 19050373714: cap 1: End par conjunct: 0x2524930 19050373849: cap 1: End par conjunction: 0x2524930 19050373975: cap 1: End par conjunct: 0x25248d0 19050374101: cap 1: End par conjunction: 0x25248d0 19050374232: cap 1: End par conjunct: 0x2524870 19050374367: cap 1: End par conjunction: 0x2524870 19050374497: cap 1: End par conjunct: 0x2524810 19050374623: cap 1: End par conjunction: 0x2524810 19050374749: cap 1: End par conjunct: 0x25247b0 19050374997: cap 1: End par conjunction: 0x25247b0 19050375127: cap 1: End par conjunct: 0x2524750 19050375258: cap 1: End par conjunction: 0x2524750 19050375505: cap 1: End par conjunct: 0x25246f0 19050375627: cap 1: End par conjunction: 0x25246f0 19050375762: cap 1: End par conjunct: 0x2524690 19050375892: cap 1: End par conjunction: 0x2524690 19050376023: cap 1: End par conjunct: 0x2524630 19050376153: cap 1: End par conjunction: 0x2524630 19050376279: cap 1: End par conjunct: 0x25245d0 19050376414: cap 1: End par conjunction: 0x25245d0 19050376540: cap 1: End par conjunct: 0x2524570 19050376671: cap 1: End par conjunction: 0x2524570 19050376797: cap 1: End par conjunct: 0x2524510 19050376932: cap 1: End par conjunction: 0x2524510 19050377062: cap 1: End par conjunct: 0x25244b0 19050377188: cap 1: End par conjunction: 0x25244b0 19050377314: cap 1: End par conjunct: 0x2524450 19050377440: cap 1: End par conjunction: 0x2524450 19050377571: cap 1: End par conjunct: 0x25243f0 19050377697: cap 1: End par conjunction: 0x25243f0 19050377827: cap 1: End par conjunct: 0x2524390 19050377949: cap 1: End par conjunction: 0x2524390 19050378079: cap 1: End par conjunct: 0x2524330 19050378210: cap 1: End par conjunction: 0x2524330 19050378340: cap 1: End par conjunct: 0x25242d0 19050378466: cap 1: End par conjunction: 0x25242d0 19050378597: cap 1: End par conjunct: 0x2524270 19050378727: cap 1: End par conjunction: 0x2524270 19050378858: cap 1: End par conjunct: 0x2524210 19050378984: cap 1: End par conjunction: 0x2524210 19050379110: cap 1: End par conjunct: 0x25241b0 19050379245: cap 1: End par conjunction: 0x25241b0 19050379375: cap 1: End par conjunct: 0x2524150 19050379506: cap 1: End par conjunction: 0x2524150 19050379636: cap 1: End par conjunct: 0x25240f0 19050379762: cap 1: End par conjunction: 0x25240f0 19050379897: cap 1: End par conjunct: 0x2524090 19050380023: cap 1: End par conjunction: 0x2524090 19050380158: cap 1: End par conjunct: 0x2524030 19050380280: cap 1: End par conjunction: 0x2524030 19050380406: cap 1: End par conjunct: 0x2523fd0 19050380712: cap 1: End par conjunction: 0x2523fd0 19050380959: cap 1: End par conjunct: 0x2523f70 19050381207: cap 1: End par conjunction: 0x2523f70 19050381333: cap 1: End par conjunct: 0x2523f10 19050381472: cap 1: End par conjunction: 0x2523f10 19050381603: cap 1: End par conjunct: 0x2523eb0 19050381724: cap 1: End par conjunction: 0x2523eb0 19050381855: cap 1: End par conjunct: 0x2523e50 19050381981: cap 1: End par conjunction: 0x2523e50 19050382111: cap 1: End par conjunct: 0x2523df0 19050382237: cap 1: End par conjunction: 0x2523df0 19050382368: cap 1: End par conjunct: 0x2523d90 19050382494: cap 1: End par conjunction: 0x2523d90 19050382629: cap 1: End par conjunct: 0x2523d30 19050382755: cap 1: End par conjunction: 0x2523d30 19050382885: cap 1: End par conjunct: 0x2523cd0 19050383007: cap 1: End par conjunction: 0x2523cd0 19050383142: cap 1: End par conjunct: 0x2523c70 19050383277: cap 1: End par conjunction: 0x2523c70 19050383407: cap 1: End par conjunct: 0x2523c10 19050383533: cap 1: End par conjunction: 0x2523c10 19050383668: cap 1: End par conjunct: 0x2523bb0 19050383799: cap 1: End par conjunction: 0x2523bb0 19050383929: cap 1: End par conjunct: 0x2523b50 19050384055: cap 1: End par conjunction: 0x2523b50 19050384195: cap 1: End par conjunct: 0x2523af0 19050384321: cap 1: End par conjunction: 0x2523af0 19050384451: cap 1: End par conjunct: 0x2523a90 19050384577: cap 1: End par conjunction: 0x2523a90 19050384726: cap 1: End par conjunct: 0x2523a30 19050384852: cap 1: End par conjunction: 0x2523a30 19050384978: cap 1: End par conjunct: 0x25239d0 19050385113: cap 1: End par conjunction: 0x25239d0 19050385243: cap 1: End par conjunct: 0x2523970 19050385374: cap 1: End par conjunction: 0x2523970 19050385495: cap 1: End par conjunct: 0x2523910 19050385630: cap 1: End par conjunction: 0x2523910 19050385761: cap 1: End par conjunct: 0x25238b0 19050385887: cap 1: End par conjunction: 0x25238b0 19050386013: cap 1: End par conjunct: 0x2523850 19050386143: cap 1: End par conjunction: 0x2523850 19050386274: cap 1: End par conjunct: 0x25237f0 19050386400: cap 1: End par conjunction: 0x25237f0 19050386535: cap 1: End par conjunct: 0x2523790 19050386661: cap 1: End par conjunction: 0x2523790 19050386787: cap 1: End par conjunct: 0x2523730 19050386917: cap 1: End par conjunction: 0x2523730 19050387043: cap 1: End par conjunct: 0x25236d0 19050387169: cap 1: End par conjunction: 0x25236d0 19050387295: cap 1: End par conjunct: 0x2523670 19050387430: cap 1: End par conjunction: 0x2523670 19050387561: cap 1: End par conjunct: 0x2523610 19050387687: cap 1: End par conjunction: 0x2523610 19050387817: cap 1: End par conjunct: 0x25235b0 19050387948: cap 1: End par conjunction: 0x25235b0 19050388078: cap 1: End par conjunct: 0x2523550 19050388209: cap 1: End par conjunction: 0x2523550 19050388344: cap 1: End par conjunct: 0x25234f0 19050388465: cap 1: End par conjunction: 0x25234f0 19050388596: cap 1: End par conjunct: 0x2523490 19050388726: cap 1: End par conjunction: 0x2523490 19050388857: cap 1: End par conjunct: 0x2523430 19050388987: cap 1: End par conjunction: 0x2523430 19050389113: cap 1: End par conjunct: 0x25233d0 19050389248: cap 1: End par conjunction: 0x25233d0 19050389374: cap 1: End par conjunct: 0x2523370 19050389505: cap 1: End par conjunction: 0x2523370 19050389631: cap 1: End par conjunct: 0x2523310 19050389766: cap 1: End par conjunction: 0x2523310 19050389901: cap 1: End par conjunct: 0x25232b0 19050390027: cap 1: End par conjunction: 0x25232b0 19050390153: cap 1: End par conjunct: 0x2523250 19050390283: cap 1: End par conjunction: 0x2523250 19050390414: cap 1: End par conjunct: 0x25231f0 19050390540: cap 1: End par conjunction: 0x25231f0 19050390670: cap 1: End par conjunct: 0x2523190 19050390796: cap 1: End par conjunction: 0x2523190 19050390927: cap 1: End par conjunct: 0x2523130 19050391053: cap 1: End par conjunction: 0x2523130 19050391183: cap 1: End par conjunct: 0x25230d0 19050391305: cap 1: End par conjunction: 0x25230d0 19050391476: cap 1: End par conjunct: 0x2523070 19050391611: cap 1: End par conjunction: 0x2523070 19050391741: cap 1: End par conjunct: 0x2523010 19050391858: cap 1: End par conjunction: 0x2523010 19050392101: cap 1: End par conjunct: 0x2522fb0 19050392407: cap 1: End par conjunction: 0x2522fb0 19050392538: cap 1: End par conjunct: 0x2522f50 19050392749: cap 1: End par conjunction: 0x2522f50 19050392884: cap 1: End par conjunct: 0x2522ef0 19050393010: cap 1: End par conjunction: 0x2522ef0 19050393141: cap 1: End par conjunct: 0x2522e90 19050393271: cap 1: End par conjunction: 0x2522e90 19050393402: cap 1: End par conjunct: 0x2522e30 19050393528: cap 1: End par conjunction: 0x2522e30 19050393658: cap 1: End par conjunct: 0x2522dd0 19050393793: cap 1: End par conjunction: 0x2522dd0 19050393919: cap 1: End par conjunct: 0x2522d70 19050394045: cap 1: End par conjunction: 0x2522d70 19050394176: cap 1: End par conjunct: 0x2522d10 19050394311: cap 1: End par conjunction: 0x2522d10 19050394446: cap 1: End par conjunct: 0x2522cb0 19050394567: cap 1: End par conjunction: 0x2522cb0 19050394698: cap 1: End par conjunct: 0x2522c50 19050394824: cap 1: End par conjunction: 0x2522c50 19050394954: cap 1: End par conjunct: 0x2522bf0 19050395080: cap 1: End par conjunction: 0x2522bf0 19050395211: cap 1: End par conjunct: 0x2522b90 19050395332: cap 1: End par conjunction: 0x2522b90 19050395467: cap 1: End par conjunct: 0x2522b30 19050395598: cap 1: End par conjunction: 0x2522b30 19050395724: cap 1: End par conjunct: 0x2522ad0 19050395850: cap 1: End par conjunction: 0x2522ad0 19050395985: cap 1: End par conjunct: 0x2522a70 19050396120: cap 1: End par conjunction: 0x2522a70 19050396246: cap 1: End par conjunct: 0x2522a10 19050396372: cap 1: End par conjunction: 0x2522a10 19050396507: cap 1: End par conjunct: 0x25229b0 19050396642: cap 1: End par conjunction: 0x25229b0 19050396772: cap 1: End par conjunct: 0x2522950 19050396898: cap 1: End par conjunction: 0x2522950 19050397042: cap 1: End par conjunct: 0x25228f0 19050397168: cap 1: End par conjunction: 0x25228f0 19050397299: cap 1: End par conjunct: 0x2522890 19050397429: cap 1: End par conjunction: 0x2522890 19050397573: cap 1: End par conjunct: 0x2522830 19050397704: cap 1: End par conjunction: 0x2522830 19050397830: cap 1: End par conjunct: 0x25227d0 19050397965: cap 1: End par conjunction: 0x25227d0 19050398095: cap 1: End par conjunct: 0x2522770 19050398221: cap 1: End par conjunction: 0x2522770 19050398347: cap 1: End par conjunct: 0x2522710 19050398482: cap 1: End par conjunction: 0x2522710 19050398617: cap 1: End par conjunct: 0x25226b0 19050398743: cap 1: End par conjunction: 0x25226b0 19050398869: cap 1: End par conjunct: 0x2522650 19050399000: cap 1: End par conjunction: 0x2522650 19050399130: cap 1: End par conjunct: 0x25225f0 19050399256: cap 1: End par conjunction: 0x25225f0 19050399387: cap 1: End par conjunct: 0x2522590 19050399513: cap 1: End par conjunction: 0x2522590 19050399648: cap 1: End par conjunct: 0x2522530 19050399774: cap 1: End par conjunction: 0x2522530 19050399904: cap 1: End par conjunct: 0x25224d0 19050400026: cap 1: End par conjunction: 0x25224d0 19050400161: cap 1: End par conjunct: 0x2522470 19050400296: cap 1: End par conjunction: 0x2522470 19050400422: cap 1: End par conjunct: 0x2522410 19050400548: cap 1: End par conjunction: 0x2522410 19050400683: cap 1: End par conjunct: 0x25223b0 19050400813: cap 1: End par conjunction: 0x25223b0 19050400944: cap 1: End par conjunct: 0x2522350 19050401070: cap 1: End par conjunction: 0x2522350 19050401205: cap 1: End par conjunct: 0x25222f0 19050401331: cap 1: End par conjunction: 0x25222f0 19050401461: cap 1: End par conjunct: 0x2522290 19050401592: cap 1: End par conjunction: 0x2522290 19050401740: cap 1: End par conjunct: 0x2522230 19050401866: cap 1: End par conjunction: 0x2522230 19050401992: cap 1: End par conjunct: 0x25221d0 19050402127: cap 1: End par conjunction: 0x25221d0 19050402258: cap 1: End par conjunct: 0x2522170 19050402384: cap 1: End par conjunction: 0x2522170 19050402510: cap 1: End par conjunct: 0x2522110 19050402649: cap 1: End par conjunction: 0x2522110 19050402780: cap 1: End par conjunct: 0x25220b0 19050403014: cap 1: End par conjunction: 0x25220b0 19050403140: cap 1: End par conjunct: 0x2522050 19050403261: cap 1: End par conjunction: 0x2522050 19050403396: cap 1: End par conjunct: 0x2521ff0 19050403639: cap 1: End par conjunction: 0x2521ff0 19050403770: cap 1: End par conjunct: 0x2521f90 19050403896: cap 1: End par conjunction: 0x2521f90 19050404035: cap 1: End par conjunct: 0x2521f30 19050404170: cap 1: End par conjunction: 0x2521f30 19050404301: cap 1: End par conjunct: 0x2521ed0 19050404427: cap 1: End par conjunction: 0x2521ed0 19050404553: cap 1: End par conjunct: 0x2521e70 19050404683: cap 1: End par conjunction: 0x2521e70 19050404814: cap 1: End par conjunct: 0x2521e10 19050404940: cap 1: End par conjunction: 0x2521e10 19050405075: cap 1: End par conjunct: 0x2521db0 19050405205: cap 1: End par conjunction: 0x2521db0 19050405336: cap 1: End par conjunct: 0x2521d50 19050405466: cap 1: End par conjunction: 0x2521d50 19050405709: cap 1: End par conjunct: 0x2521cf0 19050405835: cap 1: End par conjunction: 0x2521cf0 19050405966: cap 1: End par conjunct: 0x2521c90 19050406096: cap 1: End par conjunction: 0x2521c90 19050406344: cap 1: End par conjunct: 0x2521c30 19050406470: cap 1: End par conjunction: 0x2521c30 19050406596: cap 1: End par conjunct: 0x2521bd0 19050406731: cap 1: End par conjunction: 0x2521bd0 19050406861: cap 1: End par conjunct: 0x2521b70 19050406987: cap 1: End par conjunction: 0x2521b70 19050407113: cap 1: End par conjunct: 0x2521b10 19050407248: cap 1: End par conjunction: 0x2521b10 19050407383: cap 1: End par conjunct: 0x2521ab0 19050407509: cap 1: End par conjunction: 0x2521ab0 19050407635: cap 1: End par conjunct: 0x2521a50 19050407761: cap 1: End par conjunction: 0x2521a50 19050407892: cap 1: End par conjunct: 0x25219f0 19050408018: cap 1: End par conjunction: 0x25219f0 19050408148: cap 1: End par conjunct: 0x2521990 19050408274: cap 1: End par conjunction: 0x2521990 19050408405: cap 1: End par conjunct: 0x2521930 19050408535: cap 1: End par conjunction: 0x2521930 19050408661: cap 1: End par conjunct: 0x25218d0 19050408792: cap 1: End par conjunction: 0x25218d0 19050408918: cap 1: End par conjunct: 0x2521870 19050409053: cap 1: End par conjunction: 0x2521870 19050409179: cap 1: End par conjunct: 0x2521810 19050409305: cap 1: End par conjunction: 0x2521810 19050409440: cap 1: End par conjunct: 0x25217b0 19050409575: cap 1: End par conjunction: 0x25217b0 19050409701: cap 1: End par conjunct: 0x2521750 19050409831: cap 1: End par conjunction: 0x2521750 19050409962: cap 1: End par conjunct: 0x25216f0 19050410088: cap 1: End par conjunction: 0x25216f0 19050410218: cap 1: End par conjunct: 0x2521690 19050410349: cap 1: End par conjunction: 0x2521690 19050410488: cap 1: End par conjunct: 0x2521630 19050410614: cap 1: End par conjunction: 0x2521630 19050410740: cap 1: End par conjunct: 0x25215d0 19050410880: cap 1: End par conjunction: 0x25215d0 19050411051: cap 1: End par conjunct: 0x2521570 19050411177: cap 1: End par conjunction: 0x2521570 19050411348: cap 1: End par conjunct: 0x2521510 19050411483: cap 1: End par conjunction: 0x2521510 19050411658: cap 1: End par conjunct: 0x25214b0 19050411784: cap 1: End par conjunction: 0x25214b0 19050411915: cap 1: End par conjunct: 0x2521450 19050412045: cap 1: End par conjunction: 0x2521450 19050412176: cap 1: End par conjunct: 0x25213f0 19050412302: cap 1: End par conjunction: 0x25213f0 19050412437: cap 1: End par conjunct: 0x2521390 19050412563: cap 1: End par conjunction: 0x2521390 19050412698: cap 1: End par conjunct: 0x2521330 19050412828: cap 1: End par conjunction: 0x2521330 19050412959: cap 1: End par conjunct: 0x25212d0 19050413085: cap 1: End par conjunction: 0x25212d0 19050413220: cap 1: End par conjunct: 0x2521270 19050413355: cap 1: End par conjunction: 0x2521270 19050413481: cap 1: End par conjunct: 0x2521210 19050413607: cap 1: End par conjunction: 0x2521210 19050413742: cap 1: End par conjunct: 0x25211b0 19050413872: cap 1: End par conjunction: 0x25211b0 19050414003: cap 1: End par conjunct: 0x2521150 19050414133: cap 1: End par conjunction: 0x2521150 19050414264: cap 1: End par conjunct: 0x25210f0 19050414390: cap 1: End par conjunction: 0x25210f0 19050414520: cap 1: End par conjunct: 0x2521090 19050414646: cap 1: End par conjunction: 0x2521090 19050414790: cap 1: End par conjunct: 0x2521030 19050414912: cap 1: End par conjunction: 0x2521030 19050415038: cap 1: End par conjunct: 0x2520fd0 19050415303: cap 1: End par conjunction: 0x2520fd0 19050415542: cap 1: End par conjunct: 0x2520f70 19050415785: cap 1: End par conjunction: 0x2520f70 19050415906: cap 1: End par conjunct: 0x2520f10 19050416041: cap 1: End par conjunction: 0x2520f10 19050416176: cap 1: End par conjunct: 0x2520eb0 19050416302: cap 1: End par conjunction: 0x2520eb0 19050416428: cap 1: End par conjunct: 0x2520e50 19050416554: cap 1: End par conjunction: 0x2520e50 19050416689: cap 1: End par conjunct: 0x2520df0 19050416811: cap 1: End par conjunction: 0x2520df0 19050416941: cap 1: End par conjunct: 0x2520d90 19050417072: cap 1: End par conjunction: 0x2520d90 19050417202: cap 1: End par conjunct: 0x2520d30 19050417333: cap 1: End par conjunction: 0x2520d30 19050417463: cap 1: End par conjunct: 0x2520cd0 19050417598: cap 1: End par conjunction: 0x2520cd0 19050417724: cap 1: End par conjunct: 0x2520c70 19050417864: cap 1: End par conjunction: 0x2520c70 19050417990: cap 1: End par conjunct: 0x2520c10 19050418116: cap 1: End par conjunction: 0x2520c10 19050418246: cap 1: End par conjunct: 0x2520bb0 19050418377: cap 1: End par conjunction: 0x2520bb0 19050418512: cap 1: End par conjunct: 0x2520b50 19050418638: cap 1: End par conjunction: 0x2520b50 19050418773: cap 1: End par conjunct: 0x2520af0 19050418894: cap 1: End par conjunction: 0x2520af0 19050419029: cap 1: End par conjunct: 0x2520a90 19050419160: cap 1: End par conjunction: 0x2520a90 19050419295: cap 1: End par conjunct: 0x2520a30 19050419421: cap 1: End par conjunction: 0x2520a30 19050419547: cap 1: End par conjunct: 0x25209d0 19050419686: cap 1: End par conjunction: 0x25209d0 19050419812: cap 1: End par conjunct: 0x2520970 19050419938: cap 1: End par conjunction: 0x2520970 19050420064: cap 1: End par conjunct: 0x2520910 19050420199: cap 1: End par conjunction: 0x2520910 19050420334: cap 1: End par conjunct: 0x25208b0 19050420460: cap 1: End par conjunction: 0x25208b0 19050420586: cap 1: End par conjunct: 0x2520850 19050420717: cap 1: End par conjunction: 0x2520850 19050420847: cap 1: End par conjunct: 0x25207f0 19050420973: cap 1: End par conjunction: 0x25207f0 19050421104: cap 1: End par conjunct: 0x2520790 19050421230: cap 1: End par conjunction: 0x2520790 19050421360: cap 1: End par conjunct: 0x2520730 19050421491: cap 1: End par conjunction: 0x2520730 19050421621: cap 1: End par conjunct: 0x25206d0 19050421747: cap 1: End par conjunction: 0x25206d0 19050421873: cap 1: End par conjunct: 0x2520670 19050422004: cap 1: End par conjunction: 0x2520670 19050422134: cap 1: End par conjunct: 0x2520610 19050422260: cap 1: End par conjunction: 0x2520610 19050422395: cap 1: End par conjunct: 0x25205b0 19050422530: cap 1: End par conjunction: 0x25205b0 19050422661: cap 1: End par conjunct: 0x2520550 19050422787: cap 1: End par conjunction: 0x2520550 19050422922: cap 1: End par conjunct: 0x25204f0 19050423048: cap 1: End par conjunction: 0x25204f0 19050423178: cap 1: End par conjunct: 0x2520490 19050423309: cap 1: End par conjunction: 0x2520490 19050423444: cap 1: End par conjunct: 0x2520430 19050423574: cap 1: End par conjunction: 0x2520430 19050423696: cap 1: End par conjunct: 0x25203d0 19050423831: cap 1: End par conjunction: 0x25203d0 19050423961: cap 1: End par conjunct: 0x2520370 19050424087: cap 1: End par conjunction: 0x2520370 19050424213: cap 1: End par conjunct: 0x2520310 19050424348: cap 1: End par conjunction: 0x2520310 19050424519: cap 1: End par conjunct: 0x25202b0 19050424645: cap 1: End par conjunction: 0x25202b0 19050424771: cap 1: End par conjunct: 0x2520250 19050424897: cap 1: End par conjunction: 0x2520250 19050425028: cap 1: End par conjunct: 0x25201f0 19050425154: cap 1: End par conjunction: 0x25201f0 19050425284: cap 1: End par conjunct: 0x2520190 19050425410: cap 1: End par conjunction: 0x2520190 19050425545: cap 1: End par conjunct: 0x2520130 19050425676: cap 1: End par conjunction: 0x2520130 19050425802: cap 1: End par conjunct: 0x25200d0 19050425928: cap 1: End par conjunction: 0x25200d0 19050426090: cap 1: End par conjunct: 0x2520070 19050426225: cap 1: End par conjunction: 0x2520070 19050426355: cap 1: End par conjunct: 0x2520010 19050426472: cap 1: End par conjunction: 0x2520010 19050426828: cap 1: End par conjunct: 0x251ffb0 19050427093: cap 1: End par conjunction: 0x251ffb0 19050427224: cap 1: End par conjunct: 0x251ff50 19050427458: cap 1: End par conjunction: 0x251ff50 19050427593: cap 1: End par conjunct: 0x251fef0 19050427719: cap 1: End par conjunction: 0x251fef0 19050427849: cap 1: End par conjunct: 0x251fe90 19050427980: cap 1: End par conjunction: 0x251fe90 19050428115: cap 1: End par conjunct: 0x251fe30 19050428241: cap 1: End par conjunction: 0x251fe30 19050428367: cap 1: End par conjunct: 0x251fdd0 19050428502: cap 1: End par conjunction: 0x251fdd0 19050428632: cap 1: End par conjunct: 0x251fd70 19050428763: cap 1: End par conjunction: 0x251fd70 19050428889: cap 1: End par conjunct: 0x251fd10 19050429024: cap 1: End par conjunction: 0x251fd10 19050429159: cap 1: End par conjunct: 0x251fcb0 19050429280: cap 1: End par conjunction: 0x251fcb0 19050429406: cap 1: End par conjunct: 0x251fc50 19050429537: cap 1: End par conjunction: 0x251fc50 19050429667: cap 1: End par conjunct: 0x251fbf0 19050429793: cap 1: End par conjunction: 0x251fbf0 19050429924: cap 1: End par conjunct: 0x251fb90 19050430050: cap 1: End par conjunction: 0x251fb90 19050430180: cap 1: End par conjunct: 0x251fb30 19050430311: cap 1: End par conjunction: 0x251fb30 19050430437: cap 1: End par conjunct: 0x251fad0 19050430563: cap 1: End par conjunction: 0x251fad0 19050430693: cap 1: End par conjunct: 0x251fa70 19050430824: cap 1: End par conjunction: 0x251fa70 19050430950: cap 1: End par conjunct: 0x251fa10 19050431076: cap 1: End par conjunction: 0x251fa10 19050431211: cap 1: End par conjunct: 0x251f9b0 19050431346: cap 1: End par conjunction: 0x251f9b0 19050431476: cap 1: End par conjunct: 0x251f950 19050431602: cap 1: End par conjunction: 0x251f950 19050431737: cap 1: End par conjunct: 0x251f8f0 19050431859: cap 1: End par conjunction: 0x251f8f0 19050431989: cap 1: End par conjunct: 0x251f890 19050432120: cap 1: End par conjunction: 0x251f890 19050432255: cap 1: End par conjunct: 0x251f830 19050432385: cap 1: End par conjunction: 0x251f830 19050432507: cap 1: End par conjunct: 0x251f7d0 19050432646: cap 1: End par conjunction: 0x251f7d0 19050432772: cap 1: End par conjunct: 0x251f770 19050432898: cap 1: End par conjunction: 0x251f770 19050433024: cap 1: End par conjunct: 0x251f710 19050433159: cap 1: End par conjunction: 0x251f710 19050433290: cap 1: End par conjunct: 0x251f6b0 19050433416: cap 1: End par conjunction: 0x251f6b0 19050433542: cap 1: End par conjunct: 0x251f650 19050433672: cap 1: End par conjunction: 0x251f650 19050433803: cap 1: End par conjunct: 0x251f5f0 19050433929: cap 1: End par conjunction: 0x251f5f0 19050434059: cap 1: End par conjunct: 0x251f590 19050434185: cap 1: End par conjunction: 0x251f590 19050434311: cap 1: End par conjunct: 0x251f530 19050434442: cap 1: End par conjunction: 0x251f530 19050434568: cap 1: End par conjunct: 0x251f4d0 19050434694: cap 1: End par conjunction: 0x251f4d0 19050434824: cap 1: End par conjunct: 0x251f470 19050434955: cap 1: End par conjunction: 0x251f470 19050435085: cap 1: End par conjunct: 0x251f410 19050435211: cap 1: End par conjunction: 0x251f410 19050435337: cap 1: End par conjunct: 0x251f3b0 19050435472: cap 1: End par conjunction: 0x251f3b0 19050435603: cap 1: End par conjunct: 0x251f350 19050435729: cap 1: End par conjunction: 0x251f350 19050435873: cap 1: End par conjunct: 0x251f2f0 19050435999: cap 1: End par conjunction: 0x251f2f0 19050436129: cap 1: End par conjunct: 0x251f290 19050436260: cap 1: End par conjunction: 0x251f290 19050436507: cap 1: End par conjunct: 0x251f230 19050436638: cap 1: End par conjunction: 0x251f230 19050436764: cap 1: End par conjunct: 0x251f1d0 19050437007: cap 1: End par conjunction: 0x251f1d0 19050437137: cap 1: End par conjunct: 0x251f170 19050437268: cap 1: End par conjunction: 0x251f170 19050437394: cap 1: End par conjunct: 0x251f110 19050437529: cap 1: End par conjunction: 0x251f110 19050437659: cap 1: End par conjunct: 0x251f0b0 19050437893: cap 1: End par conjunction: 0x251f0b0 19050438024: cap 1: End par conjunct: 0x251f050 19050438145: cap 1: End par conjunction: 0x251f050 19050438280: cap 1: End par conjunct: 0x251eff0 19050438519: cap 1: End par conjunction: 0x251eff0 19050438649: cap 1: End par conjunct: 0x251ef90 19050438780: cap 1: End par conjunction: 0x251ef90 19050438924: cap 1: End par conjunct: 0x251ef30 19050439054: cap 1: End par conjunction: 0x251ef30 19050443919: cap 1: End par conjunct: 0x251eed0 19050444036: cap 1: End par conjunction: 0x251eed0 19050444171: cap 1: End par conjunct: 0x251ee70 19050444306: cap 1: End par conjunction: 0x251ee70 19050444441: cap 1: End par conjunct: 0x251ee10 19050444562: cap 1: End par conjunction: 0x251ee10 19050444693: cap 1: End par conjunct: 0x251edb0 19050444828: cap 1: End par conjunction: 0x251edb0 19050444963: cap 1: End par conjunct: 0x251ed50 19050445089: cap 1: End par conjunction: 0x251ed50 19050445224: cap 1: End par conjunct: 0x251ecf0 19050445350: cap 1: End par conjunction: 0x251ecf0 19050445485: cap 1: End par conjunct: 0x251ec90 19050445611: cap 1: End par conjunction: 0x251ec90 19050445755: cap 1: End par conjunct: 0x251ec30 19050445881: cap 1: End par conjunction: 0x251ec30 19050446007: cap 1: End par conjunct: 0x251ebd0 19050446142: cap 1: End par conjunction: 0x251ebd0 19050446272: cap 1: End par conjunct: 0x251eb70 19050446403: cap 1: End par conjunction: 0x251eb70 19050446524: cap 1: End par conjunct: 0x251eb10 19050446659: cap 1: End par conjunction: 0x251eb10 19050446794: cap 1: End par conjunct: 0x251eab0 19050446916: cap 1: End par conjunction: 0x251eab0 19050447042: cap 1: End par conjunct: 0x251ea50 19050447172: cap 1: End par conjunction: 0x251ea50 19050447303: cap 1: End par conjunct: 0x251e9f0 19050447429: cap 1: End par conjunction: 0x251e9f0 19050447559: cap 1: End par conjunct: 0x251e990 19050447685: cap 1: End par conjunction: 0x251e990 19050447820: cap 1: End par conjunct: 0x251e930 19050447946: cap 1: End par conjunction: 0x251e930 19050448077: cap 1: End par conjunct: 0x251e8d0 19050448198: cap 1: End par conjunction: 0x251e8d0 19050448329: cap 1: End par conjunct: 0x251e870 19050448464: cap 1: End par conjunction: 0x251e870 19050448594: cap 1: End par conjunct: 0x251e810 19050448720: cap 1: End par conjunction: 0x251e810 19050448851: cap 1: End par conjunct: 0x251e7b0 19050448986: cap 1: End par conjunction: 0x251e7b0 19050449116: cap 1: End par conjunct: 0x251e750 19050449242: cap 1: End par conjunction: 0x251e750 19050449377: cap 1: End par conjunct: 0x251e6f0 19050449503: cap 1: End par conjunction: 0x251e6f0 19050449638: cap 1: End par conjunct: 0x251e690 19050449764: cap 1: End par conjunction: 0x251e690 19050449904: cap 1: End par conjunct: 0x251e630 19050450030: cap 1: End par conjunction: 0x251e630 19050450156: cap 1: End par conjunct: 0x251e5d0 19050450295: cap 1: End par conjunction: 0x251e5d0 19050450426: cap 1: End par conjunct: 0x251e570 19050450552: cap 1: End par conjunction: 0x251e570 19050450678: cap 1: End par conjunct: 0x251e510 19050450813: cap 1: End par conjunction: 0x251e510 19050450948: cap 1: End par conjunct: 0x251e4b0 19050451069: cap 1: End par conjunction: 0x251e4b0 19050451195: cap 1: End par conjunct: 0x251e450 19050451330: cap 1: End par conjunction: 0x251e450 19050451461: cap 1: End par conjunct: 0x251e3f0 19050451587: cap 1: End par conjunction: 0x251e3f0 19050451717: cap 1: End par conjunct: 0x251e390 19050451843: cap 1: End par conjunction: 0x251e390 19050451974: cap 1: End par conjunct: 0x251e330 19050452104: cap 1: End par conjunction: 0x251e330 19050452230: cap 1: End par conjunct: 0x251e2d0 19050452356: cap 1: End par conjunction: 0x251e2d0 19050452487: cap 1: End par conjunct: 0x251e270 19050452617: cap 1: End par conjunction: 0x251e270 19050452748: cap 1: End par conjunct: 0x251e210 19050452883: cap 1: End par conjunction: 0x251e210 19050453009: cap 1: End par conjunct: 0x251e1b0 19050453144: cap 1: End par conjunction: 0x251e1b0 19050453270: cap 1: End par conjunct: 0x251e150 19050453396: cap 1: End par conjunction: 0x251e150 19050453531: cap 1: End par conjunct: 0x251e0f0 19050453657: cap 1: End par conjunction: 0x251e0f0 19050453787: cap 1: End par conjunct: 0x251e090 19050453918: cap 1: End par conjunction: 0x251e090 19050454048: cap 1: End par conjunct: 0x251e030 19050454170: cap 1: End par conjunction: 0x251e030 19050454296: cap 1: End par conjunct: 0x251dfd0 19050454566: cap 1: End par conjunction: 0x251dfd0 19050454800: cap 1: End par conjunct: 0x251df70 19050455052: cap 1: End par conjunction: 0x251df70 19050455178: cap 1: End par conjunct: 0x251df10 19050455317: cap 1: End par conjunction: 0x251df10 19050455448: cap 1: End par conjunct: 0x251deb0 19050455574: cap 1: End par conjunction: 0x251deb0 19050455700: cap 1: End par conjunct: 0x251de50 19050455826: cap 1: End par conjunction: 0x251de50 19050455956: cap 1: End par conjunct: 0x251ddf0 19050456082: cap 1: End par conjunction: 0x251ddf0 19050456213: cap 1: End par conjunct: 0x251dd90 19050456339: cap 1: End par conjunction: 0x251dd90 19050456469: cap 1: End par conjunct: 0x251dd30 19050456600: cap 1: End par conjunction: 0x251dd30 19050456726: cap 1: End par conjunct: 0x251dcd0 19050456852: cap 1: End par conjunction: 0x251dcd0 19050456982: cap 1: End par conjunct: 0x251dc70 19050457117: cap 1: End par conjunction: 0x251dc70 19050457248: cap 1: End par conjunct: 0x251dc10 19050457374: cap 1: End par conjunction: 0x251dc10 19050457500: cap 1: End par conjunct: 0x251dbb0 19050457635: cap 1: End par conjunction: 0x251dbb0 19050457761: cap 1: End par conjunct: 0x251db50 19050457891: cap 1: End par conjunction: 0x251db50 19050458022: cap 1: End par conjunct: 0x251daf0 19050458148: cap 1: End par conjunction: 0x251daf0 19050458278: cap 1: End par conjunct: 0x251da90 19050458409: cap 1: End par conjunction: 0x251da90 19050458539: cap 1: End par conjunct: 0x251da30 19050458670: cap 1: End par conjunction: 0x251da30 19050458796: cap 1: End par conjunct: 0x251d9d0 19050458931: cap 1: End par conjunction: 0x251d9d0 19050459061: cap 1: End par conjunct: 0x251d970 19050459192: cap 1: End par conjunction: 0x251d970 19050459318: cap 1: End par conjunct: 0x251d910 19050459453: cap 1: End par conjunction: 0x251d910 19050459579: cap 1: End par conjunct: 0x251d8b0 19050459709: cap 1: End par conjunction: 0x251d8b0 19050459835: cap 1: End par conjunct: 0x251d850 19050459966: cap 1: End par conjunction: 0x251d850 19050460096: cap 1: End par conjunct: 0x251d7f0 19050460222: cap 1: End par conjunction: 0x251d7f0 19050460348: cap 1: End par conjunct: 0x251d790 19050460474: cap 1: End par conjunction: 0x251d790 19050460605: cap 1: End par conjunct: 0x251d730 19050460735: cap 1: End par conjunction: 0x251d730 19050460866: cap 1: End par conjunct: 0x251d6d0 19050460987: cap 1: End par conjunction: 0x251d6d0 19050461118: cap 1: End par conjunct: 0x251d670 19050461248: cap 1: End par conjunction: 0x251d670 19050461379: cap 1: End par conjunct: 0x251d610 19050461509: cap 1: End par conjunction: 0x251d610 19050461635: cap 1: End par conjunct: 0x251d5b0 19050461770: cap 1: End par conjunction: 0x251d5b0 19050461901: cap 1: End par conjunct: 0x251d550 19050462031: cap 1: End par conjunction: 0x251d550 19050462162: cap 1: End par conjunct: 0x251d4f0 19050462288: cap 1: End par conjunction: 0x251d4f0 19050462418: cap 1: End par conjunct: 0x251d490 19050462544: cap 1: End par conjunction: 0x251d490 19050462679: cap 1: End par conjunct: 0x251d430 19050462805: cap 1: End par conjunction: 0x251d430 19050462931: cap 1: End par conjunct: 0x251d3d0 19050463066: cap 1: End par conjunction: 0x251d3d0 19050463197: cap 1: End par conjunct: 0x251d370 19050463323: cap 1: End par conjunction: 0x251d370 19050463453: cap 1: End par conjunct: 0x251d310 19050463588: cap 1: End par conjunction: 0x251d310 19050463719: cap 1: End par conjunct: 0x251d2b0 19050463845: cap 1: End par conjunction: 0x251d2b0 19050463971: cap 1: End par conjunct: 0x251d250 19050464101: cap 1: End par conjunction: 0x251d250 19050464232: cap 1: End par conjunct: 0x251d1f0 19050464353: cap 1: End par conjunction: 0x251d1f0 19050464484: cap 1: End par conjunct: 0x251d190 19050464610: cap 1: End par conjunction: 0x251d190 19050464740: cap 1: End par conjunct: 0x251d130 19050464871: cap 1: End par conjunction: 0x251d130 19050465001: cap 1: End par conjunct: 0x251d0d0 19050465123: cap 1: End par conjunction: 0x251d0d0 19050465258: cap 1: End par conjunct: 0x251d070 19050465388: cap 1: End par conjunction: 0x251d070 19050465519: cap 1: End par conjunct: 0x251d010 19050465640: cap 1: End par conjunction: 0x251d010 19050465883: cap 1: End par conjunct: 0x251cfb0 19050466297: cap 1: End par conjunction: 0x251cfb0 19050466423: cap 1: End par conjunct: 0x251cf50 19050466648: cap 1: End par conjunction: 0x251cf50 19050466783: cap 1: End par conjunct: 0x251cef0 19050466909: cap 1: End par conjunction: 0x251cef0 19050467040: cap 1: End par conjunct: 0x251ce90 19050467170: cap 1: End par conjunction: 0x251ce90 19050467305: cap 1: End par conjunct: 0x251ce30 19050467431: cap 1: End par conjunction: 0x251ce30 19050467557: cap 1: End par conjunct: 0x251cdd0 19050467697: cap 1: End par conjunction: 0x251cdd0 19050467823: cap 1: End par conjunct: 0x251cd70 19050467953: cap 1: End par conjunction: 0x251cd70 19050468079: cap 1: End par conjunct: 0x251cd10 19050468214: cap 1: End par conjunction: 0x251cd10 19050468345: cap 1: End par conjunct: 0x251ccb0 19050468471: cap 1: End par conjunction: 0x251ccb0 19050468597: cap 1: End par conjunct: 0x251cc50 19050468727: cap 1: End par conjunction: 0x251cc50 19050468858: cap 1: End par conjunct: 0x251cbf0 19050468984: cap 1: End par conjunction: 0x251cbf0 19050469110: cap 1: End par conjunct: 0x251cb90 19050469236: cap 1: End par conjunction: 0x251cb90 19050469366: cap 1: End par conjunct: 0x251cb30 19050469497: cap 1: End par conjunction: 0x251cb30 19050469623: cap 1: End par conjunct: 0x251cad0 19050469749: cap 1: End par conjunction: 0x251cad0 19050469879: cap 1: End par conjunct: 0x251ca70 19050470014: cap 1: End par conjunction: 0x251ca70 19050470145: cap 1: End par conjunct: 0x251ca10 19050470266: cap 1: End par conjunction: 0x251ca10 19050470397: cap 1: End par conjunct: 0x251c9b0 19050470532: cap 1: End par conjunction: 0x251c9b0 19050470662: cap 1: End par conjunct: 0x251c950 19050470788: cap 1: End par conjunction: 0x251c950 19050470923: cap 1: End par conjunct: 0x251c8f0 19050471045: cap 1: End par conjunction: 0x251c8f0 19050471175: cap 1: End par conjunct: 0x251c890 19050471306: cap 1: End par conjunction: 0x251c890 19050471441: cap 1: End par conjunct: 0x251c830 19050471567: cap 1: End par conjunction: 0x251c830 19050471693: cap 1: End par conjunct: 0x251c7d0 19050471945: cap 1: End par conjunction: 0x251c7d0 19050472075: cap 1: End par conjunct: 0x251c770 19050472201: cap 1: End par conjunction: 0x251c770 19050472327: cap 1: End par conjunct: 0x251c710 19050472566: cap 1: End par conjunction: 0x251c710 19050472696: cap 1: End par conjunct: 0x251c6b0 19050472822: cap 1: End par conjunction: 0x251c6b0 19050472948: cap 1: End par conjunct: 0x251c650 19050473074: cap 1: End par conjunction: 0x251c650 19050473205: cap 1: End par conjunct: 0x251c5f0 19050473331: cap 1: End par conjunction: 0x251c5f0 19050473461: cap 1: End par conjunct: 0x251c590 19050473587: cap 1: End par conjunction: 0x251c590 19050473718: cap 1: End par conjunct: 0x251c530 19050473848: cap 1: End par conjunction: 0x251c530 19050473974: cap 1: End par conjunct: 0x251c4d0 19050474100: cap 1: End par conjunction: 0x251c4d0 19050474231: cap 1: End par conjunct: 0x251c470 19050474361: cap 1: End par conjunction: 0x251c470 19050474492: cap 1: End par conjunct: 0x251c410 19050474618: cap 1: End par conjunction: 0x251c410 19050474748: cap 1: End par conjunct: 0x251c3b0 19050474879: cap 1: End par conjunction: 0x251c3b0 19050475009: cap 1: End par conjunct: 0x251c350 19050475135: cap 1: End par conjunction: 0x251c350 19050475270: cap 1: End par conjunct: 0x251c2f0 19050475396: cap 1: End par conjunction: 0x251c2f0 19050475527: cap 1: End par conjunct: 0x251c290 19050475657: cap 1: End par conjunction: 0x251c290 19050475788: cap 1: End par conjunct: 0x251c230 19050475914: cap 1: End par conjunction: 0x251c230 19050476040: cap 1: End par conjunct: 0x251c1d0 19050476179: cap 1: End par conjunction: 0x251c1d0 19050476305: cap 1: End par conjunct: 0x251c170 19050476436: cap 1: End par conjunction: 0x251c170 19050476557: cap 1: End par conjunct: 0x251c110 19050476692: cap 1: End par conjunction: 0x251c110 19050476823: cap 1: End par conjunct: 0x251c0b0 19050477061: cap 1: End par conjunction: 0x251c0b0 19050477187: cap 1: End par conjunct: 0x251c050 19050477313: cap 1: End par conjunction: 0x251c050 19050477444: cap 1: End par conjunct: 0x251bff0 19050477678: cap 1: End par conjunction: 0x251bff0 19050477808: cap 1: End par conjunct: 0x251bf90 19050477934: cap 1: End par conjunction: 0x251bf90 19050478069: cap 1: End par conjunct: 0x251bf30 19050478200: cap 1: End par conjunction: 0x251bf30 19050478326: cap 1: End par conjunct: 0x251bed0 19050478452: cap 1: End par conjunction: 0x251bed0 19050478582: cap 1: End par conjunct: 0x251be70 19050478713: cap 1: End par conjunction: 0x251be70 19050478843: cap 1: End par conjunct: 0x251be10 19050478969: cap 1: End par conjunction: 0x251be10 19050479095: cap 1: End par conjunct: 0x251bdb0 19050479230: cap 1: End par conjunction: 0x251bdb0 19050479361: cap 1: End par conjunct: 0x251bd50 19050479487: cap 1: End par conjunction: 0x251bd50 19050479622: cap 1: End par conjunct: 0x251bcf0 19050479748: cap 1: End par conjunction: 0x251bcf0 19050479878: cap 1: End par conjunct: 0x251bc90 19050480009: cap 1: End par conjunction: 0x251bc90 19050480144: cap 1: End par conjunct: 0x251bc30 19050480270: cap 1: End par conjunction: 0x251bc30 19050480396: cap 1: End par conjunct: 0x251bbd0 19050480531: cap 1: End par conjunction: 0x251bbd0 19050480657: cap 1: End par conjunct: 0x251bb70 19050480783: cap 1: End par conjunction: 0x251bb70 19050480909: cap 1: End par conjunct: 0x251bb10 19050481048: cap 1: End par conjunction: 0x251bb10 19050481174: cap 1: End par conjunct: 0x251bab0 19050481300: cap 1: End par conjunction: 0x251bab0 19050481426: cap 1: End par conjunct: 0x251ba50 19050481557: cap 1: End par conjunction: 0x251ba50 19050481687: cap 1: End par conjunct: 0x251b9f0 19050481813: cap 1: End par conjunction: 0x251b9f0 19050481944: cap 1: End par conjunct: 0x251b990 19050482065: cap 1: End par conjunction: 0x251b990 19050482196: cap 1: End par conjunct: 0x251b930 19050482326: cap 1: End par conjunction: 0x251b930 19050482452: cap 1: End par conjunct: 0x251b8d0 19050482578: cap 1: End par conjunction: 0x251b8d0 19050482709: cap 1: End par conjunct: 0x251b870 19050482844: cap 1: End par conjunction: 0x251b870 19050482974: cap 1: End par conjunct: 0x251b810 19050483100: cap 1: End par conjunction: 0x251b810 19050483226: cap 1: End par conjunct: 0x251b7b0 19050483357: cap 1: End par conjunction: 0x251b7b0 19050483487: cap 1: End par conjunct: 0x251b750 19050483618: cap 1: End par conjunction: 0x251b750 19050483748: cap 1: End par conjunct: 0x251b6f0 19050483874: cap 1: End par conjunction: 0x251b6f0 19050484005: cap 1: End par conjunct: 0x251b690 19050484135: cap 1: End par conjunction: 0x251b690 19050484311: cap 1: End par conjunct: 0x251b630 19050484441: cap 1: End par conjunction: 0x251b630 19050484567: cap 1: End par conjunct: 0x251b5d0 19050484702: cap 1: End par conjunction: 0x251b5d0 19050484869: cap 1: End par conjunct: 0x251b570 19050484999: cap 1: End par conjunction: 0x251b570 19050485166: cap 1: End par conjunct: 0x251b510 19050485301: cap 1: End par conjunction: 0x251b510 19050485467: cap 1: End par conjunct: 0x251b4b0 19050485593: cap 1: End par conjunction: 0x251b4b0 19050485724: cap 1: End par conjunct: 0x251b450 19050485854: cap 1: End par conjunction: 0x251b450 19050485989: cap 1: End par conjunct: 0x251b3f0 19050486115: cap 1: End par conjunction: 0x251b3f0 19050486246: cap 1: End par conjunct: 0x251b390 19050486372: cap 1: End par conjunction: 0x251b390 19050486507: cap 1: End par conjunct: 0x251b330 19050486637: cap 1: End par conjunction: 0x251b330 19050486768: cap 1: End par conjunct: 0x251b2d0 19050486894: cap 1: End par conjunction: 0x251b2d0 19050487029: cap 1: End par conjunct: 0x251b270 19050487159: cap 1: End par conjunction: 0x251b270 19050487294: cap 1: End par conjunct: 0x251b210 19050487420: cap 1: End par conjunction: 0x251b210 19050487551: cap 1: End par conjunct: 0x251b1b0 19050487686: cap 1: End par conjunction: 0x251b1b0 19050487816: cap 1: End par conjunct: 0x251b150 19050487947: cap 1: End par conjunction: 0x251b150 19050488082: cap 1: End par conjunct: 0x251b0f0 19050488208: cap 1: End par conjunction: 0x251b0f0 19050488338: cap 1: End par conjunct: 0x251b090 19050488469: cap 1: End par conjunction: 0x251b090 19050488604: cap 1: End par conjunct: 0x251b030 19050488725: cap 1: End par conjunction: 0x251b030 19050488856: cap 1: End par conjunct: 0x251afd0 19050489112: cap 1: End par conjunction: 0x251afd0 19050489355: cap 1: End par conjunct: 0x251af70 19050489598: cap 1: End par conjunction: 0x251af70 19050489724: cap 1: End par conjunct: 0x251af10 19050489859: cap 1: End par conjunction: 0x251af10 19050489985: cap 1: End par conjunct: 0x251aeb0 19050490111: cap 1: End par conjunction: 0x251aeb0 19050490237: cap 1: End par conjunct: 0x251ae50 19050490368: cap 1: End par conjunction: 0x251ae50 19050490494: cap 1: End par conjunct: 0x251adf0 19050490620: cap 1: End par conjunction: 0x251adf0 19050490750: cap 1: End par conjunct: 0x251ad90 19050490876: cap 1: End par conjunction: 0x251ad90 19050491007: cap 1: End par conjunct: 0x251ad30 19050491133: cap 1: End par conjunction: 0x251ad30 19050491263: cap 1: End par conjunct: 0x251acd0 19050491389: cap 1: End par conjunction: 0x251acd0 19050491520: cap 1: End par conjunct: 0x251ac70 19050491650: cap 1: End par conjunction: 0x251ac70 19050491781: cap 1: End par conjunct: 0x251ac10 19050491907: cap 1: End par conjunction: 0x251ac10 19050492033: cap 1: End par conjunct: 0x251abb0 19050492163: cap 1: End par conjunction: 0x251abb0 19050492298: cap 1: End par conjunct: 0x251ab50 19050492424: cap 1: End par conjunction: 0x251ab50 19050492559: cap 1: End par conjunct: 0x251aaf0 19050492685: cap 1: End par conjunction: 0x251aaf0 19050492820: cap 1: End par conjunct: 0x251aa90 19050492951: cap 1: End par conjunction: 0x251aa90 19050493086: cap 1: End par conjunct: 0x251aa30 19050493216: cap 1: End par conjunction: 0x251aa30 19050493342: cap 1: End par conjunct: 0x251a9d0 19050493477: cap 1: End par conjunction: 0x251a9d0 19050493608: cap 1: End par conjunct: 0x251a970 19050493734: cap 1: End par conjunction: 0x251a970 19050493864: cap 1: End par conjunct: 0x251a910 19050493999: cap 1: End par conjunction: 0x251a910 19050494130: cap 1: End par conjunct: 0x251a8b0 19050494256: cap 1: End par conjunction: 0x251a8b0 19050494382: cap 1: End par conjunct: 0x251a850 19050494512: cap 1: End par conjunction: 0x251a850 19050494643: cap 1: End par conjunct: 0x251a7f0 19050494769: cap 1: End par conjunction: 0x251a7f0 19050494899: cap 1: End par conjunct: 0x251a790 19050495025: cap 1: End par conjunction: 0x251a790 19050495151: cap 1: End par conjunct: 0x251a730 19050495282: cap 1: End par conjunction: 0x251a730 19050495412: cap 1: End par conjunct: 0x251a6d0 19050495538: cap 1: End par conjunction: 0x251a6d0 19050495664: cap 1: End par conjunct: 0x251a670 19050495795: cap 1: End par conjunction: 0x251a670 19050495925: cap 1: End par conjunct: 0x251a610 19050496051: cap 1: End par conjunction: 0x251a610 19050496182: cap 1: End par conjunct: 0x251a5b0 19050496317: cap 1: End par conjunction: 0x251a5b0 19050496452: cap 1: End par conjunct: 0x251a550 19050496578: cap 1: End par conjunction: 0x251a550 19050496713: cap 1: End par conjunct: 0x251a4f0 19050496839: cap 1: End par conjunction: 0x251a4f0 19050496974: cap 1: End par conjunct: 0x251a490 19050497100: cap 1: End par conjunction: 0x251a490 19050497235: cap 1: End par conjunct: 0x251a430 19050497361: cap 1: End par conjunction: 0x251a430 19050497491: cap 1: End par conjunct: 0x251a3d0 19050497626: cap 1: End par conjunction: 0x251a3d0 19050497752: cap 1: End par conjunct: 0x251a370 19050497883: cap 1: End par conjunction: 0x251a370 19050498009: cap 1: End par conjunct: 0x251a310 19050498144: cap 1: End par conjunction: 0x251a310 19050498319: cap 1: End par conjunct: 0x251a2b0 19050498441: cap 1: End par conjunction: 0x251a2b0 19050498571: cap 1: End par conjunct: 0x251a250 19050498697: cap 1: End par conjunction: 0x251a250 19050498832: cap 1: End par conjunct: 0x251a1f0 19050498958: cap 1: End par conjunction: 0x251a1f0 19050499089: cap 1: End par conjunct: 0x251a190 19050499210: cap 1: End par conjunction: 0x251a190 19050499345: cap 1: End par conjunct: 0x251a130 19050499471: cap 1: End par conjunction: 0x251a130 19050499602: cap 1: End par conjunct: 0x251a0d0 19050499728: cap 1: End par conjunction: 0x251a0d0 19050499863: cap 1: End par conjunct: 0x251a070 19050499993: cap 1: End par conjunction: 0x251a070 19050500124: cap 1: End par conjunct: 0x251a010 19050500245: cap 1: End par conjunction: 0x251a010 19050500493: cap 1: End par conjunct: 0x2519fb0 19050500740: cap 1: End par conjunction: 0x2519fb0 19050500871: cap 1: End par conjunct: 0x2519f50 19050501078: cap 1: End par conjunction: 0x2519f50 19050501213: cap 1: End par conjunct: 0x2519ef0 19050501334: cap 1: End par conjunction: 0x2519ef0 19050501469: cap 1: End par conjunct: 0x2519e90 19050501595: cap 1: End par conjunction: 0x2519e90 19050501735: cap 1: End par conjunct: 0x2519e30 19050501865: cap 1: End par conjunction: 0x2519e30 19050501991: cap 1: End par conjunct: 0x2519dd0 19050502126: cap 1: End par conjunction: 0x2519dd0 19050502257: cap 1: End par conjunct: 0x2519d70 19050502383: cap 1: End par conjunction: 0x2519d70 19050502513: cap 1: End par conjunct: 0x2519d10 19050502752: cap 1: End par conjunction: 0x2519d10 19050502882: cap 1: End par conjunct: 0x2519cb0 19050503008: cap 1: End par conjunction: 0x2519cb0 19050503134: cap 1: End par conjunct: 0x2519c50 19050503368: cap 1: End par conjunction: 0x2519c50 19050503503: cap 1: End par conjunct: 0x2519bf0 19050503629: cap 1: End par conjunction: 0x2519bf0 19050503760: cap 1: End par conjunct: 0x2519b90 19050503881: cap 1: End par conjunction: 0x2519b90 19050504007: cap 1: End par conjunct: 0x2519b30 19050504138: cap 1: End par conjunction: 0x2519b30 19050504268: cap 1: End par conjunct: 0x2519ad0 19050504390: cap 1: End par conjunction: 0x2519ad0 19050504520: cap 1: End par conjunct: 0x2519a70 19050504651: cap 1: End par conjunction: 0x2519a70 19050504781: cap 1: End par conjunct: 0x2519a10 19050504907: cap 1: End par conjunction: 0x2519a10 19050505033: cap 1: End par conjunct: 0x25199b0 19050505168: cap 1: End par conjunction: 0x25199b0 19050505299: cap 1: End par conjunct: 0x2519950 19050505429: cap 1: End par conjunction: 0x2519950 19050505560: cap 1: End par conjunct: 0x25198f0 19050505686: cap 1: End par conjunction: 0x25198f0 19050505816: cap 1: End par conjunct: 0x2519890 19050505947: cap 1: End par conjunction: 0x2519890 19050506082: cap 1: End par conjunct: 0x2519830 19050506208: cap 1: End par conjunction: 0x2519830 19050506338: cap 1: End par conjunct: 0x25197d0 19050506469: cap 1: End par conjunction: 0x25197d0 19050506599: cap 1: End par conjunct: 0x2519770 19050506725: cap 1: End par conjunction: 0x2519770 19050506851: cap 1: End par conjunct: 0x2519710 19050506986: cap 1: End par conjunction: 0x2519710 19050507117: cap 1: End par conjunct: 0x25196b0 19050507238: cap 1: End par conjunction: 0x25196b0 19050507369: cap 1: End par conjunct: 0x2519650 19050507495: cap 1: End par conjunction: 0x2519650 19050507625: cap 1: End par conjunct: 0x25195f0 19050507751: cap 1: End par conjunction: 0x25195f0 19050507882: cap 1: End par conjunct: 0x2519590 19050508003: cap 1: End par conjunction: 0x2519590 19050508134: cap 1: End par conjunct: 0x2519530 19050508264: cap 1: End par conjunction: 0x2519530 19050508390: cap 1: End par conjunct: 0x25194d0 19050508516: cap 1: End par conjunction: 0x25194d0 19050508647: cap 1: End par conjunct: 0x2519470 19050508782: cap 1: End par conjunction: 0x2519470 19050508908: cap 1: End par conjunct: 0x2519410 19050509034: cap 1: End par conjunction: 0x2519410 19050509169: cap 1: End par conjunct: 0x25193b0 19050509299: cap 1: End par conjunction: 0x25193b0 19050509434: cap 1: End par conjunct: 0x2519350 19050509560: cap 1: End par conjunction: 0x2519350 19050509704: cap 1: End par conjunct: 0x25192f0 19050509830: cap 1: End par conjunction: 0x25192f0 19050509961: cap 1: End par conjunct: 0x2519290 19050510091: cap 1: End par conjunction: 0x2519290 19050510226: cap 1: End par conjunct: 0x2519230 19050510352: cap 1: End par conjunction: 0x2519230 19050510478: cap 1: End par conjunct: 0x25191d0 19050510613: cap 1: End par conjunction: 0x25191d0 19050510739: cap 1: End par conjunct: 0x2519170 19050510870: cap 1: End par conjunction: 0x2519170 19050510996: cap 1: End par conjunct: 0x2519110 19050511131: cap 1: End par conjunction: 0x2519110 19050511261: cap 1: End par conjunct: 0x25190b0 19050511495: cap 1: End par conjunction: 0x25190b0 19050511626: cap 1: End par conjunct: 0x2519050 19050511747: cap 1: End par conjunction: 0x2519050 19050511878: cap 1: End par conjunct: 0x2518ff0 19050512121: cap 1: End par conjunction: 0x2518ff0 19050512251: cap 1: End par conjunct: 0x2518f90 19050512382: cap 1: End par conjunction: 0x2518f90 19050512526: cap 1: End par conjunct: 0x2518f30 19050512652: cap 1: End par conjunction: 0x2518f30 19050517093: cap 1: End par conjunct: 0x2518ed0 19050517215: cap 1: End par conjunction: 0x2518ed0 19050517345: cap 1: End par conjunct: 0x2518e70 19050517485: cap 1: End par conjunction: 0x2518e70 19050517615: cap 1: End par conjunct: 0x2518e10 19050517741: cap 1: End par conjunction: 0x2518e10 19050517867: cap 1: End par conjunct: 0x2518db0 19050518002: cap 1: End par conjunction: 0x2518db0 19050518133: cap 1: End par conjunct: 0x2518d50 19050518259: cap 1: End par conjunction: 0x2518d50 19050518394: cap 1: End par conjunct: 0x2518cf0 19050518520: cap 1: End par conjunction: 0x2518cf0 19050518650: cap 1: End par conjunct: 0x2518c90 19050518781: cap 1: End par conjunction: 0x2518c90 19050518911: cap 1: End par conjunct: 0x2518c30 19050519037: cap 1: End par conjunction: 0x2518c30 19050519163: cap 1: End par conjunct: 0x2518bd0 19050519298: cap 1: End par conjunction: 0x2518bd0 19050519429: cap 1: End par conjunct: 0x2518b70 19050519559: cap 1: End par conjunction: 0x2518b70 19050519681: cap 1: End par conjunct: 0x2518b10 19050519816: cap 1: End par conjunction: 0x2518b10 19050519942: cap 1: End par conjunct: 0x2518ab0 19050520068: cap 1: End par conjunction: 0x2518ab0 19050520194: cap 1: End par conjunct: 0x2518a50 19050520324: cap 1: End par conjunction: 0x2518a50 19050520455: cap 1: End par conjunct: 0x25189f0 19050520581: cap 1: End par conjunction: 0x25189f0 19050520711: cap 1: End par conjunct: 0x2518990 19050520837: cap 1: End par conjunction: 0x2518990 19050520963: cap 1: End par conjunct: 0x2518930 19050521089: cap 1: End par conjunction: 0x2518930 19050521220: cap 1: End par conjunct: 0x25188d0 19050521341: cap 1: End par conjunction: 0x25188d0 19050521472: cap 1: End par conjunct: 0x2518870 19050521607: cap 1: End par conjunction: 0x2518870 19050521737: cap 1: End par conjunct: 0x2518810 19050521863: cap 1: End par conjunction: 0x2518810 19050521989: cap 1: End par conjunct: 0x25187b0 19050522124: cap 1: End par conjunction: 0x25187b0 19050522255: cap 1: End par conjunct: 0x2518750 19050522381: cap 1: End par conjunction: 0x2518750 19050522516: cap 1: End par conjunct: 0x25186f0 19050522642: cap 1: End par conjunction: 0x25186f0 19050522772: cap 1: End par conjunct: 0x2518690 19050522903: cap 1: End par conjunction: 0x2518690 19050523038: cap 1: End par conjunct: 0x2518630 19050523164: cap 1: End par conjunction: 0x2518630 19050523290: cap 1: End par conjunct: 0x25185d0 19050523429: cap 1: End par conjunction: 0x25185d0 19050523555: cap 1: End par conjunct: 0x2518570 19050523686: cap 1: End par conjunction: 0x2518570 19050523812: cap 1: End par conjunct: 0x2518510 19050523947: cap 1: End par conjunction: 0x2518510 19050524073: cap 1: End par conjunct: 0x25184b0 19050524199: cap 1: End par conjunction: 0x25184b0 19050524325: cap 1: End par conjunct: 0x2518450 19050524455: cap 1: End par conjunction: 0x2518450 19050524586: cap 1: End par conjunct: 0x25183f0 19050524712: cap 1: End par conjunction: 0x25183f0 19050524842: cap 1: End par conjunct: 0x2518390 19050524968: cap 1: End par conjunction: 0x2518390 19050525094: cap 1: End par conjunct: 0x2518330 19050525220: cap 1: End par conjunction: 0x2518330 19050525346: cap 1: End par conjunct: 0x25182d0 19050525472: cap 1: End par conjunction: 0x25182d0 19050525603: cap 1: End par conjunct: 0x2518270 19050525733: cap 1: End par conjunction: 0x2518270 19050525868: cap 1: End par conjunct: 0x2518210 19050525994: cap 1: End par conjunction: 0x2518210 19050526120: cap 1: End par conjunct: 0x25181b0 19050526255: cap 1: End par conjunction: 0x25181b0 19050526381: cap 1: End par conjunct: 0x2518150 19050526512: cap 1: End par conjunction: 0x2518150 19050526647: cap 1: End par conjunct: 0x25180f0 19050526773: cap 1: End par conjunction: 0x25180f0 19050526899: cap 1: End par conjunct: 0x2518090 19050527029: cap 1: End par conjunction: 0x2518090 19050527164: cap 1: End par conjunct: 0x2518030 19050527281: cap 1: End par conjunction: 0x2518030 19050527407: cap 1: End par conjunct: 0x2517fd0 19050527682: cap 1: End par conjunction: 0x2517fd0 19050527925: cap 1: End par conjunct: 0x2517f70 19050528172: cap 1: End par conjunction: 0x2517f70 19050528298: cap 1: End par conjunct: 0x2517f10 19050528433: cap 1: End par conjunction: 0x2517f10 19050528564: cap 1: End par conjunct: 0x2517eb0 19050528690: cap 1: End par conjunction: 0x2517eb0 19050528816: cap 1: End par conjunct: 0x2517e50 19050528942: cap 1: End par conjunction: 0x2517e50 19050529077: cap 1: End par conjunct: 0x2517df0 19050529203: cap 1: End par conjunction: 0x2517df0 19050529333: cap 1: End par conjunct: 0x2517d90 19050529459: cap 1: End par conjunction: 0x2517d90 19050529590: cap 1: End par conjunct: 0x2517d30 19050529720: cap 1: End par conjunction: 0x2517d30 19050529846: cap 1: End par conjunct: 0x2517cd0 19050529972: cap 1: End par conjunction: 0x2517cd0 19050530103: cap 1: End par conjunct: 0x2517c70 19050530238: cap 1: End par conjunction: 0x2517c70 19050530373: cap 1: End par conjunct: 0x2517c10 19050530494: cap 1: End par conjunction: 0x2517c10 19050530625: cap 1: End par conjunct: 0x2517bb0 19050530755: cap 1: End par conjunction: 0x2517bb0 19050530886: cap 1: End par conjunct: 0x2517b50 19050531016: cap 1: End par conjunction: 0x2517b50 19050531147: cap 1: End par conjunct: 0x2517af0 19050531273: cap 1: End par conjunction: 0x2517af0 19050531403: cap 1: End par conjunct: 0x2517a90 19050531534: cap 1: End par conjunction: 0x2517a90 19050531669: cap 1: End par conjunct: 0x2517a30 19050531795: cap 1: End par conjunction: 0x2517a30 19050531921: cap 1: End par conjunct: 0x25179d0 19050532060: cap 1: End par conjunction: 0x25179d0 19050532186: cap 1: End par conjunct: 0x2517970 19050532317: cap 1: End par conjunction: 0x2517970 19050532443: cap 1: End par conjunct: 0x2517910 19050532578: cap 1: End par conjunction: 0x2517910 19050532704: cap 1: End par conjunct: 0x25178b0 19050532830: cap 1: End par conjunction: 0x25178b0 19050532956: cap 1: End par conjunct: 0x2517850 19050533086: cap 1: End par conjunction: 0x2517850 19050533221: cap 1: End par conjunct: 0x25177f0 19050533343: cap 1: End par conjunction: 0x25177f0 19050533473: cap 1: End par conjunct: 0x2517790 19050533599: cap 1: End par conjunction: 0x2517790 19050533730: cap 1: End par conjunct: 0x2517730 19050533860: cap 1: End par conjunction: 0x2517730 19050533991: cap 1: End par conjunct: 0x25176d0 19050534117: cap 1: End par conjunction: 0x25176d0 19050534247: cap 1: End par conjunct: 0x2517670 19050534378: cap 1: End par conjunction: 0x2517670 19050534513: cap 1: End par conjunct: 0x2517610 19050534634: cap 1: End par conjunction: 0x2517610 19050534765: cap 1: End par conjunct: 0x25175b0 19050534900: cap 1: End par conjunction: 0x25175b0 19050535030: cap 1: End par conjunct: 0x2517550 19050535156: cap 1: End par conjunction: 0x2517550 19050535291: cap 1: End par conjunct: 0x25174f0 19050535417: cap 1: End par conjunction: 0x25174f0 19050535548: cap 1: End par conjunct: 0x2517490 19050535678: cap 1: End par conjunction: 0x2517490 19050535809: cap 1: End par conjunct: 0x2517430 19050535939: cap 1: End par conjunction: 0x2517430 19050536065: cap 1: End par conjunct: 0x25173d0 19050536200: cap 1: End par conjunction: 0x25173d0 19050536326: cap 1: End par conjunct: 0x2517370 19050536457: cap 1: End par conjunction: 0x2517370 19050536583: cap 1: End par conjunct: 0x2517310 19050536722: cap 1: End par conjunction: 0x2517310 19050536848: cap 1: End par conjunct: 0x25172b0 19050536974: cap 1: End par conjunction: 0x25172b0 19050537100: cap 1: End par conjunct: 0x2517250 19050537343: cap 1: End par conjunction: 0x2517250 19050537474: cap 1: End par conjunct: 0x25171f0 19050537600: cap 1: End par conjunction: 0x25171f0 19050537843: cap 1: End par conjunct: 0x2517190 19050537969: cap 1: End par conjunction: 0x2517190 19050538104: cap 1: End par conjunct: 0x2517130 19050538234: cap 1: End par conjunction: 0x2517130 19050538360: cap 1: End par conjunct: 0x25170d0 19050538486: cap 1: End par conjunction: 0x25170d0 19050538621: cap 1: End par conjunct: 0x2517070 19050538752: cap 1: End par conjunction: 0x2517070 19050538882: cap 1: End par conjunct: 0x2517010 19050539004: cap 1: End par conjunction: 0x2517010 19050539247: cap 1: End par conjunct: 0x2516fb0 19050539521: cap 1: End par conjunction: 0x2516fb0 19050539652: cap 1: End par conjunct: 0x2516f50 19050539859: cap 1: End par conjunction: 0x2516f50 19050539994: cap 1: End par conjunct: 0x2516ef0 19050540120: cap 1: End par conjunction: 0x2516ef0 19050540250: cap 1: End par conjunct: 0x2516e90 19050540381: cap 1: End par conjunction: 0x2516e90 19050540511: cap 1: End par conjunct: 0x2516e30 19050540642: cap 1: End par conjunction: 0x2516e30 19050540768: cap 1: End par conjunct: 0x2516dd0 19050540903: cap 1: End par conjunction: 0x2516dd0 19050541029: cap 1: End par conjunct: 0x2516d70 19050541159: cap 1: End par conjunction: 0x2516d70 19050541285: cap 1: End par conjunct: 0x2516d10 19050541420: cap 1: End par conjunction: 0x2516d10 19050541546: cap 1: End par conjunct: 0x2516cb0 19050541672: cap 1: End par conjunction: 0x2516cb0 19050541798: cap 1: End par conjunct: 0x2516c50 19050541929: cap 1: End par conjunction: 0x2516c50 19050542059: cap 1: End par conjunct: 0x2516bf0 19050542185: cap 1: End par conjunction: 0x2516bf0 19050542316: cap 1: End par conjunct: 0x2516b90 19050542442: cap 1: End par conjunction: 0x2516b90 19050542572: cap 1: End par conjunct: 0x2516b30 19050542703: cap 1: End par conjunction: 0x2516b30 19050542829: cap 1: End par conjunct: 0x2516ad0 19050542955: cap 1: End par conjunction: 0x2516ad0 19050543085: cap 1: End par conjunct: 0x2516a70 19050543216: cap 1: End par conjunction: 0x2516a70 19050543351: cap 1: End par conjunct: 0x2516a10 19050543472: cap 1: End par conjunction: 0x2516a10 19050543603: cap 1: End par conjunct: 0x25169b0 19050543738: cap 1: End par conjunction: 0x25169b0 19050543868: cap 1: End par conjunct: 0x2516950 19050543994: cap 1: End par conjunction: 0x2516950 19050544129: cap 1: End par conjunct: 0x25168f0 19050544251: cap 1: End par conjunction: 0x25168f0 19050544386: cap 1: End par conjunct: 0x2516890 19050544516: cap 1: End par conjunction: 0x2516890 19050544647: cap 1: End par conjunct: 0x2516830 19050544777: cap 1: End par conjunction: 0x2516830 19050544903: cap 1: End par conjunct: 0x25167d0 19050545038: cap 1: End par conjunction: 0x25167d0 19050545164: cap 1: End par conjunct: 0x2516770 19050545295: cap 1: End par conjunction: 0x2516770 19050545421: cap 1: End par conjunct: 0x2516710 19050545556: cap 1: End par conjunction: 0x2516710 19050545686: cap 1: End par conjunct: 0x25166b0 19050545812: cap 1: End par conjunction: 0x25166b0 19050545938: cap 1: End par conjunct: 0x2516650 19050546069: cap 1: End par conjunction: 0x2516650 19050546199: cap 1: End par conjunct: 0x25165f0 19050546321: cap 1: End par conjunction: 0x25165f0 19050546451: cap 1: End par conjunct: 0x2516590 19050546577: cap 1: End par conjunction: 0x2516590 19050546708: cap 1: End par conjunct: 0x2516530 19050546838: cap 1: End par conjunction: 0x2516530 19050546969: cap 1: End par conjunct: 0x25164d0 19050547090: cap 1: End par conjunction: 0x25164d0 19050547221: cap 1: End par conjunct: 0x2516470 19050547356: cap 1: End par conjunction: 0x2516470 19050547486: cap 1: End par conjunct: 0x2516410 19050547612: cap 1: End par conjunction: 0x2516410 19050547738: cap 1: End par conjunct: 0x25163b0 19050547873: cap 1: End par conjunction: 0x25163b0 19050548004: cap 1: End par conjunct: 0x2516350 19050548130: cap 1: End par conjunction: 0x2516350 19050548265: cap 1: End par conjunct: 0x25162f0 19050548391: cap 1: End par conjunction: 0x25162f0 19050548521: cap 1: End par conjunct: 0x2516290 19050548652: cap 1: End par conjunction: 0x2516290 19050548787: cap 1: End par conjunct: 0x2516230 19050548917: cap 1: End par conjunction: 0x2516230 19050549043: cap 1: End par conjunct: 0x25161d0 19050549178: cap 1: End par conjunction: 0x25161d0 19050549313: cap 1: End par conjunct: 0x2516170 19050549439: cap 1: End par conjunction: 0x2516170 19050549570: cap 1: End par conjunct: 0x2516110 19050549705: cap 1: End par conjunction: 0x2516110 19050549840: cap 1: End par conjunct: 0x25160b0 19050550074: cap 1: End par conjunction: 0x25160b0 19050550200: cap 1: End par conjunct: 0x2516050 19050550326: cap 1: End par conjunction: 0x2516050 19050550461: cap 1: End par conjunct: 0x2515ff0 19050550699: cap 1: End par conjunction: 0x2515ff0 19050550830: cap 1: End par conjunct: 0x2515f90 19050550956: cap 1: End par conjunction: 0x2515f90 19050551095: cap 1: End par conjunct: 0x2515f30 19050551226: cap 1: End par conjunction: 0x2515f30 19050551352: cap 1: End par conjunct: 0x2515ed0 19050551478: cap 1: End par conjunction: 0x2515ed0 19050551613: cap 1: End par conjunct: 0x2515e70 19050551743: cap 1: End par conjunction: 0x2515e70 19050551874: cap 1: End par conjunct: 0x2515e10 19050552000: cap 1: End par conjunction: 0x2515e10 19050552135: cap 1: End par conjunct: 0x2515db0 19050552270: cap 1: End par conjunction: 0x2515db0 19050552400: cap 1: End par conjunct: 0x2515d50 19050552526: cap 1: End par conjunction: 0x2515d50 19050552661: cap 1: End par conjunct: 0x2515cf0 19050552787: cap 1: End par conjunction: 0x2515cf0 19050552918: cap 1: End par conjunct: 0x2515c90 19050553048: cap 1: End par conjunction: 0x2515c90 19050553192: cap 1: End par conjunct: 0x2515c30 19050553323: cap 1: End par conjunction: 0x2515c30 19050553449: cap 1: End par conjunct: 0x2515bd0 19050553584: cap 1: End par conjunction: 0x2515bd0 19050553710: cap 1: End par conjunct: 0x2515b70 19050553840: cap 1: End par conjunction: 0x2515b70 19050553966: cap 1: End par conjunct: 0x2515b10 19050554106: cap 1: End par conjunction: 0x2515b10 19050554232: cap 1: End par conjunct: 0x2515ab0 19050554358: cap 1: End par conjunction: 0x2515ab0 19050554484: cap 1: End par conjunct: 0x2515a50 19050554610: cap 1: End par conjunction: 0x2515a50 19050554745: cap 1: End par conjunct: 0x25159f0 19050554866: cap 1: End par conjunction: 0x25159f0 19050554997: cap 1: End par conjunct: 0x2515990 19050555123: cap 1: End par conjunction: 0x2515990 19050555253: cap 1: End par conjunct: 0x2515930 19050555384: cap 1: End par conjunction: 0x2515930 19050555510: cap 1: End par conjunct: 0x25158d0 19050555636: cap 1: End par conjunction: 0x25158d0 19050555762: cap 1: End par conjunct: 0x2515870 19050555897: cap 1: End par conjunction: 0x2515870 19050556027: cap 1: End par conjunct: 0x2515810 19050556153: cap 1: End par conjunction: 0x2515810 19050556284: cap 1: End par conjunct: 0x25157b0 19050556414: cap 1: End par conjunction: 0x25157b0 19050556545: cap 1: End par conjunct: 0x2515750 19050556671: cap 1: End par conjunction: 0x2515750 19050556806: cap 1: End par conjunct: 0x25156f0 19050556932: cap 1: End par conjunction: 0x25156f0 19050557062: cap 1: End par conjunct: 0x2515690 19050557193: cap 1: End par conjunction: 0x2515690 19050557332: cap 1: End par conjunct: 0x2515630 19050557458: cap 1: End par conjunction: 0x2515630 19050557584: cap 1: End par conjunct: 0x25155d0 19050557719: cap 1: End par conjunction: 0x25155d0 19050557886: cap 1: End par conjunct: 0x2515570 19050558016: cap 1: End par conjunction: 0x2515570 19050558183: cap 1: End par conjunct: 0x2515510 19050558318: cap 1: End par conjunction: 0x2515510 19050558489: cap 1: End par conjunct: 0x25154b0 19050558615: cap 1: End par conjunction: 0x25154b0 19050558745: cap 1: End par conjunct: 0x2515450 19050558876: cap 1: End par conjunction: 0x2515450 19050559011: cap 1: End par conjunct: 0x25153f0 19050559137: cap 1: End par conjunction: 0x25153f0 19050559267: cap 1: End par conjunct: 0x2515390 19050559393: cap 1: End par conjunction: 0x2515390 19050559524: cap 1: End par conjunct: 0x2515330 19050559650: cap 1: End par conjunction: 0x2515330 19050559785: cap 1: End par conjunct: 0x25152d0 19050559911: cap 1: End par conjunction: 0x25152d0 19050560041: cap 1: End par conjunct: 0x2515270 19050560176: cap 1: End par conjunction: 0x2515270 19050560307: cap 1: End par conjunct: 0x2515210 19050560433: cap 1: End par conjunction: 0x2515210 19050560563: cap 1: End par conjunct: 0x25151b0 19050560698: cap 1: End par conjunction: 0x25151b0 19050560829: cap 1: End par conjunct: 0x2515150 19050560959: cap 1: End par conjunction: 0x2515150 19242613692: cap 1: stopping thread 1 (thread yielding) 19242620163: cap 1: thread 1 is runnable 19242629086: cap 1: Looking for global thread to resume 19242629793: cap 1: Trying to steal a spark 19242642051: cap 0: running thread 1 19242646272: cap 0: stopping thread 1 (thread finished) 19242695434: cap 2: Releasing thread 2 to the free pool 19242695605: removed cap 1 from capset 0 19242696145: cap 1: shutting down 19242697063: removed cap 2 from capset 0 19242697405: cap 2: shutting down 19242699354: cap 3: Releasing thread 3 to the free pool 19242701365: removed cap 3 from capset 0 19242701919: cap 3: shutting down 19242931954: removed cap 0 from capset 0 19242932310: cap 0: shutting down 19243048770: deleted capset 0 ghc-events-0.6.0/test/parallelTest.eventlog0000644000000000000000000002453612752267050017146 0ustar0000000000000000hdrbhetbetb Create threadeteetb Run threadeteetb Stop threadeteetbThread runnableeteetbMigrate threadeteetb Wakeup threadeteetb Starting GCeteetb Finished GCeteetb Request sequential GCeteetb Request parallel GCeteetbCreate spark threadeteetb Log messageeteetbCreate capabilitieseteetb Block markereteetb User messageeteetbGC idleeteetb GC workingeteetbGC doneeteetbVersioneteetbProgram invocationeteetbCreate capability seteteetbDelete capability seteteetb Add capability to capability seteteetb%Remove capability from capability seteteetbRTS name and versioneteetbProgram argumentseteetbProgram environment variableseteetb  Process IDeteetb!Parent process IDeteetb"8Spark counterseteetb# Spark createeteetb$ Spark dudeteetb%Spark overfloweteetb& Spark runeteetb' Spark stealeteetb( Spark fizzleeteetb)Spark GCeteetb+Wall clock timeeteetb, Thread labeleteetb-Create capabilityeteetb.Delete capabilityeteetb/Disable capabilityeteetb0Enable capabilityeteetb1 Total heap mem ever allocatedeteetb2 Current heap sizeeteetb3 Current heap live dataeteetb4&Heap static parameterseteetb52 GC statisticseteetb6Synchronise stop-the-world GCeteetb7 Task createeteetb8 Task migrateeteetb9 Task deleteeteetb: User markereteetb;Empty event for bug #9003eteetb<Starting message receivaleteetb=Finished message receivaleteetb>Creating Processeteetb?Killing Processeteetb@Assigning thread to processeteetbA Creating machineeteetbBKilling machineeteetbCSending messageeteetbDReceiving messageeteetbESending/Receiving local messageetehetehdredatb= e= f6= i+5= i = k1= kp'2= k= wL= = w=='=((=)Z=)6=/5=/0X =11=2-/X2=2=D= =?==d=_=%=H6=5=9X =11=#7X2=x=+='M ='\='g='y='z='{='{6='|5='Sh ='1='?X2='[='=/Y =/\=/_=/i =/i;=/i=/i6=/ly5=/lh =/n1=/oGX2=/o_=/wI=5=5=7d =7h=7l=7u=7uS=7u=7v6=7x5=7y8H =7zx1=7zOX2=7{"=7=Bn. =B=B==B=B=B=B6=B5=B8 =B1=BžW@2=B=B=K =K&=K,V=K:=K:P=K:=K;!6=K>5=K? =K@1=KA*_@2=KB$<=KcD=KcU=K@=K7==KJ=K=S9  =S>=SB=SR\=SR=SSj=SS6=SW5=SW8p =SYJ1=SYg2=SZ=Sbu=[o =[=[=[ =[a=[-=[P6=[5=[PP =[1=[o2=[.=[B=c =ce=c=c=c=c^=c6=c+5=cqP =c1=cw2=cF=c=k] =ka?=kd=ko=kp=kp=kp6=ks~5=ksH =ku1=ku_2=ku=k~=s2 =s6=s9=sC=sC=sDf=sD6=sG5=sG`0H =sH1=sH2=sI=sQS={  ={ 4={={={G={={6={m5={ ={1={2={a={%>=# =ݑ=u=h==?=b6=5=% =@1=2===k === =F==6=5= =1=02={==y\ =|===;==6=5=hh =1=2=f=Y=[ =`:=c=k8=kw=l =l-6=o5=o =p1=q"2=ql=y=-Z =1=3=;=;P=;=;6=>N5=> =?1=?2=@=G= =(== T= = = <6= 5=  = 1=K2==R==?=Ea@P<= ==<=D=W=====+<=cS==d =l=s=ʅ=ʆH=ʆ=ʇ6=ʊ5=ʋp =ʌ1=ʍ2=ʎ\=ʖ=ʦ=ʧ1=P<"%X>=KC=XC=W?==v*newInport (2,2), blackhole 0x7f31e7e20000 =zconnectTSO 2 to inport (1,1,7) C=x@W=connectTSO 2 to inport (1,1,6) C=VC=PXC=&7W?=4M9=ʐ/P7=ʔL/P9=ʨG/P==.=:==B=ghc-events-0.6.0/test/parallelTest.eventlog.reference0000644000000000000000000005742413113376567021113 0ustar0000000000000000Event Types: 0: Create thread (size 4) 1: Run thread (size 4) 2: Stop thread (size 10) 3: Thread runnable (size 4) 4: Migrate thread (size 6) 8: Wakeup thread (size 6) 9: Starting GC (size 0) 10: Finished GC (size 0) 11: Request sequential GC (size 0) 12: Request parallel GC (size 0) 15: Create spark thread (size 4) 16: Log message (size variable) 17: Create capabilities (size 2) 18: Block marker (size 14) 19: User message (size variable) 20: GC idle (size 0) 21: GC working (size 0) 22: GC done (size 0) 23: Version (size variable) 24: Program invocation (size variable) 25: Create capability set (size 6) 26: Delete capability set (size 4) 27: Add capability to capability set (size 6) 28: Remove capability from capability set (size 6) 29: RTS name and version (size variable) 30: Program arguments (size variable) 31: Program environment variables (size variable) 32: Process ID (size 8) 33: Parent process ID (size 8) 34: Spark counters (size 56) 35: Spark create (size 0) 36: Spark dud (size 0) 37: Spark overflow (size 0) 38: Spark run (size 0) 39: Spark steal (size 2) 40: Spark fizzle (size 0) 41: Spark GC (size 0) 43: Wall clock time (size 16) 44: Thread label (size variable) 45: Create capability (size 2) 46: Delete capability (size 2) 47: Disable capability (size 2) 48: Enable capability (size 2) 49: Total heap mem ever allocated (size 12) 50: Current heap size (size 12) 51: Current heap live data (size 12) 52: Heap static parameters (size 38) 53: GC statistics (size 50) 54: Synchronise stop-the-world GC (size 0) 55: Task create (size 18) 56: Task migrate (size 12) 57: Task delete (size 8) 58: User marker (size variable) 59: Empty event for bug #9003 (size 0) 60: Starting message receival (size 0) 61: Finished message receival (size 0) 62: Creating Process (size 4) 63: Killing Process (size 4) 64: Assigning thread to process (size 8) 65: Creating machine (size 10) 66: Killing machine (size 2) 67: Sending message (size 19) 68: Receiving message (size 23) 69: Sending/Receiving local message (size 17) Events: 965: creating machine 2 at 143714457434916300 1016690453: startup: 1 capabilities 1016695409: compiler version is 7.10.20150612 1016698802: program invocation: /opt/Eden/test/./jost=ChainDep 2 3 +RTS -l -RTS 1016705678: created capset 0 of type CapsetOsProcess 1016705969: created capset 1 of type CapsetClockDomain 1016707377: created cap 0 1016707532: assigned cap 0 to capset 0 1016707657: assigned cap 0 to capset 1 1016711376: capset 1: wall clock time 1437144575s 365872000ns (unix epoch) 1016714262: capset 0: pid 5847 1016717224: capset 0: parent pid 5845 1016723343: capset 0: RTS version "GHC-7.10.20150612 rts_l_pm" 1016724280: capset 0: args: ["/opt/Eden/test/./jost=ChainDep","3","+RTS","-l","-RTS"] 1016728194: capset 0: env: ["OMPI_MCA_orte_precondition_transports=4d4d233a0e00747c-c08b0d7505a2985d","PVM_RSH=/usr/bin/ssh","LS_COLORS=","PVM_ROOT=/usr/lib/pvm3","PVM_ARCH=LINUX64","PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/.cabal/bin","_=./ChainDep","PWD=/opt/Eden/test","SHLVL=1","PVM_EXPORT=DISPLAY","LESSOPEN=| /usr/bin/lesspipe %s","LESSCLOSE=/usr/bin/lesspipe %s %s","OMPI_MCA_orte_local_daemon_uri=1755316224.0;tcp://192.168.1.15:60361","OMPI_MCA_orte_hnp_uri=1755316224.0;tcp://192.168.1.15:60361","OMPI_MCA_mpi_yield_when_idle=0","OMPI_MCA_orte_app_num=0","OMPI_UNIVERSE_SIZE=1","OMPI_MCA_ess=env","OMPI_MCA_orte_ess_num_procs=2","OMPI_COMM_WORLD_SIZE=2","OMPI_COMM_WORLD_LOCAL_SIZE=2","OMPI_MCA_orte_ess_jobid=1755316225","OMPI_MCA_orte_ess_vpid=1","OMPI_COMM_WORLD_RANK=1","OMPI_COMM_WORLD_LOCAL_RANK=1","OMPI_MCA_opal_cr_is_tool=0","OPAL_OUTPUT_STDERR_FD=22"] 1016844227: heap stats for heap capset 0: generations 2, 0 bytes max heap size, 524288 bytes alloc area size, 1048576 bytes mblock size, 4096 bytes block size 1016949065: task 0x1c42f50 created on cap 0 with OS kernel thread 5847 1020647546: cap 0: starting to receive 1020647784: cap 0: receiving message with tag RFork at process 0, inport 0 from machine 1, process 1, thread 0 with size 19 1020663383: cap 0: creating thread 1 1020666580: creating process 1 1020666681: cap 0: assigning thread 1 to process 1 1020669258: cap 0: stop receiving 1020670948: cap 0: running thread 1 1020683435: newInport (1,1), blackhole 0x7f31e7e05480 1020684432: connectTSO 1 to inport (1,1,2) 1020708793: sending message with tag DataMes from process 1, thread 1 to machine 1, process 1 on inport 2 1020710401: connectTSO 1 to inport (1,1,1) 1020962248: sending message with tag Connect from process 1, thread 1 to machine 1, process 1 on inport 1 1020975009: cap 0: stopping thread 1 (blocked on black hole owned by thread 23150672) 1020993377: cap 0: starting to receive 1020994887: cap 0: stop receiving 1021163829: cap 0: starting to receive 1021172134: cap 0: receiving message with tag Head at process 1, inport 1 from machine 1, process 1, thread 2 with size 3 1021172996: cap 0: waking up thread 1 on cap 0 1021174214: cap 0: stop receiving 1021174870: cap 0: running thread 1 1022012154: cap 0: stopping thread 1 (heap overflow) 1022025732: cap 0: starting GC 1022030836: cap 0: GC working 1022048807: cap 0: GC idle 1022049006: cap 0: GC done 1022049708: cap 0: GC idle 1022049746: cap 0: GC done 1022052664: cap 0: all caps stopped for GC 1022052988: cap 0: GC stats for heap capset 0: generation 0, 1480 bytes copied, 6712 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1022053665: cap 0: finished GC 1022054054: cap 0: allocated on heap capset 0: 521488 total bytes till now 1022054251: cap 0: size of heap capset 0: 1048576 bytes 1022066437: cap 0: running thread 1 1022575820: cap 0: stopping thread 1 (heap overflow) 1022576987: cap 0: starting GC 1022578110: cap 0: GC working 1022586192: cap 0: GC idle 1022586253: cap 0: GC done 1022586485: cap 0: GC idle 1022586523: cap 0: GC done 1022587366: cap 0: all caps stopped for GC 1022587476: cap 0: GC stats for heap capset 0: generation 0, 1456 bytes copied, 6744 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1022587977: cap 0: finished GC 1022588072: cap 0: allocated on heap capset 0: 1045776 total bytes till now 1022588192: cap 0: size of heap capset 0: 1048576 bytes 1022595448: cap 0: starting to receive 1022602936: cap 0: receiving message with tag Head at process 1, inport 1 from machine 1, process 1, thread 2 with size 3 1022609437: cap 0: receiving message with tag Head at process 1, inport 1 from machine 1, process 1, thread 2 with size 3 1022613717: cap 0: receiving message with tag DataMes at process 1, inport 1 from machine 1, process 1, thread 2 with size 2 1022614602: cap 0: stop receiving 1022614857: cap 0: running thread 1 1023116425: cap 0: stopping thread 1 (heap overflow) 1023117800: cap 0: starting GC 1023118851: cap 0: GC working 1023124706: cap 0: GC idle 1023124774: cap 0: GC done 1023125008: cap 0: GC idle 1023125046: cap 0: GC done 1023125927: cap 0: all caps stopped for GC 1023126023: cap 0: GC stats for heap capset 0: generation 0, 472 bytes copied, 6600 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1023126483: cap 0: finished GC 1023126593: cap 0: allocated on heap capset 0: 1566080 total bytes till now 1023126699: cap 0: size of heap capset 0: 1048576 bytes 1023128987: cap 0: running thread 1 1023633921: cap 0: stopping thread 1 (heap overflow) 1023634943: cap 0: starting GC 1023635776: cap 0: GC working 1023637901: cap 0: GC idle 1023637951: cap 0: GC done 1023638120: cap 0: GC idle 1023638155: cap 0: GC done 1023638882: cap 0: all caps stopped for GC 1023638997: cap 0: GC stats for heap capset 0: generation 0, 280 bytes copied, 6520 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1023639342: cap 0: finished GC 1023639418: cap 0: allocated on heap capset 0: 2090368 total bytes till now 1023639494: cap 0: size of heap capset 0: 1048576 bytes 1023641473: cap 0: running thread 1 1024152336: cap 0: stopping thread 1 (heap overflow) 1024153886: cap 0: starting GC 1024154864: cap 0: GC working 1024156939: cap 0: GC idle 1024156990: cap 0: GC done 1024157152: cap 0: GC idle 1024157190: cap 0: GC done 1024157995: cap 0: all caps stopped for GC 1024158092: cap 0: GC stats for heap capset 0: generation 0, 136 bytes copied, 6664 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1024158481: cap 0: finished GC 1024158576: cap 0: allocated on heap capset 0: 2614656 total bytes till now 1024158663: cap 0: size of heap capset 0: 1048576 bytes 1024161612: cap 0: running thread 1 1024464591: sending message with tag Head from process 1, thread 1 to machine 1, process 1 on inport 1 1024852218: cap 0: stopping thread 1 (heap overflow) 1024854903: cap 0: starting GC 1024857481: cap 0: GC working 1024862179: cap 0: GC idle 1024862248: cap 0: GC done 1024862554: cap 0: GC idle 1024862592: cap 0: GC done 1024864137: cap 0: all caps stopped for GC 1024864234: cap 0: GC stats for heap capset 0: generation 0, 560 bytes copied, 6232 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1024864706: cap 0: finished GC 1024864813: cap 0: allocated on heap capset 0: 3138904 total bytes till now 1024864896: cap 0: size of heap capset 0: 1048576 bytes 1024869616: cap 0: running thread 1 1025413849: cap 0: stopping thread 1 (heap overflow) 1025419839: cap 0: starting GC 1025423868: cap 0: GC working 1025434468: cap 0: GC idle 1025434719: cap 0: GC done 1025435429: cap 0: GC idle 1025435464: cap 0: GC done 1025438379: cap 0: all caps stopped for GC 1025438777: cap 0: GC stats for heap capset 0: generation 0, 480 bytes copied, 6232 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1025439537: cap 0: finished GC 1025439779: cap 0: allocated on heap capset 0: 3663192 total bytes till now 1025440120: cap 0: size of heap capset 0: 1048576 bytes 1025452968: cap 0: running thread 1 1025986039: cap 0: stopping thread 1 (heap overflow) 1025989762: cap 0: starting GC 1025992473: cap 0: GC working 1025997294: cap 0: GC idle 1025997478: cap 0: GC done 1025997720: cap 0: GC idle 1025997758: cap 0: GC done 1025999740: cap 0: all caps stopped for GC 1025999955: cap 0: GC stats for heap capset 0: generation 0, 360 bytes copied, 6280 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1026000391: cap 0: finished GC 1026000526: cap 0: allocated on heap capset 0: 4187480 total bytes till now 1026000731: cap 0: size of heap capset 0: 1048576 bytes 1026005493: cap 0: running thread 1 1026513329: cap 0: stopping thread 1 (heap overflow) 1026514156: cap 0: starting GC 1026514839: cap 0: GC working 1026517258: cap 0: GC idle 1026517307: cap 0: GC done 1026517436: cap 0: GC idle 1026517475: cap 0: GC done 1026518137: cap 0: all caps stopped for GC 1026518269: cap 0: GC stats for heap capset 0: generation 0, 392 bytes copied, 6248 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1026518711: cap 0: finished GC 1026518810: cap 0: allocated on heap capset 0: 4711768 total bytes till now 1026518879: cap 0: size of heap capset 0: 1048576 bytes 1026520905: cap 0: running thread 1 1026931676: cap 0: stopping thread 1 (thread yielding) 1026933719: cap 0: running thread 1 1027040442: cap 0: stopping thread 1 (heap overflow) 1027041487: cap 0: starting GC 1027042520: cap 0: GC working 1027044626: cap 0: GC idle 1027044691: cap 0: GC done 1027044855: cap 0: GC idle 1027044893: cap 0: GC done 1027045602: cap 0: all caps stopped for GC 1027045688: cap 0: GC stats for heap capset 0: generation 0, 248 bytes copied, 6216 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1027046008: cap 0: finished GC 1027046103: cap 0: allocated on heap capset 0: 5236056 total bytes till now 1027046178: cap 0: size of heap capset 0: 1048576 bytes 1027047842: cap 0: running thread 1 1027483007: sending message with tag Head from process 1, thread 1 to machine 1, process 1 on inport 1 1027763758: cap 0: stopping thread 1 (heap overflow) 1027769019: cap 0: starting GC 1027773245: cap 0: GC working 1027781276: cap 0: GC idle 1027781516: cap 0: GC done 1027782027: cap 0: GC idle 1027782066: cap 0: GC done 1027784390: cap 0: all caps stopped for GC 1027784681: cap 0: GC stats for heap capset 0: generation 0, 512 bytes copied, 5944 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1027785214: cap 0: finished GC 1027785374: cap 0: allocated on heap capset 0: 5760320 total bytes till now 1027785678: cap 0: size of heap capset 0: 1048576 bytes 1027796652: cap 0: running thread 1 1028333218: cap 0: stopping thread 1 (heap overflow) 1028335233: cap 0: starting GC 1028336726: cap 0: GC working 1028340251: cap 0: GC idle 1028340304: cap 0: GC done 1028340475: cap 0: GC idle 1028340513: cap 0: GC done 1028341397: cap 0: all caps stopped for GC 1028341525: cap 0: GC stats for heap capset 0: generation 0, 512 bytes copied, 5864 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1028341944: cap 0: finished GC 1028342058: cap 0: allocated on heap capset 0: 6284608 total bytes till now 1028342308: cap 0: size of heap capset 0: 1048576 bytes 1028350725: cap 0: starting to receive 1028350956: cap 0: receiving message with tag RFork at process 0, inport 0 from machine 1, process 1, thread 0 with size 25 1028358936: cap 0: creating thread 2 1028359404: creating process 2 1028359479: cap 0: assigning thread 2 to process 2 1028360778: cap 0: stop receiving 1028360951: cap 0: running thread 1 1028864269: cap 0: stopping thread 1 (heap overflow) 1028865693: cap 0: starting GC 1028866580: cap 0: GC working 1028870748: cap 0: GC idle 1028870809: cap 0: GC done 1028871018: cap 0: GC idle 1028871056: cap 0: GC done 1028871958: cap 0: all caps stopped for GC 1028872081: cap 0: GC stats for heap capset 0: generation 0, 1592 bytes copied, 4720 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1028872522: cap 0: finished GC 1028872634: cap 0: allocated on heap capset 0: 6806008 total bytes till now 1028872709: cap 0: size of heap capset 0: 1048576 bytes 1028874869: cap 0: running thread 1 1029415791: cap 0: stopping thread 1 (heap overflow) 1029417389: cap 0: starting GC 1029418482: cap 0: GC working 1029421856: cap 0: GC idle 1029421921: cap 0: GC done 1029422125: cap 0: GC idle 1029422160: cap 0: GC done 1029423011: cap 0: all caps stopped for GC 1029423108: cap 0: GC stats for heap capset 0: generation 0, 1616 bytes copied, 4688 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1029423490: cap 0: finished GC 1029423582: cap 0: allocated on heap capset 0: 7330296 total bytes till now 1029423662: cap 0: size of heap capset 0: 1048576 bytes 1029426498: cap 0: running thread 1 1029932465: cap 0: stopping thread 1 (heap overflow) 1029933669: cap 0: starting GC 1029934360: cap 0: GC working 1029936519: cap 0: GC idle 1029936578: cap 0: GC done 1029936734: cap 0: GC idle 1029936769: cap 0: GC done 1029937451: cap 0: all caps stopped for GC 1029937521: cap 0: GC stats for heap capset 0: generation 0, 232 bytes copied, 4688 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1029937840: cap 0: finished GC 1029937912: cap 0: allocated on heap capset 0: 7854584 total bytes till now 1029937990: cap 0: size of heap capset 0: 1048576 bytes 1029940102: cap 0: running thread 1 1030446353: cap 0: stopping thread 1 (heap overflow) 1030447423: cap 0: starting GC 1030448338: cap 0: GC working 1030451144: cap 0: GC idle 1030451207: cap 0: GC done 1030451353: cap 0: GC idle 1030451391: cap 0: GC done 1030452094: cap 0: all caps stopped for GC 1030452173: cap 0: GC stats for heap capset 0: generation 0, 512 bytes copied, 4424 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1030452510: cap 0: finished GC 1030452575: cap 0: allocated on heap capset 0: 8378872 total bytes till now 1030452655: cap 0: size of heap capset 0: 1048576 bytes 1030454804: cap 0: running thread 1 1030959861: cap 0: stopping thread 1 (heap overflow) 1030960823: cap 0: starting GC 1030961580: cap 0: GC working 1030964127: cap 0: GC idle 1030964190: cap 0: GC done 1030964326: cap 0: GC idle 1030964361: cap 0: GC done 1030965010: cap 0: all caps stopped for GC 1030965088: cap 0: GC stats for heap capset 0: generation 0, 304 bytes copied, 4424 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1030965388: cap 0: finished GC 1030965451: cap 0: allocated on heap capset 0: 8903160 total bytes till now 1030965534: cap 0: size of heap capset 0: 1048576 bytes 1030967635: cap 0: running thread 1 1031473544: cap 0: stopping thread 1 (heap overflow) 1031474484: cap 0: starting GC 1031475231: cap 0: GC working 1031477254: cap 0: GC idle 1031477319: cap 0: GC done 1031477452: cap 0: GC idle 1031477486: cap 0: GC done 1031478125: cap 0: all caps stopped for GC 1031478197: cap 0: GC stats for heap capset 0: generation 0, 232 bytes copied, 4376 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1031478483: cap 0: finished GC 1031478547: cap 0: allocated on heap capset 0: 9427448 total bytes till now 1031478625: cap 0: size of heap capset 0: 1048576 bytes 1031480638: cap 0: running thread 1 1031985699: cap 0: stopping thread 1 (heap overflow) 1031986577: cap 0: starting GC 1031987317: cap 0: GC working 1031989096: cap 0: GC idle 1031989161: cap 0: GC done 1031989311: cap 0: GC idle 1031989346: cap 0: GC done 1031989979: cap 0: all caps stopped for GC 1031990053: cap 0: GC stats for heap capset 0: generation 0, 216 bytes copied, 4376 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1031990336: cap 0: finished GC 1031990414: cap 0: allocated on heap capset 0: 9951736 total bytes till now 1031990487: cap 0: size of heap capset 0: 1048576 bytes 1031992533: cap 0: running thread 1 1032497771: cap 0: stopping thread 1 (heap overflow) 1032498682: cap 0: starting GC 1032499444: cap 0: GC working 1032501257: cap 0: GC idle 1032501318: cap 0: GC done 1032501467: cap 0: GC idle 1032501504: cap 0: GC done 1032502155: cap 0: all caps stopped for GC 1032502226: cap 0: GC stats for heap capset 0: generation 0, 280 bytes copied, 4312 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1032502511: cap 0: finished GC 1032502576: cap 0: allocated on heap capset 0: 10476024 total bytes till now 1032502651: cap 0: size of heap capset 0: 1048576 bytes 1032504831: cap 0: running thread 1 1033009500: cap 0: stopping thread 1 (heap overflow) 1033010352: cap 0: starting GC 1033011123: cap 0: GC working 1033012730: cap 0: GC idle 1033012795: cap 0: GC done 1033012948: cap 0: GC idle 1033012986: cap 0: GC done 1033013636: cap 0: all caps stopped for GC 1033013692: cap 0: GC stats for heap capset 0: generation 0, 104 bytes copied, 4456 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1033013968: cap 0: finished GC 1033014042: cap 0: allocated on heap capset 0: 11000312 total bytes till now 1033014118: cap 0: size of heap capset 0: 1048576 bytes 1033016153: cap 0: running thread 1 1033526211: cap 0: stopping thread 1 (heap overflow) 1033527354: cap 0: starting GC 1033528248: cap 0: GC working 1033530168: cap 0: GC idle 1033530231: cap 0: GC done 1033530379: cap 0: GC idle 1033530413: cap 0: GC done 1033531144: cap 0: all caps stopped for GC 1033531265: cap 0: GC stats for heap capset 0: generation 0, 232 bytes copied, 4328 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1033531601: cap 0: finished GC 1033531682: cap 0: allocated on heap capset 0: 11524600 total bytes till now 1033531756: cap 0: size of heap capset 0: 1048576 bytes 1033533890: cap 0: running thread 1 1034038618: cap 0: stopping thread 1 (heap overflow) 1034039555: cap 0: starting GC 1034040289: cap 0: GC working 1034042130: cap 0: GC idle 1034042192: cap 0: GC done 1034042316: cap 0: GC idle 1034042354: cap 0: GC done 1034042958: cap 0: all caps stopped for GC 1034043017: cap 0: GC stats for heap capset 0: generation 0, 200 bytes copied, 4328 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1034043283: cap 0: finished GC 1034043353: cap 0: allocated on heap capset 0: 12048888 total bytes till now 1034043413: cap 0: size of heap capset 0: 1048576 bytes 1034045429: cap 0: running thread 1 1034550158: cap 0: stopping thread 1 (heap overflow) 1034551080: cap 0: starting GC 1034551812: cap 0: GC working 1034553684: cap 0: GC idle 1034553747: cap 0: GC done 1034553877: cap 0: GC idle 1034553916: cap 0: GC done 1034554536: cap 0: all caps stopped for GC 1034554595: cap 0: GC stats for heap capset 0: generation 0, 232 bytes copied, 4296 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1034554874: cap 0: finished GC 1034554955: cap 0: allocated on heap capset 0: 12573176 total bytes till now 1034555014: cap 0: size of heap capset 0: 1048576 bytes 1034557010: cap 0: running thread 1 1034856882: sending message with tag Head from process 1, thread 1 to machine 1, process 1 on inport 1 1035138473: sending message with tag DataMes from process 1, thread 1 to machine 1, process 1 on inport 1 1035141040: cap 0: stopping thread 1 (thread finished) 1035144862: killing process 1 1035157481: cap 0: running thread 2 1035171358: newInport (2,2), blackhole 0x7f31e7e20000 1035172381: connectTSO 2 to inport (1,1,7) 1035368512: sending message with tag DataMes from process 2, thread 2 to machine 1, process 1 on inport 7 1035370635: connectTSO 2 to inport (1,1,6) 1035646908: sending message with tag Connect from process 2, thread 2 to machine 1, process 1 on inport 6 1035651909: cap 0: stopping thread 2 (blocked on black hole owned by thread 23150672) 1035668968: cap 0: starting to receive 1035670418: cap 0: stop receiving 1035832495: cap 0: starting to receive 1035837859: cap 0: receiving message with tag DataMes at process 2, inport 2 from machine 1, process 1, thread 5 with size 2 1035838974: cap 0: waking up thread 2 on cap 0 1035839922: cap 0: stop receiving 1035840505: cap 0: running thread 2 1036013700: sending message with tag Head from process 2, thread 2 to machine 1, process 1 on inport 6 1036199479: sending message with tag DataMes from process 2, thread 2 to machine 1, process 1 on inport 6 1036200951: cap 0: stopping thread 2 (thread finished) 1036203085: killing process 2 1036673875: cap 0: starting to receive 1036674075: cap 0: stop receiving 1036676344: cap 0: starting GC 1036678097: cap 0: GC working 1036682705: cap 0: GC idle 1036682824: cap 0: GC done 1036682989: cap 0: GC idle 1036683028: cap 0: GC done 1036683991: cap 0: all caps stopped for GC 1036684170: cap 0: GC stats for heap capset 0: generation 0, 112 bytes copied, 4376 bytes slop, 495616 bytes fragmentation, 1 par threads, 0 bytes max par copied, 0 bytes total par copied 1036684509: cap 0: finished GC 1036684762: cap 0: allocated on heap capset 0: 12687120 total bytes till now 1036684892: cap 0: size of heap capset 0: 1048576 bytes 1036685495: task 0x1c42f50 deleted 1036686412: task 0x1c42f50 created on cap 0 with OS kernel thread 5847 1036686852: cap 0: creating thread 3 1036691152: cap 0: running thread 3 1036691224: cap 0: stopping thread 3 (thread finished) 1036691527: task 0x1c42f50 deleted 1036708176: cap 0: allocated on heap capset 0: 12688144 total bytes till now 1036708997: removed cap 0 from capset 0 1036709083: removed cap 0 from capset 1 1036709178: deleted cap 0 1036709275: deleted capset 0 1036709334: deleted capset 1 1036715687: killing machine 2 ghc-events-0.6.0/test/pre77stop.eventlog0000644000000000000000000001456012676645645016377 0ustar0000000000000000hdrbhetbetb Create threadeteetb Run threadeteetb Stop threadeteetbThread runnableeteetbMigrate threadeteetb Wakeup threadeteetb Starting GCeteetb Finished GCeteetb Request sequential GCeteetb Request parallel GCeteetbCreate spark threadeteetb Log messageeteetbCreate capabilitieseteetb Block markereteetb User messageeteetbGC idleeteetb GC workingeteetbGC doneeteetbVersioneteetbProgram invocationeteetbCreate capability seteteetbDelete capability seteteetb Add capability to capability seteteetb%Remove capability from capability seteteetbRTS name and versioneteetbProgram argumentseteetbProgram environment variableseteetb  Process IDeteetb!Parent process IDeteetb"8Spark counterseteetb# Spark createeteetb$ Spark dudeteetb%Spark overfloweteetb& Spark runeteetb' Spark stealeteetb( Spark fizzleeteetb)Spark GCeteetb+Wall clock timeeteetb, Thread labeleteetb-Create capabilityeteetb.Delete capabilityeteetb/Disable capabilityeteetb0Enable capabilityeteetb1 Total heap mem ever allocatedeteetb2 Current heap sizeeteetb3 Current heap live dataeteetb4&Heap static parameterseteetb52 GC statisticseteetb6Synchronise stop-the-world GCeteetb<Starting message receivaleteetb=Finished message receivaleteetb>Creating Processeteetb?Killing Processeteetb@Assigning thread to processeteetbA Creating machineeteetbBKilling machineeteetbCSending messageeteetbDReceiving messageeteetbESending/Receiving local messageetehetehdredatbi5B0ݭ>  q !@.BBD.forking child threadFFFFUUFchildK"O~P- T ]UTA[ U\p'#Hc#O+JX+R0ò000Ʃfilling full MVar0000B0emptying full MVar00'0))0Ppreading empty MVar0T0U~0Vc0WW0aYfilling empty MVar0b0d50e0q0r0Ő0>00$0!07Rchild finished090;0Xg 0ݳk-v+St[ M!ImаGHC-7.6.3 rts_l:;./wrongeventlog2+RTS-lsu-g-p-K80m-k10m-H200m-C1s =SSH_AGENT_PID=1817PVM_RSH=/usr/bin/sshGPG_AGENT_INFO=/tmp/keyring-yTUMmt/gpg:0:1TERM=xtermSHELL=/bin/bashXDG_SESSION_COOKIE=acf1c79e0e2de67643be755c00000003-1405160974.283591-1531347675WINDOWID=58743399OLDPWD=/opt/Eden/edentv/fixFor783/BLD-ghc-events-parallelGNOME_KEYRING_CONTROL=/tmp/keyring-yTUMmtUSER=jostLS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0PVM_ROOT=/usr/lib/pvm3SSH_AUTH_SOCK=/tmp/keyring-yTUMmt/sshSESSION_MANAGER=local/onAir:@/tmp/.ICE-unix/1781,unix/onAir:/tmp/.ICE-unix/1781DEFAULTS_PATH=/usr/share/gconf/gnome-fallback.default.pathPVM_ARCH=LINUX64XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome-fallback:/etc/xdgPATH=/home/jost/bin:/home/jost/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/jost/.cabal/binDESKTOP_SESSION=gnome-fallbackPWD=/opt/Eden/edentv/fixFor783GNOME_KEYRING_PID=1770LANG=en_US.UTF-8MANDATORY_PATH=/usr/share/gconf/gnome-fallback.mandatory.pathUBUNTU_MENUPROXY=libappmenu.soGDMSESSION=gnome-fallbackSHLVL=1HOME=/home/jostLANGUAGE=en_US:enGNOME_DESKTOP_SESSION_ID=this-is-deprecatedLOGNAME=jostPVM_EXPORT=DISPLAYXDG_DATA_DIRS=/usr/share/gnome-fallback:/usr/share/gnome:/usr/local/share/:/usr/share/DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Mviy2n6D5M,guid=3677210ad991dc7e0dc3a1ae00000012LESSOPEN=| /usr/bin/lesspipe %sDISPLAY=:0.0XDG_CURRENT_DESKTOP=GNOMELESSCLOSE=/usr/bin/lesspipe %s %sCOLORTERM=gnome-terminalXAUTHORITY=/home/jost/.Xauthority_=./wrongeventlog20ݏ0ݐ7.0ݑO0ݑ0ݑghc-events-0.6.0/test/pre77stop.eventlog.reference0000644000000000000000000001762313113376567020326 0ustar0000000000000000Event Types: 0: Create thread (size 4) 1: Run thread (size 4) 2: Stop thread (size 10) 3: Thread runnable (size 4) 4: Migrate thread (size 6) 8: Wakeup thread (size 6) 9: Starting GC (size 0) 10: Finished GC (size 0) 11: Request sequential GC (size 0) 12: Request parallel GC (size 0) 15: Create spark thread (size 4) 16: Log message (size variable) 17: Create capabilities (size 2) 18: Block marker (size 14) 19: User message (size variable) 20: GC idle (size 0) 21: GC working (size 0) 22: GC done (size 0) 23: Version (size variable) 24: Program invocation (size variable) 25: Create capability set (size 6) 26: Delete capability set (size 4) 27: Add capability to capability set (size 6) 28: Remove capability from capability set (size 6) 29: RTS name and version (size variable) 30: Program arguments (size variable) 31: Program environment variables (size variable) 32: Process ID (size 8) 33: Parent process ID (size 8) 34: Spark counters (size 56) 35: Spark create (size 0) 36: Spark dud (size 0) 37: Spark overflow (size 0) 38: Spark run (size 0) 39: Spark steal (size 2) 40: Spark fizzle (size 0) 41: Spark GC (size 0) 43: Wall clock time (size 16) 44: Thread label (size variable) 45: Create capability (size 2) 46: Delete capability (size 2) 47: Disable capability (size 2) 48: Enable capability (size 2) 49: Total heap mem ever allocated (size 12) 50: Current heap size (size 12) 51: Current heap live data (size 12) 52: Heap static parameters (size 38) 53: GC statistics (size 50) 54: Synchronise stop-the-world GC (size 0) 60: Starting message receival (size 0) 61: Finished message receival (size 0) 62: Creating Process (size 4) 63: Killing Process (size 4) 64: Assigning thread to process (size 8) 65: Creating machine (size 10) 66: Killing machine (size 2) 67: Sending message (size 19) 68: Receiving message (size 23) 69: Sending/Receiving local message (size 17) Events: 289733: startup: 1 capabilities 296334: created capset 0 of type CapsetOsProcess 296685: created capset 1 of type CapsetClockDomain 298459: created cap 0 298614: assigned cap 0 to capset 0 298750: assigned cap 0 to capset 1 305355: capset 1: wall clock time 1405192564s 324769000ns (unix epoch) 305796: capset 0: pid 19928 308186: capset 0: parent pid 18797 315568: capset 0: RTS version "GHC-7.6.3 rts_l" 323642: capset 0: args: ["./wrongeventlog2","+RTS","-lsu-g-p","-K80m","-k10m","-H200m","-C1s"] 331921: capset 0: env: ["SSH_AGENT_PID=1817","PVM_RSH=/usr/bin/ssh","GPG_AGENT_INFO=/tmp/keyring-yTUMmt/gpg:0:1","TERM=xterm","SHELL=/bin/bash","XDG_SESSION_COOKIE=acf1c79e0e2de67643be755c00000003-1405160974.283591-1531347675","WINDOWID=58743399","OLDPWD=/opt/Eden/edentv/fixFor783/BLD-ghc-events-parallel","GNOME_KEYRING_CONTROL=/tmp/keyring-yTUMmt","USER=jost","LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:","XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0","XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0","PVM_ROOT=/usr/lib/pvm3","SSH_AUTH_SOCK=/tmp/keyring-yTUMmt/ssh","SESSION_MANAGER=local/onAir:@/tmp/.ICE-unix/1781,unix/onAir:/tmp/.ICE-unix/1781","DEFAULTS_PATH=/usr/share/gconf/gnome-fallback.default.path","PVM_ARCH=LINUX64","XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome-fallback:/etc/xdg","PATH=/home/jost/bin:/home/jost/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/jost/.cabal/bin","DESKTOP_SESSION=gnome-fallback","PWD=/opt/Eden/edentv/fixFor783","GNOME_KEYRING_PID=1770","LANG=en_US.UTF-8","MANDATORY_PATH=/usr/share/gconf/gnome-fallback.mandatory.path","UBUNTU_MENUPROXY=libappmenu.so","GDMSESSION=gnome-fallback","SHLVL=1","HOME=/home/jost","LANGUAGE=en_US:en","GNOME_DESKTOP_SESSION_ID=this-is-deprecated","LOGNAME=jost","PVM_EXPORT=DISPLAY","XDG_DATA_DIRS=/usr/share/gnome-fallback:/usr/share/gnome:/usr/local/share/:/usr/share/","DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Mviy2n6D5M,guid=3677210ad991dc7e0dc3a1ae00000012","LESSOPEN=| /usr/bin/lesspipe %s","DISPLAY=:0.0","XDG_CURRENT_DESKTOP=GNOME","LESSCLOSE=/usr/bin/lesspipe %s %s","COLORTERM=gnome-terminal","XAUTHORITY=/home/jost/.Xauthority","_=./wrongeventlog2"] 716554: cap 0: creating thread 1 724337: cap 0: running thread 1 777249: cap 0: stopping thread 1 (heap overflow) 4206233: cap 0: running thread 1 4371098: cap 0: stopping thread 1 (making a foreign call) 4373253: cap 0: running thread 1 4468468: cap 0: forking child thread 4628142: cap 0: creating thread 2 4629931: cap 0: stopping thread 1 (thread yielding) 4631259: cap 0: running thread 2 4635338: cap 0: stopping thread 2 (heap overflow) 5624512: cap 0: running thread 2 5633862: cap 0: child 10558539: cap 0: stopping thread 2 (thread yielding) 10560195: cap 0: running thread 1 10571646: cap 0: stopping thread 1 (blocked on black hole owned by thread 2) 10571821: cap 0: running thread 2 190091289: cap 0: stopping thread 2 (heap overflow) 190645077: cap 0: running thread 2 324320577: cap 0: stopping thread 2 (heap overflow) 324792075: cap 0: running thread 2 458588360: cap 0: stopping thread 2 (heap overflow) 459042855: cap 0: running thread 2 591946686: cap 0: stopping thread 2 (heap overflow) 592423132: cap 0: running thread 2 726292685: cap 0: stopping thread 2 (heap overflow) 726799582: cap 0: running thread 2 818131666: cap 0: waking up thread 1 on cap 0 818148789: cap 0: stopping thread 2 (making a foreign call) 818150627: cap 0: running thread 2 818202281: cap 0: filling full MVar 818204902: cap 0: stopping thread 2 (blocked on an MVar) 818205910: cap 0: running thread 1 818209409: cap 0: stopping thread 1 (making a foreign call) 818209858: cap 0: running thread 1 818221708: cap 0: emptying full MVar 818222511: cap 0: waking up thread 2 on cap 0 818227099: cap 0: stopping thread 1 (making a foreign call) 818227497: cap 0: running thread 1 818237552: cap 0: reading empty MVar 818238643: cap 0: stopping thread 1 (blocked on an MVar) 818238846: cap 0: running thread 2 818239075: cap 0: stopping thread 2 (thread yielding) 818239319: cap 0: running thread 2 818241881: cap 0: filling empty MVar 818242290: cap 0: waking up thread 1 on cap 0 818242613: cap 0: stopping thread 2 (thread yielding) 818242945: cap 0: running thread 1 818246059: cap 0: stopping thread 1 (making a foreign call) 818246364: cap 0: running thread 1 818253828: cap 0: stopping thread 1 (thread finished) 818334270: cap 0: creating thread 3 818334992: cap 0: running thread 2 818337572: cap 0: stopping thread 2 (heap overflow) 818880973: cap 0: running thread 2 818886482: cap 0: child finished 818887085: cap 0: stopping thread 2 (thread finished) 818887615: cap 0: running thread 3 818895068: cap 0: stopping thread 3 (thread finished) 819826584: removed cap 0 from capset 0 819826743: removed cap 0 from capset 1 819827023: deleted cap 0 819827079: deleted capset 0 819827133: deleted capset 1 ghc-events-0.6.0/test/782stop.eventlog0000644000000000000000000001510412676645645015746 0ustar0000000000000000hdrbhetbetb Create threadeteetb Run threadeteetb Stop threadeteetbThread runnableeteetbMigrate threadeteetb Wakeup threadeteetb Starting GCeteetb Finished GCeteetb Request sequential GCeteetb Request parallel GCeteetbCreate spark threadeteetb Log messageeteetbCreate capabilitieseteetb Block markereteetb User messageeteetbGC idleeteetb GC workingeteetbGC doneeteetbVersioneteetbProgram invocationeteetbCreate capability seteteetbDelete capability seteteetb Add capability to capability seteteetb%Remove capability from capability seteteetbRTS name and versioneteetbProgram argumentseteetbProgram environment variableseteetb  Process IDeteetb!Parent process IDeteetb"8Spark counterseteetb# Spark createeteetb$ Spark dudeteetb%Spark overfloweteetb& Spark runeteetb' Spark stealeteetb( Spark fizzleeteetb)Spark GCeteetb+Wall clock timeeteetb, Thread labeleteetb-Create capabilityeteetb.Delete capabilityeteetb/Disable capabilityeteetb0Enable capabilityeteetb1 Total heap mem ever allocatedeteetb2 Current heap sizeeteetb3 Current heap live dataeteetb4&Heap static parameterseteetb52 GC statisticseteetb6Synchronise stop-the-world GCeteetb7 Task createeteetb8 Task migrateeteetb9 Task deleteeteetb: User markereteetb<Starting message receivaleteetb=Finished message receivaleteetb>Creating Processeteetb?Killing Processeteetb@Assigning thread to processeteetbA Creating machineeteetbBKilling machineeteetbCSending messageeteetbDReceiving messageeteetbESending/Receiving local messageetehetehdredatbB2 9   H]}L$L#M?forking child threadNCcNJNPNjXJDXychildD  P OF ?ɬL3~q$+ $3x,S,,[x11.g14 1ffilling full MVar11i111emptying full MVar11%1&1reading empty MVar141@11X1filling empty MVar11111111111child finished1U11 & 2 @n-N+ђSs VM!۬ImGHC-7.8.20140411 rts_l 5./wrong782+RTS-lsu-g-p-K80m-k10m-H200m-C1s$ 7SSH_AGENT_PID=1817PVM_RSH=/usr/bin/sshGPG_AGENT_INFO=/tmp/keyring-yTUMmt/gpg:0:1TERM=xtermSHELL=/bin/bashXDG_SESSION_COOKIE=acf1c79e0e2de67643be755c00000003-1405160974.283591-1531347675WINDOWID=58743399OLDPWD=/opt/Eden/edentv/fixFor783/BLD-ghc-events-parallelGNOME_KEYRING_CONTROL=/tmp/keyring-yTUMmtUSER=jostLS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0PVM_ROOT=/usr/lib/pvm3SSH_AUTH_SOCK=/tmp/keyring-yTUMmt/sshSESSION_MANAGER=local/onAir:@/tmp/.ICE-unix/1781,unix/onAir:/tmp/.ICE-unix/1781DEFAULTS_PATH=/usr/share/gconf/gnome-fallback.default.pathPVM_ARCH=LINUX64XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome-fallback:/etc/xdgPATH=/home/jost/bin:/home/jost/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/jost/.cabal/binDESKTOP_SESSION=gnome-fallbackPWD=/opt/Eden/edentv/fixFor783GNOME_KEYRING_PID=1770LANG=en_US.UTF-8MANDATORY_PATH=/usr/share/gconf/gnome-fallback.mandatory.pathUBUNTU_MENUPROXY=libappmenu.soGDMSESSION=gnome-fallbackSHLVL=1HOME=/home/jostLANGUAGE=en_US:enGNOME_DESKTOP_SESSION_ID=this-is-deprecatedLOGNAME=jostPVM_EXPORT=DISPLAYXDG_DATA_DIRS=/usr/share/gnome-fallback:/usr/share/gnome:/usr/local/share/:/usr/share/DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Mviy2n6D5M,guid=3677210ad991dc7e0dc3a1ae00000012LESSOPEN=| /usr/bin/lesspipe %sDISPLAY=:0.0XDG_CURRENT_DESKTOP=GNOMELESSCLOSE=/usr/bin/lesspipe %s %sCOLORTERM=gnome-terminalXAUTHORITY=/home/jost/.Xauthority_=./wrong7827 =V0M91ˁ071]0M91!02 T2 _.2 $2 2 ghc-events-0.6.0/test/782stop.eventlog.reference0000644000000000000000000002032013113376567017666 0ustar0000000000000000Event Types: 0: Create thread (size 4) 1: Run thread (size 4) 2: Stop thread (size 10) 3: Thread runnable (size 4) 4: Migrate thread (size 6) 8: Wakeup thread (size 6) 9: Starting GC (size 0) 10: Finished GC (size 0) 11: Request sequential GC (size 0) 12: Request parallel GC (size 0) 15: Create spark thread (size 4) 16: Log message (size variable) 17: Create capabilities (size 2) 18: Block marker (size 14) 19: User message (size variable) 20: GC idle (size 0) 21: GC working (size 0) 22: GC done (size 0) 23: Version (size variable) 24: Program invocation (size variable) 25: Create capability set (size 6) 26: Delete capability set (size 4) 27: Add capability to capability set (size 6) 28: Remove capability from capability set (size 6) 29: RTS name and version (size variable) 30: Program arguments (size variable) 31: Program environment variables (size variable) 32: Process ID (size 8) 33: Parent process ID (size 8) 34: Spark counters (size 56) 35: Spark create (size 0) 36: Spark dud (size 0) 37: Spark overflow (size 0) 38: Spark run (size 0) 39: Spark steal (size 2) 40: Spark fizzle (size 0) 41: Spark GC (size 0) 43: Wall clock time (size 16) 44: Thread label (size variable) 45: Create capability (size 2) 46: Delete capability (size 2) 47: Disable capability (size 2) 48: Enable capability (size 2) 49: Total heap mem ever allocated (size 12) 50: Current heap size (size 12) 51: Current heap live data (size 12) 52: Heap static parameters (size 38) 53: GC statistics (size 50) 54: Synchronise stop-the-world GC (size 0) 55: Task create (size 18) 56: Task migrate (size 12) 57: Task delete (size 8) 58: User marker (size variable) 60: Starting message receival (size 0) 61: Finished message receival (size 0) 62: Creating Process (size 4) 63: Killing Process (size 4) 64: Assigning thread to process (size 8) 65: Creating machine (size 10) 66: Killing machine (size 2) 67: Sending message (size 19) 68: Receiving message (size 23) 69: Sending/Receiving local message (size 17) Events: 431075: startup: 1 capabilities 438021: created capset 0 of type CapsetOsProcess 438382: created capset 1 of type CapsetClockDomain 439886: created cap 0 440061: assigned cap 0 to capset 0 440191: assigned cap 0 to capset 1 446866: capset 1: wall clock time 1405192655s 464811000ns (unix epoch) 447318: capset 0: pid 19951 449452: capset 0: parent pid 18797 453913: capset 0: RTS version "GHC-7.8.20140411 rts_l" 462067: capset 0: args: ["./wrong782","+RTS","-lsu-g-p","-K80m","-k10m","-H200m","-C1s"] 468191: capset 0: env: ["SSH_AGENT_PID=1817","PVM_RSH=/usr/bin/ssh","GPG_AGENT_INFO=/tmp/keyring-yTUMmt/gpg:0:1","TERM=xterm","SHELL=/bin/bash","XDG_SESSION_COOKIE=acf1c79e0e2de67643be755c00000003-1405160974.283591-1531347675","WINDOWID=58743399","OLDPWD=/opt/Eden/edentv/fixFor783/BLD-ghc-events-parallel","GNOME_KEYRING_CONTROL=/tmp/keyring-yTUMmt","USER=jost","LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:","XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0","XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0","PVM_ROOT=/usr/lib/pvm3","SSH_AUTH_SOCK=/tmp/keyring-yTUMmt/ssh","SESSION_MANAGER=local/onAir:@/tmp/.ICE-unix/1781,unix/onAir:/tmp/.ICE-unix/1781","DEFAULTS_PATH=/usr/share/gconf/gnome-fallback.default.path","PVM_ARCH=LINUX64","XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome-fallback:/etc/xdg","PATH=/home/jost/bin:/home/jost/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/jost/.cabal/bin","DESKTOP_SESSION=gnome-fallback","PWD=/opt/Eden/edentv/fixFor783","GNOME_KEYRING_PID=1770","LANG=en_US.UTF-8","MANDATORY_PATH=/usr/share/gconf/gnome-fallback.mandatory.path","UBUNTU_MENUPROXY=libappmenu.so","GDMSESSION=gnome-fallback","SHLVL=1","HOME=/home/jost","LANGUAGE=en_US:en","GNOME_DESKTOP_SESSION_ID=this-is-deprecated","LOGNAME=jost","PVM_EXPORT=DISPLAY","XDG_DATA_DIRS=/usr/share/gnome-fallback:/usr/share/gnome:/usr/local/share/:/usr/share/","DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Mviy2n6D5M,guid=3677210ad991dc7e0dc3a1ae00000012","LESSOPEN=| /usr/bin/lesspipe %s","DISPLAY=:0.0","XDG_CURRENT_DESKTOP=GNOME","LESSCLOSE=/usr/bin/lesspipe %s %s","COLORTERM=gnome-terminal","XAUTHORITY=/home/jost/.Xauthority","_=./wrong782"] 671062: task 0x10130c0 created on cap 0 with OS kernel thread 19951 699893: cap 0: creating thread 1 706834: cap 0: running thread 1 761740: cap 0: stopping thread 1 (heap overflow) 4742525: cap 0: running thread 1 4987428: cap 0: stopping thread 1 (making a foreign call) 4989828: cap 0: running thread 1 5098303: cap 0: forking child thread 5129059: cap 0: creating thread 2 5130773: cap 0: stopping thread 1 (thread yielding) 5132416: cap 0: running thread 2 5139072: cap 0: stopping thread 2 (heap overflow) 5786180: cap 0: running thread 2 5798149: cap 0: child 10666308: cap 0: stopping thread 2 (thread yielding) 10667787: cap 0: running thread 1 10678973: cap 0: stopping thread 1 (blocked on black hole owned by thread 2) 10679120: cap 0: running thread 2 193941318: cap 0: stopping thread 2 (heap overflow) 194546751: cap 0: running thread 2 331983948: cap 0: stopping thread 2 (heap overflow) 332477310: cap 0: running thread 2 469015937: cap 0: stopping thread 2 (heap overflow) 469529035: cap 0: running thread 2 606849548: cap 0: stopping thread 2 (heap overflow) 607359608: cap 0: running thread 2 743648511: cap 0: stopping thread 2 (heap overflow) 744192151: cap 0: running thread 2 837873869: cap 0: waking up thread 1 on cap 0 837889639: cap 0: stopping thread 2 (making a foreign call) 837891084: cap 0: running thread 2 837932390: cap 0: filling full MVar 837934536: cap 0: stopping thread 2 (blocked on an MVar) 837935465: cap 0: running thread 1 837938331: cap 0: stopping thread 1 (making a foreign call) 837938636: cap 0: running thread 1 837948387: cap 0: emptying full MVar 837948906: cap 0: waking up thread 2 on cap 0 837952944: cap 0: stopping thread 1 (making a foreign call) 837953253: cap 0: running thread 1 837980148: cap 0: reading empty MVar 837980980: cap 0: stopping thread 1 (blocked reading an MVar) 837981248: cap 0: running thread 2 837981623: cap 0: stopping thread 2 (thread yielding) 837981784: cap 0: running thread 2 837983458: cap 0: filling empty MVar 837983715: cap 0: waking up thread 1 on cap 0 837983884: cap 0: stopping thread 2 (thread yielding) 837984239: cap 0: running thread 1 837987231: cap 0: stopping thread 1 (making a foreign call) 837987524: cap 0: running thread 1 837994266: cap 0: stopping thread 1 (thread finished) 837995393: task 0x10130c0 deleted 837999453: task 0x10130c0 created on cap 0 with OS kernel thread 19951 838005207: cap 0: creating thread 3 838005677: cap 0: running thread 2 838006764: cap 0: stopping thread 2 (heap overflow) 838522385: cap 0: running thread 2 838528422: cap 0: child finished 838529109: cap 0: stopping thread 2 (thread finished) 838529502: cap 0: running thread 3 838541350: cap 0: stopping thread 3 (thread finished) 838541718: task 0x10130c0 deleted 839458388: removed cap 0 from capset 0 839458655: removed cap 0 from capset 1 839458852: deleted cap 0 839458945: deleted capset 0 839458993: deleted capset 1 ghc-events-0.6.0/test/783stop.eventlog0000644000000000000000000001515212676645645015752 0ustar0000000000000000hdrbhetbetb Create threadeteetb Run threadeteetb Stop threadeteetbThread runnableeteetbMigrate threadeteetb Wakeup threadeteetb Starting GCeteetb Finished GCeteetb Request sequential GCeteetb Request parallel GCeteetbCreate spark threadeteetb Log messageeteetbCreate capabilitieseteetb Block markereteetb User messageeteetbGC idleeteetb GC workingeteetbGC doneeteetbVersioneteetbProgram invocationeteetbCreate capability seteteetbDelete capability seteteetb Add capability to capability seteteetb%Remove capability from capability seteteetbRTS name and versioneteetbProgram argumentseteetbProgram environment variableseteetb  Process IDeteetb!Parent process IDeteetb"8Spark counterseteetb# Spark createeteetb$ Spark dudeteetb%Spark overfloweteetb& Spark runeteetb' Spark stealeteetb( Spark fizzleeteetb)Spark GCeteetb+Wall clock timeeteetb, Thread labeleteetb-Create capabilityeteetb.Delete capabilityeteetb/Disable capabilityeteetb0Enable capabilityeteetb1 Total heap mem ever allocatedeteetb2 Current heap sizeeteetb3 Current heap live dataeteetb4&Heap static parameterseteetb52 GC statisticseteetb6Synchronise stop-the-world GCeteetb7 Task createeteetb8 Task migrateeteetb9 Task deleteeteetb: User markereteetb;Empty event for bug #9003eteetb<Starting message receivaleteetb=Finished message receivaleteetb>Creating Processeteetb?Killing Processeteetb@Assigning thread to processeteetbA Creating machineeteetbBKilling machineeteetbCSending messageeteetbDReceiving messageeteetbESending/Receiving local messageetehetehdredatbB2+ -  H NI: M%M/Nforking child threadO4OcO O9dćechild"'GG  6s׬!^($SW1$[,} *,22O2T2filling full MVar2y2222Aemptying full MVar2C2U12V2preading empty MVar2222]2؇filling empty MVar2W22292t22021262^2t;child finished2w2y2L 2+ 61-ֱ[+<S KP N!UImGHC-7.8.3 rts_l85./wrong783+RTS-lsu-g-p-K80m-k10m-H200m-C1sO 7SSH_AGENT_PID=1817PVM_RSH=/usr/bin/sshGPG_AGENT_INFO=/tmp/keyring-yTUMmt/gpg:0:1TERM=xtermSHELL=/bin/bashXDG_SESSION_COOKIE=acf1c79e0e2de67643be755c00000003-1405160974.283591-1531347675WINDOWID=58743399OLDPWD=/opt/Eden/edentv/fixFor783/BLD-ghc-events-parallelGNOME_KEYRING_CONTROL=/tmp/keyring-yTUMmtUSER=jostLS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0PVM_ROOT=/usr/lib/pvm3SSH_AUTH_SOCK=/tmp/keyring-yTUMmt/sshSESSION_MANAGER=local/onAir:@/tmp/.ICE-unix/1781,unix/onAir:/tmp/.ICE-unix/1781DEFAULTS_PATH=/usr/share/gconf/gnome-fallback.default.pathPVM_ARCH=LINUX64XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome-fallback:/etc/xdgPATH=/home/jost/bin:/home/jost/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/jost/.cabal/binDESKTOP_SESSION=gnome-fallbackPWD=/opt/Eden/edentv/fixFor783GNOME_KEYRING_PID=1770LANG=en_US.UTF-8MANDATORY_PATH=/usr/share/gconf/gnome-fallback.mandatory.pathUBUNTU_MENUPROXY=libappmenu.soGDMSESSION=gnome-fallbackSHLVL=1HOME=/home/jostLANGUAGE=en_US:enGNOME_DESKTOP_SESSION_ID=this-is-deprecatedLOGNAME=jostPVM_EXPORT=DISPLAYXDG_DATA_DIRS=/usr/share/gnome-fallback:/usr/share/gnome:/usr/local/share/:/usr/share/DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Mviy2n6D5M,guid=3677210ad991dc7e0dc3a1ae00000012LESSOPEN=| /usr/bin/lesspipe %sDISPLAY=:0.0XDG_CURRENT_DESKTOP=GNOMELESSCLOSE=/usr/bin/lesspipe %s %sCOLORTERM=gnome-terminalXAUTHORITY=/home/jost/.Xauthority_=./wrong7837 .pN92 .p72.pN925.p2+v2+.2+2+/2+Űghc-events-0.6.0/test/783stop.eventlog.reference0000644000000000000000000002036013113376567017673 0ustar0000000000000000Event Types: 0: Create thread (size 4) 1: Run thread (size 4) 2: Stop thread (size 10) 3: Thread runnable (size 4) 4: Migrate thread (size 6) 8: Wakeup thread (size 6) 9: Starting GC (size 0) 10: Finished GC (size 0) 11: Request sequential GC (size 0) 12: Request parallel GC (size 0) 15: Create spark thread (size 4) 16: Log message (size variable) 17: Create capabilities (size 2) 18: Block marker (size 14) 19: User message (size variable) 20: GC idle (size 0) 21: GC working (size 0) 22: GC done (size 0) 23: Version (size variable) 24: Program invocation (size variable) 25: Create capability set (size 6) 26: Delete capability set (size 4) 27: Add capability to capability set (size 6) 28: Remove capability from capability set (size 6) 29: RTS name and version (size variable) 30: Program arguments (size variable) 31: Program environment variables (size variable) 32: Process ID (size 8) 33: Parent process ID (size 8) 34: Spark counters (size 56) 35: Spark create (size 0) 36: Spark dud (size 0) 37: Spark overflow (size 0) 38: Spark run (size 0) 39: Spark steal (size 2) 40: Spark fizzle (size 0) 41: Spark GC (size 0) 43: Wall clock time (size 16) 44: Thread label (size variable) 45: Create capability (size 2) 46: Delete capability (size 2) 47: Disable capability (size 2) 48: Enable capability (size 2) 49: Total heap mem ever allocated (size 12) 50: Current heap size (size 12) 51: Current heap live data (size 12) 52: Heap static parameters (size 38) 53: GC statistics (size 50) 54: Synchronise stop-the-world GC (size 0) 55: Task create (size 18) 56: Task migrate (size 12) 57: Task delete (size 8) 58: User marker (size variable) 59: Empty event for bug #9003 (size 0) 60: Starting message receival (size 0) 61: Finished message receival (size 0) 62: Creating Process (size 4) 63: Killing Process (size 4) 64: Assigning thread to process (size 8) 65: Creating machine (size 10) 66: Killing machine (size 2) 67: Sending message (size 19) 68: Receiving message (size 23) 69: Sending/Receiving local message (size 17) Events: 440074: startup: 1 capabilities 446518: created capset 0 of type CapsetOsProcess 446769: created capset 1 of type CapsetClockDomain 448177: created cap 0 448347: assigned cap 0 to capset 0 448483: assigned cap 0 to capset 1 455484: capset 1: wall clock time 1405192714s 116018000ns (unix epoch) 456191: capset 0: pid 19972 458325: capset 0: parent pid 18797 464895: capset 0: RTS version "GHC-7.8.3 rts_l" 473314: capset 0: args: ["./wrong783","+RTS","-lsu-g-p","-K80m","-k10m","-H200m","-C1s"] 479103: capset 0: env: ["SSH_AGENT_PID=1817","PVM_RSH=/usr/bin/ssh","GPG_AGENT_INFO=/tmp/keyring-yTUMmt/gpg:0:1","TERM=xterm","SHELL=/bin/bash","XDG_SESSION_COOKIE=acf1c79e0e2de67643be755c00000003-1405160974.283591-1531347675","WINDOWID=58743399","OLDPWD=/opt/Eden/edentv/fixFor783/BLD-ghc-events-parallel","GNOME_KEYRING_CONTROL=/tmp/keyring-yTUMmt","USER=jost","LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:","XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0","XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0","PVM_ROOT=/usr/lib/pvm3","SSH_AUTH_SOCK=/tmp/keyring-yTUMmt/ssh","SESSION_MANAGER=local/onAir:@/tmp/.ICE-unix/1781,unix/onAir:/tmp/.ICE-unix/1781","DEFAULTS_PATH=/usr/share/gconf/gnome-fallback.default.path","PVM_ARCH=LINUX64","XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome-fallback:/etc/xdg","PATH=/home/jost/bin:/home/jost/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/jost/.cabal/bin","DESKTOP_SESSION=gnome-fallback","PWD=/opt/Eden/edentv/fixFor783","GNOME_KEYRING_PID=1770","LANG=en_US.UTF-8","MANDATORY_PATH=/usr/share/gconf/gnome-fallback.mandatory.path","UBUNTU_MENUPROXY=libappmenu.so","GDMSESSION=gnome-fallback","SHLVL=1","HOME=/home/jost","LANGUAGE=en_US:en","GNOME_DESKTOP_SESSION_ID=this-is-deprecated","LOGNAME=jost","PVM_EXPORT=DISPLAY","XDG_DATA_DIRS=/usr/share/gnome-fallback:/usr/share/gnome:/usr/local/share/:/usr/share/","DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Mviy2n6D5M,guid=3677210ad991dc7e0dc3a1ae00000012","LESSOPEN=| /usr/bin/lesspipe %s","DISPLAY=:0.0","XDG_CURRENT_DESKTOP=GNOME","LESSCLOSE=/usr/bin/lesspipe %s %s","COLORTERM=gnome-terminal","XAUTHORITY=/home/jost/.Xauthority","_=./wrong783"] 699793: task 0x12e70c0 created on cap 0 with OS kernel thread 19972 732448: cap 0: creating thread 1 739574: cap 0: running thread 1 793934: cap 0: stopping thread 1 (heap overflow) 4798987: cap 0: running thread 1 5055994: cap 0: stopping thread 1 (making a foreign call) 5058329: cap 0: running thread 1 5148943: cap 0: forking child thread 5182260: cap 0: creating thread 2 5183843: cap 0: stopping thread 1 (thread yielding) 5185547: cap 0: running thread 2 5192128: cap 0: stopping thread 2 (heap overflow) 6603911: cap 0: running thread 2 6625740: cap 0: child 10691075: cap 0: stopping thread 2 (thread yielding) 10692575: cap 0: running thread 1 10700572: cap 0: stopping thread 1 (blocked on black hole owned by thread 2) 10700759: cap 0: running thread 2 196062624: cap 0: stopping thread 2 (heap overflow) 196666678: cap 0: running thread 2 333935541: cap 0: stopping thread 2 (heap overflow) 334485420: cap 0: running thread 2 471949022: cap 0: stopping thread 2 (heap overflow) 472424843: cap 0: running thread 2 609441585: cap 0: stopping thread 2 (heap overflow) 609951485: cap 0: running thread 2 746397738: cap 0: stopping thread 2 (heap overflow) 746948628: cap 0: running thread 2 840110617: cap 0: waking up thread 1 on cap 0 840126355: cap 0: stopping thread 2 (making a foreign call) 840127652: cap 0: running thread 2 840169975: cap 0: filling full MVar 840172153: cap 0: stopping thread 2 (blocked on an MVar) 840172971: cap 0: running thread 1 840176011: cap 0: stopping thread 1 (making a foreign call) 840176353: cap 0: running thread 1 840188167: cap 0: emptying full MVar 840188906: cap 0: waking up thread 2 on cap 0 840193329: cap 0: stopping thread 1 (making a foreign call) 840193566: cap 0: running thread 1 840223344: cap 0: reading empty MVar 840224025: cap 0: stopping thread 1 (blocked reading an MVar) 840224469: cap 0: running thread 2 840224730: cap 0: stopping thread 2 (thread yielding) 840224861: cap 0: running thread 2 840226951: cap 0: filling empty MVar 840227415: cap 0: waking up thread 1 on cap 0 840227605: cap 0: stopping thread 2 (thread yielding) 840228120: cap 0: running thread 1 840231481: cap 0: stopping thread 1 (making a foreign call) 840231796: cap 0: running thread 1 840239072: cap 0: stopping thread 1 (thread finished) 840240156: task 0x12e70c0 deleted 840243853: task 0x12e70c0 created on cap 0 with OS kernel thread 19972 840249364: cap 0: creating thread 3 840249779: cap 0: running thread 2 840251082: cap 0: stopping thread 2 (heap overflow) 840785630: cap 0: running thread 2 840791099: cap 0: child finished 840792041: cap 0: stopping thread 2 (thread finished) 840792454: cap 0: running thread 3 840801940: cap 0: stopping thread 3 (thread finished) 840802357: task 0x12e70c0 deleted 841728886: removed cap 0 from capset 0 841728999: removed cap 0 from capset 1 841729260: deleted cap 0 841729327: deleted capset 0 841729456: deleted capset 1 ghc-events-0.6.0/test/Utils.hs0000644000000000000000000000164513113376563014377 0ustar0000000000000000module Utils where files :: [FilePath] files = map ("test/"++) [ "queens-ghc-6.12.1.eventlog" , "queens-ghc-7.0.2.eventlog" , "mandelbrot-mmc-2011-06-14.eventlog" , "parallelTest.eventlog" , "pre77stop.eventlog", "782stop.eventlog", "783stop.eventlog" ] -- Code to help print the differences between a working test and a failing test. diffLines o n = diff 1 (lines o) (lines n) diff :: Int -> [String] -> [String] -> String diff _ [] [] = "Logs match" diff l [] (n:ns) = "Extra lines in new log at line " ++ show l ++ ":\n" ++ (unlines (n:ns)) diff l (o:os) [] = "Missing lines in new log at line " ++ show l ++ ":\n" ++ (unlines (o:os)) diff l (o:os) (n:ns) = if (o == n) then diff (l+1) os ns else "Different output at line " ++ show l ++ ":\n" ++ "Original: " ++ o ++ "\n" ++ "New: " ++ n ghc-events-0.6.0/test/stop.hs0000644000000000000000000000235312676645645014276 0ustar0000000000000000-- This test program triggers different thread stop encodings in -- eventlogs, depending on GHC version (black hole, mvar read, mvar) module Main where import Control.Concurrent import Debug.Trace import GHC.Conc main = do putStrLn "suggest to run with +RTS -lsu-g-p -K80m -k10m -H200m -C1s" -- define some time-consuming computation let stuff = ack 3 10 -- create MVars to block on v1 <- newMVar "full" v2 <- newEmptyMVar -- create a thread which blackholes something, and re-fills the MVar traceEventIO "forking child thread" forkIO (do traceEventIO "child" putStrLn ("child thread sez " ++ show stuff) traceEventIO "filling full MVar" putMVar v1 "filled full var" yield traceEventIO "filling empty MVar" putMVar v2 "filled empty var" yield traceEventIO "child finished" ) yield putStrLn ("and the main thread sez " ++ show stuff) traceEventIO "emptying full MVar" s1 <- takeMVar v1 putStrLn ("from MVar: " ++ s1) traceEventIO "reading empty MVar" s2 <- readMVar v2 putStrLn ("from MVar: " ++ s2) ack :: Integer -> Integer -> Integer ack 0 m = m+1 ack n 0 = ack (n-1) 1 ack n m = ack (n-1) (ack n (m-1)) ghc-events-0.6.0/README.md0000644000000000000000000000151013113447011013215 0ustar0000000000000000# ghc-events [![Build Status](https://travis-ci.org/haskell/ghc-events.svg?branch=master)](https://travis-ci.org/haskell/ghc-events) [![Hackage](https://img.shields.io/hackage/v/ghc-events.svg)](https://hackage.haskell.org/package/ghc-events) [![Hackage-Deps](https://img.shields.io/hackage-deps/v/ghc-events.svg)](http://packdeps.haskellers.com/feed?needle=ghc-events) A Haskell library for parsing .eventlog files emitted by the GHC runtime system. The package also includes an executable, `ghc-events` that can be used to display the contents of .eventlog files ## TODO * Add example usage/tutorial of the new API to this readme ## Known Issues * Writing event logs back to file does not work. It is hard to say how long has this been broken or how difficult will it be to fix ([#14](https://github.com/haskell/ghc-events/issues/14)) ghc-events-0.6.0/CHANGELOG.md0000644000000000000000000000337413113447011013561 0ustar0000000000000000# Change Log ## Unreleased ## 0.6.0 - 2017-05-31 This contains breaking changes. * The deprecation notice on `readEventLogFromFile` has been retracted * The incremental API has been refactored The details are as follows: * Update bug tracker URL ([#10](https://github.com/haskell/ghc-events/pull/10)) * New test for Eden events ([#11](https://github.com/haskell/ghc-events/pull/11)) * Relax version bound for binary ([#15](https://github.com/haskell/ghc-events/pull/15)) * Enable Travis CI ([#19](https://github.com/haskell/ghc-events/pull/19)) * Refactor the incremental API which was introduced in 0.5.0.0 ([#22](https://github.com/haskell/ghc-events/pull/22)) * Some speed/memory usage improvements ([#18](https://github.com/haskell/ghc-events/pull/18), [#22](https://github.com/haskell/ghc-events/pull/22)) ## 0.5.0.0 - unreleased * Readme added :) * Old parser replaced with an incremental implementation * General overhaul of the codebase * Partial Haddock coverage The 0.5.* releases should be able to handle large event logs and logs that have been cut off abruptly, e.g. from executable runs that resulted in crashes. This release should be *mostly* backwards compatible, however the "old" way of reading event logs, namely the `readEventLogFromFile` function is now **deprecated**. **NOTE:** Users parsing large logs may notice that this version of the library is noticably slower than the older versions. The incremental parser is at fault here - previous versions of the libray used a "trick" that would let them essentially skip the first step of the mergesort algorithm since `EventBlock`s were already sorted in time order. The new parser reads the file incrementally and cannot take the advantage of this. Apologies for any inconvenience this may have caused.