úÎA,;&o      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnNoneJ-Sets a custom variable in the sandbox monad. K.Checks that a custom sandbox variable is set. L^Returns the value of a previously set sandbox variable (or a provided default value if unset) MUnsets a custom variable. T  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ"Variable key for future reference Variable value K Variable key L Variable key Default value if not found M Variable key NOPQRSTopqS  !"#$%&'()rs*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTQ)&'( !"#$% *+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ  RST6    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTopq(Benjamin Surma <benjamin.surma@gree.net>NoneUEOptional parameters when registering a process in the Sandbox monad. WBTime to wait (in s.) before checking that the process is still up X"Which outputs to capture (if any) YACreates a sandbox and execute the given actions in the IO monad. Z*Registers a process in the Sandbox monad. [\Communicates with a sandboxed process via TCP and returns the answered message as a string. \CStarts the given process, runs the action, then stops the process. F The process is managed by the functions start and stop respectively. ]\Helper function: starts a process, wait for it to terminate and return its captured output. ^1Starts a previously registered process (verbose) _>Starts all registered processes (in their registration order) `8Gracefully stops a previously started process (verbose) a"Sends a POSIX signal to a process bPGracefully stops all registered processes (in their reverse registration order) c;Returns the effective binary path of a registered process. dRReturns the handles used to communicate with a registered process using standard I/O. e7Returns the last captured output of a started process. f1Interacts with a sandboxed process via standard I/O. gEReturns an unbound user TCP port and stores it for future reference. h3Explicitely sets a port to be returned by getPort. i>Creates a temporary file in the sandbox and returns its path. j:Returns the path of a file previously created by setFile. kNA variant of bracket from Control.Exception which works in the Sandbox monad. lCTemporarily sets a variable for the execution of the given action. mFReturns the temporary directory used to host the sandbox environment. n$Executes the given action silently. UVWXY Name of the sandbox environment Action to perform Z Process name Path to the application binary &Arguments to pass on the command-line Process settings [Name of the registered port  Input string /Time to wait before timeout (in milli-seconds) \ Process name Action to run ]^ Process name _t` Process name a Process name Signal to send bc Process name d Process name e Process name f Process name  Input string /Time to wait before timeout (in milli-seconds) gPort name for future reference hPort name for future reference TCP port number iFile name for future reference File contents jFile name used during setFile kComputation to run first (acquire resource) Computation to run last (release resource) Computation to run in-between l Variable key Variable value Action to run mnAction to execute u'&JKLMUVWXYZ[\]^_`abcdefghijklmn'&UVWXYZ]\^_`banf[edgchjimkKLJMlUVWXYZ[\]^_t`abcdefghijklmnuv    !"##$%&'()*+,,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZZ[\]^_`abcdefghijklmnopqrstuvwxyztest-sandbox-0.0.1.5 Test.SandboxTest.Sandbox.Internalsdata-default-class-0.0.1Data.Default.Classdeftransformers-0.3.0.0Control.Monad.IO.ClassliftIO mtl-2.1.2Control.Monad.Error.Class throwError catchErrorSandboxTestOptionsstoSeedstoMaximumGeneratedTests"stoMaximumUnsuitableGeneratedTestsstoMaximumTestSize SandboxSeedSandboxRandomSeedSandboxFixedSeedSandboxedProcessInstanceStoppedInstanceRunningInstanceCapture CaptureBoth CaptureStderr CaptureStdoutSandboxedProcessspNamespBinaryspArgsspWait spCapture spInstance SandboxStatessName ssDataDir ssProcessesssProcessOrderssAllocatedPortsssAvailablePortsssFiles ssVariablesSandbox runSandboxSandboxStateRefgetputprettyheaderfooternewSandboxStateregisterProcessisValidProcessName getProcess updateProcess secondInµssetFile' bufferSizehReadWithTimeout sendToPort getNewPort isBindable startProcessformatCommandLine stopProcesshSignalProcess killProcess hGetProcessIDinteractWithProcessgetProcessInputHandlegetProcessCapturedOutputHandlegetProcessBinaryfindExecutables tryBinarygetProcessCandidateBinariesexpandwhenM setVariable checkVariable getVariable unsetVariable isVerbose verbosityKey displayBannerinstallSignalHandlers putOptions getOptionsoptionsVariableProcessSettingspsWait psCapturesandboxregistersendTo withProcessrunstartstartAllstopsignalstopAll getBinary getHandlesreadLastCapturedOutput interactWithgetPortsetPortsetFilegetFilebracket withVariable getDataDirsilently$fSerializeSandboxTestOptions$fSerializeSandboxSeed$fMonadBaseControlIOSandbox StMSandbox runStMSandboxwaitFor$fDefaultProcessSettings