/O5      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX Y Z [!\!]!^!_!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""##### # # # # $$$$$$$$$$$$$$$$$$$ $!$"%#&$&%&&''(())**++,,--...//001121324273*Dynamically generated configuration moduleSafe5CTransitive dependencies for this package computed at configure-time5package name, version number554Safe 6789:;<=>?@AB7=>?@AB 6789:;<=>?@AB5Character mnemonics(c) Eric Mertens, 2016ISCemertens@gmail.comSafeCPacked list of digraph entriesDLook up 2-character digraph.E4Injective mapping from 2-character ASCII digraph to FCGHDIEJKDJKCGHDIEJK6Strict unit type(c) Eric Mertens, 2016ISCemertens@gmail.comSafeLUnit data type with a strict M and N instances.OP is strictQR is strict, S is O(1)LTOQLTLTOQ7Lens utility functions(c) Eric Mertens, 2016ISCemertens@gmail.comNoneUModify the target of a Vd with a function. The result is strict in the results of applying the function. Strict version of WX9Set a value strictly in the set value. Strict version of Y.Z[ to the \ component of a ]^[" to the 'TimeOfDay component of a \._[" to the 'TimeOfDay component of a \.UXZ^_UXZ^_UXZ^_0Parser for unstructure configuration file format(c) Eric Mertens, 2016ISCemertens@gmail.comNoneI1Parser for consuming key-value pairs of sections.9Class for types that have a well-known way to parse them. Parse a valueVConfiguration parser tracking current location and for propagating error information.JRun a top-level parser to either get the parsed value or an error message.8A parser that always fails with the given error message.VEmbed a parser into an extended location. This is used when parsing inside a section.Parse a ` according to the method in the Lift a  into a 5 leaving the current section information unmodified. Run a  given particular `.. This will only succeed when the value is a aF and the section parser consumes all of the sections from that value. (sectionOpt = sectionOptWith parseConfig Parses the value stored at the given section with the given parser. Nothing is returned if the section is missing. Just is returned if the parse succeeds Error is raised if the section is present but the parse fails -Parse the value at the given section or fail. -Parse the value at the given section or fail.Matches b< values, extends the error location with a zero-based indexMatches c valuesMatches d values ignoring the baseMatches d values ignoring the baseMatches yes as e and no as 'False.Matches f values.gherror message  ijk  gh ijk9Types for representing the current window being displayed(c) Eric Mertens, 2016ISCemertens@gmail.comNoneCurrently focused window No networkNetwork Network Channel/Nick#Filter argument for -$ no filter%only network windows&only channel windows'only user windows( Subfocus view) Show messages*Show channel metadata+Show channel user list,%Show channel mask list for given mode-Show client windows.Show current palette/Show all mentions0Show all digraphs1&Show help window with optional command54Return the network associated with the current focus6Unfocused first, followed by focuses sorted by network. Within the same network the network focus comes first and then the channels are ordered by channel identifier #$%&'()*+,-./012345network 6 #$%&'()*+,-./012345 ()*+,-./01#$%&'5432 #$%&'( )*+,-./0123456$Multiline text container with cursor(c) Eric Mertens, 2016ISCemertens@gmail.comNoneA0Zipper-ish view of the multi-line content of an EditBox . Lines J the l are stored in reverse order.LDefault A valueM Single line A.N!Shifts the first line off of the A=, yielding the text of the line and the rest of the content.OlWhen at beginning of line, jump to beginning of previous line. Otherwise jump to beginning of current line.PVWhen at end of line, jump to end of next line. Otherwise jump to end of current line.Q0Move the cursor left, across lines if necessary.R1Move the cursor right, across lines if necessary.S3Move the cursor left to the previous word boundary.T0Move the cursor right to the next word boundary.U'Delete the character before the cursor.V,Delete the character after/under the cursor.W/Insert character at cursor, cursor is advanced.XSmarter version of Y that removes spurious newlines.YOInsert string at cursor, cursor is advanced to the end of the inserted string.m)Advance to the beginning of the next linen'Retreat to the end of the previous line[mUse the two characters preceeding the cursor as a digraph and replace them with the corresponding character.';<=>AopqrBCDEstFGJKlLMNOPQRSTUVWXYmnZ[\;<=>ABEDCFJKLMNOPQRSTUVWXYZ[AJKMLN;<=>BCDEFQRSTOPVUXYWZ[;<=>AopqrBCDEstFGJKlLMNOPQRSTUVWXYmnZ[\Console-mode text box(c) Eric Mertens, 2016ISCemertens@gmail.comNone hDefault a valueuDSets the given string to the yank buffer unless the string is empty.iIndicate that the contents of the text box were successfully used by the program. This clears the first line of the contents and updates the history.jAUpdate the editbox to reflect the earlier element in the history.k?Update the editbox to reflect the later element in the history.l.Jump the cursor to the beginning of the input.m(Jump the cursor to the end of the input.nLDelete all text from the cursor to the end and store it in the yank buffer.oRDelete all text from the cursor to the beginning and store it in the yank buffer.p%Insert the yank buffer at the cursor.qKKill the content from the cursor back to the previous word boundary. When yank( is set the yank buffer will be updated.rJKill the content from the curser forward to the next word boundary. When yank' is set the yank buffer will be updateds8Insert a character at the cursor and advance the cursor.#]^_`avwxyz{|}~fghuijklmnopqyank ryank stuv);<ABEDCFJKMNQRSTUVYZ]^_`afghijklmnopqrstu)ahfg;<MFBCDEANJKVUlmonqrpZQRSTstYjkiu]^_`]^_`avwxyz{|}~fghuijklmnopqrstuvIRC channel session state(c) Eric Mertens, 2016ISCemertens@gmail.comNone5Dynamic information about the state of an IRC channel topic textauthor and timestamp for topic channel URLuser list and sigilschannel settings and parametersmode, mask, setter, set timecreation time of channeldelayed op messagesConstruct an empty Add a user to the user list Remove a user from the user listRename a user in the user listSet the channel topic#wxyz{|}~#wxyz{|}~#wxyz{|}~wxyz{|}~ "Processing of command-line options(c) Eric Mertens, 2016ISCemertens@gmail.comNone\ Command-line optionsconfiguration file pathinitial networksdisable autoconnectshow help messageshow version message+show version of ALL transitive dependenciesDefault values for Option descriptionsuLoad command line options. This action will terminate early in the case of the version flag, help flag, or an error.Returns  "-SOMEHASH" when in a git repository, "" otherwise.Returns "-dirty"! when in a dirty git repository, "" otherwise. Messages to be added to buffers(c) Eric Mertens, 2016ISCemertens@gmail.comNone7Compute a searchable text representation of the message 'Palette of colors used to render the UI(c) Eric Mertens, 2016ISCemertens@gmail.comNone.Color palette used for rendering the client UIhighlighting nicknamesown nickname(s)own nickname(s) in mentionsmessage timestampscoalesced metadatasigils (e.g. @+)information labels ping latency window nameerror messagestextbox markerswindow name with activitywindow name with mention known command%known command with complete argumentsprefix of known commandunknown commandcommand argument placeholderDivider between split windowsBDefault UI colors that look nice in my dark solarized color schemeSDefault nick highlighting colors that look nice in my dark solarized color scheme.+** 3View current palette and to see all terminal colors(c) Eric Mertens, 2016ISCemertens@gmail.comNoneGenerate lines used for /palettet. These lines show all the colors used in the current palette as well as the colors available for use in palettes. Packed vty Image type(c) Eric Mertens, 2016ISCemertens@gmail.comNone5<=QRPacked, strict version of & used for long-term storage of images.4Isomorphism between packed images and normal images.\Attempts to locate adjacent text sections with equal attributes so that they can be merged.  2Types and operations for managing message buffers.(c) Eric Mertens, 2016ISCemertens@gmail.comNone<=;Flag for the important of a message being added to a windowDon't update unread countIncrement unread count-Increment unread count and set important flagA J tracks all of the messages and metadata for a particular message buffer.!Messages to display, newest first'Messages added since buffer was visibleMessages in buffer &Indicates an important event is unread ,A single message to be displayed in a window  Summary value Searchable text formNormal rendered imageDetailed rendered imageImportance of message Lens for the _wlImage field viewed in unpacked form. Lens for the  _wlFullImage field viewed in unpacked form.A window with no messages~Adds a given line to a window as the newest message. Window's unread count will be updated according to the given importance. ?Update the window clearing the unread count and important flag.%      !                  ! *Parser for mIRC's text formatting encoding(c) Eric Mertens, 2016ISCemertens@gmail.comNone"EParse mIRC encoded format characters and hide the control characters.#Parse mIRC encoded format characters and render the control characters explicitly. This view is useful when inputting control characters to make it clear where they are in the text.$"Safely render a control character.% Render a  with default attributes and replacing all of the control characters with reverse-video letters corresponding to caret notation. "#$%"#$%"#%$"#$% Renderer for message lines(c) Eric Mertens, 2016ISCemertens@gmail.comNone'An identifier in a PRIVMSG(An identifier somewhere else)%Level of detail to use when rendering*only render nicknames+render full user info,'Parameters used when rendering messages.restricted message sigils/ sender sigils0nicknames to highlight1nicknames to highlight in red2nick color palette3 nick padding4Default ,& with no sigils or nicknames specified5WConstruct a message given the time the message was received and its render parameters.@Render the given time according to the current mode and palette.+Render the sigils for a restricted message. Render a ; given the sender's sigils and the nicknames to highlight. Render a ] as time using quiet attributes 23:15  Render a ], as full date and time user quiet attributes 2016-07-24 23:15:10 8-Optionally insert padding on the right of an ! until it has the minimum width.Render a chat message given a rendering mode, the sigils of the user who sent the message, and a list of nicknames to highlight.Process list of f} as individual IRC formatted words separated by a special separator to distinguish parameters from words within parameters.Process list of f" as individual IRC formatted words9*Render a nickname in its hash-based color.:Render an a full user. In normal mode only the nickname will be rendered. If detailed mode the full user info including the username and hostname parts will be rendered. The nickname will be colored.;GRender an identifier without using colors. This is useful for metadata.Parse message text to construct an image. If the text has formatting control characters in it then the text will be rendered according to the formatting codes. Otherwise the nicknames in the message are highlighted.Given a list of nicknames and a chat message, this will generate an image where all of the occurrences of those nicknames are colored.<KReturns image and identifier to be used when collapsing metadata messages.=:Image used when treating ignored chat messages as metadata'&'()*+,-./012345time of message 67error message message sigils 89color palette draw mode my nicknames identifier to draw :color palette mode my nicks userinfo to draw; my nicks  other nicks  my nicks  other nicks <=&(')+*,-./0123456789:;<=,-./0123)*+&'(45<=;:9768&'()*+,-./0123456789:;<='Hooks into the operation of the client.(c) Dan Doel, 2016ISCdan.doel@gmail.comNone@Identifying name for the hookA0Whether the remapping should affect client stateB"(Partial) message remapping actionCThe possible results of a >2 action. A hook can decline to handle a message (D), filter out a message (E9), or change a message into an arbitrary other message (F).L$Apply the given message hooks to an A. The hooks are tried in order until one handles the message. A 9 result means the message was filtered out by a hook. A  result contains the actual  to be processed.>?@ABCDEFGHIJKL >?@ABCDEFIJKL CDEF>?@ABJKIL >?@ABCDEFGHIJKL%Hook to remap znc buffextras messages(c) Dan Doel, 2016ISCdan.doel@gmail.comNoneMMap ZNC's buffextras messages to native client messages. Set debugging to pass through buffextras messages that the hook doesn't understand.Menable debugging enable debugging MMMAvailable hooks(c) Dan Doel, 2016ISCdan.doel@gmail.comNoneN All the available message hooks.NNNN-Human-readable versions of connection failure(c) Eric Mertens, 2016ISCemertens@gmail.comNoneOBCompute the message message text to be used for a connection errorOnetwork error client lines network error client lines OOO*Client configuration format and operations(c) Eric Mertens, 2016ISCemertens@gmail.comNonePAParse a text attribute. This value should be a sections with the fg and/or bg attributes. Otherwise it should be a color entry that will be used for the foreground color. An empty sections value will result in Q#Parse a color. Support formats are:Number between 0-255 Name of colorRGB values of color as a list4Match integers between 0 and 255 as Terminal colors.aAccepts any integer literal or floating literal which can be losslessly converted to an integer. PQPQQP PQTab-completion logic(c) Eric Mertens, 2016ISCemertens@gmail.comNone R'Class for types that are isomorphic to > and which can support a total order and a prefix predicate. 89 ( x) == x  (89 x) == x 8: x y ==> x  y SDCheck if the first argument is a lexicographic prefix of the second.T Convert to a .U!Word completion prefix and suffix[3Word completion without adding any prefix or suffix\>Word completion adding a ": " suffix at the beginning of lines]+Word completion using a "@" prefix intended^&Perform word completion on a text box.The leading update operation is applied to the result of tab-completion when tab completing from the beginning of the text box. This is useful when auto-completing a nick and including a trailing colon.The reversed parameter indicates that tab-completion should return the previous entry. When starting a fresh tab completion the priority completions will be considered in order before resorting to the set of possible completions.Find the word preceeding the cursor skipping over any characters that can be found in the prefix and suffix for the current completion mode.RFind the next entry in a list of possible choices using an alphabetical ordering.RSTUVWXYZ[\]^leading update operation  reversed priority completions possible completions reversed search prefix previous result posibilities _` RTSUVWXYZ[\]^ RST^UVWXYZ[\] RSTUVWXYZ[\]^_`Trie for recognizing commands(c) Dan Doel, 2016ISCemertens@gmail.comSafe2b%Possible results of recognizing text.c.text matched exactly, yielding the given valued8text would be recognized if joined to the given suffixese%text could not possibly be recognizedf A map from f values to au values that is capable of yielding more detailed information when looking up keys that are not actually in the map.TMatch common prefixes of two strings in a more convenient form than available from ;<g*Attempt to recognize a string, yielding a b result.Create a singleton f associating the given f and value. Union two  RecognizersR. The stored values in the result are biased to the left if there is key overlap.Union an arbitrary number of  Recognizers as with .h Create a f_ from an association list. If a key appears twice, the earliest associated value will be used.iAdd a key-value pair to a f>. This will override the value already present if one exists.j1Compute all strings that will be recognized by a f.Auxiliary function for j.bcdefghijk bdcefghij fgbcdehij bcdefghijk Implementation of slash commands(c) Eric Mertens, 2016ISCemertens@gmail.comNone p Settings for /exec command.RWhen no network or channel are specified the output is sent to the client window.YWhen only a network is specified the output is sent as raw IRC commands to that network.mWhen only a channel is specified the output is sent as messages on the current network to the given channel.uWhen the network and channel are specified the output is sent as messages to the given channel on the given network.routput networksoutput channeltcommand filenameu stdin sourcevcommand argumentsDefault values for /exec to be overridden by flags.{Parse the arguments to /exec> looking for various flags and the command and its arguments.|CExecute the requested command synchronously and return the output.Power words is similar to ? except that when it encounters a word formatted as a Haskell B literal it parses it as such. Only space is used as a delimiter.pqrstuvyz{exec arguments error or parsed command |exec configuration error lines or output lines  pqrstuvyz{| pqrstuvzy{| pqrstuvyz{|(Command argument description and parsing(c) Eric Mertens, 2016ISCemertens@gmail.comSafe%&D}wDescription of a command's arguments indexed by the result of parsing those arguments. Arguments are annotated with a  describing the argument.~ A required space-delimited token!An optional space-delimited token(Take all the remaining text in free-form No arguments{Parse the given input string using an argument specification. The arguments should start with a space but might have more.@Return the next space delimited token. Leading space is dropped.}~specification input string parse results }~}~}~9Parser and evaluator for string interpolation in commands(c) Eric Mertens, 2016ISCemertens@gmail.comSafe%&%Parsed chunk of an expandable command regular textinline variable $x or ${x y}inline variable $1 or ${1} bracketed variable with default ${x|lit}2Specification used when unspecified, no arguments.Parse a f/ searching for the expansions as specified in . $$ is used to escape a single $.Attempt to expand all of the elements in the given list using the two expansion functions. If the expansion of any chunk fails the whole expansion fails.variable resolution argument index resolution chunks concatenated, expanded chunks  )Settings for an individual IRC connection(c) Eric Mertens, 2016ISCemertens@gmail.comNone TLS connection+TLS connection without certificate checkingPlain connectionStatic server-level settingsconnection nicknamesconnection usernameconnection realname / GECOS CTCP userinfoserver password SASL usernameSASL plain passwordSASL ecdsa private keyserver hostname server portuse TLS to connectpath to client TLS certificatepath to client TLS key0additional CA certificates for validating serverOpenSSL cipher suite.commands to execute upon successful connectionhostname of SOCKS proxyport of SOCKS proxy"Channels with chanserv permissionsFlood limiter penalty (seconds)!Flood limited threshold (seconds)Initial message hooks+The name referencing the server in commands1The number of reconnect attempts to make on error)Connect to this network on server startup$Nick completion mode for this serverDirectory to save logs of chatJLoad the defaults for server settings based on the environment variables.USER,  IRCPASSSWORD, and  SASLPASSWORD are used.===*Client configuration format and operations(c) Eric Mertens, 2016ISCemertens@gmail.comNone!"\Top-level client configuration information. When connecting to a server configuration from $ is used where possible, otherwise  is used.Default connection settingsHost-specific settings(Names of windows, used when alt-jumping)Extra highlight nicks/termsPadding of nicks9manually specified configuration path, used for reloadingcommand macrospaths to shared librarypaths to url opening executableinitial ignore list(initially visibility of the activity barnotify terminal on mention0Failure cases when loading a configuration file.-Error message from reading configuration file"Error message from parser or lexer/Error message from loading parsed configurationUses  to find  .glirc/configUses   to find .configglircconfig _Empty configuration file used when no path is specified and the configuration file is missing. YAttempt to read a file using the given handler when a file does not exist. On failure a  exception is throw. Either read a configuration file from one of the default locations, in which case no configuration found is equivalent to an empty configuration, or from the specified file where no configuration found is an error.*Load the configuration file defaulting to ~.glircconfig.gResolve relative paths starting at the home directory rather than the current directory of the client.default instance9    file to read !error handler for not found case  &just file or use default search paths path to configuration file  $optionally specified path to config %prepopulated default server settings ""(     Support for logging IRC traffic(c) Eric Mertens, 2016ISCemertens@gmail.comNone:Log entry queued in client to be written by the event loop"log directory from server settings localtime daychannel or nicknameformatted log message text,Write the given log entry to the filesystem. Ignore all IOErrors Construct a  for the given < when appropriate. Only chat messages result in a log line.  log line message log directory target  #Interface to the connection package(c) Eric Mertens, 2016ISCemertens@gmail.comNone Create a new 6 which will be closed when the continuation finishes.Event-based network IO(c) Eric Mertens, 2016ISCemertens@gmail.comNone -Exceptions used to kill connections manually.sent when ping timer expires*sent when client commands force disconnectThe sum of incoming events from a network connection. All events are annotated with a network ID matching that given when the connection was created as well as the time at which the message was recieved.'Event for successful connection to host /Event for a new recieved line (newline removed) 6Final message indicating the network connection failed 8Final message indicating the network connection finished Handle for a network connection :Identifier used to match connection events to connections.Schedule a message to be transmitted on the network connection. These messages are sent unmodified. The message should contain a newline terminator.(Force the given connection to terminate.9Initiate a new network connection according to the given R. All events on this connection will be added to the given queue. The resulting  ^ value can be used for sending outgoing messages and for early termination of the connection.     !" delay in seconds )Identifier to be used on incoming events #$%&'                 !" #$%&'&Rendering logic for commanad arguments(c) Eric Mertens, 2016ISCemertens@gmail.comNone%&(Parse command arguments against a given }. The given text will be rendered and then any missing arguments will be indicated by extra placeholder values appended onto the image. Parameters are rendered with % except for the case of  which supports WYSIWYG.( Construct an > containing placeholders for each of the remaining arguments.((Marshaling support for C API(c) Eric Mertens, 2016ISCemertens@gmail.comSafe!" struct glirc_string struct glirc_commandarray array length struct glirc_message"array# array length$array%array& array length' struct glirc_extension;)Optional startup callback*Optional shutdown callback+"Optional message received callback, Optional client command callback-Null-terminated name.extension version/extension version0*Type of dynamic function pointer wrappers.1 Qtypedef void process_command(void *glirc, void *S, const struct glirc_command *);2 `typedef enum process_result process_message(void *glirc, void *S, const struct glirc_message *);3 (typedef void stop(void *glirc, void *S);4 3typedef void *start(void *glirc, const char *path);7LTag for describing the kind of message to display in the client as used in  glirc_print. enum message_code;>IResult used to determine what to do after processing a message with the 2 callback. enum process_result;0 !"#$%&'()*+,-./01api token extension state command 2api token extention state message to send 3api token extension state 4api token path to extension initialized extension state 56789:;<=>?@ABCD, !"#$%&'()*+,-./0123456789:;<=>?@,'()*+,-./4321 !"#$%&0<;:978=>56?@  !"#$%&'()*+,-./0123456789:;<=>?@ABCD Dynamically loaded extension API(c) Eric Mertens, 2016ISCemertens@gmail.comNone!"IOT).Continuation-passing style bracked IO actions.GInformation about a loaded extension including the handle to the loaded shared object, and state value returned by the startup callback, and the loaded extension record.I$Struct of callback function pointersJ&Handle of dynamically linked extensionK'State value generated by start callbackO3The symbol that is loaded from an extension object."Extensions are expected to export: "struct galua_extension extension; PLoad the extension from the given path and call the start callback. The result of the start callback is saved to be passed to any subsequent calls into the extension.QWCall the stop callback of the extension if it is defined and unload the shared object.RCall all of the process message callbacks in the list of extensions. This operation marshals the IRC message once and shares that across all of the callbacks.SBNotify an extension of a client command with the given parameters.* Marshal a + into a ; which will be valid for the remainder of the computation.,Return the bracket IO action.-IWrap up a bracketing IO operation where the continuation takes 1 argument.IWrap up a bracketing IO operation where the continuation takes 2 argument)/GHIJKLMNOPpath to extension QRclientstate stable pointer network current message Return e to pass message Sclient state stableptr parameters extension to command * network  message 0 parameters 12,-. GHIJKLMNOPQRS GHIJKLMNOPQRS)/GHIJKLMNOPQRS*012,-. Binding to ecdsatool(c) Eric Mertens, 2016ISCemertens@gmail.comNoneXRIdentifier for SASL ECDSA challenge response authentication using curve NIST256P. ECDSA-NIST256P-CHALLENGEY;Encode a username as specified in this authentication mode.Z5Compute the response for a given challenge using the  ecdsatool( executable which must be available in PATH.XYusername base-64 encoded username Z!private key file !challenge string !error message or response string XYZXYZXYZ!IRC network session state(c) Eric Mertens, 2016ISCemertens@gmail.comNone/`Status of the ping timeraping sent waiting for pongb latency in seconds for last pingc no ping sentd.number of attempts, last known connection timeeKPair of username and hostname. Empty strings represent missing information.fusername hostnameg'State of the authentication transactionhno active transactioniPLAIN mode initiatedjECDSA-NIST mode initiatedk*ECDSA_NIST user sent waiting for challengel%State tracked for each IRC connectionnnetwork connection identifierojoined channelspnetwork socketqchannel mode meaningsrchannel identifier prefixess!state for multi-message sequencestmodes for the connected useru)modes that prefix statusmsg channel namesv!settings used for this connectionw/usermask used by the server for this connectionx!user and hostname for other nicksy%maximum mode changes per MODE commandzname of network connection{time for next ping event|state of ping timer}time of last message received~2names of message hooks to apply to this connectionTimer-based events'terminate the connection due to timeouttransmit a ping to the server Transmit a +; on the connection associated with the given network. For PRIVMSG and NOTICEF overlong commands are detected and transmitted as multiple messages.qConstruct a new network state using the given settings and default values as specified by the IRC specification.3Used for updates to a l that require no reply. noReply x = ([], x)4001 5 is the first message received when transitioning from the initial handshake to a connected state. At this point we know what nickname the server is using for our connection, and we can start scheduling PINGs.6Handle 7 errors when connecting.8'Add an entry to a mode list transaction9KSave a completed ban, quiet, invex, or exempt list into the channel state.:[These replies are interpreted by the client and should only be shown in the detailed view.Return e for messages that should be hidden outside of full detail view. These messages are interpreted by the client so the user shouldn't need to see them directly to get the relevant information.>Predicate to test if the connection has op in a given channel.;Process a list of WHO replies:Compute the earliest timed action for a connection, if anyApply the given  to a connection state.Used to send commands that require ops to perform. If this channel is one that the user has chanserv access and ops are needed then ops are requested and the commands are queued, otherwise send them directly.q[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<=>?@ABCunique network ID network name server settings active network connection initial ping status new network state 3DEF4message received my nickname 6 bad nickname replies, updated state GHI8mask set by  set time 9mode channel :Jtime of message sender channel mode flags mode parameters KLMNOPQRS  "key=value"TUVWXYZ[;\channel commands network state channel network state chanserv available channel topic network state I[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ilmnopqrstuvwxyz{|}~ghijkef[\]^_`abcdO[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<=>?@ABC3DEF46GHI89:JKLMNOPQRSTUVWXYZ[;\"/Primary client state type and update operations(c) Eric Mertens, 2016ISCemertens@gmail.comNoneNState of the extension API including loaded extensions and the mechanism used to support reentry into the Haskell runtime from the C API.]active extensions^_ used to with `a used with (All state information for the IRC clientclient message bufferspreviously focused buffercurrently focused buffercurrent view modeextra messages windows to viewstate of active connectionsnext available  incoming network event queuenetwork name to connection IDclient configurationprimary text box"size to crop from left of text boxcurrent terminal widthcurrent terminal heightbuffer scroll linesuse detailed rendering modevisible activity barvisible activity baroptional persistent filtersound a bell next drawignored nicknamesstate of loaded extensionslog lines ready to writebSelection function used in c=Prepare the client to support reentry from the extension API.d for finding the lI associated with a given network if that connection is currently active.-The full top-most line that would be executed*The line under the cursor in the edit box.Construct an initial  using default values.TForcefully terminate the connection currently associated with a given network name.;Add a message to the window associated with a given channele5Extract the status mode sigils from a message target.fbCompute the importance of a message to be used when computing change notifications in the client.gTPredicate for messages that should be ignored based on the configurable ignore listCPredicate for nicknames to determine if messages should be ignored.ARecord a message in the windows corresponding to the given targeth2Compute the sigils of the user who sent a message.i&Compute sigils for a user on a channel$Record a message on a network windowjFRecord window line at the given focus creating the window if necessarykl& but with mostly defaulted parameters.2Function applied to the client state every redraw.mAMark the messages on the current window (and any splits) as seen.@Add the textbox input to the edit history and clear the textbox.CReturns the current network's channels and current channel's users. Returns the U% associated with the current network.(Returns the current filtering predicate.FConstruct a text matching predicate used to filter the message window.;Compute the command and arguments currently in the textbox.=Regular expression for matching HTTP/HTTPS URLs in chat text.Find all the URL matches using  in a given f) suitable for being opened. Surrounding < and > are removed.Remove a network connection and unlink it from the network map. This operation assumes that the networkconnection exists and should only be applied once per connection.<Start a new connection. The delay is used for reconnections.nWhen a nick change happens and there is an open query window for that nick and there isn't an open query window for the new nick, rename the window.*Actions to be run when exiting the client.oUnload all active extensions.9Start extensions after ensuring existing ones are stopped0Scroll the current buffer to show newer messages1List of extra focuses to display as split windowsJump the focus of the client to a buffer that has unread activity. Some events like errors or chat messages mentioning keywords are considered important and will be jumped to first.BJump the focus directly to a window based on its zero-based index.Change the window focus to the given value, reset the subfocus to message view, reset the scroll, remember the previous focus if it changed.NChange the subfocus to the given value, preserve the focus, reset the scroll.$Return to previously focused window.VStep focus to the next window when on message view. Otherwise switch to message view.ZStep focus to the previous window when on message view. Otherwise switch to message view.VStep focus to the next window when on message view. Otherwise switch to message view.cStep focus to the next window when on message view. Otherwise switch to message view. Reverse the step order when argument is e.bCompute the set of extra identifiers that should be highlighted given a particular network state.p\Compute the set of extra identifiers that should be highlighted given a particular network.;Produce the list of window names configured for the client.;Produce the list of window names configured for the client.@Returns the list of network names that requested autoconnection.pq]^`bwindows before current window windows after current window window to focus rs4client state 4continuation using the stable pointer to the client network line number, line content tnetwork network channel u message  target  client state epossible modes target actual modes, actual target fg nickname  client state  is ignored network hnetwork channel sigils inetwork channel user sigils jlkmvnetwork  channels wnetwork channel nicks client state text to match is match !client state !command name and argument string attempts optional disconnect time network name timestamp message recieved message network network connection state client state response , updated state nnetwork ozero-based window index  new focus  client state  new subfocus  client state cselection function client state network state client state extra highlight identifiers pnetwork client state extra highlight identifiers XXTq]^`brstuefghijlkmvwnocp#9Foreign exports which expose functionality for extensions(c) Eric Mertens, 2016ISCemertens@gmail.comNone!" Mark a window as being seen clearing the new message counter. To clear the client window send an empty network name. To clear a network window send an empty channel name.Mark a window as being seen clearing the new message counter. To clear the client window send an empty network name. To clear a network window send an empty channel name.XThe resulting string is malloc'd and the caller must free it. NULL returned on failure.rThe resulting strings and array of strings are malloc'd and the caller must free them. NULL returned on failure.qThe resulting strings and array of strings are malloc'd and the caller must free them. NULL returned on failure. Case insensitive comparison suitable for use on channels and nicknames. Returns -1 if the first identifier is less than the second Returns 0 if the first identifier is equal to the second Returns 1 if the first identifier is greater than the second qThe resulting strings and array of strings are malloc'd and the caller must free them. NULL returned on failure. -Print a message or error to the client window FNetwork, command, and parameters are used when transmitting a message.x<Dereference the stable pointer passed to extension callbacksy Import a  into an +zPeek a  as UTF-8 encoded bytes.api token network name network name length channel name channel name length api token network name network name length channel name channel name length api token network name network name length  api token  network  network len  channel  channel len 1null terminated array of null terminated strings  api token  network  network len 1null terminated array of null terminated strings  identifier 1 identifier 1 len identifier 2 identifier 2 len  1api token 1null terminated array of null terminated strings  api token enum message_code message message length 0 on success  api token pointer to message 0 on success xyz{|}~             xyz{|}~$ Implementation of slash commands(c) Eric Mertens, 2016ISCemertens@gmail.comNoneATA A command is a list of aliases, an argument specification, implementation, and documentation. The arguments and implementation must match so that the parsed arguments will match what the implementation expects.>Names of this command, first in the list is the "primary" name-Specification of the arguments of the command5Multi-line IRC-formatted documentation text used for /helpCImplementation of the command for both execution and tab completionPair of implementations for executing a command and tab completing one. The tab-completion logic is extended with a bool indicating that tab completion should be reversedno requirementsrequires an active networkrequires an active chat window!requires an active channel window=Type of commands that require an active channel to be focused=Type of commands that require an active network to be focused!Type of commands that always work%Possible results of running a commandDContinue running the client, consume input if command was from input,Continue running the client, report an errorClient should close8Consider the text entry successful and resume the client7Consider the text entry a failure and resume the client>Command failure with an error message printed to client window5Interpret the given chat message or command. Leading /d indicates a command. Otherwise if a channel or user query is focused a chat message will be sent.?Execute command provided by user, resolve aliases if necessary.?Compute the replacement value for the given expansion variable.Respond to the TAB key being pressed. This can dispatch to a command specific completion mode when relevant. Otherwise this will complete input based on the users of the channel related to the current buffer.;Treat the current text input as a chat message and send it.Parse and execute the given command. When the first argument is Nothing the command is executed, otherwise the first argument is the cursor position for tab-completion@Expands each alias to have its own copy of the command callbacks iMap of built-in client commands to their implementations, tab completion logic, and argument structures.!+Raw list of commands in the order used for /help.Provides no tab completion for client commands/Provides no tab completion for network commands/Provides no tab completion for channel commands:Provides nickname based tab completion for client commands;Provides nickname based tab completion for network commands;Provides nickname based tab completion for channel commandsImplementation of /exit command.When used on a channel that the user is currently joined to this command will clear the messages but preserve the window. When used on a window that the user is not joined to this command will delete the window.Implementation of /quoteJ. Parses arguments as a raw IRC command and sends to the current network.Implementation of /meImplementation of /ctcpImplementation of /noticeImplementation of /msgCommon logic for /msg and /noticeCommon logic for /msg and /notice returning the client stateImplementation of /windows" command. Set subfocus to Windows.Implementation of  /mentions# command. Set subfocus to Mentions.Implementation of /palette" command. Set subfocus to Palette.Implementation of  /digraphs# command. Set subfocus to Digraphs.Implementation of /help command. Set subfocus to Help.Tab completion for /splitsImplementation of /splits/connect! tab completes known server names\When tab completing the first parameter of the focus command the current networks are used.yThis command is equivalent to chatting without a command. The primary use at the moment is to be able to send a leading / to chat easily./channela command. Takes the name of a channel and switches focus to that channel on the current network.Tab completion for /channelSReturn the list of identifiers for open channel windows on the given network name.Reconnect to the currently focused network. It's possible that we're not currently connected to a network, so this is implemented as a client command.Implementation of /reload(Attempt to reload the configuration fileSSupport file name tab completion when providing an alternative configuration file.NOT IMPLEMENTEDIUse the *!*@host masks of users for channel lists when setting list modes.Use the channel's mask list for removing modesUse the nick list otherwise=Predicate for mode commands that can be performed without opssComplete the nickname at the current cursor position using the userlist for the currently focused channel (if any)Implementation of /exec command.Implementation of /grep and /grepim focused channel current network  arguments chat or command disconnect time client state expansion variable expansion value  reversed  !target target word completion mode hints all completions reversed order client state  reversed reversed order network client state open channel windows  reversed mode polarity mode channel (hint, complete)  reversed case sensitive   !  !a  !%Renderer for help lines(c) Eric Mertens, 2016ISCemertens@gmail.comNone"Generate either the list of all commands and their arguments, or when given a command name generate the detailed help text for that command.AGenerate detailed help lines for the command with the given name.]Generate an explanation of the context where the given command implementation will be valid.<Generate the lines for the help window showing all commands.dGenerate the help line for the given command and its specification for use in the list of commands."optional command name palette help lines  command name  palette  lines command implementation help line  palette  help lines palette command name and aliases argument specification summary help line """&Renderer for status line(c) Eric Mertens, 2016ISCemertens@gmail.comNone #9Renders the status line between messages and the textbox.$1The minor status line is used when rendering the /splits and  /mentions* views to show the associated window name.GIndicate when the client is scrolling and old messages are being shown.YIndicate when the client is potentially showing a subset of the available chat messages.Indicate the current connection health. This will either indicate that the connection is being established or that a ping has been sent or long the previous ping round-trip was.TWrap some text in parentheses to make it suitable for inclusion in the status line.#Indicate that the client is in the detailed view.=Indicate that the client isn't showing the metadata lines in normal view..Image for little box with active window names: -[15p]%-Multi-line activity information enabled by F3#client state activity bar, status bar $%window width components to pack #$%#$%#$%'Textbox renderer(c) Eric Mertens, 2016ISCemertens@gmail.comNone&Compute the UI image for the text input box. This computes the logical cursor position on the screen to compensate for VTY's cursor placement behavior.5Renders the whole, uncropped text box as well as the  corresponding to the rendered image which can be used for computing the logical cursor position of the cropped version of the text box. Version of 7 that accounts for how control characters are rendered Version of 7 that accounts for how control characters are renderedRender an unfocused line}Render the active text box line using command highlighting and placeholders, and WYSIWYG mIRC formatting control characters.& cursor column, new offset, image&macro completions &palette &content &plain text rendering, image rendering &&&(Character mnemonics(c) Eric Mertens, 2016ISCemertens@gmail.comNone'HRender the lines of a table showing all of the available digraph entries' client state  output lines ''') Mentions view(c) Eric Mertens, 2016ISCemertens@gmail.comNone(Generate the list of message lines marked important ordered by time. Each run of lines from the same channel will be grouped together. Messages are headed by their window, network, and channel.]Merge a list of sorted lists of mention lines into a single sorted list in descending order. ("client state "list of mentions in time order "mention images and channel labels detailed view window name window focus window (((*Channel information renderer(c) Eric Mertens, 2016ISCemertens@gmail.comNone),Render the lines used in a channel mask list)network channel )))+)Line renderers for channel mask list view(c) Eric Mertens, 2016ISCemertens@gmail.comNone*,Render the lines used in a channel mask list* Mask mode  network  channel ***,Chat message view(c) Eric Mertens, 2016ISCemertens@gmail.comNone-Classify window lines for metadata coalesence   current nick  metadata  palette +   metadata image possible nick transition  possible nick transition metadata entries are reversed;Image, incoming identifier, outgoing identifier if changed ++  +    -URL selection module(c) Eric Mertens, 2016ISCemertens@gmail.comNone,1Generate the lines used for the view when typing /urlRender one line of the url list,window to search argument to command client state image lines my nick palette nick render padding selected index url index sender and url text rendered line ,,,.)Line renderers for channel user list view(c) Eric Mertens, 2016ISCemertens@gmail.comNone-Render the lines used by the /users command in normal mode. These lines show the count of users having each channel mode in addition to the nicknames of the users..Render lines for the /usersu command in detailed view. Each user will be rendered on a separate line with username and host visible when known.-network channel .network channel -.-.-./ View of the list of open windows(c) Eric Mertens, 2016ISCemertens@gmail.comNone/)Draw the image lines associated with the /windows command.////0View selection module(c) Eric Mertens, 2016ISCemertens@gmail.comNone00001 UI renderer(c) Eric Mertens, 2016ISCemertens@gmail.comNone1 Generate a u for the current client state. The resulting client state is updated for render specific information like scrolling.Primary UI render logicGenerate an image corresponding to the image lines of the given focus and subfocus. Returns the number of lines overscrolled to assist in clamping scroll to the lines available in the window.Given an image, break the image up into chunks of at most the given width and stack the resulting chunks vertically top-to-bottom.2@Compute the number of lines in a page at the current window sizeNumber of lines to allocate for the focused window and the main window. This doesn't include the textbox, activity bar, or status line.1 client state /text box cursor position, image, updated state available rows focused window subfocus to render client state overscroll, rendered messages maximum image width unwrapped image wrapped image 2client state scroll amount activity bar height client state main height, extra height 1212122Event loop for IRC client(c) Eric Mertens, 2016ISCemertens@gmail.comNoneX<Sum of the three possible event types the event loop handles Key presses and resizing!Incoming network events"'Timed action and the applicable network#Block waiting for the next V. This function will compute an appropriate timeout based on the current connections.$:Compute the earliest scheduled timed action for the client3"Apply this function to an initial  to launch the client.%*Sound the terminal bell assuming that the BEL control code is supported.&8Respond to a network connection successfully connecting.'1Respond to a network connection closing normally.(3Respond to a network connection closing abnormally.)Respond to an IRC protocol line. This will parse the message, updated the relevant connection state and update the UI buffers.*qClient-level responses to specific IRC messages. This is in contrast to the connection state tracking logic in Client.NetworkState+!Find the ZNC provided server time,6Parses the time format used by ZNC for buffer playback-gReturns the list of values that were stored at the given indexes, if a value was stored at that index.46Update the height and width fields of the client state.Respond to a VTY event./,Map keyboard inputs to actions in the client0Process  and update the 0 textbox and error state. When quitting return .19Execute the the command on the first line of the text box2Respond to a timer event. !"# vty handle  client state $3%3& network id  event time  client state ' network id  event time  client state (failed network current time termination reason client state 4thread failure reason failed network client state )!Network ID of message !current time !Raw IRC message without newlines !client state *5message time challenge network state client state 6now current network client state command 7now current network error message client state +,-4.vty handle vty event client state nothing when finished /vty handle key pressed modifiers held client state 0clear on success command result 1 client state 2Network related to event Action to perform client state 3434 !"#$3%3&'(4)*567+,-4./0128=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxxyz{|}~      !"#$% & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : : ; < = > ? ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` ` a b c d e f g h i j k l m n o pqqrstuvwxyz{|}~8:98      !!"#$%&'()*+,-./0123456789:;;<<=>??@ABCDEFGHIJJKLMNOPQRSTUVuuWWXYZ[\]^_`abcdeffghijklmnopqrstu v w x!y!z!{!|!}!~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " " " """""""""""""""""## #!#"###$#%#&#'$($($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;%<&=&>&?'@(A)B*C+D,E-F.G.H/I0J1K1L2M2N3O4P4Q4R4S4T4U4V4W4X4Y4Z4[4\5]5^5_`ab5c5d5e5f5g66hijhkl6mhkn6ohiphiq667rstusvw7xsvy7zst{|}~|}77`a<=@}                      d  hk                                           hkhk     h`h !"#$%&'()*+,-.+,/+,0123456789:;<=>?@ABCDEFGHI2JKLMNOPQRSTUVWXRYZ[!\!]^_!`^a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~!!!!!!!!""h"h""st"""""""""""""""""""############$1$/$.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%&& & & & & &&&&&&&&&&'''''( (!("(#)$)%)%)&)')()))*)+),)-*.+/,0,1,2,3,4,5,6,7-8-9-:.;.</=/>/?/@/ABC1D1E1F1G2H2I2-2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X2Y2Z2[2\2]2^2_#glirc-2.20.1-JdSaBzVXA9i6YP6mlY9zEHConfig.FromConfigClient.State.FocusClient.State.EditBox.ContentClient.State.EditBoxClient.State.ChannelClient.OptionsClient.MessageClient.Image.PaletteClient.View.PaletteClient.Image.PackedImageClient.State.WindowClient.Image.MircFormattingClient.Image.Message Client.HookClient.Hook.Znc.Buffextras Client.HooksClient.EventLoop.ErrorsClient.Configuration.ColorsClient.Commands.WordCompletionClient.Commands.RecognizerClient.Commands.ExecClient.Commands.ArgumentsClient.Commands.Interpolation#Client.Configuration.ServerSettingsClient.Configuration Client.LogClient.Network.ConnectClient.Network.AsyncClient.Image.ArgumentsClient.CApi.Types Client.CApiClient.Authentication.EcdsaClient.State.Network Client.StateClient.CApi.ExportsClient.CommandsClient.View.HelpClient.Image.StatusLineClient.Image.TextboxClient.View.DigraphsClient.View.MentionsClient.View.ChannelInfoClient.View.MaskListClient.View.MessagesClient.View.UrlSelectionClient.View.UserListClient.View.Windows Client.View Client.ImageClient.EventLoop Build_glirc Paths_glircDigraphs StrictUnit LensUtilsPrefixtoStringisPrefixDataText SectionParser FromConfig parseConfig ConfigParserrunConfigParserfailure extendLoc decodeConfigliftConfigParser parseSections sectionOptsectionOptWith sectionReqsectionReqWithparseSectionsWith parseList$fFromConfig[]$fFromConfigAtom$fFromConfigRatio$fFromConfigInt$fFromConfigInteger$fFromConfigBool$fFromConfigText$fFunctorConfigParser$fApplicativeConfigParser$fMonadConfigParser$fFunctorSectionParser$fApplicativeSectionParser$fMonadSectionParserFocus Unfocused NetworkFocus ChannelFocus $fEqFocus $fShowFocus WindowsFilter AllWindowsNetworkWindowsChannelWindows UserWindowsSubfocus FocusMessages FocusInfo FocusUsers FocusMasks FocusWindows FocusPalette FocusMentions FocusDigraphs FocusHelp _Unfocused _NetworkFocus _ChannelFocus focusNetwork $fOrdFocus$fEqWindowsFilter$fShowWindowsFilter $fEqSubfocus$fShowSubfocusLine_pos_text $fReadLine $fShowLineContentHasLinelinepostextendLine $fHasLineLine $fReadContent $fShowContentabovebelow noContent singleLineshiftjumpLeft jumpRightleftrightleftWord rightWord backspacedelete insertCharinsertPastedString insertStringtoggledigraph$fHasLineContent LastOperation TabOperation KillOperationOtherOperationEditBox$fReadLastOperation$fShowLastOperation $fReadEditBox $fShowEditBoxcontent lastOperationdefaultEditBoxsuccessearlierlaterhomeendkillEndkillHomeyankkillWordBackwardkillWordForwardinsert insertPaste insertDigraph$fHasLineEditBox MaskListEntry_maskListSetter _maskListTimeTopicProvenance _topicAuthor _topicTime ChannelState _chanTopic_chanTopicProvenance_chanUrl _chanUsers _chanModes _chanLists _chanCreation_chanQueuedModeration$fShowTopicProvenance$fShowMaskListEntry$fShowChannelState chanCreation chanLists chanModeschanQueuedModeration chanTopicchanTopicProvenancechanUrl chanUsers topicAuthor topicTimemaskListSetter maskListTime newChannel joinChannel partChannel nickChangesetTopicOptions_optConfigFile_optInitialNetworks _optNoConnect _optShowHelp_optShowVersion_optShowFullVersion optConfigFileoptInitialNetworks optNoConnect getOptions MessageBodyIrcBody ErrorBody NormalBody ClientMessage _msgNetwork_msgBody_msgTime_IrcBody _ErrorBody _NormalBody IrcSummary JoinSummary QuitSummary PartSummary NickSummary ReplySummary ChatSummary CtcpSummary NoSummarymsgBody msgNetworkmsgTimemsgText msgSummary$fEqIrcSummary$fShowIrcSummaryPalette _palNicks_palSelf_palSelfHighlight_palTime_palMeta _palSigil _palLabel _palLatency_palWindowName _palError _palTextBox _palActivity _palMention _palCommand_palCommandReady_palCommandPrefix_palCommandError_palCommandPlaceholder_palWindowDivider $fShowPalette palActivity palCommandpalCommandErrorpalCommandPlaceholderpalCommandPrefixpalCommandReadypalErrorpalLabel palLatency palMentionpalMetapalNickspalSelfpalSelfHighlightpalSigil palTextBoxpalTimepalWindowDivider palWindowNamedefaultPalette paletteMappaletteViewLinesImage'_Image' $fGMirrorK1K1 $fGMirrorU1U1$fGMirror:+::+:$fGMirror:*::*: $fGMirrorM1M1$fMirrorImage'Image$fMirrorImageImage'$fMirrorTextText$fMirrorTextText0$fMirrorIntInt$fMirrorAttrAttr $fShowImage'$fGenericImage'WindowLineImportanceWLBoringWLNormal WLImportantWindow _winMessages _winUnread _winTotal _winMention WindowLine _wlSummary_wlText _wlImage' _wlFullImage' _wlImportance _wlTimestamp$fEqWindowLineImportance$fShowWindowLineImportance winMention winMessageswinTotal winUnread wlImportance wlSummarywlText wlTimestampwlImage wlFullImage emptyWindow addToWindow windowSeen0$fEachWindowLinesWindowLinesWindowLineWindowLine parseIrcTextparseIrcTextExplicit controlImage plainTextIdentifierColorModePrivmsgIdentifierNormalIdentifier RenderMode NormalRenderDetailedRenderMessageRendererParams rendStatusMsgrendUserSigils rendNicks rendMyNicks rendPaletterendNickPaddingdefaultRenderParamsmsgImage cleanChar cleanTextrightPadcoloredIdentifiercoloredUserInfoquietIdentifier metadataImg ignoreImage MessageHook_messageHookName_messageHookStateful_messageHookAction MessageResult PassMessage OmitMessage RemapMessage$fMonoidMessageResult$fSemigroupMessageResultmessageHookActionmessageHookNamemessageHookStatefulapplyMessageHooksbuffextrasHook messageHooksexceptionToLines parseAttr parseColorWordCompletionModewcmStartPrefixwcmStartSuffixwcmMiddlePrefixwcmMiddleSuffixplainWordCompleteModedefaultNickWordCompleteModeslackNickWordCompleteMode wordComplete $fPrefixText$fPrefixIdentifier$fShowWordCompletionMode RecognitionExactInvalid Recognizer recognize fromCommands addCommandkeys$fMonoidRecognizer$fShowRecognizer$fFunctorRecognizer$fShowRecognition$fFunctorRecognitionExecCmd_execOutputNetwork_execOutputChannel _execCommand _execStdIn_execArguments $fReadExecCmd $fShowExecCmdexecOutputChannelexecOutputNetwork parseExecCmd runExecCmd ArgumentSpec ReqTokenArg OptTokenArg RemainingArgNoArgparseArguments$fShowArgumentSpec MacroSpecMacro macroSpec macroCommandsExpansionChunk LiteralChunk VariableChunk IntegerChunk DefaultChunknoMacroArgumentsparseMacroSpecsparseExpansionresolveMacroExpansions$fShowMacroSpec$fShowExpansionChunk $fShowMacroUseTlsUseInsecureTls UseInsecureServerSettings_ssNicks_ssUser_ssReal _ssUserInfo _ssPassword_ssSaslUsername_ssSaslPassword_ssSaslEcdsaFile _ssHostName_ssPort_ssTls_ssTlsClientCert_ssTlsClientKey_ssTlsServerCert _ssTlsCiphers_ssConnectCmds _ssSocksHost _ssSocksPort_ssChanservChannels_ssFloodPenalty_ssFloodThreshold_ssMessageHooks_ssName_ssReconnectAttempts_ssAutoconnect_ssNickCompletion _ssLogDir $fShowUseTls$fShowServerSettings ssAutoconnectssChanservChannels ssConnectCmdsssFloodPenaltyssFloodThreshold ssHostNamessLogDirssMessageHooksssNamessNickCompletionssNicks ssPasswordssPortssRealssReconnectAttemptsssSaslEcdsaFilessSaslPasswordssSaslUsername ssSocksHost ssSocksPortssTls ssTlsCiphersssTlsClientCertssTlsClientKeyssTlsServerCertssUser ssUserInfoloadDefaultServerSettings Configuration_configDefaults_configServers_configPalette_configWindowNames_configExtraHighlights_configNickPadding_configConfigPath _configMacros_configExtensions_configUrlOpener_configIgnores_configActivityBar_configBellOnMention$fShowConfigurationConfigurationFailureConfigurationReadFailedConfigurationParseFailedConfigurationMalformedconfigActivityBarconfigBellOnMentionconfigConfigPathconfigDefaultsconfigExtensionsconfigExtraHighlights configIgnores configMacrosconfigNickPadding configPalette configServersconfigUrlOpenerconfigWindowNamesloadConfigurationresolveConfigurationPath$fExceptionConfigurationFailure$fShowConfigurationFailureLogLine logBaseDirlogDay logTargetlogLine writeLogLineignoreProblems renderLogLinewithConnectionTerminationReason PingTimeoutForcedDisconnect NetworkEvent NetworkOpen NetworkLine NetworkError NetworkCloseNetworkConnection NetworkIdsendabortConnectioncreateConnection$fExceptionTerminationReason$fShowNetworkConnection$fShowTerminationReasonargumentsImage FgnStringLenFgnCmdfcParamsfcParamNFgnMsg fmNetwork fmPrefixNick fmPrefixUser fmPrefixHost fmCommandfmParamsfmParamN fmTagKeys fmTagValsfmTagN FgnExtensionfgnStartfgnStop fgnMessage fgnCommandfgnNamefgnMajorVersionfgnMinorVersionDynamicProcessCommandProcessMessage StopExtensionStartExtension MessageCoderunProcessCommandrunProcessMessagerunStopExtensionrunStartExtension normalMessage errorMessage passMessage dropMessage$fStorableFgnStringLen$fStorableFgnCmd$fStorableFgnMsg$fStorableFgnExtension$fEqMessageCode$fEqMessageResultActiveExtensionaeFgnaeDL aeSessionaeNameaeMajorVersionaeMinorVersionextensionSymbolactivateExtensiondeactivateExtensionnotifyExtensionscommandExtension$fFunctorNestedIO$fApplicativeNestedIO$fMonadNestedIO$fMonadIONestedIOauthenticationModeencodeUsernamecomputeResponse Transaction NoTransactionNamesTransactionBanTransactionWhoTransaction PingStatusPingSent PingLatency PingNeverPingConnecting UserAndHostAuthenticateStateAS_NoneAS_PlainStartedAS_EcdsaStartedAS_EcdsaWaitChallenge NetworkState _csNetworkId _csChannels _csSocket _csModeTypes_csChannelTypes_csTransaction_csModes _csStatusMsg _csSettings _csUserInfo_csUsers _csModeCount _csNetwork_csNextPingTime _csPingStatus_csLastReceived_csMessageHooks_csAuthenticationState$fShowAuthenticateState$fShowUserAndHost$fShowPingStatus$fShowTransaction$fShowNetworkStatecsAuthenticationStatecsChannelTypes csChannelscsLastReceivedcsMessageHooks csModeCount csModeTypescsModes csNetwork csNetworkIdcsNextPingTime csPingStatus csSettingscsSocket csStatusMsg csTransaction csUserInfocsUsers TimedActionTimedDisconnect TimedSendPing_PingConnectingcsNicksendMsgnewNetworkState applyMessage squelchIrcMsgiHaveOpinitialMessagesisChannelIdentifiercsUsernextTimedActionapplyTimedActionsendModeration useChanServ sendTopic$fEqTimedAction$fOrdTimedAction$fShowTimedActionExtensionState ClientState_clientWindows_clientPrevFocus _clientFocus_clientSubfocus_clientExtraFocus_clientConnections_clientNextConnectionId _clientEvents_clientNetworkMap _clientConfig_clientTextBox_clientTextBoxOffset _clientWidth _clientHeight _clientScroll_clientDetailView_clientActivityBar_clientShowMetadata _clientRegex _clientBell_clientIgnores_clientExtensions_clientLogQueueclientActivityBar clientBell clientConfigclientConnectionsclientDetailView clientEventsclientExtensionsclientExtraFocus clientFocus clientHeight clientIgnoresclientLogQueueclientNetworkMapclientNextConnectionIdclientPrevFocus clientRegex clientScrollclientShowMetadataclientSubfocus clientTextBoxclientTextBoxOffset clientWidth clientWindowsesActive clientParkclientConnectionclientFirstLine clientLinewithClientState abortNetworkrecordChannelMessage identIgnoredrecordIrcMessagerecordNetworkMessage clientTick consumeInputcurrentCompletionListcurrentNickCompletionMode clientMatcherclientActiveRegexclientActiveCommand urlPattern urlMatches removeNetwork addConnectionapplyMessageToClientStateclientShutdownclientStartExtensions scrollClientclientExtraFocusesjumpToActivity jumpFocus changeFocuschangeSubfocus returnFocus advanceFocus retreatFocusadvanceNetworkFocusclientHighlightsclientWindowNames clientPaletteclientAutoconnectsGlirc_clear_windowGlirc_mark_seen Glirc_my_nickGlirc_list_channel_usersGlirc_list_channelsGlirc_identifier_cmpGlirc_list_networks Glirc_printGlirc_send_messageCommandcmdNamescmdArgumentSpeccmdDocumentationcmdImplementation CommandImpl ClientCommandNetworkCommand ChatCommandChannelCommand CommandResultCommandSuccessCommandFailure CommandQuitexecuteexecuteUserCommandcommandExpansion tabCompletioncommands commandsListhelpImageLinesstatusLineImageminorStatusLineImageactivityBarImage textboxImage digraphLinesmentionsViewLineschannelInfoImagesmaskListImageschatMessageImagesurlSelectionViewuserListImagesuserInfoImages windowsImages viewLines clientPicture scrollAmount eventLoopupdateTerminalSizedepscatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName DigraphList lookupDigraph digraphToIntghc-prim GHC.TypesIntEntryNil digraphMapdigraphListToListdigraphsbaseData.Semigroup SemigroupGHC.BaseMonoid$fMonoidStrictUnitmappend$fSemigroupStrictUnit<>stimes overStrict"lens-4.15.1-GIqMfFkWZyYIqq1QNYTt5ZControl.Lens.TypeSetterControl.Lens.Setterover setStrictsetzonedTimeLocalTimeLens time-1.6.0.1Data.Time.LocalTime.LocalTime LocalTime ZonedTimelocalTimeTimeOfDay localTimeDay'config-value-0.5-1HCDOGaS28yElYuxvvBJsR Config.ValueValueSectionsListAtomNumberTrue#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.Internal toHashMapduplicateCheckfloatingToRatio currentLine forwardLine backwardLine_above _currentLine_below emptyLine beginLineupdateYankBuffer_content_history _historyPos _yankBuffer_lastOperation KillDirection KillForward KillBackwardhistory historyPos yankBufferdefaultOptionsoptions gitHashTxt gitDirtyTxtoptShowFullVersion optShowHelpoptShowVersionoptOrderhelpTxt tryHelpTxt versionTxtfullVersionTxt ircSummarydefaultNickColorPalettedigits digitImagecolumns!vty-5.11.1-IOfA2hjbE0wJLwNGofp7q1Graphics.Vty.Image.InternalImagecompressGMirrorgmirrorMirrormirror HorizText' HorizJoin' VertJoin'BGFill' CropRight' CropLeft' CropBottom'CropTop' EmptyImage'textsWithEqAttr horizList WindowLines:- wlFullImage'wlImage'String FormatState_fmtFore_fmtBack_fmtBold _fmtItalic _fmtUnderline _fmtReverseSegment TextSegmentControlSegmentfmtBackfmtBoldfmtFore fmtItalic fmtReverse fmtUnderline formatAttrdefaultFormatState parseIrcText'pSegmentpIrcLine pColorNumbersoptional applyColors mircColor rgbColor'applyControlEffect renderTimestatusMsgImage bodyImage timeImage datetimeImage ircLineImageseparatedParamsircWordsparseIrcTextWithNickshighlightNicks errorImage normalImage renderCapCmdseparatorImagerenderReplyCode'irc-core-2.2.0.0-E8BxQjVrKzx5w7scJDdGfo Irc.MessageIrcMsgNothingJustmaybeFromResultremapprefixedParser allTokens skipTokenparseId filterEmpty parseReasonindentMessagesexceptionToLines'explainIOErrorexplainHookupErrorexplainSocksErrorGraphics.Vty.AttributesdefAttrparseColorNumber parseIntegerparseAttrEntry parseStyles parseStyleparseRgb namedColors Data.String fromString GHC.Classes<= currentWord tabSearch replaceWith splitCommonsinglebothall childKeysBranch emptyExecCmd powerWords Data.OldListwords execArguments execCommand execStdIn nextToken macroSpecs parseChunkparseDefaulted parseVariablegetOldConfigPathdirectory-1.2.6.2System.DirectorygetAppUserDataDirectorygetNewConfigPathgetXdgDirectory XdgConfigemptyConfigFilereadFileCatchNotFoundreadConfigurationFiledefaultWindowNamesparseConfiguration parsePalette paletteHelper parseServersparseServerSettingsparseServerSetting parseNicks parseUseTlsparseNumparseIdentifier parseString parseMacroMap parseMacroparseMacroArgumentsparseMacroCommandparseNickCompletion%hookup-0.1.0.0-APRljqs0FedENWwdCnMlJyHookup ConnectionbuildConnectionParamsircPort connOutQueue connAsyncstartConnectionreportNetworkOpensendLoopircMaxMessageLength receiveLoopmkPlaceholdersNestedIO withRawIrcMsg Irc.RawIrcMsg RawIrcMsg evalNestedIOnest1nest2 withCommandwithTagwithTextnoReply doWelcome Irc.Codes RPL_WELCOME doBadNickERR_NICKNAMEINUSErecordListEntrysaveList squelchReplymassRegistration_NoTransaction_NamesTransaction_BanTransaction_WhoTransaction _PingSent _PingLatency _PingNever utf8ChunksOf overChannel overChannels applyMessage'doTopicparseTimeParamdoRpldoModedoChannelModes doMyModes supportedCapsdoAuthenticatedoCap loadNamesList createOnJoin updateMyNickisupport parseISupportupdateChanModesupdateChanPrefix parsePrefixes recordUser forgetUser renameUser forgetUser'doPong _esActive_esMVarGHC.MVarMVar _esStablePtr GHC.Stable StablePtr FocusSelector stepFocus TraversalsplitStatusMsgModes msgImportance ircIgnorablecomputeMsgLineSigilscomputeUserSigilsrecordWindowLine toWindowLine' toWindowLinemarkSeenapplyWindowRenamesclientStopExtensionsclientHighlightsNetworkesMVar esStablePtrwithExtensionState recordLogLinenetworkChannelListchannelUserList derefToken peekFgnMsgpeekFgnStringLenglirc_send_message glirc_printglirc_list_networksglirc_identifier_cmpglirc_list_channelsglirc_list_channel_users glirc_my_nickglirc_mark_seenglirc_clear_windowcommandSuccesscommandFailurecommandFailureMsg executeChatexecuteCommand expandAliases noClientTab noNetworkTab noChannelTabsimpleClientTabsimpleNetworkTabsimpleChannelTabcmdExitcmdClearcmdQuotecmdMecmdCtcp cmdNoticecmdMsg chatCommand chatCommand' cmdWindows cmdMentions cmdPalette cmdDigraphscmdHelp tabSplits cmdSplits tabConnecttabFocuscmdSay cmdChannel tabChannelchannelWindowsOnNetwork cmdReconnect cmdReload tabReloadcomputeModeCompletionisPublicChannelModenickTabCompletioncmdExeccmdGrep cmdConnectcmdFocus tabWindowstabHelpsimpleTabCompletioncmdWhoiscmdWho cmdWhowascmdIson cmdUserhostcmdStatscmdAwaycmdLinkscmdTimecmdZnccmdZncPlaybackcmdModecmdNickcmdPart cmdInvitecommandSuccessUpdateCScmdTopictabTopiccmdUserscmdChannelInfocmdMaskscmdKick cmdKickBancomputeBanUserInfo cmdRemovecmdJoincmdQuit cmdDisconnect cmdIgnore modeCommandtabMode activeNickscommandNameCompletion cmdExtension recordError recordSuccesscmdUrlopenUrlcommandHelpLinesexplainContextlistAllCommandscommandSummary scrollImage filterImage latencyImage infoBubble detailImage nometaImageactivitySummary makeLines myNickImage focusImagefocusImageMajorparensviewFocusLabelchannelModesImageviewSubfocusLabelwindowFilterName renderContent myWcwidthGraphics.Text.Widthwcwidth myWcswidthwcswidthrenderOtherLine renderLine entryWidthsepWidthsep drawEntrymerge MentionLine mlTimestamp mlWindowNamemlFocusmlImage addMarkers windowEntriesmerge2smerge2channelInfoImages'maskListImages'metadataWindowLine MetadataStatedetailedImagesWithoutMetadatawindowLinesToImages startMetadatatransitionMetadatacontinueMetadatagatherMetadataLinesdrawmatches summaryActoruserListImages'userInfoImages' windowMatcherrenderWindowColumns createColumns renderedFocusrenderedWindowInfoGraphics.Vty.PicturePicture clientImage messagePanelineWrapclientWindowHeights ClientEventVtyEvent TimerEventgetEvent earliestEventbeep doNetworkOpendoNetworkClosedoNetworkError doNetworkLineclientResponsecomputeEffectiveTime parseZncTimelookups doVtyEventdoKeydoCommandResult executeInput doTimerEventprocessLogEntriesreconnectLogicprocessSaslEcdsaprocessConnectCmd