úÎ$Ü"#&      !"#$%5 & '()*+,-/Top-level wrapper for single-shot AGI scripts.  Example:   main = run yourAGI Ignore  (Top-level for long running AGI scripts.  Example:   main = fastAGI Nothing yourAGI  9 You should be sure to compile with -threaded. Note that yourAGI E may be running simultaneously in multiple threads, so you will need + some concurrency control for shared data. ! TODO: support a hang-up handler PrunInternal - run an AGI script using the supplied Handles for input and output  You probably want  or . This function is exposed so C that 3rd party libraries such as HAppS can easily add support for  FastAGI support. c TODO: support general method of handling extra arguments (query_string vs command-line arguments) .( channel if not already in answer state "True on success, False on failure  file to stream /timout in ms after keypress (default: 2000 ms) max 6Nothing on failure, Just (digits, timeout) on success !record to this file |GSM | WAV| 1stop recording if one of these digits is entered 7maximum record time in milliseconds, -1 for no timeout offset samples %beep to indicate recording has begun 6stop recording if this many seconds of silence passes exit condition, endpos=offset "## says the specified number number to say 1return early if any of these digits are received 8Nothing on failure, Just Nothing on success, Just (Just  digit) if key is pressed $file to stream escape digits sample offset On failure: Left  endpos". On success: Right (Maybe Digit,  endpos) %+wait for channel to receive a DTMF digit. 2timeout in milliseconds, -1 to block indefinitely ;|Nothing| on error, |Just Nothing| on timeout, |Just (Just  digit)| on success /parse 0 as True, -1 as failure 0parse ' 200 result=' 1parse a block of zero or more ' ' and '\t' characters (but not '\n') 234&  !"#$%&    "#$%!&    !"#$%5      !"#$%&'()**+,-./012345AGI-1.2 Network.AGI RecordResult RandomErrorTimeout InterruptedHangUpFailureOnWaitForFailureToWrite SoundTypeGSMWAVDigitNineEightSevenSixFiveFourThreeTwoOneZeroStarPoundAGIppDigitppEscapeDigitsrunfastAGI runInternalsendRecvanswerhangUpgetDatarecord sayDigits sayNumber streamFile waitForDigitCommandrunAGIAGIEnvagiVarsagiInHagiOutH readAgiVarspSuccessFailurepResultpSpacepDigit pAsciiDigitpEndPos