!\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ (Helpers for interpreting IRC reply codes(c) Eric Mertens, 2016ISCemertens@gmail.comNoneg*kirc-coreLInformation describing the category and human decipherable name of a reply.irc-corecategoryirc-corehuman-decipherable nameirc-coreCategories for reply codesirc-core'0-99 Messages between client and serverirc-core200-399 Responses to commandsirc-core400-599 Errorsirc-core Uncategorized irc-coreType of numeric reply codesirc-core$Compute information for a reply codeirc-corekCategorize a reply code using the unknown category and simply showing the reply code's number as its name.irc-coreDInformation about reply codes as derived from Freenode's ircd-seven.irc-coreReads only the numberirc-core Shows number  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  3Type and operations for nicknames and channel names(c) Eric Mertens, 2016ISCemertens@gmail.comNoneE)irc-core.Identifier representing channels and nicknames\irc-core9This indexing function exists to specialize the type of ].irc-core Construct an  from a ^irc-coreReturns the original _ of an irc-core Returns a ` of an R which is suitable for comparison or hashing which has been normalized for case.irc-coreReturns the case-normalized _ for an identifier.irc-coreReturns a3 when the first argument is a prefix of the second.birc-corecCapitalize a string according to RFC 2812 Latin letters are capitalized and {|}~ are mapped to []^irc-core@c =  . circ-coreHash on normalized identifierirc-core#Comparison on normalized identifierirc-coreRead as string literalirc-coreShow as string literalirc-core!Equality on normalized identifierRate limit operations for IRC(c) Eric Mertens, 2016ISCemertens@gmail.comSafeMirc-coreThe O keeps track of rate limit settings as well as the current state of the limit.dirc-coreTime that client can sendirc-core@Construct a new rate limit with the given penalty and threshold.irc-core)Account for an event in the context of a . This command will block and delay as required to satisfy the current rate. Once it returns it is safe to proceed with the rate limited action.irc-corepenalty seconds irc-corethreshold seconds User hostmasks(c) Eric Mertens, 2016ISCemertens@gmail.comNoneW0 irc-cored packages a nickname along with the username and hsotname if they are known in the current context.irc-corenicknameirc-coreusername, empty when missingirc-corehostname, empty when missingirc-core Lens into  field.irc-core Lens into  field.irc-core Lens into  field.irc-coreRender  as nick!username@hostnameirc-coreSplit up a hostmask into a nickname, username, and hostname. The username and hostname might not be defined but are delimited by a ! and @ respectively.   Local definition of view(c) Eric Mertens, 2016ISCemertens@gmail.comSafeYeirc-core(Local definition of lens package's view.e(Low-level representation of IRC messages(c) Eric Mertens, 2016ISCemertens@gmail.comNoneirc-coreKey value pair representing an IRCv3.2 message tag. The value in this pair has had the message tag unescape algorithm applied.irc-core breaks down the IRC protocol into its most basic parts. The "trailing" parameter indicated in the IRC protocol with a leading colon will appear as the last parameter in the parameter list.8Note that RFC 2812 specifies a maximum of 15 parameters.This parser is permissive regarding spaces. It aims to parse carefully constructed messages exactly and to make a best effort to recover from extraneous spaces. It makes no effort to validate nicknames, usernames, hostnames, commands, etc. Servers don't all agree on these things. .:prefix COMMAND param0 param1 param2 .. paramNirc-coreIRCv3.2 message tagsirc-coreOptional sender of messageirc-coreCommandirc-coreCommand parametersirc-core Lens for irc-core Lens for irc-core Lens for irc-core Lens for irc-coremAttempt to split an IRC protocol message without its trailing newline information into a structured message.firc-coreRFC 2812 specifies that there can only be up to 14 "middle" parameters, after that the fifteenth is the final parameter and the trailing : is optional!girc-coreParse a whole IRC message assuming that the trailing newlines have already been removed. This parser will parse valid messages correctly but will also accept some invalid messages. Presumably the server isn't sending invalid messages!hirc-coreWParse the list of parameters in a raw message. The RFC allows for up to 15 parameters.irc-coreParse a rendered  token.irc-core$Take the next space-delimited lexemeirc-corexSerialize a structured IRC protocol message back into its wire format. This command adds the required trailing newline.irc-coreConstruct a new  without a time or prefix.iirc-coreConcatenate a list of parameters into a single, space-delimited bytestring. Use a colon for the last parameter if it starts with a colon or contains a space.jirc-coreQWhen the current input matches the given character parse using the given parser.kirc-coreReturns a/ iff next character in stream matches argument.irc-coreTry to decode a message as UTF-8. If that fails interpret it as Windows CP1252 This helps deal with clients like XChat that get clever and otherwise misconfigured clients.lirc-core Decode a ^ as CP1252mirc-coreThis character encoding is a superset of ISO 8859-1 in terms of printable characters, but differs from the IANA's ISO-8859-1 by using displayable characters rather than control characters in the 80 to 9F (hex) range.hirc-corepossible middle parameters irc-corecommand irc-core parameters Smart constructors for  RawIrcMsg(c) Eric Mertens, 2016ISCemertens@gmail.comNone7irc-core Payload for irc-corePRIVMSG commandirc-coreCPRIVMSG command (CPRIVMSG <nickname> <channel> :<message>irc-coreCNOTICE command 'CNOTICE <nickname> <channel> :<message>irc-core KNOCK command KNOCK <channel> [<message>]irc-coreNOTICE commandirc-core MODE commandirc-core WHOIS commandirc-core WHO commandirc-coreWHOWAS commandnirc-coreWALLOPS commandirc-core NICK commandirc-core PART commandirc-core JOIN commandirc-coreINVITE commandirc-core TOPIC commandirc-core KICK commandirc-core KILL commandirc-core KLINE commandirc-coreUNKLINE commandirc-coreTESTLINE commandirc-coreTESTMASK commandirc-coreMASKTRACE commandirc-coreCHANTRACE commandirc-coreETRACE commandirc-coreREMOVE commandirc-core QUIT commandirc-core PASS commandirc-core LIST commandirc-core PING commandirc-core PONG commandirc-core ISON commandirc-core TIME commandirc-coreUSERHOST commandoirc-coreUSERIP commandpirc-core USERS commandirc-core STATS commandirc-core OPER commandirc-core LINKS commandirc-core AWAY commandirc-core MAP commandirc-core INFO commandirc-core RULES commandirc-coreVERSION commandirc-coreLUSERS command LUSERS [<mask> [<server>]]irc-core MOTD command MOTD [<server>]irc-core ADMIN command ADMIN [<target>] irc-core USER command irc-coreCAP REQ command irc-coreCAP END command irc-core(CAP LS command - support CAP version 3.2 irc-core ZNC commandspecific to ZNCirc-core]AUTHENTICATE command generator. Returns a list because AUTHENTICATE has a chunking behavior.irc-core9Encoding of username and password in PLAIN authenticationirc-core/Encoding of username in EXTERNAL authentication3irc-coretarget irc-coremessage irc-core nickname irc-core channel irc-core message irc-core nickname irc-core channel irc-core message irc-core channel irc-core message irc-coretarget irc-coremessage irc-core target irc-core parameters irc-core parameters irc-core parameters irc-core parameters nirc-coremessage irc-core nickname irc-corechannel irc-coremessage irc-corechannel irc-corekey irc-core nickname irc-core channel irc-corechannel irc-coretopic irc-core channel irc-core nickname irc-core message irc-coreclient irc-coremessage irc-coreminutes irc-coremask irc-corereason irc-coremask irc-coremask irc-coremask irc-coregecos irc-coremask irc-coregecos irc-corechannel irc-core argument irc-core channel irc-core nickname irc-core message irc-core quit message irc-core password irc-core parameters irc-core parameters irc-core parameters irc-core nicknames irc-core servername irc-core parameters oirc-core parameters pirc-coreserver irc-core parameters irc-core username irc-core password irc-core parameters irc-coremessage irc-core servername irc-coreserver irc-coreparams irc-coreserver irc-coretarget  irc-core username irc-core realname  irc-core capabilities  irc-core parameters irc-coreauthentication mechanism irc-coreauthentication payload irc-core username irc-core password irc-core username 6     6     (Operations for interpreting mode changes(c) Eric Mertens, 2016ISCemertens@gmail.comSafedirc-core5Settings that describe how to interpret channel modesirc-core"modes for channel lists (e.g. ban)irc-core"modes that always have an argumentirc-core$modes that have an argument when setirc-coremodes that never have argumentsirc-core0modes requiring a nickname argument (mode,sigil)irc-core Lens for  _modesListirc-core Lens for irc-core Lens for irc-core Lens for irc-core Lens for irc-core"The channel modes used by Freenode irc-core"The default UMODE used by Freenode!irc-core\Split up a mode change command and arguments into individual changes given a configuration."irc-coreSConstruct the arguments to a MODE command corresponding to the given mode changes.!irc-coremode interpretation irc-coremodes irc-corearguments irc-core(set, mode, parameter) "irc-core(set,mode,parameter)  !" !")High-level representation of IRC messages(c) Eric Mertens, 2016ISCemertens@gmail.comNoneT,$irc-core8Targets used to direct a message to a window for display%irc-coreMetadata update for a user&irc-core(Directed message to channel or from user'irc-coreNetwork-level message(irc-coreCompletely hidden message)irc-core.Sub-commands of the CAP command sent by server*irc-corelist of supported caps+irc-corelist of active caps,irc-corerequest accepted-irc-corerequest denied.irc-core/new capability available (cap-notify extension)/irc-core)capability removed (cap-notify extension)3irc-core%High-level IRC message representation4irc-core#pass-through for unhandled messages5irc-corecode arguments6irc-coreold new7irc-core#user channel account(extended-join)8irc-coreuser channel reason9irc-core user reason:irc-corekicker channel kickee comment;irc-coreuser channel topic<irc-coresource target txt=irc-coresource target command txt>irc-coresource target command txt?irc-coresource target txt@irc-coresource target txtAirc-core parametersBirc-corecap command and parametersCirc-core parametersDirc-core parametersEirc-coremessageFirc-corereference-id type parametersGirc-core reference-idHirc-core4user account name changed (account-notify extension)Iirc-core%Target, new username and new hostnameJirc-core"Braodcast message: Source, messageqirc-core0Match command text to structured cap sub-commandKirc-coreInterpret a low-level  as a high-level 34. Messages that can't be understood are wrapped in 4.rirc-coreParse a CTCP encoded message: ^ACOMMAND arguments^ALirc-coreXTarget information for the window that could be appropriate to display this message in.Mirc-core' of the user responsible for a message.Nirc-coreXText representation of an IRC message to be used for matching with regular expressions.Pirc-core`Split a nick into text parts group by whether or not those parts are valid nickname characters.Qirc-coreMaximum length computation for the message part for privmsg and notice. Note that the need for the limit is because the server will limit the length of the message sent out to each client, not just the length of the messages it will recieve.Note that the length is on the *encoded message* which is UTF-8 The calculation isn't using UTF-8 on the userinfo part because I'm assuming that the channel name and userinfo are all ASCII .:my!user@info PRIVMSG #channel :messagebodyrn .$%&'()*+,-./0123E456789:;<=>?@ABCDFGHIJKLMNOPQ.3E456789:;<=>?@ABCDFGHIJ)*+,-./012K$%&'(NLMPQOs      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01233456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg_`hijklmnop qrstuvwxyz{|}~%irc-core-2.7.1-BcfFiS7xujFJL7AM98fo7M Irc.CodesIrc.Identifier Irc.RateLimit Irc.UserInfo Irc.RawIrcMsg Irc.Commands Irc.Modes Irc.MessageView ReplyCodeInfo replyCodeType replyCodeText ReplyTypeClientServerReply CommandReply ErrorReply UnknownReply ReplyCodeERR_NUMERIC_ERRERR_TEXTTOOSHORTERR_NOLANGUAGEERR_TOOMANYLANGUAGESERR_BADCHARENCODINGERR_SERVERMODELOCKERR_UNKNOWNSERVERMODEERR_CANNOTSENDTONICKERR_CANNOTCHANGESERVERMODEERR_CANNOTCHANGECHANMODEERR_CANNOTCHANGEUMODEERR_CANNOTDOCOMMAND RPL_SASLMECHSRPL_SASLALREADYRPL_SASLABORTEDRPL_SASLTOOLONG RPL_SASLFAILRPL_SASLSUCCESSRPL_NICKLOCKED RPL_LOGGEDOUT RPL_LOGGEDIN RPL_XINFOENDRPL_XINFOSTART RPL_XINFORPL_SCANUMODESRPL_SCANMATCHEDERR_MLOCKRESTRICTEDRPL_ENDOFRSACHALLENGE2RPL_RSACHALLENGE2ERR_MONLISTFULLRPL_ENDOFMONLIST RPL_MONLISTRPL_MONOFFLINE RPL_MONONLINERPL_ENDOFQUIETLIST RPL_QUIETLISTRPL_TESTMASKGECOSRPL_NOTESTLINE RPL_TESTLINE RPL_TESTMASK ERR_NOPRIVSRPL_ENDOFOMOTD RPL_OMOTDRPL_OMOTDSTART RPL_UMODEGMSGRPL_TARGNOTIFYRPL_TARGUMODEGERR_KNOCKDISABLEDERR_KNOCKONCHAN ERR_CHANOPENERR_TOOMANYKNOCK RPL_KNOCKDLVR RPL_KNOCK RPL_ETRACERPL_ETRACEFULLERR_TARGCHANGE RPL_ENDOFHELP RPL_HELPTXT RPL_HELPSTARTRPL_ENDOFMODLIST RPL_MODLISTRPL_WHOISLANGUAGERPL_WHOISSTAFF RPL_LANGUAGERPL_YOURLANGUAGEIS RPL_NETWORKSRPL_TIMEONSERVERISRPL_LUSERSTAFFRPL_CANNOTSETMODESRPL_UNKNOWNMODESRPL_WHOISSECURERPL_WHOWASDETAILSRPL_ENDOF_GENERICRPL_OTHERUMODEISRPL_SERVMODEIS RPL_CHANREDIRRPL_MODECHANGEWARNRPL_TRACEROUTE_STARTRPL_TRACEROUTE_HOP RPL_EODUMP RPL_DUMPRPL RPL_DUMPINGRPL_ENDOFSETTINGS RPL_SETTINGS RPL_ENDOFO RPL_RULES RPL_DCCINFORPL_WHOWASHOSTRPL_ENDOFDCCLIST RPL_DCCLIST RPL_DCCSTATUSRPL_ENDOFISOPER RPL_ISNOTOPER RPL_ISLOCOP RPL_ISOPERRPL_WATCHCLEARRPL_ENDOFWATCHLIST RPL_WATCHLIST RPL_NOWOFF RPL_NOWON RPL_WATCHSTAT RPL_WATCHOFF RPL_LOGOFF RPL_LOGONERR_STATSSLINEERR_USINGSLINEERR_HOSTUNAVAILERR_BADHOSTMASKERR_PFXUNROUTABLE ERR_REMOTEPFXERR_HELPNOTFOUNDERR_WHOLIMEXCEED ERR_WHOSYNTAXERR_LISTSYNTAX ERR_WHOTRUNCERR_MASKTOOWIDE ERR_OPERONLYERR_TOOMANYUSERS ERR_ADMONLY ERR_LONGMASK ERR_NOINVITE ERR_DISABLED ERR_DONTCHEAT ERR_BADEXPIRE ERR_WRONGPONGERR_TOOMANYWATCHERR_SILELISTFULLERR_USERNOTONSERVERR_GHOSTEDCLIENTERR_USERSDONTMATCHERR_UMODEUNKNOWNFLAGERR_CHANOWNPRIVNEEDEDERR_ISOPERLCHANERR_BADLOGVALUE ERR_BADLOGSYSERR_BADLOGTYPE ERR_OWNMODE ERR_NOFEATUREERR_NOSERVICEHOSTERR_NOOPERHOSTERR_VOICENEEDEDERR_TSLESSCHAN ERR_NONONREGERR_BANNEDNICKERR_ISCHANSERVICEERR_CANTKILLSERVERERR_CHANOPRIVSNEEDEDERR_NOPRIVILEGES ERR_THROTTLEERR_BADCHANNAMEERR_BANLISTFULLERR_NEEDREGGEDNICKERR_BADCHANMASKERR_BADCHANNELKEYERR_BANNEDFROMCHANERR_INVITEONLYCHANERR_UNKNOWNMODEERR_CHANNELISFULLERR_LINKCHANNEL ERR_LINKSETERR_ONLYSERVERSCANCHANGEERR_INVALIDUSERNAME ERR_KEYSETERR_YOUWILLBEBANNEDERR_YOUREBANNEDCREEPERR_PASSWDMISMATCHERR_NOPERMFORHOSTERR_ALREADYREGISTEREDERR_NEEDMOREPARAMSERR_NOTFORHALFOPS ERR_NOHIDING ERR_ACCEPTNOTERR_ACCEPTEXISTERR_ACCEPTFULLERR_HOSTILENAME ERR_NICKLOSTERR_IDCOLLISIONERR_NOTREGISTEREDERR_NOTIMPLEMENTEDERR_NONICKCHANGEERR_USERSDISABLEDERR_SUMMONDISABLED ERR_NOLOGINERR_USERONCHANNELERR_NOTONCHANNELERR_USERNOTINCHANNELERR_SERVICESDOWNERR_TARGETTOOFASTERR_NICKTOOFASTERR_UNAVAILRESOURCEERR_NICKCOLLISIONERR_BANNICKCHANGE ERR_NORULESERR_SERVICENAMEINUSEERR_NICKNAMEINUSEERR_ERRONEUSNICKNAMEERR_NONICKNAMEGIVENERR_EVENTNICKCHANGEERR_TOOMANYAWAYERR_NOOPERMOTD ERR_FILEERRORERR_NOADMININFO ERR_NOMOTDERR_UNKNOWNCOMMANDERR_LENGTHTRUNCATEDERR_TOOMANYMATCHES ERR_BADMASKERR_WILDTOPLEVELERR_NOTOPLEVELERR_NOTEXTTOSENDERR_NORECIPIENT ERR_NOORIGINERR_TOOMANYTARGETSERR_WASNOSUCHNICKERR_TOOMANYCHANNELSERR_CANNOTSENDTOCHANERR_NOSUCHCHANNELERR_NOSUCHSERVERERR_NOSUCHNICKERR_UNKNOWNERRORRPL_HOSTHIDDEN RPL_NOUSERSRPL_ENDOFUSERS RPL_USERSRPL_USERSSTARTRPL_TIMERPL_RSACHALLENGERPL_NOTOPERANYMORE RPL_MYPORTISRPL_YOURESERVICE RPL_REHASHING RPL_YOUREOPERRPL_WHOISMODES RPL_WHOISHOST RPL_ENDOFMOTD RPL_MOTDSTART RPL_ENDOFINFO RPL_INFOSTARTRPL_MOTDRPL_INFORPL_ENDOFWHOWASRPL_ENDOFBANLIST RPL_BANLISTRPL_ENDOFNAMESRPL_ENDOFLINKS RPL_LINKS RPL_CLOSEEND RPL_CLOSING RPL_KILLDONERPL_WHOWASREAL RPL_NAMREPLY_ RPL_WHOSPCRPL RPL_NAMREPLY RPL_WHOREPLY RPL_VERSIONRPL_ENDOFEXCEPTLISTRPL_EXCEPTLISTRPL_ENDOFINVEXLIST RPL_INVEXLIST RPL_INVITED RPL_SUMMONING RPL_INVITINGRPL_BADCHANPASSRPL_WHOISACTUALLYRPL_LISTSYNTAXRPL_COMMANDSYNTAX RPL_LISTUSAGERPL_TOPICWHOTIME RPL_TOPIC RPL_NOTOPICRPL_WHOISACCOUNTRPL_WHOWAS_TIMERPL_CREATIONTIMERPL_CHANNEL_URLRPL_CHPASSUNKNOWNRPL_NOCHANPASSRPL_CHANNELMLOCKISRPL_CHANNELMODEIS RPL_LISTENDRPL_LIST RPL_LISTSTARTRPL_WHOISSPECIALRPL_WHOISCHANNELSRPL_ENDOFWHOIS RPL_WHOISIDLERPL_WHOISCHANOP RPL_ENDOFWHORPL_WHOWASUSERRPL_WHOISOPERATORRPL_WHOISSERVER RPL_WHOISUSERRPL_WHOISHELPERRPL_WHOISSADMIN RPL_NICKTRACERPL_WHOISADMINRPL_NOTIFYACTION RPL_SUSERHOSTRPL_WHOISREGNICK RPL_NOWAWAY RPL_UNAWAYRPL_TEXTRPL_ISON RPL_USERHOSTRPL_AWAYRPL_NONERPL_END_CHANINFO RPL_DATASTR RPL_FEATURERPL_ENDOFJUPELISTRPL_ENDOFACCEPTRPL_ACCEPTLIST RPL_GLIST RPL_VCHANHELP RPL_VCHANLISTRPL_WHOISCERTFPRPL_STATSDELTA RPL_ENDNOTIFY RPL_NOTIFYRPL_ENDOFSILELIST RPL_SILELIST RPL_PRIVSRPL_END_NETSTAT RPL_NETSTATRPL_START_NETSTATRPL_GLOBALUSERSRPL_LOCALUSERS RPL_LOAD2HIRPL_ENDOFTRACE RPL_TRACELOGRPL_ADMINEMAIL RPL_ADMINLOC2 RPL_ADMINLOC1 RPL_ADMINME RPL_LUSERMERPL_LUSERCHANNELSRPL_LUSERUNKNOWN RPL_LUSEROPRPL_LUSERCLIENT RPL_STATSCONNRPL_STATSDEBUGRPL_STATSULINERPL_STATSXLINE RPL_STATSPINGRPL_STATSSLINERPL_STATSHLINERPL_STATSOLINERPL_STATSUPTIMERPL_STATSLLINERPL_STATSIAUTHRPL_STATSVERBOSERPL_SERVLISTEND RPL_SERVLIST RPL_SERVICERPL_ENDOFSERVICESRPL_SERVICEINFORPL_STATSCOUNTRPL_STATSZLINERPL_STATSDLINERPL_SQLINE_NICK RPL_UMODEISRPL_STATSPLINERPL_ENDOFSTATSRPL_STATSYLINERPL_STATSQLINERPL_STATSKLINERPL_STATSILINERPL_STATSNLINERPL_STATSCLINERPL_STATSCOMMANDSRPL_STATSLINKINFO RPL_STATSRPL_TRACERECONNECTRPL_TRACECLASSRPL_TRACENEWTYPERPL_TRACESERVICERPL_TRACESERVER RPL_TRACEUSERRPL_TRACEOPERATORRPL_TRACEUNKNOWNRPL_TRACEHANDSHAKERPL_TRACECONNECTING RPL_TRACELINKRPL_REMOTESUPPORTRPL_ATTEMPTINGREROUTERPL_ATTEMPTINGJUNC RPL_SAVENICK RPL_YOURID RPL_MAPENDRPL_MAPRPL_YOURCOOKIE RPL_REDIRRPL_STATMEMTOT RPL_SNOMASK RPL_ISUPPORT RPL_MYINFO RPL_CREATED RPL_YOURHOST RPL_WELCOME replyCodeInfodefaultReplyCodeInforeplyCodeInfoTable$fReadReplyCode$fShowReplyCode $fEqReplyCode$fOrdReplyCode $fEqReplyType$fOrdReplyType$fReadReplyType$fShowReplyType$fEqReplyCodeInfo$fOrdReplyCodeInfo$fShowReplyCodeInfo$fReadReplyCodeInfo IdentifiermkIdidTextidDenote idTextNormidPrefix$fIsStringIdentifier$fHashableIdentifier$fOrdIdentifier$fReadIdentifier$fShowIdentifier$fEqIdentifier RateLimit newRateLimit tickRateLimitUserInfouserNickuserNameuserHostuiNickuiNameuiHostrenderUserInfo parseUserInfo $fEqUserInfo$fReadUserInfo$fShowUserInfoTagEntry RawIrcMsg_msgTags _msgPrefix _msgCommand _msgParamsmsgTags msgPrefix msgCommand msgParamsparseRawIrcMsg prefixParsersimpleTokenParserrenderRawIrcMsg rawIrcMsgasUtf8 $fEqTagEntry$fReadTagEntry$fShowTagEntry $fEqRawIrcMsg$fReadRawIrcMsg$fShowRawIrcMsgAuthenticatePayload ircPrivmsg ircCprivmsg ircCnoticeircKnock ircNoticeircModeircWhoisircWho ircWhowasircNickircPartircJoin ircInviteircTopicircKickircKillircKline ircUnkline ircTestline ircTestmask ircMasktrace ircChantrace ircEtrace ircRemoveircQuitircPassircListircPingircPongircIsonircTime ircUserhostircStatsircOperircLinksircAwayircMapircInfoircRules ircVersion ircLusersircMotdircAdminircUser ircCapReq ircCapEndircCapLsircZncircAuthenticateircAuthenticatesencodePlainAuthenticationencodeExternalAuthentication$fShowAuthenticatePayload ModeTypes _modesLists_modesAlwaysArg _modesSetArg_modesNeverArg_modesPrefixModes modesListsmodesAlwaysArg modesSetArg modesNeverArgmodesPrefixModesdefaultModeTypesdefaultUmodeTypes splitModes unsplitModes$fShowModeTypes MessageTarget TargetUser TargetWindow TargetNetwork TargetHiddenCapCmdCapLsCapListCapAckCapNakCapNewCapDelCapMoreCapDoneIrcMsg UnknownMsgReplyNickJoinPartQuitKickTopicPrivmsgCtcp CtcpNoticeNoticeMode AuthenticateCapPingPongError BatchStartBatchEndAccountChghostWallops cookIrcMsg msgTargetmsgActor ircMsgText capCmdText nickSplitcomputeMaxMessageLength $fShowCapMore $fReadCapMore $fEqCapMore $fOrdCapMore $fShowCapCmd $fReadCapCmd $fEqCapCmd $fOrdCapCmd $fShowIrcMsg$fShowMessageTarget indexWord8(primitive-0.6.4.0-1mvPxVOk6Q6KOkWCZxqESfData.Primitive.ByteArrayindexByteArraybytestring-0.10.8.2Data.ByteString.Internal ByteString text-1.2.3.1Data.Text.InternalText ByteArrayghc-prim GHC.TypesTrue ircFoldCasebase Data.String fromString rateStampviewmaxMiddleParamsrawIrcMsgParser paramsParser buildParamsguarded optionalChar decodeCP1252cp1252 ircWallops ircUseripircUsers cookCapCmd parseCtcp