summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Dessaux2009-08-09 21:32:40 +0200
committerJulien Dessaux2009-08-09 21:32:40 +0200
commit8caf09e50b9825206bb68fbcb3e8b4da3447afad (patch)
treee87197615bc57bbb1c123905bd85b73039022a08
parentAdded LICENCE, and rfc2812 (IRC protocol) as documentation. (diff)
downloadhsbot-8caf09e50b9825206bb68fbcb3e8b4da3447afad.tar.gz
hsbot-8caf09e50b9825206bb68fbcb3e8b4da3447afad.tar.bz2
hsbot-8caf09e50b9825206bb68fbcb3e8b4da3447afad.zip
Fixed my mess with the rfc doc stuff... :p
-rw-r--r--doc/rfc2812.txt7594
1 files changed, 3531 insertions, 4063 deletions
diff --git a/doc/rfc2812.txt b/doc/rfc2812.txt
index 3c379ed..bfa2711 100644
--- a/doc/rfc2812.txt
+++ b/doc/rfc2812.txt
@@ -1,4063 +1,3531 @@
-
-
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
- <title>doc/rfc2812.txt at 0b7a6d5cde1552f37ce7cc51531ad19555dcab68 from galdor's wintermute - GitHub</title>
- <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" />
- <link rel="fluid-icon" href="http://github.com/fluidicon.png" title="GitHub" />
-
-
- <link href="http://assets1.github.com/stylesheets/bundle.css?6f31b78746b7d07b4a33b1593ffd193d896784bd" media="screen" rel="stylesheet" type="text/css" />
-
-
-
-
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
- <script src="http://assets3.github.com/javascripts/bundle.js?6f31b78746b7d07b4a33b1593ffd193d896784bd" type="text/javascript"></script>
-
-
-
-
-
-
-
- <link href="http://github.com/feeds/galdor/commits/wintermute/0b7a6d5cde1552f37ce7cc51531ad19555dcab68" rel="alternate" title="Recent Commits to wintermute:0b7a6d5cde1552f37ce7cc51531ad19555dcab68" type="application/atom+xml" />
-
- <meta name="description" content="An IRC bot written in Common Lisp" />
-
-
-
-
- <script type="text/javascript">
- github_user = null
- </script>
- </head>
-
-
-
- <body>
-
-
- <div id="main">
- <div id="header" class="">
- <div class="site">
- <div class="logo">
- <a href="http://github.com"><img src="/images/modules/header/logov3.png" alt="github" /></a>
- </div>
-
- <div class="topsearch">
- <form action="/search" id="top_search_form" method="get">
- <input type="search" class="search" name="q" /> <input type="submit" value="Search" />
- <input type="hidden" name="type" value="Everything" />
- <input type="hidden" name="repo" value="" />
- <input type="hidden" name="langOverride" value="" />
- <input type="hidden" name="start_value" value="1" />
- </form>
- <div class="links">
- <a href="/repositories">Browse</a> | <a href="/guides">Guides</a> | <a href="/search">Advanced</a>
- </div>
-</div>
-
-
- <div class="actions">
-
- <a href="http://github.com">Home</a>
- <a href="/plans"><b><u>Pricing and Signup</u></b></a>
- <a href="http://github.com/popular/forked">Repositories</a>
-
- <a href="/blog">Blog</a>
-
- <a href="https://github.com/login">Login</a>
- </div>
-
- </div>
- </div>
-
-
-
- <div id="repo_menu">
- <div class="site">
- <ul>
-
- <li class="active"><a href="http://github.com/galdor/wintermute/tree/">Source</a></li>
-
- <li class=""><a href="http://github.com/galdor/wintermute/commits/">Commits</a></li>
-
-
- <li class=""><a href="/galdor/wintermute/network">Network (1)</a></li>
-
-
-
-
-
- <li class=""><a href="/galdor/wintermute/issues">Issues (0)</a></li>
-
-
-
-
- <li class=""><a href="/galdor/wintermute/downloads">Downloads (0)</a></li>
-
-
-
-
- <li class=""><a href="http://wiki.github.com/galdor/wintermute">Wiki (1)</a></li>
-
-
- <li class=""><a href="/galdor/wintermute/graphs">Graphs</a></li>
-
-
-
-
- </ul>
- </div>
- </div>
-
- <div id="repo_sub_menu">
- <div class="site">
- <div class="joiner"></div>
-
-
-
-
-
-
-
- </div>
- </div>
-
- <div class="site">
-
-
-
-
-
-
-<div id="repos">
-
-
-
-<script type="text/javascript">
- GitHub.currentCommitRef = "0b7a6d5cde1552f37ce7cc51531ad19555dcab68"
- GitHub.currentRepoOwner = "galdor"
- GitHub.currentRepo = "wintermute"
-
-</script>
-
-
-
- <div class="repo public" id="repo_details">
- <div class="title">
- <div class="path">
- <a href="/galdor">galdor</a> / <b><a href="http://github.com/galdor/wintermute/tree">wintermute</a></b>
-
-
-
- <span id="edit_button" style="display:none;">
- <a href="/galdor/wintermute/edit"><img alt="edit" class="button" src="http://assets0.github.com/images/modules/repos/edit_button.png?6f31b78746b7d07b4a33b1593ffd193d896784bd" /></a>
- </span>
-
-
- <span id="pull_request_button" style="display:none;">
- <a href="/galdor/wintermute/pull_request/" class="pull_request_button"><img alt="pull request" class="button" src="http://assets0.github.com/images/modules/repos/pull_request_button.png?6f31b78746b7d07b4a33b1593ffd193d896784bd" /></a>
- </span>
-
- <span id="fast_forward_button" style="display:none;">
- <a href="/galdor/wintermute/fast_forward" id="ff_button"><img alt="fast forward" class="button" src="http://assets3.github.com/images/modules/repos/fast_forward_button.png?6f31b78746b7d07b4a33b1593ffd193d896784bd" /></a>
- </span>
-
- <span id="fork_button">
- <a href="/galdor/wintermute/fork"><img alt="fork" class="button" src="http://assets0.github.com/images/modules/repos/fork_button.png?6f31b78746b7d07b4a33b1593ffd193d896784bd" /></a>
- </span>
-
-
- <span id="watch_button">
- <a href="/galdor/wintermute/toggle_watch" class="toggle_watch"><img alt="watch" class="button" src="http://assets3.github.com/images/modules/repos/watch_button.png?6f31b78746b7d07b4a33b1593ffd193d896784bd" /></a>
- </span>
-
- <span id="unwatch_button" style="display:none;">
- <a href="/galdor/wintermute/toggle_watch" class="toggle_watch"><img alt="watch" class="button" src="http://assets3.github.com/images/modules/repos/unwatch_button.png?6f31b78746b7d07b4a33b1593ffd193d896784bd" /></a>
- </span>
-
-
- <a href="#" id="download_button" rel="galdor/wintermute"><img alt="download tarball" class="button" src="http://assets2.github.com/images/modules/repos/download_button.png?6f31b78746b7d07b4a33b1593ffd193d896784bd" /></a>
-
-
- </div>
-
- <div class="security private_security" style="display:none">
- <a href="#private_repo" rel="facebox"><img src="/images/icons/private.png" alt="private" /></a>
- </div>
-
- <div id="private_repo" class="hidden">
- This repository is private.
- All pages are served over SSL and all pushing and pulling is done over SSH.
- No one may fork, clone, or view it unless they are added as a <a href="/galdor/wintermute/edit">member</a>.
-
- <br/>
- <br/>
- Every repository with this icon (<img src="/images/icons/private.png" alt="private" />) is private.
- </div>
-
- <div class="security public_security" style="">
- <a href="#public_repo" rel="facebox"><img src="/images/icons/public.png" alt="public" /></a>
- </div>
-
- <div id="public_repo" class="hidden">
- This repository is public.
- Anyone may fork, clone, or view it.
-
- <br/>
- <br/>
- Every repository with this icon (<img src="/images/icons/public.png" alt="public" />) is public.
- </div>
-
-
-
- <div class="flexipill">
- <a href="/galdor/wintermute/network">
- <table cellpadding="0" cellspacing="0">
- <tr><td><img alt="Forks" src="http://assets1.github.com/images/modules/repos/pills/forks.png?6f31b78746b7d07b4a33b1593ffd193d896784bd" /></td><td class="middle"><span>1</span></td><td><img alt="Right" src="http://assets1.github.com/images/modules/repos/pills/right.png?6f31b78746b7d07b4a33b1593ffd193d896784bd" /></td></tr>
- </table>
- </a>
- </div>
-
- <div class="flexipill">
- <a href="/galdor/wintermute/watchers">
- <table cellpadding="0" cellspacing="0">
- <tr><td><img alt="Watchers" src="http://assets0.github.com/images/modules/repos/pills/watchers.png?6f31b78746b7d07b4a33b1593ffd193d896784bd" /></td><td class="middle"><span>2</span></td><td><img alt="Right" src="http://assets1.github.com/images/modules/repos/pills/right.png?6f31b78746b7d07b4a33b1593ffd193d896784bd" /></td></tr>
- </table>
- </a>
- </div>
- </div>
-
- <div class="meta">
- <table>
-
- <tr>
- <td class="label">Description:</td>
- <td>
- <span id="repository_description" rel="/galdor/wintermute/edit/update">An IRC bot written in Common Lisp</span>
- <a href="#description" class="edit_link action" style="display:none;">edit</a>
- </td>
- </tr>
-
-
- <tr>
- <td class="label">Homepage:</td>
- <td>
-
- <span id="repository_homepage" rel="/galdor/wintermute/edit/update">
- <a href="http://"></a>
- </span>
- <a href="#homepage" class="edit_link action" style="display:none;">edit</a>
- </td>
- </tr>
-
-
- <tr>
- <td class="label"><span id="public_clone_text" style="display:none;">Public&nbsp;</span>Clone&nbsp;URL:</td>
-
- <td>
- <a href="git://github.com/galdor/wintermute.git" class="git_url_facebox" rel="#git-clone">git://github.com/galdor/wintermute.git</a>
- <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
- width="110"
- height="14"
- class="clippy"
- id="clippy" >
- <param name="movie" value="/flash/clippy.swf"/>
- <param name="allowScriptAccess" value="always" />
- <param name="quality" value="high" />
- <param name="scale" value="noscale" />
- <param NAME="FlashVars" value="text=git://github.com/galdor/wintermute.git">
- <param name="bgcolor" value="#F0F0F0">
- <param name="wmode" value="opaque">
- <embed src="/flash/clippy.swf"
- width="110"
- height="14"
- name="clippy"
- quality="high"
- allowScriptAccess="always"
- type="application/x-shockwave-flash"
- pluginspage="http://www.macromedia.com/go/getflashplayer"
- FlashVars="text=git://github.com/galdor/wintermute.git"
- bgcolor="#F0F0F0"
- wmode="opaque"
- />
- </object>
-
- <div id="git-clone" style="display:none;">
- Give this clone URL to anyone.
- <br/>
- <code>git clone git://github.com/galdor/wintermute.git </code>
- </div>
- </td>
- </tr>
-
-
- <tr id="private_clone_url" style="display:none;">
- <td class="label">Your Clone URL:</td>
-
- <td>
-
- <div id="private-clone-url">
- <a href="git@github.com:galdor/wintermute.git" class="git_url_facebox" rel="#your-git-clone">git@github.com:galdor/wintermute.git</a>
- <input type="text" value="git@github.com:galdor/wintermute.git" style="display: none;" />
- <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
- width="110"
- height="14"
- class="clippy"
- id="clippy" >
- <param name="movie" value="/flash/clippy.swf"/>
- <param name="allowScriptAccess" value="always" />
- <param name="quality" value="high" />
- <param name="scale" value="noscale" />
- <param NAME="FlashVars" value="text=git@github.com:galdor/wintermute.git">
- <param name="bgcolor" value="#F0F0F0">
- <param name="wmode" value="opaque">
- <embed src="/flash/clippy.swf"
- width="110"
- height="14"
- name="clippy"
- quality="high"
- allowScriptAccess="always"
- type="application/x-shockwave-flash"
- pluginspage="http://www.macromedia.com/go/getflashplayer"
- FlashVars="text=git@github.com:galdor/wintermute.git"
- bgcolor="#F0F0F0"
- wmode="opaque"
- />
- </object>
-
- </div>
-
- <div id="your-git-clone" style="display:none;">
- Use this clone URL yourself.
- <br/>
- <code>git clone git@github.com:galdor/wintermute.git </code>
- </div>
- </td>
- </tr>
-
-
-
-
-
-
- </table>
-
- </div>
- </div>
-
-
-
-
-
-
-</div>
-
-
- <div id="commit">
- <div class="group">
-
- <div class="envelope commit">
- <div class="human">
-
- <div class="message"><pre><a href="/galdor/wintermute/commit/0b7a6d5cde1552f37ce7cc51531ad19555dcab68">ignore decoding errors</a> </pre></div>
-
-
- <div class="actor">
- <div class="gravatar">
-
- <img alt="" height="30" src="http://www.gravatar.com/avatar/035da19620f3e09b13bf90b1f7d40905?s=30&amp;d=http%3A%2F%2Fgithub.com%2Fimages%2Fgravatars%2Fgravatar-30.png" width="30" />
- </div>
- <div class="name">Nicolas Martyanoff <span>(author)</span></div>
- <div class="date">
- <abbr class="relatize" title="2009-07-28 07:11:24">Tue Jul 28 07:11:24 -0700 2009</abbr>
- </div>
- </div>
-
-
-
- </div>
- <div class="machine">
- <span>c</span>ommit&nbsp;&nbsp;<a href="/galdor/wintermute/commit/0b7a6d5cde1552f37ce7cc51531ad19555dcab68" hotkey="c">0b7a6d5cde1552f37ce7cc51531ad19555dcab68</a><br />
- <span>t</span>ree&nbsp;&nbsp;&nbsp;&nbsp;<a href="/galdor/wintermute/tree/0b7a6d5cde1552f37ce7cc51531ad19555dcab68" hotkey="t">9c92bebdd5288d9e910b318357d8ebdab2034584</a><br />
-
-
- <span>p</span>arent&nbsp;
-
- <a href="/galdor/wintermute/tree/e1e6c958fe86f40861752e68b2bab32baaeb4555" hotkey="p">e1e6c958fe86f40861752e68b2bab32baaeb4555</a>
-
-
- </div>
- </div>
-
- </div>
- </div>
-
-
-
-
- <div id="path">
- <b><a href="/galdor/wintermute/tree/0b7a6d5cde1552f37ce7cc51531ad19555dcab68">wintermute</a></b> / <a href="/galdor/wintermute/tree/0b7a6d5cde1552f37ce7cc51531ad19555dcab68/doc">doc</a> / rfc2812.txt <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
- width="110"
- height="14"
- class="clippy"
- id="clippy" >
- <param name="movie" value="/flash/clippy.swf"/>
- <param name="allowScriptAccess" value="always" />
- <param name="quality" value="high" />
- <param name="scale" value="noscale" />
- <param NAME="FlashVars" value="text=doc/rfc2812.txt">
- <param name="bgcolor" value="#FFFFFF">
- <param name="wmode" value="opaque">
- <embed src="/flash/clippy.swf"
- width="110"
- height="14"
- name="clippy"
- quality="high"
- allowScriptAccess="always"
- type="application/x-shockwave-flash"
- pluginspage="http://www.macromedia.com/go/getflashplayer"
- FlashVars="text=doc/rfc2812.txt"
- bgcolor="#FFFFFF"
- wmode="opaque"
- />
- </object>
-
- </div>
-
- <div id="files">
- <div class="file">
- <div class="meta">
- <div class="info">
- <span>100644</span>
- <span>3532 lines (2279 sloc)</span>
- <span>126.168 kb</span>
- </div>
- <div class="actions">
-
- <a href="/galdor/wintermute/raw/0b7a6d5cde1552f37ce7cc51531ad19555dcab68/doc/rfc2812.txt" id="raw-url">raw</a>
-
- <a href="/galdor/wintermute/blame/0b7a6d5cde1552f37ce7cc51531ad19555dcab68/doc/rfc2812.txt">blame</a>
-
- <a href="/galdor/wintermute/commits/master/doc/rfc2812.txt">history</a>
- </div>
- </div>
-
- <div class="data syntax">
-
- <table cellpadding="0" cellspacing="0">
- <tr>
- <td>
-
- <pre class="line_numbers">
-<span id="LID1" rel="#L1">1</span>
-<span id="LID2" rel="#L2">2</span>
-<span id="LID3" rel="#L3">3</span>
-<span id="LID4" rel="#L4">4</span>
-<span id="LID5" rel="#L5">5</span>
-<span id="LID6" rel="#L6">6</span>
-<span id="LID7" rel="#L7">7</span>
-<span id="LID8" rel="#L8">8</span>
-<span id="LID9" rel="#L9">9</span>
-<span id="LID10" rel="#L10">10</span>
-<span id="LID11" rel="#L11">11</span>
-<span id="LID12" rel="#L12">12</span>
-<span id="LID13" rel="#L13">13</span>
-<span id="LID14" rel="#L14">14</span>
-<span id="LID15" rel="#L15">15</span>
-<span id="LID16" rel="#L16">16</span>
-<span id="LID17" rel="#L17">17</span>
-<span id="LID18" rel="#L18">18</span>
-<span id="LID19" rel="#L19">19</span>
-<span id="LID20" rel="#L20">20</span>
-<span id="LID21" rel="#L21">21</span>
-<span id="LID22" rel="#L22">22</span>
-<span id="LID23" rel="#L23">23</span>
-<span id="LID24" rel="#L24">24</span>
-<span id="LID25" rel="#L25">25</span>
-<span id="LID26" rel="#L26">26</span>
-<span id="LID27" rel="#L27">27</span>
-<span id="LID28" rel="#L28">28</span>
-<span id="LID29" rel="#L29">29</span>
-<span id="LID30" rel="#L30">30</span>
-<span id="LID31" rel="#L31">31</span>
-<span id="LID32" rel="#L32">32</span>
-<span id="LID33" rel="#L33">33</span>
-<span id="LID34" rel="#L34">34</span>
-<span id="LID35" rel="#L35">35</span>
-<span id="LID36" rel="#L36">36</span>
-<span id="LID37" rel="#L37">37</span>
-<span id="LID38" rel="#L38">38</span>
-<span id="LID39" rel="#L39">39</span>
-<span id="LID40" rel="#L40">40</span>
-<span id="LID41" rel="#L41">41</span>
-<span id="LID42" rel="#L42">42</span>
-<span id="LID43" rel="#L43">43</span>
-<span id="LID44" rel="#L44">44</span>
-<span id="LID45" rel="#L45">45</span>
-<span id="LID46" rel="#L46">46</span>
-<span id="LID47" rel="#L47">47</span>
-<span id="LID48" rel="#L48">48</span>
-<span id="LID49" rel="#L49">49</span>
-<span id="LID50" rel="#L50">50</span>
-<span id="LID51" rel="#L51">51</span>
-<span id="LID52" rel="#L52">52</span>
-<span id="LID53" rel="#L53">53</span>
-<span id="LID54" rel="#L54">54</span>
-<span id="LID55" rel="#L55">55</span>
-<span id="LID56" rel="#L56">56</span>
-<span id="LID57" rel="#L57">57</span>
-<span id="LID58" rel="#L58">58</span>
-<span id="LID59" rel="#L59">59</span>
-<span id="LID60" rel="#L60">60</span>
-<span id="LID61" rel="#L61">61</span>
-<span id="LID62" rel="#L62">62</span>
-<span id="LID63" rel="#L63">63</span>
-<span id="LID64" rel="#L64">64</span>
-<span id="LID65" rel="#L65">65</span>
-<span id="LID66" rel="#L66">66</span>
-<span id="LID67" rel="#L67">67</span>
-<span id="LID68" rel="#L68">68</span>
-<span id="LID69" rel="#L69">69</span>
-<span id="LID70" rel="#L70">70</span>
-<span id="LID71" rel="#L71">71</span>
-<span id="LID72" rel="#L72">72</span>
-<span id="LID73" rel="#L73">73</span>
-<span id="LID74" rel="#L74">74</span>
-<span id="LID75" rel="#L75">75</span>
-<span id="LID76" rel="#L76">76</span>
-<span id="LID77" rel="#L77">77</span>
-<span id="LID78" rel="#L78">78</span>
-<span id="LID79" rel="#L79">79</span>
-<span id="LID80" rel="#L80">80</span>
-<span id="LID81" rel="#L81">81</span>
-<span id="LID82" rel="#L82">82</span>
-<span id="LID83" rel="#L83">83</span>
-<span id="LID84" rel="#L84">84</span>
-<span id="LID85" rel="#L85">85</span>
-<span id="LID86" rel="#L86">86</span>
-<span id="LID87" rel="#L87">87</span>
-<span id="LID88" rel="#L88">88</span>
-<span id="LID89" rel="#L89">89</span>
-<span id="LID90" rel="#L90">90</span>
-<span id="LID91" rel="#L91">91</span>
-<span id="LID92" rel="#L92">92</span>
-<span id="LID93" rel="#L93">93</span>
-<span id="LID94" rel="#L94">94</span>
-<span id="LID95" rel="#L95">95</span>
-<span id="LID96" rel="#L96">96</span>
-<span id="LID97" rel="#L97">97</span>
-<span id="LID98" rel="#L98">98</span>
-<span id="LID99" rel="#L99">99</span>
-<span id="LID100" rel="#L100">100</span>
-<span id="LID101" rel="#L101">101</span>
-<span id="LID102" rel="#L102">102</span>
-<span id="LID103" rel="#L103">103</span>
-<span id="LID104" rel="#L104">104</span>
-<span id="LID105" rel="#L105">105</span>
-<span id="LID106" rel="#L106">106</span>
-<span id="LID107" rel="#L107">107</span>
-<span id="LID108" rel="#L108">108</span>
-<span id="LID109" rel="#L109">109</span>
-<span id="LID110" rel="#L110">110</span>
-<span id="LID111" rel="#L111">111</span>
-<span id="LID112" rel="#L112">112</span>
-<span id="LID113" rel="#L113">113</span>
-<span id="LID114" rel="#L114">114</span>
-<span id="LID115" rel="#L115">115</span>
-<span id="LID116" rel="#L116">116</span>
-<span id="LID117" rel="#L117">117</span>
-<span id="LID118" rel="#L118">118</span>
-<span id="LID119" rel="#L119">119</span>
-<span id="LID120" rel="#L120">120</span>
-<span id="LID121" rel="#L121">121</span>
-<span id="LID122" rel="#L122">122</span>
-<span id="LID123" rel="#L123">123</span>
-<span id="LID124" rel="#L124">124</span>
-<span id="LID125" rel="#L125">125</span>
-<span id="LID126" rel="#L126">126</span>
-<span id="LID127" rel="#L127">127</span>
-<span id="LID128" rel="#L128">128</span>
-<span id="LID129" rel="#L129">129</span>
-<span id="LID130" rel="#L130">130</span>
-<span id="LID131" rel="#L131">131</span>
-<span id="LID132" rel="#L132">132</span>
-<span id="LID133" rel="#L133">133</span>
-<span id="LID134" rel="#L134">134</span>
-<span id="LID135" rel="#L135">135</span>
-<span id="LID136" rel="#L136">136</span>
-<span id="LID137" rel="#L137">137</span>
-<span id="LID138" rel="#L138">138</span>
-<span id="LID139" rel="#L139">139</span>
-<span id="LID140" rel="#L140">140</span>
-<span id="LID141" rel="#L141">141</span>
-<span id="LID142" rel="#L142">142</span>
-<span id="LID143" rel="#L143">143</span>
-<span id="LID144" rel="#L144">144</span>
-<span id="LID145" rel="#L145">145</span>
-<span id="LID146" rel="#L146">146</span>
-<span id="LID147" rel="#L147">147</span>
-<span id="LID148" rel="#L148">148</span>
-<span id="LID149" rel="#L149">149</span>
-<span id="LID150" rel="#L150">150</span>
-<span id="LID151" rel="#L151">151</span>
-<span id="LID152" rel="#L152">152</span>
-<span id="LID153" rel="#L153">153</span>
-<span id="LID154" rel="#L154">154</span>
-<span id="LID155" rel="#L155">155</span>
-<span id="LID156" rel="#L156">156</span>
-<span id="LID157" rel="#L157">157</span>
-<span id="LID158" rel="#L158">158</span>
-<span id="LID159" rel="#L159">159</span>
-<span id="LID160" rel="#L160">160</span>
-<span id="LID161" rel="#L161">161</span>
-<span id="LID162" rel="#L162">162</span>
-<span id="LID163" rel="#L163">163</span>
-<span id="LID164" rel="#L164">164</span>
-<span id="LID165" rel="#L165">165</span>
-<span id="LID166" rel="#L166">166</span>
-<span id="LID167" rel="#L167">167</span>
-<span id="LID168" rel="#L168">168</span>
-<span id="LID169" rel="#L169">169</span>
-<span id="LID170" rel="#L170">170</span>
-<span id="LID171" rel="#L171">171</span>
-<span id="LID172" rel="#L172">172</span>
-<span id="LID173" rel="#L173">173</span>
-<span id="LID174" rel="#L174">174</span>
-<span id="LID175" rel="#L175">175</span>
-<span id="LID176" rel="#L176">176</span>
-<span id="LID177" rel="#L177">177</span>
-<span id="LID178" rel="#L178">178</span>
-<span id="LID179" rel="#L179">179</span>
-<span id="LID180" rel="#L180">180</span>
-<span id="LID181" rel="#L181">181</span>
-<span id="LID182" rel="#L182">182</span>
-<span id="LID183" rel="#L183">183</span>
-<span id="LID184" rel="#L184">184</span>
-<span id="LID185" rel="#L185">185</span>
-<span id="LID186" rel="#L186">186</span>
-<span id="LID187" rel="#L187">187</span>
-<span id="LID188" rel="#L188">188</span>
-<span id="LID189" rel="#L189">189</span>
-<span id="LID190" rel="#L190">190</span>
-<span id="LID191" rel="#L191">191</span>
-<span id="LID192" rel="#L192">192</span>
-<span id="LID193" rel="#L193">193</span>
-<span id="LID194" rel="#L194">194</span>
-<span id="LID195" rel="#L195">195</span>
-<span id="LID196" rel="#L196">196</span>
-<span id="LID197" rel="#L197">197</span>
-<span id="LID198" rel="#L198">198</span>
-<span id="LID199" rel="#L199">199</span>
-<span id="LID200" rel="#L200">200</span>
-<span id="LID201" rel="#L201">201</span>
-<span id="LID202" rel="#L202">202</span>
-<span id="LID203" rel="#L203">203</span>
-<span id="LID204" rel="#L204">204</span>
-<span id="LID205" rel="#L205">205</span>
-<span id="LID206" rel="#L206">206</span>
-<span id="LID207" rel="#L207">207</span>
-<span id="LID208" rel="#L208">208</span>
-<span id="LID209" rel="#L209">209</span>
-<span id="LID210" rel="#L210">210</span>
-<span id="LID211" rel="#L211">211</span>
-<span id="LID212" rel="#L212">212</span>
-<span id="LID213" rel="#L213">213</span>
-<span id="LID214" rel="#L214">214</span>
-<span id="LID215" rel="#L215">215</span>
-<span id="LID216" rel="#L216">216</span>
-<span id="LID217" rel="#L217">217</span>
-<span id="LID218" rel="#L218">218</span>
-<span id="LID219" rel="#L219">219</span>
-<span id="LID220" rel="#L220">220</span>
-<span id="LID221" rel="#L221">221</span>
-<span id="LID222" rel="#L222">222</span>
-<span id="LID223" rel="#L223">223</span>
-<span id="LID224" rel="#L224">224</span>
-<span id="LID225" rel="#L225">225</span>
-<span id="LID226" rel="#L226">226</span>
-<span id="LID227" rel="#L227">227</span>
-<span id="LID228" rel="#L228">228</span>
-<span id="LID229" rel="#L229">229</span>
-<span id="LID230" rel="#L230">230</span>
-<span id="LID231" rel="#L231">231</span>
-<span id="LID232" rel="#L232">232</span>
-<span id="LID233" rel="#L233">233</span>
-<span id="LID234" rel="#L234">234</span>
-<span id="LID235" rel="#L235">235</span>
-<span id="LID236" rel="#L236">236</span>
-<span id="LID237" rel="#L237">237</span>
-<span id="LID238" rel="#L238">238</span>
-<span id="LID239" rel="#L239">239</span>
-<span id="LID240" rel="#L240">240</span>
-<span id="LID241" rel="#L241">241</span>
-<span id="LID242" rel="#L242">242</span>
-<span id="LID243" rel="#L243">243</span>
-<span id="LID244" rel="#L244">244</span>
-<span id="LID245" rel="#L245">245</span>
-<span id="LID246" rel="#L246">246</span>
-<span id="LID247" rel="#L247">247</span>
-<span id="LID248" rel="#L248">248</span>
-<span id="LID249" rel="#L249">249</span>
-<span id="LID250" rel="#L250">250</span>
-<span id="LID251" rel="#L251">251</span>
-<span id="LID252" rel="#L252">252</span>
-<span id="LID253" rel="#L253">253</span>
-<span id="LID254" rel="#L254">254</span>
-<span id="LID255" rel="#L255">255</span>
-<span id="LID256" rel="#L256">256</span>
-<span id="LID257" rel="#L257">257</span>
-<span id="LID258" rel="#L258">258</span>
-<span id="LID259" rel="#L259">259</span>
-<span id="LID260" rel="#L260">260</span>
-<span id="LID261" rel="#L261">261</span>
-<span id="LID262" rel="#L262">262</span>
-<span id="LID263" rel="#L263">263</span>
-<span id="LID264" rel="#L264">264</span>
-<span id="LID265" rel="#L265">265</span>
-<span id="LID266" rel="#L266">266</span>
-<span id="LID267" rel="#L267">267</span>
-<span id="LID268" rel="#L268">268</span>
-<span id="LID269" rel="#L269">269</span>
-<span id="LID270" rel="#L270">270</span>
-<span id="LID271" rel="#L271">271</span>
-<span id="LID272" rel="#L272">272</span>
-<span id="LID273" rel="#L273">273</span>
-<span id="LID274" rel="#L274">274</span>
-<span id="LID275" rel="#L275">275</span>
-<span id="LID276" rel="#L276">276</span>
-<span id="LID277" rel="#L277">277</span>
-<span id="LID278" rel="#L278">278</span>
-<span id="LID279" rel="#L279">279</span>
-<span id="LID280" rel="#L280">280</span>
-<span id="LID281" rel="#L281">281</span>
-<span id="LID282" rel="#L282">282</span>
-<span id="LID283" rel="#L283">283</span>
-<span id="LID284" rel="#L284">284</span>
-<span id="LID285" rel="#L285">285</span>
-<span id="LID286" rel="#L286">286</span>
-<span id="LID287" rel="#L287">287</span>
-<span id="LID288" rel="#L288">288</span>
-<span id="LID289" rel="#L289">289</span>
-<span id="LID290" rel="#L290">290</span>
-<span id="LID291" rel="#L291">291</span>
-<span id="LID292" rel="#L292">292</span>
-<span id="LID293" rel="#L293">293</span>
-<span id="LID294" rel="#L294">294</span>
-<span id="LID295" rel="#L295">295</span>
-<span id="LID296" rel="#L296">296</span>
-<span id="LID297" rel="#L297">297</span>
-<span id="LID298" rel="#L298">298</span>
-<span id="LID299" rel="#L299">299</span>
-<span id="LID300" rel="#L300">300</span>
-<span id="LID301" rel="#L301">301</span>
-<span id="LID302" rel="#L302">302</span>
-<span id="LID303" rel="#L303">303</span>
-<span id="LID304" rel="#L304">304</span>
-<span id="LID305" rel="#L305">305</span>
-<span id="LID306" rel="#L306">306</span>
-<span id="LID307" rel="#L307">307</span>
-<span id="LID308" rel="#L308">308</span>
-<span id="LID309" rel="#L309">309</span>
-<span id="LID310" rel="#L310">310</span>
-<span id="LID311" rel="#L311">311</span>
-<span id="LID312" rel="#L312">312</span>
-<span id="LID313" rel="#L313">313</span>
-<span id="LID314" rel="#L314">314</span>
-<span id="LID315" rel="#L315">315</span>
-<span id="LID316" rel="#L316">316</span>
-<span id="LID317" rel="#L317">317</span>
-<span id="LID318" rel="#L318">318</span>
-<span id="LID319" rel="#L319">319</span>
-<span id="LID320" rel="#L320">320</span>
-<span id="LID321" rel="#L321">321</span>
-<span id="LID322" rel="#L322">322</span>
-<span id="LID323" rel="#L323">323</span>
-<span id="LID324" rel="#L324">324</span>
-<span id="LID325" rel="#L325">325</span>
-<span id="LID326" rel="#L326">326</span>
-<span id="LID327" rel="#L327">327</span>
-<span id="LID328" rel="#L328">328</span>
-<span id="LID329" rel="#L329">329</span>
-<span id="LID330" rel="#L330">330</span>
-<span id="LID331" rel="#L331">331</span>
-<span id="LID332" rel="#L332">332</span>
-<span id="LID333" rel="#L333">333</span>
-<span id="LID334" rel="#L334">334</span>
-<span id="LID335" rel="#L335">335</span>
-<span id="LID336" rel="#L336">336</span>
-<span id="LID337" rel="#L337">337</span>
-<span id="LID338" rel="#L338">338</span>
-<span id="LID339" rel="#L339">339</span>
-<span id="LID340" rel="#L340">340</span>
-<span id="LID341" rel="#L341">341</span>
-<span id="LID342" rel="#L342">342</span>
-<span id="LID343" rel="#L343">343</span>
-<span id="LID344" rel="#L344">344</span>
-<span id="LID345" rel="#L345">345</span>
-<span id="LID346" rel="#L346">346</span>
-<span id="LID347" rel="#L347">347</span>
-<span id="LID348" rel="#L348">348</span>
-<span id="LID349" rel="#L349">349</span>
-<span id="LID350" rel="#L350">350</span>
-<span id="LID351" rel="#L351">351</span>
-<span id="LID352" rel="#L352">352</span>
-<span id="LID353" rel="#L353">353</span>
-<span id="LID354" rel="#L354">354</span>
-<span id="LID355" rel="#L355">355</span>
-<span id="LID356" rel="#L356">356</span>
-<span id="LID357" rel="#L357">357</span>
-<span id="LID358" rel="#L358">358</span>
-<span id="LID359" rel="#L359">359</span>
-<span id="LID360" rel="#L360">360</span>
-<span id="LID361" rel="#L361">361</span>
-<span id="LID362" rel="#L362">362</span>
-<span id="LID363" rel="#L363">363</span>
-<span id="LID364" rel="#L364">364</span>
-<span id="LID365" rel="#L365">365</span>
-<span id="LID366" rel="#L366">366</span>
-<span id="LID367" rel="#L367">367</span>
-<span id="LID368" rel="#L368">368</span>
-<span id="LID369" rel="#L369">369</span>
-<span id="LID370" rel="#L370">370</span>
-<span id="LID371" rel="#L371">371</span>
-<span id="LID372" rel="#L372">372</span>
-<span id="LID373" rel="#L373">373</span>
-<span id="LID374" rel="#L374">374</span>
-<span id="LID375" rel="#L375">375</span>
-<span id="LID376" rel="#L376">376</span>
-<span id="LID377" rel="#L377">377</span>
-<span id="LID378" rel="#L378">378</span>
-<span id="LID379" rel="#L379">379</span>
-<span id="LID380" rel="#L380">380</span>
-<span id="LID381" rel="#L381">381</span>
-<span id="LID382" rel="#L382">382</span>
-<span id="LID383" rel="#L383">383</span>
-<span id="LID384" rel="#L384">384</span>
-<span id="LID385" rel="#L385">385</span>
-<span id="LID386" rel="#L386">386</span>
-<span id="LID387" rel="#L387">387</span>
-<span id="LID388" rel="#L388">388</span>
-<span id="LID389" rel="#L389">389</span>
-<span id="LID390" rel="#L390">390</span>
-<span id="LID391" rel="#L391">391</span>
-<span id="LID392" rel="#L392">392</span>
-<span id="LID393" rel="#L393">393</span>
-<span id="LID394" rel="#L394">394</span>
-<span id="LID395" rel="#L395">395</span>
-<span id="LID396" rel="#L396">396</span>
-<span id="LID397" rel="#L397">397</span>
-<span id="LID398" rel="#L398">398</span>
-<span id="LID399" rel="#L399">399</span>
-<span id="LID400" rel="#L400">400</span>
-<span id="LID401" rel="#L401">401</span>
-<span id="LID402" rel="#L402">402</span>
-<span id="LID403" rel="#L403">403</span>
-<span id="LID404" rel="#L404">404</span>
-<span id="LID405" rel="#L405">405</span>
-<span id="LID406" rel="#L406">406</span>
-<span id="LID407" rel="#L407">407</span>
-<span id="LID408" rel="#L408">408</span>
-<span id="LID409" rel="#L409">409</span>
-<span id="LID410" rel="#L410">410</span>
-<span id="LID411" rel="#L411">411</span>
-<span id="LID412" rel="#L412">412</span>
-<span id="LID413" rel="#L413">413</span>
-<span id="LID414" rel="#L414">414</span>
-<span id="LID415" rel="#L415">415</span>
-<span id="LID416" rel="#L416">416</span>
-<span id="LID417" rel="#L417">417</span>
-<span id="LID418" rel="#L418">418</span>
-<span id="LID419" rel="#L419">419</span>
-<span id="LID420" rel="#L420">420</span>
-<span id="LID421" rel="#L421">421</span>
-<span id="LID422" rel="#L422">422</span>
-<span id="LID423" rel="#L423">423</span>
-<span id="LID424" rel="#L424">424</span>
-<span id="LID425" rel="#L425">425</span>
-<span id="LID426" rel="#L426">426</span>
-<span id="LID427" rel="#L427">427</span>
-<span id="LID428" rel="#L428">428</span>
-<span id="LID429" rel="#L429">429</span>
-<span id="LID430" rel="#L430">430</span>
-<span id="LID431" rel="#L431">431</span>
-<span id="LID432" rel="#L432">432</span>
-<span id="LID433" rel="#L433">433</span>
-<span id="LID434" rel="#L434">434</span>
-<span id="LID435" rel="#L435">435</span>
-<span id="LID436" rel="#L436">436</span>
-<span id="LID437" rel="#L437">437</span>
-<span id="LID438" rel="#L438">438</span>
-<span id="LID439" rel="#L439">439</span>
-<span id="LID440" rel="#L440">440</span>
-<span id="LID441" rel="#L441">441</span>
-<span id="LID442" rel="#L442">442</span>
-<span id="LID443" rel="#L443">443</span>
-<span id="LID444" rel="#L444">444</span>
-<span id="LID445" rel="#L445">445</span>
-<span id="LID446" rel="#L446">446</span>
-<span id="LID447" rel="#L447">447</span>
-<span id="LID448" rel="#L448">448</span>
-<span id="LID449" rel="#L449">449</span>
-<span id="LID450" rel="#L450">450</span>
-<span id="LID451" rel="#L451">451</span>
-<span id="LID452" rel="#L452">452</span>
-<span id="LID453" rel="#L453">453</span>
-<span id="LID454" rel="#L454">454</span>
-<span id="LID455" rel="#L455">455</span>
-<span id="LID456" rel="#L456">456</span>
-<span id="LID457" rel="#L457">457</span>
-<span id="LID458" rel="#L458">458</span>
-<span id="LID459" rel="#L459">459</span>
-<span id="LID460" rel="#L460">460</span>
-<span id="LID461" rel="#L461">461</span>
-<span id="LID462" rel="#L462">462</span>
-<span id="LID463" rel="#L463">463</span>
-<span id="LID464" rel="#L464">464</span>
-<span id="LID465" rel="#L465">465</span>
-<span id="LID466" rel="#L466">466</span>
-<span id="LID467" rel="#L467">467</span>
-<span id="LID468" rel="#L468">468</span>
-<span id="LID469" rel="#L469">469</span>
-<span id="LID470" rel="#L470">470</span>
-<span id="LID471" rel="#L471">471</span>
-<span id="LID472" rel="#L472">472</span>
-<span id="LID473" rel="#L473">473</span>
-<span id="LID474" rel="#L474">474</span>
-<span id="LID475" rel="#L475">475</span>
-<span id="LID476" rel="#L476">476</span>
-<span id="LID477" rel="#L477">477</span>
-<span id="LID478" rel="#L478">478</span>
-<span id="LID479" rel="#L479">479</span>
-<span id="LID480" rel="#L480">480</span>
-<span id="LID481" rel="#L481">481</span>
-<span id="LID482" rel="#L482">482</span>
-<span id="LID483" rel="#L483">483</span>
-<span id="LID484" rel="#L484">484</span>
-<span id="LID485" rel="#L485">485</span>
-<span id="LID486" rel="#L486">486</span>
-<span id="LID487" rel="#L487">487</span>
-<span id="LID488" rel="#L488">488</span>
-<span id="LID489" rel="#L489">489</span>
-<span id="LID490" rel="#L490">490</span>
-<span id="LID491" rel="#L491">491</span>
-<span id="LID492" rel="#L492">492</span>
-<span id="LID493" rel="#L493">493</span>
-<span id="LID494" rel="#L494">494</span>
-<span id="LID495" rel="#L495">495</span>
-<span id="LID496" rel="#L496">496</span>
-<span id="LID497" rel="#L497">497</span>
-<span id="LID498" rel="#L498">498</span>
-<span id="LID499" rel="#L499">499</span>
-<span id="LID500" rel="#L500">500</span>
-<span id="LID501" rel="#L501">501</span>
-<span id="LID502" rel="#L502">502</span>
-<span id="LID503" rel="#L503">503</span>
-<span id="LID504" rel="#L504">504</span>
-<span id="LID505" rel="#L505">505</span>
-<span id="LID506" rel="#L506">506</span>
-<span id="LID507" rel="#L507">507</span>
-<span id="LID508" rel="#L508">508</span>
-<span id="LID509" rel="#L509">509</span>
-<span id="LID510" rel="#L510">510</span>
-<span id="LID511" rel="#L511">511</span>
-<span id="LID512" rel="#L512">512</span>
-<span id="LID513" rel="#L513">513</span>
-<span id="LID514" rel="#L514">514</span>
-<span id="LID515" rel="#L515">515</span>
-<span id="LID516" rel="#L516">516</span>
-<span id="LID517" rel="#L517">517</span>
-<span id="LID518" rel="#L518">518</span>
-<span id="LID519" rel="#L519">519</span>
-<span id="LID520" rel="#L520">520</span>
-<span id="LID521" rel="#L521">521</span>
-<span id="LID522" rel="#L522">522</span>
-<span id="LID523" rel="#L523">523</span>
-<span id="LID524" rel="#L524">524</span>
-<span id="LID525" rel="#L525">525</span>
-<span id="LID526" rel="#L526">526</span>
-<span id="LID527" rel="#L527">527</span>
-<span id="LID528" rel="#L528">528</span>
-<span id="LID529" rel="#L529">529</span>
-<span id="LID530" rel="#L530">530</span>
-<span id="LID531" rel="#L531">531</span>
-<span id="LID532" rel="#L532">532</span>
-<span id="LID533" rel="#L533">533</span>
-<span id="LID534" rel="#L534">534</span>
-<span id="LID535" rel="#L535">535</span>
-<span id="LID536" rel="#L536">536</span>
-<span id="LID537" rel="#L537">537</span>
-<span id="LID538" rel="#L538">538</span>
-<span id="LID539" rel="#L539">539</span>
-<span id="LID540" rel="#L540">540</span>
-<span id="LID541" rel="#L541">541</span>
-<span id="LID542" rel="#L542">542</span>
-<span id="LID543" rel="#L543">543</span>
-<span id="LID544" rel="#L544">544</span>
-<span id="LID545" rel="#L545">545</span>
-<span id="LID546" rel="#L546">546</span>
-<span id="LID547" rel="#L547">547</span>
-<span id="LID548" rel="#L548">548</span>
-<span id="LID549" rel="#L549">549</span>
-<span id="LID550" rel="#L550">550</span>
-<span id="LID551" rel="#L551">551</span>
-<span id="LID552" rel="#L552">552</span>
-<span id="LID553" rel="#L553">553</span>
-<span id="LID554" rel="#L554">554</span>
-<span id="LID555" rel="#L555">555</span>
-<span id="LID556" rel="#L556">556</span>
-<span id="LID557" rel="#L557">557</span>
-<span id="LID558" rel="#L558">558</span>
-<span id="LID559" rel="#L559">559</span>
-<span id="LID560" rel="#L560">560</span>
-<span id="LID561" rel="#L561">561</span>
-<span id="LID562" rel="#L562">562</span>
-<span id="LID563" rel="#L563">563</span>
-<span id="LID564" rel="#L564">564</span>
-<span id="LID565" rel="#L565">565</span>
-<span id="LID566" rel="#L566">566</span>
-<span id="LID567" rel="#L567">567</span>
-<span id="LID568" rel="#L568">568</span>
-<span id="LID569" rel="#L569">569</span>
-<span id="LID570" rel="#L570">570</span>
-<span id="LID571" rel="#L571">571</span>
-<span id="LID572" rel="#L572">572</span>
-<span id="LID573" rel="#L573">573</span>
-<span id="LID574" rel="#L574">574</span>
-<span id="LID575" rel="#L575">575</span>
-<span id="LID576" rel="#L576">576</span>
-<span id="LID577" rel="#L577">577</span>
-<span id="LID578" rel="#L578">578</span>
-<span id="LID579" rel="#L579">579</span>
-<span id="LID580" rel="#L580">580</span>
-<span id="LID581" rel="#L581">581</span>
-<span id="LID582" rel="#L582">582</span>
-<span id="LID583" rel="#L583">583</span>
-<span id="LID584" rel="#L584">584</span>
-<span id="LID585" rel="#L585">585</span>
-<span id="LID586" rel="#L586">586</span>
-<span id="LID587" rel="#L587">587</span>
-<span id="LID588" rel="#L588">588</span>
-<span id="LID589" rel="#L589">589</span>
-<span id="LID590" rel="#L590">590</span>
-<span id="LID591" rel="#L591">591</span>
-<span id="LID592" rel="#L592">592</span>
-<span id="LID593" rel="#L593">593</span>
-<span id="LID594" rel="#L594">594</span>
-<span id="LID595" rel="#L595">595</span>
-<span id="LID596" rel="#L596">596</span>
-<span id="LID597" rel="#L597">597</span>
-<span id="LID598" rel="#L598">598</span>
-<span id="LID599" rel="#L599">599</span>
-<span id="LID600" rel="#L600">600</span>
-<span id="LID601" rel="#L601">601</span>
-<span id="LID602" rel="#L602">602</span>
-<span id="LID603" rel="#L603">603</span>
-<span id="LID604" rel="#L604">604</span>
-<span id="LID605" rel="#L605">605</span>
-<span id="LID606" rel="#L606">606</span>
-<span id="LID607" rel="#L607">607</span>
-<span id="LID608" rel="#L608">608</span>
-<span id="LID609" rel="#L609">609</span>
-<span id="LID610" rel="#L610">610</span>
-<span id="LID611" rel="#L611">611</span>
-<span id="LID612" rel="#L612">612</span>
-<span id="LID613" rel="#L613">613</span>
-<span id="LID614" rel="#L614">614</span>
-<span id="LID615" rel="#L615">615</span>
-<span id="LID616" rel="#L616">616</span>
-<span id="LID617" rel="#L617">617</span>
-<span id="LID618" rel="#L618">618</span>
-<span id="LID619" rel="#L619">619</span>
-<span id="LID620" rel="#L620">620</span>
-<span id="LID621" rel="#L621">621</span>
-<span id="LID622" rel="#L622">622</span>
-<span id="LID623" rel="#L623">623</span>
-<span id="LID624" rel="#L624">624</span>
-<span id="LID625" rel="#L625">625</span>
-<span id="LID626" rel="#L626">626</span>
-<span id="LID627" rel="#L627">627</span>
-<span id="LID628" rel="#L628">628</span>
-<span id="LID629" rel="#L629">629</span>
-<span id="LID630" rel="#L630">630</span>
-<span id="LID631" rel="#L631">631</span>
-<span id="LID632" rel="#L632">632</span>
-<span id="LID633" rel="#L633">633</span>
-<span id="LID634" rel="#L634">634</span>
-<span id="LID635" rel="#L635">635</span>
-<span id="LID636" rel="#L636">636</span>
-<span id="LID637" rel="#L637">637</span>
-<span id="LID638" rel="#L638">638</span>
-<span id="LID639" rel="#L639">639</span>
-<span id="LID640" rel="#L640">640</span>
-<span id="LID641" rel="#L641">641</span>
-<span id="LID642" rel="#L642">642</span>
-<span id="LID643" rel="#L643">643</span>
-<span id="LID644" rel="#L644">644</span>
-<span id="LID645" rel="#L645">645</span>
-<span id="LID646" rel="#L646">646</span>
-<span id="LID647" rel="#L647">647</span>
-<span id="LID648" rel="#L648">648</span>
-<span id="LID649" rel="#L649">649</span>
-<span id="LID650" rel="#L650">650</span>
-<span id="LID651" rel="#L651">651</span>
-<span id="LID652" rel="#L652">652</span>
-<span id="LID653" rel="#L653">653</span>
-<span id="LID654" rel="#L654">654</span>
-<span id="LID655" rel="#L655">655</span>
-<span id="LID656" rel="#L656">656</span>
-<span id="LID657" rel="#L657">657</span>
-<span id="LID658" rel="#L658">658</span>
-<span id="LID659" rel="#L659">659</span>
-<span id="LID660" rel="#L660">660</span>
-<span id="LID661" rel="#L661">661</span>
-<span id="LID662" rel="#L662">662</span>
-<span id="LID663" rel="#L663">663</span>
-<span id="LID664" rel="#L664">664</span>
-<span id="LID665" rel="#L665">665</span>
-<span id="LID666" rel="#L666">666</span>
-<span id="LID667" rel="#L667">667</span>
-<span id="LID668" rel="#L668">668</span>
-<span id="LID669" rel="#L669">669</span>
-<span id="LID670" rel="#L670">670</span>
-<span id="LID671" rel="#L671">671</span>
-<span id="LID672" rel="#L672">672</span>
-<span id="LID673" rel="#L673">673</span>
-<span id="LID674" rel="#L674">674</span>
-<span id="LID675" rel="#L675">675</span>
-<span id="LID676" rel="#L676">676</span>
-<span id="LID677" rel="#L677">677</span>
-<span id="LID678" rel="#L678">678</span>
-<span id="LID679" rel="#L679">679</span>
-<span id="LID680" rel="#L680">680</span>
-<span id="LID681" rel="#L681">681</span>
-<span id="LID682" rel="#L682">682</span>
-<span id="LID683" rel="#L683">683</span>
-<span id="LID684" rel="#L684">684</span>
-<span id="LID685" rel="#L685">685</span>
-<span id="LID686" rel="#L686">686</span>
-<span id="LID687" rel="#L687">687</span>
-<span id="LID688" rel="#L688">688</span>
-<span id="LID689" rel="#L689">689</span>
-<span id="LID690" rel="#L690">690</span>
-<span id="LID691" rel="#L691">691</span>
-<span id="LID692" rel="#L692">692</span>
-<span id="LID693" rel="#L693">693</span>
-<span id="LID694" rel="#L694">694</span>
-<span id="LID695" rel="#L695">695</span>
-<span id="LID696" rel="#L696">696</span>
-<span id="LID697" rel="#L697">697</span>
-<span id="LID698" rel="#L698">698</span>
-<span id="LID699" rel="#L699">699</span>
-<span id="LID700" rel="#L700">700</span>
-<span id="LID701" rel="#L701">701</span>
-<span id="LID702" rel="#L702">702</span>
-<span id="LID703" rel="#L703">703</span>
-<span id="LID704" rel="#L704">704</span>
-<span id="LID705" rel="#L705">705</span>
-<span id="LID706" rel="#L706">706</span>
-<span id="LID707" rel="#L707">707</span>
-<span id="LID708" rel="#L708">708</span>
-<span id="LID709" rel="#L709">709</span>
-<span id="LID710" rel="#L710">710</span>
-<span id="LID711" rel="#L711">711</span>
-<span id="LID712" rel="#L712">712</span>
-<span id="LID713" rel="#L713">713</span>
-<span id="LID714" rel="#L714">714</span>
-<span id="LID715" rel="#L715">715</span>
-<span id="LID716" rel="#L716">716</span>
-<span id="LID717" rel="#L717">717</span>
-<span id="LID718" rel="#L718">718</span>
-<span id="LID719" rel="#L719">719</span>
-<span id="LID720" rel="#L720">720</span>
-<span id="LID721" rel="#L721">721</span>
-<span id="LID722" rel="#L722">722</span>
-<span id="LID723" rel="#L723">723</span>
-<span id="LID724" rel="#L724">724</span>
-<span id="LID725" rel="#L725">725</span>
-<span id="LID726" rel="#L726">726</span>
-<span id="LID727" rel="#L727">727</span>
-<span id="LID728" rel="#L728">728</span>
-<span id="LID729" rel="#L729">729</span>
-<span id="LID730" rel="#L730">730</span>
-<span id="LID731" rel="#L731">731</span>
-<span id="LID732" rel="#L732">732</span>
-<span id="LID733" rel="#L733">733</span>
-<span id="LID734" rel="#L734">734</span>
-<span id="LID735" rel="#L735">735</span>
-<span id="LID736" rel="#L736">736</span>
-<span id="LID737" rel="#L737">737</span>
-<span id="LID738" rel="#L738">738</span>
-<span id="LID739" rel="#L739">739</span>
-<span id="LID740" rel="#L740">740</span>
-<span id="LID741" rel="#L741">741</span>
-<span id="LID742" rel="#L742">742</span>
-<span id="LID743" rel="#L743">743</span>
-<span id="LID744" rel="#L744">744</span>
-<span id="LID745" rel="#L745">745</span>
-<span id="LID746" rel="#L746">746</span>
-<span id="LID747" rel="#L747">747</span>
-<span id="LID748" rel="#L748">748</span>
-<span id="LID749" rel="#L749">749</span>
-<span id="LID750" rel="#L750">750</span>
-<span id="LID751" rel="#L751">751</span>
-<span id="LID752" rel="#L752">752</span>
-<span id="LID753" rel="#L753">753</span>
-<span id="LID754" rel="#L754">754</span>
-<span id="LID755" rel="#L755">755</span>
-<span id="LID756" rel="#L756">756</span>
-<span id="LID757" rel="#L757">757</span>
-<span id="LID758" rel="#L758">758</span>
-<span id="LID759" rel="#L759">759</span>
-<span id="LID760" rel="#L760">760</span>
-<span id="LID761" rel="#L761">761</span>
-<span id="LID762" rel="#L762">762</span>
-<span id="LID763" rel="#L763">763</span>
-<span id="LID764" rel="#L764">764</span>
-<span id="LID765" rel="#L765">765</span>
-<span id="LID766" rel="#L766">766</span>
-<span id="LID767" rel="#L767">767</span>
-<span id="LID768" rel="#L768">768</span>
-<span id="LID769" rel="#L769">769</span>
-<span id="LID770" rel="#L770">770</span>
-<span id="LID771" rel="#L771">771</span>
-<span id="LID772" rel="#L772">772</span>
-<span id="LID773" rel="#L773">773</span>
-<span id="LID774" rel="#L774">774</span>
-<span id="LID775" rel="#L775">775</span>
-<span id="LID776" rel="#L776">776</span>
-<span id="LID777" rel="#L777">777</span>
-<span id="LID778" rel="#L778">778</span>
-<span id="LID779" rel="#L779">779</span>
-<span id="LID780" rel="#L780">780</span>
-<span id="LID781" rel="#L781">781</span>
-<span id="LID782" rel="#L782">782</span>
-<span id="LID783" rel="#L783">783</span>
-<span id="LID784" rel="#L784">784</span>
-<span id="LID785" rel="#L785">785</span>
-<span id="LID786" rel="#L786">786</span>
-<span id="LID787" rel="#L787">787</span>
-<span id="LID788" rel="#L788">788</span>
-<span id="LID789" rel="#L789">789</span>
-<span id="LID790" rel="#L790">790</span>
-<span id="LID791" rel="#L791">791</span>
-<span id="LID792" rel="#L792">792</span>
-<span id="LID793" rel="#L793">793</span>
-<span id="LID794" rel="#L794">794</span>
-<span id="LID795" rel="#L795">795</span>
-<span id="LID796" rel="#L796">796</span>
-<span id="LID797" rel="#L797">797</span>
-<span id="LID798" rel="#L798">798</span>
-<span id="LID799" rel="#L799">799</span>
-<span id="LID800" rel="#L800">800</span>
-<span id="LID801" rel="#L801">801</span>
-<span id="LID802" rel="#L802">802</span>
-<span id="LID803" rel="#L803">803</span>
-<span id="LID804" rel="#L804">804</span>
-<span id="LID805" rel="#L805">805</span>
-<span id="LID806" rel="#L806">806</span>
-<span id="LID807" rel="#L807">807</span>
-<span id="LID808" rel="#L808">808</span>
-<span id="LID809" rel="#L809">809</span>
-<span id="LID810" rel="#L810">810</span>
-<span id="LID811" rel="#L811">811</span>
-<span id="LID812" rel="#L812">812</span>
-<span id="LID813" rel="#L813">813</span>
-<span id="LID814" rel="#L814">814</span>
-<span id="LID815" rel="#L815">815</span>
-<span id="LID816" rel="#L816">816</span>
-<span id="LID817" rel="#L817">817</span>
-<span id="LID818" rel="#L818">818</span>
-<span id="LID819" rel="#L819">819</span>
-<span id="LID820" rel="#L820">820</span>
-<span id="LID821" rel="#L821">821</span>
-<span id="LID822" rel="#L822">822</span>
-<span id="LID823" rel="#L823">823</span>
-<span id="LID824" rel="#L824">824</span>
-<span id="LID825" rel="#L825">825</span>
-<span id="LID826" rel="#L826">826</span>
-<span id="LID827" rel="#L827">827</span>
-<span id="LID828" rel="#L828">828</span>
-<span id="LID829" rel="#L829">829</span>
-<span id="LID830" rel="#L830">830</span>
-<span id="LID831" rel="#L831">831</span>
-<span id="LID832" rel="#L832">832</span>
-<span id="LID833" rel="#L833">833</span>
-<span id="LID834" rel="#L834">834</span>
-<span id="LID835" rel="#L835">835</span>
-<span id="LID836" rel="#L836">836</span>
-<span id="LID837" rel="#L837">837</span>
-<span id="LID838" rel="#L838">838</span>
-<span id="LID839" rel="#L839">839</span>
-<span id="LID840" rel="#L840">840</span>
-<span id="LID841" rel="#L841">841</span>
-<span id="LID842" rel="#L842">842</span>
-<span id="LID843" rel="#L843">843</span>
-<span id="LID844" rel="#L844">844</span>
-<span id="LID845" rel="#L845">845</span>
-<span id="LID846" rel="#L846">846</span>
-<span id="LID847" rel="#L847">847</span>
-<span id="LID848" rel="#L848">848</span>
-<span id="LID849" rel="#L849">849</span>
-<span id="LID850" rel="#L850">850</span>
-<span id="LID851" rel="#L851">851</span>
-<span id="LID852" rel="#L852">852</span>
-<span id="LID853" rel="#L853">853</span>
-<span id="LID854" rel="#L854">854</span>
-<span id="LID855" rel="#L855">855</span>
-<span id="LID856" rel="#L856">856</span>
-<span id="LID857" rel="#L857">857</span>
-<span id="LID858" rel="#L858">858</span>
-<span id="LID859" rel="#L859">859</span>
-<span id="LID860" rel="#L860">860</span>
-<span id="LID861" rel="#L861">861</span>
-<span id="LID862" rel="#L862">862</span>
-<span id="LID863" rel="#L863">863</span>
-<span id="LID864" rel="#L864">864</span>
-<span id="LID865" rel="#L865">865</span>
-<span id="LID866" rel="#L866">866</span>
-<span id="LID867" rel="#L867">867</span>
-<span id="LID868" rel="#L868">868</span>
-<span id="LID869" rel="#L869">869</span>
-<span id="LID870" rel="#L870">870</span>
-<span id="LID871" rel="#L871">871</span>
-<span id="LID872" rel="#L872">872</span>
-<span id="LID873" rel="#L873">873</span>
-<span id="LID874" rel="#L874">874</span>
-<span id="LID875" rel="#L875">875</span>
-<span id="LID876" rel="#L876">876</span>
-<span id="LID877" rel="#L877">877</span>
-<span id="LID878" rel="#L878">878</span>
-<span id="LID879" rel="#L879">879</span>
-<span id="LID880" rel="#L880">880</span>
-<span id="LID881" rel="#L881">881</span>
-<span id="LID882" rel="#L882">882</span>
-<span id="LID883" rel="#L883">883</span>
-<span id="LID884" rel="#L884">884</span>
-<span id="LID885" rel="#L885">885</span>
-<span id="LID886" rel="#L886">886</span>
-<span id="LID887" rel="#L887">887</span>
-<span id="LID888" rel="#L888">888</span>
-<span id="LID889" rel="#L889">889</span>
-<span id="LID890" rel="#L890">890</span>
-<span id="LID891" rel="#L891">891</span>
-<span id="LID892" rel="#L892">892</span>
-<span id="LID893" rel="#L893">893</span>
-<span id="LID894" rel="#L894">894</span>
-<span id="LID895" rel="#L895">895</span>
-<span id="LID896" rel="#L896">896</span>
-<span id="LID897" rel="#L897">897</span>
-<span id="LID898" rel="#L898">898</span>
-<span id="LID899" rel="#L899">899</span>
-<span id="LID900" rel="#L900">900</span>
-<span id="LID901" rel="#L901">901</span>
-<span id="LID902" rel="#L902">902</span>
-<span id="LID903" rel="#L903">903</span>
-<span id="LID904" rel="#L904">904</span>
-<span id="LID905" rel="#L905">905</span>
-<span id="LID906" rel="#L906">906</span>
-<span id="LID907" rel="#L907">907</span>
-<span id="LID908" rel="#L908">908</span>
-<span id="LID909" rel="#L909">909</span>
-<span id="LID910" rel="#L910">910</span>
-<span id="LID911" rel="#L911">911</span>
-<span id="LID912" rel="#L912">912</span>
-<span id="LID913" rel="#L913">913</span>
-<span id="LID914" rel="#L914">914</span>
-<span id="LID915" rel="#L915">915</span>
-<span id="LID916" rel="#L916">916</span>
-<span id="LID917" rel="#L917">917</span>
-<span id="LID918" rel="#L918">918</span>
-<span id="LID919" rel="#L919">919</span>
-<span id="LID920" rel="#L920">920</span>
-<span id="LID921" rel="#L921">921</span>
-<span id="LID922" rel="#L922">922</span>
-<span id="LID923" rel="#L923">923</span>
-<span id="LID924" rel="#L924">924</span>
-<span id="LID925" rel="#L925">925</span>
-<span id="LID926" rel="#L926">926</span>
-<span id="LID927" rel="#L927">927</span>
-<span id="LID928" rel="#L928">928</span>
-<span id="LID929" rel="#L929">929</span>
-<span id="LID930" rel="#L930">930</span>
-<span id="LID931" rel="#L931">931</span>
-<span id="LID932" rel="#L932">932</span>
-<span id="LID933" rel="#L933">933</span>
-<span id="LID934" rel="#L934">934</span>
-<span id="LID935" rel="#L935">935</span>
-<span id="LID936" rel="#L936">936</span>
-<span id="LID937" rel="#L937">937</span>
-<span id="LID938" rel="#L938">938</span>
-<span id="LID939" rel="#L939">939</span>
-<span id="LID940" rel="#L940">940</span>
-<span id="LID941" rel="#L941">941</span>
-<span id="LID942" rel="#L942">942</span>
-<span id="LID943" rel="#L943">943</span>
-<span id="LID944" rel="#L944">944</span>
-<span id="LID945" rel="#L945">945</span>
-<span id="LID946" rel="#L946">946</span>
-<span id="LID947" rel="#L947">947</span>
-<span id="LID948" rel="#L948">948</span>
-<span id="LID949" rel="#L949">949</span>
-<span id="LID950" rel="#L950">950</span>
-<span id="LID951" rel="#L951">951</span>
-<span id="LID952" rel="#L952">952</span>
-<span id="LID953" rel="#L953">953</span>
-<span id="LID954" rel="#L954">954</span>
-<span id="LID955" rel="#L955">955</span>
-<span id="LID956" rel="#L956">956</span>
-<span id="LID957" rel="#L957">957</span>
-<span id="LID958" rel="#L958">958</span>
-<span id="LID959" rel="#L959">959</span>
-<span id="LID960" rel="#L960">960</span>
-<span id="LID961" rel="#L961">961</span>
-<span id="LID962" rel="#L962">962</span>
-<span id="LID963" rel="#L963">963</span>
-<span id="LID964" rel="#L964">964</span>
-<span id="LID965" rel="#L965">965</span>
-<span id="LID966" rel="#L966">966</span>
-<span id="LID967" rel="#L967">967</span>
-<span id="LID968" rel="#L968">968</span>
-<span id="LID969" rel="#L969">969</span>
-<span id="LID970" rel="#L970">970</span>
-<span id="LID971" rel="#L971">971</span>
-<span id="LID972" rel="#L972">972</span>
-<span id="LID973" rel="#L973">973</span>
-<span id="LID974" rel="#L974">974</span>
-<span id="LID975" rel="#L975">975</span>
-<span id="LID976" rel="#L976">976</span>
-<span id="LID977" rel="#L977">977</span>
-<span id="LID978" rel="#L978">978</span>
-<span id="LID979" rel="#L979">979</span>
-<span id="LID980" rel="#L980">980</span>
-<span id="LID981" rel="#L981">981</span>
-<span id="LID982" rel="#L982">982</span>
-<span id="LID983" rel="#L983">983</span>
-<span id="LID984" rel="#L984">984</span>
-<span id="LID985" rel="#L985">985</span>
-<span id="LID986" rel="#L986">986</span>
-<span id="LID987" rel="#L987">987</span>
-<span id="LID988" rel="#L988">988</span>
-<span id="LID989" rel="#L989">989</span>
-<span id="LID990" rel="#L990">990</span>
-<span id="LID991" rel="#L991">991</span>
-<span id="LID992" rel="#L992">992</span>
-<span id="LID993" rel="#L993">993</span>
-<span id="LID994" rel="#L994">994</span>
-<span id="LID995" rel="#L995">995</span>
-<span id="LID996" rel="#L996">996</span>
-<span id="LID997" rel="#L997">997</span>
-<span id="LID998" rel="#L998">998</span>
-<span id="LID999" rel="#L999">999</span>
-<span id="LID1000" rel="#L1000">1000</span>
-<span id="LID1001" rel="#L1001">1001</span>
-<span id="LID1002" rel="#L1002">1002</span>
-<span id="LID1003" rel="#L1003">1003</span>
-<span id="LID1004" rel="#L1004">1004</span>
-<span id="LID1005" rel="#L1005">1005</span>
-<span id="LID1006" rel="#L1006">1006</span>
-<span id="LID1007" rel="#L1007">1007</span>
-<span id="LID1008" rel="#L1008">1008</span>
-<span id="LID1009" rel="#L1009">1009</span>
-<span id="LID1010" rel="#L1010">1010</span>
-<span id="LID1011" rel="#L1011">1011</span>
-<span id="LID1012" rel="#L1012">1012</span>
-<span id="LID1013" rel="#L1013">1013</span>
-<span id="LID1014" rel="#L1014">1014</span>
-<span id="LID1015" rel="#L1015">1015</span>
-<span id="LID1016" rel="#L1016">1016</span>
-<span id="LID1017" rel="#L1017">1017</span>
-<span id="LID1018" rel="#L1018">1018</span>
-<span id="LID1019" rel="#L1019">1019</span>
-<span id="LID1020" rel="#L1020">1020</span>
-<span id="LID1021" rel="#L1021">1021</span>
-<span id="LID1022" rel="#L1022">1022</span>
-<span id="LID1023" rel="#L1023">1023</span>
-<span id="LID1024" rel="#L1024">1024</span>
-<span id="LID1025" rel="#L1025">1025</span>
-<span id="LID1026" rel="#L1026">1026</span>
-<span id="LID1027" rel="#L1027">1027</span>
-<span id="LID1028" rel="#L1028">1028</span>
-<span id="LID1029" rel="#L1029">1029</span>
-<span id="LID1030" rel="#L1030">1030</span>
-<span id="LID1031" rel="#L1031">1031</span>
-<span id="LID1032" rel="#L1032">1032</span>
-<span id="LID1033" rel="#L1033">1033</span>
-<span id="LID1034" rel="#L1034">1034</span>
-<span id="LID1035" rel="#L1035">1035</span>
-<span id="LID1036" rel="#L1036">1036</span>
-<span id="LID1037" rel="#L1037">1037</span>
-<span id="LID1038" rel="#L1038">1038</span>
-<span id="LID1039" rel="#L1039">1039</span>
-<span id="LID1040" rel="#L1040">1040</span>
-<span id="LID1041" rel="#L1041">1041</span>
-<span id="LID1042" rel="#L1042">1042</span>
-<span id="LID1043" rel="#L1043">1043</span>
-<span id="LID1044" rel="#L1044">1044</span>
-<span id="LID1045" rel="#L1045">1045</span>
-<span id="LID1046" rel="#L1046">1046</span>
-<span id="LID1047" rel="#L1047">1047</span>
-<span id="LID1048" rel="#L1048">1048</span>
-<span id="LID1049" rel="#L1049">1049</span>
-<span id="LID1050" rel="#L1050">1050</span>
-<span id="LID1051" rel="#L1051">1051</span>
-<span id="LID1052" rel="#L1052">1052</span>
-<span id="LID1053" rel="#L1053">1053</span>
-<span id="LID1054" rel="#L1054">1054</span>
-<span id="LID1055" rel="#L1055">1055</span>
-<span id="LID1056" rel="#L1056">1056</span>
-<span id="LID1057" rel="#L1057">1057</span>
-<span id="LID1058" rel="#L1058">1058</span>
-<span id="LID1059" rel="#L1059">1059</span>
-<span id="LID1060" rel="#L1060">1060</span>
-<span id="LID1061" rel="#L1061">1061</span>
-<span id="LID1062" rel="#L1062">1062</span>
-<span id="LID1063" rel="#L1063">1063</span>
-<span id="LID1064" rel="#L1064">1064</span>
-<span id="LID1065" rel="#L1065">1065</span>
-<span id="LID1066" rel="#L1066">1066</span>
-<span id="LID1067" rel="#L1067">1067</span>
-<span id="LID1068" rel="#L1068">1068</span>
-<span id="LID1069" rel="#L1069">1069</span>
-<span id="LID1070" rel="#L1070">1070</span>
-<span id="LID1071" rel="#L1071">1071</span>
-<span id="LID1072" rel="#L1072">1072</span>
-<span id="LID1073" rel="#L1073">1073</span>
-<span id="LID1074" rel="#L1074">1074</span>
-<span id="LID1075" rel="#L1075">1075</span>
-<span id="LID1076" rel="#L1076">1076</span>
-<span id="LID1077" rel="#L1077">1077</span>
-<span id="LID1078" rel="#L1078">1078</span>
-<span id="LID1079" rel="#L1079">1079</span>
-<span id="LID1080" rel="#L1080">1080</span>
-<span id="LID1081" rel="#L1081">1081</span>
-<span id="LID1082" rel="#L1082">1082</span>
-<span id="LID1083" rel="#L1083">1083</span>
-<span id="LID1084" rel="#L1084">1084</span>
-<span id="LID1085" rel="#L1085">1085</span>
-<span id="LID1086" rel="#L1086">1086</span>
-<span id="LID1087" rel="#L1087">1087</span>
-<span id="LID1088" rel="#L1088">1088</span>
-<span id="LID1089" rel="#L1089">1089</span>
-<span id="LID1090" rel="#L1090">1090</span>
-<span id="LID1091" rel="#L1091">1091</span>
-<span id="LID1092" rel="#L1092">1092</span>
-<span id="LID1093" rel="#L1093">1093</span>
-<span id="LID1094" rel="#L1094">1094</span>
-<span id="LID1095" rel="#L1095">1095</span>
-<span id="LID1096" rel="#L1096">1096</span>
-<span id="LID1097" rel="#L1097">1097</span>
-<span id="LID1098" rel="#L1098">1098</span>
-<span id="LID1099" rel="#L1099">1099</span>
-<span id="LID1100" rel="#L1100">1100</span>
-<span id="LID1101" rel="#L1101">1101</span>
-<span id="LID1102" rel="#L1102">1102</span>
-<span id="LID1103" rel="#L1103">1103</span>
-<span id="LID1104" rel="#L1104">1104</span>
-<span id="LID1105" rel="#L1105">1105</span>
-<span id="LID1106" rel="#L1106">1106</span>
-<span id="LID1107" rel="#L1107">1107</span>
-<span id="LID1108" rel="#L1108">1108</span>
-<span id="LID1109" rel="#L1109">1109</span>
-<span id="LID1110" rel="#L1110">1110</span>
-<span id="LID1111" rel="#L1111">1111</span>
-<span id="LID1112" rel="#L1112">1112</span>
-<span id="LID1113" rel="#L1113">1113</span>
-<span id="LID1114" rel="#L1114">1114</span>
-<span id="LID1115" rel="#L1115">1115</span>
-<span id="LID1116" rel="#L1116">1116</span>
-<span id="LID1117" rel="#L1117">1117</span>
-<span id="LID1118" rel="#L1118">1118</span>
-<span id="LID1119" rel="#L1119">1119</span>
-<span id="LID1120" rel="#L1120">1120</span>
-<span id="LID1121" rel="#L1121">1121</span>
-<span id="LID1122" rel="#L1122">1122</span>
-<span id="LID1123" rel="#L1123">1123</span>
-<span id="LID1124" rel="#L1124">1124</span>
-<span id="LID1125" rel="#L1125">1125</span>
-<span id="LID1126" rel="#L1126">1126</span>
-<span id="LID1127" rel="#L1127">1127</span>
-<span id="LID1128" rel="#L1128">1128</span>
-<span id="LID1129" rel="#L1129">1129</span>
-<span id="LID1130" rel="#L1130">1130</span>
-<span id="LID1131" rel="#L1131">1131</span>
-<span id="LID1132" rel="#L1132">1132</span>
-<span id="LID1133" rel="#L1133">1133</span>
-<span id="LID1134" rel="#L1134">1134</span>
-<span id="LID1135" rel="#L1135">1135</span>
-<span id="LID1136" rel="#L1136">1136</span>
-<span id="LID1137" rel="#L1137">1137</span>
-<span id="LID1138" rel="#L1138">1138</span>
-<span id="LID1139" rel="#L1139">1139</span>
-<span id="LID1140" rel="#L1140">1140</span>
-<span id="LID1141" rel="#L1141">1141</span>
-<span id="LID1142" rel="#L1142">1142</span>
-<span id="LID1143" rel="#L1143">1143</span>
-<span id="LID1144" rel="#L1144">1144</span>
-<span id="LID1145" rel="#L1145">1145</span>
-<span id="LID1146" rel="#L1146">1146</span>
-<span id="LID1147" rel="#L1147">1147</span>
-<span id="LID1148" rel="#L1148">1148</span>
-<span id="LID1149" rel="#L1149">1149</span>
-<span id="LID1150" rel="#L1150">1150</span>
-<span id="LID1151" rel="#L1151">1151</span>
-<span id="LID1152" rel="#L1152">1152</span>
-<span id="LID1153" rel="#L1153">1153</span>
-<span id="LID1154" rel="#L1154">1154</span>
-<span id="LID1155" rel="#L1155">1155</span>
-<span id="LID1156" rel="#L1156">1156</span>
-<span id="LID1157" rel="#L1157">1157</span>
-<span id="LID1158" rel="#L1158">1158</span>
-<span id="LID1159" rel="#L1159">1159</span>
-<span id="LID1160" rel="#L1160">1160</span>
-<span id="LID1161" rel="#L1161">1161</span>
-<span id="LID1162" rel="#L1162">1162</span>
-<span id="LID1163" rel="#L1163">1163</span>
-<span id="LID1164" rel="#L1164">1164</span>
-<span id="LID1165" rel="#L1165">1165</span>
-<span id="LID1166" rel="#L1166">1166</span>
-<span id="LID1167" rel="#L1167">1167</span>
-<span id="LID1168" rel="#L1168">1168</span>
-<span id="LID1169" rel="#L1169">1169</span>
-<span id="LID1170" rel="#L1170">1170</span>
-<span id="LID1171" rel="#L1171">1171</span>
-<span id="LID1172" rel="#L1172">1172</span>
-<span id="LID1173" rel="#L1173">1173</span>
-<span id="LID1174" rel="#L1174">1174</span>
-<span id="LID1175" rel="#L1175">1175</span>
-<span id="LID1176" rel="#L1176">1176</span>
-<span id="LID1177" rel="#L1177">1177</span>
-<span id="LID1178" rel="#L1178">1178</span>
-<span id="LID1179" rel="#L1179">1179</span>
-<span id="LID1180" rel="#L1180">1180</span>
-<span id="LID1181" rel="#L1181">1181</span>
-<span id="LID1182" rel="#L1182">1182</span>
-<span id="LID1183" rel="#L1183">1183</span>
-<span id="LID1184" rel="#L1184">1184</span>
-<span id="LID1185" rel="#L1185">1185</span>
-<span id="LID1186" rel="#L1186">1186</span>
-<span id="LID1187" rel="#L1187">1187</span>
-<span id="LID1188" rel="#L1188">1188</span>
-<span id="LID1189" rel="#L1189">1189</span>
-<span id="LID1190" rel="#L1190">1190</span>
-<span id="LID1191" rel="#L1191">1191</span>
-<span id="LID1192" rel="#L1192">1192</span>
-<span id="LID1193" rel="#L1193">1193</span>
-<span id="LID1194" rel="#L1194">1194</span>
-<span id="LID1195" rel="#L1195">1195</span>
-<span id="LID1196" rel="#L1196">1196</span>
-<span id="LID1197" rel="#L1197">1197</span>
-<span id="LID1198" rel="#L1198">1198</span>
-<span id="LID1199" rel="#L1199">1199</span>
-<span id="LID1200" rel="#L1200">1200</span>
-<span id="LID1201" rel="#L1201">1201</span>
-<span id="LID1202" rel="#L1202">1202</span>
-<span id="LID1203" rel="#L1203">1203</span>
-<span id="LID1204" rel="#L1204">1204</span>
-<span id="LID1205" rel="#L1205">1205</span>
-<span id="LID1206" rel="#L1206">1206</span>
-<span id="LID1207" rel="#L1207">1207</span>
-<span id="LID1208" rel="#L1208">1208</span>
-<span id="LID1209" rel="#L1209">1209</span>
-<span id="LID1210" rel="#L1210">1210</span>
-<span id="LID1211" rel="#L1211">1211</span>
-<span id="LID1212" rel="#L1212">1212</span>
-<span id="LID1213" rel="#L1213">1213</span>
-<span id="LID1214" rel="#L1214">1214</span>
-<span id="LID1215" rel="#L1215">1215</span>
-<span id="LID1216" rel="#L1216">1216</span>
-<span id="LID1217" rel="#L1217">1217</span>
-<span id="LID1218" rel="#L1218">1218</span>
-<span id="LID1219" rel="#L1219">1219</span>
-<span id="LID1220" rel="#L1220">1220</span>
-<span id="LID1221" rel="#L1221">1221</span>
-<span id="LID1222" rel="#L1222">1222</span>
-<span id="LID1223" rel="#L1223">1223</span>
-<span id="LID1224" rel="#L1224">1224</span>
-<span id="LID1225" rel="#L1225">1225</span>
-<span id="LID1226" rel="#L1226">1226</span>
-<span id="LID1227" rel="#L1227">1227</span>
-<span id="LID1228" rel="#L1228">1228</span>
-<span id="LID1229" rel="#L1229">1229</span>
-<span id="LID1230" rel="#L1230">1230</span>
-<span id="LID1231" rel="#L1231">1231</span>
-<span id="LID1232" rel="#L1232">1232</span>
-<span id="LID1233" rel="#L1233">1233</span>
-<span id="LID1234" rel="#L1234">1234</span>
-<span id="LID1235" rel="#L1235">1235</span>
-<span id="LID1236" rel="#L1236">1236</span>
-<span id="LID1237" rel="#L1237">1237</span>
-<span id="LID1238" rel="#L1238">1238</span>
-<span id="LID1239" rel="#L1239">1239</span>
-<span id="LID1240" rel="#L1240">1240</span>
-<span id="LID1241" rel="#L1241">1241</span>
-<span id="LID1242" rel="#L1242">1242</span>
-<span id="LID1243" rel="#L1243">1243</span>
-<span id="LID1244" rel="#L1244">1244</span>
-<span id="LID1245" rel="#L1245">1245</span>
-<span id="LID1246" rel="#L1246">1246</span>
-<span id="LID1247" rel="#L1247">1247</span>
-<span id="LID1248" rel="#L1248">1248</span>
-<span id="LID1249" rel="#L1249">1249</span>
-<span id="LID1250" rel="#L1250">1250</span>
-<span id="LID1251" rel="#L1251">1251</span>
-<span id="LID1252" rel="#L1252">1252</span>
-<span id="LID1253" rel="#L1253">1253</span>
-<span id="LID1254" rel="#L1254">1254</span>
-<span id="LID1255" rel="#L1255">1255</span>
-<span id="LID1256" rel="#L1256">1256</span>
-<span id="LID1257" rel="#L1257">1257</span>
-<span id="LID1258" rel="#L1258">1258</span>
-<span id="LID1259" rel="#L1259">1259</span>
-<span id="LID1260" rel="#L1260">1260</span>
-<span id="LID1261" rel="#L1261">1261</span>
-<span id="LID1262" rel="#L1262">1262</span>
-<span id="LID1263" rel="#L1263">1263</span>
-<span id="LID1264" rel="#L1264">1264</span>
-<span id="LID1265" rel="#L1265">1265</span>
-<span id="LID1266" rel="#L1266">1266</span>
-<span id="LID1267" rel="#L1267">1267</span>
-<span id="LID1268" rel="#L1268">1268</span>
-<span id="LID1269" rel="#L1269">1269</span>
-<span id="LID1270" rel="#L1270">1270</span>
-<span id="LID1271" rel="#L1271">1271</span>
-<span id="LID1272" rel="#L1272">1272</span>
-<span id="LID1273" rel="#L1273">1273</span>
-<span id="LID1274" rel="#L1274">1274</span>
-<span id="LID1275" rel="#L1275">1275</span>
-<span id="LID1276" rel="#L1276">1276</span>
-<span id="LID1277" rel="#L1277">1277</span>
-<span id="LID1278" rel="#L1278">1278</span>
-<span id="LID1279" rel="#L1279">1279</span>
-<span id="LID1280" rel="#L1280">1280</span>
-<span id="LID1281" rel="#L1281">1281</span>
-<span id="LID1282" rel="#L1282">1282</span>
-<span id="LID1283" rel="#L1283">1283</span>
-<span id="LID1284" rel="#L1284">1284</span>
-<span id="LID1285" rel="#L1285">1285</span>
-<span id="LID1286" rel="#L1286">1286</span>
-<span id="LID1287" rel="#L1287">1287</span>
-<span id="LID1288" rel="#L1288">1288</span>
-<span id="LID1289" rel="#L1289">1289</span>
-<span id="LID1290" rel="#L1290">1290</span>
-<span id="LID1291" rel="#L1291">1291</span>
-<span id="LID1292" rel="#L1292">1292</span>
-<span id="LID1293" rel="#L1293">1293</span>
-<span id="LID1294" rel="#L1294">1294</span>
-<span id="LID1295" rel="#L1295">1295</span>
-<span id="LID1296" rel="#L1296">1296</span>
-<span id="LID1297" rel="#L1297">1297</span>
-<span id="LID1298" rel="#L1298">1298</span>
-<span id="LID1299" rel="#L1299">1299</span>
-<span id="LID1300" rel="#L1300">1300</span>
-<span id="LID1301" rel="#L1301">1301</span>
-<span id="LID1302" rel="#L1302">1302</span>
-<span id="LID1303" rel="#L1303">1303</span>
-<span id="LID1304" rel="#L1304">1304</span>
-<span id="LID1305" rel="#L1305">1305</span>
-<span id="LID1306" rel="#L1306">1306</span>
-<span id="LID1307" rel="#L1307">1307</span>
-<span id="LID1308" rel="#L1308">1308</span>
-<span id="LID1309" rel="#L1309">1309</span>
-<span id="LID1310" rel="#L1310">1310</span>
-<span id="LID1311" rel="#L1311">1311</span>
-<span id="LID1312" rel="#L1312">1312</span>
-<span id="LID1313" rel="#L1313">1313</span>
-<span id="LID1314" rel="#L1314">1314</span>
-<span id="LID1315" rel="#L1315">1315</span>
-<span id="LID1316" rel="#L1316">1316</span>
-<span id="LID1317" rel="#L1317">1317</span>
-<span id="LID1318" rel="#L1318">1318</span>
-<span id="LID1319" rel="#L1319">1319</span>
-<span id="LID1320" rel="#L1320">1320</span>
-<span id="LID1321" rel="#L1321">1321</span>
-<span id="LID1322" rel="#L1322">1322</span>
-<span id="LID1323" rel="#L1323">1323</span>
-<span id="LID1324" rel="#L1324">1324</span>
-<span id="LID1325" rel="#L1325">1325</span>
-<span id="LID1326" rel="#L1326">1326</span>
-<span id="LID1327" rel="#L1327">1327</span>
-<span id="LID1328" rel="#L1328">1328</span>
-<span id="LID1329" rel="#L1329">1329</span>
-<span id="LID1330" rel="#L1330">1330</span>
-<span id="LID1331" rel="#L1331">1331</span>
-<span id="LID1332" rel="#L1332">1332</span>
-<span id="LID1333" rel="#L1333">1333</span>
-<span id="LID1334" rel="#L1334">1334</span>
-<span id="LID1335" rel="#L1335">1335</span>
-<span id="LID1336" rel="#L1336">1336</span>
-<span id="LID1337" rel="#L1337">1337</span>
-<span id="LID1338" rel="#L1338">1338</span>
-<span id="LID1339" rel="#L1339">1339</span>
-<span id="LID1340" rel="#L1340">1340</span>
-<span id="LID1341" rel="#L1341">1341</span>
-<span id="LID1342" rel="#L1342">1342</span>
-<span id="LID1343" rel="#L1343">1343</span>
-<span id="LID1344" rel="#L1344">1344</span>
-<span id="LID1345" rel="#L1345">1345</span>
-<span id="LID1346" rel="#L1346">1346</span>
-<span id="LID1347" rel="#L1347">1347</span>
-<span id="LID1348" rel="#L1348">1348</span>
-<span id="LID1349" rel="#L1349">1349</span>
-<span id="LID1350" rel="#L1350">1350</span>
-<span id="LID1351" rel="#L1351">1351</span>
-<span id="LID1352" rel="#L1352">1352</span>
-<span id="LID1353" rel="#L1353">1353</span>
-<span id="LID1354" rel="#L1354">1354</span>
-<span id="LID1355" rel="#L1355">1355</span>
-<span id="LID1356" rel="#L1356">1356</span>
-<span id="LID1357" rel="#L1357">1357</span>
-<span id="LID1358" rel="#L1358">1358</span>
-<span id="LID1359" rel="#L1359">1359</span>
-<span id="LID1360" rel="#L1360">1360</span>
-<span id="LID1361" rel="#L1361">1361</span>
-<span id="LID1362" rel="#L1362">1362</span>
-<span id="LID1363" rel="#L1363">1363</span>
-<span id="LID1364" rel="#L1364">1364</span>
-<span id="LID1365" rel="#L1365">1365</span>
-<span id="LID1366" rel="#L1366">1366</span>
-<span id="LID1367" rel="#L1367">1367</span>
-<span id="LID1368" rel="#L1368">1368</span>
-<span id="LID1369" rel="#L1369">1369</span>
-<span id="LID1370" rel="#L1370">1370</span>
-<span id="LID1371" rel="#L1371">1371</span>
-<span id="LID1372" rel="#L1372">1372</span>
-<span id="LID1373" rel="#L1373">1373</span>
-<span id="LID1374" rel="#L1374">1374</span>
-<span id="LID1375" rel="#L1375">1375</span>
-<span id="LID1376" rel="#L1376">1376</span>
-<span id="LID1377" rel="#L1377">1377</span>
-<span id="LID1378" rel="#L1378">1378</span>
-<span id="LID1379" rel="#L1379">1379</span>
-<span id="LID1380" rel="#L1380">1380</span>
-<span id="LID1381" rel="#L1381">1381</span>
-<span id="LID1382" rel="#L1382">1382</span>
-<span id="LID1383" rel="#L1383">1383</span>
-<span id="LID1384" rel="#L1384">1384</span>
-<span id="LID1385" rel="#L1385">1385</span>
-<span id="LID1386" rel="#L1386">1386</span>
-<span id="LID1387" rel="#L1387">1387</span>
-<span id="LID1388" rel="#L1388">1388</span>
-<span id="LID1389" rel="#L1389">1389</span>
-<span id="LID1390" rel="#L1390">1390</span>
-<span id="LID1391" rel="#L1391">1391</span>
-<span id="LID1392" rel="#L1392">1392</span>
-<span id="LID1393" rel="#L1393">1393</span>
-<span id="LID1394" rel="#L1394">1394</span>
-<span id="LID1395" rel="#L1395">1395</span>
-<span id="LID1396" rel="#L1396">1396</span>
-<span id="LID1397" rel="#L1397">1397</span>
-<span id="LID1398" rel="#L1398">1398</span>
-<span id="LID1399" rel="#L1399">1399</span>
-<span id="LID1400" rel="#L1400">1400</span>
-<span id="LID1401" rel="#L1401">1401</span>
-<span id="LID1402" rel="#L1402">1402</span>
-<span id="LID1403" rel="#L1403">1403</span>
-<span id="LID1404" rel="#L1404">1404</span>
-<span id="LID1405" rel="#L1405">1405</span>
-<span id="LID1406" rel="#L1406">1406</span>
-<span id="LID1407" rel="#L1407">1407</span>
-<span id="LID1408" rel="#L1408">1408</span>
-<span id="LID1409" rel="#L1409">1409</span>
-<span id="LID1410" rel="#L1410">1410</span>
-<span id="LID1411" rel="#L1411">1411</span>
-<span id="LID1412" rel="#L1412">1412</span>
-<span id="LID1413" rel="#L1413">1413</span>
-<span id="LID1414" rel="#L1414">1414</span>
-<span id="LID1415" rel="#L1415">1415</span>
-<span id="LID1416" rel="#L1416">1416</span>
-<span id="LID1417" rel="#L1417">1417</span>
-<span id="LID1418" rel="#L1418">1418</span>
-<span id="LID1419" rel="#L1419">1419</span>
-<span id="LID1420" rel="#L1420">1420</span>
-<span id="LID1421" rel="#L1421">1421</span>
-<span id="LID1422" rel="#L1422">1422</span>
-<span id="LID1423" rel="#L1423">1423</span>
-<span id="LID1424" rel="#L1424">1424</span>
-<span id="LID1425" rel="#L1425">1425</span>
-<span id="LID1426" rel="#L1426">1426</span>
-<span id="LID1427" rel="#L1427">1427</span>
-<span id="LID1428" rel="#L1428">1428</span>
-<span id="LID1429" rel="#L1429">1429</span>
-<span id="LID1430" rel="#L1430">1430</span>
-<span id="LID1431" rel="#L1431">1431</span>
-<span id="LID1432" rel="#L1432">1432</span>
-<span id="LID1433" rel="#L1433">1433</span>
-<span id="LID1434" rel="#L1434">1434</span>
-<span id="LID1435" rel="#L1435">1435</span>
-<span id="LID1436" rel="#L1436">1436</span>
-<span id="LID1437" rel="#L1437">1437</span>
-<span id="LID1438" rel="#L1438">1438</span>
-<span id="LID1439" rel="#L1439">1439</span>
-<span id="LID1440" rel="#L1440">1440</span>
-<span id="LID1441" rel="#L1441">1441</span>
-<span id="LID1442" rel="#L1442">1442</span>
-<span id="LID1443" rel="#L1443">1443</span>
-<span id="LID1444" rel="#L1444">1444</span>
-<span id="LID1445" rel="#L1445">1445</span>
-<span id="LID1446" rel="#L1446">1446</span>
-<span id="LID1447" rel="#L1447">1447</span>
-<span id="LID1448" rel="#L1448">1448</span>
-<span id="LID1449" rel="#L1449">1449</span>
-<span id="LID1450" rel="#L1450">1450</span>
-<span id="LID1451" rel="#L1451">1451</span>
-<span id="LID1452" rel="#L1452">1452</span>
-<span id="LID1453" rel="#L1453">1453</span>
-<span id="LID1454" rel="#L1454">1454</span>
-<span id="LID1455" rel="#L1455">1455</span>
-<span id="LID1456" rel="#L1456">1456</span>
-<span id="LID1457" rel="#L1457">1457</span>
-<span id="LID1458" rel="#L1458">1458</span>
-<span id="LID1459" rel="#L1459">1459</span>
-<span id="LID1460" rel="#L1460">1460</span>
-<span id="LID1461" rel="#L1461">1461</span>
-<span id="LID1462" rel="#L1462">1462</span>
-<span id="LID1463" rel="#L1463">1463</span>
-<span id="LID1464" rel="#L1464">1464</span>
-<span id="LID1465" rel="#L1465">1465</span>
-<span id="LID1466" rel="#L1466">1466</span>
-<span id="LID1467" rel="#L1467">1467</span>
-<span id="LID1468" rel="#L1468">1468</span>
-<span id="LID1469" rel="#L1469">1469</span>
-<span id="LID1470" rel="#L1470">1470</span>
-<span id="LID1471" rel="#L1471">1471</span>
-<span id="LID1472" rel="#L1472">1472</span>
-<span id="LID1473" rel="#L1473">1473</span>
-<span id="LID1474" rel="#L1474">1474</span>
-<span id="LID1475" rel="#L1475">1475</span>
-<span id="LID1476" rel="#L1476">1476</span>
-<span id="LID1477" rel="#L1477">1477</span>
-<span id="LID1478" rel="#L1478">1478</span>
-<span id="LID1479" rel="#L1479">1479</span>
-<span id="LID1480" rel="#L1480">1480</span>
-<span id="LID1481" rel="#L1481">1481</span>
-<span id="LID1482" rel="#L1482">1482</span>
-<span id="LID1483" rel="#L1483">1483</span>
-<span id="LID1484" rel="#L1484">1484</span>
-<span id="LID1485" rel="#L1485">1485</span>
-<span id="LID1486" rel="#L1486">1486</span>
-<span id="LID1487" rel="#L1487">1487</span>
-<span id="LID1488" rel="#L1488">1488</span>
-<span id="LID1489" rel="#L1489">1489</span>
-<span id="LID1490" rel="#L1490">1490</span>
-<span id="LID1491" rel="#L1491">1491</span>
-<span id="LID1492" rel="#L1492">1492</span>
-<span id="LID1493" rel="#L1493">1493</span>
-<span id="LID1494" rel="#L1494">1494</span>
-<span id="LID1495" rel="#L1495">1495</span>
-<span id="LID1496" rel="#L1496">1496</span>
-<span id="LID1497" rel="#L1497">1497</span>
-<span id="LID1498" rel="#L1498">1498</span>
-<span id="LID1499" rel="#L1499">1499</span>
-<span id="LID1500" rel="#L1500">1500</span>
-<span id="LID1501" rel="#L1501">1501</span>
-<span id="LID1502" rel="#L1502">1502</span>
-<span id="LID1503" rel="#L1503">1503</span>
-<span id="LID1504" rel="#L1504">1504</span>
-<span id="LID1505" rel="#L1505">1505</span>
-<span id="LID1506" rel="#L1506">1506</span>
-<span id="LID1507" rel="#L1507">1507</span>
-<span id="LID1508" rel="#L1508">1508</span>
-<span id="LID1509" rel="#L1509">1509</span>
-<span id="LID1510" rel="#L1510">1510</span>
-<span id="LID1511" rel="#L1511">1511</span>
-<span id="LID1512" rel="#L1512">1512</span>
-<span id="LID1513" rel="#L1513">1513</span>
-<span id="LID1514" rel="#L1514">1514</span>
-<span id="LID1515" rel="#L1515">1515</span>
-<span id="LID1516" rel="#L1516">1516</span>
-<span id="LID1517" rel="#L1517">1517</span>
-<span id="LID1518" rel="#L1518">1518</span>
-<span id="LID1519" rel="#L1519">1519</span>
-<span id="LID1520" rel="#L1520">1520</span>
-<span id="LID1521" rel="#L1521">1521</span>
-<span id="LID1522" rel="#L1522">1522</span>
-<span id="LID1523" rel="#L1523">1523</span>
-<span id="LID1524" rel="#L1524">1524</span>
-<span id="LID1525" rel="#L1525">1525</span>
-<span id="LID1526" rel="#L1526">1526</span>
-<span id="LID1527" rel="#L1527">1527</span>
-<span id="LID1528" rel="#L1528">1528</span>
-<span id="LID1529" rel="#L1529">1529</span>
-<span id="LID1530" rel="#L1530">1530</span>
-<span id="LID1531" rel="#L1531">1531</span>
-<span id="LID1532" rel="#L1532">1532</span>
-<span id="LID1533" rel="#L1533">1533</span>
-<span id="LID1534" rel="#L1534">1534</span>
-<span id="LID1535" rel="#L1535">1535</span>
-<span id="LID1536" rel="#L1536">1536</span>
-<span id="LID1537" rel="#L1537">1537</span>
-<span id="LID1538" rel="#L1538">1538</span>
-<span id="LID1539" rel="#L1539">1539</span>
-<span id="LID1540" rel="#L1540">1540</span>
-<span id="LID1541" rel="#L1541">1541</span>
-<span id="LID1542" rel="#L1542">1542</span>
-<span id="LID1543" rel="#L1543">1543</span>
-<span id="LID1544" rel="#L1544">1544</span>
-<span id="LID1545" rel="#L1545">1545</span>
-<span id="LID1546" rel="#L1546">1546</span>
-<span id="LID1547" rel="#L1547">1547</span>
-<span id="LID1548" rel="#L1548">1548</span>
-<span id="LID1549" rel="#L1549">1549</span>
-<span id="LID1550" rel="#L1550">1550</span>
-<span id="LID1551" rel="#L1551">1551</span>
-<span id="LID1552" rel="#L1552">1552</span>
-<span id="LID1553" rel="#L1553">1553</span>
-<span id="LID1554" rel="#L1554">1554</span>
-<span id="LID1555" rel="#L1555">1555</span>
-<span id="LID1556" rel="#L1556">1556</span>
-<span id="LID1557" rel="#L1557">1557</span>
-<span id="LID1558" rel="#L1558">1558</span>
-<span id="LID1559" rel="#L1559">1559</span>
-<span id="LID1560" rel="#L1560">1560</span>
-<span id="LID1561" rel="#L1561">1561</span>
-<span id="LID1562" rel="#L1562">1562</span>
-<span id="LID1563" rel="#L1563">1563</span>
-<span id="LID1564" rel="#L1564">1564</span>
-<span id="LID1565" rel="#L1565">1565</span>
-<span id="LID1566" rel="#L1566">1566</span>
-<span id="LID1567" rel="#L1567">1567</span>
-<span id="LID1568" rel="#L1568">1568</span>
-<span id="LID1569" rel="#L1569">1569</span>
-<span id="LID1570" rel="#L1570">1570</span>
-<span id="LID1571" rel="#L1571">1571</span>
-<span id="LID1572" rel="#L1572">1572</span>
-<span id="LID1573" rel="#L1573">1573</span>
-<span id="LID1574" rel="#L1574">1574</span>
-<span id="LID1575" rel="#L1575">1575</span>
-<span id="LID1576" rel="#L1576">1576</span>
-<span id="LID1577" rel="#L1577">1577</span>
-<span id="LID1578" rel="#L1578">1578</span>
-<span id="LID1579" rel="#L1579">1579</span>
-<span id="LID1580" rel="#L1580">1580</span>
-<span id="LID1581" rel="#L1581">1581</span>
-<span id="LID1582" rel="#L1582">1582</span>
-<span id="LID1583" rel="#L1583">1583</span>
-<span id="LID1584" rel="#L1584">1584</span>
-<span id="LID1585" rel="#L1585">1585</span>
-<span id="LID1586" rel="#L1586">1586</span>
-<span id="LID1587" rel="#L1587">1587</span>
-<span id="LID1588" rel="#L1588">1588</span>
-<span id="LID1589" rel="#L1589">1589</span>
-<span id="LID1590" rel="#L1590">1590</span>
-<span id="LID1591" rel="#L1591">1591</span>
-<span id="LID1592" rel="#L1592">1592</span>
-<span id="LID1593" rel="#L1593">1593</span>
-<span id="LID1594" rel="#L1594">1594</span>
-<span id="LID1595" rel="#L1595">1595</span>
-<span id="LID1596" rel="#L1596">1596</span>
-<span id="LID1597" rel="#L1597">1597</span>
-<span id="LID1598" rel="#L1598">1598</span>
-<span id="LID1599" rel="#L1599">1599</span>
-<span id="LID1600" rel="#L1600">1600</span>
-<span id="LID1601" rel="#L1601">1601</span>
-<span id="LID1602" rel="#L1602">1602</span>
-<span id="LID1603" rel="#L1603">1603</span>
-<span id="LID1604" rel="#L1604">1604</span>
-<span id="LID1605" rel="#L1605">1605</span>
-<span id="LID1606" rel="#L1606">1606</span>
-<span id="LID1607" rel="#L1607">1607</span>
-<span id="LID1608" rel="#L1608">1608</span>
-<span id="LID1609" rel="#L1609">1609</span>
-<span id="LID1610" rel="#L1610">1610</span>
-<span id="LID1611" rel="#L1611">1611</span>
-<span id="LID1612" rel="#L1612">1612</span>
-<span id="LID1613" rel="#L1613">1613</span>
-<span id="LID1614" rel="#L1614">1614</span>
-<span id="LID1615" rel="#L1615">1615</span>
-<span id="LID1616" rel="#L1616">1616</span>
-<span id="LID1617" rel="#L1617">1617</span>
-<span id="LID1618" rel="#L1618">1618</span>
-<span id="LID1619" rel="#L1619">1619</span>
-<span id="LID1620" rel="#L1620">1620</span>
-<span id="LID1621" rel="#L1621">1621</span>
-<span id="LID1622" rel="#L1622">1622</span>
-<span id="LID1623" rel="#L1623">1623</span>
-<span id="LID1624" rel="#L1624">1624</span>
-<span id="LID1625" rel="#L1625">1625</span>
-<span id="LID1626" rel="#L1626">1626</span>
-<span id="LID1627" rel="#L1627">1627</span>
-<span id="LID1628" rel="#L1628">1628</span>
-<span id="LID1629" rel="#L1629">1629</span>
-<span id="LID1630" rel="#L1630">1630</span>
-<span id="LID1631" rel="#L1631">1631</span>
-<span id="LID1632" rel="#L1632">1632</span>
-<span id="LID1633" rel="#L1633">1633</span>
-<span id="LID1634" rel="#L1634">1634</span>
-<span id="LID1635" rel="#L1635">1635</span>
-<span id="LID1636" rel="#L1636">1636</span>
-<span id="LID1637" rel="#L1637">1637</span>
-<span id="LID1638" rel="#L1638">1638</span>
-<span id="LID1639" rel="#L1639">1639</span>
-<span id="LID1640" rel="#L1640">1640</span>
-<span id="LID1641" rel="#L1641">1641</span>
-<span id="LID1642" rel="#L1642">1642</span>
-<span id="LID1643" rel="#L1643">1643</span>
-<span id="LID1644" rel="#L1644">1644</span>
-<span id="LID1645" rel="#L1645">1645</span>
-<span id="LID1646" rel="#L1646">1646</span>
-<span id="LID1647" rel="#L1647">1647</span>
-<span id="LID1648" rel="#L1648">1648</span>
-<span id="LID1649" rel="#L1649">1649</span>
-<span id="LID1650" rel="#L1650">1650</span>
-<span id="LID1651" rel="#L1651">1651</span>
-<span id="LID1652" rel="#L1652">1652</span>
-<span id="LID1653" rel="#L1653">1653</span>
-<span id="LID1654" rel="#L1654">1654</span>
-<span id="LID1655" rel="#L1655">1655</span>
-<span id="LID1656" rel="#L1656">1656</span>
-<span id="LID1657" rel="#L1657">1657</span>
-<span id="LID1658" rel="#L1658">1658</span>
-<span id="LID1659" rel="#L1659">1659</span>
-<span id="LID1660" rel="#L1660">1660</span>
-<span id="LID1661" rel="#L1661">1661</span>
-<span id="LID1662" rel="#L1662">1662</span>
-<span id="LID1663" rel="#L1663">1663</span>
-<span id="LID1664" rel="#L1664">1664</span>
-<span id="LID1665" rel="#L1665">1665</span>
-<span id="LID1666" rel="#L1666">1666</span>
-<span id="LID1667" rel="#L1667">1667</span>
-<span id="LID1668" rel="#L1668">1668</span>
-<span id="LID1669" rel="#L1669">1669</span>
-<span id="LID1670" rel="#L1670">1670</span>
-<span id="LID1671" rel="#L1671">1671</span>
-<span id="LID1672" rel="#L1672">1672</span>
-<span id="LID1673" rel="#L1673">1673</span>
-<span id="LID1674" rel="#L1674">1674</span>
-<span id="LID1675" rel="#L1675">1675</span>
-<span id="LID1676" rel="#L1676">1676</span>
-<span id="LID1677" rel="#L1677">1677</span>
-<span id="LID1678" rel="#L1678">1678</span>
-<span id="LID1679" rel="#L1679">1679</span>
-<span id="LID1680" rel="#L1680">1680</span>
-<span id="LID1681" rel="#L1681">1681</span>
-<span id="LID1682" rel="#L1682">1682</span>
-<span id="LID1683" rel="#L1683">1683</span>
-<span id="LID1684" rel="#L1684">1684</span>
-<span id="LID1685" rel="#L1685">1685</span>
-<span id="LID1686" rel="#L1686">1686</span>
-<span id="LID1687" rel="#L1687">1687</span>
-<span id="LID1688" rel="#L1688">1688</span>
-<span id="LID1689" rel="#L1689">1689</span>
-<span id="LID1690" rel="#L1690">1690</span>
-<span id="LID1691" rel="#L1691">1691</span>
-<span id="LID1692" rel="#L1692">1692</span>
-<span id="LID1693" rel="#L1693">1693</span>
-<span id="LID1694" rel="#L1694">1694</span>
-<span id="LID1695" rel="#L1695">1695</span>
-<span id="LID1696" rel="#L1696">1696</span>
-<span id="LID1697" rel="#L1697">1697</span>
-<span id="LID1698" rel="#L1698">1698</span>
-<span id="LID1699" rel="#L1699">1699</span>
-<span id="LID1700" rel="#L1700">1700</span>
-<span id="LID1701" rel="#L1701">1701</span>
-<span id="LID1702" rel="#L1702">1702</span>
-<span id="LID1703" rel="#L1703">1703</span>
-<span id="LID1704" rel="#L1704">1704</span>
-<span id="LID1705" rel="#L1705">1705</span>
-<span id="LID1706" rel="#L1706">1706</span>
-<span id="LID1707" rel="#L1707">1707</span>
-<span id="LID1708" rel="#L1708">1708</span>
-<span id="LID1709" rel="#L1709">1709</span>
-<span id="LID1710" rel="#L1710">1710</span>
-<span id="LID1711" rel="#L1711">1711</span>
-<span id="LID1712" rel="#L1712">1712</span>
-<span id="LID1713" rel="#L1713">1713</span>
-<span id="LID1714" rel="#L1714">1714</span>
-<span id="LID1715" rel="#L1715">1715</span>
-<span id="LID1716" rel="#L1716">1716</span>
-<span id="LID1717" rel="#L1717">1717</span>
-<span id="LID1718" rel="#L1718">1718</span>
-<span id="LID1719" rel="#L1719">1719</span>
-<span id="LID1720" rel="#L1720">1720</span>
-<span id="LID1721" rel="#L1721">1721</span>
-<span id="LID1722" rel="#L1722">1722</span>
-<span id="LID1723" rel="#L1723">1723</span>
-<span id="LID1724" rel="#L1724">1724</span>
-<span id="LID1725" rel="#L1725">1725</span>
-<span id="LID1726" rel="#L1726">1726</span>
-<span id="LID1727" rel="#L1727">1727</span>
-<span id="LID1728" rel="#L1728">1728</span>
-<span id="LID1729" rel="#L1729">1729</span>
-<span id="LID1730" rel="#L1730">1730</span>
-<span id="LID1731" rel="#L1731">1731</span>
-<span id="LID1732" rel="#L1732">1732</span>
-<span id="LID1733" rel="#L1733">1733</span>
-<span id="LID1734" rel="#L1734">1734</span>
-<span id="LID1735" rel="#L1735">1735</span>
-<span id="LID1736" rel="#L1736">1736</span>
-<span id="LID1737" rel="#L1737">1737</span>
-<span id="LID1738" rel="#L1738">1738</span>
-<span id="LID1739" rel="#L1739">1739</span>
-<span id="LID1740" rel="#L1740">1740</span>
-<span id="LID1741" rel="#L1741">1741</span>
-<span id="LID1742" rel="#L1742">1742</span>
-<span id="LID1743" rel="#L1743">1743</span>
-<span id="LID1744" rel="#L1744">1744</span>
-<span id="LID1745" rel="#L1745">1745</span>
-<span id="LID1746" rel="#L1746">1746</span>
-<span id="LID1747" rel="#L1747">1747</span>
-<span id="LID1748" rel="#L1748">1748</span>
-<span id="LID1749" rel="#L1749">1749</span>
-<span id="LID1750" rel="#L1750">1750</span>
-<span id="LID1751" rel="#L1751">1751</span>
-<span id="LID1752" rel="#L1752">1752</span>
-<span id="LID1753" rel="#L1753">1753</span>
-<span id="LID1754" rel="#L1754">1754</span>
-<span id="LID1755" rel="#L1755">1755</span>
-<span id="LID1756" rel="#L1756">1756</span>
-<span id="LID1757" rel="#L1757">1757</span>
-<span id="LID1758" rel="#L1758">1758</span>
-<span id="LID1759" rel="#L1759">1759</span>
-<span id="LID1760" rel="#L1760">1760</span>
-<span id="LID1761" rel="#L1761">1761</span>
-<span id="LID1762" rel="#L1762">1762</span>
-<span id="LID1763" rel="#L1763">1763</span>
-<span id="LID1764" rel="#L1764">1764</span>
-<span id="LID1765" rel="#L1765">1765</span>
-<span id="LID1766" rel="#L1766">1766</span>
-<span id="LID1767" rel="#L1767">1767</span>
-<span id="LID1768" rel="#L1768">1768</span>
-<span id="LID1769" rel="#L1769">1769</span>
-<span id="LID1770" rel="#L1770">1770</span>
-<span id="LID1771" rel="#L1771">1771</span>
-<span id="LID1772" rel="#L1772">1772</span>
-<span id="LID1773" rel="#L1773">1773</span>
-<span id="LID1774" rel="#L1774">1774</span>
-<span id="LID1775" rel="#L1775">1775</span>
-<span id="LID1776" rel="#L1776">1776</span>
-<span id="LID1777" rel="#L1777">1777</span>
-<span id="LID1778" rel="#L1778">1778</span>
-<span id="LID1779" rel="#L1779">1779</span>
-<span id="LID1780" rel="#L1780">1780</span>
-<span id="LID1781" rel="#L1781">1781</span>
-<span id="LID1782" rel="#L1782">1782</span>
-<span id="LID1783" rel="#L1783">1783</span>
-<span id="LID1784" rel="#L1784">1784</span>
-<span id="LID1785" rel="#L1785">1785</span>
-<span id="LID1786" rel="#L1786">1786</span>
-<span id="LID1787" rel="#L1787">1787</span>
-<span id="LID1788" rel="#L1788">1788</span>
-<span id="LID1789" rel="#L1789">1789</span>
-<span id="LID1790" rel="#L1790">1790</span>
-<span id="LID1791" rel="#L1791">1791</span>
-<span id="LID1792" rel="#L1792">1792</span>
-<span id="LID1793" rel="#L1793">1793</span>
-<span id="LID1794" rel="#L1794">1794</span>
-<span id="LID1795" rel="#L1795">1795</span>
-<span id="LID1796" rel="#L1796">1796</span>
-<span id="LID1797" rel="#L1797">1797</span>
-<span id="LID1798" rel="#L1798">1798</span>
-<span id="LID1799" rel="#L1799">1799</span>
-<span id="LID1800" rel="#L1800">1800</span>
-<span id="LID1801" rel="#L1801">1801</span>
-<span id="LID1802" rel="#L1802">1802</span>
-<span id="LID1803" rel="#L1803">1803</span>
-<span id="LID1804" rel="#L1804">1804</span>
-<span id="LID1805" rel="#L1805">1805</span>
-<span id="LID1806" rel="#L1806">1806</span>
-<span id="LID1807" rel="#L1807">1807</span>
-<span id="LID1808" rel="#L1808">1808</span>
-<span id="LID1809" rel="#L1809">1809</span>
-<span id="LID1810" rel="#L1810">1810</span>
-<span id="LID1811" rel="#L1811">1811</span>
-<span id="LID1812" rel="#L1812">1812</span>
-<span id="LID1813" rel="#L1813">1813</span>
-<span id="LID1814" rel="#L1814">1814</span>
-<span id="LID1815" rel="#L1815">1815</span>
-<span id="LID1816" rel="#L1816">1816</span>
-<span id="LID1817" rel="#L1817">1817</span>
-<span id="LID1818" rel="#L1818">1818</span>
-<span id="LID1819" rel="#L1819">1819</span>
-<span id="LID1820" rel="#L1820">1820</span>
-<span id="LID1821" rel="#L1821">1821</span>
-<span id="LID1822" rel="#L1822">1822</span>
-<span id="LID1823" rel="#L1823">1823</span>
-<span id="LID1824" rel="#L1824">1824</span>
-<span id="LID1825" rel="#L1825">1825</span>
-<span id="LID1826" rel="#L1826">1826</span>
-<span id="LID1827" rel="#L1827">1827</span>
-<span id="LID1828" rel="#L1828">1828</span>
-<span id="LID1829" rel="#L1829">1829</span>
-<span id="LID1830" rel="#L1830">1830</span>
-<span id="LID1831" rel="#L1831">1831</span>
-<span id="LID1832" rel="#L1832">1832</span>
-<span id="LID1833" rel="#L1833">1833</span>
-<span id="LID1834" rel="#L1834">1834</span>
-<span id="LID1835" rel="#L1835">1835</span>
-<span id="LID1836" rel="#L1836">1836</span>
-<span id="LID1837" rel="#L1837">1837</span>
-<span id="LID1838" rel="#L1838">1838</span>
-<span id="LID1839" rel="#L1839">1839</span>
-<span id="LID1840" rel="#L1840">1840</span>
-<span id="LID1841" rel="#L1841">1841</span>
-<span id="LID1842" rel="#L1842">1842</span>
-<span id="LID1843" rel="#L1843">1843</span>
-<span id="LID1844" rel="#L1844">1844</span>
-<span id="LID1845" rel="#L1845">1845</span>
-<span id="LID1846" rel="#L1846">1846</span>
-<span id="LID1847" rel="#L1847">1847</span>
-<span id="LID1848" rel="#L1848">1848</span>
-<span id="LID1849" rel="#L1849">1849</span>
-<span id="LID1850" rel="#L1850">1850</span>
-<span id="LID1851" rel="#L1851">1851</span>
-<span id="LID1852" rel="#L1852">1852</span>
-<span id="LID1853" rel="#L1853">1853</span>
-<span id="LID1854" rel="#L1854">1854</span>
-<span id="LID1855" rel="#L1855">1855</span>
-<span id="LID1856" rel="#L1856">1856</span>
-<span id="LID1857" rel="#L1857">1857</span>
-<span id="LID1858" rel="#L1858">1858</span>
-<span id="LID1859" rel="#L1859">1859</span>
-<span id="LID1860" rel="#L1860">1860</span>
-<span id="LID1861" rel="#L1861">1861</span>
-<span id="LID1862" rel="#L1862">1862</span>
-<span id="LID1863" rel="#L1863">1863</span>
-<span id="LID1864" rel="#L1864">1864</span>
-<span id="LID1865" rel="#L1865">1865</span>
-<span id="LID1866" rel="#L1866">1866</span>
-<span id="LID1867" rel="#L1867">1867</span>
-<span id="LID1868" rel="#L1868">1868</span>
-<span id="LID1869" rel="#L1869">1869</span>
-<span id="LID1870" rel="#L1870">1870</span>
-<span id="LID1871" rel="#L1871">1871</span>
-<span id="LID1872" rel="#L1872">1872</span>
-<span id="LID1873" rel="#L1873">1873</span>
-<span id="LID1874" rel="#L1874">1874</span>
-<span id="LID1875" rel="#L1875">1875</span>
-<span id="LID1876" rel="#L1876">1876</span>
-<span id="LID1877" rel="#L1877">1877</span>
-<span id="LID1878" rel="#L1878">1878</span>
-<span id="LID1879" rel="#L1879">1879</span>
-<span id="LID1880" rel="#L1880">1880</span>
-<span id="LID1881" rel="#L1881">1881</span>
-<span id="LID1882" rel="#L1882">1882</span>
-<span id="LID1883" rel="#L1883">1883</span>
-<span id="LID1884" rel="#L1884">1884</span>
-<span id="LID1885" rel="#L1885">1885</span>
-<span id="LID1886" rel="#L1886">1886</span>
-<span id="LID1887" rel="#L1887">1887</span>
-<span id="LID1888" rel="#L1888">1888</span>
-<span id="LID1889" rel="#L1889">1889</span>
-<span id="LID1890" rel="#L1890">1890</span>
-<span id="LID1891" rel="#L1891">1891</span>
-<span id="LID1892" rel="#L1892">1892</span>
-<span id="LID1893" rel="#L1893">1893</span>
-<span id="LID1894" rel="#L1894">1894</span>
-<span id="LID1895" rel="#L1895">1895</span>
-<span id="LID1896" rel="#L1896">1896</span>
-<span id="LID1897" rel="#L1897">1897</span>
-<span id="LID1898" rel="#L1898">1898</span>
-<span id="LID1899" rel="#L1899">1899</span>
-<span id="LID1900" rel="#L1900">1900</span>
-<span id="LID1901" rel="#L1901">1901</span>
-<span id="LID1902" rel="#L1902">1902</span>
-<span id="LID1903" rel="#L1903">1903</span>
-<span id="LID1904" rel="#L1904">1904</span>
-<span id="LID1905" rel="#L1905">1905</span>
-<span id="LID1906" rel="#L1906">1906</span>
-<span id="LID1907" rel="#L1907">1907</span>
-<span id="LID1908" rel="#L1908">1908</span>
-<span id="LID1909" rel="#L1909">1909</span>
-<span id="LID1910" rel="#L1910">1910</span>
-<span id="LID1911" rel="#L1911">1911</span>
-<span id="LID1912" rel="#L1912">1912</span>
-<span id="LID1913" rel="#L1913">1913</span>
-<span id="LID1914" rel="#L1914">1914</span>
-<span id="LID1915" rel="#L1915">1915</span>
-<span id="LID1916" rel="#L1916">1916</span>
-<span id="LID1917" rel="#L1917">1917</span>
-<span id="LID1918" rel="#L1918">1918</span>
-<span id="LID1919" rel="#L1919">1919</span>
-<span id="LID1920" rel="#L1920">1920</span>
-<span id="LID1921" rel="#L1921">1921</span>
-<span id="LID1922" rel="#L1922">1922</span>
-<span id="LID1923" rel="#L1923">1923</span>
-<span id="LID1924" rel="#L1924">1924</span>
-<span id="LID1925" rel="#L1925">1925</span>
-<span id="LID1926" rel="#L1926">1926</span>
-<span id="LID1927" rel="#L1927">1927</span>
-<span id="LID1928" rel="#L1928">1928</span>
-<span id="LID1929" rel="#L1929">1929</span>
-<span id="LID1930" rel="#L1930">1930</span>
-<span id="LID1931" rel="#L1931">1931</span>
-<span id="LID1932" rel="#L1932">1932</span>
-<span id="LID1933" rel="#L1933">1933</span>
-<span id="LID1934" rel="#L1934">1934</span>
-<span id="LID1935" rel="#L1935">1935</span>
-<span id="LID1936" rel="#L1936">1936</span>
-<span id="LID1937" rel="#L1937">1937</span>
-<span id="LID1938" rel="#L1938">1938</span>
-<span id="LID1939" rel="#L1939">1939</span>
-<span id="LID1940" rel="#L1940">1940</span>
-<span id="LID1941" rel="#L1941">1941</span>
-<span id="LID1942" rel="#L1942">1942</span>
-<span id="LID1943" rel="#L1943">1943</span>
-<span id="LID1944" rel="#L1944">1944</span>
-<span id="LID1945" rel="#L1945">1945</span>
-<span id="LID1946" rel="#L1946">1946</span>
-<span id="LID1947" rel="#L1947">1947</span>
-<span id="LID1948" rel="#L1948">1948</span>
-<span id="LID1949" rel="#L1949">1949</span>
-<span id="LID1950" rel="#L1950">1950</span>
-<span id="LID1951" rel="#L1951">1951</span>
-<span id="LID1952" rel="#L1952">1952</span>
-<span id="LID1953" rel="#L1953">1953</span>
-<span id="LID1954" rel="#L1954">1954</span>
-<span id="LID1955" rel="#L1955">1955</span>
-<span id="LID1956" rel="#L1956">1956</span>
-<span id="LID1957" rel="#L1957">1957</span>
-<span id="LID1958" rel="#L1958">1958</span>
-<span id="LID1959" rel="#L1959">1959</span>
-<span id="LID1960" rel="#L1960">1960</span>
-<span id="LID1961" rel="#L1961">1961</span>
-<span id="LID1962" rel="#L1962">1962</span>
-<span id="LID1963" rel="#L1963">1963</span>
-<span id="LID1964" rel="#L1964">1964</span>
-<span id="LID1965" rel="#L1965">1965</span>
-<span id="LID1966" rel="#L1966">1966</span>
-<span id="LID1967" rel="#L1967">1967</span>
-<span id="LID1968" rel="#L1968">1968</span>
-<span id="LID1969" rel="#L1969">1969</span>
-<span id="LID1970" rel="#L1970">1970</span>
-<span id="LID1971" rel="#L1971">1971</span>
-<span id="LID1972" rel="#L1972">1972</span>
-<span id="LID1973" rel="#L1973">1973</span>
-<span id="LID1974" rel="#L1974">1974</span>
-<span id="LID1975" rel="#L1975">1975</span>
-<span id="LID1976" rel="#L1976">1976</span>
-<span id="LID1977" rel="#L1977">1977</span>
-<span id="LID1978" rel="#L1978">1978</span>
-<span id="LID1979" rel="#L1979">1979</span>
-<span id="LID1980" rel="#L1980">1980</span>
-<span id="LID1981" rel="#L1981">1981</span>
-<span id="LID1982" rel="#L1982">1982</span>
-<span id="LID1983" rel="#L1983">1983</span>
-<span id="LID1984" rel="#L1984">1984</span>
-<span id="LID1985" rel="#L1985">1985</span>
-<span id="LID1986" rel="#L1986">1986</span>
-<span id="LID1987" rel="#L1987">1987</span>
-<span id="LID1988" rel="#L1988">1988</span>
-<span id="LID1989" rel="#L1989">1989</span>
-<span id="LID1990" rel="#L1990">1990</span>
-<span id="LID1991" rel="#L1991">1991</span>
-<span id="LID1992" rel="#L1992">1992</span>
-<span id="LID1993" rel="#L1993">1993</span>
-<span id="LID1994" rel="#L1994">1994</span>
-<span id="LID1995" rel="#L1995">1995</span>
-<span id="LID1996" rel="#L1996">1996</span>
-<span id="LID1997" rel="#L1997">1997</span>
-<span id="LID1998" rel="#L1998">1998</span>
-<span id="LID1999" rel="#L1999">1999</span>
-<span id="LID2000" rel="#L2000">2000</span>
-<span id="LID2001" rel="#L2001">2001</span>
-<span id="LID2002" rel="#L2002">2002</span>
-<span id="LID2003" rel="#L2003">2003</span>
-<span id="LID2004" rel="#L2004">2004</span>
-<span id="LID2005" rel="#L2005">2005</span>
-<span id="LID2006" rel="#L2006">2006</span>
-<span id="LID2007" rel="#L2007">2007</span>
-<span id="LID2008" rel="#L2008">2008</span>
-<span id="LID2009" rel="#L2009">2009</span>
-<span id="LID2010" rel="#L2010">2010</span>
-<span id="LID2011" rel="#L2011">2011</span>
-<span id="LID2012" rel="#L2012">2012</span>
-<span id="LID2013" rel="#L2013">2013</span>
-<span id="LID2014" rel="#L2014">2014</span>
-<span id="LID2015" rel="#L2015">2015</span>
-<span id="LID2016" rel="#L2016">2016</span>
-<span id="LID2017" rel="#L2017">2017</span>
-<span id="LID2018" rel="#L2018">2018</span>
-<span id="LID2019" rel="#L2019">2019</span>
-<span id="LID2020" rel="#L2020">2020</span>
-<span id="LID2021" rel="#L2021">2021</span>
-<span id="LID2022" rel="#L2022">2022</span>
-<span id="LID2023" rel="#L2023">2023</span>
-<span id="LID2024" rel="#L2024">2024</span>
-<span id="LID2025" rel="#L2025">2025</span>
-<span id="LID2026" rel="#L2026">2026</span>
-<span id="LID2027" rel="#L2027">2027</span>
-<span id="LID2028" rel="#L2028">2028</span>
-<span id="LID2029" rel="#L2029">2029</span>
-<span id="LID2030" rel="#L2030">2030</span>
-<span id="LID2031" rel="#L2031">2031</span>
-<span id="LID2032" rel="#L2032">2032</span>
-<span id="LID2033" rel="#L2033">2033</span>
-<span id="LID2034" rel="#L2034">2034</span>
-<span id="LID2035" rel="#L2035">2035</span>
-<span id="LID2036" rel="#L2036">2036</span>
-<span id="LID2037" rel="#L2037">2037</span>
-<span id="LID2038" rel="#L2038">2038</span>
-<span id="LID2039" rel="#L2039">2039</span>
-<span id="LID2040" rel="#L2040">2040</span>
-<span id="LID2041" rel="#L2041">2041</span>
-<span id="LID2042" rel="#L2042">2042</span>
-<span id="LID2043" rel="#L2043">2043</span>
-<span id="LID2044" rel="#L2044">2044</span>
-<span id="LID2045" rel="#L2045">2045</span>
-<span id="LID2046" rel="#L2046">2046</span>
-<span id="LID2047" rel="#L2047">2047</span>
-<span id="LID2048" rel="#L2048">2048</span>
-<span id="LID2049" rel="#L2049">2049</span>
-<span id="LID2050" rel="#L2050">2050</span>
-<span id="LID2051" rel="#L2051">2051</span>
-<span id="LID2052" rel="#L2052">2052</span>
-<span id="LID2053" rel="#L2053">2053</span>
-<span id="LID2054" rel="#L2054">2054</span>
-<span id="LID2055" rel="#L2055">2055</span>
-<span id="LID2056" rel="#L2056">2056</span>
-<span id="LID2057" rel="#L2057">2057</span>
-<span id="LID2058" rel="#L2058">2058</span>
-<span id="LID2059" rel="#L2059">2059</span>
-<span id="LID2060" rel="#L2060">2060</span>
-<span id="LID2061" rel="#L2061">2061</span>
-<span id="LID2062" rel="#L2062">2062</span>
-<span id="LID2063" rel="#L2063">2063</span>
-<span id="LID2064" rel="#L2064">2064</span>
-<span id="LID2065" rel="#L2065">2065</span>
-<span id="LID2066" rel="#L2066">2066</span>
-<span id="LID2067" rel="#L2067">2067</span>
-<span id="LID2068" rel="#L2068">2068</span>
-<span id="LID2069" rel="#L2069">2069</span>
-<span id="LID2070" rel="#L2070">2070</span>
-<span id="LID2071" rel="#L2071">2071</span>
-<span id="LID2072" rel="#L2072">2072</span>
-<span id="LID2073" rel="#L2073">2073</span>
-<span id="LID2074" rel="#L2074">2074</span>
-<span id="LID2075" rel="#L2075">2075</span>
-<span id="LID2076" rel="#L2076">2076</span>
-<span id="LID2077" rel="#L2077">2077</span>
-<span id="LID2078" rel="#L2078">2078</span>
-<span id="LID2079" rel="#L2079">2079</span>
-<span id="LID2080" rel="#L2080">2080</span>
-<span id="LID2081" rel="#L2081">2081</span>
-<span id="LID2082" rel="#L2082">2082</span>
-<span id="LID2083" rel="#L2083">2083</span>
-<span id="LID2084" rel="#L2084">2084</span>
-<span id="LID2085" rel="#L2085">2085</span>
-<span id="LID2086" rel="#L2086">2086</span>
-<span id="LID2087" rel="#L2087">2087</span>
-<span id="LID2088" rel="#L2088">2088</span>
-<span id="LID2089" rel="#L2089">2089</span>
-<span id="LID2090" rel="#L2090">2090</span>
-<span id="LID2091" rel="#L2091">2091</span>
-<span id="LID2092" rel="#L2092">2092</span>
-<span id="LID2093" rel="#L2093">2093</span>
-<span id="LID2094" rel="#L2094">2094</span>
-<span id="LID2095" rel="#L2095">2095</span>
-<span id="LID2096" rel="#L2096">2096</span>
-<span id="LID2097" rel="#L2097">2097</span>
-<span id="LID2098" rel="#L2098">2098</span>
-<span id="LID2099" rel="#L2099">2099</span>
-<span id="LID2100" rel="#L2100">2100</span>
-<span id="LID2101" rel="#L2101">2101</span>
-<span id="LID2102" rel="#L2102">2102</span>
-<span id="LID2103" rel="#L2103">2103</span>
-<span id="LID2104" rel="#L2104">2104</span>
-<span id="LID2105" rel="#L2105">2105</span>
-<span id="LID2106" rel="#L2106">2106</span>
-<span id="LID2107" rel="#L2107">2107</span>
-<span id="LID2108" rel="#L2108">2108</span>
-<span id="LID2109" rel="#L2109">2109</span>
-<span id="LID2110" rel="#L2110">2110</span>
-<span id="LID2111" rel="#L2111">2111</span>
-<span id="LID2112" rel="#L2112">2112</span>
-<span id="LID2113" rel="#L2113">2113</span>
-<span id="LID2114" rel="#L2114">2114</span>
-<span id="LID2115" rel="#L2115">2115</span>
-<span id="LID2116" rel="#L2116">2116</span>
-<span id="LID2117" rel="#L2117">2117</span>
-<span id="LID2118" rel="#L2118">2118</span>
-<span id="LID2119" rel="#L2119">2119</span>
-<span id="LID2120" rel="#L2120">2120</span>
-<span id="LID2121" rel="#L2121">2121</span>
-<span id="LID2122" rel="#L2122">2122</span>
-<span id="LID2123" rel="#L2123">2123</span>
-<span id="LID2124" rel="#L2124">2124</span>
-<span id="LID2125" rel="#L2125">2125</span>
-<span id="LID2126" rel="#L2126">2126</span>
-<span id="LID2127" rel="#L2127">2127</span>
-<span id="LID2128" rel="#L2128">2128</span>
-<span id="LID2129" rel="#L2129">2129</span>
-<span id="LID2130" rel="#L2130">2130</span>
-<span id="LID2131" rel="#L2131">2131</span>
-<span id="LID2132" rel="#L2132">2132</span>
-<span id="LID2133" rel="#L2133">2133</span>
-<span id="LID2134" rel="#L2134">2134</span>
-<span id="LID2135" rel="#L2135">2135</span>
-<span id="LID2136" rel="#L2136">2136</span>
-<span id="LID2137" rel="#L2137">2137</span>
-<span id="LID2138" rel="#L2138">2138</span>
-<span id="LID2139" rel="#L2139">2139</span>
-<span id="LID2140" rel="#L2140">2140</span>
-<span id="LID2141" rel="#L2141">2141</span>
-<span id="LID2142" rel="#L2142">2142</span>
-<span id="LID2143" rel="#L2143">2143</span>
-<span id="LID2144" rel="#L2144">2144</span>
-<span id="LID2145" rel="#L2145">2145</span>
-<span id="LID2146" rel="#L2146">2146</span>
-<span id="LID2147" rel="#L2147">2147</span>
-<span id="LID2148" rel="#L2148">2148</span>
-<span id="LID2149" rel="#L2149">2149</span>
-<span id="LID2150" rel="#L2150">2150</span>
-<span id="LID2151" rel="#L2151">2151</span>
-<span id="LID2152" rel="#L2152">2152</span>
-<span id="LID2153" rel="#L2153">2153</span>
-<span id="LID2154" rel="#L2154">2154</span>
-<span id="LID2155" rel="#L2155">2155</span>
-<span id="LID2156" rel="#L2156">2156</span>
-<span id="LID2157" rel="#L2157">2157</span>
-<span id="LID2158" rel="#L2158">2158</span>
-<span id="LID2159" rel="#L2159">2159</span>
-<span id="LID2160" rel="#L2160">2160</span>
-<span id="LID2161" rel="#L2161">2161</span>
-<span id="LID2162" rel="#L2162">2162</span>
-<span id="LID2163" rel="#L2163">2163</span>
-<span id="LID2164" rel="#L2164">2164</span>
-<span id="LID2165" rel="#L2165">2165</span>
-<span id="LID2166" rel="#L2166">2166</span>
-<span id="LID2167" rel="#L2167">2167</span>
-<span id="LID2168" rel="#L2168">2168</span>
-<span id="LID2169" rel="#L2169">2169</span>
-<span id="LID2170" rel="#L2170">2170</span>
-<span id="LID2171" rel="#L2171">2171</span>
-<span id="LID2172" rel="#L2172">2172</span>
-<span id="LID2173" rel="#L2173">2173</span>
-<span id="LID2174" rel="#L2174">2174</span>
-<span id="LID2175" rel="#L2175">2175</span>
-<span id="LID2176" rel="#L2176">2176</span>
-<span id="LID2177" rel="#L2177">2177</span>
-<span id="LID2178" rel="#L2178">2178</span>
-<span id="LID2179" rel="#L2179">2179</span>
-<span id="LID2180" rel="#L2180">2180</span>
-<span id="LID2181" rel="#L2181">2181</span>
-<span id="LID2182" rel="#L2182">2182</span>
-<span id="LID2183" rel="#L2183">2183</span>
-<span id="LID2184" rel="#L2184">2184</span>
-<span id="LID2185" rel="#L2185">2185</span>
-<span id="LID2186" rel="#L2186">2186</span>
-<span id="LID2187" rel="#L2187">2187</span>
-<span id="LID2188" rel="#L2188">2188</span>
-<span id="LID2189" rel="#L2189">2189</span>
-<span id="LID2190" rel="#L2190">2190</span>
-<span id="LID2191" rel="#L2191">2191</span>
-<span id="LID2192" rel="#L2192">2192</span>
-<span id="LID2193" rel="#L2193">2193</span>
-<span id="LID2194" rel="#L2194">2194</span>
-<span id="LID2195" rel="#L2195">2195</span>
-<span id="LID2196" rel="#L2196">2196</span>
-<span id="LID2197" rel="#L2197">2197</span>
-<span id="LID2198" rel="#L2198">2198</span>
-<span id="LID2199" rel="#L2199">2199</span>
-<span id="LID2200" rel="#L2200">2200</span>
-<span id="LID2201" rel="#L2201">2201</span>
-<span id="LID2202" rel="#L2202">2202</span>
-<span id="LID2203" rel="#L2203">2203</span>
-<span id="LID2204" rel="#L2204">2204</span>
-<span id="LID2205" rel="#L2205">2205</span>
-<span id="LID2206" rel="#L2206">2206</span>
-<span id="LID2207" rel="#L2207">2207</span>
-<span id="LID2208" rel="#L2208">2208</span>
-<span id="LID2209" rel="#L2209">2209</span>
-<span id="LID2210" rel="#L2210">2210</span>
-<span id="LID2211" rel="#L2211">2211</span>
-<span id="LID2212" rel="#L2212">2212</span>
-<span id="LID2213" rel="#L2213">2213</span>
-<span id="LID2214" rel="#L2214">2214</span>
-<span id="LID2215" rel="#L2215">2215</span>
-<span id="LID2216" rel="#L2216">2216</span>
-<span id="LID2217" rel="#L2217">2217</span>
-<span id="LID2218" rel="#L2218">2218</span>
-<span id="LID2219" rel="#L2219">2219</span>
-<span id="LID2220" rel="#L2220">2220</span>
-<span id="LID2221" rel="#L2221">2221</span>
-<span id="LID2222" rel="#L2222">2222</span>
-<span id="LID2223" rel="#L2223">2223</span>
-<span id="LID2224" rel="#L2224">2224</span>
-<span id="LID2225" rel="#L2225">2225</span>
-<span id="LID2226" rel="#L2226">2226</span>
-<span id="LID2227" rel="#L2227">2227</span>
-<span id="LID2228" rel="#L2228">2228</span>
-<span id="LID2229" rel="#L2229">2229</span>
-<span id="LID2230" rel="#L2230">2230</span>
-<span id="LID2231" rel="#L2231">2231</span>
-<span id="LID2232" rel="#L2232">2232</span>
-<span id="LID2233" rel="#L2233">2233</span>
-<span id="LID2234" rel="#L2234">2234</span>
-<span id="LID2235" rel="#L2235">2235</span>
-<span id="LID2236" rel="#L2236">2236</span>
-<span id="LID2237" rel="#L2237">2237</span>
-<span id="LID2238" rel="#L2238">2238</span>
-<span id="LID2239" rel="#L2239">2239</span>
-<span id="LID2240" rel="#L2240">2240</span>
-<span id="LID2241" rel="#L2241">2241</span>
-<span id="LID2242" rel="#L2242">2242</span>
-<span id="LID2243" rel="#L2243">2243</span>
-<span id="LID2244" rel="#L2244">2244</span>
-<span id="LID2245" rel="#L2245">2245</span>
-<span id="LID2246" rel="#L2246">2246</span>
-<span id="LID2247" rel="#L2247">2247</span>
-<span id="LID2248" rel="#L2248">2248</span>
-<span id="LID2249" rel="#L2249">2249</span>
-<span id="LID2250" rel="#L2250">2250</span>
-<span id="LID2251" rel="#L2251">2251</span>
-<span id="LID2252" rel="#L2252">2252</span>
-<span id="LID2253" rel="#L2253">2253</span>
-<span id="LID2254" rel="#L2254">2254</span>
-<span id="LID2255" rel="#L2255">2255</span>
-<span id="LID2256" rel="#L2256">2256</span>
-<span id="LID2257" rel="#L2257">2257</span>
-<span id="LID2258" rel="#L2258">2258</span>
-<span id="LID2259" rel="#L2259">2259</span>
-<span id="LID2260" rel="#L2260">2260</span>
-<span id="LID2261" rel="#L2261">2261</span>
-<span id="LID2262" rel="#L2262">2262</span>
-<span id="LID2263" rel="#L2263">2263</span>
-<span id="LID2264" rel="#L2264">2264</span>
-<span id="LID2265" rel="#L2265">2265</span>
-<span id="LID2266" rel="#L2266">2266</span>
-<span id="LID2267" rel="#L2267">2267</span>
-<span id="LID2268" rel="#L2268">2268</span>
-<span id="LID2269" rel="#L2269">2269</span>
-<span id="LID2270" rel="#L2270">2270</span>
-<span id="LID2271" rel="#L2271">2271</span>
-<span id="LID2272" rel="#L2272">2272</span>
-<span id="LID2273" rel="#L2273">2273</span>
-<span id="LID2274" rel="#L2274">2274</span>
-<span id="LID2275" rel="#L2275">2275</span>
-<span id="LID2276" rel="#L2276">2276</span>
-<span id="LID2277" rel="#L2277">2277</span>
-<span id="LID2278" rel="#L2278">2278</span>
-<span id="LID2279" rel="#L2279">2279</span>
-<span id="LID2280" rel="#L2280">2280</span>
-<span id="LID2281" rel="#L2281">2281</span>
-<span id="LID2282" rel="#L2282">2282</span>
-<span id="LID2283" rel="#L2283">2283</span>
-<span id="LID2284" rel="#L2284">2284</span>
-<span id="LID2285" rel="#L2285">2285</span>
-<span id="LID2286" rel="#L2286">2286</span>
-<span id="LID2287" rel="#L2287">2287</span>
-<span id="LID2288" rel="#L2288">2288</span>
-<span id="LID2289" rel="#L2289">2289</span>
-<span id="LID2290" rel="#L2290">2290</span>
-<span id="LID2291" rel="#L2291">2291</span>
-<span id="LID2292" rel="#L2292">2292</span>
-<span id="LID2293" rel="#L2293">2293</span>
-<span id="LID2294" rel="#L2294">2294</span>
-<span id="LID2295" rel="#L2295">2295</span>
-<span id="LID2296" rel="#L2296">2296</span>
-<span id="LID2297" rel="#L2297">2297</span>
-<span id="LID2298" rel="#L2298">2298</span>
-<span id="LID2299" rel="#L2299">2299</span>
-<span id="LID2300" rel="#L2300">2300</span>
-<span id="LID2301" rel="#L2301">2301</span>
-<span id="LID2302" rel="#L2302">2302</span>
-<span id="LID2303" rel="#L2303">2303</span>
-<span id="LID2304" rel="#L2304">2304</span>
-<span id="LID2305" rel="#L2305">2305</span>
-<span id="LID2306" rel="#L2306">2306</span>
-<span id="LID2307" rel="#L2307">2307</span>
-<span id="LID2308" rel="#L2308">2308</span>
-<span id="LID2309" rel="#L2309">2309</span>
-<span id="LID2310" rel="#L2310">2310</span>
-<span id="LID2311" rel="#L2311">2311</span>
-<span id="LID2312" rel="#L2312">2312</span>
-<span id="LID2313" rel="#L2313">2313</span>
-<span id="LID2314" rel="#L2314">2314</span>
-<span id="LID2315" rel="#L2315">2315</span>
-<span id="LID2316" rel="#L2316">2316</span>
-<span id="LID2317" rel="#L2317">2317</span>
-<span id="LID2318" rel="#L2318">2318</span>
-<span id="LID2319" rel="#L2319">2319</span>
-<span id="LID2320" rel="#L2320">2320</span>
-<span id="LID2321" rel="#L2321">2321</span>
-<span id="LID2322" rel="#L2322">2322</span>
-<span id="LID2323" rel="#L2323">2323</span>
-<span id="LID2324" rel="#L2324">2324</span>
-<span id="LID2325" rel="#L2325">2325</span>
-<span id="LID2326" rel="#L2326">2326</span>
-<span id="LID2327" rel="#L2327">2327</span>
-<span id="LID2328" rel="#L2328">2328</span>
-<span id="LID2329" rel="#L2329">2329</span>
-<span id="LID2330" rel="#L2330">2330</span>
-<span id="LID2331" rel="#L2331">2331</span>
-<span id="LID2332" rel="#L2332">2332</span>
-<span id="LID2333" rel="#L2333">2333</span>
-<span id="LID2334" rel="#L2334">2334</span>
-<span id="LID2335" rel="#L2335">2335</span>
-<span id="LID2336" rel="#L2336">2336</span>
-<span id="LID2337" rel="#L2337">2337</span>
-<span id="LID2338" rel="#L2338">2338</span>
-<span id="LID2339" rel="#L2339">2339</span>
-<span id="LID2340" rel="#L2340">2340</span>
-<span id="LID2341" rel="#L2341">2341</span>
-<span id="LID2342" rel="#L2342">2342</span>
-<span id="LID2343" rel="#L2343">2343</span>
-<span id="LID2344" rel="#L2344">2344</span>
-<span id="LID2345" rel="#L2345">2345</span>
-<span id="LID2346" rel="#L2346">2346</span>
-<span id="LID2347" rel="#L2347">2347</span>
-<span id="LID2348" rel="#L2348">2348</span>
-<span id="LID2349" rel="#L2349">2349</span>
-<span id="LID2350" rel="#L2350">2350</span>
-<span id="LID2351" rel="#L2351">2351</span>
-<span id="LID2352" rel="#L2352">2352</span>
-<span id="LID2353" rel="#L2353">2353</span>
-<span id="LID2354" rel="#L2354">2354</span>
-<span id="LID2355" rel="#L2355">2355</span>
-<span id="LID2356" rel="#L2356">2356</span>
-<span id="LID2357" rel="#L2357">2357</span>
-<span id="LID2358" rel="#L2358">2358</span>
-<span id="LID2359" rel="#L2359">2359</span>
-<span id="LID2360" rel="#L2360">2360</span>
-<span id="LID2361" rel="#L2361">2361</span>
-<span id="LID2362" rel="#L2362">2362</span>
-<span id="LID2363" rel="#L2363">2363</span>
-<span id="LID2364" rel="#L2364">2364</span>
-<span id="LID2365" rel="#L2365">2365</span>
-<span id="LID2366" rel="#L2366">2366</span>
-<span id="LID2367" rel="#L2367">2367</span>
-<span id="LID2368" rel="#L2368">2368</span>
-<span id="LID2369" rel="#L2369">2369</span>
-<span id="LID2370" rel="#L2370">2370</span>
-<span id="LID2371" rel="#L2371">2371</span>
-<span id="LID2372" rel="#L2372">2372</span>
-<span id="LID2373" rel="#L2373">2373</span>
-<span id="LID2374" rel="#L2374">2374</span>
-<span id="LID2375" rel="#L2375">2375</span>
-<span id="LID2376" rel="#L2376">2376</span>
-<span id="LID2377" rel="#L2377">2377</span>
-<span id="LID2378" rel="#L2378">2378</span>
-<span id="LID2379" rel="#L2379">2379</span>
-<span id="LID2380" rel="#L2380">2380</span>
-<span id="LID2381" rel="#L2381">2381</span>
-<span id="LID2382" rel="#L2382">2382</span>
-<span id="LID2383" rel="#L2383">2383</span>
-<span id="LID2384" rel="#L2384">2384</span>
-<span id="LID2385" rel="#L2385">2385</span>
-<span id="LID2386" rel="#L2386">2386</span>
-<span id="LID2387" rel="#L2387">2387</span>
-<span id="LID2388" rel="#L2388">2388</span>
-<span id="LID2389" rel="#L2389">2389</span>
-<span id="LID2390" rel="#L2390">2390</span>
-<span id="LID2391" rel="#L2391">2391</span>
-<span id="LID2392" rel="#L2392">2392</span>
-<span id="LID2393" rel="#L2393">2393</span>
-<span id="LID2394" rel="#L2394">2394</span>
-<span id="LID2395" rel="#L2395">2395</span>
-<span id="LID2396" rel="#L2396">2396</span>
-<span id="LID2397" rel="#L2397">2397</span>
-<span id="LID2398" rel="#L2398">2398</span>
-<span id="LID2399" rel="#L2399">2399</span>
-<span id="LID2400" rel="#L2400">2400</span>
-<span id="LID2401" rel="#L2401">2401</span>
-<span id="LID2402" rel="#L2402">2402</span>
-<span id="LID2403" rel="#L2403">2403</span>
-<span id="LID2404" rel="#L2404">2404</span>
-<span id="LID2405" rel="#L2405">2405</span>
-<span id="LID2406" rel="#L2406">2406</span>
-<span id="LID2407" rel="#L2407">2407</span>
-<span id="LID2408" rel="#L2408">2408</span>
-<span id="LID2409" rel="#L2409">2409</span>
-<span id="LID2410" rel="#L2410">2410</span>
-<span id="LID2411" rel="#L2411">2411</span>
-<span id="LID2412" rel="#L2412">2412</span>
-<span id="LID2413" rel="#L2413">2413</span>
-<span id="LID2414" rel="#L2414">2414</span>
-<span id="LID2415" rel="#L2415">2415</span>
-<span id="LID2416" rel="#L2416">2416</span>
-<span id="LID2417" rel="#L2417">2417</span>
-<span id="LID2418" rel="#L2418">2418</span>
-<span id="LID2419" rel="#L2419">2419</span>
-<span id="LID2420" rel="#L2420">2420</span>
-<span id="LID2421" rel="#L2421">2421</span>
-<span id="LID2422" rel="#L2422">2422</span>
-<span id="LID2423" rel="#L2423">2423</span>
-<span id="LID2424" rel="#L2424">2424</span>
-<span id="LID2425" rel="#L2425">2425</span>
-<span id="LID2426" rel="#L2426">2426</span>
-<span id="LID2427" rel="#L2427">2427</span>
-<span id="LID2428" rel="#L2428">2428</span>
-<span id="LID2429" rel="#L2429">2429</span>
-<span id="LID2430" rel="#L2430">2430</span>
-<span id="LID2431" rel="#L2431">2431</span>
-<span id="LID2432" rel="#L2432">2432</span>
-<span id="LID2433" rel="#L2433">2433</span>
-<span id="LID2434" rel="#L2434">2434</span>
-<span id="LID2435" rel="#L2435">2435</span>
-<span id="LID2436" rel="#L2436">2436</span>
-<span id="LID2437" rel="#L2437">2437</span>
-<span id="LID2438" rel="#L2438">2438</span>
-<span id="LID2439" rel="#L2439">2439</span>
-<span id="LID2440" rel="#L2440">2440</span>
-<span id="LID2441" rel="#L2441">2441</span>
-<span id="LID2442" rel="#L2442">2442</span>
-<span id="LID2443" rel="#L2443">2443</span>
-<span id="LID2444" rel="#L2444">2444</span>
-<span id="LID2445" rel="#L2445">2445</span>
-<span id="LID2446" rel="#L2446">2446</span>
-<span id="LID2447" rel="#L2447">2447</span>
-<span id="LID2448" rel="#L2448">2448</span>
-<span id="LID2449" rel="#L2449">2449</span>
-<span id="LID2450" rel="#L2450">2450</span>
-<span id="LID2451" rel="#L2451">2451</span>
-<span id="LID2452" rel="#L2452">2452</span>
-<span id="LID2453" rel="#L2453">2453</span>
-<span id="LID2454" rel="#L2454">2454</span>
-<span id="LID2455" rel="#L2455">2455</span>
-<span id="LID2456" rel="#L2456">2456</span>
-<span id="LID2457" rel="#L2457">2457</span>
-<span id="LID2458" rel="#L2458">2458</span>
-<span id="LID2459" rel="#L2459">2459</span>
-<span id="LID2460" rel="#L2460">2460</span>
-<span id="LID2461" rel="#L2461">2461</span>
-<span id="LID2462" rel="#L2462">2462</span>
-<span id="LID2463" rel="#L2463">2463</span>
-<span id="LID2464" rel="#L2464">2464</span>
-<span id="LID2465" rel="#L2465">2465</span>
-<span id="LID2466" rel="#L2466">2466</span>
-<span id="LID2467" rel="#L2467">2467</span>
-<span id="LID2468" rel="#L2468">2468</span>
-<span id="LID2469" rel="#L2469">2469</span>
-<span id="LID2470" rel="#L2470">2470</span>
-<span id="LID2471" rel="#L2471">2471</span>
-<span id="LID2472" rel="#L2472">2472</span>
-<span id="LID2473" rel="#L2473">2473</span>
-<span id="LID2474" rel="#L2474">2474</span>
-<span id="LID2475" rel="#L2475">2475</span>
-<span id="LID2476" rel="#L2476">2476</span>
-<span id="LID2477" rel="#L2477">2477</span>
-<span id="LID2478" rel="#L2478">2478</span>
-<span id="LID2479" rel="#L2479">2479</span>
-<span id="LID2480" rel="#L2480">2480</span>
-<span id="LID2481" rel="#L2481">2481</span>
-<span id="LID2482" rel="#L2482">2482</span>
-<span id="LID2483" rel="#L2483">2483</span>
-<span id="LID2484" rel="#L2484">2484</span>
-<span id="LID2485" rel="#L2485">2485</span>
-<span id="LID2486" rel="#L2486">2486</span>
-<span id="LID2487" rel="#L2487">2487</span>
-<span id="LID2488" rel="#L2488">2488</span>
-<span id="LID2489" rel="#L2489">2489</span>
-<span id="LID2490" rel="#L2490">2490</span>
-<span id="LID2491" rel="#L2491">2491</span>
-<span id="LID2492" rel="#L2492">2492</span>
-<span id="LID2493" rel="#L2493">2493</span>
-<span id="LID2494" rel="#L2494">2494</span>
-<span id="LID2495" rel="#L2495">2495</span>
-<span id="LID2496" rel="#L2496">2496</span>
-<span id="LID2497" rel="#L2497">2497</span>
-<span id="LID2498" rel="#L2498">2498</span>
-<span id="LID2499" rel="#L2499">2499</span>
-<span id="LID2500" rel="#L2500">2500</span>
-<span id="LID2501" rel="#L2501">2501</span>
-<span id="LID2502" rel="#L2502">2502</span>
-<span id="LID2503" rel="#L2503">2503</span>
-<span id="LID2504" rel="#L2504">2504</span>
-<span id="LID2505" rel="#L2505">2505</span>
-<span id="LID2506" rel="#L2506">2506</span>
-<span id="LID2507" rel="#L2507">2507</span>
-<span id="LID2508" rel="#L2508">2508</span>
-<span id="LID2509" rel="#L2509">2509</span>
-<span id="LID2510" rel="#L2510">2510</span>
-<span id="LID2511" rel="#L2511">2511</span>
-<span id="LID2512" rel="#L2512">2512</span>
-<span id="LID2513" rel="#L2513">2513</span>
-<span id="LID2514" rel="#L2514">2514</span>
-<span id="LID2515" rel="#L2515">2515</span>
-<span id="LID2516" rel="#L2516">2516</span>
-<span id="LID2517" rel="#L2517">2517</span>
-<span id="LID2518" rel="#L2518">2518</span>
-<span id="LID2519" rel="#L2519">2519</span>
-<span id="LID2520" rel="#L2520">2520</span>
-<span id="LID2521" rel="#L2521">2521</span>
-<span id="LID2522" rel="#L2522">2522</span>
-<span id="LID2523" rel="#L2523">2523</span>
-<span id="LID2524" rel="#L2524">2524</span>
-<span id="LID2525" rel="#L2525">2525</span>
-<span id="LID2526" rel="#L2526">2526</span>
-<span id="LID2527" rel="#L2527">2527</span>
-<span id="LID2528" rel="#L2528">2528</span>
-<span id="LID2529" rel="#L2529">2529</span>
-<span id="LID2530" rel="#L2530">2530</span>
-<span id="LID2531" rel="#L2531">2531</span>
-<span id="LID2532" rel="#L2532">2532</span>
-<span id="LID2533" rel="#L2533">2533</span>
-<span id="LID2534" rel="#L2534">2534</span>
-<span id="LID2535" rel="#L2535">2535</span>
-<span id="LID2536" rel="#L2536">2536</span>
-<span id="LID2537" rel="#L2537">2537</span>
-<span id="LID2538" rel="#L2538">2538</span>
-<span id="LID2539" rel="#L2539">2539</span>
-<span id="LID2540" rel="#L2540">2540</span>
-<span id="LID2541" rel="#L2541">2541</span>
-<span id="LID2542" rel="#L2542">2542</span>
-<span id="LID2543" rel="#L2543">2543</span>
-<span id="LID2544" rel="#L2544">2544</span>
-<span id="LID2545" rel="#L2545">2545</span>
-<span id="LID2546" rel="#L2546">2546</span>
-<span id="LID2547" rel="#L2547">2547</span>
-<span id="LID2548" rel="#L2548">2548</span>
-<span id="LID2549" rel="#L2549">2549</span>
-<span id="LID2550" rel="#L2550">2550</span>
-<span id="LID2551" rel="#L2551">2551</span>
-<span id="LID2552" rel="#L2552">2552</span>
-<span id="LID2553" rel="#L2553">2553</span>
-<span id="LID2554" rel="#L2554">2554</span>
-<span id="LID2555" rel="#L2555">2555</span>
-<span id="LID2556" rel="#L2556">2556</span>
-<span id="LID2557" rel="#L2557">2557</span>
-<span id="LID2558" rel="#L2558">2558</span>
-<span id="LID2559" rel="#L2559">2559</span>
-<span id="LID2560" rel="#L2560">2560</span>
-<span id="LID2561" rel="#L2561">2561</span>
-<span id="LID2562" rel="#L2562">2562</span>
-<span id="LID2563" rel="#L2563">2563</span>
-<span id="LID2564" rel="#L2564">2564</span>
-<span id="LID2565" rel="#L2565">2565</span>
-<span id="LID2566" rel="#L2566">2566</span>
-<span id="LID2567" rel="#L2567">2567</span>
-<span id="LID2568" rel="#L2568">2568</span>
-<span id="LID2569" rel="#L2569">2569</span>
-<span id="LID2570" rel="#L2570">2570</span>
-<span id="LID2571" rel="#L2571">2571</span>
-<span id="LID2572" rel="#L2572">2572</span>
-<span id="LID2573" rel="#L2573">2573</span>
-<span id="LID2574" rel="#L2574">2574</span>
-<span id="LID2575" rel="#L2575">2575</span>
-<span id="LID2576" rel="#L2576">2576</span>
-<span id="LID2577" rel="#L2577">2577</span>
-<span id="LID2578" rel="#L2578">2578</span>
-<span id="LID2579" rel="#L2579">2579</span>
-<span id="LID2580" rel="#L2580">2580</span>
-<span id="LID2581" rel="#L2581">2581</span>
-<span id="LID2582" rel="#L2582">2582</span>
-<span id="LID2583" rel="#L2583">2583</span>
-<span id="LID2584" rel="#L2584">2584</span>
-<span id="LID2585" rel="#L2585">2585</span>
-<span id="LID2586" rel="#L2586">2586</span>
-<span id="LID2587" rel="#L2587">2587</span>
-<span id="LID2588" rel="#L2588">2588</span>
-<span id="LID2589" rel="#L2589">2589</span>
-<span id="LID2590" rel="#L2590">2590</span>
-<span id="LID2591" rel="#L2591">2591</span>
-<span id="LID2592" rel="#L2592">2592</span>
-<span id="LID2593" rel="#L2593">2593</span>
-<span id="LID2594" rel="#L2594">2594</span>
-<span id="LID2595" rel="#L2595">2595</span>
-<span id="LID2596" rel="#L2596">2596</span>
-<span id="LID2597" rel="#L2597">2597</span>
-<span id="LID2598" rel="#L2598">2598</span>
-<span id="LID2599" rel="#L2599">2599</span>
-<span id="LID2600" rel="#L2600">2600</span>
-<span id="LID2601" rel="#L2601">2601</span>
-<span id="LID2602" rel="#L2602">2602</span>
-<span id="LID2603" rel="#L2603">2603</span>
-<span id="LID2604" rel="#L2604">2604</span>
-<span id="LID2605" rel="#L2605">2605</span>
-<span id="LID2606" rel="#L2606">2606</span>
-<span id="LID2607" rel="#L2607">2607</span>
-<span id="LID2608" rel="#L2608">2608</span>
-<span id="LID2609" rel="#L2609">2609</span>
-<span id="LID2610" rel="#L2610">2610</span>
-<span id="LID2611" rel="#L2611">2611</span>
-<span id="LID2612" rel="#L2612">2612</span>
-<span id="LID2613" rel="#L2613">2613</span>
-<span id="LID2614" rel="#L2614">2614</span>
-<span id="LID2615" rel="#L2615">2615</span>
-<span id="LID2616" rel="#L2616">2616</span>
-<span id="LID2617" rel="#L2617">2617</span>
-<span id="LID2618" rel="#L2618">2618</span>
-<span id="LID2619" rel="#L2619">2619</span>
-<span id="LID2620" rel="#L2620">2620</span>
-<span id="LID2621" rel="#L2621">2621</span>
-<span id="LID2622" rel="#L2622">2622</span>
-<span id="LID2623" rel="#L2623">2623</span>
-<span id="LID2624" rel="#L2624">2624</span>
-<span id="LID2625" rel="#L2625">2625</span>
-<span id="LID2626" rel="#L2626">2626</span>
-<span id="LID2627" rel="#L2627">2627</span>
-<span id="LID2628" rel="#L2628">2628</span>
-<span id="LID2629" rel="#L2629">2629</span>
-<span id="LID2630" rel="#L2630">2630</span>
-<span id="LID2631" rel="#L2631">2631</span>
-<span id="LID2632" rel="#L2632">2632</span>
-<span id="LID2633" rel="#L2633">2633</span>
-<span id="LID2634" rel="#L2634">2634</span>
-<span id="LID2635" rel="#L2635">2635</span>
-<span id="LID2636" rel="#L2636">2636</span>
-<span id="LID2637" rel="#L2637">2637</span>
-<span id="LID2638" rel="#L2638">2638</span>
-<span id="LID2639" rel="#L2639">2639</span>
-<span id="LID2640" rel="#L2640">2640</span>
-<span id="LID2641" rel="#L2641">2641</span>
-<span id="LID2642" rel="#L2642">2642</span>
-<span id="LID2643" rel="#L2643">2643</span>
-<span id="LID2644" rel="#L2644">2644</span>
-<span id="LID2645" rel="#L2645">2645</span>
-<span id="LID2646" rel="#L2646">2646</span>
-<span id="LID2647" rel="#L2647">2647</span>
-<span id="LID2648" rel="#L2648">2648</span>
-<span id="LID2649" rel="#L2649">2649</span>
-<span id="LID2650" rel="#L2650">2650</span>
-<span id="LID2651" rel="#L2651">2651</span>
-<span id="LID2652" rel="#L2652">2652</span>
-<span id="LID2653" rel="#L2653">2653</span>
-<span id="LID2654" rel="#L2654">2654</span>
-<span id="LID2655" rel="#L2655">2655</span>
-<span id="LID2656" rel="#L2656">2656</span>
-<span id="LID2657" rel="#L2657">2657</span>
-<span id="LID2658" rel="#L2658">2658</span>
-<span id="LID2659" rel="#L2659">2659</span>
-<span id="LID2660" rel="#L2660">2660</span>
-<span id="LID2661" rel="#L2661">2661</span>
-<span id="LID2662" rel="#L2662">2662</span>
-<span id="LID2663" rel="#L2663">2663</span>
-<span id="LID2664" rel="#L2664">2664</span>
-<span id="LID2665" rel="#L2665">2665</span>
-<span id="LID2666" rel="#L2666">2666</span>
-<span id="LID2667" rel="#L2667">2667</span>
-<span id="LID2668" rel="#L2668">2668</span>
-<span id="LID2669" rel="#L2669">2669</span>
-<span id="LID2670" rel="#L2670">2670</span>
-<span id="LID2671" rel="#L2671">2671</span>
-<span id="LID2672" rel="#L2672">2672</span>
-<span id="LID2673" rel="#L2673">2673</span>
-<span id="LID2674" rel="#L2674">2674</span>
-<span id="LID2675" rel="#L2675">2675</span>
-<span id="LID2676" rel="#L2676">2676</span>
-<span id="LID2677" rel="#L2677">2677</span>
-<span id="LID2678" rel="#L2678">2678</span>
-<span id="LID2679" rel="#L2679">2679</span>
-<span id="LID2680" rel="#L2680">2680</span>
-<span id="LID2681" rel="#L2681">2681</span>
-<span id="LID2682" rel="#L2682">2682</span>
-<span id="LID2683" rel="#L2683">2683</span>
-<span id="LID2684" rel="#L2684">2684</span>
-<span id="LID2685" rel="#L2685">2685</span>
-<span id="LID2686" rel="#L2686">2686</span>
-<span id="LID2687" rel="#L2687">2687</span>
-<span id="LID2688" rel="#L2688">2688</span>
-<span id="LID2689" rel="#L2689">2689</span>
-<span id="LID2690" rel="#L2690">2690</span>
-<span id="LID2691" rel="#L2691">2691</span>
-<span id="LID2692" rel="#L2692">2692</span>
-<span id="LID2693" rel="#L2693">2693</span>
-<span id="LID2694" rel="#L2694">2694</span>
-<span id="LID2695" rel="#L2695">2695</span>
-<span id="LID2696" rel="#L2696">2696</span>
-<span id="LID2697" rel="#L2697">2697</span>
-<span id="LID2698" rel="#L2698">2698</span>
-<span id="LID2699" rel="#L2699">2699</span>
-<span id="LID2700" rel="#L2700">2700</span>
-<span id="LID2701" rel="#L2701">2701</span>
-<span id="LID2702" rel="#L2702">2702</span>
-<span id="LID2703" rel="#L2703">2703</span>
-<span id="LID2704" rel="#L2704">2704</span>
-<span id="LID2705" rel="#L2705">2705</span>
-<span id="LID2706" rel="#L2706">2706</span>
-<span id="LID2707" rel="#L2707">2707</span>
-<span id="LID2708" rel="#L2708">2708</span>
-<span id="LID2709" rel="#L2709">2709</span>
-<span id="LID2710" rel="#L2710">2710</span>
-<span id="LID2711" rel="#L2711">2711</span>
-<span id="LID2712" rel="#L2712">2712</span>
-<span id="LID2713" rel="#L2713">2713</span>
-<span id="LID2714" rel="#L2714">2714</span>
-<span id="LID2715" rel="#L2715">2715</span>
-<span id="LID2716" rel="#L2716">2716</span>
-<span id="LID2717" rel="#L2717">2717</span>
-<span id="LID2718" rel="#L2718">2718</span>
-<span id="LID2719" rel="#L2719">2719</span>
-<span id="LID2720" rel="#L2720">2720</span>
-<span id="LID2721" rel="#L2721">2721</span>
-<span id="LID2722" rel="#L2722">2722</span>
-<span id="LID2723" rel="#L2723">2723</span>
-<span id="LID2724" rel="#L2724">2724</span>
-<span id="LID2725" rel="#L2725">2725</span>
-<span id="LID2726" rel="#L2726">2726</span>
-<span id="LID2727" rel="#L2727">2727</span>
-<span id="LID2728" rel="#L2728">2728</span>
-<span id="LID2729" rel="#L2729">2729</span>
-<span id="LID2730" rel="#L2730">2730</span>
-<span id="LID2731" rel="#L2731">2731</span>
-<span id="LID2732" rel="#L2732">2732</span>
-<span id="LID2733" rel="#L2733">2733</span>
-<span id="LID2734" rel="#L2734">2734</span>
-<span id="LID2735" rel="#L2735">2735</span>
-<span id="LID2736" rel="#L2736">2736</span>
-<span id="LID2737" rel="#L2737">2737</span>
-<span id="LID2738" rel="#L2738">2738</span>
-<span id="LID2739" rel="#L2739">2739</span>
-<span id="LID2740" rel="#L2740">2740</span>
-<span id="LID2741" rel="#L2741">2741</span>
-<span id="LID2742" rel="#L2742">2742</span>
-<span id="LID2743" rel="#L2743">2743</span>
-<span id="LID2744" rel="#L2744">2744</span>
-<span id="LID2745" rel="#L2745">2745</span>
-<span id="LID2746" rel="#L2746">2746</span>
-<span id="LID2747" rel="#L2747">2747</span>
-<span id="LID2748" rel="#L2748">2748</span>
-<span id="LID2749" rel="#L2749">2749</span>
-<span id="LID2750" rel="#L2750">2750</span>
-<span id="LID2751" rel="#L2751">2751</span>
-<span id="LID2752" rel="#L2752">2752</span>
-<span id="LID2753" rel="#L2753">2753</span>
-<span id="LID2754" rel="#L2754">2754</span>
-<span id="LID2755" rel="#L2755">2755</span>
-<span id="LID2756" rel="#L2756">2756</span>
-<span id="LID2757" rel="#L2757">2757</span>
-<span id="LID2758" rel="#L2758">2758</span>
-<span id="LID2759" rel="#L2759">2759</span>
-<span id="LID2760" rel="#L2760">2760</span>
-<span id="LID2761" rel="#L2761">2761</span>
-<span id="LID2762" rel="#L2762">2762</span>
-<span id="LID2763" rel="#L2763">2763</span>
-<span id="LID2764" rel="#L2764">2764</span>
-<span id="LID2765" rel="#L2765">2765</span>
-<span id="LID2766" rel="#L2766">2766</span>
-<span id="LID2767" rel="#L2767">2767</span>
-<span id="LID2768" rel="#L2768">2768</span>
-<span id="LID2769" rel="#L2769">2769</span>
-<span id="LID2770" rel="#L2770">2770</span>
-<span id="LID2771" rel="#L2771">2771</span>
-<span id="LID2772" rel="#L2772">2772</span>
-<span id="LID2773" rel="#L2773">2773</span>
-<span id="LID2774" rel="#L2774">2774</span>
-<span id="LID2775" rel="#L2775">2775</span>
-<span id="LID2776" rel="#L2776">2776</span>
-<span id="LID2777" rel="#L2777">2777</span>
-<span id="LID2778" rel="#L2778">2778</span>
-<span id="LID2779" rel="#L2779">2779</span>
-<span id="LID2780" rel="#L2780">2780</span>
-<span id="LID2781" rel="#L2781">2781</span>
-<span id="LID2782" rel="#L2782">2782</span>
-<span id="LID2783" rel="#L2783">2783</span>
-<span id="LID2784" rel="#L2784">2784</span>
-<span id="LID2785" rel="#L2785">2785</span>
-<span id="LID2786" rel="#L2786">2786</span>
-<span id="LID2787" rel="#L2787">2787</span>
-<span id="LID2788" rel="#L2788">2788</span>
-<span id="LID2789" rel="#L2789">2789</span>
-<span id="LID2790" rel="#L2790">2790</span>
-<span id="LID2791" rel="#L2791">2791</span>
-<span id="LID2792" rel="#L2792">2792</span>
-<span id="LID2793" rel="#L2793">2793</span>
-<span id="LID2794" rel="#L2794">2794</span>
-<span id="LID2795" rel="#L2795">2795</span>
-<span id="LID2796" rel="#L2796">2796</span>
-<span id="LID2797" rel="#L2797">2797</span>
-<span id="LID2798" rel="#L2798">2798</span>
-<span id="LID2799" rel="#L2799">2799</span>
-<span id="LID2800" rel="#L2800">2800</span>
-<span id="LID2801" rel="#L2801">2801</span>
-<span id="LID2802" rel="#L2802">2802</span>
-<span id="LID2803" rel="#L2803">2803</span>
-<span id="LID2804" rel="#L2804">2804</span>
-<span id="LID2805" rel="#L2805">2805</span>
-<span id="LID2806" rel="#L2806">2806</span>
-<span id="LID2807" rel="#L2807">2807</span>
-<span id="LID2808" rel="#L2808">2808</span>
-<span id="LID2809" rel="#L2809">2809</span>
-<span id="LID2810" rel="#L2810">2810</span>
-<span id="LID2811" rel="#L2811">2811</span>
-<span id="LID2812" rel="#L2812">2812</span>
-<span id="LID2813" rel="#L2813">2813</span>
-<span id="LID2814" rel="#L2814">2814</span>
-<span id="LID2815" rel="#L2815">2815</span>
-<span id="LID2816" rel="#L2816">2816</span>
-<span id="LID2817" rel="#L2817">2817</span>
-<span id="LID2818" rel="#L2818">2818</span>
-<span id="LID2819" rel="#L2819">2819</span>
-<span id="LID2820" rel="#L2820">2820</span>
-<span id="LID2821" rel="#L2821">2821</span>
-<span id="LID2822" rel="#L2822">2822</span>
-<span id="LID2823" rel="#L2823">2823</span>
-<span id="LID2824" rel="#L2824">2824</span>
-<span id="LID2825" rel="#L2825">2825</span>
-<span id="LID2826" rel="#L2826">2826</span>
-<span id="LID2827" rel="#L2827">2827</span>
-<span id="LID2828" rel="#L2828">2828</span>
-<span id="LID2829" rel="#L2829">2829</span>
-<span id="LID2830" rel="#L2830">2830</span>
-<span id="LID2831" rel="#L2831">2831</span>
-<span id="LID2832" rel="#L2832">2832</span>
-<span id="LID2833" rel="#L2833">2833</span>
-<span id="LID2834" rel="#L2834">2834</span>
-<span id="LID2835" rel="#L2835">2835</span>
-<span id="LID2836" rel="#L2836">2836</span>
-<span id="LID2837" rel="#L2837">2837</span>
-<span id="LID2838" rel="#L2838">2838</span>
-<span id="LID2839" rel="#L2839">2839</span>
-<span id="LID2840" rel="#L2840">2840</span>
-<span id="LID2841" rel="#L2841">2841</span>
-<span id="LID2842" rel="#L2842">2842</span>
-<span id="LID2843" rel="#L2843">2843</span>
-<span id="LID2844" rel="#L2844">2844</span>
-<span id="LID2845" rel="#L2845">2845</span>
-<span id="LID2846" rel="#L2846">2846</span>
-<span id="LID2847" rel="#L2847">2847</span>
-<span id="LID2848" rel="#L2848">2848</span>
-<span id="LID2849" rel="#L2849">2849</span>
-<span id="LID2850" rel="#L2850">2850</span>
-<span id="LID2851" rel="#L2851">2851</span>
-<span id="LID2852" rel="#L2852">2852</span>
-<span id="LID2853" rel="#L2853">2853</span>
-<span id="LID2854" rel="#L2854">2854</span>
-<span id="LID2855" rel="#L2855">2855</span>
-<span id="LID2856" rel="#L2856">2856</span>
-<span id="LID2857" rel="#L2857">2857</span>
-<span id="LID2858" rel="#L2858">2858</span>
-<span id="LID2859" rel="#L2859">2859</span>
-<span id="LID2860" rel="#L2860">2860</span>
-<span id="LID2861" rel="#L2861">2861</span>
-<span id="LID2862" rel="#L2862">2862</span>
-<span id="LID2863" rel="#L2863">2863</span>
-<span id="LID2864" rel="#L2864">2864</span>
-<span id="LID2865" rel="#L2865">2865</span>
-<span id="LID2866" rel="#L2866">2866</span>
-<span id="LID2867" rel="#L2867">2867</span>
-<span id="LID2868" rel="#L2868">2868</span>
-<span id="LID2869" rel="#L2869">2869</span>
-<span id="LID2870" rel="#L2870">2870</span>
-<span id="LID2871" rel="#L2871">2871</span>
-<span id="LID2872" rel="#L2872">2872</span>
-<span id="LID2873" rel="#L2873">2873</span>
-<span id="LID2874" rel="#L2874">2874</span>
-<span id="LID2875" rel="#L2875">2875</span>
-<span id="LID2876" rel="#L2876">2876</span>
-<span id="LID2877" rel="#L2877">2877</span>
-<span id="LID2878" rel="#L2878">2878</span>
-<span id="LID2879" rel="#L2879">2879</span>
-<span id="LID2880" rel="#L2880">2880</span>
-<span id="LID2881" rel="#L2881">2881</span>
-<span id="LID2882" rel="#L2882">2882</span>
-<span id="LID2883" rel="#L2883">2883</span>
-<span id="LID2884" rel="#L2884">2884</span>
-<span id="LID2885" rel="#L2885">2885</span>
-<span id="LID2886" rel="#L2886">2886</span>
-<span id="LID2887" rel="#L2887">2887</span>
-<span id="LID2888" rel="#L2888">2888</span>
-<span id="LID2889" rel="#L2889">2889</span>
-<span id="LID2890" rel="#L2890">2890</span>
-<span id="LID2891" rel="#L2891">2891</span>
-<span id="LID2892" rel="#L2892">2892</span>
-<span id="LID2893" rel="#L2893">2893</span>
-<span id="LID2894" rel="#L2894">2894</span>
-<span id="LID2895" rel="#L2895">2895</span>
-<span id="LID2896" rel="#L2896">2896</span>
-<span id="LID2897" rel="#L2897">2897</span>
-<span id="LID2898" rel="#L2898">2898</span>
-<span id="LID2899" rel="#L2899">2899</span>
-<span id="LID2900" rel="#L2900">2900</span>
-<span id="LID2901" rel="#L2901">2901</span>
-<span id="LID2902" rel="#L2902">2902</span>
-<span id="LID2903" rel="#L2903">2903</span>
-<span id="LID2904" rel="#L2904">2904</span>
-<span id="LID2905" rel="#L2905">2905</span>
-<span id="LID2906" rel="#L2906">2906</span>
-<span id="LID2907" rel="#L2907">2907</span>
-<span id="LID2908" rel="#L2908">2908</span>
-<span id="LID2909" rel="#L2909">2909</span>
-<span id="LID2910" rel="#L2910">2910</span>
-<span id="LID2911" rel="#L2911">2911</span>
-<span id="LID2912" rel="#L2912">2912</span>
-<span id="LID2913" rel="#L2913">2913</span>
-<span id="LID2914" rel="#L2914">2914</span>
-<span id="LID2915" rel="#L2915">2915</span>
-<span id="LID2916" rel="#L2916">2916</span>
-<span id="LID2917" rel="#L2917">2917</span>
-<span id="LID2918" rel="#L2918">2918</span>
-<span id="LID2919" rel="#L2919">2919</span>
-<span id="LID2920" rel="#L2920">2920</span>
-<span id="LID2921" rel="#L2921">2921</span>
-<span id="LID2922" rel="#L2922">2922</span>
-<span id="LID2923" rel="#L2923">2923</span>
-<span id="LID2924" rel="#L2924">2924</span>
-<span id="LID2925" rel="#L2925">2925</span>
-<span id="LID2926" rel="#L2926">2926</span>
-<span id="LID2927" rel="#L2927">2927</span>
-<span id="LID2928" rel="#L2928">2928</span>
-<span id="LID2929" rel="#L2929">2929</span>
-<span id="LID2930" rel="#L2930">2930</span>
-<span id="LID2931" rel="#L2931">2931</span>
-<span id="LID2932" rel="#L2932">2932</span>
-<span id="LID2933" rel="#L2933">2933</span>
-<span id="LID2934" rel="#L2934">2934</span>
-<span id="LID2935" rel="#L2935">2935</span>
-<span id="LID2936" rel="#L2936">2936</span>
-<span id="LID2937" rel="#L2937">2937</span>
-<span id="LID2938" rel="#L2938">2938</span>
-<span id="LID2939" rel="#L2939">2939</span>
-<span id="LID2940" rel="#L2940">2940</span>
-<span id="LID2941" rel="#L2941">2941</span>
-<span id="LID2942" rel="#L2942">2942</span>
-<span id="LID2943" rel="#L2943">2943</span>
-<span id="LID2944" rel="#L2944">2944</span>
-<span id="LID2945" rel="#L2945">2945</span>
-<span id="LID2946" rel="#L2946">2946</span>
-<span id="LID2947" rel="#L2947">2947</span>
-<span id="LID2948" rel="#L2948">2948</span>
-<span id="LID2949" rel="#L2949">2949</span>
-<span id="LID2950" rel="#L2950">2950</span>
-<span id="LID2951" rel="#L2951">2951</span>
-<span id="LID2952" rel="#L2952">2952</span>
-<span id="LID2953" rel="#L2953">2953</span>
-<span id="LID2954" rel="#L2954">2954</span>
-<span id="LID2955" rel="#L2955">2955</span>
-<span id="LID2956" rel="#L2956">2956</span>
-<span id="LID2957" rel="#L2957">2957</span>
-<span id="LID2958" rel="#L2958">2958</span>
-<span id="LID2959" rel="#L2959">2959</span>
-<span id="LID2960" rel="#L2960">2960</span>
-<span id="LID2961" rel="#L2961">2961</span>
-<span id="LID2962" rel="#L2962">2962</span>
-<span id="LID2963" rel="#L2963">2963</span>
-<span id="LID2964" rel="#L2964">2964</span>
-<span id="LID2965" rel="#L2965">2965</span>
-<span id="LID2966" rel="#L2966">2966</span>
-<span id="LID2967" rel="#L2967">2967</span>
-<span id="LID2968" rel="#L2968">2968</span>
-<span id="LID2969" rel="#L2969">2969</span>
-<span id="LID2970" rel="#L2970">2970</span>
-<span id="LID2971" rel="#L2971">2971</span>
-<span id="LID2972" rel="#L2972">2972</span>
-<span id="LID2973" rel="#L2973">2973</span>
-<span id="LID2974" rel="#L2974">2974</span>
-<span id="LID2975" rel="#L2975">2975</span>
-<span id="LID2976" rel="#L2976">2976</span>
-<span id="LID2977" rel="#L2977">2977</span>
-<span id="LID2978" rel="#L2978">2978</span>
-<span id="LID2979" rel="#L2979">2979</span>
-<span id="LID2980" rel="#L2980">2980</span>
-<span id="LID2981" rel="#L2981">2981</span>
-<span id="LID2982" rel="#L2982">2982</span>
-<span id="LID2983" rel="#L2983">2983</span>
-<span id="LID2984" rel="#L2984">2984</span>
-<span id="LID2985" rel="#L2985">2985</span>
-<span id="LID2986" rel="#L2986">2986</span>
-<span id="LID2987" rel="#L2987">2987</span>
-<span id="LID2988" rel="#L2988">2988</span>
-<span id="LID2989" rel="#L2989">2989</span>
-<span id="LID2990" rel="#L2990">2990</span>
-<span id="LID2991" rel="#L2991">2991</span>
-<span id="LID2992" rel="#L2992">2992</span>
-<span id="LID2993" rel="#L2993">2993</span>
-<span id="LID2994" rel="#L2994">2994</span>
-<span id="LID2995" rel="#L2995">2995</span>
-<span id="LID2996" rel="#L2996">2996</span>
-<span id="LID2997" rel="#L2997">2997</span>
-<span id="LID2998" rel="#L2998">2998</span>
-<span id="LID2999" rel="#L2999">2999</span>
-<span id="LID3000" rel="#L3000">3000</span>
-<span id="LID3001" rel="#L3001">3001</span>
-<span id="LID3002" rel="#L3002">3002</span>
-<span id="LID3003" rel="#L3003">3003</span>
-<span id="LID3004" rel="#L3004">3004</span>
-<span id="LID3005" rel="#L3005">3005</span>
-<span id="LID3006" rel="#L3006">3006</span>
-<span id="LID3007" rel="#L3007">3007</span>
-<span id="LID3008" rel="#L3008">3008</span>
-<span id="LID3009" rel="#L3009">3009</span>
-<span id="LID3010" rel="#L3010">3010</span>
-<span id="LID3011" rel="#L3011">3011</span>
-<span id="LID3012" rel="#L3012">3012</span>
-<span id="LID3013" rel="#L3013">3013</span>
-<span id="LID3014" rel="#L3014">3014</span>
-<span id="LID3015" rel="#L3015">3015</span>
-<span id="LID3016" rel="#L3016">3016</span>
-<span id="LID3017" rel="#L3017">3017</span>
-<span id="LID3018" rel="#L3018">3018</span>
-<span id="LID3019" rel="#L3019">3019</span>
-<span id="LID3020" rel="#L3020">3020</span>
-<span id="LID3021" rel="#L3021">3021</span>
-<span id="LID3022" rel="#L3022">3022</span>
-<span id="LID3023" rel="#L3023">3023</span>
-<span id="LID3024" rel="#L3024">3024</span>
-<span id="LID3025" rel="#L3025">3025</span>
-<span id="LID3026" rel="#L3026">3026</span>
-<span id="LID3027" rel="#L3027">3027</span>
-<span id="LID3028" rel="#L3028">3028</span>
-<span id="LID3029" rel="#L3029">3029</span>
-<span id="LID3030" rel="#L3030">3030</span>
-<span id="LID3031" rel="#L3031">3031</span>
-<span id="LID3032" rel="#L3032">3032</span>
-<span id="LID3033" rel="#L3033">3033</span>
-<span id="LID3034" rel="#L3034">3034</span>
-<span id="LID3035" rel="#L3035">3035</span>
-<span id="LID3036" rel="#L3036">3036</span>
-<span id="LID3037" rel="#L3037">3037</span>
-<span id="LID3038" rel="#L3038">3038</span>
-<span id="LID3039" rel="#L3039">3039</span>
-<span id="LID3040" rel="#L3040">3040</span>
-<span id="LID3041" rel="#L3041">3041</span>
-<span id="LID3042" rel="#L3042">3042</span>
-<span id="LID3043" rel="#L3043">3043</span>
-<span id="LID3044" rel="#L3044">3044</span>
-<span id="LID3045" rel="#L3045">3045</span>
-<span id="LID3046" rel="#L3046">3046</span>
-<span id="LID3047" rel="#L3047">3047</span>
-<span id="LID3048" rel="#L3048">3048</span>
-<span id="LID3049" rel="#L3049">3049</span>
-<span id="LID3050" rel="#L3050">3050</span>
-<span id="LID3051" rel="#L3051">3051</span>
-<span id="LID3052" rel="#L3052">3052</span>
-<span id="LID3053" rel="#L3053">3053</span>
-<span id="LID3054" rel="#L3054">3054</span>
-<span id="LID3055" rel="#L3055">3055</span>
-<span id="LID3056" rel="#L3056">3056</span>
-<span id="LID3057" rel="#L3057">3057</span>
-<span id="LID3058" rel="#L3058">3058</span>
-<span id="LID3059" rel="#L3059">3059</span>
-<span id="LID3060" rel="#L3060">3060</span>
-<span id="LID3061" rel="#L3061">3061</span>
-<span id="LID3062" rel="#L3062">3062</span>
-<span id="LID3063" rel="#L3063">3063</span>
-<span id="LID3064" rel="#L3064">3064</span>
-<span id="LID3065" rel="#L3065">3065</span>
-<span id="LID3066" rel="#L3066">3066</span>
-<span id="LID3067" rel="#L3067">3067</span>
-<span id="LID3068" rel="#L3068">3068</span>
-<span id="LID3069" rel="#L3069">3069</span>
-<span id="LID3070" rel="#L3070">3070</span>
-<span id="LID3071" rel="#L3071">3071</span>
-<span id="LID3072" rel="#L3072">3072</span>
-<span id="LID3073" rel="#L3073">3073</span>
-<span id="LID3074" rel="#L3074">3074</span>
-<span id="LID3075" rel="#L3075">3075</span>
-<span id="LID3076" rel="#L3076">3076</span>
-<span id="LID3077" rel="#L3077">3077</span>
-<span id="LID3078" rel="#L3078">3078</span>
-<span id="LID3079" rel="#L3079">3079</span>
-<span id="LID3080" rel="#L3080">3080</span>
-<span id="LID3081" rel="#L3081">3081</span>
-<span id="LID3082" rel="#L3082">3082</span>
-<span id="LID3083" rel="#L3083">3083</span>
-<span id="LID3084" rel="#L3084">3084</span>
-<span id="LID3085" rel="#L3085">3085</span>
-<span id="LID3086" rel="#L3086">3086</span>
-<span id="LID3087" rel="#L3087">3087</span>
-<span id="LID3088" rel="#L3088">3088</span>
-<span id="LID3089" rel="#L3089">3089</span>
-<span id="LID3090" rel="#L3090">3090</span>
-<span id="LID3091" rel="#L3091">3091</span>
-<span id="LID3092" rel="#L3092">3092</span>
-<span id="LID3093" rel="#L3093">3093</span>
-<span id="LID3094" rel="#L3094">3094</span>
-<span id="LID3095" rel="#L3095">3095</span>
-<span id="LID3096" rel="#L3096">3096</span>
-<span id="LID3097" rel="#L3097">3097</span>
-<span id="LID3098" rel="#L3098">3098</span>
-<span id="LID3099" rel="#L3099">3099</span>
-<span id="LID3100" rel="#L3100">3100</span>
-<span id="LID3101" rel="#L3101">3101</span>
-<span id="LID3102" rel="#L3102">3102</span>
-<span id="LID3103" rel="#L3103">3103</span>
-<span id="LID3104" rel="#L3104">3104</span>
-<span id="LID3105" rel="#L3105">3105</span>
-<span id="LID3106" rel="#L3106">3106</span>
-<span id="LID3107" rel="#L3107">3107</span>
-<span id="LID3108" rel="#L3108">3108</span>
-<span id="LID3109" rel="#L3109">3109</span>
-<span id="LID3110" rel="#L3110">3110</span>
-<span id="LID3111" rel="#L3111">3111</span>
-<span id="LID3112" rel="#L3112">3112</span>
-<span id="LID3113" rel="#L3113">3113</span>
-<span id="LID3114" rel="#L3114">3114</span>
-<span id="LID3115" rel="#L3115">3115</span>
-<span id="LID3116" rel="#L3116">3116</span>
-<span id="LID3117" rel="#L3117">3117</span>
-<span id="LID3118" rel="#L3118">3118</span>
-<span id="LID3119" rel="#L3119">3119</span>
-<span id="LID3120" rel="#L3120">3120</span>
-<span id="LID3121" rel="#L3121">3121</span>
-<span id="LID3122" rel="#L3122">3122</span>
-<span id="LID3123" rel="#L3123">3123</span>
-<span id="LID3124" rel="#L3124">3124</span>
-<span id="LID3125" rel="#L3125">3125</span>
-<span id="LID3126" rel="#L3126">3126</span>
-<span id="LID3127" rel="#L3127">3127</span>
-<span id="LID3128" rel="#L3128">3128</span>
-<span id="LID3129" rel="#L3129">3129</span>
-<span id="LID3130" rel="#L3130">3130</span>
-<span id="LID3131" rel="#L3131">3131</span>
-<span id="LID3132" rel="#L3132">3132</span>
-<span id="LID3133" rel="#L3133">3133</span>
-<span id="LID3134" rel="#L3134">3134</span>
-<span id="LID3135" rel="#L3135">3135</span>
-<span id="LID3136" rel="#L3136">3136</span>
-<span id="LID3137" rel="#L3137">3137</span>
-<span id="LID3138" rel="#L3138">3138</span>
-<span id="LID3139" rel="#L3139">3139</span>
-<span id="LID3140" rel="#L3140">3140</span>
-<span id="LID3141" rel="#L3141">3141</span>
-<span id="LID3142" rel="#L3142">3142</span>
-<span id="LID3143" rel="#L3143">3143</span>
-<span id="LID3144" rel="#L3144">3144</span>
-<span id="LID3145" rel="#L3145">3145</span>
-<span id="LID3146" rel="#L3146">3146</span>
-<span id="LID3147" rel="#L3147">3147</span>
-<span id="LID3148" rel="#L3148">3148</span>
-<span id="LID3149" rel="#L3149">3149</span>
-<span id="LID3150" rel="#L3150">3150</span>
-<span id="LID3151" rel="#L3151">3151</span>
-<span id="LID3152" rel="#L3152">3152</span>
-<span id="LID3153" rel="#L3153">3153</span>
-<span id="LID3154" rel="#L3154">3154</span>
-<span id="LID3155" rel="#L3155">3155</span>
-<span id="LID3156" rel="#L3156">3156</span>
-<span id="LID3157" rel="#L3157">3157</span>
-<span id="LID3158" rel="#L3158">3158</span>
-<span id="LID3159" rel="#L3159">3159</span>
-<span id="LID3160" rel="#L3160">3160</span>
-<span id="LID3161" rel="#L3161">3161</span>
-<span id="LID3162" rel="#L3162">3162</span>
-<span id="LID3163" rel="#L3163">3163</span>
-<span id="LID3164" rel="#L3164">3164</span>
-<span id="LID3165" rel="#L3165">3165</span>
-<span id="LID3166" rel="#L3166">3166</span>
-<span id="LID3167" rel="#L3167">3167</span>
-<span id="LID3168" rel="#L3168">3168</span>
-<span id="LID3169" rel="#L3169">3169</span>
-<span id="LID3170" rel="#L3170">3170</span>
-<span id="LID3171" rel="#L3171">3171</span>
-<span id="LID3172" rel="#L3172">3172</span>
-<span id="LID3173" rel="#L3173">3173</span>
-<span id="LID3174" rel="#L3174">3174</span>
-<span id="LID3175" rel="#L3175">3175</span>
-<span id="LID3176" rel="#L3176">3176</span>
-<span id="LID3177" rel="#L3177">3177</span>
-<span id="LID3178" rel="#L3178">3178</span>
-<span id="LID3179" rel="#L3179">3179</span>
-<span id="LID3180" rel="#L3180">3180</span>
-<span id="LID3181" rel="#L3181">3181</span>
-<span id="LID3182" rel="#L3182">3182</span>
-<span id="LID3183" rel="#L3183">3183</span>
-<span id="LID3184" rel="#L3184">3184</span>
-<span id="LID3185" rel="#L3185">3185</span>
-<span id="LID3186" rel="#L3186">3186</span>
-<span id="LID3187" rel="#L3187">3187</span>
-<span id="LID3188" rel="#L3188">3188</span>
-<span id="LID3189" rel="#L3189">3189</span>
-<span id="LID3190" rel="#L3190">3190</span>
-<span id="LID3191" rel="#L3191">3191</span>
-<span id="LID3192" rel="#L3192">3192</span>
-<span id="LID3193" rel="#L3193">3193</span>
-<span id="LID3194" rel="#L3194">3194</span>
-<span id="LID3195" rel="#L3195">3195</span>
-<span id="LID3196" rel="#L3196">3196</span>
-<span id="LID3197" rel="#L3197">3197</span>
-<span id="LID3198" rel="#L3198">3198</span>
-<span id="LID3199" rel="#L3199">3199</span>
-<span id="LID3200" rel="#L3200">3200</span>
-<span id="LID3201" rel="#L3201">3201</span>
-<span id="LID3202" rel="#L3202">3202</span>
-<span id="LID3203" rel="#L3203">3203</span>
-<span id="LID3204" rel="#L3204">3204</span>
-<span id="LID3205" rel="#L3205">3205</span>
-<span id="LID3206" rel="#L3206">3206</span>
-<span id="LID3207" rel="#L3207">3207</span>
-<span id="LID3208" rel="#L3208">3208</span>
-<span id="LID3209" rel="#L3209">3209</span>
-<span id="LID3210" rel="#L3210">3210</span>
-<span id="LID3211" rel="#L3211">3211</span>
-<span id="LID3212" rel="#L3212">3212</span>
-<span id="LID3213" rel="#L3213">3213</span>
-<span id="LID3214" rel="#L3214">3214</span>
-<span id="LID3215" rel="#L3215">3215</span>
-<span id="LID3216" rel="#L3216">3216</span>
-<span id="LID3217" rel="#L3217">3217</span>
-<span id="LID3218" rel="#L3218">3218</span>
-<span id="LID3219" rel="#L3219">3219</span>
-<span id="LID3220" rel="#L3220">3220</span>
-<span id="LID3221" rel="#L3221">3221</span>
-<span id="LID3222" rel="#L3222">3222</span>
-<span id="LID3223" rel="#L3223">3223</span>
-<span id="LID3224" rel="#L3224">3224</span>
-<span id="LID3225" rel="#L3225">3225</span>
-<span id="LID3226" rel="#L3226">3226</span>
-<span id="LID3227" rel="#L3227">3227</span>
-<span id="LID3228" rel="#L3228">3228</span>
-<span id="LID3229" rel="#L3229">3229</span>
-<span id="LID3230" rel="#L3230">3230</span>
-<span id="LID3231" rel="#L3231">3231</span>
-<span id="LID3232" rel="#L3232">3232</span>
-<span id="LID3233" rel="#L3233">3233</span>
-<span id="LID3234" rel="#L3234">3234</span>
-<span id="LID3235" rel="#L3235">3235</span>
-<span id="LID3236" rel="#L3236">3236</span>
-<span id="LID3237" rel="#L3237">3237</span>
-<span id="LID3238" rel="#L3238">3238</span>
-<span id="LID3239" rel="#L3239">3239</span>
-<span id="LID3240" rel="#L3240">3240</span>
-<span id="LID3241" rel="#L3241">3241</span>
-<span id="LID3242" rel="#L3242">3242</span>
-<span id="LID3243" rel="#L3243">3243</span>
-<span id="LID3244" rel="#L3244">3244</span>
-<span id="LID3245" rel="#L3245">3245</span>
-<span id="LID3246" rel="#L3246">3246</span>
-<span id="LID3247" rel="#L3247">3247</span>
-<span id="LID3248" rel="#L3248">3248</span>
-<span id="LID3249" rel="#L3249">3249</span>
-<span id="LID3250" rel="#L3250">3250</span>
-<span id="LID3251" rel="#L3251">3251</span>
-<span id="LID3252" rel="#L3252">3252</span>
-<span id="LID3253" rel="#L3253">3253</span>
-<span id="LID3254" rel="#L3254">3254</span>
-<span id="LID3255" rel="#L3255">3255</span>
-<span id="LID3256" rel="#L3256">3256</span>
-<span id="LID3257" rel="#L3257">3257</span>
-<span id="LID3258" rel="#L3258">3258</span>
-<span id="LID3259" rel="#L3259">3259</span>
-<span id="LID3260" rel="#L3260">3260</span>
-<span id="LID3261" rel="#L3261">3261</span>
-<span id="LID3262" rel="#L3262">3262</span>
-<span id="LID3263" rel="#L3263">3263</span>
-<span id="LID3264" rel="#L3264">3264</span>
-<span id="LID3265" rel="#L3265">3265</span>
-<span id="LID3266" rel="#L3266">3266</span>
-<span id="LID3267" rel="#L3267">3267</span>
-<span id="LID3268" rel="#L3268">3268</span>
-<span id="LID3269" rel="#L3269">3269</span>
-<span id="LID3270" rel="#L3270">3270</span>
-<span id="LID3271" rel="#L3271">3271</span>
-<span id="LID3272" rel="#L3272">3272</span>
-<span id="LID3273" rel="#L3273">3273</span>
-<span id="LID3274" rel="#L3274">3274</span>
-<span id="LID3275" rel="#L3275">3275</span>
-<span id="LID3276" rel="#L3276">3276</span>
-<span id="LID3277" rel="#L3277">3277</span>
-<span id="LID3278" rel="#L3278">3278</span>
-<span id="LID3279" rel="#L3279">3279</span>
-<span id="LID3280" rel="#L3280">3280</span>
-<span id="LID3281" rel="#L3281">3281</span>
-<span id="LID3282" rel="#L3282">3282</span>
-<span id="LID3283" rel="#L3283">3283</span>
-<span id="LID3284" rel="#L3284">3284</span>
-<span id="LID3285" rel="#L3285">3285</span>
-<span id="LID3286" rel="#L3286">3286</span>
-<span id="LID3287" rel="#L3287">3287</span>
-<span id="LID3288" rel="#L3288">3288</span>
-<span id="LID3289" rel="#L3289">3289</span>
-<span id="LID3290" rel="#L3290">3290</span>
-<span id="LID3291" rel="#L3291">3291</span>
-<span id="LID3292" rel="#L3292">3292</span>
-<span id="LID3293" rel="#L3293">3293</span>
-<span id="LID3294" rel="#L3294">3294</span>
-<span id="LID3295" rel="#L3295">3295</span>
-<span id="LID3296" rel="#L3296">3296</span>
-<span id="LID3297" rel="#L3297">3297</span>
-<span id="LID3298" rel="#L3298">3298</span>
-<span id="LID3299" rel="#L3299">3299</span>
-<span id="LID3300" rel="#L3300">3300</span>
-<span id="LID3301" rel="#L3301">3301</span>
-<span id="LID3302" rel="#L3302">3302</span>
-<span id="LID3303" rel="#L3303">3303</span>
-<span id="LID3304" rel="#L3304">3304</span>
-<span id="LID3305" rel="#L3305">3305</span>
-<span id="LID3306" rel="#L3306">3306</span>
-<span id="LID3307" rel="#L3307">3307</span>
-<span id="LID3308" rel="#L3308">3308</span>
-<span id="LID3309" rel="#L3309">3309</span>
-<span id="LID3310" rel="#L3310">3310</span>
-<span id="LID3311" rel="#L3311">3311</span>
-<span id="LID3312" rel="#L3312">3312</span>
-<span id="LID3313" rel="#L3313">3313</span>
-<span id="LID3314" rel="#L3314">3314</span>
-<span id="LID3315" rel="#L3315">3315</span>
-<span id="LID3316" rel="#L3316">3316</span>
-<span id="LID3317" rel="#L3317">3317</span>
-<span id="LID3318" rel="#L3318">3318</span>
-<span id="LID3319" rel="#L3319">3319</span>
-<span id="LID3320" rel="#L3320">3320</span>
-<span id="LID3321" rel="#L3321">3321</span>
-<span id="LID3322" rel="#L3322">3322</span>
-<span id="LID3323" rel="#L3323">3323</span>
-<span id="LID3324" rel="#L3324">3324</span>
-<span id="LID3325" rel="#L3325">3325</span>
-<span id="LID3326" rel="#L3326">3326</span>
-<span id="LID3327" rel="#L3327">3327</span>
-<span id="LID3328" rel="#L3328">3328</span>
-<span id="LID3329" rel="#L3329">3329</span>
-<span id="LID3330" rel="#L3330">3330</span>
-<span id="LID3331" rel="#L3331">3331</span>
-<span id="LID3332" rel="#L3332">3332</span>
-<span id="LID3333" rel="#L3333">3333</span>
-<span id="LID3334" rel="#L3334">3334</span>
-<span id="LID3335" rel="#L3335">3335</span>
-<span id="LID3336" rel="#L3336">3336</span>
-<span id="LID3337" rel="#L3337">3337</span>
-<span id="LID3338" rel="#L3338">3338</span>
-<span id="LID3339" rel="#L3339">3339</span>
-<span id="LID3340" rel="#L3340">3340</span>
-<span id="LID3341" rel="#L3341">3341</span>
-<span id="LID3342" rel="#L3342">3342</span>
-<span id="LID3343" rel="#L3343">3343</span>
-<span id="LID3344" rel="#L3344">3344</span>
-<span id="LID3345" rel="#L3345">3345</span>
-<span id="LID3346" rel="#L3346">3346</span>
-<span id="LID3347" rel="#L3347">3347</span>
-<span id="LID3348" rel="#L3348">3348</span>
-<span id="LID3349" rel="#L3349">3349</span>
-<span id="LID3350" rel="#L3350">3350</span>
-<span id="LID3351" rel="#L3351">3351</span>
-<span id="LID3352" rel="#L3352">3352</span>
-<span id="LID3353" rel="#L3353">3353</span>
-<span id="LID3354" rel="#L3354">3354</span>
-<span id="LID3355" rel="#L3355">3355</span>
-<span id="LID3356" rel="#L3356">3356</span>
-<span id="LID3357" rel="#L3357">3357</span>
-<span id="LID3358" rel="#L3358">3358</span>
-<span id="LID3359" rel="#L3359">3359</span>
-<span id="LID3360" rel="#L3360">3360</span>
-<span id="LID3361" rel="#L3361">3361</span>
-<span id="LID3362" rel="#L3362">3362</span>
-<span id="LID3363" rel="#L3363">3363</span>
-<span id="LID3364" rel="#L3364">3364</span>
-<span id="LID3365" rel="#L3365">3365</span>
-<span id="LID3366" rel="#L3366">3366</span>
-<span id="LID3367" rel="#L3367">3367</span>
-<span id="LID3368" rel="#L3368">3368</span>
-<span id="LID3369" rel="#L3369">3369</span>
-<span id="LID3370" rel="#L3370">3370</span>
-<span id="LID3371" rel="#L3371">3371</span>
-<span id="LID3372" rel="#L3372">3372</span>
-<span id="LID3373" rel="#L3373">3373</span>
-<span id="LID3374" rel="#L3374">3374</span>
-<span id="LID3375" rel="#L3375">3375</span>
-<span id="LID3376" rel="#L3376">3376</span>
-<span id="LID3377" rel="#L3377">3377</span>
-<span id="LID3378" rel="#L3378">3378</span>
-<span id="LID3379" rel="#L3379">3379</span>
-<span id="LID3380" rel="#L3380">3380</span>
-<span id="LID3381" rel="#L3381">3381</span>
-<span id="LID3382" rel="#L3382">3382</span>
-<span id="LID3383" rel="#L3383">3383</span>
-<span id="LID3384" rel="#L3384">3384</span>
-<span id="LID3385" rel="#L3385">3385</span>
-<span id="LID3386" rel="#L3386">3386</span>
-<span id="LID3387" rel="#L3387">3387</span>
-<span id="LID3388" rel="#L3388">3388</span>
-<span id="LID3389" rel="#L3389">3389</span>
-<span id="LID3390" rel="#L3390">3390</span>
-<span id="LID3391" rel="#L3391">3391</span>
-<span id="LID3392" rel="#L3392">3392</span>
-<span id="LID3393" rel="#L3393">3393</span>
-<span id="LID3394" rel="#L3394">3394</span>
-<span id="LID3395" rel="#L3395">3395</span>
-<span id="LID3396" rel="#L3396">3396</span>
-<span id="LID3397" rel="#L3397">3397</span>
-<span id="LID3398" rel="#L3398">3398</span>
-<span id="LID3399" rel="#L3399">3399</span>
-<span id="LID3400" rel="#L3400">3400</span>
-<span id="LID3401" rel="#L3401">3401</span>
-<span id="LID3402" rel="#L3402">3402</span>
-<span id="LID3403" rel="#L3403">3403</span>
-<span id="LID3404" rel="#L3404">3404</span>
-<span id="LID3405" rel="#L3405">3405</span>
-<span id="LID3406" rel="#L3406">3406</span>
-<span id="LID3407" rel="#L3407">3407</span>
-<span id="LID3408" rel="#L3408">3408</span>
-<span id="LID3409" rel="#L3409">3409</span>
-<span id="LID3410" rel="#L3410">3410</span>
-<span id="LID3411" rel="#L3411">3411</span>
-<span id="LID3412" rel="#L3412">3412</span>
-<span id="LID3413" rel="#L3413">3413</span>
-<span id="LID3414" rel="#L3414">3414</span>
-<span id="LID3415" rel="#L3415">3415</span>
-<span id="LID3416" rel="#L3416">3416</span>
-<span id="LID3417" rel="#L3417">3417</span>
-<span id="LID3418" rel="#L3418">3418</span>
-<span id="LID3419" rel="#L3419">3419</span>
-<span id="LID3420" rel="#L3420">3420</span>
-<span id="LID3421" rel="#L3421">3421</span>
-<span id="LID3422" rel="#L3422">3422</span>
-<span id="LID3423" rel="#L3423">3423</span>
-<span id="LID3424" rel="#L3424">3424</span>
-<span id="LID3425" rel="#L3425">3425</span>
-<span id="LID3426" rel="#L3426">3426</span>
-<span id="LID3427" rel="#L3427">3427</span>
-<span id="LID3428" rel="#L3428">3428</span>
-<span id="LID3429" rel="#L3429">3429</span>
-<span id="LID3430" rel="#L3430">3430</span>
-<span id="LID3431" rel="#L3431">3431</span>
-<span id="LID3432" rel="#L3432">3432</span>
-<span id="LID3433" rel="#L3433">3433</span>
-<span id="LID3434" rel="#L3434">3434</span>
-<span id="LID3435" rel="#L3435">3435</span>
-<span id="LID3436" rel="#L3436">3436</span>
-<span id="LID3437" rel="#L3437">3437</span>
-<span id="LID3438" rel="#L3438">3438</span>
-<span id="LID3439" rel="#L3439">3439</span>
-<span id="LID3440" rel="#L3440">3440</span>
-<span id="LID3441" rel="#L3441">3441</span>
-<span id="LID3442" rel="#L3442">3442</span>
-<span id="LID3443" rel="#L3443">3443</span>
-<span id="LID3444" rel="#L3444">3444</span>
-<span id="LID3445" rel="#L3445">3445</span>
-<span id="LID3446" rel="#L3446">3446</span>
-<span id="LID3447" rel="#L3447">3447</span>
-<span id="LID3448" rel="#L3448">3448</span>
-<span id="LID3449" rel="#L3449">3449</span>
-<span id="LID3450" rel="#L3450">3450</span>
-<span id="LID3451" rel="#L3451">3451</span>
-<span id="LID3452" rel="#L3452">3452</span>
-<span id="LID3453" rel="#L3453">3453</span>
-<span id="LID3454" rel="#L3454">3454</span>
-<span id="LID3455" rel="#L3455">3455</span>
-<span id="LID3456" rel="#L3456">3456</span>
-<span id="LID3457" rel="#L3457">3457</span>
-<span id="LID3458" rel="#L3458">3458</span>
-<span id="LID3459" rel="#L3459">3459</span>
-<span id="LID3460" rel="#L3460">3460</span>
-<span id="LID3461" rel="#L3461">3461</span>
-<span id="LID3462" rel="#L3462">3462</span>
-<span id="LID3463" rel="#L3463">3463</span>
-<span id="LID3464" rel="#L3464">3464</span>
-<span id="LID3465" rel="#L3465">3465</span>
-<span id="LID3466" rel="#L3466">3466</span>
-<span id="LID3467" rel="#L3467">3467</span>
-<span id="LID3468" rel="#L3468">3468</span>
-<span id="LID3469" rel="#L3469">3469</span>
-<span id="LID3470" rel="#L3470">3470</span>
-<span id="LID3471" rel="#L3471">3471</span>
-<span id="LID3472" rel="#L3472">3472</span>
-<span id="LID3473" rel="#L3473">3473</span>
-<span id="LID3474" rel="#L3474">3474</span>
-<span id="LID3475" rel="#L3475">3475</span>
-<span id="LID3476" rel="#L3476">3476</span>
-<span id="LID3477" rel="#L3477">3477</span>
-<span id="LID3478" rel="#L3478">3478</span>
-<span id="LID3479" rel="#L3479">3479</span>
-<span id="LID3480" rel="#L3480">3480</span>
-<span id="LID3481" rel="#L3481">3481</span>
-<span id="LID3482" rel="#L3482">3482</span>
-<span id="LID3483" rel="#L3483">3483</span>
-<span id="LID3484" rel="#L3484">3484</span>
-<span id="LID3485" rel="#L3485">3485</span>
-<span id="LID3486" rel="#L3486">3486</span>
-<span id="LID3487" rel="#L3487">3487</span>
-<span id="LID3488" rel="#L3488">3488</span>
-<span id="LID3489" rel="#L3489">3489</span>
-<span id="LID3490" rel="#L3490">3490</span>
-<span id="LID3491" rel="#L3491">3491</span>
-<span id="LID3492" rel="#L3492">3492</span>
-<span id="LID3493" rel="#L3493">3493</span>
-<span id="LID3494" rel="#L3494">3494</span>
-<span id="LID3495" rel="#L3495">3495</span>
-<span id="LID3496" rel="#L3496">3496</span>
-<span id="LID3497" rel="#L3497">3497</span>
-<span id="LID3498" rel="#L3498">3498</span>
-<span id="LID3499" rel="#L3499">3499</span>
-<span id="LID3500" rel="#L3500">3500</span>
-<span id="LID3501" rel="#L3501">3501</span>
-<span id="LID3502" rel="#L3502">3502</span>
-<span id="LID3503" rel="#L3503">3503</span>
-<span id="LID3504" rel="#L3504">3504</span>
-<span id="LID3505" rel="#L3505">3505</span>
-<span id="LID3506" rel="#L3506">3506</span>
-<span id="LID3507" rel="#L3507">3507</span>
-<span id="LID3508" rel="#L3508">3508</span>
-<span id="LID3509" rel="#L3509">3509</span>
-<span id="LID3510" rel="#L3510">3510</span>
-<span id="LID3511" rel="#L3511">3511</span>
-<span id="LID3512" rel="#L3512">3512</span>
-<span id="LID3513" rel="#L3513">3513</span>
-<span id="LID3514" rel="#L3514">3514</span>
-<span id="LID3515" rel="#L3515">3515</span>
-<span id="LID3516" rel="#L3516">3516</span>
-<span id="LID3517" rel="#L3517">3517</span>
-<span id="LID3518" rel="#L3518">3518</span>
-<span id="LID3519" rel="#L3519">3519</span>
-<span id="LID3520" rel="#L3520">3520</span>
-<span id="LID3521" rel="#L3521">3521</span>
-<span id="LID3522" rel="#L3522">3522</span>
-<span id="LID3523" rel="#L3523">3523</span>
-<span id="LID3524" rel="#L3524">3524</span>
-<span id="LID3525" rel="#L3525">3525</span>
-<span id="LID3526" rel="#L3526">3526</span>
-<span id="LID3527" rel="#L3527">3527</span>
-<span id="LID3528" rel="#L3528">3528</span>
-<span id="LID3529" rel="#L3529">3529</span>
-<span id="LID3530" rel="#L3530">3530</span>
-<span id="LID3531" rel="#L3531">3531</span>
-<span id="LID3532" rel="#L3532">3532</span>
-</pre>
- </td>
- <td width="100%">
-
-
- <div class="highlight"><pre><div class="line" id="LC1">Network Working Group C. Kalt</div><div class="line" id="LC2">Request for Comments: 2812 April 2000</div><div class="line" id="LC3">Updates: 1459</div><div class="line" id="LC4">Category: Informational</div><div class="line" id="LC5">&nbsp;</div><div class="line" id="LC6">&nbsp;</div><div class="line" id="LC7">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internet Relay Chat: Client Protocol</div><div class="line" id="LC8">&nbsp;</div><div class="line" id="LC9">Status of this Memo</div><div class="line" id="LC10">&nbsp;</div><div class="line" id="LC11">&nbsp;&nbsp;&nbsp;This memo provides information for the Internet community. It does</div><div class="line" id="LC12">&nbsp;&nbsp;&nbsp;not specify an Internet standard of any kind. Distribution of this</div><div class="line" id="LC13">&nbsp;&nbsp;&nbsp;memo is unlimited.</div><div class="line" id="LC14">&nbsp;</div><div class="line" id="LC15">Copyright Notice</div><div class="line" id="LC16">&nbsp;</div><div class="line" id="LC17">&nbsp;&nbsp;&nbsp;Copyright (C) The Internet Society (2000). All Rights Reserved.</div><div class="line" id="LC18">&nbsp;</div><div class="line" id="LC19">IESG NOTE:</div><div class="line" id="LC20">&nbsp;</div><div class="line" id="LC21">&nbsp;&nbsp;&nbsp;The IRC protocol itself enables several possibilities of transferring</div><div class="line" id="LC22">&nbsp;&nbsp;&nbsp;data between clients, and just like with other transfer mechanisms</div><div class="line" id="LC23">&nbsp;&nbsp;&nbsp;like email, the receiver of the data has to be careful about how the</div><div class="line" id="LC24">&nbsp;&nbsp;&nbsp;data is handled. For more information on security issues with the IRC</div><div class="line" id="LC25">&nbsp;&nbsp;&nbsp;protocol, see for example http://www.irchelp.org/irchelp/security/.</div><div class="line" id="LC26">&nbsp;</div><div class="line" id="LC27">Abstract</div><div class="line" id="LC28">&nbsp;</div><div class="line" id="LC29">&nbsp;&nbsp;&nbsp;The IRC (Internet Relay Chat) protocol is for use with text based</div><div class="line" id="LC30">&nbsp;&nbsp;&nbsp;conferencing; the simplest client being any socket program capable of</div><div class="line" id="LC31">&nbsp;&nbsp;&nbsp;connecting to the server.</div><div class="line" id="LC32">&nbsp;</div><div class="line" id="LC33">&nbsp;&nbsp;&nbsp;This document defines the Client Protocol, and assumes that the</div><div class="line" id="LC34">&nbsp;&nbsp;&nbsp;reader is familiar with the IRC Architecture [IRC-ARCH].</div><div class="line" id="LC35">&nbsp;</div><div class="line" id="LC36">Table of Contents</div><div class="line" id="LC37">&nbsp;</div><div class="line" id="LC38">&nbsp;&nbsp;&nbsp;1. Labels ..................................................... 3</div><div class="line" id="LC39">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.1 Servers ................................................ 3</div><div class="line" id="LC40">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.2 Clients ................................................ 3</div><div class="line" id="LC41">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.2.1 Users ............................................. 4</div><div class="line" id="LC42">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.2.1.1 Operators .................................... 4</div><div class="line" id="LC43">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.2.2 Services .......................................... 4</div><div class="line" id="LC44">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.3 Channels ............................................... 4</div><div class="line" id="LC45">&nbsp;&nbsp;&nbsp;2. The IRC Client Specification ............................... 5</div><div class="line" id="LC46">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1 Overview ............................................... 5</div><div class="line" id="LC47">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.2 Character codes ........................................ 5</div><div class="line" id="LC48">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.3 Messages ............................................... 5</div><div class="line" id="LC49">&nbsp;</div><div class="line" id="LC50">&nbsp;</div><div class="line" id="LC51">&nbsp;</div><div class="line" id="LC52">Kalt Informational [Page 1]</div><div class="line" id="LC53">&nbsp;</div><div class="line" id="LC54">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC55">&nbsp;</div><div class="line" id="LC56">&nbsp;</div><div class="line" id="LC57">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.3.1 Message format in Augmented BNF ................... 6</div><div class="line" id="LC58">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.4 Numeric replies ........................................ 8</div><div class="line" id="LC59">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.5 Wildcard expressions ................................... 9</div><div class="line" id="LC60">&nbsp;&nbsp;&nbsp;3. Message Details ............................................ 9</div><div class="line" id="LC61">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.1 Connection Registration ................................ 10</div><div class="line" id="LC62">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.1.1 Password message .................................. 10</div><div class="line" id="LC63">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.1.2 Nick message ...................................... 10</div><div class="line" id="LC64">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.1.3 User message ...................................... 11</div><div class="line" id="LC65">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.1.4 Oper message ...................................... 12</div><div class="line" id="LC66">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.1.5 User mode message ................................. 12</div><div class="line" id="LC67">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.1.6 Service message ................................... 13</div><div class="line" id="LC68">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.1.7 Quit .............................................. 14</div><div class="line" id="LC69">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.1.8 Squit ............................................. 15</div><div class="line" id="LC70">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.2 Channel operations ..................................... 15</div><div class="line" id="LC71">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.2.1 Join message ...................................... 16</div><div class="line" id="LC72">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.2.2 Part message ...................................... 17</div><div class="line" id="LC73">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.2.3 Channel mode message .............................. 18</div><div class="line" id="LC74">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.2.4 Topic message ..................................... 19</div><div class="line" id="LC75">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.2.5 Names message ..................................... 20</div><div class="line" id="LC76">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.2.6 List message ...................................... 21</div><div class="line" id="LC77">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.2.7 Invite message .................................... 21</div><div class="line" id="LC78">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.2.8 Kick command ...................................... 22</div><div class="line" id="LC79">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.3 Sending messages ....................................... 23</div><div class="line" id="LC80">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.3.1 Private messages .................................. 23</div><div class="line" id="LC81">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.3.2 Notice ............................................ 24</div><div class="line" id="LC82">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4 Server queries and commands ............................ 25</div><div class="line" id="LC83">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4.1 Motd message ...................................... 25</div><div class="line" id="LC84">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4.2 Lusers message .................................... 25</div><div class="line" id="LC85">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4.3 Version message ................................... 26</div><div class="line" id="LC86">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4.4 Stats message ..................................... 26</div><div class="line" id="LC87">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4.5 Links message ..................................... 27</div><div class="line" id="LC88">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4.6 Time message ...................................... 28</div><div class="line" id="LC89">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4.7 Connect message ................................... 28</div><div class="line" id="LC90">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4.8 Trace message ..................................... 29</div><div class="line" id="LC91">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4.9 Admin command ..................................... 30</div><div class="line" id="LC92">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.4.10 Info command ...................................... 31</div><div class="line" id="LC93">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.5 Service Query and Commands ............................. 31</div><div class="line" id="LC94">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.5.1 Servlist message .................................. 31</div><div class="line" id="LC95">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.5.2 Squery ............................................ 32</div><div class="line" id="LC96">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.6 User based queries ..................................... 32</div><div class="line" id="LC97">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.6.1 Who query ......................................... 32</div><div class="line" id="LC98">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.6.2 Whois query ....................................... 33</div><div class="line" id="LC99">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.6.3 Whowas ............................................ 34</div><div class="line" id="LC100">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.7 Miscellaneous messages ................................. 34</div><div class="line" id="LC101">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.7.1 Kill message ...................................... 35</div><div class="line" id="LC102">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.7.2 Ping message ...................................... 36</div><div class="line" id="LC103">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.7.3 Pong message ...................................... 37</div><div class="line" id="LC104">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.7.4 Error ............................................. 37</div><div class="line" id="LC105">&nbsp;</div><div class="line" id="LC106">&nbsp;</div><div class="line" id="LC107">&nbsp;</div><div class="line" id="LC108">Kalt Informational [Page 2]</div><div class="line" id="LC109">&nbsp;</div><div class="line" id="LC110">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC111">&nbsp;</div><div class="line" id="LC112">&nbsp;</div><div class="line" id="LC113">&nbsp;&nbsp;&nbsp;4. Optional features .......................................... 38</div><div class="line" id="LC114">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.1 Away ................................................... 38</div><div class="line" id="LC115">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.2 Rehash message ......................................... 39</div><div class="line" id="LC116">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.3 Die message ............................................ 39</div><div class="line" id="LC117">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.4 Restart message ........................................ 40</div><div class="line" id="LC118">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.5 Summon message ......................................... 40</div><div class="line" id="LC119">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.6 Users .................................................. 41</div><div class="line" id="LC120">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.7 Operwall message ....................................... 41</div><div class="line" id="LC121">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.8 Userhost message ....................................... 42</div><div class="line" id="LC122">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.9 Ison message ........................................... 42</div><div class="line" id="LC123">&nbsp;&nbsp;&nbsp;5. Replies .................................................... 43</div><div class="line" id="LC124">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.1 Command responses ...................................... 43</div><div class="line" id="LC125">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.2 Error Replies .......................................... 53</div><div class="line" id="LC126">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.3 Reserved numerics ...................................... 59</div><div class="line" id="LC127">&nbsp;&nbsp;&nbsp;6. Current implementations .................................... 60</div><div class="line" id="LC128">&nbsp;&nbsp;&nbsp;7. Current problems ........................................... 60</div><div class="line" id="LC129">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.1 Nicknames .............................................. 60</div><div class="line" id="LC130">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.2 Limitation of wildcards ................................ 61</div><div class="line" id="LC131">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.3 Security considerations ................................ 61</div><div class="line" id="LC132">&nbsp;&nbsp;&nbsp;8. Current support and availability ........................... 61</div><div class="line" id="LC133">&nbsp;&nbsp;&nbsp;9. Acknowledgements ........................................... 61</div><div class="line" id="LC134">&nbsp;&nbsp;&nbsp;10. References ................................................ 62</div><div class="line" id="LC135">&nbsp;&nbsp;&nbsp;11. Author&#39;s Address .......................................... 62</div><div class="line" id="LC136">&nbsp;&nbsp;&nbsp;12. Full Copyright Statement .................................. 63</div><div class="line" id="LC137">&nbsp;</div><div class="line" id="LC138">1. Labels</div><div class="line" id="LC139">&nbsp;</div><div class="line" id="LC140">&nbsp;&nbsp;&nbsp;This section defines the identifiers used for the various components</div><div class="line" id="LC141">&nbsp;&nbsp;&nbsp;of the IRC protocol.</div><div class="line" id="LC142">&nbsp;</div><div class="line" id="LC143">1.1 Servers</div><div class="line" id="LC144">&nbsp;</div><div class="line" id="LC145">&nbsp;&nbsp;&nbsp;Servers are uniquely identified by their name, which has a maximum</div><div class="line" id="LC146">&nbsp;&nbsp;&nbsp;length of sixty three (63) characters. See the protocol grammar</div><div class="line" id="LC147">&nbsp;&nbsp;&nbsp;rules (section 2.3.1) for what may and may not be used in a server</div><div class="line" id="LC148">&nbsp;&nbsp;&nbsp;name.</div><div class="line" id="LC149">&nbsp;</div><div class="line" id="LC150">1.2 Clients</div><div class="line" id="LC151">&nbsp;</div><div class="line" id="LC152">&nbsp;&nbsp;&nbsp;For each client all servers MUST have the following information: a</div><div class="line" id="LC153">&nbsp;&nbsp;&nbsp;netwide unique identifier (whose format depends on the type of</div><div class="line" id="LC154">&nbsp;&nbsp;&nbsp;client) and the server which introduced the client.</div><div class="line" id="LC155">&nbsp;</div><div class="line" id="LC156">&nbsp;</div><div class="line" id="LC157">&nbsp;</div><div class="line" id="LC158">&nbsp;</div><div class="line" id="LC159">&nbsp;</div><div class="line" id="LC160">&nbsp;</div><div class="line" id="LC161">&nbsp;</div><div class="line" id="LC162">&nbsp;</div><div class="line" id="LC163">&nbsp;</div><div class="line" id="LC164">Kalt Informational [Page 3]</div><div class="line" id="LC165">&nbsp;</div><div class="line" id="LC166">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC167">&nbsp;</div><div class="line" id="LC168">&nbsp;</div><div class="line" id="LC169">1.2.1 Users</div><div class="line" id="LC170">&nbsp;</div><div class="line" id="LC171">&nbsp;&nbsp;&nbsp;Each user is distinguished from other users by a unique nickname</div><div class="line" id="LC172">&nbsp;&nbsp;&nbsp;having a maximum length of nine (9) characters. See the protocol</div><div class="line" id="LC173">&nbsp;&nbsp;&nbsp;grammar rules (section 2.3.1) for what may and may not be used in a</div><div class="line" id="LC174">&nbsp;&nbsp;&nbsp;nickname.</div><div class="line" id="LC175">&nbsp;</div><div class="line" id="LC176">&nbsp;&nbsp;&nbsp;While the maximum length is limited to nine characters, clients</div><div class="line" id="LC177">&nbsp;&nbsp;&nbsp;SHOULD accept longer strings as they may become used in future</div><div class="line" id="LC178">&nbsp;&nbsp;&nbsp;evolutions of the protocol.</div><div class="line" id="LC179">&nbsp;</div><div class="line" id="LC180">1.2.1.1 Operators</div><div class="line" id="LC181">&nbsp;</div><div class="line" id="LC182">&nbsp;&nbsp;&nbsp;To allow a reasonable amount of order to be kept within the IRC</div><div class="line" id="LC183">&nbsp;&nbsp;&nbsp;network, a special class of users (operators) is allowed to perform</div><div class="line" id="LC184">&nbsp;&nbsp;&nbsp;general maintenance functions on the network. Although the powers</div><div class="line" id="LC185">&nbsp;&nbsp;&nbsp;granted to an operator can be considered as &#39;dangerous&#39;, they are</div><div class="line" id="LC186">&nbsp;&nbsp;&nbsp;nonetheless often necessary. Operators SHOULD be able to perform</div><div class="line" id="LC187">&nbsp;&nbsp;&nbsp;basic network tasks such as disconnecting and reconnecting servers as</div><div class="line" id="LC188">&nbsp;&nbsp;&nbsp;needed. In recognition of this need, the protocol discussed herein</div><div class="line" id="LC189">&nbsp;&nbsp;&nbsp;provides for operators only to be able to perform such functions.</div><div class="line" id="LC190">&nbsp;&nbsp;&nbsp;See sections 3.1.8 (SQUIT) and 3.4.7 (CONNECT).</div><div class="line" id="LC191">&nbsp;</div><div class="line" id="LC192">&nbsp;&nbsp;&nbsp;A more controversial power of operators is the ability to remove a</div><div class="line" id="LC193">&nbsp;&nbsp;&nbsp;user from the connected network by &#39;force&#39;, i.e., operators are able</div><div class="line" id="LC194">&nbsp;&nbsp;&nbsp;to close the connection between any client and server. The</div><div class="line" id="LC195">&nbsp;&nbsp;&nbsp;justification for this is very delicate since its abuse is both</div><div class="line" id="LC196">&nbsp;&nbsp;&nbsp;destructive and annoying, and its benefits close to inexistent. For</div><div class="line" id="LC197">&nbsp;&nbsp;&nbsp;further details on this type of action, see section 3.7.1 (KILL).</div><div class="line" id="LC198">&nbsp;</div><div class="line" id="LC199">1.2.2 Services</div><div class="line" id="LC200">&nbsp;</div><div class="line" id="LC201">&nbsp;&nbsp;&nbsp;Each service is distinguished from other services by a service name</div><div class="line" id="LC202">&nbsp;&nbsp;&nbsp;composed of a nickname and a server name. As for users, the nickname</div><div class="line" id="LC203">&nbsp;&nbsp;&nbsp;has a maximum length of nine (9) characters. See the protocol</div><div class="line" id="LC204">&nbsp;&nbsp;&nbsp;grammar rules (section 2.3.1) for what may and may not be used in a</div><div class="line" id="LC205">&nbsp;&nbsp;&nbsp;nickname.</div><div class="line" id="LC206">&nbsp;</div><div class="line" id="LC207">1.3 Channels</div><div class="line" id="LC208">&nbsp;</div><div class="line" id="LC209">&nbsp;&nbsp;&nbsp;Channels names are strings (beginning with a &#39;&amp;&#39;, &#39;#&#39;, &#39;+&#39; or &#39;!&#39;</div><div class="line" id="LC210">&nbsp;&nbsp;&nbsp;character) of length up to fifty (50) characters. Apart from the</div><div class="line" id="LC211">&nbsp;&nbsp;&nbsp;requirement that the first character is either &#39;&amp;&#39;, &#39;#&#39;, &#39;+&#39; or &#39;!&#39;,</div><div class="line" id="LC212">&nbsp;&nbsp;&nbsp;the only restriction on a channel name is that it SHALL NOT contain</div><div class="line" id="LC213">&nbsp;&nbsp;&nbsp;any spaces (&#39; &#39;), a control G (^G or ASCII 7), a comma (&#39;,&#39;). Space</div><div class="line" id="LC214">&nbsp;&nbsp;&nbsp;is used as parameter separator and command is used as a list item</div><div class="line" id="LC215">&nbsp;&nbsp;&nbsp;separator by the protocol). A colon (&#39;:&#39;) can also be used as a</div><div class="line" id="LC216">&nbsp;&nbsp;&nbsp;delimiter for the channel mask. Channel names are case insensitive.</div><div class="line" id="LC217">&nbsp;</div><div class="line" id="LC218">&nbsp;</div><div class="line" id="LC219">&nbsp;</div><div class="line" id="LC220">Kalt Informational [Page 4]</div><div class="line" id="LC221">&nbsp;</div><div class="line" id="LC222">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC223">&nbsp;</div><div class="line" id="LC224">&nbsp;</div><div class="line" id="LC225">&nbsp;&nbsp;&nbsp;See the protocol grammar rules (section 2.3.1) for the exact syntax</div><div class="line" id="LC226">&nbsp;&nbsp;&nbsp;of a channel name.</div><div class="line" id="LC227">&nbsp;</div><div class="line" id="LC228">&nbsp;&nbsp;&nbsp;Each prefix characterizes a different channel type. The definition</div><div class="line" id="LC229">&nbsp;&nbsp;&nbsp;of the channel types is not relevant to the client-server protocol</div><div class="line" id="LC230">&nbsp;&nbsp;&nbsp;and thus it is beyond the scope of this document. More details can</div><div class="line" id="LC231">&nbsp;&nbsp;&nbsp;be found in &quot;Internet Relay Chat: Channel Management&quot; [IRC-CHAN].</div><div class="line" id="LC232">&nbsp;</div><div class="line" id="LC233">2. The IRC Client Specification</div><div class="line" id="LC234">&nbsp;</div><div class="line" id="LC235">2.1 Overview</div><div class="line" id="LC236">&nbsp;</div><div class="line" id="LC237">&nbsp;&nbsp;&nbsp;The protocol as described herein is for use only with client to</div><div class="line" id="LC238">&nbsp;&nbsp;&nbsp;server connections when the client registers as a user.</div><div class="line" id="LC239">&nbsp;</div><div class="line" id="LC240">2.2 Character codes</div><div class="line" id="LC241">&nbsp;</div><div class="line" id="LC242">&nbsp;&nbsp;&nbsp;No specific character set is specified. The protocol is based on a</div><div class="line" id="LC243">&nbsp;&nbsp;&nbsp;set of codes which are composed of eight (8) bits, making up an</div><div class="line" id="LC244">&nbsp;&nbsp;&nbsp;octet. Each message may be composed of any number of these octets;</div><div class="line" id="LC245">&nbsp;&nbsp;&nbsp;however, some octet values are used for control codes, which act as</div><div class="line" id="LC246">&nbsp;&nbsp;&nbsp;message delimiters.</div><div class="line" id="LC247">&nbsp;</div><div class="line" id="LC248">&nbsp;&nbsp;&nbsp;Regardless of being an 8-bit protocol, the delimiters and keywords</div><div class="line" id="LC249">&nbsp;&nbsp;&nbsp;are such that protocol is mostly usable from US-ASCII terminal and a</div><div class="line" id="LC250">&nbsp;&nbsp;&nbsp;telnet connection.</div><div class="line" id="LC251">&nbsp;</div><div class="line" id="LC252">&nbsp;&nbsp;&nbsp;Because of IRC&#39;s Scandinavian origin, the characters {}|^ are</div><div class="line" id="LC253">&nbsp;&nbsp;&nbsp;considered to be the lower case equivalents of the characters []\~,</div><div class="line" id="LC254">&nbsp;&nbsp;&nbsp;respectively. This is a critical issue when determining the</div><div class="line" id="LC255">&nbsp;&nbsp;&nbsp;equivalence of two nicknames or channel names.</div><div class="line" id="LC256">&nbsp;</div><div class="line" id="LC257">2.3 Messages</div><div class="line" id="LC258">&nbsp;</div><div class="line" id="LC259">&nbsp;&nbsp;&nbsp;Servers and clients send each other messages, which may or may not</div><div class="line" id="LC260">&nbsp;&nbsp;&nbsp;generate a reply. If the message contains a valid command, as</div><div class="line" id="LC261">&nbsp;&nbsp;&nbsp;described in later sections, the client should expect a reply as</div><div class="line" id="LC262">&nbsp;&nbsp;&nbsp;specified but it is not advised to wait forever for the reply; client</div><div class="line" id="LC263">&nbsp;&nbsp;&nbsp;to server and server to server communication is essentially</div><div class="line" id="LC264">&nbsp;&nbsp;&nbsp;asynchronous by nature.</div><div class="line" id="LC265">&nbsp;</div><div class="line" id="LC266">&nbsp;&nbsp;&nbsp;Each IRC message may consist of up to three main parts: the prefix</div><div class="line" id="LC267">&nbsp;&nbsp;&nbsp;(OPTIONAL), the command, and the command parameters (maximum of</div><div class="line" id="LC268">&nbsp;&nbsp;&nbsp;fifteen (15)). The prefix, command, and all parameters are separated</div><div class="line" id="LC269">&nbsp;&nbsp;&nbsp;by one ASCII space character (0x20) each.</div><div class="line" id="LC270">&nbsp;</div><div class="line" id="LC271">&nbsp;</div><div class="line" id="LC272">&nbsp;</div><div class="line" id="LC273">&nbsp;</div><div class="line" id="LC274">&nbsp;</div><div class="line" id="LC275">&nbsp;</div><div class="line" id="LC276">Kalt Informational [Page 5]</div><div class="line" id="LC277">&nbsp;</div><div class="line" id="LC278">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC279">&nbsp;</div><div class="line" id="LC280">&nbsp;</div><div class="line" id="LC281">&nbsp;&nbsp;&nbsp;The presence of a prefix is indicated with a single leading ASCII</div><div class="line" id="LC282">&nbsp;&nbsp;&nbsp;colon character (&#39;:&#39;, 0x3b), which MUST be the first character of the</div><div class="line" id="LC283">&nbsp;&nbsp;&nbsp;message itself. There MUST be NO gap (whitespace) between the colon</div><div class="line" id="LC284">&nbsp;&nbsp;&nbsp;and the prefix. The prefix is used by servers to indicate the true</div><div class="line" id="LC285">&nbsp;&nbsp;&nbsp;origin of the message. If the prefix is missing from the message, it</div><div class="line" id="LC286">&nbsp;&nbsp;&nbsp;is assumed to have originated from the connection from which it was</div><div class="line" id="LC287">&nbsp;&nbsp;&nbsp;received from. Clients SHOULD NOT use a prefix when sending a</div><div class="line" id="LC288">&nbsp;&nbsp;&nbsp;message; if they use one, the only valid prefix is the registered</div><div class="line" id="LC289">&nbsp;&nbsp;&nbsp;nickname associated with the client.</div><div class="line" id="LC290">&nbsp;</div><div class="line" id="LC291">&nbsp;&nbsp;&nbsp;The command MUST either be a valid IRC command or a three (3) digit</div><div class="line" id="LC292">&nbsp;&nbsp;&nbsp;number represented in ASCII text.</div><div class="line" id="LC293">&nbsp;</div><div class="line" id="LC294">&nbsp;&nbsp;&nbsp;IRC messages are always lines of characters terminated with a CR-LF</div><div class="line" id="LC295">&nbsp;&nbsp;&nbsp;(Carriage Return - Line Feed) pair, and these messages SHALL NOT</div><div class="line" id="LC296">&nbsp;&nbsp;&nbsp;exceed 512 characters in length, counting all characters including</div><div class="line" id="LC297">&nbsp;&nbsp;&nbsp;the trailing CR-LF. Thus, there are 510 characters maximum allowed</div><div class="line" id="LC298">&nbsp;&nbsp;&nbsp;for the command and its parameters. There is no provision for</div><div class="line" id="LC299">&nbsp;&nbsp;&nbsp;continuation of message lines. See section 6 for more details about</div><div class="line" id="LC300">&nbsp;&nbsp;&nbsp;current implementations.</div><div class="line" id="LC301">&nbsp;</div><div class="line" id="LC302">2.3.1 Message format in Augmented BNF</div><div class="line" id="LC303">&nbsp;</div><div class="line" id="LC304">&nbsp;&nbsp;&nbsp;The protocol messages must be extracted from the contiguous stream of</div><div class="line" id="LC305">&nbsp;&nbsp;&nbsp;octets. The current solution is to designate two characters, CR and</div><div class="line" id="LC306">&nbsp;&nbsp;&nbsp;LF, as message separators. Empty messages are silently ignored,</div><div class="line" id="LC307">&nbsp;&nbsp;&nbsp;which permits use of the sequence CR-LF between messages without</div><div class="line" id="LC308">&nbsp;&nbsp;&nbsp;extra problems.</div><div class="line" id="LC309">&nbsp;</div><div class="line" id="LC310">&nbsp;&nbsp;&nbsp;The extracted message is parsed into the components &lt;prefix&gt;,</div><div class="line" id="LC311">&nbsp;&nbsp;&nbsp;&lt;command&gt; and list of parameters (&lt;params&gt;).</div><div class="line" id="LC312">&nbsp;</div><div class="line" id="LC313">&nbsp;&nbsp;&nbsp;&nbsp;The Augmented BNF representation for this is:</div><div class="line" id="LC314">&nbsp;</div><div class="line" id="LC315">&nbsp;&nbsp;&nbsp;&nbsp;message = [ &quot;:&quot; prefix SPACE ] command [ params ] crlf</div><div class="line" id="LC316">&nbsp;&nbsp;&nbsp;&nbsp;prefix = servername / ( nickname [ [ &quot;!&quot; user ] &quot;@&quot; host ] )</div><div class="line" id="LC317">&nbsp;&nbsp;&nbsp;&nbsp;command = 1*letter / 3digit</div><div class="line" id="LC318">&nbsp;&nbsp;&nbsp;&nbsp;params = *14( SPACE middle ) [ SPACE &quot;:&quot; trailing ]</div><div class="line" id="LC319">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=/ 14( SPACE middle ) [ SPACE [ &quot;:&quot; ] trailing ]</div><div class="line" id="LC320">&nbsp;</div><div class="line" id="LC321">&nbsp;&nbsp;&nbsp;&nbsp;nospcrlfcl = %x01-09 / %x0B-0C / %x0E-1F / %x21-39 / %x3B-FF</div><div class="line" id="LC322">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; any octet except NUL, CR, LF, &quot; &quot; and &quot;:&quot;</div><div class="line" id="LC323">&nbsp;&nbsp;&nbsp;&nbsp;middle = nospcrlfcl *( &quot;:&quot; / nospcrlfcl )</div><div class="line" id="LC324">&nbsp;&nbsp;&nbsp;&nbsp;trailing = *( &quot;:&quot; / &quot; &quot; / nospcrlfcl )</div><div class="line" id="LC325">&nbsp;</div><div class="line" id="LC326">&nbsp;&nbsp;&nbsp;&nbsp;SPACE = %x20 ; space character</div><div class="line" id="LC327">&nbsp;&nbsp;&nbsp;&nbsp;crlf = %x0D %x0A ; &quot;carriage return&quot; &quot;linefeed&quot;</div><div class="line" id="LC328">&nbsp;</div><div class="line" id="LC329">&nbsp;</div><div class="line" id="LC330">&nbsp;</div><div class="line" id="LC331">&nbsp;</div><div class="line" id="LC332">Kalt Informational [Page 6]</div><div class="line" id="LC333">&nbsp;</div><div class="line" id="LC334">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC335">&nbsp;</div><div class="line" id="LC336">&nbsp;</div><div class="line" id="LC337">&nbsp;&nbsp;&nbsp;NOTES:</div><div class="line" id="LC338">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1) After extracting the parameter list, all parameters are equal</div><div class="line" id="LC339">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;whether matched by &lt;middle&gt; or &lt;trailing&gt;. &lt;trailing&gt; is just a</div><div class="line" id="LC340">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;syntactic trick to allow SPACE within the parameter.</div><div class="line" id="LC341">&nbsp;</div><div class="line" id="LC342">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2) The NUL (%x00) character is not special in message framing, and</div><div class="line" id="LC343">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;basically could end up inside a parameter, but it would cause</div><div class="line" id="LC344">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extra complexities in normal C string handling. Therefore, NUL</div><div class="line" id="LC345">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is not allowed within messages.</div><div class="line" id="LC346">&nbsp;</div><div class="line" id="LC347">&nbsp;&nbsp;&nbsp;Most protocol messages specify additional semantics and syntax for</div><div class="line" id="LC348">&nbsp;&nbsp;&nbsp;the extracted parameter strings dictated by their position in the</div><div class="line" id="LC349">&nbsp;&nbsp;&nbsp;list. For example, many server commands will assume that the first</div><div class="line" id="LC350">&nbsp;&nbsp;&nbsp;parameter after the command is the list of targets, which can be</div><div class="line" id="LC351">&nbsp;&nbsp;&nbsp;described with:</div><div class="line" id="LC352">&nbsp;</div><div class="line" id="LC353">&nbsp;&nbsp;target = nickname / server</div><div class="line" id="LC354">&nbsp;&nbsp;msgtarget = msgto *( &quot;,&quot; msgto )</div><div class="line" id="LC355">&nbsp;&nbsp;msgto = channel / ( user [ &quot;%&quot; host ] &quot;@&quot; servername )</div><div class="line" id="LC356">&nbsp;&nbsp;msgto =/ ( user &quot;%&quot; host ) / targetmask</div><div class="line" id="LC357">&nbsp;&nbsp;msgto =/ nickname / ( nickname &quot;!&quot; user &quot;@&quot; host )</div><div class="line" id="LC358">&nbsp;&nbsp;channel = ( &quot;#&quot; / &quot;+&quot; / ( &quot;!&quot; channelid ) / &quot;&amp;&quot; ) chanstring</div><div class="line" id="LC359">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ &quot;:&quot; chanstring ]</div><div class="line" id="LC360">&nbsp;&nbsp;servername = hostname</div><div class="line" id="LC361">&nbsp;&nbsp;host = hostname / hostaddr</div><div class="line" id="LC362">&nbsp;&nbsp;hostname = shortname *( &quot;.&quot; shortname )</div><div class="line" id="LC363">&nbsp;&nbsp;shortname = ( letter / digit ) *( letter / digit / &quot;-&quot; )</div><div class="line" id="LC364">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*( letter / digit )</div><div class="line" id="LC365">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; as specified in RFC 1123 [HNAME]</div><div class="line" id="LC366">&nbsp;&nbsp;hostaddr = ip4addr / ip6addr</div><div class="line" id="LC367">&nbsp;&nbsp;ip4addr = 1*3digit &quot;.&quot; 1*3digit &quot;.&quot; 1*3digit &quot;.&quot; 1*3digit</div><div class="line" id="LC368">&nbsp;&nbsp;ip6addr = 1*hexdigit 7( &quot;:&quot; 1*hexdigit )</div><div class="line" id="LC369">&nbsp;&nbsp;ip6addr =/ &quot;0:0:0:0:0:&quot; ( &quot;0&quot; / &quot;FFFF&quot; ) &quot;:&quot; ip4addr</div><div class="line" id="LC370">&nbsp;&nbsp;nickname = ( letter / special ) *8( letter / digit / special / &quot;-&quot; )</div><div class="line" id="LC371">&nbsp;&nbsp;targetmask = ( &quot;$&quot; / &quot;#&quot; ) mask</div><div class="line" id="LC372">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; see details on allowed masks in section 3.3.1</div><div class="line" id="LC373">&nbsp;&nbsp;chanstring = %x01-07 / %x08-09 / %x0B-0C / %x0E-1F / %x21-2B</div><div class="line" id="LC374">&nbsp;&nbsp;chanstring =/ %x2D-39 / %x3B-FF</div><div class="line" id="LC375">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; any octet except NUL, BELL, CR, LF, &quot; &quot;, &quot;,&quot; and &quot;:&quot;</div><div class="line" id="LC376">&nbsp;&nbsp;channelid = 5( %x41-5A / digit ) ; 5( A-Z / 0-9 )</div><div class="line" id="LC377">&nbsp;</div><div class="line" id="LC378">&nbsp;</div><div class="line" id="LC379">&nbsp;</div><div class="line" id="LC380">&nbsp;</div><div class="line" id="LC381">&nbsp;</div><div class="line" id="LC382">&nbsp;</div><div class="line" id="LC383">&nbsp;</div><div class="line" id="LC384">&nbsp;</div><div class="line" id="LC385">&nbsp;</div><div class="line" id="LC386">&nbsp;</div><div class="line" id="LC387">&nbsp;</div><div class="line" id="LC388">Kalt Informational [Page 7]</div><div class="line" id="LC389">&nbsp;</div><div class="line" id="LC390">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC391">&nbsp;</div><div class="line" id="LC392">&nbsp;</div><div class="line" id="LC393">&nbsp;&nbsp;Other parameter syntaxes are:</div><div class="line" id="LC394">&nbsp;</div><div class="line" id="LC395">&nbsp;&nbsp;user = 1*( %x01-09 / %x0B-0C / %x0E-1F / %x21-3F / %x41-FF )</div><div class="line" id="LC396">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; any octet except NUL, CR, LF, &quot; &quot; and &quot;@&quot;</div><div class="line" id="LC397">&nbsp;&nbsp;key = 1*23( %x01-05 / %x07-08 / %x0C / %x0E-1F / %x21-7F )</div><div class="line" id="LC398">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; any 7-bit US_ASCII character,</div><div class="line" id="LC399">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; except NUL, CR, LF, FF, h/v TABs, and &quot; &quot;</div><div class="line" id="LC400">&nbsp;&nbsp;letter = %x41-5A / %x61-7A ; A-Z / a-z</div><div class="line" id="LC401">&nbsp;&nbsp;digit = %x30-39 ; 0-9</div><div class="line" id="LC402">&nbsp;&nbsp;hexdigit = digit / &quot;A&quot; / &quot;B&quot; / &quot;C&quot; / &quot;D&quot; / &quot;E&quot; / &quot;F&quot;</div><div class="line" id="LC403">&nbsp;&nbsp;special = %x5B-60 / %x7B-7D</div><div class="line" id="LC404">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; &quot;[&quot;, &quot;]&quot;, &quot;\&quot;, &quot;`&quot;, &quot;_&quot;, &quot;^&quot;, &quot;{&quot;, &quot;|&quot;, &quot;}&quot;</div><div class="line" id="LC405">&nbsp;</div><div class="line" id="LC406">&nbsp;&nbsp;NOTES:</div><div class="line" id="LC407">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1) The &lt;hostaddr&gt; syntax is given here for the sole purpose of</div><div class="line" id="LC408">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indicating the format to follow for IP addresses. This</div><div class="line" id="LC409">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reflects the fact that the only available implementations of</div><div class="line" id="LC410">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this protocol uses TCP/IP as underlying network protocol but is</div><div class="line" id="LC411">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not meant to prevent other protocols to be used.</div><div class="line" id="LC412">&nbsp;</div><div class="line" id="LC413">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2) &lt;hostname&gt; has a maximum length of 63 characters. This is a</div><div class="line" id="LC414">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;limitation of the protocol as internet hostnames (in</div><div class="line" id="LC415">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;particular) can be longer. Such restriction is necessary</div><div class="line" id="LC416">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;because IRC messages are limited to 512 characters in length.</div><div class="line" id="LC417">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clients connecting from a host which name is longer than 63</div><div class="line" id="LC418">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;characters are registered using the host (numeric) address</div><div class="line" id="LC419">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instead of the host name.</div><div class="line" id="LC420">&nbsp;</div><div class="line" id="LC421">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3) Some parameters used in the following sections of this</div><div class="line" id="LC422">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;documents are not defined here as there is nothing specific</div><div class="line" id="LC423">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;about them besides the name that is used for convenience.</div><div class="line" id="LC424">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;These parameters follow the general syntax defined for</div><div class="line" id="LC425">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;params&gt;.</div><div class="line" id="LC426">&nbsp;</div><div class="line" id="LC427">2.4 Numeric replies</div><div class="line" id="LC428">&nbsp;</div><div class="line" id="LC429">&nbsp;&nbsp;&nbsp;Most of the messages sent to the server generate a reply of some</div><div class="line" id="LC430">&nbsp;&nbsp;&nbsp;sort. The most common reply is the numeric reply, used for both</div><div class="line" id="LC431">&nbsp;&nbsp;&nbsp;errors and normal replies. The numeric reply MUST be sent as one</div><div class="line" id="LC432">&nbsp;&nbsp;&nbsp;message consisting of the sender prefix, the three-digit numeric, and</div><div class="line" id="LC433">&nbsp;&nbsp;&nbsp;the target of the reply. A numeric reply is not allowed to originate</div><div class="line" id="LC434">&nbsp;&nbsp;&nbsp;from a client. In all other respects, a numeric reply is just like a</div><div class="line" id="LC435">&nbsp;&nbsp;&nbsp;normal message, except that the keyword is made up of 3 numeric</div><div class="line" id="LC436">&nbsp;&nbsp;&nbsp;digits rather than a string of letters. A list of different replies</div><div class="line" id="LC437">&nbsp;&nbsp;&nbsp;is supplied in section 5 (Replies).</div><div class="line" id="LC438">&nbsp;</div><div class="line" id="LC439">&nbsp;</div><div class="line" id="LC440">&nbsp;</div><div class="line" id="LC441">&nbsp;</div><div class="line" id="LC442">&nbsp;</div><div class="line" id="LC443">&nbsp;</div><div class="line" id="LC444">Kalt Informational [Page 8]</div><div class="line" id="LC445">&nbsp;</div><div class="line" id="LC446">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC447">&nbsp;</div><div class="line" id="LC448">&nbsp;</div><div class="line" id="LC449">2.5 Wildcard expressions</div><div class="line" id="LC450">&nbsp;</div><div class="line" id="LC451">&nbsp;&nbsp;&nbsp;When wildcards are allowed in a string, it is referred as a &quot;mask&quot;.</div><div class="line" id="LC452">&nbsp;</div><div class="line" id="LC453">&nbsp;&nbsp;&nbsp;For string matching purposes, the protocol allows the use of two</div><div class="line" id="LC454">&nbsp;&nbsp;&nbsp;special characters: &#39;?&#39; (%x3F) to match one and only one character,</div><div class="line" id="LC455">&nbsp;&nbsp;&nbsp;and &#39;*&#39; (%x2A) to match any number of any characters. These two</div><div class="line" id="LC456">&nbsp;&nbsp;&nbsp;characters can be escaped using the character &#39;\&#39; (%x5C).</div><div class="line" id="LC457">&nbsp;</div><div class="line" id="LC458">&nbsp;&nbsp;&nbsp;The Augmented BNF syntax for this is:</div><div class="line" id="LC459">&nbsp;</div><div class="line" id="LC460">&nbsp;&nbsp;&nbsp;&nbsp;mask = *( nowild / noesc wildone / noesc wildmany )</div><div class="line" id="LC461">&nbsp;&nbsp;&nbsp;&nbsp;wildone = %x3F</div><div class="line" id="LC462">&nbsp;&nbsp;&nbsp;&nbsp;wildmany = %x2A</div><div class="line" id="LC463">&nbsp;&nbsp;&nbsp;&nbsp;nowild = %x01-29 / %x2B-3E / %x40-FF</div><div class="line" id="LC464">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; any octet except NUL, &quot;*&quot;, &quot;?&quot;</div><div class="line" id="LC465">&nbsp;&nbsp;&nbsp;&nbsp;noesc = %x01-5B / %x5D-FF</div><div class="line" id="LC466">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; any octet except NUL and &quot;\&quot;</div><div class="line" id="LC467">&nbsp;&nbsp;&nbsp;&nbsp;matchone = %x01-FF</div><div class="line" id="LC468">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; matches wildone</div><div class="line" id="LC469">&nbsp;&nbsp;&nbsp;&nbsp;matchmany = *matchone</div><div class="line" id="LC470">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; matches wildmany</div><div class="line" id="LC471">&nbsp;</div><div class="line" id="LC472">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC473">&nbsp;</div><div class="line" id="LC474">&nbsp;&nbsp;&nbsp;a?c ; Matches any string of 3 characters in length starting</div><div class="line" id="LC475">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with &quot;a&quot; and ending with &quot;c&quot;</div><div class="line" id="LC476">&nbsp;</div><div class="line" id="LC477">&nbsp;&nbsp;&nbsp;a*c ; Matches any string of at least 2 characters in length</div><div class="line" id="LC478">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;starting with &quot;a&quot; and ending with &quot;c&quot;</div><div class="line" id="LC479">&nbsp;</div><div class="line" id="LC480">3. Message Details</div><div class="line" id="LC481">&nbsp;</div><div class="line" id="LC482">&nbsp;&nbsp;&nbsp;On the following pages there are descriptions of each message</div><div class="line" id="LC483">&nbsp;&nbsp;&nbsp;recognized by the IRC server and client. All commands described in</div><div class="line" id="LC484">&nbsp;&nbsp;&nbsp;this section MUST be implemented by any server for this protocol.</div><div class="line" id="LC485">&nbsp;</div><div class="line" id="LC486">&nbsp;&nbsp;&nbsp;Where the reply ERR_NOSUCHSERVER is returned, it means that the</div><div class="line" id="LC487">&nbsp;&nbsp;&nbsp;target of the message could not be found. The server MUST NOT send</div><div class="line" id="LC488">&nbsp;&nbsp;&nbsp;any other replies after this error for that command.</div><div class="line" id="LC489">&nbsp;</div><div class="line" id="LC490">&nbsp;&nbsp;&nbsp;The server to which a client is connected is required to parse the</div><div class="line" id="LC491">&nbsp;&nbsp;&nbsp;complete message, and return any appropriate errors.</div><div class="line" id="LC492">&nbsp;</div><div class="line" id="LC493">&nbsp;&nbsp;&nbsp;If multiple parameters is presented, then each MUST be checked for</div><div class="line" id="LC494">&nbsp;&nbsp;&nbsp;validity and appropriate responses MUST be sent back to the client.</div><div class="line" id="LC495">&nbsp;&nbsp;&nbsp;In the case of incorrect messages which use parameter lists with</div><div class="line" id="LC496">&nbsp;&nbsp;&nbsp;comma as an item separator, a reply MUST be sent for each item.</div><div class="line" id="LC497">&nbsp;</div><div class="line" id="LC498">&nbsp;</div><div class="line" id="LC499">&nbsp;</div><div class="line" id="LC500">Kalt Informational [Page 9]</div><div class="line" id="LC501">&nbsp;</div><div class="line" id="LC502">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC503">&nbsp;</div><div class="line" id="LC504">&nbsp;</div><div class="line" id="LC505">3.1 Connection Registration</div><div class="line" id="LC506">&nbsp;</div><div class="line" id="LC507">&nbsp;&nbsp;&nbsp;The commands described here are used to register a connection with an</div><div class="line" id="LC508">&nbsp;&nbsp;&nbsp;IRC server as a user as well as to correctly disconnect.</div><div class="line" id="LC509">&nbsp;</div><div class="line" id="LC510">&nbsp;&nbsp;&nbsp;A &quot;PASS&quot; command is not required for a client connection to be</div><div class="line" id="LC511">&nbsp;&nbsp;&nbsp;registered, but it MUST precede the latter of the NICK/USER</div><div class="line" id="LC512">&nbsp;&nbsp;&nbsp;combination (for a user connection) or the SERVICE command (for a</div><div class="line" id="LC513">&nbsp;&nbsp;&nbsp;service connection). The RECOMMENDED order for a client to register</div><div class="line" id="LC514">&nbsp;&nbsp;&nbsp;is as follows:</div><div class="line" id="LC515">&nbsp;</div><div class="line" id="LC516">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. Pass message</div><div class="line" id="LC517">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. Nick message 2. Service message</div><div class="line" id="LC518">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3. User message</div><div class="line" id="LC519">&nbsp;</div><div class="line" id="LC520">&nbsp;&nbsp;&nbsp;Upon success, the client will receive an RPL_WELCOME (for users) or</div><div class="line" id="LC521">&nbsp;&nbsp;&nbsp;RPL_YOURESERVICE (for services) message indicating that the</div><div class="line" id="LC522">&nbsp;&nbsp;&nbsp;connection is now registered and known the to the entire IRC network.</div><div class="line" id="LC523">&nbsp;&nbsp;&nbsp;The reply message MUST contain the full client identifier upon which</div><div class="line" id="LC524">&nbsp;&nbsp;&nbsp;it was registered.</div><div class="line" id="LC525">&nbsp;</div><div class="line" id="LC526">3.1.1 Password message</div><div class="line" id="LC527">&nbsp;</div><div class="line" id="LC528">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: PASS</div><div class="line" id="LC529">&nbsp;&nbsp;&nbsp;Parameters: &lt;password&gt;</div><div class="line" id="LC530">&nbsp;</div><div class="line" id="LC531">&nbsp;&nbsp;&nbsp;The PASS command is used to set a &#39;connection password&#39;. The</div><div class="line" id="LC532">&nbsp;&nbsp;&nbsp;optional password can and MUST be set before any attempt to register</div><div class="line" id="LC533">&nbsp;&nbsp;&nbsp;the connection is made. Currently this requires that user send a</div><div class="line" id="LC534">&nbsp;&nbsp;&nbsp;PASS command before sending the NICK/USER combination.</div><div class="line" id="LC535">&nbsp;</div><div class="line" id="LC536">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC537">&nbsp;</div><div class="line" id="LC538">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED</div><div class="line" id="LC539">&nbsp;</div><div class="line" id="LC540">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC541">&nbsp;</div><div class="line" id="LC542">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PASS secretpasswordhere</div><div class="line" id="LC543">&nbsp;</div><div class="line" id="LC544">3.1.2 Nick message</div><div class="line" id="LC545">&nbsp;</div><div class="line" id="LC546">&nbsp;</div><div class="line" id="LC547">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: NICK</div><div class="line" id="LC548">&nbsp;&nbsp;&nbsp;Parameters: &lt;nickname&gt;</div><div class="line" id="LC549">&nbsp;</div><div class="line" id="LC550">&nbsp;&nbsp;&nbsp;NICK command is used to give user a nickname or change the existing</div><div class="line" id="LC551">&nbsp;&nbsp;&nbsp;one.</div><div class="line" id="LC552">&nbsp;</div><div class="line" id="LC553">&nbsp;</div><div class="line" id="LC554">&nbsp;</div><div class="line" id="LC555">&nbsp;</div><div class="line" id="LC556">Kalt Informational [Page 10]</div><div class="line" id="LC557">&nbsp;</div><div class="line" id="LC558">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC559">&nbsp;</div><div class="line" id="LC560">&nbsp;</div><div class="line" id="LC561">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC562">&nbsp;</div><div class="line" id="LC563">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NONICKNAMEGIVEN ERR_ERRONEUSNICKNAME</div><div class="line" id="LC564">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NICKNAMEINUSE ERR_NICKCOLLISION</div><div class="line" id="LC565">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_UNAVAILRESOURCE ERR_RESTRICTED</div><div class="line" id="LC566">&nbsp;</div><div class="line" id="LC567">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC568">&nbsp;</div><div class="line" id="LC569">&nbsp;&nbsp;&nbsp;NICK Wiz ; Introducing new nick &quot;Wiz&quot; if session is</div><div class="line" id="LC570">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;still unregistered, or user changing his</div><div class="line" id="LC571">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nickname to &quot;Wiz&quot;</div><div class="line" id="LC572">&nbsp;</div><div class="line" id="LC573">&nbsp;&nbsp;&nbsp;:WiZ!jto@tolsun.oulu.fi NICK Kilroy</div><div class="line" id="LC574">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Server telling that WiZ changed his</div><div class="line" id="LC575">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nickname to Kilroy.</div><div class="line" id="LC576">&nbsp;</div><div class="line" id="LC577">3.1.3 User message</div><div class="line" id="LC578">&nbsp;</div><div class="line" id="LC579">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: USER</div><div class="line" id="LC580">&nbsp;&nbsp;&nbsp;Parameters: &lt;user&gt; &lt;mode&gt; &lt;unused&gt; &lt;realname&gt;</div><div class="line" id="LC581">&nbsp;</div><div class="line" id="LC582">&nbsp;&nbsp;&nbsp;The USER command is used at the beginning of connection to specify</div><div class="line" id="LC583">&nbsp;&nbsp;&nbsp;the username, hostname and realname of a new user.</div><div class="line" id="LC584">&nbsp;</div><div class="line" id="LC585">&nbsp;&nbsp;&nbsp;The &lt;mode&gt; parameter should be a numeric, and can be used to</div><div class="line" id="LC586">&nbsp;&nbsp;&nbsp;automatically set user modes when registering with the server. This</div><div class="line" id="LC587">&nbsp;&nbsp;&nbsp;parameter is a bitmask, with only 2 bits having any signification: if</div><div class="line" id="LC588">&nbsp;&nbsp;&nbsp;the bit 2 is set, the user mode &#39;w&#39; will be set and if the bit 3 is</div><div class="line" id="LC589">&nbsp;&nbsp;&nbsp;set, the user mode &#39;i&#39; will be set. (See Section 3.1.5 &quot;User</div><div class="line" id="LC590">&nbsp;&nbsp;&nbsp;Modes&quot;).</div><div class="line" id="LC591">&nbsp;</div><div class="line" id="LC592">&nbsp;&nbsp;&nbsp;The &lt;realname&gt; may contain space characters.</div><div class="line" id="LC593">&nbsp;</div><div class="line" id="LC594">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC595">&nbsp;</div><div class="line" id="LC596">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED</div><div class="line" id="LC597">&nbsp;</div><div class="line" id="LC598">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC599">&nbsp;</div><div class="line" id="LC600">&nbsp;&nbsp;&nbsp;USER guest 0 * :Ronnie Reagan ; User registering themselves with a</div><div class="line" id="LC601">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username of &quot;guest&quot; and real name</div><div class="line" id="LC602">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Ronnie Reagan&quot;.</div><div class="line" id="LC603">&nbsp;</div><div class="line" id="LC604">&nbsp;&nbsp;&nbsp;USER guest 8 * :Ronnie Reagan ; User registering themselves with a</div><div class="line" id="LC605">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username of &quot;guest&quot; and real name</div><div class="line" id="LC606">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Ronnie Reagan&quot;, and asking to be set</div><div class="line" id="LC607">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;invisible.</div><div class="line" id="LC608">&nbsp;</div><div class="line" id="LC609">&nbsp;</div><div class="line" id="LC610">&nbsp;</div><div class="line" id="LC611">&nbsp;</div><div class="line" id="LC612">Kalt Informational [Page 11]</div><div class="line" id="LC613">&nbsp;</div><div class="line" id="LC614">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC615">&nbsp;</div><div class="line" id="LC616">&nbsp;</div><div class="line" id="LC617">3.1.4 Oper message</div><div class="line" id="LC618">&nbsp;</div><div class="line" id="LC619">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: OPER</div><div class="line" id="LC620">&nbsp;&nbsp;&nbsp;Parameters: &lt;name&gt; &lt;password&gt;</div><div class="line" id="LC621">&nbsp;</div><div class="line" id="LC622">&nbsp;&nbsp;&nbsp;A normal user uses the OPER command to obtain operator privileges.</div><div class="line" id="LC623">&nbsp;&nbsp;&nbsp;The combination of &lt;name&gt; and &lt;password&gt; are REQUIRED to gain</div><div class="line" id="LC624">&nbsp;&nbsp;&nbsp;Operator privileges. Upon success, the user will receive a MODE</div><div class="line" id="LC625">&nbsp;&nbsp;&nbsp;message (see section 3.1.5) indicating the new user modes.</div><div class="line" id="LC626">&nbsp;</div><div class="line" id="LC627">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC628">&nbsp;</div><div class="line" id="LC629">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS RPL_YOUREOPER</div><div class="line" id="LC630">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOOPERHOST ERR_PASSWDMISMATCH</div><div class="line" id="LC631">&nbsp;</div><div class="line" id="LC632">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC633">&nbsp;</div><div class="line" id="LC634">&nbsp;&nbsp;&nbsp;OPER foo bar ; Attempt to register as an operator</div><div class="line" id="LC635">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using a username of &quot;foo&quot; and &quot;bar&quot;</div><div class="line" id="LC636">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;as the password.</div><div class="line" id="LC637">&nbsp;</div><div class="line" id="LC638">3.1.5 User mode message</div><div class="line" id="LC639">&nbsp;</div><div class="line" id="LC640">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: MODE</div><div class="line" id="LC641">&nbsp;&nbsp;&nbsp;Parameters: &lt;nickname&gt;</div><div class="line" id="LC642">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*( ( &quot;+&quot; / &quot;-&quot; ) *( &quot;i&quot; / &quot;w&quot; / &quot;o&quot; / &quot;O&quot; / &quot;r&quot; ) )</div><div class="line" id="LC643">&nbsp;</div><div class="line" id="LC644">&nbsp;&nbsp;&nbsp;The user MODE&#39;s are typically changes which affect either how the</div><div class="line" id="LC645">&nbsp;&nbsp;&nbsp;client is seen by others or what &#39;extra&#39; messages the client is sent.</div><div class="line" id="LC646">&nbsp;</div><div class="line" id="LC647">&nbsp;&nbsp;&nbsp;A user MODE command MUST only be accepted if both the sender of the</div><div class="line" id="LC648">&nbsp;&nbsp;&nbsp;message and the nickname given as a parameter are both the same. If</div><div class="line" id="LC649">&nbsp;&nbsp;&nbsp;no other parameter is given, then the server will return the current</div><div class="line" id="LC650">&nbsp;&nbsp;&nbsp;settings for the nick.</div><div class="line" id="LC651">&nbsp;</div><div class="line" id="LC652">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The available modes are as follows:</div><div class="line" id="LC653">&nbsp;</div><div class="line" id="LC654">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a - user is flagged as away;</div><div class="line" id="LC655">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i - marks a users as invisible;</div><div class="line" id="LC656">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w - user receives wallops;</div><div class="line" id="LC657">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r - restricted user connection;</div><div class="line" id="LC658">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o - operator flag;</div><div class="line" id="LC659">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;O - local operator flag;</div><div class="line" id="LC660">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s - marks a user for receipt of server notices.</div><div class="line" id="LC661">&nbsp;</div><div class="line" id="LC662">&nbsp;&nbsp;&nbsp;Additional modes may be available later on.</div><div class="line" id="LC663">&nbsp;</div><div class="line" id="LC664">&nbsp;</div><div class="line" id="LC665">&nbsp;</div><div class="line" id="LC666">&nbsp;</div><div class="line" id="LC667">&nbsp;</div><div class="line" id="LC668">Kalt Informational [Page 12]</div><div class="line" id="LC669">&nbsp;</div><div class="line" id="LC670">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC671">&nbsp;</div><div class="line" id="LC672">&nbsp;</div><div class="line" id="LC673">&nbsp;&nbsp;&nbsp;The flag &#39;a&#39; SHALL NOT be toggled by the user using the MODE command,</div><div class="line" id="LC674">&nbsp;&nbsp;&nbsp;instead use of the AWAY command is REQUIRED.</div><div class="line" id="LC675">&nbsp;</div><div class="line" id="LC676">&nbsp;&nbsp;&nbsp;If a user attempts to make themselves an operator using the &quot;+o&quot; or</div><div class="line" id="LC677">&nbsp;&nbsp;&nbsp;&quot;+O&quot; flag, the attempt SHOULD be ignored as users could bypass the</div><div class="line" id="LC678">&nbsp;&nbsp;&nbsp;authentication mechanisms of the OPER command. There is no</div><div class="line" id="LC679">&nbsp;&nbsp;&nbsp;restriction, however, on anyone `deopping&#39; themselves (using &quot;-o&quot; or</div><div class="line" id="LC680">&nbsp;&nbsp;&nbsp;&quot;-O&quot;).</div><div class="line" id="LC681">&nbsp;</div><div class="line" id="LC682">&nbsp;&nbsp;&nbsp;On the other hand, if a user attempts to make themselves unrestricted</div><div class="line" id="LC683">&nbsp;&nbsp;&nbsp;using the &quot;-r&quot; flag, the attempt SHOULD be ignored. There is no</div><div class="line" id="LC684">&nbsp;&nbsp;&nbsp;restriction, however, on anyone `deopping&#39; themselves (using &quot;+r&quot;).</div><div class="line" id="LC685">&nbsp;&nbsp;&nbsp;This flag is typically set by the server upon connection for</div><div class="line" id="LC686">&nbsp;&nbsp;&nbsp;administrative reasons. While the restrictions imposed are left up</div><div class="line" id="LC687">&nbsp;&nbsp;&nbsp;to the implementation, it is typical that a restricted user not be</div><div class="line" id="LC688">&nbsp;&nbsp;&nbsp;allowed to change nicknames, nor make use of the channel operator</div><div class="line" id="LC689">&nbsp;&nbsp;&nbsp;status on channels.</div><div class="line" id="LC690">&nbsp;</div><div class="line" id="LC691">&nbsp;&nbsp;&nbsp;The flag &#39;s&#39; is obsolete but MAY still be used.</div><div class="line" id="LC692">&nbsp;</div><div class="line" id="LC693">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC694">&nbsp;</div><div class="line" id="LC695">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS ERR_USERSDONTMATCH</div><div class="line" id="LC696">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_UMODEUNKNOWNFLAG RPL_UMODEIS</div><div class="line" id="LC697">&nbsp;</div><div class="line" id="LC698">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC699">&nbsp;</div><div class="line" id="LC700">&nbsp;&nbsp;&nbsp;MODE WiZ -w ; Command by WiZ to turn off</div><div class="line" id="LC701">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reception of WALLOPS messages.</div><div class="line" id="LC702">&nbsp;</div><div class="line" id="LC703">&nbsp;&nbsp;&nbsp;MODE Angel +i ; Command from Angel to make herself</div><div class="line" id="LC704">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;invisible.</div><div class="line" id="LC705">&nbsp;</div><div class="line" id="LC706">&nbsp;&nbsp;&nbsp;MODE WiZ -o ; WiZ &#39;deopping&#39; (removing operator</div><div class="line" id="LC707">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;status).</div><div class="line" id="LC708">&nbsp;</div><div class="line" id="LC709">3.1.6 Service message</div><div class="line" id="LC710">&nbsp;</div><div class="line" id="LC711">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: SERVICE</div><div class="line" id="LC712">&nbsp;&nbsp;&nbsp;Parameters: &lt;nickname&gt; &lt;reserved&gt; &lt;distribution&gt; &lt;type&gt;</div><div class="line" id="LC713">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;reserved&gt; &lt;info&gt;</div><div class="line" id="LC714">&nbsp;</div><div class="line" id="LC715">&nbsp;&nbsp;&nbsp;The SERVICE command to register a new service. Command parameters</div><div class="line" id="LC716">&nbsp;&nbsp;&nbsp;specify the service nickname, distribution, type and info of a new</div><div class="line" id="LC717">&nbsp;&nbsp;&nbsp;service.</div><div class="line" id="LC718">&nbsp;</div><div class="line" id="LC719">&nbsp;</div><div class="line" id="LC720">&nbsp;</div><div class="line" id="LC721">&nbsp;</div><div class="line" id="LC722">&nbsp;</div><div class="line" id="LC723">&nbsp;</div><div class="line" id="LC724">Kalt Informational [Page 13]</div><div class="line" id="LC725">&nbsp;</div><div class="line" id="LC726">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC727">&nbsp;</div><div class="line" id="LC728">&nbsp;</div><div class="line" id="LC729">&nbsp;&nbsp;&nbsp;The &lt;distribution&gt; parameter is used to specify the visibility of a</div><div class="line" id="LC730">&nbsp;&nbsp;&nbsp;service. The service may only be known to servers which have a name</div><div class="line" id="LC731">&nbsp;&nbsp;&nbsp;matching the distribution. For a matching server to have knowledge</div><div class="line" id="LC732">&nbsp;&nbsp;&nbsp;of the service, the network path between that server and the server</div><div class="line" id="LC733">&nbsp;&nbsp;&nbsp;on which the service is connected MUST be composed of servers which</div><div class="line" id="LC734">&nbsp;&nbsp;&nbsp;names all match the mask.</div><div class="line" id="LC735">&nbsp;</div><div class="line" id="LC736">&nbsp;&nbsp;&nbsp;The &lt;type&gt; parameter is currently reserved for future usage.</div><div class="line" id="LC737">&nbsp;</div><div class="line" id="LC738">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC739">&nbsp;</div><div class="line" id="LC740">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_ALREADYREGISTRED ERR_NEEDMOREPARAMS</div><div class="line" id="LC741">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_ERRONEUSNICKNAME</div><div class="line" id="LC742">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_YOURESERVICE RPL_YOURHOST</div><div class="line" id="LC743">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_MYINFO</div><div class="line" id="LC744">&nbsp;</div><div class="line" id="LC745">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC746">&nbsp;</div><div class="line" id="LC747">&nbsp;&nbsp;&nbsp;SERVICE dict * *.fr 0 0 :French Dictionary ; Service registering</div><div class="line" id="LC748">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;itself with a name of &quot;dict&quot;. This</div><div class="line" id="LC749">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;service will only be available on</div><div class="line" id="LC750">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;servers which name matches &quot;*.fr&quot;.</div><div class="line" id="LC751">&nbsp;</div><div class="line" id="LC752">3.1.7 Quit</div><div class="line" id="LC753">&nbsp;</div><div class="line" id="LC754">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: QUIT</div><div class="line" id="LC755">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;Quit Message&gt; ]</div><div class="line" id="LC756">&nbsp;</div><div class="line" id="LC757">&nbsp;&nbsp;&nbsp;A client session is terminated with a quit message. The server</div><div class="line" id="LC758">&nbsp;&nbsp;&nbsp;acknowledges this by sending an ERROR message to the client.</div><div class="line" id="LC759">&nbsp;</div><div class="line" id="LC760">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC761">&nbsp;</div><div class="line" id="LC762">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;None.</div><div class="line" id="LC763">&nbsp;</div><div class="line" id="LC764">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC765">&nbsp;</div><div class="line" id="LC766">&nbsp;&nbsp;&nbsp;QUIT :Gone to have lunch ; Preferred message format.</div><div class="line" id="LC767">&nbsp;</div><div class="line" id="LC768">&nbsp;&nbsp;&nbsp;:syrk!kalt@millennium.stealth.net QUIT :Gone to have lunch ; User</div><div class="line" id="LC769">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;syrk has quit IRC to have lunch.</div><div class="line" id="LC770">&nbsp;</div><div class="line" id="LC771">&nbsp;</div><div class="line" id="LC772">&nbsp;</div><div class="line" id="LC773">&nbsp;</div><div class="line" id="LC774">&nbsp;</div><div class="line" id="LC775">&nbsp;</div><div class="line" id="LC776">&nbsp;</div><div class="line" id="LC777">&nbsp;</div><div class="line" id="LC778">&nbsp;</div><div class="line" id="LC779">&nbsp;</div><div class="line" id="LC780">Kalt Informational [Page 14]</div><div class="line" id="LC781">&nbsp;</div><div class="line" id="LC782">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC783">&nbsp;</div><div class="line" id="LC784">&nbsp;</div><div class="line" id="LC785">3.1.8 Squit</div><div class="line" id="LC786">&nbsp;</div><div class="line" id="LC787">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: SQUIT</div><div class="line" id="LC788">&nbsp;&nbsp;&nbsp;Parameters: &lt;server&gt; &lt;comment&gt;</div><div class="line" id="LC789">&nbsp;</div><div class="line" id="LC790">&nbsp;&nbsp;&nbsp;The SQUIT command is available only to operators. It is used to</div><div class="line" id="LC791">&nbsp;&nbsp;&nbsp;disconnect server links. Also servers can generate SQUIT messages on</div><div class="line" id="LC792">&nbsp;&nbsp;&nbsp;error conditions. A SQUIT message may also target a remote server</div><div class="line" id="LC793">&nbsp;&nbsp;&nbsp;connection. In this case, the SQUIT message will simply be sent to</div><div class="line" id="LC794">&nbsp;&nbsp;&nbsp;the remote server without affecting the servers in between the</div><div class="line" id="LC795">&nbsp;&nbsp;&nbsp;operator and the remote server.</div><div class="line" id="LC796">&nbsp;</div><div class="line" id="LC797">&nbsp;&nbsp;&nbsp;The &lt;comment&gt; SHOULD be supplied by all operators who execute a SQUIT</div><div class="line" id="LC798">&nbsp;&nbsp;&nbsp;for a remote server. The server ordered to disconnect its peer</div><div class="line" id="LC799">&nbsp;&nbsp;&nbsp;generates a WALLOPS message with &lt;comment&gt; included, so that other</div><div class="line" id="LC800">&nbsp;&nbsp;&nbsp;users may be aware of the reason of this action.</div><div class="line" id="LC801">&nbsp;</div><div class="line" id="LC802">&nbsp;&nbsp;&nbsp;Numeric replies:</div><div class="line" id="LC803">&nbsp;</div><div class="line" id="LC804">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOPRIVILEGES ERR_NOSUCHSERVER</div><div class="line" id="LC805">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS</div><div class="line" id="LC806">&nbsp;</div><div class="line" id="LC807">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC808">&nbsp;</div><div class="line" id="LC809">&nbsp;&nbsp;&nbsp;SQUIT tolsun.oulu.fi :Bad Link ? ; Command to uplink of the server</div><div class="line" id="LC810">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tolson.oulu.fi to terminate its</div><div class="line" id="LC811">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connection with comment &quot;Bad Link&quot;.</div><div class="line" id="LC812">&nbsp;</div><div class="line" id="LC813">&nbsp;&nbsp;&nbsp;:Trillian SQUIT cm22.eng.umd.edu :Server out of control ; Command</div><div class="line" id="LC814">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from Trillian from to disconnect</div><div class="line" id="LC815">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;cm22.eng.umd.edu&quot; from the net with</div><div class="line" id="LC816">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comment &quot;Server out of control&quot;.</div><div class="line" id="LC817">&nbsp;</div><div class="line" id="LC818">3.2 Channel operations</div><div class="line" id="LC819">&nbsp;</div><div class="line" id="LC820">&nbsp;&nbsp;&nbsp;This group of messages is concerned with manipulating channels, their</div><div class="line" id="LC821">&nbsp;&nbsp;&nbsp;properties (channel modes), and their contents (typically users).</div><div class="line" id="LC822">&nbsp;&nbsp;&nbsp;For this reason, these messages SHALL NOT be made available to</div><div class="line" id="LC823">&nbsp;&nbsp;&nbsp;services.</div><div class="line" id="LC824">&nbsp;</div><div class="line" id="LC825">&nbsp;&nbsp;&nbsp;All of these messages are requests which will or will not be granted</div><div class="line" id="LC826">&nbsp;&nbsp;&nbsp;by the server. The server MUST send a reply informing the user</div><div class="line" id="LC827">&nbsp;&nbsp;&nbsp;whether the request was granted, denied or generated an error. When</div><div class="line" id="LC828">&nbsp;&nbsp;&nbsp;the server grants the request, the message is typically sent back</div><div class="line" id="LC829">&nbsp;&nbsp;&nbsp;(eventually reformatted) to the user with the prefix set to the user</div><div class="line" id="LC830">&nbsp;&nbsp;&nbsp;itself.</div><div class="line" id="LC831">&nbsp;</div><div class="line" id="LC832">&nbsp;</div><div class="line" id="LC833">&nbsp;</div><div class="line" id="LC834">&nbsp;</div><div class="line" id="LC835">&nbsp;</div><div class="line" id="LC836">Kalt Informational [Page 15]</div><div class="line" id="LC837">&nbsp;</div><div class="line" id="LC838">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC839">&nbsp;</div><div class="line" id="LC840">&nbsp;</div><div class="line" id="LC841">&nbsp;&nbsp;&nbsp;The rules governing how channels are managed are enforced by the</div><div class="line" id="LC842">&nbsp;&nbsp;&nbsp;servers. These rules are beyond the scope of this document. More</div><div class="line" id="LC843">&nbsp;&nbsp;&nbsp;details are found in &quot;Internet Relay Chat: Channel Management&quot; [IRC-</div><div class="line" id="LC844">&nbsp;&nbsp;&nbsp;CHAN].</div><div class="line" id="LC845">&nbsp;</div><div class="line" id="LC846">3.2.1 Join message</div><div class="line" id="LC847">&nbsp;</div><div class="line" id="LC848">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: JOIN</div><div class="line" id="LC849">&nbsp;&nbsp;&nbsp;Parameters: ( &lt;channel&gt; *( &quot;,&quot; &lt;channel&gt; ) [ &lt;key&gt; *( &quot;,&quot; &lt;key&gt; ) ] )</div><div class="line" id="LC850">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/ &quot;0&quot;</div><div class="line" id="LC851">&nbsp;</div><div class="line" id="LC852">&nbsp;&nbsp;&nbsp;The JOIN command is used by a user to request to start listening to</div><div class="line" id="LC853">&nbsp;&nbsp;&nbsp;the specific channel. Servers MUST be able to parse arguments in the</div><div class="line" id="LC854">&nbsp;&nbsp;&nbsp;form of a list of target, but SHOULD NOT use lists when sending JOIN</div><div class="line" id="LC855">&nbsp;&nbsp;&nbsp;messages to clients.</div><div class="line" id="LC856">&nbsp;</div><div class="line" id="LC857">&nbsp;&nbsp;&nbsp;Once a user has joined a channel, he receives information about</div><div class="line" id="LC858">&nbsp;&nbsp;&nbsp;all commands his server receives affecting the channel. This</div><div class="line" id="LC859">&nbsp;&nbsp;&nbsp;includes JOIN, MODE, KICK, PART, QUIT and of course PRIVMSG/NOTICE.</div><div class="line" id="LC860">&nbsp;&nbsp;&nbsp;This allows channel members to keep track of the other channel</div><div class="line" id="LC861">&nbsp;&nbsp;&nbsp;members, as well as channel modes.</div><div class="line" id="LC862">&nbsp;</div><div class="line" id="LC863">&nbsp;&nbsp;&nbsp;If a JOIN is successful, the user receives a JOIN message as</div><div class="line" id="LC864">&nbsp;&nbsp;&nbsp;confirmation and is then sent the channel&#39;s topic (using RPL_TOPIC) and</div><div class="line" id="LC865">&nbsp;&nbsp;&nbsp;the list of users who are on the channel (using RPL_NAMREPLY), which</div><div class="line" id="LC866">&nbsp;&nbsp;&nbsp;MUST include the user joining.</div><div class="line" id="LC867">&nbsp;</div><div class="line" id="LC868">&nbsp;&nbsp;&nbsp;Note that this message accepts a special argument (&quot;0&quot;), which is</div><div class="line" id="LC869">&nbsp;&nbsp;&nbsp;a special request to leave all channels the user is currently a member</div><div class="line" id="LC870">&nbsp;&nbsp;&nbsp;of. The server will process this message as if the user had sent</div><div class="line" id="LC871">&nbsp;&nbsp;&nbsp;a PART command (See Section 3.2.2) for each channel he is a member</div><div class="line" id="LC872">&nbsp;&nbsp;&nbsp;of.</div><div class="line" id="LC873">&nbsp;</div><div class="line" id="LC874">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC875">&nbsp;</div><div class="line" id="LC876">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS ERR_BANNEDFROMCHAN</div><div class="line" id="LC877">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_INVITEONLYCHAN ERR_BADCHANNELKEY</div><div class="line" id="LC878">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_CHANNELISFULL ERR_BADCHANMASK</div><div class="line" id="LC879">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHCHANNEL ERR_TOOMANYCHANNELS</div><div class="line" id="LC880">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_TOOMANYTARGETS ERR_UNAVAILRESOURCE</div><div class="line" id="LC881">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_TOPIC</div><div class="line" id="LC882">&nbsp;</div><div class="line" id="LC883">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC884">&nbsp;</div><div class="line" id="LC885">&nbsp;&nbsp;&nbsp;JOIN #foobar ; Command to join channel #foobar.</div><div class="line" id="LC886">&nbsp;</div><div class="line" id="LC887">&nbsp;&nbsp;&nbsp;JOIN &amp;foo fubar ; Command to join channel &amp;foo using</div><div class="line" id="LC888">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key &quot;fubar&quot;.</div><div class="line" id="LC889">&nbsp;</div><div class="line" id="LC890">&nbsp;</div><div class="line" id="LC891">&nbsp;</div><div class="line" id="LC892">Kalt Informational [Page 16]</div><div class="line" id="LC893">&nbsp;</div><div class="line" id="LC894">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC895">&nbsp;</div><div class="line" id="LC896">&nbsp;</div><div class="line" id="LC897">&nbsp;&nbsp;&nbsp;JOIN #foo,&amp;bar fubar ; Command to join channel #foo using</div><div class="line" id="LC898">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key &quot;fubar&quot; and &amp;bar using no key.</div><div class="line" id="LC899">&nbsp;</div><div class="line" id="LC900">&nbsp;&nbsp;&nbsp;JOIN #foo,#bar fubar,foobar ; Command to join channel #foo using</div><div class="line" id="LC901">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key &quot;fubar&quot;, and channel #bar using</div><div class="line" id="LC902">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key &quot;foobar&quot;.</div><div class="line" id="LC903">&nbsp;</div><div class="line" id="LC904">&nbsp;&nbsp;&nbsp;JOIN #foo,#bar ; Command to join channels #foo and</div><div class="line" id="LC905">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#bar.</div><div class="line" id="LC906">&nbsp;</div><div class="line" id="LC907">&nbsp;&nbsp;&nbsp;JOIN 0 ; Leave all currently joined</div><div class="line" id="LC908">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;channels.</div><div class="line" id="LC909">&nbsp;</div><div class="line" id="LC910">&nbsp;&nbsp;&nbsp;:WiZ!jto@tolsun.oulu.fi JOIN #Twilight_zone ; JOIN message from WiZ</div><div class="line" id="LC911">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on channel #Twilight_zone</div><div class="line" id="LC912">&nbsp;</div><div class="line" id="LC913">3.2.2 Part message</div><div class="line" id="LC914">&nbsp;</div><div class="line" id="LC915">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: PART</div><div class="line" id="LC916">&nbsp;&nbsp;&nbsp;Parameters: &lt;channel&gt; *( &quot;,&quot; &lt;channel&gt; ) [ &lt;Part Message&gt; ]</div><div class="line" id="LC917">&nbsp;</div><div class="line" id="LC918">&nbsp;&nbsp;&nbsp;The PART command causes the user sending the message to be removed</div><div class="line" id="LC919">&nbsp;&nbsp;&nbsp;from the list of active members for all given channels listed in the</div><div class="line" id="LC920">&nbsp;&nbsp;&nbsp;parameter string. If a &quot;Part Message&quot; is given, this will be sent</div><div class="line" id="LC921">&nbsp;&nbsp;&nbsp;instead of the default message, the nickname. This request is always</div><div class="line" id="LC922">&nbsp;&nbsp;&nbsp;granted by the server.</div><div class="line" id="LC923">&nbsp;</div><div class="line" id="LC924">&nbsp;&nbsp;&nbsp;Servers MUST be able to parse arguments in the form of a list of</div><div class="line" id="LC925">&nbsp;&nbsp;&nbsp;target, but SHOULD NOT use lists when sending PART messages to</div><div class="line" id="LC926">&nbsp;&nbsp;&nbsp;clients.</div><div class="line" id="LC927">&nbsp;</div><div class="line" id="LC928">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC929">&nbsp;</div><div class="line" id="LC930">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL</div><div class="line" id="LC931">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOTONCHANNEL</div><div class="line" id="LC932">&nbsp;</div><div class="line" id="LC933">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC934">&nbsp;</div><div class="line" id="LC935">&nbsp;&nbsp;&nbsp;PART #twilight_zone ; Command to leave channel</div><div class="line" id="LC936">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;#twilight_zone&quot;</div><div class="line" id="LC937">&nbsp;</div><div class="line" id="LC938">&nbsp;&nbsp;&nbsp;PART #oz-ops,&amp;group5 ; Command to leave both channels</div><div class="line" id="LC939">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&amp;group5&quot; and &quot;#oz-ops&quot;.</div><div class="line" id="LC940">&nbsp;</div><div class="line" id="LC941">&nbsp;&nbsp;&nbsp;:WiZ!jto@tolsun.oulu.fi PART #playzone :I lost</div><div class="line" id="LC942">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; User WiZ leaving channel</div><div class="line" id="LC943">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;#playzone&quot; with the message &quot;I</div><div class="line" id="LC944">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lost&quot;.</div><div class="line" id="LC945">&nbsp;</div><div class="line" id="LC946">&nbsp;</div><div class="line" id="LC947">&nbsp;</div><div class="line" id="LC948">Kalt Informational [Page 17]</div><div class="line" id="LC949">&nbsp;</div><div class="line" id="LC950">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC951">&nbsp;</div><div class="line" id="LC952">&nbsp;</div><div class="line" id="LC953">3.2.3 Channel mode message</div><div class="line" id="LC954">&nbsp;</div><div class="line" id="LC955">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: MODE</div><div class="line" id="LC956">&nbsp;&nbsp;&nbsp;Parameters: &lt;channel&gt; *( ( &quot;-&quot; / &quot;+&quot; ) *&lt;modes&gt; *&lt;modeparams&gt; )</div><div class="line" id="LC957">&nbsp;</div><div class="line" id="LC958">&nbsp;&nbsp;&nbsp;The MODE command is provided so that users may query and change the</div><div class="line" id="LC959">&nbsp;&nbsp;&nbsp;characteristics of a channel. For more details on available modes</div><div class="line" id="LC960">&nbsp;&nbsp;&nbsp;and their uses, see &quot;Internet Relay Chat: Channel Management&quot; [IRC-</div><div class="line" id="LC961">&nbsp;&nbsp;&nbsp;CHAN]. Note that there is a maximum limit of three (3) changes per</div><div class="line" id="LC962">&nbsp;&nbsp;&nbsp;command for modes that take a parameter.</div><div class="line" id="LC963">&nbsp;</div><div class="line" id="LC964">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC965">&nbsp;</div><div class="line" id="LC966">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS ERR_KEYSET</div><div class="line" id="LC967">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOCHANMODES ERR_CHANOPRIVSNEEDED</div><div class="line" id="LC968">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_USERNOTINCHANNEL ERR_UNKNOWNMODE</div><div class="line" id="LC969">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_CHANNELMODEIS</div><div class="line" id="LC970">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_BANLIST RPL_ENDOFBANLIST</div><div class="line" id="LC971">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_EXCEPTLIST RPL_ENDOFEXCEPTLIST</div><div class="line" id="LC972">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_INVITELIST RPL_ENDOFINVITELIST</div><div class="line" id="LC973">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_UNIQOPIS</div><div class="line" id="LC974">&nbsp;</div><div class="line" id="LC975">&nbsp;&nbsp;&nbsp;The following examples are given to help understanding the syntax of</div><div class="line" id="LC976">&nbsp;&nbsp;&nbsp;the MODE command, but refer to modes defined in &quot;Internet Relay Chat:</div><div class="line" id="LC977">&nbsp;&nbsp;&nbsp;Channel Management&quot; [IRC-CHAN].</div><div class="line" id="LC978">&nbsp;</div><div class="line" id="LC979">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC980">&nbsp;</div><div class="line" id="LC981">&nbsp;&nbsp;&nbsp;MODE #Finnish +imI *!*@*.fi ; Command to make #Finnish channel</div><div class="line" id="LC982">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moderated and &#39;invite-only&#39; with user</div><div class="line" id="LC983">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with a hostname matching *.fi</div><div class="line" id="LC984">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;automatically invited.</div><div class="line" id="LC985">&nbsp;</div><div class="line" id="LC986">&nbsp;&nbsp;&nbsp;MODE #Finnish +o Kilroy ; Command to give &#39;chanop&#39; privileges</div><div class="line" id="LC987">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to Kilroy on channel #Finnish.</div><div class="line" id="LC988">&nbsp;</div><div class="line" id="LC989">&nbsp;&nbsp;&nbsp;MODE #Finnish +v Wiz ; Command to allow WiZ to speak on</div><div class="line" id="LC990">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#Finnish.</div><div class="line" id="LC991">&nbsp;</div><div class="line" id="LC992">&nbsp;&nbsp;&nbsp;MODE #Fins -s ; Command to remove &#39;secret&#39; flag</div><div class="line" id="LC993">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from channel #Fins.</div><div class="line" id="LC994">&nbsp;</div><div class="line" id="LC995">&nbsp;&nbsp;&nbsp;MODE #42 +k oulu ; Command to set the channel key to</div><div class="line" id="LC996">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;oulu&quot;.</div><div class="line" id="LC997">&nbsp;</div><div class="line" id="LC998">&nbsp;&nbsp;&nbsp;MODE #42 -k oulu ; Command to remove the &quot;oulu&quot;</div><div class="line" id="LC999">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;channel key on channel &quot;#42&quot;.</div><div class="line" id="LC1000">&nbsp;</div><div class="line" id="LC1001">&nbsp;</div><div class="line" id="LC1002">&nbsp;</div><div class="line" id="LC1003">&nbsp;</div><div class="line" id="LC1004">Kalt Informational [Page 18]</div><div class="line" id="LC1005">&nbsp;</div><div class="line" id="LC1006">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1007">&nbsp;</div><div class="line" id="LC1008">&nbsp;</div><div class="line" id="LC1009">&nbsp;&nbsp;&nbsp;MODE #eu-opers +l 10 ; Command to set the limit for the</div><div class="line" id="LC1010">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;number of users on channel</div><div class="line" id="LC1011">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;#eu-opers&quot; to 10.</div><div class="line" id="LC1012">&nbsp;</div><div class="line" id="LC1013">&nbsp;&nbsp;&nbsp;:WiZ!jto@tolsun.oulu.fi MODE #eu-opers -l</div><div class="line" id="LC1014">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; User &quot;WiZ&quot; removing the limit for</div><div class="line" id="LC1015">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the number of users on channel &quot;#eu-</div><div class="line" id="LC1016">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opers&quot;.</div><div class="line" id="LC1017">&nbsp;</div><div class="line" id="LC1018">&nbsp;&nbsp;&nbsp;MODE &amp;oulu +b ; Command to list ban masks set for</div><div class="line" id="LC1019">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the channel &quot;&amp;oulu&quot;.</div><div class="line" id="LC1020">&nbsp;</div><div class="line" id="LC1021">&nbsp;&nbsp;&nbsp;MODE &amp;oulu +b *!*@* ; Command to prevent all users from</div><div class="line" id="LC1022">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;joining.</div><div class="line" id="LC1023">&nbsp;</div><div class="line" id="LC1024">&nbsp;&nbsp;&nbsp;MODE &amp;oulu +b *!*@*.edu +e *!*@*.bu.edu</div><div class="line" id="LC1025">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Command to prevent any user from a</div><div class="line" id="LC1026">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hostname matching *.edu from joining,</div><div class="line" id="LC1027">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;except if matching *.bu.edu</div><div class="line" id="LC1028">&nbsp;</div><div class="line" id="LC1029">&nbsp;&nbsp;&nbsp;MODE #bu +be *!*@*.edu *!*@*.bu.edu</div><div class="line" id="LC1030">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Comment to prevent any user from a</div><div class="line" id="LC1031">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hostname matching *.edu from joining,</div><div class="line" id="LC1032">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;except if matching *.bu.edu</div><div class="line" id="LC1033">&nbsp;</div><div class="line" id="LC1034">&nbsp;&nbsp;&nbsp;MODE #meditation e ; Command to list exception masks set</div><div class="line" id="LC1035">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for the channel &quot;#meditation&quot;.</div><div class="line" id="LC1036">&nbsp;</div><div class="line" id="LC1037">&nbsp;&nbsp;&nbsp;MODE #meditation I ; Command to list invitations masks</div><div class="line" id="LC1038">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set for the channel &quot;#meditation&quot;.</div><div class="line" id="LC1039">&nbsp;</div><div class="line" id="LC1040">&nbsp;&nbsp;&nbsp;MODE !12345ircd O ; Command to ask who the channel</div><div class="line" id="LC1041">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;creator for &quot;!12345ircd&quot; is</div><div class="line" id="LC1042">&nbsp;</div><div class="line" id="LC1043">3.2.4 Topic message</div><div class="line" id="LC1044">&nbsp;</div><div class="line" id="LC1045">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: TOPIC</div><div class="line" id="LC1046">&nbsp;&nbsp;&nbsp;Parameters: &lt;channel&gt; [ &lt;topic&gt; ]</div><div class="line" id="LC1047">&nbsp;</div><div class="line" id="LC1048">&nbsp;&nbsp;&nbsp;The TOPIC command is used to change or view the topic of a channel.</div><div class="line" id="LC1049">&nbsp;&nbsp;&nbsp;The topic for channel &lt;channel&gt; is returned if there is no &lt;topic&gt;</div><div class="line" id="LC1050">&nbsp;&nbsp;&nbsp;given. If the &lt;topic&gt; parameter is present, the topic for that</div><div class="line" id="LC1051">&nbsp;&nbsp;&nbsp;channel will be changed, if this action is allowed for the user</div><div class="line" id="LC1052">&nbsp;&nbsp;&nbsp;requesting it. If the &lt;topic&gt; parameter is an empty string, the</div><div class="line" id="LC1053">&nbsp;&nbsp;&nbsp;topic for that channel will be removed.</div><div class="line" id="LC1054">&nbsp;</div><div class="line" id="LC1055">&nbsp;</div><div class="line" id="LC1056">&nbsp;</div><div class="line" id="LC1057">&nbsp;</div><div class="line" id="LC1058">&nbsp;</div><div class="line" id="LC1059">&nbsp;</div><div class="line" id="LC1060">Kalt Informational [Page 19]</div><div class="line" id="LC1061">&nbsp;</div><div class="line" id="LC1062">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1063">&nbsp;</div><div class="line" id="LC1064">&nbsp;</div><div class="line" id="LC1065">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1066">&nbsp;</div><div class="line" id="LC1067">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS ERR_NOTONCHANNEL</div><div class="line" id="LC1068">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_NOTOPIC RPL_TOPIC</div><div class="line" id="LC1069">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_CHANOPRIVSNEEDED ERR_NOCHANMODES</div><div class="line" id="LC1070">&nbsp;</div><div class="line" id="LC1071">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1072">&nbsp;</div><div class="line" id="LC1073">&nbsp;&nbsp;&nbsp;:WiZ!jto@tolsun.oulu.fi TOPIC #test :New topic ; User Wiz setting the</div><div class="line" id="LC1074">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topic.</div><div class="line" id="LC1075">&nbsp;</div><div class="line" id="LC1076">&nbsp;&nbsp;&nbsp;TOPIC #test :another topic ; Command to set the topic on #test</div><div class="line" id="LC1077">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to &quot;another topic&quot;.</div><div class="line" id="LC1078">&nbsp;</div><div class="line" id="LC1079">&nbsp;&nbsp;&nbsp;TOPIC #test : ; Command to clear the topic on</div><div class="line" id="LC1080">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#test.</div><div class="line" id="LC1081">&nbsp;</div><div class="line" id="LC1082">&nbsp;&nbsp;&nbsp;TOPIC #test ; Command to check the topic for</div><div class="line" id="LC1083">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#test.</div><div class="line" id="LC1084">&nbsp;</div><div class="line" id="LC1085">3.2.5 Names message</div><div class="line" id="LC1086">&nbsp;</div><div class="line" id="LC1087">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: NAMES</div><div class="line" id="LC1088">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;channel&gt; *( &quot;,&quot; &lt;channel&gt; ) [ &lt;target&gt; ] ]</div><div class="line" id="LC1089">&nbsp;</div><div class="line" id="LC1090">&nbsp;&nbsp;&nbsp;By using the NAMES command, a user can list all nicknames that are</div><div class="line" id="LC1091">&nbsp;&nbsp;&nbsp;visible to him. For more details on what is visible and what is not,</div><div class="line" id="LC1092">&nbsp;&nbsp;&nbsp;see &quot;Internet Relay Chat: Channel Management&quot; [IRC-CHAN]. The</div><div class="line" id="LC1093">&nbsp;&nbsp;&nbsp;&lt;channel&gt; parameter specifies which channel(s) to return information</div><div class="line" id="LC1094">&nbsp;&nbsp;&nbsp;about. There is no error reply for bad channel names.</div><div class="line" id="LC1095">&nbsp;</div><div class="line" id="LC1096">&nbsp;&nbsp;&nbsp;If no &lt;channel&gt; parameter is given, a list of all channels and their</div><div class="line" id="LC1097">&nbsp;&nbsp;&nbsp;occupants is returned. At the end of this list, a list of users who</div><div class="line" id="LC1098">&nbsp;&nbsp;&nbsp;are visible but either not on any channel or not on a visible channel</div><div class="line" id="LC1099">&nbsp;&nbsp;&nbsp;are listed as being on `channel&#39; &quot;*&quot;.</div><div class="line" id="LC1100">&nbsp;</div><div class="line" id="LC1101">&nbsp;&nbsp;&nbsp;If the &lt;target&gt; parameter is specified, the request is forwarded to</div><div class="line" id="LC1102">&nbsp;&nbsp;&nbsp;that server which will generate the reply.</div><div class="line" id="LC1103">&nbsp;</div><div class="line" id="LC1104">&nbsp;&nbsp;&nbsp;Wildcards are allowed in the &lt;target&gt; parameter.</div><div class="line" id="LC1105">&nbsp;</div><div class="line" id="LC1106">&nbsp;&nbsp;&nbsp;Numerics:</div><div class="line" id="LC1107">&nbsp;</div><div class="line" id="LC1108">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_TOOMANYMATCHES ERR_NOSUCHSERVER</div><div class="line" id="LC1109">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_NAMREPLY RPL_ENDOFNAMES</div><div class="line" id="LC1110">&nbsp;</div><div class="line" id="LC1111">&nbsp;</div><div class="line" id="LC1112">&nbsp;</div><div class="line" id="LC1113">&nbsp;</div><div class="line" id="LC1114">&nbsp;</div><div class="line" id="LC1115">&nbsp;</div><div class="line" id="LC1116">Kalt Informational [Page 20]</div><div class="line" id="LC1117">&nbsp;</div><div class="line" id="LC1118">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1119">&nbsp;</div><div class="line" id="LC1120">&nbsp;</div><div class="line" id="LC1121">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1122">&nbsp;</div><div class="line" id="LC1123">&nbsp;&nbsp;&nbsp;NAMES #twilight_zone,#42 ; Command to list visible users on</div><div class="line" id="LC1124">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#twilight_zone and #42</div><div class="line" id="LC1125">&nbsp;</div><div class="line" id="LC1126">&nbsp;&nbsp;&nbsp;NAMES ; Command to list all visible</div><div class="line" id="LC1127">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;channels and users</div><div class="line" id="LC1128">&nbsp;</div><div class="line" id="LC1129">3.2.6 List message</div><div class="line" id="LC1130">&nbsp;</div><div class="line" id="LC1131">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: LIST</div><div class="line" id="LC1132">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;channel&gt; *( &quot;,&quot; &lt;channel&gt; ) [ &lt;target&gt; ] ]</div><div class="line" id="LC1133">&nbsp;</div><div class="line" id="LC1134">&nbsp;&nbsp;&nbsp;The list command is used to list channels and their topics. If the</div><div class="line" id="LC1135">&nbsp;&nbsp;&nbsp;&lt;channel&gt; parameter is used, only the status of that channel is</div><div class="line" id="LC1136">&nbsp;&nbsp;&nbsp;displayed.</div><div class="line" id="LC1137">&nbsp;</div><div class="line" id="LC1138">&nbsp;&nbsp;&nbsp;If the &lt;target&gt; parameter is specified, the request is forwarded to</div><div class="line" id="LC1139">&nbsp;&nbsp;&nbsp;that server which will generate the reply.</div><div class="line" id="LC1140">&nbsp;</div><div class="line" id="LC1141">&nbsp;&nbsp;&nbsp;Wildcards are allowed in the &lt;target&gt; parameter.</div><div class="line" id="LC1142">&nbsp;</div><div class="line" id="LC1143">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1144">&nbsp;</div><div class="line" id="LC1145">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_TOOMANYMATCHES ERR_NOSUCHSERVER</div><div class="line" id="LC1146">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_LIST RPL_LISTEND</div><div class="line" id="LC1147">&nbsp;</div><div class="line" id="LC1148">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1149">&nbsp;</div><div class="line" id="LC1150">&nbsp;&nbsp;&nbsp;LIST ; Command to list all channels.</div><div class="line" id="LC1151">&nbsp;</div><div class="line" id="LC1152">&nbsp;&nbsp;&nbsp;LIST #twilight_zone,#42 ; Command to list channels</div><div class="line" id="LC1153">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#twilight_zone and #42</div><div class="line" id="LC1154">&nbsp;</div><div class="line" id="LC1155">3.2.7 Invite message</div><div class="line" id="LC1156">&nbsp;</div><div class="line" id="LC1157">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: INVITE</div><div class="line" id="LC1158">&nbsp;&nbsp;&nbsp;Parameters: &lt;nickname&gt; &lt;channel&gt;</div><div class="line" id="LC1159">&nbsp;</div><div class="line" id="LC1160">&nbsp;&nbsp;&nbsp;The INVITE command is used to invite a user to a channel. The</div><div class="line" id="LC1161">&nbsp;&nbsp;&nbsp;parameter &lt;nickname&gt; is the nickname of the person to be invited to</div><div class="line" id="LC1162">&nbsp;&nbsp;&nbsp;the target channel &lt;channel&gt;. There is no requirement that the</div><div class="line" id="LC1163">&nbsp;&nbsp;&nbsp;channel the target user is being invited to must exist or be a valid</div><div class="line" id="LC1164">&nbsp;&nbsp;&nbsp;channel. However, if the channel exists, only members of the channel</div><div class="line" id="LC1165">&nbsp;&nbsp;&nbsp;are allowed to invite other users. When the channel has invite-only</div><div class="line" id="LC1166">&nbsp;&nbsp;&nbsp;flag set, only channel operators may issue INVITE command.</div><div class="line" id="LC1167">&nbsp;</div><div class="line" id="LC1168">&nbsp;</div><div class="line" id="LC1169">&nbsp;</div><div class="line" id="LC1170">&nbsp;</div><div class="line" id="LC1171">&nbsp;</div><div class="line" id="LC1172">Kalt Informational [Page 21]</div><div class="line" id="LC1173">&nbsp;</div><div class="line" id="LC1174">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1175">&nbsp;</div><div class="line" id="LC1176">&nbsp;</div><div class="line" id="LC1177">&nbsp;&nbsp;&nbsp;Only the user inviting and the user being invited will receive</div><div class="line" id="LC1178">&nbsp;&nbsp;&nbsp;notification of the invitation. Other channel members are not</div><div class="line" id="LC1179">&nbsp;&nbsp;&nbsp;notified. (This is unlike the MODE changes, and is occasionally the</div><div class="line" id="LC1180">&nbsp;&nbsp;&nbsp;source of trouble for users.)</div><div class="line" id="LC1181">&nbsp;</div><div class="line" id="LC1182">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1183">&nbsp;</div><div class="line" id="LC1184">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS ERR_NOSUCHNICK</div><div class="line" id="LC1185">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOTONCHANNEL ERR_USERONCHANNEL</div><div class="line" id="LC1186">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_CHANOPRIVSNEEDED</div><div class="line" id="LC1187">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_INVITING RPL_AWAY</div><div class="line" id="LC1188">&nbsp;</div><div class="line" id="LC1189">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1190">&nbsp;</div><div class="line" id="LC1191">&nbsp;&nbsp;&nbsp;:Angel!wings@irc.org INVITE Wiz #Dust</div><div class="line" id="LC1192">&nbsp;</div><div class="line" id="LC1193">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Message to WiZ when he has been</div><div class="line" id="LC1194">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;invited by user Angel to channel</div><div class="line" id="LC1195">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#Dust</div><div class="line" id="LC1196">&nbsp;</div><div class="line" id="LC1197">&nbsp;&nbsp;&nbsp;INVITE Wiz #Twilight_Zone ; Command to invite WiZ to</div><div class="line" id="LC1198">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#Twilight_zone</div><div class="line" id="LC1199">&nbsp;</div><div class="line" id="LC1200">3.2.8 Kick command</div><div class="line" id="LC1201">&nbsp;</div><div class="line" id="LC1202">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: KICK</div><div class="line" id="LC1203">&nbsp;&nbsp;&nbsp;Parameters: &lt;channel&gt; *( &quot;,&quot; &lt;channel&gt; ) &lt;user&gt; *( &quot;,&quot; &lt;user&gt; )</div><div class="line" id="LC1204">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&lt;comment&gt;]</div><div class="line" id="LC1205">&nbsp;</div><div class="line" id="LC1206">&nbsp;&nbsp;&nbsp;The KICK command can be used to request the forced removal of a user</div><div class="line" id="LC1207">&nbsp;&nbsp;&nbsp;from a channel. It causes the &lt;user&gt; to PART from the &lt;channel&gt; by</div><div class="line" id="LC1208">&nbsp;&nbsp;&nbsp;force. For the message to be syntactically correct, there MUST be</div><div class="line" id="LC1209">&nbsp;&nbsp;&nbsp;either one channel parameter and multiple user parameter, or as many</div><div class="line" id="LC1210">&nbsp;&nbsp;&nbsp;channel parameters as there are user parameters. If a &quot;comment&quot; is</div><div class="line" id="LC1211">&nbsp;&nbsp;&nbsp;given, this will be sent instead of the default message, the nickname</div><div class="line" id="LC1212">&nbsp;&nbsp;&nbsp;of the user issuing the KICK.</div><div class="line" id="LC1213">&nbsp;</div><div class="line" id="LC1214">&nbsp;&nbsp;&nbsp;The server MUST NOT send KICK messages with multiple channels or</div><div class="line" id="LC1215">&nbsp;&nbsp;&nbsp;users to clients. This is necessarily to maintain backward</div><div class="line" id="LC1216">&nbsp;&nbsp;&nbsp;compatibility with old client software.</div><div class="line" id="LC1217">&nbsp;</div><div class="line" id="LC1218">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1219">&nbsp;</div><div class="line" id="LC1220">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL</div><div class="line" id="LC1221">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_BADCHANMASK ERR_CHANOPRIVSNEEDED</div><div class="line" id="LC1222">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_USERNOTINCHANNEL ERR_NOTONCHANNEL</div><div class="line" id="LC1223">&nbsp;</div><div class="line" id="LC1224">&nbsp;</div><div class="line" id="LC1225">&nbsp;</div><div class="line" id="LC1226">&nbsp;</div><div class="line" id="LC1227">&nbsp;</div><div class="line" id="LC1228">Kalt Informational [Page 22]</div><div class="line" id="LC1229">&nbsp;</div><div class="line" id="LC1230">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1231">&nbsp;</div><div class="line" id="LC1232">&nbsp;</div><div class="line" id="LC1233">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1234">&nbsp;</div><div class="line" id="LC1235">&nbsp;&nbsp;&nbsp;KICK &amp;Melbourne Matthew ; Command to kick Matthew from</div><div class="line" id="LC1236">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;Melbourne</div><div class="line" id="LC1237">&nbsp;</div><div class="line" id="LC1238">&nbsp;&nbsp;&nbsp;KICK #Finnish John :Speaking English</div><div class="line" id="LC1239">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Command to kick John from #Finnish</div><div class="line" id="LC1240">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using &quot;Speaking English&quot; as the</div><div class="line" id="LC1241">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reason (comment).</div><div class="line" id="LC1242">&nbsp;</div><div class="line" id="LC1243">&nbsp;&nbsp;&nbsp;:WiZ!jto@tolsun.oulu.fi KICK #Finnish John</div><div class="line" id="LC1244">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; KICK message on channel #Finnish</div><div class="line" id="LC1245">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from WiZ to remove John from channel</div><div class="line" id="LC1246">&nbsp;</div><div class="line" id="LC1247">3.3 Sending messages</div><div class="line" id="LC1248">&nbsp;</div><div class="line" id="LC1249">&nbsp;&nbsp;&nbsp;The main purpose of the IRC protocol is to provide a base for clients</div><div class="line" id="LC1250">&nbsp;&nbsp;&nbsp;to communicate with each other. PRIVMSG, NOTICE and SQUERY</div><div class="line" id="LC1251">&nbsp;&nbsp;&nbsp;(described in Section 3.5 on Service Query and Commands) are the only</div><div class="line" id="LC1252">&nbsp;&nbsp;&nbsp;messages available which actually perform delivery of a text message</div><div class="line" id="LC1253">&nbsp;&nbsp;&nbsp;from one client to another - the rest just make it possible and try</div><div class="line" id="LC1254">&nbsp;&nbsp;&nbsp;to ensure it happens in a reliable and structured manner.</div><div class="line" id="LC1255">&nbsp;</div><div class="line" id="LC1256">3.3.1 Private messages</div><div class="line" id="LC1257">&nbsp;</div><div class="line" id="LC1258">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: PRIVMSG</div><div class="line" id="LC1259">&nbsp;&nbsp;&nbsp;Parameters: &lt;msgtarget&gt; &lt;text to be sent&gt;</div><div class="line" id="LC1260">&nbsp;</div><div class="line" id="LC1261">&nbsp;&nbsp;&nbsp;PRIVMSG is used to send private messages between users, as well as to</div><div class="line" id="LC1262">&nbsp;&nbsp;&nbsp;send messages to channels. &lt;msgtarget&gt; is usually the nickname of</div><div class="line" id="LC1263">&nbsp;&nbsp;&nbsp;the recipient of the message, or a channel name.</div><div class="line" id="LC1264">&nbsp;</div><div class="line" id="LC1265">&nbsp;&nbsp;&nbsp;The &lt;msgtarget&gt; parameter may also be a host mask (#&lt;mask&gt;) or server</div><div class="line" id="LC1266">&nbsp;&nbsp;&nbsp;mask ($&lt;mask&gt;). In both cases the server will only send the PRIVMSG</div><div class="line" id="LC1267">&nbsp;&nbsp;&nbsp;to those who have a server or host matching the mask. The mask MUST</div><div class="line" id="LC1268">&nbsp;&nbsp;&nbsp;have at least 1 (one) &quot;.&quot; in it and no wildcards following the last</div><div class="line" id="LC1269">&nbsp;&nbsp;&nbsp;&quot;.&quot;. This requirement exists to prevent people sending messages to</div><div class="line" id="LC1270">&nbsp;&nbsp;&nbsp;&quot;#*&quot; or &quot;$*&quot;, which would broadcast to all users. Wildcards are the</div><div class="line" id="LC1271">&nbsp;&nbsp;&nbsp;&#39;*&#39; and &#39;?&#39; characters. This extension to the PRIVMSG command is</div><div class="line" id="LC1272">&nbsp;&nbsp;&nbsp;only available to operators.</div><div class="line" id="LC1273">&nbsp;</div><div class="line" id="LC1274">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1275">&nbsp;</div><div class="line" id="LC1276">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NORECIPIENT ERR_NOTEXTTOSEND</div><div class="line" id="LC1277">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_CANNOTSENDTOCHAN ERR_NOTOPLEVEL</div><div class="line" id="LC1278">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_WILDTOPLEVEL ERR_TOOMANYTARGETS</div><div class="line" id="LC1279">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHNICK</div><div class="line" id="LC1280">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_AWAY</div><div class="line" id="LC1281">&nbsp;</div><div class="line" id="LC1282">&nbsp;</div><div class="line" id="LC1283">&nbsp;</div><div class="line" id="LC1284">Kalt Informational [Page 23]</div><div class="line" id="LC1285">&nbsp;</div><div class="line" id="LC1286">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1287">&nbsp;</div><div class="line" id="LC1288">&nbsp;</div><div class="line" id="LC1289">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1290">&nbsp;</div><div class="line" id="LC1291">&nbsp;&nbsp;&nbsp;:Angel!wings@irc.org PRIVMSG Wiz :Are you receiving this message ?</div><div class="line" id="LC1292">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Message from Angel to Wiz.</div><div class="line" id="LC1293">&nbsp;</div><div class="line" id="LC1294">&nbsp;&nbsp;&nbsp;PRIVMSG Angel :yes I&#39;m receiving it !</div><div class="line" id="LC1295">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Command to send a message to Angel.</div><div class="line" id="LC1296">&nbsp;</div><div class="line" id="LC1297">&nbsp;&nbsp;&nbsp;PRIVMSG jto@tolsun.oulu.fi :Hello !</div><div class="line" id="LC1298">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Command to send a message to a user</div><div class="line" id="LC1299">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on server tolsun.oulu.fi with</div><div class="line" id="LC1300">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username of &quot;jto&quot;.</div><div class="line" id="LC1301">&nbsp;</div><div class="line" id="LC1302">&nbsp;&nbsp;&nbsp;PRIVMSG kalt%millennium.stealth.net@irc.stealth.net :Are you a frog?</div><div class="line" id="LC1303">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Message to a user on server</div><div class="line" id="LC1304">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;irc.stealth.net with username of</div><div class="line" id="LC1305">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;kalt&quot;, and connected from the host</div><div class="line" id="LC1306">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;millennium.stealth.net.</div><div class="line" id="LC1307">&nbsp;</div><div class="line" id="LC1308">&nbsp;&nbsp;&nbsp;PRIVMSG kalt%millennium.stealth.net :Do you like cheese?</div><div class="line" id="LC1309">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Message to a user on the local</div><div class="line" id="LC1310">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server with username of &quot;kalt&quot;, and</div><div class="line" id="LC1311">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connected from the host</div><div class="line" id="LC1312">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;millennium.stealth.net.</div><div class="line" id="LC1313">&nbsp;</div><div class="line" id="LC1314">&nbsp;&nbsp;&nbsp;PRIVMSG Wiz!jto@tolsun.oulu.fi :Hello !</div><div class="line" id="LC1315">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Message to the user with nickname</div><div class="line" id="LC1316">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wiz who is connected from the host</div><div class="line" id="LC1317">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tolsun.oulu.fi and has the username</div><div class="line" id="LC1318">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;jto&quot;.</div><div class="line" id="LC1319">&nbsp;</div><div class="line" id="LC1320">&nbsp;&nbsp;&nbsp;PRIVMSG $*.fi :Server tolsun.oulu.fi rebooting.</div><div class="line" id="LC1321">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Message to everyone on a server</div><div class="line" id="LC1322">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;which has a name matching *.fi.</div><div class="line" id="LC1323">&nbsp;</div><div class="line" id="LC1324">&nbsp;&nbsp;&nbsp;PRIVMSG #*.edu :NSFNet is undergoing work, expect interruptions</div><div class="line" id="LC1325">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Message to all users who come from</div><div class="line" id="LC1326">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a host which has a name matching</div><div class="line" id="LC1327">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*.edu.</div><div class="line" id="LC1328">&nbsp;</div><div class="line" id="LC1329">3.3.2 Notice</div><div class="line" id="LC1330">&nbsp;</div><div class="line" id="LC1331">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: NOTICE</div><div class="line" id="LC1332">&nbsp;&nbsp;&nbsp;Parameters: &lt;msgtarget&gt; &lt;text&gt;</div><div class="line" id="LC1333">&nbsp;</div><div class="line" id="LC1334">&nbsp;&nbsp;&nbsp;The NOTICE command is used similarly to PRIVMSG. The difference</div><div class="line" id="LC1335">&nbsp;&nbsp;&nbsp;between NOTICE and PRIVMSG is that automatic replies MUST NEVER be</div><div class="line" id="LC1336">&nbsp;&nbsp;&nbsp;sent in response to a NOTICE message. This rule applies to servers</div><div class="line" id="LC1337">&nbsp;</div><div class="line" id="LC1338">&nbsp;</div><div class="line" id="LC1339">&nbsp;</div><div class="line" id="LC1340">Kalt Informational [Page 24]</div><div class="line" id="LC1341">&nbsp;</div><div class="line" id="LC1342">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1343">&nbsp;</div><div class="line" id="LC1344">&nbsp;</div><div class="line" id="LC1345">&nbsp;&nbsp;&nbsp;too - they MUST NOT send any error reply back to the client on</div><div class="line" id="LC1346">&nbsp;&nbsp;&nbsp;receipt of a notice. The object of this rule is to avoid loops</div><div class="line" id="LC1347">&nbsp;&nbsp;&nbsp;between clients automatically sending something in response to</div><div class="line" id="LC1348">&nbsp;&nbsp;&nbsp;something it received.</div><div class="line" id="LC1349">&nbsp;</div><div class="line" id="LC1350">&nbsp;&nbsp;&nbsp;This command is available to services as well as users.</div><div class="line" id="LC1351">&nbsp;</div><div class="line" id="LC1352">&nbsp;&nbsp;&nbsp;This is typically used by services, and automatons (clients with</div><div class="line" id="LC1353">&nbsp;&nbsp;&nbsp;either an AI or other interactive program controlling their actions).</div><div class="line" id="LC1354">&nbsp;</div><div class="line" id="LC1355">&nbsp;&nbsp;&nbsp;See PRIVMSG for more details on replies and examples.</div><div class="line" id="LC1356">&nbsp;</div><div class="line" id="LC1357">3.4 Server queries and commands</div><div class="line" id="LC1358">&nbsp;</div><div class="line" id="LC1359">&nbsp;&nbsp;&nbsp;The server query group of commands has been designed to return</div><div class="line" id="LC1360">&nbsp;&nbsp;&nbsp;information about any server which is connected to the network.</div><div class="line" id="LC1361">&nbsp;</div><div class="line" id="LC1362">&nbsp;&nbsp;&nbsp;In these queries, where a parameter appears as &lt;target&gt;, wildcard</div><div class="line" id="LC1363">&nbsp;&nbsp;&nbsp;masks are usually valid. For each parameter, however, only one query</div><div class="line" id="LC1364">&nbsp;&nbsp;&nbsp;and set of replies is to be generated. In most cases, if a nickname</div><div class="line" id="LC1365">&nbsp;&nbsp;&nbsp;is given, it will mean the server to which the user is connected.</div><div class="line" id="LC1366">&nbsp;</div><div class="line" id="LC1367">&nbsp;&nbsp;&nbsp;These messages typically have little value for services, it is</div><div class="line" id="LC1368">&nbsp;&nbsp;&nbsp;therefore RECOMMENDED to forbid services from using them.</div><div class="line" id="LC1369">&nbsp;</div><div class="line" id="LC1370">3.4.1 Motd message</div><div class="line" id="LC1371">&nbsp;</div><div class="line" id="LC1372">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: MOTD</div><div class="line" id="LC1373">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;target&gt; ]</div><div class="line" id="LC1374">&nbsp;</div><div class="line" id="LC1375">&nbsp;&nbsp;&nbsp;The MOTD command is used to get the &quot;Message Of The Day&quot; of the given</div><div class="line" id="LC1376">&nbsp;&nbsp;&nbsp;server, or current server if &lt;target&gt; is omitted.</div><div class="line" id="LC1377">&nbsp;</div><div class="line" id="LC1378">&nbsp;&nbsp;&nbsp;Wildcards are allowed in the &lt;target&gt; parameter.</div><div class="line" id="LC1379">&nbsp;</div><div class="line" id="LC1380">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1381">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_MOTDSTART RPL_MOTD</div><div class="line" id="LC1382">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_ENDOFMOTD ERR_NOMOTD</div><div class="line" id="LC1383">&nbsp;</div><div class="line" id="LC1384">3.4.2 Lusers message</div><div class="line" id="LC1385">&nbsp;</div><div class="line" id="LC1386">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: LUSERS</div><div class="line" id="LC1387">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;mask&gt; [ &lt;target&gt; ] ]</div><div class="line" id="LC1388">&nbsp;</div><div class="line" id="LC1389">&nbsp;&nbsp;&nbsp;The LUSERS command is used to get statistics about the size of the</div><div class="line" id="LC1390">&nbsp;&nbsp;&nbsp;IRC network. If no parameter is given, the reply will be about the</div><div class="line" id="LC1391">&nbsp;&nbsp;&nbsp;whole net. If a &lt;mask&gt; is specified, then the reply will only</div><div class="line" id="LC1392">&nbsp;</div><div class="line" id="LC1393">&nbsp;</div><div class="line" id="LC1394">&nbsp;</div><div class="line" id="LC1395">&nbsp;</div><div class="line" id="LC1396">Kalt Informational [Page 25]</div><div class="line" id="LC1397">&nbsp;</div><div class="line" id="LC1398">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1399">&nbsp;</div><div class="line" id="LC1400">&nbsp;</div><div class="line" id="LC1401">&nbsp;&nbsp;&nbsp;concern the part of the network formed by the servers matching the</div><div class="line" id="LC1402">&nbsp;&nbsp;&nbsp;mask. Finally, if the &lt;target&gt; parameter is specified, the request</div><div class="line" id="LC1403">&nbsp;&nbsp;&nbsp;is forwarded to that server which will generate the reply.</div><div class="line" id="LC1404">&nbsp;</div><div class="line" id="LC1405">&nbsp;&nbsp;&nbsp;Wildcards are allowed in the &lt;target&gt; parameter.</div><div class="line" id="LC1406">&nbsp;</div><div class="line" id="LC1407">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1408">&nbsp;</div><div class="line" id="LC1409">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_LUSERCLIENT RPL_LUSEROP</div><div class="line" id="LC1410">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_LUSERUNKOWN RPL_LUSERCHANNELS</div><div class="line" id="LC1411">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_LUSERME ERR_NOSUCHSERVER</div><div class="line" id="LC1412">&nbsp;</div><div class="line" id="LC1413">3.4.3 Version message</div><div class="line" id="LC1414">&nbsp;</div><div class="line" id="LC1415">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: VERSION</div><div class="line" id="LC1416">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;target&gt; ]</div><div class="line" id="LC1417">&nbsp;</div><div class="line" id="LC1418">&nbsp;&nbsp;&nbsp;The VERSION command is used to query the version of the server</div><div class="line" id="LC1419">&nbsp;&nbsp;&nbsp;program. An optional parameter &lt;target&gt; is used to query the version</div><div class="line" id="LC1420">&nbsp;&nbsp;&nbsp;of the server program which a client is not directly connected to.</div><div class="line" id="LC1421">&nbsp;</div><div class="line" id="LC1422">&nbsp;&nbsp;&nbsp;Wildcards are allowed in the &lt;target&gt; parameter.</div><div class="line" id="LC1423">&nbsp;</div><div class="line" id="LC1424">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1425">&nbsp;</div><div class="line" id="LC1426">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHSERVER RPL_VERSION</div><div class="line" id="LC1427">&nbsp;</div><div class="line" id="LC1428">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1429">&nbsp;</div><div class="line" id="LC1430">&nbsp;&nbsp;&nbsp;VERSION tolsun.oulu.fi ; Command to check the version of</div><div class="line" id="LC1431">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server &quot;tolsun.oulu.fi&quot;.</div><div class="line" id="LC1432">&nbsp;</div><div class="line" id="LC1433">3.4.4 Stats message</div><div class="line" id="LC1434">&nbsp;</div><div class="line" id="LC1435">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: STATS</div><div class="line" id="LC1436">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;query&gt; [ &lt;target&gt; ] ]</div><div class="line" id="LC1437">&nbsp;</div><div class="line" id="LC1438">&nbsp;&nbsp;&nbsp;The stats command is used to query statistics of certain server. If</div><div class="line" id="LC1439">&nbsp;&nbsp;&nbsp;&lt;query&gt; parameter is omitted, only the end of stats reply is sent</div><div class="line" id="LC1440">&nbsp;&nbsp;&nbsp;back.</div><div class="line" id="LC1441">&nbsp;</div><div class="line" id="LC1442">&nbsp;&nbsp;&nbsp;A query may be given for any single letter which is only checked by</div><div class="line" id="LC1443">&nbsp;&nbsp;&nbsp;the destination server and is otherwise passed on by intermediate</div><div class="line" id="LC1444">&nbsp;&nbsp;&nbsp;servers, ignored and unaltered.</div><div class="line" id="LC1445">&nbsp;</div><div class="line" id="LC1446">&nbsp;&nbsp;&nbsp;Wildcards are allowed in the &lt;target&gt; parameter.</div><div class="line" id="LC1447">&nbsp;</div><div class="line" id="LC1448">&nbsp;</div><div class="line" id="LC1449">&nbsp;</div><div class="line" id="LC1450">&nbsp;</div><div class="line" id="LC1451">&nbsp;</div><div class="line" id="LC1452">Kalt Informational [Page 26]</div><div class="line" id="LC1453">&nbsp;</div><div class="line" id="LC1454">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1455">&nbsp;</div><div class="line" id="LC1456">&nbsp;</div><div class="line" id="LC1457">&nbsp;&nbsp;&nbsp;Except for the ones below, the list of valid queries is</div><div class="line" id="LC1458">&nbsp;&nbsp;&nbsp;implementation dependent. The standard queries below SHOULD be</div><div class="line" id="LC1459">&nbsp;&nbsp;&nbsp;supported by the server:</div><div class="line" id="LC1460">&nbsp;</div><div class="line" id="LC1461">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l - returns a list of the server&#39;s connections, showing how</div><div class="line" id="LC1462">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long each connection has been established and the</div><div class="line" id="LC1463">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;traffic over that connection in Kbytes and messages for</div><div class="line" id="LC1464">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;each direction;</div><div class="line" id="LC1465">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m - returns the usage count for each of commands supported</div><div class="line" id="LC1466">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;by the server; commands for which the usage count is</div><div class="line" id="LC1467">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zero MAY be omitted;</div><div class="line" id="LC1468">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o - returns a list of configured privileged users,</div><div class="line" id="LC1469">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operators;</div><div class="line" id="LC1470">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;u - returns a string showing how long the server has been</div><div class="line" id="LC1471">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;up.</div><div class="line" id="LC1472">&nbsp;</div><div class="line" id="LC1473">&nbsp;&nbsp;&nbsp;It is also RECOMMENDED that client and server access configuration be</div><div class="line" id="LC1474">&nbsp;&nbsp;&nbsp;published this way.</div><div class="line" id="LC1475">&nbsp;</div><div class="line" id="LC1476">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1477">&nbsp;</div><div class="line" id="LC1478">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHSERVER</div><div class="line" id="LC1479">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_STATSLINKINFO RPL_STATSUPTIME</div><div class="line" id="LC1480">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_STATSCOMMANDS RPL_STATSOLINE</div><div class="line" id="LC1481">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_ENDOFSTATS</div><div class="line" id="LC1482">&nbsp;</div><div class="line" id="LC1483">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1484">&nbsp;</div><div class="line" id="LC1485">&nbsp;&nbsp;&nbsp;STATS m ; Command to check the command usage</div><div class="line" id="LC1486">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for the server you are connected to</div><div class="line" id="LC1487">&nbsp;</div><div class="line" id="LC1488">3.4.5 Links message</div><div class="line" id="LC1489">&nbsp;</div><div class="line" id="LC1490">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: LINKS</div><div class="line" id="LC1491">&nbsp;&nbsp;&nbsp;Parameters: [ [ &lt;remote server&gt; ] &lt;server mask&gt; ]</div><div class="line" id="LC1492">&nbsp;</div><div class="line" id="LC1493">&nbsp;&nbsp;&nbsp;With LINKS, a user can list all servernames, which are known by the</div><div class="line" id="LC1494">&nbsp;&nbsp;&nbsp;server answering the query. The returned list of servers MUST match</div><div class="line" id="LC1495">&nbsp;&nbsp;&nbsp;the mask, or if no mask is given, the full list is returned.</div><div class="line" id="LC1496">&nbsp;</div><div class="line" id="LC1497">&nbsp;&nbsp;&nbsp;If &lt;remote server&gt; is given in addition to &lt;server mask&gt;, the LINKS</div><div class="line" id="LC1498">&nbsp;&nbsp;&nbsp;command is forwarded to the first server found that matches that name</div><div class="line" id="LC1499">&nbsp;&nbsp;&nbsp;(if any), and that server is then required to answer the query.</div><div class="line" id="LC1500">&nbsp;</div><div class="line" id="LC1501">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1502">&nbsp;</div><div class="line" id="LC1503">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHSERVER</div><div class="line" id="LC1504">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_LINKS RPL_ENDOFLINKS</div><div class="line" id="LC1505">&nbsp;</div><div class="line" id="LC1506">&nbsp;</div><div class="line" id="LC1507">&nbsp;</div><div class="line" id="LC1508">Kalt Informational [Page 27]</div><div class="line" id="LC1509">&nbsp;</div><div class="line" id="LC1510">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1511">&nbsp;</div><div class="line" id="LC1512">&nbsp;</div><div class="line" id="LC1513">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1514">&nbsp;</div><div class="line" id="LC1515">&nbsp;&nbsp;&nbsp;LINKS *.au ; Command to list all servers which</div><div class="line" id="LC1516">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;have a name that matches *.au;</div><div class="line" id="LC1517">&nbsp;</div><div class="line" id="LC1518">&nbsp;&nbsp;&nbsp;LINKS *.edu *.bu.edu ; Command to list servers matching</div><div class="line" id="LC1519">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*.bu.edu as seen by the first server</div><div class="line" id="LC1520">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;matching *.edu.</div><div class="line" id="LC1521">&nbsp;</div><div class="line" id="LC1522">3.4.6 Time message</div><div class="line" id="LC1523">&nbsp;</div><div class="line" id="LC1524">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: TIME</div><div class="line" id="LC1525">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;target&gt; ]</div><div class="line" id="LC1526">&nbsp;</div><div class="line" id="LC1527">&nbsp;&nbsp;&nbsp;The time command is used to query local time from the specified</div><div class="line" id="LC1528">&nbsp;&nbsp;&nbsp;server. If the &lt;target&gt; parameter is not given, the server receiving</div><div class="line" id="LC1529">&nbsp;&nbsp;&nbsp;the command must reply to the query.</div><div class="line" id="LC1530">&nbsp;</div><div class="line" id="LC1531">&nbsp;&nbsp;&nbsp;Wildcards are allowed in the &lt;target&gt; parameter.</div><div class="line" id="LC1532">&nbsp;</div><div class="line" id="LC1533">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1534">&nbsp;</div><div class="line" id="LC1535">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHSERVER RPL_TIME</div><div class="line" id="LC1536">&nbsp;</div><div class="line" id="LC1537">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1538">&nbsp;&nbsp;&nbsp;TIME tolsun.oulu.fi ; check the time on the server</div><div class="line" id="LC1539">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;tolson.oulu.fi&quot;</div><div class="line" id="LC1540">&nbsp;</div><div class="line" id="LC1541">3.4.7 Connect message</div><div class="line" id="LC1542">&nbsp;</div><div class="line" id="LC1543">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: CONNECT</div><div class="line" id="LC1544">&nbsp;&nbsp;&nbsp;Parameters: &lt;target server&gt; &lt;port&gt; [ &lt;remote server&gt; ]</div><div class="line" id="LC1545">&nbsp;</div><div class="line" id="LC1546">&nbsp;&nbsp;&nbsp;The CONNECT command can be used to request a server to try to</div><div class="line" id="LC1547">&nbsp;&nbsp;&nbsp;establish a new connection to another server immediately. CONNECT is</div><div class="line" id="LC1548">&nbsp;&nbsp;&nbsp;a privileged command and SHOULD be available only to IRC Operators.</div><div class="line" id="LC1549">&nbsp;&nbsp;&nbsp;If a &lt;remote server&gt; is given and its mask doesn&#39;t match name of the</div><div class="line" id="LC1550">&nbsp;&nbsp;&nbsp;parsing server, the CONNECT attempt is sent to the first match of</div><div class="line" id="LC1551">&nbsp;&nbsp;&nbsp;remote server. Otherwise the CONNECT attempt is made by the server</div><div class="line" id="LC1552">&nbsp;&nbsp;&nbsp;processing the request.</div><div class="line" id="LC1553">&nbsp;</div><div class="line" id="LC1554">&nbsp;&nbsp;&nbsp;The server receiving a remote CONNECT command SHOULD generate a</div><div class="line" id="LC1555">&nbsp;&nbsp;&nbsp;WALLOPS message describing the source and target of the request.</div><div class="line" id="LC1556">&nbsp;</div><div class="line" id="LC1557">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1558">&nbsp;</div><div class="line" id="LC1559">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHSERVER ERR_NOPRIVILEGES</div><div class="line" id="LC1560">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS</div><div class="line" id="LC1561">&nbsp;</div><div class="line" id="LC1562">&nbsp;</div><div class="line" id="LC1563">&nbsp;</div><div class="line" id="LC1564">Kalt Informational [Page 28]</div><div class="line" id="LC1565">&nbsp;</div><div class="line" id="LC1566">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1567">&nbsp;</div><div class="line" id="LC1568">&nbsp;</div><div class="line" id="LC1569">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1570">&nbsp;</div><div class="line" id="LC1571">&nbsp;&nbsp;&nbsp;CONNECT tolsun.oulu.fi 6667 ; Command to attempt to connect local</div><div class="line" id="LC1572">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server to tolsun.oulu.fi on port 6667</div><div class="line" id="LC1573">&nbsp;</div><div class="line" id="LC1574">3.4.8 Trace message</div><div class="line" id="LC1575">&nbsp;</div><div class="line" id="LC1576">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: TRACE</div><div class="line" id="LC1577">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;target&gt; ]</div><div class="line" id="LC1578">&nbsp;</div><div class="line" id="LC1579">&nbsp;&nbsp;&nbsp;TRACE command is used to find the route to specific server and</div><div class="line" id="LC1580">&nbsp;&nbsp;&nbsp;information about its peers. Each server that processes this command</div><div class="line" id="LC1581">&nbsp;&nbsp;&nbsp;MUST report to the sender about it. The replies from pass-through</div><div class="line" id="LC1582">&nbsp;&nbsp;&nbsp;links form a chain, which shows route to destination. After sending</div><div class="line" id="LC1583">&nbsp;&nbsp;&nbsp;this reply back, the query MUST be sent to the next server until</div><div class="line" id="LC1584">&nbsp;&nbsp;&nbsp;given &lt;target&gt; server is reached.</div><div class="line" id="LC1585">&nbsp;</div><div class="line" id="LC1586">&nbsp;&nbsp;&nbsp;TRACE command is used to find the route to specific server. Each</div><div class="line" id="LC1587">&nbsp;&nbsp;&nbsp;server that processes this message MUST tell the sender about it by</div><div class="line" id="LC1588">&nbsp;&nbsp;&nbsp;sending a reply indicating it is a pass-through link, forming a chain</div><div class="line" id="LC1589">&nbsp;&nbsp;&nbsp;of replies. After sending this reply back, it MUST then send the</div><div class="line" id="LC1590">&nbsp;&nbsp;&nbsp;TRACE message to the next server until given server is reached. If</div><div class="line" id="LC1591">&nbsp;&nbsp;&nbsp;the &lt;target&gt; parameter is omitted, it is RECOMMENDED that TRACE</div><div class="line" id="LC1592">&nbsp;&nbsp;&nbsp;command sends a message to the sender telling which servers the local</div><div class="line" id="LC1593">&nbsp;&nbsp;&nbsp;server has direct connection to.</div><div class="line" id="LC1594">&nbsp;</div><div class="line" id="LC1595">&nbsp;&nbsp;&nbsp;If the destination given by &lt;target&gt; is an actual server, the</div><div class="line" id="LC1596">&nbsp;&nbsp;&nbsp;destination server is REQUIRED to report all servers, services and</div><div class="line" id="LC1597">&nbsp;&nbsp;&nbsp;operators which are connected to it; if the command was issued by an</div><div class="line" id="LC1598">&nbsp;&nbsp;&nbsp;operator, the server MAY also report all users which are connected to</div><div class="line" id="LC1599">&nbsp;&nbsp;&nbsp;it. If the destination given by &lt;target&gt; is a nickname, then only a</div><div class="line" id="LC1600">&nbsp;&nbsp;&nbsp;reply for that nickname is given. If the &lt;target&gt; parameter is</div><div class="line" id="LC1601">&nbsp;&nbsp;&nbsp;omitted, it is RECOMMENDED that the TRACE command is parsed as</div><div class="line" id="LC1602">&nbsp;&nbsp;&nbsp;targeted to the processing server.</div><div class="line" id="LC1603">&nbsp;</div><div class="line" id="LC1604">&nbsp;&nbsp;&nbsp;Wildcards are allowed in the &lt;target&gt; parameter.</div><div class="line" id="LC1605">&nbsp;</div><div class="line" id="LC1606">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1607">&nbsp;</div><div class="line" id="LC1608">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHSERVER</div><div class="line" id="LC1609">&nbsp;</div><div class="line" id="LC1610">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the TRACE message is destined for another server, all</div><div class="line" id="LC1611">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intermediate servers must return a RPL_TRACELINK reply to indicate</div><div class="line" id="LC1612">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that the TRACE passed through it and where it is going next.</div><div class="line" id="LC1613">&nbsp;</div><div class="line" id="LC1614">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_TRACELINK</div><div class="line" id="LC1615">&nbsp;</div><div class="line" id="LC1616">&nbsp;</div><div class="line" id="LC1617">&nbsp;</div><div class="line" id="LC1618">&nbsp;</div><div class="line" id="LC1619">&nbsp;</div><div class="line" id="LC1620">Kalt Informational [Page 29]</div><div class="line" id="LC1621">&nbsp;</div><div class="line" id="LC1622">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1623">&nbsp;</div><div class="line" id="LC1624">&nbsp;</div><div class="line" id="LC1625">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A TRACE reply may be composed of any number of the following</div><div class="line" id="LC1626">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numeric replies.</div><div class="line" id="LC1627">&nbsp;</div><div class="line" id="LC1628">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_TRACECONNECTING RPL_TRACEHANDSHAKE</div><div class="line" id="LC1629">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_TRACEUNKNOWN RPL_TRACEOPERATOR</div><div class="line" id="LC1630">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_TRACEUSER RPL_TRACESERVER</div><div class="line" id="LC1631">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_TRACESERVICE RPL_TRACENEWTYPE</div><div class="line" id="LC1632">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_TRACECLASS RPL_TRACELOG</div><div class="line" id="LC1633">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_TRACEEND</div><div class="line" id="LC1634">&nbsp;</div><div class="line" id="LC1635">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1636">&nbsp;</div><div class="line" id="LC1637">&nbsp;&nbsp;&nbsp;TRACE *.oulu.fi ; TRACE to a server matching</div><div class="line" id="LC1638">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*.oulu.fi</div><div class="line" id="LC1639">&nbsp;</div><div class="line" id="LC1640">3.4.9 Admin command</div><div class="line" id="LC1641">&nbsp;</div><div class="line" id="LC1642">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: ADMIN</div><div class="line" id="LC1643">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;target&gt; ]</div><div class="line" id="LC1644">&nbsp;</div><div class="line" id="LC1645">&nbsp;&nbsp;&nbsp;The admin command is used to find information about the administrator</div><div class="line" id="LC1646">&nbsp;&nbsp;&nbsp;of the given server, or current server if &lt;target&gt; parameter is</div><div class="line" id="LC1647">&nbsp;&nbsp;&nbsp;omitted. Each server MUST have the ability to forward ADMIN messages</div><div class="line" id="LC1648">&nbsp;&nbsp;&nbsp;to other servers.</div><div class="line" id="LC1649">&nbsp;</div><div class="line" id="LC1650">&nbsp;&nbsp;&nbsp;Wildcards are allowed in the &lt;target&gt; parameter.</div><div class="line" id="LC1651">&nbsp;</div><div class="line" id="LC1652">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1653">&nbsp;</div><div class="line" id="LC1654">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHSERVER</div><div class="line" id="LC1655">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_ADMINME RPL_ADMINLOC1</div><div class="line" id="LC1656">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_ADMINLOC2 RPL_ADMINEMAIL</div><div class="line" id="LC1657">&nbsp;</div><div class="line" id="LC1658">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1659">&nbsp;</div><div class="line" id="LC1660">&nbsp;&nbsp;&nbsp;ADMIN tolsun.oulu.fi ; request an ADMIN reply from</div><div class="line" id="LC1661">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tolsun.oulu.fi</div><div class="line" id="LC1662">&nbsp;</div><div class="line" id="LC1663">&nbsp;&nbsp;&nbsp;ADMIN syrk ; ADMIN request for the server to</div><div class="line" id="LC1664">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;which the user syrk is connected</div><div class="line" id="LC1665">&nbsp;</div><div class="line" id="LC1666">&nbsp;</div><div class="line" id="LC1667">&nbsp;</div><div class="line" id="LC1668">&nbsp;</div><div class="line" id="LC1669">&nbsp;</div><div class="line" id="LC1670">&nbsp;</div><div class="line" id="LC1671">&nbsp;</div><div class="line" id="LC1672">&nbsp;</div><div class="line" id="LC1673">&nbsp;</div><div class="line" id="LC1674">&nbsp;</div><div class="line" id="LC1675">&nbsp;</div><div class="line" id="LC1676">Kalt Informational [Page 30]</div><div class="line" id="LC1677">&nbsp;</div><div class="line" id="LC1678">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1679">&nbsp;</div><div class="line" id="LC1680">&nbsp;</div><div class="line" id="LC1681">3.4.10 Info command</div><div class="line" id="LC1682">&nbsp;</div><div class="line" id="LC1683">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: INFO</div><div class="line" id="LC1684">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;target&gt; ]</div><div class="line" id="LC1685">&nbsp;</div><div class="line" id="LC1686">&nbsp;&nbsp;&nbsp;The INFO command is REQUIRED to return information describing the</div><div class="line" id="LC1687">&nbsp;&nbsp;&nbsp;server: its version, when it was compiled, the patchlevel, when it</div><div class="line" id="LC1688">&nbsp;&nbsp;&nbsp;was started, and any other miscellaneous information which may be</div><div class="line" id="LC1689">&nbsp;&nbsp;&nbsp;considered to be relevant.</div><div class="line" id="LC1690">&nbsp;</div><div class="line" id="LC1691">&nbsp;&nbsp;&nbsp;Wildcards are allowed in the &lt;target&gt; parameter.</div><div class="line" id="LC1692">&nbsp;</div><div class="line" id="LC1693">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1694">&nbsp;</div><div class="line" id="LC1695">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHSERVER</div><div class="line" id="LC1696">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_INFO RPL_ENDOFINFO</div><div class="line" id="LC1697">&nbsp;</div><div class="line" id="LC1698">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1699">&nbsp;</div><div class="line" id="LC1700">&nbsp;&nbsp;&nbsp;INFO csd.bu.edu ; request an INFO reply from</div><div class="line" id="LC1701">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;csd.bu.edu</div><div class="line" id="LC1702">&nbsp;</div><div class="line" id="LC1703">&nbsp;&nbsp;&nbsp;INFO Angel ; request info from the server that</div><div class="line" id="LC1704">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Angel is connected to.</div><div class="line" id="LC1705">&nbsp;</div><div class="line" id="LC1706">3.5 Service Query and Commands</div><div class="line" id="LC1707">&nbsp;</div><div class="line" id="LC1708">&nbsp;&nbsp;&nbsp;The service query group of commands has been designed to return</div><div class="line" id="LC1709">&nbsp;&nbsp;&nbsp;information about any service which is connected to the network.</div><div class="line" id="LC1710">&nbsp;</div><div class="line" id="LC1711">3.5.1 Servlist message</div><div class="line" id="LC1712">&nbsp;</div><div class="line" id="LC1713">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: SERVLIST</div><div class="line" id="LC1714">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;mask&gt; [ &lt;type&gt; ] ]</div><div class="line" id="LC1715">&nbsp;</div><div class="line" id="LC1716">&nbsp;&nbsp;&nbsp;The SERVLIST command is used to list services currently connected to</div><div class="line" id="LC1717">&nbsp;&nbsp;&nbsp;the network and visible to the user issuing the command. The</div><div class="line" id="LC1718">&nbsp;&nbsp;&nbsp;optional parameters may be used to restrict the result of the query</div><div class="line" id="LC1719">&nbsp;&nbsp;&nbsp;(to matching services names, and services type).</div><div class="line" id="LC1720">&nbsp;</div><div class="line" id="LC1721">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1722">&nbsp;</div><div class="line" id="LC1723">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_SERVLIST RPL_SERVLISTEND</div><div class="line" id="LC1724">&nbsp;</div><div class="line" id="LC1725">&nbsp;</div><div class="line" id="LC1726">&nbsp;</div><div class="line" id="LC1727">&nbsp;</div><div class="line" id="LC1728">&nbsp;</div><div class="line" id="LC1729">&nbsp;</div><div class="line" id="LC1730">&nbsp;</div><div class="line" id="LC1731">&nbsp;</div><div class="line" id="LC1732">Kalt Informational [Page 31]</div><div class="line" id="LC1733">&nbsp;</div><div class="line" id="LC1734">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1735">&nbsp;</div><div class="line" id="LC1736">&nbsp;</div><div class="line" id="LC1737">3.5.2 Squery</div><div class="line" id="LC1738">&nbsp;</div><div class="line" id="LC1739">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: SQUERY</div><div class="line" id="LC1740">&nbsp;&nbsp;&nbsp;Parameters: &lt;servicename&gt; &lt;text&gt;</div><div class="line" id="LC1741">&nbsp;</div><div class="line" id="LC1742">&nbsp;&nbsp;&nbsp;The SQUERY command is used similarly to PRIVMSG. The only difference</div><div class="line" id="LC1743">&nbsp;&nbsp;&nbsp;is that the recipient MUST be a service. This is the only way for a</div><div class="line" id="LC1744">&nbsp;&nbsp;&nbsp;text message to be delivered to a service.</div><div class="line" id="LC1745">&nbsp;</div><div class="line" id="LC1746">&nbsp;&nbsp;&nbsp;See PRIVMSG for more details on replies and example.</div><div class="line" id="LC1747">&nbsp;</div><div class="line" id="LC1748">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1749">&nbsp;</div><div class="line" id="LC1750">&nbsp;&nbsp;&nbsp;SQUERY irchelp :HELP privmsg</div><div class="line" id="LC1751">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Message to the service with</div><div class="line" id="LC1752">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nickname irchelp.</div><div class="line" id="LC1753">&nbsp;</div><div class="line" id="LC1754">&nbsp;&nbsp;&nbsp;SQUERY dict@irc.fr :fr2en blaireau</div><div class="line" id="LC1755">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Message to the service with name</div><div class="line" id="LC1756">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dict@irc.fr.</div><div class="line" id="LC1757">&nbsp;</div><div class="line" id="LC1758">3.6 User based queries</div><div class="line" id="LC1759">&nbsp;</div><div class="line" id="LC1760">&nbsp;&nbsp;&nbsp;User queries are a group of commands which are primarily concerned</div><div class="line" id="LC1761">&nbsp;&nbsp;&nbsp;with finding details on a particular user or group users. When using</div><div class="line" id="LC1762">&nbsp;&nbsp;&nbsp;wildcards with any of these commands, if they match, they will only</div><div class="line" id="LC1763">&nbsp;&nbsp;&nbsp;return information on users who are &#39;visible&#39; to you. The visibility</div><div class="line" id="LC1764">&nbsp;&nbsp;&nbsp;of a user is determined as a combination of the user&#39;s mode and the</div><div class="line" id="LC1765">&nbsp;&nbsp;&nbsp;common set of channels you are both on.</div><div class="line" id="LC1766">&nbsp;</div><div class="line" id="LC1767">&nbsp;&nbsp;&nbsp;Although services SHOULD NOT be using this class of message, they are</div><div class="line" id="LC1768">&nbsp;&nbsp;&nbsp;allowed to.</div><div class="line" id="LC1769">&nbsp;</div><div class="line" id="LC1770">3.6.1 Who query</div><div class="line" id="LC1771">&nbsp;</div><div class="line" id="LC1772">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: WHO</div><div class="line" id="LC1773">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;mask&gt; [ &quot;o&quot; ] ]</div><div class="line" id="LC1774">&nbsp;</div><div class="line" id="LC1775">&nbsp;&nbsp;&nbsp;The WHO command is used by a client to generate a query which returns</div><div class="line" id="LC1776">&nbsp;&nbsp;&nbsp;a list of information which &#39;matches&#39; the &lt;mask&gt; parameter given by</div><div class="line" id="LC1777">&nbsp;&nbsp;&nbsp;the client. In the absence of the &lt;mask&gt; parameter, all visible</div><div class="line" id="LC1778">&nbsp;&nbsp;&nbsp;(users who aren&#39;t invisible (user mode +i) and who don&#39;t have a</div><div class="line" id="LC1779">&nbsp;&nbsp;&nbsp;common channel with the requesting client) are listed. The same</div><div class="line" id="LC1780">&nbsp;&nbsp;&nbsp;result can be achieved by using a &lt;mask&gt; of &quot;0&quot; or any wildcard which</div><div class="line" id="LC1781">&nbsp;&nbsp;&nbsp;will end up matching every visible user.</div><div class="line" id="LC1782">&nbsp;</div><div class="line" id="LC1783">&nbsp;&nbsp;&nbsp;The &lt;mask&gt; passed to WHO is matched against users&#39; host, server, real</div><div class="line" id="LC1784">&nbsp;&nbsp;&nbsp;name and nickname if the channel &lt;mask&gt; cannot be found.</div><div class="line" id="LC1785">&nbsp;</div><div class="line" id="LC1786">&nbsp;</div><div class="line" id="LC1787">&nbsp;</div><div class="line" id="LC1788">Kalt Informational [Page 32]</div><div class="line" id="LC1789">&nbsp;</div><div class="line" id="LC1790">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1791">&nbsp;</div><div class="line" id="LC1792">&nbsp;</div><div class="line" id="LC1793">&nbsp;&nbsp;&nbsp;If the &quot;o&quot; parameter is passed only operators are returned according</div><div class="line" id="LC1794">&nbsp;&nbsp;&nbsp;to the &lt;mask&gt; supplied.</div><div class="line" id="LC1795">&nbsp;</div><div class="line" id="LC1796">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1797">&nbsp;</div><div class="line" id="LC1798">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHSERVER</div><div class="line" id="LC1799">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_WHOREPLY RPL_ENDOFWHO</div><div class="line" id="LC1800">&nbsp;</div><div class="line" id="LC1801">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1802">&nbsp;</div><div class="line" id="LC1803">&nbsp;&nbsp;&nbsp;WHO *.fi ; Command to list all users who match</div><div class="line" id="LC1804">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;against &quot;*.fi&quot;.</div><div class="line" id="LC1805">&nbsp;</div><div class="line" id="LC1806">&nbsp;&nbsp;&nbsp;WHO jto* o ; Command to list all users with a</div><div class="line" id="LC1807">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;match against &quot;jto*&quot; if they are an</div><div class="line" id="LC1808">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operator.</div><div class="line" id="LC1809">&nbsp;</div><div class="line" id="LC1810">3.6.2 Whois query</div><div class="line" id="LC1811">&nbsp;</div><div class="line" id="LC1812">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: WHOIS</div><div class="line" id="LC1813">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;target&gt; ] &lt;mask&gt; *( &quot;,&quot; &lt;mask&gt; )</div><div class="line" id="LC1814">&nbsp;</div><div class="line" id="LC1815">&nbsp;&nbsp;&nbsp;This command is used to query information about particular user.</div><div class="line" id="LC1816">&nbsp;&nbsp;&nbsp;The server will answer this command with several numeric messages</div><div class="line" id="LC1817">&nbsp;&nbsp;&nbsp;indicating different statuses of each user which matches the mask (if</div><div class="line" id="LC1818">&nbsp;&nbsp;&nbsp;you are entitled to see them). If no wildcard is present in the</div><div class="line" id="LC1819">&nbsp;&nbsp;&nbsp;&lt;mask&gt;, any information about that nick which you are allowed to see</div><div class="line" id="LC1820">&nbsp;&nbsp;&nbsp;is presented.</div><div class="line" id="LC1821">&nbsp;</div><div class="line" id="LC1822">&nbsp;&nbsp;&nbsp;If the &lt;target&gt; parameter is specified, it sends the query to a</div><div class="line" id="LC1823">&nbsp;&nbsp;&nbsp;specific server. It is useful if you want to know how long the user</div><div class="line" id="LC1824">&nbsp;&nbsp;&nbsp;in question has been idle as only local server (i.e., the server the</div><div class="line" id="LC1825">&nbsp;&nbsp;&nbsp;user is directly connected to) knows that information, while</div><div class="line" id="LC1826">&nbsp;&nbsp;&nbsp;everything else is globally known.</div><div class="line" id="LC1827">&nbsp;</div><div class="line" id="LC1828">&nbsp;&nbsp;&nbsp;Wildcards are allowed in the &lt;target&gt; parameter.</div><div class="line" id="LC1829">&nbsp;</div><div class="line" id="LC1830">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1831">&nbsp;</div><div class="line" id="LC1832">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHSERVER ERR_NONICKNAMEGIVEN</div><div class="line" id="LC1833">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_WHOISUSER RPL_WHOISCHANNELS</div><div class="line" id="LC1834">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_WHOISCHANNELS RPL_WHOISSERVER</div><div class="line" id="LC1835">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_AWAY RPL_WHOISOPERATOR</div><div class="line" id="LC1836">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_WHOISIDLE ERR_NOSUCHNICK</div><div class="line" id="LC1837">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_ENDOFWHOIS</div><div class="line" id="LC1838">&nbsp;</div><div class="line" id="LC1839">&nbsp;</div><div class="line" id="LC1840">&nbsp;</div><div class="line" id="LC1841">&nbsp;</div><div class="line" id="LC1842">&nbsp;</div><div class="line" id="LC1843">&nbsp;</div><div class="line" id="LC1844">Kalt Informational [Page 33]</div><div class="line" id="LC1845">&nbsp;</div><div class="line" id="LC1846">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1847">&nbsp;</div><div class="line" id="LC1848">&nbsp;</div><div class="line" id="LC1849">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1850">&nbsp;</div><div class="line" id="LC1851">&nbsp;&nbsp;&nbsp;WHOIS wiz ; return available user information</div><div class="line" id="LC1852">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;about nick WiZ</div><div class="line" id="LC1853">&nbsp;</div><div class="line" id="LC1854">&nbsp;&nbsp;&nbsp;WHOIS eff.org trillian ; ask server eff.org for user</div><div class="line" id="LC1855">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;information about trillian</div><div class="line" id="LC1856">&nbsp;</div><div class="line" id="LC1857">3.6.3 Whowas</div><div class="line" id="LC1858">&nbsp;</div><div class="line" id="LC1859">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: WHOWAS</div><div class="line" id="LC1860">&nbsp;&nbsp;&nbsp;Parameters: &lt;nickname&gt; *( &quot;,&quot; &lt;nickname&gt; ) [ &lt;count&gt; [ &lt;target&gt; ] ]</div><div class="line" id="LC1861">&nbsp;</div><div class="line" id="LC1862">&nbsp;&nbsp;&nbsp;Whowas asks for information about a nickname which no longer exists.</div><div class="line" id="LC1863">&nbsp;&nbsp;&nbsp;This may either be due to a nickname change or the user leaving IRC.</div><div class="line" id="LC1864">&nbsp;&nbsp;&nbsp;In response to this query, the server searches through its nickname</div><div class="line" id="LC1865">&nbsp;&nbsp;&nbsp;history, looking for any nicks which are lexically the same (no wild</div><div class="line" id="LC1866">&nbsp;&nbsp;&nbsp;card matching here). The history is searched backward, returning the</div><div class="line" id="LC1867">&nbsp;&nbsp;&nbsp;most recent entry first. If there are multiple entries, up to</div><div class="line" id="LC1868">&nbsp;&nbsp;&nbsp;&lt;count&gt; replies will be returned (or all of them if no &lt;count&gt;</div><div class="line" id="LC1869">&nbsp;&nbsp;&nbsp;parameter is given). If a non-positive number is passed as being</div><div class="line" id="LC1870">&nbsp;&nbsp;&nbsp;&lt;count&gt;, then a full search is done.</div><div class="line" id="LC1871">&nbsp;</div><div class="line" id="LC1872">&nbsp;&nbsp;&nbsp;Wildcards are allowed in the &lt;target&gt; parameter.</div><div class="line" id="LC1873">&nbsp;</div><div class="line" id="LC1874">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1875">&nbsp;</div><div class="line" id="LC1876">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NONICKNAMEGIVEN ERR_WASNOSUCHNICK</div><div class="line" id="LC1877">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_WHOWASUSER RPL_WHOISSERVER</div><div class="line" id="LC1878">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_ENDOFWHOWAS</div><div class="line" id="LC1879">&nbsp;</div><div class="line" id="LC1880">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1881">&nbsp;</div><div class="line" id="LC1882">&nbsp;&nbsp;&nbsp;WHOWAS Wiz ; return all information in the nick</div><div class="line" id="LC1883">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;history about nick &quot;WiZ&quot;;</div><div class="line" id="LC1884">&nbsp;</div><div class="line" id="LC1885">&nbsp;&nbsp;&nbsp;WHOWAS Mermaid 9 ; return at most, the 9 most recent</div><div class="line" id="LC1886">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entries in the nick history for</div><div class="line" id="LC1887">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Mermaid&quot;;</div><div class="line" id="LC1888">&nbsp;</div><div class="line" id="LC1889">&nbsp;&nbsp;&nbsp;WHOWAS Trillian 1 *.edu ; return the most recent history for</div><div class="line" id="LC1890">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Trillian&quot; from the first server</div><div class="line" id="LC1891">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;found to match &quot;*.edu&quot;.</div><div class="line" id="LC1892">&nbsp;</div><div class="line" id="LC1893">3.7 Miscellaneous messages</div><div class="line" id="LC1894">&nbsp;</div><div class="line" id="LC1895">&nbsp;&nbsp;&nbsp;Messages in this category do not fit into any of the above categories</div><div class="line" id="LC1896">&nbsp;&nbsp;&nbsp;but are nonetheless still a part of and REQUIRED by the protocol.</div><div class="line" id="LC1897">&nbsp;</div><div class="line" id="LC1898">&nbsp;</div><div class="line" id="LC1899">&nbsp;</div><div class="line" id="LC1900">Kalt Informational [Page 34]</div><div class="line" id="LC1901">&nbsp;</div><div class="line" id="LC1902">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1903">&nbsp;</div><div class="line" id="LC1904">&nbsp;</div><div class="line" id="LC1905">3.7.1 Kill message</div><div class="line" id="LC1906">&nbsp;</div><div class="line" id="LC1907">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: KILL</div><div class="line" id="LC1908">&nbsp;&nbsp;&nbsp;Parameters: &lt;nickname&gt; &lt;comment&gt;</div><div class="line" id="LC1909">&nbsp;</div><div class="line" id="LC1910">&nbsp;&nbsp;&nbsp;The KILL command is used to cause a client-server connection to be</div><div class="line" id="LC1911">&nbsp;&nbsp;&nbsp;closed by the server which has the actual connection. Servers</div><div class="line" id="LC1912">&nbsp;&nbsp;&nbsp;generate KILL messages on nickname collisions. It MAY also be</div><div class="line" id="LC1913">&nbsp;&nbsp;&nbsp;available available to users who have the operator status.</div><div class="line" id="LC1914">&nbsp;</div><div class="line" id="LC1915">&nbsp;&nbsp;&nbsp;Clients which have automatic reconnect algorithms effectively make</div><div class="line" id="LC1916">&nbsp;&nbsp;&nbsp;this command useless since the disconnection is only brief. It does</div><div class="line" id="LC1917">&nbsp;&nbsp;&nbsp;however break the flow of data and can be used to stop large amounts</div><div class="line" id="LC1918">&nbsp;&nbsp;&nbsp;of &#39;flooding&#39; from abusive users or accidents. Abusive users usually</div><div class="line" id="LC1919">&nbsp;&nbsp;&nbsp;don&#39;t care as they will reconnect promptly and resume their abusive</div><div class="line" id="LC1920">&nbsp;&nbsp;&nbsp;behaviour. To prevent this command from being abused, any user may</div><div class="line" id="LC1921">&nbsp;&nbsp;&nbsp;elect to receive KILL messages generated for others to keep an &#39;eye&#39;</div><div class="line" id="LC1922">&nbsp;&nbsp;&nbsp;on would be trouble spots.</div><div class="line" id="LC1923">&nbsp;</div><div class="line" id="LC1924">&nbsp;&nbsp;&nbsp;In an arena where nicknames are REQUIRED to be globally unique at all</div><div class="line" id="LC1925">&nbsp;&nbsp;&nbsp;times, KILL messages are sent whenever &#39;duplicates&#39; are detected</div><div class="line" id="LC1926">&nbsp;&nbsp;&nbsp;(that is an attempt to register two users with the same nickname) in</div><div class="line" id="LC1927">&nbsp;&nbsp;&nbsp;the hope that both of them will disappear and only 1 reappear.</div><div class="line" id="LC1928">&nbsp;</div><div class="line" id="LC1929">&nbsp;&nbsp;&nbsp;When a client is removed as the result of a KILL message, the server</div><div class="line" id="LC1930">&nbsp;&nbsp;&nbsp;SHOULD add the nickname to the list of unavailable nicknames in an</div><div class="line" id="LC1931">&nbsp;&nbsp;&nbsp;attempt to avoid clients to reuse this name immediately which is</div><div class="line" id="LC1932">&nbsp;&nbsp;&nbsp;usually the pattern of abusive behaviour often leading to useless</div><div class="line" id="LC1933">&nbsp;&nbsp;&nbsp;&quot;KILL loops&quot;. See the &quot;IRC Server Protocol&quot; document [IRC-SERVER]</div><div class="line" id="LC1934">&nbsp;&nbsp;&nbsp;for more information on this procedure.</div><div class="line" id="LC1935">&nbsp;</div><div class="line" id="LC1936">&nbsp;&nbsp;&nbsp;The comment given MUST reflect the actual reason for the KILL. For</div><div class="line" id="LC1937">&nbsp;&nbsp;&nbsp;server-generated KILLs it usually is made up of details concerning</div><div class="line" id="LC1938">&nbsp;&nbsp;&nbsp;the origins of the two conflicting nicknames. For users it is left</div><div class="line" id="LC1939">&nbsp;&nbsp;&nbsp;up to them to provide an adequate reason to satisfy others who see</div><div class="line" id="LC1940">&nbsp;&nbsp;&nbsp;it. To prevent/discourage fake KILLs from being generated to hide</div><div class="line" id="LC1941">&nbsp;&nbsp;&nbsp;the identify of the KILLer, the comment also shows a &#39;kill-path&#39;</div><div class="line" id="LC1942">&nbsp;&nbsp;&nbsp;which is updated by each server it passes through, each prepending</div><div class="line" id="LC1943">&nbsp;&nbsp;&nbsp;its name to the path.</div><div class="line" id="LC1944">&nbsp;</div><div class="line" id="LC1945">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1946">&nbsp;</div><div class="line" id="LC1947">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOPRIVILEGES ERR_NEEDMOREPARAMS</div><div class="line" id="LC1948">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHNICK ERR_CANTKILLSERVER</div><div class="line" id="LC1949">&nbsp;</div><div class="line" id="LC1950">&nbsp;</div><div class="line" id="LC1951">&nbsp;</div><div class="line" id="LC1952">&nbsp;</div><div class="line" id="LC1953">&nbsp;</div><div class="line" id="LC1954">&nbsp;</div><div class="line" id="LC1955">&nbsp;</div><div class="line" id="LC1956">Kalt Informational [Page 35]</div><div class="line" id="LC1957">&nbsp;</div><div class="line" id="LC1958">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC1959">&nbsp;</div><div class="line" id="LC1960">&nbsp;</div><div class="line" id="LC1961">&nbsp;&nbsp;&nbsp;NOTE:</div><div class="line" id="LC1962">&nbsp;&nbsp;&nbsp;It is RECOMMENDED that only Operators be allowed to kill other users</div><div class="line" id="LC1963">&nbsp;&nbsp;&nbsp;with KILL command. This command has been the subject of many</div><div class="line" id="LC1964">&nbsp;&nbsp;&nbsp;controversies over the years, and along with the above</div><div class="line" id="LC1965">&nbsp;&nbsp;&nbsp;recommendation, it is also widely recognized that not even operators</div><div class="line" id="LC1966">&nbsp;&nbsp;&nbsp;should be allowed to kill users on remote servers.</div><div class="line" id="LC1967">&nbsp;</div><div class="line" id="LC1968">3.7.2 Ping message</div><div class="line" id="LC1969">&nbsp;</div><div class="line" id="LC1970">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: PING</div><div class="line" id="LC1971">&nbsp;&nbsp;&nbsp;Parameters: &lt;server1&gt; [ &lt;server2&gt; ]</div><div class="line" id="LC1972">&nbsp;</div><div class="line" id="LC1973">&nbsp;&nbsp;&nbsp;The PING command is used to test the presence of an active client or</div><div class="line" id="LC1974">&nbsp;&nbsp;&nbsp;server at the other end of the connection. Servers send a PING</div><div class="line" id="LC1975">&nbsp;&nbsp;&nbsp;message at regular intervals if no other activity detected coming</div><div class="line" id="LC1976">&nbsp;&nbsp;&nbsp;from a connection. If a connection fails to respond to a PING</div><div class="line" id="LC1977">&nbsp;&nbsp;&nbsp;message within a set amount of time, that connection is closed. A</div><div class="line" id="LC1978">&nbsp;&nbsp;&nbsp;PING message MAY be sent even if the connection is active.</div><div class="line" id="LC1979">&nbsp;</div><div class="line" id="LC1980">&nbsp;&nbsp;&nbsp;When a PING message is received, the appropriate PONG message MUST be</div><div class="line" id="LC1981">&nbsp;&nbsp;&nbsp;sent as reply to &lt;server1&gt; (server which sent the PING message out)</div><div class="line" id="LC1982">&nbsp;&nbsp;&nbsp;as soon as possible. If the &lt;server2&gt; parameter is specified, it</div><div class="line" id="LC1983">&nbsp;&nbsp;&nbsp;represents the target of the ping, and the message gets forwarded</div><div class="line" id="LC1984">&nbsp;&nbsp;&nbsp;there.</div><div class="line" id="LC1985">&nbsp;</div><div class="line" id="LC1986">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC1987">&nbsp;</div><div class="line" id="LC1988">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOORIGIN ERR_NOSUCHSERVER</div><div class="line" id="LC1989">&nbsp;</div><div class="line" id="LC1990">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC1991">&nbsp;</div><div class="line" id="LC1992">&nbsp;&nbsp;&nbsp;PING tolsun.oulu.fi ; Command to send a PING message to</div><div class="line" id="LC1993">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server</div><div class="line" id="LC1994">&nbsp;</div><div class="line" id="LC1995">&nbsp;&nbsp;&nbsp;PING WiZ tolsun.oulu.fi ; Command from WiZ to send a PING</div><div class="line" id="LC1996">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message to server &quot;tolsun.oulu.fi&quot;</div><div class="line" id="LC1997">&nbsp;</div><div class="line" id="LC1998">&nbsp;&nbsp;&nbsp;PING :irc.funet.fi ; Ping message sent by server</div><div class="line" id="LC1999">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;irc.funet.fi&quot;</div><div class="line" id="LC2000">&nbsp;</div><div class="line" id="LC2001">&nbsp;</div><div class="line" id="LC2002">&nbsp;</div><div class="line" id="LC2003">&nbsp;</div><div class="line" id="LC2004">&nbsp;</div><div class="line" id="LC2005">&nbsp;</div><div class="line" id="LC2006">&nbsp;</div><div class="line" id="LC2007">&nbsp;</div><div class="line" id="LC2008">&nbsp;</div><div class="line" id="LC2009">&nbsp;</div><div class="line" id="LC2010">&nbsp;</div><div class="line" id="LC2011">&nbsp;</div><div class="line" id="LC2012">Kalt Informational [Page 36]</div><div class="line" id="LC2013">&nbsp;</div><div class="line" id="LC2014">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2015">&nbsp;</div><div class="line" id="LC2016">&nbsp;</div><div class="line" id="LC2017">3.7.3 Pong message</div><div class="line" id="LC2018">&nbsp;</div><div class="line" id="LC2019">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: PONG</div><div class="line" id="LC2020">&nbsp;&nbsp;&nbsp;Parameters: &lt;server&gt; [ &lt;server2&gt; ]</div><div class="line" id="LC2021">&nbsp;</div><div class="line" id="LC2022">&nbsp;&nbsp;&nbsp;PONG message is a reply to ping message. If parameter &lt;server2&gt; is</div><div class="line" id="LC2023">&nbsp;&nbsp;&nbsp;given, this message MUST be forwarded to given target. The &lt;server&gt;</div><div class="line" id="LC2024">&nbsp;&nbsp;&nbsp;parameter is the name of the entity who has responded to PING message</div><div class="line" id="LC2025">&nbsp;&nbsp;&nbsp;and generated this message.</div><div class="line" id="LC2026">&nbsp;</div><div class="line" id="LC2027">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC2028">&nbsp;</div><div class="line" id="LC2029">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOORIGIN ERR_NOSUCHSERVER</div><div class="line" id="LC2030">&nbsp;</div><div class="line" id="LC2031">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC2032">&nbsp;</div><div class="line" id="LC2033">&nbsp;&nbsp;&nbsp;PONG csd.bu.edu tolsun.oulu.fi ; PONG message from csd.bu.edu to</div><div class="line" id="LC2034">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tolsun.oulu.fi</div><div class="line" id="LC2035">&nbsp;</div><div class="line" id="LC2036">3.7.4 Error</div><div class="line" id="LC2037">&nbsp;</div><div class="line" id="LC2038">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: ERROR</div><div class="line" id="LC2039">&nbsp;&nbsp;&nbsp;Parameters: &lt;error message&gt;</div><div class="line" id="LC2040">&nbsp;</div><div class="line" id="LC2041">&nbsp;&nbsp;&nbsp;The ERROR command is for use by servers when reporting a serious or</div><div class="line" id="LC2042">&nbsp;&nbsp;&nbsp;fatal error to its peers. It may also be sent from one server to</div><div class="line" id="LC2043">&nbsp;&nbsp;&nbsp;another but MUST NOT be accepted from any normal unknown clients.</div><div class="line" id="LC2044">&nbsp;</div><div class="line" id="LC2045">&nbsp;&nbsp;&nbsp;Only an ERROR message SHOULD be used for reporting errors which occur</div><div class="line" id="LC2046">&nbsp;&nbsp;&nbsp;with a server-to-server link. An ERROR message is sent to the server</div><div class="line" id="LC2047">&nbsp;&nbsp;&nbsp;at the other end (which reports it to appropriate local users and</div><div class="line" id="LC2048">&nbsp;&nbsp;&nbsp;logs) and to appropriate local users and logs. It is not to be</div><div class="line" id="LC2049">&nbsp;&nbsp;&nbsp;passed onto any other servers by a server if it is received from a</div><div class="line" id="LC2050">&nbsp;&nbsp;&nbsp;server.</div><div class="line" id="LC2051">&nbsp;</div><div class="line" id="LC2052">&nbsp;&nbsp;&nbsp;The ERROR message is also used before terminating a client</div><div class="line" id="LC2053">&nbsp;&nbsp;&nbsp;connection.</div><div class="line" id="LC2054">&nbsp;</div><div class="line" id="LC2055">&nbsp;&nbsp;&nbsp;When a server sends a received ERROR message to its operators, the</div><div class="line" id="LC2056">&nbsp;&nbsp;&nbsp;message SHOULD be encapsulated inside a NOTICE message, indicating</div><div class="line" id="LC2057">&nbsp;&nbsp;&nbsp;that the client was not responsible for the error.</div><div class="line" id="LC2058">&nbsp;</div><div class="line" id="LC2059">&nbsp;&nbsp;&nbsp;Numerics:</div><div class="line" id="LC2060">&nbsp;</div><div class="line" id="LC2061">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;None.</div><div class="line" id="LC2062">&nbsp;</div><div class="line" id="LC2063">&nbsp;</div><div class="line" id="LC2064">&nbsp;</div><div class="line" id="LC2065">&nbsp;</div><div class="line" id="LC2066">&nbsp;</div><div class="line" id="LC2067">&nbsp;</div><div class="line" id="LC2068">Kalt Informational [Page 37]</div><div class="line" id="LC2069">&nbsp;</div><div class="line" id="LC2070">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2071">&nbsp;</div><div class="line" id="LC2072">&nbsp;</div><div class="line" id="LC2073">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC2074">&nbsp;</div><div class="line" id="LC2075">&nbsp;&nbsp;&nbsp;ERROR :Server *.fi already exists ; ERROR message to the other server</div><div class="line" id="LC2076">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;which caused this error.</div><div class="line" id="LC2077">&nbsp;</div><div class="line" id="LC2078">&nbsp;&nbsp;&nbsp;NOTICE WiZ :ERROR from csd.bu.edu -- Server *.fi already exists</div><div class="line" id="LC2079">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Same ERROR message as above but</div><div class="line" id="LC2080">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sent to user WiZ on the other server.</div><div class="line" id="LC2081">&nbsp;</div><div class="line" id="LC2082">4. Optional features</div><div class="line" id="LC2083">&nbsp;</div><div class="line" id="LC2084">&nbsp;&nbsp;&nbsp;This section describes OPTIONAL messages. They are not required in a</div><div class="line" id="LC2085">&nbsp;&nbsp;&nbsp;working server implementation of the protocol described herein. In</div><div class="line" id="LC2086">&nbsp;&nbsp;&nbsp;the absence of the feature, an error reply message MUST be generated</div><div class="line" id="LC2087">&nbsp;&nbsp;&nbsp;or an unknown command error. If the message is destined for another</div><div class="line" id="LC2088">&nbsp;&nbsp;&nbsp;server to answer then it MUST be passed on (elementary parsing</div><div class="line" id="LC2089">&nbsp;&nbsp;&nbsp;REQUIRED) The allocated numerics for this are listed with the</div><div class="line" id="LC2090">&nbsp;&nbsp;&nbsp;messages below.</div><div class="line" id="LC2091">&nbsp;</div><div class="line" id="LC2092">&nbsp;&nbsp;&nbsp;From this section, only the USERHOST and ISON messages are available</div><div class="line" id="LC2093">&nbsp;&nbsp;&nbsp;to services.</div><div class="line" id="LC2094">&nbsp;</div><div class="line" id="LC2095">4.1 Away</div><div class="line" id="LC2096">&nbsp;</div><div class="line" id="LC2097">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: AWAY</div><div class="line" id="LC2098">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;text&gt; ]</div><div class="line" id="LC2099">&nbsp;</div><div class="line" id="LC2100">&nbsp;&nbsp;&nbsp;With the AWAY command, clients can set an automatic reply string for</div><div class="line" id="LC2101">&nbsp;&nbsp;&nbsp;any PRIVMSG commands directed at them (not to a channel they are on).</div><div class="line" id="LC2102">&nbsp;&nbsp;&nbsp;The server sends an automatic reply to the client sending the PRIVMSG</div><div class="line" id="LC2103">&nbsp;&nbsp;&nbsp;command. The only replying server is the one to which the sending</div><div class="line" id="LC2104">&nbsp;&nbsp;&nbsp;client is connected to.</div><div class="line" id="LC2105">&nbsp;</div><div class="line" id="LC2106">&nbsp;&nbsp;&nbsp;The AWAY command is used either with one parameter, to set an AWAY</div><div class="line" id="LC2107">&nbsp;&nbsp;&nbsp;message, or with no parameters, to remove the AWAY message.</div><div class="line" id="LC2108">&nbsp;</div><div class="line" id="LC2109">&nbsp;&nbsp;&nbsp;Because of its high cost (memory and bandwidth wise), the AWAY</div><div class="line" id="LC2110">&nbsp;&nbsp;&nbsp;message SHOULD only be used for client-server communication. A</div><div class="line" id="LC2111">&nbsp;&nbsp;&nbsp;server MAY choose to silently ignore AWAY messages received from</div><div class="line" id="LC2112">&nbsp;&nbsp;&nbsp;other servers. To update the away status of a client across servers,</div><div class="line" id="LC2113">&nbsp;&nbsp;&nbsp;the user mode &#39;a&#39; SHOULD be used instead. (See Section 3.1.5)</div><div class="line" id="LC2114">&nbsp;</div><div class="line" id="LC2115">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC2116">&nbsp;</div><div class="line" id="LC2117">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_UNAWAY RPL_NOWAWAY</div><div class="line" id="LC2118">&nbsp;</div><div class="line" id="LC2119">&nbsp;</div><div class="line" id="LC2120">&nbsp;</div><div class="line" id="LC2121">&nbsp;</div><div class="line" id="LC2122">&nbsp;</div><div class="line" id="LC2123">&nbsp;</div><div class="line" id="LC2124">Kalt Informational [Page 38]</div><div class="line" id="LC2125">&nbsp;</div><div class="line" id="LC2126">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2127">&nbsp;</div><div class="line" id="LC2128">&nbsp;</div><div class="line" id="LC2129">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC2130">&nbsp;</div><div class="line" id="LC2131">&nbsp;&nbsp;&nbsp;AWAY :Gone to lunch. Back in 5 ; Command to set away message to</div><div class="line" id="LC2132">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Gone to lunch. Back in 5&quot;.</div><div class="line" id="LC2133">&nbsp;</div><div class="line" id="LC2134">4.2 Rehash message</div><div class="line" id="LC2135">&nbsp;</div><div class="line" id="LC2136">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: REHASH</div><div class="line" id="LC2137">&nbsp;&nbsp;&nbsp;Parameters: None</div><div class="line" id="LC2138">&nbsp;</div><div class="line" id="LC2139">&nbsp;&nbsp;&nbsp;The rehash command is an administrative command which can be used by</div><div class="line" id="LC2140">&nbsp;&nbsp;&nbsp;an operator to force the server to re-read and process its</div><div class="line" id="LC2141">&nbsp;&nbsp;&nbsp;configuration file.</div><div class="line" id="LC2142">&nbsp;</div><div class="line" id="LC2143">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC2144">&nbsp;</div><div class="line" id="LC2145">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_REHASHING ERR_NOPRIVILEGES</div><div class="line" id="LC2146">&nbsp;</div><div class="line" id="LC2147">&nbsp;</div><div class="line" id="LC2148">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC2149">&nbsp;</div><div class="line" id="LC2150">&nbsp;&nbsp;&nbsp;REHASH ; message from user with operator</div><div class="line" id="LC2151">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;status to server asking it to reread</div><div class="line" id="LC2152">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;its configuration file.</div><div class="line" id="LC2153">&nbsp;</div><div class="line" id="LC2154">4.3 Die message</div><div class="line" id="LC2155">&nbsp;</div><div class="line" id="LC2156">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: DIE</div><div class="line" id="LC2157">&nbsp;&nbsp;&nbsp;Parameters: None</div><div class="line" id="LC2158">&nbsp;</div><div class="line" id="LC2159">&nbsp;&nbsp;&nbsp;An operator can use the DIE command to shutdown the server. This</div><div class="line" id="LC2160">&nbsp;&nbsp;&nbsp;message is optional since it may be viewed as a risk to allow</div><div class="line" id="LC2161">&nbsp;&nbsp;&nbsp;arbitrary people to connect to a server as an operator and execute</div><div class="line" id="LC2162">&nbsp;&nbsp;&nbsp;this command.</div><div class="line" id="LC2163">&nbsp;</div><div class="line" id="LC2164">&nbsp;&nbsp;&nbsp;The DIE command MUST always be fully processed by the server to which</div><div class="line" id="LC2165">&nbsp;&nbsp;&nbsp;the sending client is connected and MUST NOT be passed onto other</div><div class="line" id="LC2166">&nbsp;&nbsp;&nbsp;connected servers.</div><div class="line" id="LC2167">&nbsp;</div><div class="line" id="LC2168">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC2169">&nbsp;</div><div class="line" id="LC2170">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOPRIVILEGES</div><div class="line" id="LC2171">&nbsp;</div><div class="line" id="LC2172">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC2173">&nbsp;</div><div class="line" id="LC2174">&nbsp;&nbsp;&nbsp;DIE ; no parameters required.</div><div class="line" id="LC2175">&nbsp;</div><div class="line" id="LC2176">&nbsp;</div><div class="line" id="LC2177">&nbsp;</div><div class="line" id="LC2178">&nbsp;</div><div class="line" id="LC2179">&nbsp;</div><div class="line" id="LC2180">Kalt Informational [Page 39]</div><div class="line" id="LC2181">&nbsp;</div><div class="line" id="LC2182">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2183">&nbsp;</div><div class="line" id="LC2184">&nbsp;</div><div class="line" id="LC2185">4.4 Restart message</div><div class="line" id="LC2186">&nbsp;</div><div class="line" id="LC2187">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: RESTART</div><div class="line" id="LC2188">&nbsp;&nbsp;&nbsp;Parameters: None</div><div class="line" id="LC2189">&nbsp;</div><div class="line" id="LC2190">&nbsp;&nbsp;&nbsp;An operator can use the restart command to force the server to</div><div class="line" id="LC2191">&nbsp;&nbsp;&nbsp;restart itself. This message is optional since it may be viewed as a</div><div class="line" id="LC2192">&nbsp;&nbsp;&nbsp;risk to allow arbitrary people to connect to a server as an operator</div><div class="line" id="LC2193">&nbsp;&nbsp;&nbsp;and execute this command, causing (at least) a disruption to service.</div><div class="line" id="LC2194">&nbsp;</div><div class="line" id="LC2195">&nbsp;&nbsp;&nbsp;The RESTART command MUST always be fully processed by the server to</div><div class="line" id="LC2196">&nbsp;&nbsp;&nbsp;which the sending client is connected and MUST NOT be passed onto</div><div class="line" id="LC2197">&nbsp;&nbsp;&nbsp;other connected servers.</div><div class="line" id="LC2198">&nbsp;</div><div class="line" id="LC2199">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC2200">&nbsp;</div><div class="line" id="LC2201">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOPRIVILEGES</div><div class="line" id="LC2202">&nbsp;</div><div class="line" id="LC2203">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC2204">&nbsp;</div><div class="line" id="LC2205">&nbsp;&nbsp;&nbsp;RESTART ; no parameters required.</div><div class="line" id="LC2206">&nbsp;</div><div class="line" id="LC2207">4.5 Summon message</div><div class="line" id="LC2208">&nbsp;</div><div class="line" id="LC2209">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: SUMMON</div><div class="line" id="LC2210">&nbsp;&nbsp;&nbsp;Parameters: &lt;user&gt; [ &lt;target&gt; [ &lt;channel&gt; ] ]</div><div class="line" id="LC2211">&nbsp;</div><div class="line" id="LC2212">&nbsp;&nbsp;&nbsp;The SUMMON command can be used to give users who are on a host</div><div class="line" id="LC2213">&nbsp;&nbsp;&nbsp;running an IRC server a message asking them to please join IRC. This</div><div class="line" id="LC2214">&nbsp;&nbsp;&nbsp;message is only sent if the target server (a) has SUMMON enabled, (b)</div><div class="line" id="LC2215">&nbsp;&nbsp;&nbsp;the user is logged in and (c) the server process can write to the</div><div class="line" id="LC2216">&nbsp;&nbsp;&nbsp;user&#39;s tty (or similar).</div><div class="line" id="LC2217">&nbsp;</div><div class="line" id="LC2218">&nbsp;&nbsp;&nbsp;If no &lt;server&gt; parameter is given it tries to summon &lt;user&gt; from the</div><div class="line" id="LC2219">&nbsp;&nbsp;&nbsp;server the client is connected to is assumed as the target.</div><div class="line" id="LC2220">&nbsp;</div><div class="line" id="LC2221">&nbsp;&nbsp;&nbsp;If summon is not enabled in a server, it MUST return the</div><div class="line" id="LC2222">&nbsp;&nbsp;&nbsp;ERR_SUMMONDISABLED numeric.</div><div class="line" id="LC2223">&nbsp;</div><div class="line" id="LC2224">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC2225">&nbsp;</div><div class="line" id="LC2226">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NORECIPIENT ERR_FILEERROR</div><div class="line" id="LC2227">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOLOGIN ERR_NOSUCHSERVER</div><div class="line" id="LC2228">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_SUMMONDISABLED RPL_SUMMONING</div><div class="line" id="LC2229">&nbsp;</div><div class="line" id="LC2230">&nbsp;</div><div class="line" id="LC2231">&nbsp;</div><div class="line" id="LC2232">&nbsp;</div><div class="line" id="LC2233">&nbsp;</div><div class="line" id="LC2234">&nbsp;</div><div class="line" id="LC2235">&nbsp;</div><div class="line" id="LC2236">Kalt Informational [Page 40]</div><div class="line" id="LC2237">&nbsp;</div><div class="line" id="LC2238">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2239">&nbsp;</div><div class="line" id="LC2240">&nbsp;</div><div class="line" id="LC2241">&nbsp;&nbsp;&nbsp;Examples:</div><div class="line" id="LC2242">&nbsp;</div><div class="line" id="LC2243">&nbsp;&nbsp;&nbsp;SUMMON jto ; summon user jto on the server&#39;s</div><div class="line" id="LC2244">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;host</div><div class="line" id="LC2245">&nbsp;</div><div class="line" id="LC2246">&nbsp;&nbsp;&nbsp;SUMMON jto tolsun.oulu.fi ; summon user jto on the host which a</div><div class="line" id="LC2247">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server named &quot;tolsun.oulu.fi&quot; is</div><div class="line" id="LC2248">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;running.</div><div class="line" id="LC2249">&nbsp;</div><div class="line" id="LC2250">4.6 Users</div><div class="line" id="LC2251">&nbsp;</div><div class="line" id="LC2252">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: USERS</div><div class="line" id="LC2253">&nbsp;&nbsp;&nbsp;Parameters: [ &lt;target&gt; ]</div><div class="line" id="LC2254">&nbsp;</div><div class="line" id="LC2255">&nbsp;&nbsp;&nbsp;The USERS command returns a list of users logged into the server in a</div><div class="line" id="LC2256">&nbsp;&nbsp;&nbsp;format similar to the UNIX commands who(1), rusers(1) and finger(1).</div><div class="line" id="LC2257">&nbsp;&nbsp;&nbsp;If disabled, the correct numeric MUST be returned to indicate this.</div><div class="line" id="LC2258">&nbsp;</div><div class="line" id="LC2259">&nbsp;&nbsp;&nbsp;Because of the security implications of such a command, it SHOULD be</div><div class="line" id="LC2260">&nbsp;&nbsp;&nbsp;disabled by default in server implementations. Enabling it SHOULD</div><div class="line" id="LC2261">&nbsp;&nbsp;&nbsp;require recompiling the server or some equivalent change rather than</div><div class="line" id="LC2262">&nbsp;&nbsp;&nbsp;simply toggling an option and restarting the server. The procedure</div><div class="line" id="LC2263">&nbsp;&nbsp;&nbsp;to enable this command SHOULD also include suitable large comments.</div><div class="line" id="LC2264">&nbsp;</div><div class="line" id="LC2265">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC2266">&nbsp;</div><div class="line" id="LC2267">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOSUCHSERVER ERR_FILEERROR</div><div class="line" id="LC2268">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_USERSSTART RPL_USERS</div><div class="line" id="LC2269">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_NOUSERS RPL_ENDOFUSERS</div><div class="line" id="LC2270">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_USERSDISABLED</div><div class="line" id="LC2271">&nbsp;</div><div class="line" id="LC2272">&nbsp;&nbsp;&nbsp;Disabled Reply:</div><div class="line" id="LC2273">&nbsp;</div><div class="line" id="LC2274">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_USERSDISABLED</div><div class="line" id="LC2275">&nbsp;</div><div class="line" id="LC2276">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC2277">&nbsp;</div><div class="line" id="LC2278">&nbsp;&nbsp;&nbsp;USERS eff.org ; request a list of users logged in</div><div class="line" id="LC2279">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on server eff.org</div><div class="line" id="LC2280">&nbsp;</div><div class="line" id="LC2281">4.7 Operwall message</div><div class="line" id="LC2282">&nbsp;</div><div class="line" id="LC2283">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: WALLOPS</div><div class="line" id="LC2284">&nbsp;&nbsp;&nbsp;Parameters: &lt;Text to be sent&gt;</div><div class="line" id="LC2285">&nbsp;</div><div class="line" id="LC2286">&nbsp;&nbsp;&nbsp;The WALLOPS command is used to send a message to all currently</div><div class="line" id="LC2287">&nbsp;&nbsp;&nbsp;connected users who have set the &#39;w&#39; user mode for themselves. (See</div><div class="line" id="LC2288">&nbsp;&nbsp;&nbsp;Section 3.1.5 &quot;User modes&quot;).</div><div class="line" id="LC2289">&nbsp;</div><div class="line" id="LC2290">&nbsp;</div><div class="line" id="LC2291">&nbsp;</div><div class="line" id="LC2292">Kalt Informational [Page 41]</div><div class="line" id="LC2293">&nbsp;</div><div class="line" id="LC2294">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2295">&nbsp;</div><div class="line" id="LC2296">&nbsp;</div><div class="line" id="LC2297">&nbsp;&nbsp;&nbsp;After implementing WALLOPS as a user command it was found that it was</div><div class="line" id="LC2298">&nbsp;&nbsp;&nbsp;often and commonly abused as a means of sending a message to a lot of</div><div class="line" id="LC2299">&nbsp;&nbsp;&nbsp;people. Due to this, it is RECOMMENDED that the implementation of</div><div class="line" id="LC2300">&nbsp;&nbsp;&nbsp;WALLOPS allows and recognizes only servers as the originators of</div><div class="line" id="LC2301">&nbsp;&nbsp;&nbsp;WALLOPS.</div><div class="line" id="LC2302">&nbsp;</div><div class="line" id="LC2303">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC2304">&nbsp;</div><div class="line" id="LC2305">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NEEDMOREPARAMS</div><div class="line" id="LC2306">&nbsp;</div><div class="line" id="LC2307">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC2308">&nbsp;</div><div class="line" id="LC2309">&nbsp;&nbsp;&nbsp;:csd.bu.edu WALLOPS :Connect &#39;*.uiuc.edu 6667&#39; from Joshua ; WALLOPS</div><div class="line" id="LC2310">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message from csd.bu.edu announcing a</div><div class="line" id="LC2311">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CONNECT message it received from</div><div class="line" id="LC2312">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Joshua and acted upon.</div><div class="line" id="LC2313">&nbsp;</div><div class="line" id="LC2314">4.8 Userhost message</div><div class="line" id="LC2315">&nbsp;</div><div class="line" id="LC2316">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: USERHOST</div><div class="line" id="LC2317">&nbsp;&nbsp;&nbsp;Parameters: &lt;nickname&gt; *( SPACE &lt;nickname&gt; )</div><div class="line" id="LC2318">&nbsp;</div><div class="line" id="LC2319">&nbsp;&nbsp;&nbsp;The USERHOST command takes a list of up to 5 nicknames, each</div><div class="line" id="LC2320">&nbsp;&nbsp;&nbsp;separated by a space character and returns a list of information</div><div class="line" id="LC2321">&nbsp;&nbsp;&nbsp;about each nickname that it found. The returned list has each reply</div><div class="line" id="LC2322">&nbsp;&nbsp;&nbsp;separated by a space.</div><div class="line" id="LC2323">&nbsp;</div><div class="line" id="LC2324">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC2325">&nbsp;</div><div class="line" id="LC2326">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_USERHOST ERR_NEEDMOREPARAMS</div><div class="line" id="LC2327">&nbsp;</div><div class="line" id="LC2328">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC2329">&nbsp;</div><div class="line" id="LC2330">&nbsp;&nbsp;&nbsp;USERHOST Wiz Michael syrk ; USERHOST request for information on</div><div class="line" id="LC2331">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nicks &quot;Wiz&quot;, &quot;Michael&quot;, and &quot;syrk&quot;</div><div class="line" id="LC2332">&nbsp;</div><div class="line" id="LC2333">&nbsp;&nbsp;&nbsp;:ircd.stealth.net 302 yournick :syrk=+syrk@millennium.stealth.net</div><div class="line" id="LC2334">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Reply for user syrk</div><div class="line" id="LC2335">&nbsp;</div><div class="line" id="LC2336">4.9 Ison message</div><div class="line" id="LC2337">&nbsp;</div><div class="line" id="LC2338">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command: ISON</div><div class="line" id="LC2339">&nbsp;&nbsp;&nbsp;Parameters: &lt;nickname&gt; *( SPACE &lt;nickname&gt; )</div><div class="line" id="LC2340">&nbsp;</div><div class="line" id="LC2341">&nbsp;&nbsp;&nbsp;The ISON command was implemented to provide a quick and efficient</div><div class="line" id="LC2342">&nbsp;&nbsp;&nbsp;means to get a response about whether a given nickname was currently</div><div class="line" id="LC2343">&nbsp;&nbsp;&nbsp;on IRC. ISON only takes one (1) type of parameter: a space-separated</div><div class="line" id="LC2344">&nbsp;&nbsp;&nbsp;list of nicks. For each nickname in the list that is present, the</div><div class="line" id="LC2345">&nbsp;</div><div class="line" id="LC2346">&nbsp;</div><div class="line" id="LC2347">&nbsp;</div><div class="line" id="LC2348">Kalt Informational [Page 42]</div><div class="line" id="LC2349">&nbsp;</div><div class="line" id="LC2350">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2351">&nbsp;</div><div class="line" id="LC2352">&nbsp;</div><div class="line" id="LC2353">&nbsp;&nbsp;&nbsp;server adds that to its reply string. Thus the reply string may</div><div class="line" id="LC2354">&nbsp;&nbsp;&nbsp;return empty (none of the given nicks are present), an exact copy of</div><div class="line" id="LC2355">&nbsp;&nbsp;&nbsp;the parameter string (all of them present) or any other subset of the</div><div class="line" id="LC2356">&nbsp;&nbsp;&nbsp;set of nicks given in the parameter. The only limit on the number of</div><div class="line" id="LC2357">&nbsp;&nbsp;&nbsp;nicks that may be checked is that the combined length MUST NOT be too</div><div class="line" id="LC2358">&nbsp;&nbsp;&nbsp;large as to cause the server to chop it off so it fits in 512</div><div class="line" id="LC2359">&nbsp;&nbsp;&nbsp;characters.</div><div class="line" id="LC2360">&nbsp;</div><div class="line" id="LC2361">&nbsp;&nbsp;&nbsp;ISON is only processed by the server local to the client sending the</div><div class="line" id="LC2362">&nbsp;&nbsp;&nbsp;command and thus not passed onto other servers for further</div><div class="line" id="LC2363">&nbsp;&nbsp;&nbsp;processing.</div><div class="line" id="LC2364">&nbsp;</div><div class="line" id="LC2365">&nbsp;&nbsp;&nbsp;Numeric Replies:</div><div class="line" id="LC2366">&nbsp;</div><div class="line" id="LC2367">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_ISON ERR_NEEDMOREPARAMS</div><div class="line" id="LC2368">&nbsp;</div><div class="line" id="LC2369">&nbsp;&nbsp;&nbsp;Example:</div><div class="line" id="LC2370">&nbsp;</div><div class="line" id="LC2371">&nbsp;&nbsp;&nbsp;ISON phone trillian WiZ jarlek Avalon Angel Monstah syrk</div><div class="line" id="LC2372">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; Sample ISON request for 7 nicks.</div><div class="line" id="LC2373">&nbsp;</div><div class="line" id="LC2374">5. Replies</div><div class="line" id="LC2375">&nbsp;</div><div class="line" id="LC2376">&nbsp;&nbsp;&nbsp;The following is a list of numeric replies which are generated in</div><div class="line" id="LC2377">&nbsp;&nbsp;&nbsp;response to the commands given above. Each numeric is given with its</div><div class="line" id="LC2378">&nbsp;&nbsp;&nbsp;number, name and reply string.</div><div class="line" id="LC2379">&nbsp;</div><div class="line" id="LC2380">5.1 Command responses</div><div class="line" id="LC2381">&nbsp;</div><div class="line" id="LC2382">&nbsp;&nbsp;&nbsp;Numerics in the range from 001 to 099 are used for client-server</div><div class="line" id="LC2383">&nbsp;&nbsp;&nbsp;connections only and should never travel between servers. Replies</div><div class="line" id="LC2384">&nbsp;&nbsp;&nbsp;generated in the response to commands are found in the range from 200</div><div class="line" id="LC2385">&nbsp;&nbsp;&nbsp;to 399.</div><div class="line" id="LC2386">&nbsp;</div><div class="line" id="LC2387">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;001 RPL_WELCOME</div><div class="line" id="LC2388">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Welcome to the Internet Relay Network</div><div class="line" id="LC2389">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;nick&gt;!&lt;user&gt;@&lt;host&gt;&quot;</div><div class="line" id="LC2390">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;002 RPL_YOURHOST</div><div class="line" id="LC2391">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Your host is &lt;servername&gt;, running version &lt;ver&gt;&quot;</div><div class="line" id="LC2392">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;003 RPL_CREATED</div><div class="line" id="LC2393">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;This server was created &lt;date&gt;&quot;</div><div class="line" id="LC2394">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;004 RPL_MYINFO</div><div class="line" id="LC2395">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;servername&gt; &lt;version&gt; &lt;available user modes&gt;</div><div class="line" id="LC2396">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;available channel modes&gt;&quot;</div><div class="line" id="LC2397">&nbsp;</div><div class="line" id="LC2398">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- The server sends Replies 001 to 004 to a user upon</div><div class="line" id="LC2399">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;successful registration.</div><div class="line" id="LC2400">&nbsp;</div><div class="line" id="LC2401">&nbsp;</div><div class="line" id="LC2402">&nbsp;</div><div class="line" id="LC2403">&nbsp;</div><div class="line" id="LC2404">Kalt Informational [Page 43]</div><div class="line" id="LC2405">&nbsp;</div><div class="line" id="LC2406">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2407">&nbsp;</div><div class="line" id="LC2408">&nbsp;</div><div class="line" id="LC2409">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;005 RPL_BOUNCE</div><div class="line" id="LC2410">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Try server &lt;server name&gt;, port &lt;port number&gt;&quot;</div><div class="line" id="LC2411">&nbsp;</div><div class="line" id="LC2412">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Sent by the server to a user to suggest an alternative</div><div class="line" id="LC2413">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server. This is often used when the connection is</div><div class="line" id="LC2414">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refused because the server is already full.</div><div class="line" id="LC2415">&nbsp;</div><div class="line" id="LC2416">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;302 RPL_USERHOST</div><div class="line" id="LC2417">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:*1&lt;reply&gt; *( &quot; &quot; &lt;reply&gt; )&quot;</div><div class="line" id="LC2418">&nbsp;</div><div class="line" id="LC2419">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Reply format used by USERHOST to list replies to</div><div class="line" id="LC2420">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the query list. The reply string is composed as</div><div class="line" id="LC2421">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;follows:</div><div class="line" id="LC2422">&nbsp;</div><div class="line" id="LC2423">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reply = nickname [ &quot;*&quot; ] &quot;=&quot; ( &quot;+&quot; / &quot;-&quot; ) hostname</div><div class="line" id="LC2424">&nbsp;</div><div class="line" id="LC2425">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The &#39;*&#39; indicates whether the client has registered</div><div class="line" id="LC2426">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;as an Operator. The &#39;-&#39; or &#39;+&#39; characters represent</div><div class="line" id="LC2427">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;whether the client has set an AWAY message or not</div><div class="line" id="LC2428">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;respectively.</div><div class="line" id="LC2429">&nbsp;</div><div class="line" id="LC2430">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;303 RPL_ISON</div><div class="line" id="LC2431">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:*1&lt;nick&gt; *( &quot; &quot; &lt;nick&gt; )&quot;</div><div class="line" id="LC2432">&nbsp;</div><div class="line" id="LC2433">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Reply format used by ISON to list replies to the</div><div class="line" id="LC2434">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query list.</div><div class="line" id="LC2435">&nbsp;</div><div class="line" id="LC2436">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;301 RPL_AWAY</div><div class="line" id="LC2437">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; :&lt;away message&gt;&quot;</div><div class="line" id="LC2438">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;305 RPL_UNAWAY</div><div class="line" id="LC2439">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:You are no longer marked as being away&quot;</div><div class="line" id="LC2440">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;306 RPL_NOWAWAY</div><div class="line" id="LC2441">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:You have been marked as being away&quot;</div><div class="line" id="LC2442">&nbsp;</div><div class="line" id="LC2443">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- These replies are used with the AWAY command (if</div><div class="line" id="LC2444">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allowed). RPL_AWAY is sent to any client sending a</div><div class="line" id="LC2445">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIVMSG to a client which is away. RPL_AWAY is only</div><div class="line" id="LC2446">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sent by the server to which the client is connected.</div><div class="line" id="LC2447">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replies RPL_UNAWAY and RPL_NOWAWAY are sent when the</div><div class="line" id="LC2448">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client removes and sets an AWAY message.</div><div class="line" id="LC2449">&nbsp;</div><div class="line" id="LC2450">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;311 RPL_WHOISUSER</div><div class="line" id="LC2451">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; &lt;user&gt; &lt;host&gt; * :&lt;real name&gt;&quot;</div><div class="line" id="LC2452">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;312 RPL_WHOISSERVER</div><div class="line" id="LC2453">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; &lt;server&gt; :&lt;server info&gt;&quot;</div><div class="line" id="LC2454">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;313 RPL_WHOISOPERATOR</div><div class="line" id="LC2455">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; :is an IRC operator&quot;</div><div class="line" id="LC2456">&nbsp;</div><div class="line" id="LC2457">&nbsp;</div><div class="line" id="LC2458">&nbsp;</div><div class="line" id="LC2459">&nbsp;</div><div class="line" id="LC2460">Kalt Informational [Page 44]</div><div class="line" id="LC2461">&nbsp;</div><div class="line" id="LC2462">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2463">&nbsp;</div><div class="line" id="LC2464">&nbsp;</div><div class="line" id="LC2465">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;317 RPL_WHOISIDLE</div><div class="line" id="LC2466">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; &lt;integer&gt; :seconds idle&quot;</div><div class="line" id="LC2467">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;318 RPL_ENDOFWHOIS</div><div class="line" id="LC2468">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; :End of WHOIS list&quot;</div><div class="line" id="LC2469">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;319 RPL_WHOISCHANNELS</div><div class="line" id="LC2470">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; :*( ( &quot;@&quot; / &quot;+&quot; ) &lt;channel&gt; &quot; &quot; )&quot;</div><div class="line" id="LC2471">&nbsp;</div><div class="line" id="LC2472">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Replies 311 - 313, 317 - 319 are all replies</div><div class="line" id="LC2473">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generated in response to a WHOIS message. Given that</div><div class="line" id="LC2474">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;there are enough parameters present, the answering</div><div class="line" id="LC2475">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server MUST either formulate a reply out of the above</div><div class="line" id="LC2476">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numerics (if the query nick is found) or return an</div><div class="line" id="LC2477">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error reply. The &#39;*&#39; in RPL_WHOISUSER is there as</div><div class="line" id="LC2478">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the literal character and not as a wild card. For</div><div class="line" id="LC2479">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;each reply set, only RPL_WHOISCHANNELS may appear</div><div class="line" id="LC2480">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;more than once (for long lists of channel names).</div><div class="line" id="LC2481">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The &#39;@&#39; and &#39;+&#39; characters next to the channel name</div><div class="line" id="LC2482">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indicate whether a client is a channel operator or</div><div class="line" id="LC2483">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;has been granted permission to speak on a moderated</div><div class="line" id="LC2484">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;channel. The RPL_ENDOFWHOIS reply is used to mark</div><div class="line" id="LC2485">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the end of processing a WHOIS message.</div><div class="line" id="LC2486">&nbsp;</div><div class="line" id="LC2487">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;314 RPL_WHOWASUSER</div><div class="line" id="LC2488">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; &lt;user&gt; &lt;host&gt; * :&lt;real name&gt;&quot;</div><div class="line" id="LC2489">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;369 RPL_ENDOFWHOWAS</div><div class="line" id="LC2490">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; :End of WHOWAS&quot;</div><div class="line" id="LC2491">&nbsp;</div><div class="line" id="LC2492">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- When replying to a WHOWAS message, a server MUST use</div><div class="line" id="LC2493">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the replies RPL_WHOWASUSER, RPL_WHOISSERVER or</div><div class="line" id="LC2494">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_WASNOSUCHNICK for each nickname in the presented</div><div class="line" id="LC2495">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list. At the end of all reply batches, there MUST</div><div class="line" id="LC2496">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;be RPL_ENDOFWHOWAS (even if there was only one reply</div><div class="line" id="LC2497">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and it was an error).</div><div class="line" id="LC2498">&nbsp;</div><div class="line" id="LC2499">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;321 RPL_LISTSTART</div><div class="line" id="LC2500">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obsolete. Not used.</div><div class="line" id="LC2501">&nbsp;</div><div class="line" id="LC2502">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;322 RPL_LIST</div><div class="line" id="LC2503">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; &lt;# visible&gt; :&lt;topic&gt;&quot;</div><div class="line" id="LC2504">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;323 RPL_LISTEND</div><div class="line" id="LC2505">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:End of LIST&quot;</div><div class="line" id="LC2506">&nbsp;</div><div class="line" id="LC2507">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Replies RPL_LIST, RPL_LISTEND mark the actual replies</div><div class="line" id="LC2508">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with data and end of the server&#39;s response to a LIST</div><div class="line" id="LC2509">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command. If there are no channels available to return,</div><div class="line" id="LC2510">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;only the end reply MUST be sent.</div><div class="line" id="LC2511">&nbsp;</div><div class="line" id="LC2512">&nbsp;</div><div class="line" id="LC2513">&nbsp;</div><div class="line" id="LC2514">&nbsp;</div><div class="line" id="LC2515">&nbsp;</div><div class="line" id="LC2516">Kalt Informational [Page 45]</div><div class="line" id="LC2517">&nbsp;</div><div class="line" id="LC2518">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2519">&nbsp;</div><div class="line" id="LC2520">&nbsp;</div><div class="line" id="LC2521">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;325 RPL_UNIQOPIS</div><div class="line" id="LC2522">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; &lt;nickname&gt;&quot;</div><div class="line" id="LC2523">&nbsp;</div><div class="line" id="LC2524">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;324 RPL_CHANNELMODEIS</div><div class="line" id="LC2525">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; &lt;mode&gt; &lt;mode params&gt;&quot;</div><div class="line" id="LC2526">&nbsp;</div><div class="line" id="LC2527">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;331 RPL_NOTOPIC</div><div class="line" id="LC2528">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :No topic is set&quot;</div><div class="line" id="LC2529">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;332 RPL_TOPIC</div><div class="line" id="LC2530">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :&lt;topic&gt;&quot;</div><div class="line" id="LC2531">&nbsp;</div><div class="line" id="LC2532">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- When sending a TOPIC message to determine the</div><div class="line" id="LC2533">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;channel topic, one of two replies is sent. If</div><div class="line" id="LC2534">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the topic is set, RPL_TOPIC is sent back else</div><div class="line" id="LC2535">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_NOTOPIC.</div><div class="line" id="LC2536">&nbsp;</div><div class="line" id="LC2537">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;341 RPL_INVITING</div><div class="line" id="LC2538">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; &lt;nick&gt;&quot;</div><div class="line" id="LC2539">&nbsp;</div><div class="line" id="LC2540">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by the server to indicate that the</div><div class="line" id="LC2541">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attempted INVITE message was successful and is</div><div class="line" id="LC2542">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;being passed onto the end client.</div><div class="line" id="LC2543">&nbsp;</div><div class="line" id="LC2544">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;342 RPL_SUMMONING</div><div class="line" id="LC2545">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;user&gt; :Summoning user to IRC&quot;</div><div class="line" id="LC2546">&nbsp;</div><div class="line" id="LC2547">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by a server answering a SUMMON message to</div><div class="line" id="LC2548">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indicate that it is summoning that user.</div><div class="line" id="LC2549">&nbsp;</div><div class="line" id="LC2550">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;346 RPL_INVITELIST</div><div class="line" id="LC2551">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; &lt;invitemask&gt;&quot;</div><div class="line" id="LC2552">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;347 RPL_ENDOFINVITELIST</div><div class="line" id="LC2553">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :End of channel invite list&quot;</div><div class="line" id="LC2554">&nbsp;</div><div class="line" id="LC2555">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- When listing the &#39;invitations masks&#39; for a given channel,</div><div class="line" id="LC2556">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a server is required to send the list back using the</div><div class="line" id="LC2557">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_INVITELIST and RPL_ENDOFINVITELIST messages. A</div><div class="line" id="LC2558">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;separate RPL_INVITELIST is sent for each active mask.</div><div class="line" id="LC2559">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;After the masks have been listed (or if none present) a</div><div class="line" id="LC2560">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_ENDOFINVITELIST MUST be sent.</div><div class="line" id="LC2561">&nbsp;</div><div class="line" id="LC2562">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;348 RPL_EXCEPTLIST</div><div class="line" id="LC2563">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; &lt;exceptionmask&gt;&quot;</div><div class="line" id="LC2564">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;349 RPL_ENDOFEXCEPTLIST</div><div class="line" id="LC2565">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :End of channel exception list&quot;</div><div class="line" id="LC2566">&nbsp;</div><div class="line" id="LC2567">&nbsp;</div><div class="line" id="LC2568">&nbsp;</div><div class="line" id="LC2569">&nbsp;</div><div class="line" id="LC2570">&nbsp;</div><div class="line" id="LC2571">&nbsp;</div><div class="line" id="LC2572">Kalt Informational [Page 46]</div><div class="line" id="LC2573">&nbsp;</div><div class="line" id="LC2574">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2575">&nbsp;</div><div class="line" id="LC2576">&nbsp;</div><div class="line" id="LC2577">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- When listing the &#39;exception masks&#39; for a given channel,</div><div class="line" id="LC2578">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a server is required to send the list back using the</div><div class="line" id="LC2579">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_EXCEPTLIST and RPL_ENDOFEXCEPTLIST messages. A</div><div class="line" id="LC2580">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;separate RPL_EXCEPTLIST is sent for each active mask.</div><div class="line" id="LC2581">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;After the masks have been listed (or if none present)</div><div class="line" id="LC2582">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a RPL_ENDOFEXCEPTLIST MUST be sent.</div><div class="line" id="LC2583">&nbsp;</div><div class="line" id="LC2584">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;351 RPL_VERSION</div><div class="line" id="LC2585">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;version&gt;.&lt;debuglevel&gt; &lt;server&gt; :&lt;comments&gt;&quot;</div><div class="line" id="LC2586">&nbsp;</div><div class="line" id="LC2587">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Reply by the server showing its version details.</div><div class="line" id="LC2588">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The &lt;version&gt; is the version of the software being</div><div class="line" id="LC2589">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;used (including any patchlevel revisions) and the</div><div class="line" id="LC2590">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;debuglevel&gt; is used to indicate if the server is</div><div class="line" id="LC2591">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;running in &quot;debug mode&quot;.</div><div class="line" id="LC2592">&nbsp;</div><div class="line" id="LC2593">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The &quot;comments&quot; field may contain any comments about</div><div class="line" id="LC2594">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the version or further version details.</div><div class="line" id="LC2595">&nbsp;</div><div class="line" id="LC2596">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;352 RPL_WHOREPLY</div><div class="line" id="LC2597">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; &lt;user&gt; &lt;host&gt; &lt;server&gt; &lt;nick&gt;</div><div class="line" id="LC2598">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;( &quot;H&quot; / &quot;G&quot; &gt; [&quot;*&quot;] [ ( &quot;@&quot; / &quot;+&quot; ) ]</div><div class="line" id="LC2599">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&lt;hopcount&gt; &lt;real name&gt;&quot;</div><div class="line" id="LC2600">&nbsp;</div><div class="line" id="LC2601">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;315 RPL_ENDOFWHO</div><div class="line" id="LC2602">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;name&gt; :End of WHO list&quot;</div><div class="line" id="LC2603">&nbsp;</div><div class="line" id="LC2604">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- The RPL_WHOREPLY and RPL_ENDOFWHO pair are used</div><div class="line" id="LC2605">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to answer a WHO message. The RPL_WHOREPLY is only</div><div class="line" id="LC2606">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sent if there is an appropriate match to the WHO</div><div class="line" id="LC2607">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query. If there is a list of parameters supplied</div><div class="line" id="LC2608">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with a WHO message, a RPL_ENDOFWHO MUST be sent</div><div class="line" id="LC2609">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;after processing each list item with &lt;name&gt; being</div><div class="line" id="LC2610">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the item.</div><div class="line" id="LC2611">&nbsp;</div><div class="line" id="LC2612">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;353 RPL_NAMREPLY</div><div class="line" id="LC2613">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;( &quot;=&quot; / &quot;*&quot; / &quot;@&quot; ) &lt;channel&gt;</div><div class="line" id="LC2614">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:[ &quot;@&quot; / &quot;+&quot; ] &lt;nick&gt; *( &quot; &quot; [ &quot;@&quot; / &quot;+&quot; ] &lt;nick&gt; )</div><div class="line" id="LC2615">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &quot;@&quot; is used for secret channels, &quot;*&quot; for private</div><div class="line" id="LC2616">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;channels, and &quot;=&quot; for others (public channels).</div><div class="line" id="LC2617">&nbsp;</div><div class="line" id="LC2618">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;366 RPL_ENDOFNAMES</div><div class="line" id="LC2619">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :End of NAMES list&quot;</div><div class="line" id="LC2620">&nbsp;</div><div class="line" id="LC2621">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- To reply to a NAMES message, a reply pair consisting</div><div class="line" id="LC2622">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of RPL_NAMREPLY and RPL_ENDOFNAMES is sent by the</div><div class="line" id="LC2623">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server back to the client. If there is no channel</div><div class="line" id="LC2624">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;found as in the query, then only RPL_ENDOFNAMES is</div><div class="line" id="LC2625">&nbsp;</div><div class="line" id="LC2626">&nbsp;</div><div class="line" id="LC2627">&nbsp;</div><div class="line" id="LC2628">Kalt Informational [Page 47]</div><div class="line" id="LC2629">&nbsp;</div><div class="line" id="LC2630">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2631">&nbsp;</div><div class="line" id="LC2632">&nbsp;</div><div class="line" id="LC2633">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returned. The exception to this is when a NAMES</div><div class="line" id="LC2634">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message is sent with no parameters and all visible</div><div class="line" id="LC2635">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;channels and contents are sent back in a series of</div><div class="line" id="LC2636">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_NAMEREPLY messages with a RPL_ENDOFNAMES to mark</div><div class="line" id="LC2637">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the end.</div><div class="line" id="LC2638">&nbsp;</div><div class="line" id="LC2639">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;364 RPL_LINKS</div><div class="line" id="LC2640">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;mask&gt; &lt;server&gt; :&lt;hopcount&gt; &lt;server info&gt;&quot;</div><div class="line" id="LC2641">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;365 RPL_ENDOFLINKS</div><div class="line" id="LC2642">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;mask&gt; :End of LINKS list&quot;</div><div class="line" id="LC2643">&nbsp;</div><div class="line" id="LC2644">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- In replying to the LINKS message, a server MUST send</div><div class="line" id="LC2645">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replies back using the RPL_LINKS numeric and mark the</div><div class="line" id="LC2646">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end of the list using an RPL_ENDOFLINKS reply.</div><div class="line" id="LC2647">&nbsp;</div><div class="line" id="LC2648">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;367 RPL_BANLIST</div><div class="line" id="LC2649">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; &lt;banmask&gt;&quot;</div><div class="line" id="LC2650">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;368 RPL_ENDOFBANLIST</div><div class="line" id="LC2651">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :End of channel ban list&quot;</div><div class="line" id="LC2652">&nbsp;</div><div class="line" id="LC2653">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- When listing the active &#39;bans&#39; for a given channel,</div><div class="line" id="LC2654">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a server is required to send the list back using the</div><div class="line" id="LC2655">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_BANLIST and RPL_ENDOFBANLIST messages. A separate</div><div class="line" id="LC2656">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_BANLIST is sent for each active banmask. After the</div><div class="line" id="LC2657">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;banmasks have been listed (or if none present) a</div><div class="line" id="LC2658">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_ENDOFBANLIST MUST be sent.</div><div class="line" id="LC2659">&nbsp;</div><div class="line" id="LC2660">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;371 RPL_INFO</div><div class="line" id="LC2661">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:&lt;string&gt;&quot;</div><div class="line" id="LC2662">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;374 RPL_ENDOFINFO</div><div class="line" id="LC2663">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:End of INFO list&quot;</div><div class="line" id="LC2664">&nbsp;</div><div class="line" id="LC2665">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- A server responding to an INFO message is required to</div><div class="line" id="LC2666">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;send all its &#39;info&#39; in a series of RPL_INFO messages</div><div class="line" id="LC2667">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with a RPL_ENDOFINFO reply to indicate the end of the</div><div class="line" id="LC2668">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replies.</div><div class="line" id="LC2669">&nbsp;</div><div class="line" id="LC2670">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;375 RPL_MOTDSTART</div><div class="line" id="LC2671">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:- &lt;server&gt; Message of the day - &quot;</div><div class="line" id="LC2672">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;372 RPL_MOTD</div><div class="line" id="LC2673">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:- &lt;text&gt;&quot;</div><div class="line" id="LC2674">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;376 RPL_ENDOFMOTD</div><div class="line" id="LC2675">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:End of MOTD command&quot;</div><div class="line" id="LC2676">&nbsp;</div><div class="line" id="LC2677">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- When responding to the MOTD message and the MOTD file</div><div class="line" id="LC2678">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is found, the file is displayed line by line, with</div><div class="line" id="LC2679">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;each line no longer than 80 characters, using</div><div class="line" id="LC2680">&nbsp;</div><div class="line" id="LC2681">&nbsp;</div><div class="line" id="LC2682">&nbsp;</div><div class="line" id="LC2683">&nbsp;</div><div class="line" id="LC2684">Kalt Informational [Page 48]</div><div class="line" id="LC2685">&nbsp;</div><div class="line" id="LC2686">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2687">&nbsp;</div><div class="line" id="LC2688">&nbsp;</div><div class="line" id="LC2689">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_MOTD format replies. These MUST be surrounded</div><div class="line" id="LC2690">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;by a RPL_MOTDSTART (before the RPL_MOTDs) and an</div><div class="line" id="LC2691">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_ENDOFMOTD (after).</div><div class="line" id="LC2692">&nbsp;</div><div class="line" id="LC2693">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;381 RPL_YOUREOPER</div><div class="line" id="LC2694">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:You are now an IRC operator&quot;</div><div class="line" id="LC2695">&nbsp;</div><div class="line" id="LC2696">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- RPL_YOUREOPER is sent back to a client which has</div><div class="line" id="LC2697">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;just successfully issued an OPER message and gained</div><div class="line" id="LC2698">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operator status.</div><div class="line" id="LC2699">&nbsp;</div><div class="line" id="LC2700">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;382 RPL_REHASHING</div><div class="line" id="LC2701">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;config file&gt; :Rehashing&quot;</div><div class="line" id="LC2702">&nbsp;</div><div class="line" id="LC2703">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- If the REHASH option is used and an operator sends</div><div class="line" id="LC2704">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a REHASH message, an RPL_REHASHING is sent back to</div><div class="line" id="LC2705">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the operator.</div><div class="line" id="LC2706">&nbsp;</div><div class="line" id="LC2707">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;383 RPL_YOURESERVICE</div><div class="line" id="LC2708">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;You are service &lt;servicename&gt;&quot;</div><div class="line" id="LC2709">&nbsp;</div><div class="line" id="LC2710">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Sent by the server to a service upon successful</div><div class="line" id="LC2711">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;registration.</div><div class="line" id="LC2712">&nbsp;</div><div class="line" id="LC2713">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;391 RPL_TIME</div><div class="line" id="LC2714">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;server&gt; :&lt;string showing server&#39;s local time&gt;&quot;</div><div class="line" id="LC2715">&nbsp;</div><div class="line" id="LC2716">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- When replying to the TIME message, a server MUST send</div><div class="line" id="LC2717">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the reply using the RPL_TIME format above. The string</div><div class="line" id="LC2718">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;showing the time need only contain the correct day and</div><div class="line" id="LC2719">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time there. There is no further requirement for the</div><div class="line" id="LC2720">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time string.</div><div class="line" id="LC2721">&nbsp;</div><div class="line" id="LC2722">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;392 RPL_USERSSTART</div><div class="line" id="LC2723">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:UserID Terminal Host&quot;</div><div class="line" id="LC2724">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;393 RPL_USERS</div><div class="line" id="LC2725">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:&lt;username&gt; &lt;ttyline&gt; &lt;hostname&gt;&quot;</div><div class="line" id="LC2726">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;394 RPL_ENDOFUSERS</div><div class="line" id="LC2727">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:End of users&quot;</div><div class="line" id="LC2728">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;395 RPL_NOUSERS</div><div class="line" id="LC2729">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:Nobody logged in&quot;</div><div class="line" id="LC2730">&nbsp;</div><div class="line" id="LC2731">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- If the USERS message is handled by a server, the</div><div class="line" id="LC2732">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replies RPL_USERSTART, RPL_USERS, RPL_ENDOFUSERS and</div><div class="line" id="LC2733">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_NOUSERS are used. RPL_USERSSTART MUST be sent</div><div class="line" id="LC2734">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;first, following by either a sequence of RPL_USERS</div><div class="line" id="LC2735">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or a single RPL_NOUSER. Following this is</div><div class="line" id="LC2736">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_ENDOFUSERS.</div><div class="line" id="LC2737">&nbsp;</div><div class="line" id="LC2738">&nbsp;</div><div class="line" id="LC2739">&nbsp;</div><div class="line" id="LC2740">Kalt Informational [Page 49]</div><div class="line" id="LC2741">&nbsp;</div><div class="line" id="LC2742">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2743">&nbsp;</div><div class="line" id="LC2744">&nbsp;</div><div class="line" id="LC2745">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;200 RPL_TRACELINK</div><div class="line" id="LC2746">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Link &lt;version &amp; debug level&gt; &lt;destination&gt;</div><div class="line" id="LC2747">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;next server&gt; V&lt;protocol version&gt;</div><div class="line" id="LC2748">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;link uptime in seconds&gt; &lt;backstream sendq&gt;</div><div class="line" id="LC2749">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;upstream sendq&gt;&quot;</div><div class="line" id="LC2750">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;201 RPL_TRACECONNECTING</div><div class="line" id="LC2751">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Try. &lt;class&gt; &lt;server&gt;&quot;</div><div class="line" id="LC2752">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;202 RPL_TRACEHANDSHAKE</div><div class="line" id="LC2753">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;H.S. &lt;class&gt; &lt;server&gt;&quot;</div><div class="line" id="LC2754">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;203 RPL_TRACEUNKNOWN</div><div class="line" id="LC2755">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;???? &lt;class&gt; [&lt;client IP address in dot form&gt;]&quot;</div><div class="line" id="LC2756">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;204 RPL_TRACEOPERATOR</div><div class="line" id="LC2757">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Oper &lt;class&gt; &lt;nick&gt;&quot;</div><div class="line" id="LC2758">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;205 RPL_TRACEUSER</div><div class="line" id="LC2759">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;User &lt;class&gt; &lt;nick&gt;&quot;</div><div class="line" id="LC2760">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;206 RPL_TRACESERVER</div><div class="line" id="LC2761">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Serv &lt;class&gt; &lt;int&gt;S &lt;int&gt;C &lt;server&gt;</div><div class="line" id="LC2762">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;nick!user|*!*&gt;@&lt;host|server&gt; V&lt;protocol version&gt;&quot;</div><div class="line" id="LC2763">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;207 RPL_TRACESERVICE</div><div class="line" id="LC2764">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Service &lt;class&gt; &lt;name&gt; &lt;type&gt; &lt;active type&gt;&quot;</div><div class="line" id="LC2765">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;208 RPL_TRACENEWTYPE</div><div class="line" id="LC2766">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;newtype&gt; 0 &lt;client name&gt;&quot;</div><div class="line" id="LC2767">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;209 RPL_TRACECLASS</div><div class="line" id="LC2768">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Class &lt;class&gt; &lt;count&gt;&quot;</div><div class="line" id="LC2769">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;210 RPL_TRACERECONNECT</div><div class="line" id="LC2770">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unused.</div><div class="line" id="LC2771">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;261 RPL_TRACELOG</div><div class="line" id="LC2772">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;File &lt;logfile&gt; &lt;debug level&gt;&quot;</div><div class="line" id="LC2773">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;262 RPL_TRACEEND</div><div class="line" id="LC2774">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;server name&gt; &lt;version &amp; debug level&gt; :End of TRACE&quot;</div><div class="line" id="LC2775">&nbsp;</div><div class="line" id="LC2776">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- The RPL_TRACE* are all returned by the server in</div><div class="line" id="LC2777">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response to the TRACE message. How many are</div><div class="line" id="LC2778">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returned is dependent on the TRACE message and</div><div class="line" id="LC2779">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;whether it was sent by an operator or not. There</div><div class="line" id="LC2780">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is no predefined order for which occurs first.</div><div class="line" id="LC2781">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replies RPL_TRACEUNKNOWN, RPL_TRACECONNECTING and</div><div class="line" id="LC2782">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_TRACEHANDSHAKE are all used for connections</div><div class="line" id="LC2783">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;which have not been fully established and are either</div><div class="line" id="LC2784">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unknown, still attempting to connect or in the</div><div class="line" id="LC2785">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;process of completing the &#39;server handshake&#39;.</div><div class="line" id="LC2786">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_TRACELINK is sent by any server which handles</div><div class="line" id="LC2787">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a TRACE message and has to pass it on to another</div><div class="line" id="LC2788">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server. The list of RPL_TRACELINKs sent in</div><div class="line" id="LC2789">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response to a TRACE command traversing the IRC</div><div class="line" id="LC2790">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;network should reflect the actual connectivity of</div><div class="line" id="LC2791">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the servers themselves along that path.</div><div class="line" id="LC2792">&nbsp;</div><div class="line" id="LC2793">&nbsp;</div><div class="line" id="LC2794">&nbsp;</div><div class="line" id="LC2795">&nbsp;</div><div class="line" id="LC2796">Kalt Informational [Page 50]</div><div class="line" id="LC2797">&nbsp;</div><div class="line" id="LC2798">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2799">&nbsp;</div><div class="line" id="LC2800">&nbsp;</div><div class="line" id="LC2801">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_TRACENEWTYPE is to be used for any connection</div><div class="line" id="LC2802">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;which does not fit in the other categories but is</div><div class="line" id="LC2803">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;being displayed anyway.</div><div class="line" id="LC2804">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_TRACEEND is sent to indicate the end of the list.</div><div class="line" id="LC2805">&nbsp;</div><div class="line" id="LC2806">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;211 RPL_STATSLINKINFO</div><div class="line" id="LC2807">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;linkname&gt; &lt;sendq&gt; &lt;sent messages&gt;</div><div class="line" id="LC2808">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sent Kbytes&gt; &lt;received messages&gt;</div><div class="line" id="LC2809">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;received Kbytes&gt; &lt;time open&gt;&quot;</div><div class="line" id="LC2810">&nbsp;</div><div class="line" id="LC2811">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- reports statistics on a connection. &lt;linkname&gt;</div><div class="line" id="LC2812">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;identifies the particular connection, &lt;sendq&gt; is</div><div class="line" id="LC2813">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the amount of data that is queued and waiting to be</div><div class="line" id="LC2814">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sent &lt;sent messages&gt; the number of messages sent,</div><div class="line" id="LC2815">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and &lt;sent Kbytes&gt; the amount of data sent, in</div><div class="line" id="LC2816">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kbytes. &lt;received messages&gt; and &lt;received Kbytes&gt;</div><div class="line" id="LC2817">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are the equivalent of &lt;sent messages&gt; and &lt;sent</div><div class="line" id="LC2818">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kbytes&gt; for received data, respectively. &lt;time</div><div class="line" id="LC2819">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;open&gt; indicates how long ago the connection was</div><div class="line" id="LC2820">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opened, in seconds.</div><div class="line" id="LC2821">&nbsp;</div><div class="line" id="LC2822">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;212 RPL_STATSCOMMANDS</div><div class="line" id="LC2823">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;command&gt; &lt;count&gt; &lt;byte count&gt; &lt;remote count&gt;&quot;</div><div class="line" id="LC2824">&nbsp;</div><div class="line" id="LC2825">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- reports statistics on commands usage.</div><div class="line" id="LC2826">&nbsp;</div><div class="line" id="LC2827">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;219 RPL_ENDOFSTATS</div><div class="line" id="LC2828">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;stats letter&gt; :End of STATS report&quot;</div><div class="line" id="LC2829">&nbsp;</div><div class="line" id="LC2830">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;242 RPL_STATSUPTIME</div><div class="line" id="LC2831">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:Server Up %d days %d:%02d:%02d&quot;</div><div class="line" id="LC2832">&nbsp;</div><div class="line" id="LC2833">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- reports the server uptime.</div><div class="line" id="LC2834">&nbsp;</div><div class="line" id="LC2835">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;243 RPL_STATSOLINE</div><div class="line" id="LC2836">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;O &lt;hostmask&gt; * &lt;name&gt;&quot;</div><div class="line" id="LC2837">&nbsp;</div><div class="line" id="LC2838">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- reports the allowed hosts from where user may become IRC</div><div class="line" id="LC2839">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operators.</div><div class="line" id="LC2840">&nbsp;</div><div class="line" id="LC2841">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;221 RPL_UMODEIS</div><div class="line" id="LC2842">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;user mode string&gt;&quot;</div><div class="line" id="LC2843">&nbsp;</div><div class="line" id="LC2844">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- To answer a query about a client&#39;s own mode,</div><div class="line" id="LC2845">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_UMODEIS is sent back.</div><div class="line" id="LC2846">&nbsp;</div><div class="line" id="LC2847">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;234 RPL_SERVLIST</div><div class="line" id="LC2848">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;name&gt; &lt;server&gt; &lt;mask&gt; &lt;type&gt; &lt;hopcount&gt; &lt;info&gt;&quot;</div><div class="line" id="LC2849">&nbsp;</div><div class="line" id="LC2850">&nbsp;</div><div class="line" id="LC2851">&nbsp;</div><div class="line" id="LC2852">Kalt Informational [Page 51]</div><div class="line" id="LC2853">&nbsp;</div><div class="line" id="LC2854">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2855">&nbsp;</div><div class="line" id="LC2856">&nbsp;</div><div class="line" id="LC2857">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;235 RPL_SERVLISTEND</div><div class="line" id="LC2858">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;mask&gt; &lt;type&gt; :End of service listing&quot;</div><div class="line" id="LC2859">&nbsp;</div><div class="line" id="LC2860">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- When listing services in reply to a SERVLIST message,</div><div class="line" id="LC2861">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a server is required to send the list back using the</div><div class="line" id="LC2862">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_SERVLIST and RPL_SERVLISTEND messages. A separate</div><div class="line" id="LC2863">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_SERVLIST is sent for each service. After the</div><div class="line" id="LC2864">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;services have been listed (or if none present) a</div><div class="line" id="LC2865">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_SERVLISTEND MUST be sent.</div><div class="line" id="LC2866">&nbsp;</div><div class="line" id="LC2867">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;251 RPL_LUSERCLIENT</div><div class="line" id="LC2868">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:There are &lt;integer&gt; users and &lt;integer&gt;</div><div class="line" id="LC2869">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;services on &lt;integer&gt; servers&quot;</div><div class="line" id="LC2870">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;252 RPL_LUSEROP</div><div class="line" id="LC2871">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;integer&gt; :operator(s) online&quot;</div><div class="line" id="LC2872">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;253 RPL_LUSERUNKNOWN</div><div class="line" id="LC2873">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;integer&gt; :unknown connection(s)&quot;</div><div class="line" id="LC2874">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;254 RPL_LUSERCHANNELS</div><div class="line" id="LC2875">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;integer&gt; :channels formed&quot;</div><div class="line" id="LC2876">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;255 RPL_LUSERME</div><div class="line" id="LC2877">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:I have &lt;integer&gt; clients and &lt;integer&gt;</div><div class="line" id="LC2878">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;servers&quot;</div><div class="line" id="LC2879">&nbsp;</div><div class="line" id="LC2880">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- In processing an LUSERS message, the server</div><div class="line" id="LC2881">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sends a set of replies from RPL_LUSERCLIENT,</div><div class="line" id="LC2882">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_LUSEROP, RPL_USERUNKNOWN,</div><div class="line" id="LC2883">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_LUSERCHANNELS and RPL_LUSERME. When</div><div class="line" id="LC2884">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replying, a server MUST send back</div><div class="line" id="LC2885">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPL_LUSERCLIENT and RPL_LUSERME. The other</div><div class="line" id="LC2886">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replies are only sent back if a non-zero count</div><div class="line" id="LC2887">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is found for them.</div><div class="line" id="LC2888">&nbsp;</div><div class="line" id="LC2889">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;256 RPL_ADMINME</div><div class="line" id="LC2890">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;server&gt; :Administrative info&quot;</div><div class="line" id="LC2891">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;257 RPL_ADMINLOC1</div><div class="line" id="LC2892">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:&lt;admin info&gt;&quot;</div><div class="line" id="LC2893">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;258 RPL_ADMINLOC2</div><div class="line" id="LC2894">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:&lt;admin info&gt;&quot;</div><div class="line" id="LC2895">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;259 RPL_ADMINEMAIL</div><div class="line" id="LC2896">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:&lt;admin info&gt;&quot;</div><div class="line" id="LC2897">&nbsp;</div><div class="line" id="LC2898">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- When replying to an ADMIN message, a server</div><div class="line" id="LC2899">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is expected to use replies RPL_ADMINME</div><div class="line" id="LC2900">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;through to RPL_ADMINEMAIL and provide a text</div><div class="line" id="LC2901">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message with each. For RPL_ADMINLOC1 a</div><div class="line" id="LC2902">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description of what city, state and country</div><div class="line" id="LC2903">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the server is in is expected, followed by</div><div class="line" id="LC2904">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;details of the institution (RPL_ADMINLOC2)</div><div class="line" id="LC2905">&nbsp;</div><div class="line" id="LC2906">&nbsp;</div><div class="line" id="LC2907">&nbsp;</div><div class="line" id="LC2908">Kalt Informational [Page 52]</div><div class="line" id="LC2909">&nbsp;</div><div class="line" id="LC2910">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2911">&nbsp;</div><div class="line" id="LC2912">&nbsp;</div><div class="line" id="LC2913">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and finally the administrative contact for the</div><div class="line" id="LC2914">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server (an email address here is REQUIRED)</div><div class="line" id="LC2915">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in RPL_ADMINEMAIL.</div><div class="line" id="LC2916">&nbsp;</div><div class="line" id="LC2917">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;263 RPL_TRYAGAIN</div><div class="line" id="LC2918">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;command&gt; :Please wait a while and try again.&quot;</div><div class="line" id="LC2919">&nbsp;</div><div class="line" id="LC2920">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- When a server drops a command without processing it,</div><div class="line" id="LC2921">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it MUST use the reply RPL_TRYAGAIN to inform the</div><div class="line" id="LC2922">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;originating client.</div><div class="line" id="LC2923">&nbsp;</div><div class="line" id="LC2924">5.2 Error Replies</div><div class="line" id="LC2925">&nbsp;</div><div class="line" id="LC2926">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Error replies are found in the range from 400 to 599.</div><div class="line" id="LC2927">&nbsp;</div><div class="line" id="LC2928">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;401 ERR_NOSUCHNICK</div><div class="line" id="LC2929">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nickname&gt; :No such nick/channel&quot;</div><div class="line" id="LC2930">&nbsp;</div><div class="line" id="LC2931">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Used to indicate the nickname parameter supplied to a</div><div class="line" id="LC2932">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command is currently unused.</div><div class="line" id="LC2933">&nbsp;</div><div class="line" id="LC2934">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;402 ERR_NOSUCHSERVER</div><div class="line" id="LC2935">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;server name&gt; :No such server&quot;</div><div class="line" id="LC2936">&nbsp;</div><div class="line" id="LC2937">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Used to indicate the server name given currently</div><div class="line" id="LC2938">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;does not exist.</div><div class="line" id="LC2939">&nbsp;</div><div class="line" id="LC2940">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;403 ERR_NOSUCHCHANNEL</div><div class="line" id="LC2941">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel name&gt; :No such channel&quot;</div><div class="line" id="LC2942">&nbsp;</div><div class="line" id="LC2943">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Used to indicate the given channel name is invalid.</div><div class="line" id="LC2944">&nbsp;</div><div class="line" id="LC2945">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;404 ERR_CANNOTSENDTOCHAN</div><div class="line" id="LC2946">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel name&gt; :Cannot send to channel&quot;</div><div class="line" id="LC2947">&nbsp;</div><div class="line" id="LC2948">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Sent to a user who is either (a) not on a channel</div><div class="line" id="LC2949">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;which is mode +n or (b) not a chanop (or mode +v) on</div><div class="line" id="LC2950">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a channel which has mode +m set or where the user is</div><div class="line" id="LC2951">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;banned and is trying to send a PRIVMSG message to</div><div class="line" id="LC2952">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that channel.</div><div class="line" id="LC2953">&nbsp;</div><div class="line" id="LC2954">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;405 ERR_TOOMANYCHANNELS</div><div class="line" id="LC2955">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel name&gt; :You have joined too many channels&quot;</div><div class="line" id="LC2956">&nbsp;</div><div class="line" id="LC2957">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Sent to a user when they have joined the maximum</div><div class="line" id="LC2958">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;number of allowed channels and they try to join</div><div class="line" id="LC2959">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;another channel.</div><div class="line" id="LC2960">&nbsp;</div><div class="line" id="LC2961">&nbsp;</div><div class="line" id="LC2962">&nbsp;</div><div class="line" id="LC2963">&nbsp;</div><div class="line" id="LC2964">Kalt Informational [Page 53]</div><div class="line" id="LC2965">&nbsp;</div><div class="line" id="LC2966">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC2967">&nbsp;</div><div class="line" id="LC2968">&nbsp;</div><div class="line" id="LC2969">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;406 ERR_WASNOSUCHNICK</div><div class="line" id="LC2970">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nickname&gt; :There was no such nickname&quot;</div><div class="line" id="LC2971">&nbsp;</div><div class="line" id="LC2972">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by WHOWAS to indicate there is no history</div><div class="line" id="LC2973">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;information for that nickname.</div><div class="line" id="LC2974">&nbsp;</div><div class="line" id="LC2975">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;407 ERR_TOOMANYTARGETS</div><div class="line" id="LC2976">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;target&gt; :&lt;error code&gt; recipients. &lt;abort message&gt;&quot;</div><div class="line" id="LC2977">&nbsp;</div><div class="line" id="LC2978">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned to a client which is attempting to send a</div><div class="line" id="LC2979">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIVMSG/NOTICE using the user@host destination format</div><div class="line" id="LC2980">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and for a user@host which has several occurrences.</div><div class="line" id="LC2981">&nbsp;</div><div class="line" id="LC2982">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned to a client which trying to send a</div><div class="line" id="LC2983">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PRIVMSG/NOTICE to too many recipients.</div><div class="line" id="LC2984">&nbsp;</div><div class="line" id="LC2985">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned to a client which is attempting to JOIN a safe</div><div class="line" id="LC2986">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;channel using the shortname when there are more than one</div><div class="line" id="LC2987">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;such channel.</div><div class="line" id="LC2988">&nbsp;</div><div class="line" id="LC2989">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;408 ERR_NOSUCHSERVICE</div><div class="line" id="LC2990">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;service name&gt; :No such service&quot;</div><div class="line" id="LC2991">&nbsp;</div><div class="line" id="LC2992">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned to a client which is attempting to send a SQUERY</div><div class="line" id="LC2993">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to a service which does not exist.</div><div class="line" id="LC2994">&nbsp;</div><div class="line" id="LC2995">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;409 ERR_NOORIGIN</div><div class="line" id="LC2996">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:No origin specified&quot;</div><div class="line" id="LC2997">&nbsp;</div><div class="line" id="LC2998">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- PING or PONG message missing the originator parameter.</div><div class="line" id="LC2999">&nbsp;</div><div class="line" id="LC3000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;411 ERR_NORECIPIENT</div><div class="line" id="LC3001">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:No recipient given (&lt;command&gt;)&quot;</div><div class="line" id="LC3002">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;412 ERR_NOTEXTTOSEND</div><div class="line" id="LC3003">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:No text to send&quot;</div><div class="line" id="LC3004">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;413 ERR_NOTOPLEVEL</div><div class="line" id="LC3005">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;mask&gt; :No toplevel domain specified&quot;</div><div class="line" id="LC3006">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;414 ERR_WILDTOPLEVEL</div><div class="line" id="LC3007">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;mask&gt; :Wildcard in toplevel domain&quot;</div><div class="line" id="LC3008">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;415 ERR_BADMASK</div><div class="line" id="LC3009">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;mask&gt; :Bad Server/host mask&quot;</div><div class="line" id="LC3010">&nbsp;</div><div class="line" id="LC3011">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 412 - 415 are returned by PRIVMSG to indicate that</div><div class="line" id="LC3012">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the message wasn&#39;t delivered for some reason.</div><div class="line" id="LC3013">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ERR_NOTOPLEVEL and ERR_WILDTOPLEVEL are errors that</div><div class="line" id="LC3014">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are returned when an invalid use of</div><div class="line" id="LC3015">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;PRIVMSG $&lt;server&gt;&quot; or &quot;PRIVMSG #&lt;host&gt;&quot; is attempted.</div><div class="line" id="LC3016">&nbsp;</div><div class="line" id="LC3017">&nbsp;</div><div class="line" id="LC3018">&nbsp;</div><div class="line" id="LC3019">&nbsp;</div><div class="line" id="LC3020">Kalt Informational [Page 54]</div><div class="line" id="LC3021">&nbsp;</div><div class="line" id="LC3022">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC3023">&nbsp;</div><div class="line" id="LC3024">&nbsp;</div><div class="line" id="LC3025">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;421 ERR_UNKNOWNCOMMAND</div><div class="line" id="LC3026">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;command&gt; :Unknown command&quot;</div><div class="line" id="LC3027">&nbsp;</div><div class="line" id="LC3028">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned to a registered client to indicate that the</div><div class="line" id="LC3029">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command sent is unknown by the server.</div><div class="line" id="LC3030">&nbsp;</div><div class="line" id="LC3031">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;422 ERR_NOMOTD</div><div class="line" id="LC3032">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:MOTD File is missing&quot;</div><div class="line" id="LC3033">&nbsp;</div><div class="line" id="LC3034">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Server&#39;s MOTD file could not be opened by the server.</div><div class="line" id="LC3035">&nbsp;</div><div class="line" id="LC3036">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;423 ERR_NOADMININFO</div><div class="line" id="LC3037">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;server&gt; :No administrative info available&quot;</div><div class="line" id="LC3038">&nbsp;</div><div class="line" id="LC3039">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by a server in response to an ADMIN message</div><div class="line" id="LC3040">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when there is an error in finding the appropriate</div><div class="line" id="LC3041">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;information.</div><div class="line" id="LC3042">&nbsp;</div><div class="line" id="LC3043">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;424 ERR_FILEERROR</div><div class="line" id="LC3044">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:File error doing &lt;file op&gt; on &lt;file&gt;&quot;</div><div class="line" id="LC3045">&nbsp;</div><div class="line" id="LC3046">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Generic error message used to report a failed file</div><div class="line" id="LC3047">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operation during the processing of a message.</div><div class="line" id="LC3048">&nbsp;</div><div class="line" id="LC3049">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;431 ERR_NONICKNAMEGIVEN</div><div class="line" id="LC3050">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:No nickname given&quot;</div><div class="line" id="LC3051">&nbsp;</div><div class="line" id="LC3052">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned when a nickname parameter expected for a</div><div class="line" id="LC3053">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command and isn&#39;t found.</div><div class="line" id="LC3054">&nbsp;</div><div class="line" id="LC3055">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;432 ERR_ERRONEUSNICKNAME</div><div class="line" id="LC3056">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; :Erroneous nickname&quot;</div><div class="line" id="LC3057">&nbsp;</div><div class="line" id="LC3058">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned after receiving a NICK message which contains</div><div class="line" id="LC3059">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;characters which do not fall in the defined set. See</div><div class="line" id="LC3060">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;section 2.3.1 for details on valid nicknames.</div><div class="line" id="LC3061">&nbsp;</div><div class="line" id="LC3062">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;433 ERR_NICKNAMEINUSE</div><div class="line" id="LC3063">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; :Nickname is already in use&quot;</div><div class="line" id="LC3064">&nbsp;</div><div class="line" id="LC3065">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned when a NICK message is processed that results</div><div class="line" id="LC3066">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in an attempt to change to a currently existing</div><div class="line" id="LC3067">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nickname.</div><div class="line" id="LC3068">&nbsp;</div><div class="line" id="LC3069">&nbsp;</div><div class="line" id="LC3070">&nbsp;</div><div class="line" id="LC3071">&nbsp;</div><div class="line" id="LC3072">&nbsp;</div><div class="line" id="LC3073">&nbsp;</div><div class="line" id="LC3074">&nbsp;</div><div class="line" id="LC3075">&nbsp;</div><div class="line" id="LC3076">Kalt Informational [Page 55]</div><div class="line" id="LC3077">&nbsp;</div><div class="line" id="LC3078">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC3079">&nbsp;</div><div class="line" id="LC3080">&nbsp;</div><div class="line" id="LC3081">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;436 ERR_NICKCOLLISION</div><div class="line" id="LC3082">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; :Nickname collision KILL from &lt;user&gt;@&lt;host&gt;&quot;</div><div class="line" id="LC3083">&nbsp;</div><div class="line" id="LC3084">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by a server to a client when it detects a</div><div class="line" id="LC3085">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nickname collision (registered of a NICK that</div><div class="line" id="LC3086">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;already exists by another server).</div><div class="line" id="LC3087">&nbsp;</div><div class="line" id="LC3088">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;437 ERR_UNAVAILRESOURCE</div><div class="line" id="LC3089">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick/channel&gt; :Nick/channel is temporarily unavailable&quot;</div><div class="line" id="LC3090">&nbsp;</div><div class="line" id="LC3091">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by a server to a user trying to join a channel</div><div class="line" id="LC3092">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currently blocked by the channel delay mechanism.</div><div class="line" id="LC3093">&nbsp;</div><div class="line" id="LC3094">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by a server to a user trying to change nickname</div><div class="line" id="LC3095">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when the desired nickname is blocked by the nick delay</div><div class="line" id="LC3096">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mechanism.</div><div class="line" id="LC3097">&nbsp;</div><div class="line" id="LC3098">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;441 ERR_USERNOTINCHANNEL</div><div class="line" id="LC3099">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;nick&gt; &lt;channel&gt; :They aren&#39;t on that channel&quot;</div><div class="line" id="LC3100">&nbsp;</div><div class="line" id="LC3101">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by the server to indicate that the target</div><div class="line" id="LC3102">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user of the command is not on the given channel.</div><div class="line" id="LC3103">&nbsp;</div><div class="line" id="LC3104">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;442 ERR_NOTONCHANNEL</div><div class="line" id="LC3105">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :You&#39;re not on that channel&quot;</div><div class="line" id="LC3106">&nbsp;</div><div class="line" id="LC3107">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by the server whenever a client tries to</div><div class="line" id="LC3108">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perform a channel affecting command for which the</div><div class="line" id="LC3109">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client isn&#39;t a member.</div><div class="line" id="LC3110">&nbsp;</div><div class="line" id="LC3111">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;443 ERR_USERONCHANNEL</div><div class="line" id="LC3112">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;user&gt; &lt;channel&gt; :is already on channel&quot;</div><div class="line" id="LC3113">&nbsp;</div><div class="line" id="LC3114">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned when a client tries to invite a user to a</div><div class="line" id="LC3115">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;channel they are already on.</div><div class="line" id="LC3116">&nbsp;</div><div class="line" id="LC3117">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;444 ERR_NOLOGIN</div><div class="line" id="LC3118">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;user&gt; :User not logged in&quot;</div><div class="line" id="LC3119">&nbsp;</div><div class="line" id="LC3120">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by the summon after a SUMMON command for a</div><div class="line" id="LC3121">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user was unable to be performed since they were not</div><div class="line" id="LC3122">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logged in.</div><div class="line" id="LC3123">&nbsp;</div><div class="line" id="LC3124">&nbsp;</div><div class="line" id="LC3125">&nbsp;</div><div class="line" id="LC3126">&nbsp;</div><div class="line" id="LC3127">&nbsp;</div><div class="line" id="LC3128">&nbsp;</div><div class="line" id="LC3129">&nbsp;</div><div class="line" id="LC3130">&nbsp;</div><div class="line" id="LC3131">&nbsp;</div><div class="line" id="LC3132">Kalt Informational [Page 56]</div><div class="line" id="LC3133">&nbsp;</div><div class="line" id="LC3134">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC3135">&nbsp;</div><div class="line" id="LC3136">&nbsp;</div><div class="line" id="LC3137">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;445 ERR_SUMMONDISABLED</div><div class="line" id="LC3138">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:SUMMON has been disabled&quot;</div><div class="line" id="LC3139">&nbsp;</div><div class="line" id="LC3140">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned as a response to the SUMMON command. MUST be</div><div class="line" id="LC3141">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returned by any server which doesn&#39;t implement it.</div><div class="line" id="LC3142">&nbsp;</div><div class="line" id="LC3143">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;446 ERR_USERSDISABLED</div><div class="line" id="LC3144">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:USERS has been disabled&quot;</div><div class="line" id="LC3145">&nbsp;</div><div class="line" id="LC3146">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned as a response to the USERS command. MUST be</div><div class="line" id="LC3147">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returned by any server which does not implement it.</div><div class="line" id="LC3148">&nbsp;</div><div class="line" id="LC3149">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;451 ERR_NOTREGISTERED</div><div class="line" id="LC3150">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:You have not registered&quot;</div><div class="line" id="LC3151">&nbsp;</div><div class="line" id="LC3152">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by the server to indicate that the client</div><div class="line" id="LC3153">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MUST be registered before the server will allow it</div><div class="line" id="LC3154">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to be parsed in detail.</div><div class="line" id="LC3155">&nbsp;</div><div class="line" id="LC3156">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;461 ERR_NEEDMOREPARAMS</div><div class="line" id="LC3157">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;command&gt; :Not enough parameters&quot;</div><div class="line" id="LC3158">&nbsp;</div><div class="line" id="LC3159">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by the server by numerous commands to</div><div class="line" id="LC3160">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indicate to the client that it didn&#39;t supply enough</div><div class="line" id="LC3161">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parameters.</div><div class="line" id="LC3162">&nbsp;</div><div class="line" id="LC3163">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;462 ERR_ALREADYREGISTRED</div><div class="line" id="LC3164">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:Unauthorized command (already registered)&quot;</div><div class="line" id="LC3165">&nbsp;</div><div class="line" id="LC3166">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by the server to any link which tries to</div><div class="line" id="LC3167">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;change part of the registered details (such as</div><div class="line" id="LC3168">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password or user details from second USER message).</div><div class="line" id="LC3169">&nbsp;</div><div class="line" id="LC3170">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;463 ERR_NOPERMFORHOST</div><div class="line" id="LC3171">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:Your host isn&#39;t among the privileged&quot;</div><div class="line" id="LC3172">&nbsp;</div><div class="line" id="LC3173">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned to a client which attempts to register with</div><div class="line" id="LC3174">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a server which does not been setup to allow</div><div class="line" id="LC3175">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connections from the host the attempted connection</div><div class="line" id="LC3176">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is tried.</div><div class="line" id="LC3177">&nbsp;</div><div class="line" id="LC3178">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;464 ERR_PASSWDMISMATCH</div><div class="line" id="LC3179">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:Password incorrect&quot;</div><div class="line" id="LC3180">&nbsp;</div><div class="line" id="LC3181">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned to indicate a failed attempt at registering</div><div class="line" id="LC3182">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a connection for which a password was required and</div><div class="line" id="LC3183">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;was either not given or incorrect.</div><div class="line" id="LC3184">&nbsp;</div><div class="line" id="LC3185">&nbsp;</div><div class="line" id="LC3186">&nbsp;</div><div class="line" id="LC3187">&nbsp;</div><div class="line" id="LC3188">Kalt Informational [Page 57]</div><div class="line" id="LC3189">&nbsp;</div><div class="line" id="LC3190">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC3191">&nbsp;</div><div class="line" id="LC3192">&nbsp;</div><div class="line" id="LC3193">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;465 ERR_YOUREBANNEDCREEP</div><div class="line" id="LC3194">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:You are banned from this server&quot;</div><div class="line" id="LC3195">&nbsp;</div><div class="line" id="LC3196">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned after an attempt to connect and register</div><div class="line" id="LC3197">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yourself with a server which has been setup to</div><div class="line" id="LC3198">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;explicitly deny connections to you.</div><div class="line" id="LC3199">&nbsp;</div><div class="line" id="LC3200">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;466 ERR_YOUWILLBEBANNED</div><div class="line" id="LC3201">&nbsp;</div><div class="line" id="LC3202">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Sent by a server to a user to inform that access to the</div><div class="line" id="LC3203">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server will soon be denied.</div><div class="line" id="LC3204">&nbsp;</div><div class="line" id="LC3205">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;467 ERR_KEYSET</div><div class="line" id="LC3206">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :Channel key already set&quot;</div><div class="line" id="LC3207">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;471 ERR_CHANNELISFULL</div><div class="line" id="LC3208">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :Cannot join channel (+l)&quot;</div><div class="line" id="LC3209">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;472 ERR_UNKNOWNMODE</div><div class="line" id="LC3210">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;char&gt; :is unknown mode char to me for &lt;channel&gt;&quot;</div><div class="line" id="LC3211">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;473 ERR_INVITEONLYCHAN</div><div class="line" id="LC3212">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :Cannot join channel (+i)&quot;</div><div class="line" id="LC3213">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;474 ERR_BANNEDFROMCHAN</div><div class="line" id="LC3214">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :Cannot join channel (+b)&quot;</div><div class="line" id="LC3215">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;475 ERR_BADCHANNELKEY</div><div class="line" id="LC3216">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :Cannot join channel (+k)&quot;</div><div class="line" id="LC3217">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;476 ERR_BADCHANMASK</div><div class="line" id="LC3218">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :Bad Channel Mask&quot;</div><div class="line" id="LC3219">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;477 ERR_NOCHANMODES</div><div class="line" id="LC3220">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :Channel doesn&#39;t support modes&quot;</div><div class="line" id="LC3221">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;478 ERR_BANLISTFULL</div><div class="line" id="LC3222">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; &lt;char&gt; :Channel list is full&quot;</div><div class="line" id="LC3223">&nbsp;</div><div class="line" id="LC3224">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;481 ERR_NOPRIVILEGES</div><div class="line" id="LC3225">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:Permission Denied- You&#39;re not an IRC operator&quot;</div><div class="line" id="LC3226">&nbsp;</div><div class="line" id="LC3227">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Any command requiring operator privileges to operate</div><div class="line" id="LC3228">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MUST return this error to indicate the attempt was</div><div class="line" id="LC3229">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsuccessful.</div><div class="line" id="LC3230">&nbsp;</div><div class="line" id="LC3231">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;482 ERR_CHANOPRIVSNEEDED</div><div class="line" id="LC3232">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&lt;channel&gt; :You&#39;re not channel operator&quot;</div><div class="line" id="LC3233">&nbsp;</div><div class="line" id="LC3234">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Any command requiring &#39;chanop&#39; privileges (such as</div><div class="line" id="LC3235">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MODE messages) MUST return this error if the client</div><div class="line" id="LC3236">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;making the attempt is not a chanop on the specified</div><div class="line" id="LC3237">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;channel.</div><div class="line" id="LC3238">&nbsp;</div><div class="line" id="LC3239">&nbsp;</div><div class="line" id="LC3240">&nbsp;</div><div class="line" id="LC3241">&nbsp;</div><div class="line" id="LC3242">&nbsp;</div><div class="line" id="LC3243">&nbsp;</div><div class="line" id="LC3244">Kalt Informational [Page 58]</div><div class="line" id="LC3245">&nbsp;</div><div class="line" id="LC3246">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC3247">&nbsp;</div><div class="line" id="LC3248">&nbsp;</div><div class="line" id="LC3249">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;483 ERR_CANTKILLSERVER</div><div class="line" id="LC3250">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:You can&#39;t kill a server!&quot;</div><div class="line" id="LC3251">&nbsp;</div><div class="line" id="LC3252">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Any attempts to use the KILL command on a server</div><div class="line" id="LC3253">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are to be refused and this error returned directly</div><div class="line" id="LC3254">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to the client.</div><div class="line" id="LC3255">&nbsp;</div><div class="line" id="LC3256">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;484 ERR_RESTRICTED</div><div class="line" id="LC3257">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:Your connection is restricted!&quot;</div><div class="line" id="LC3258">&nbsp;</div><div class="line" id="LC3259">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Sent by the server to a user upon connection to indicate</div><div class="line" id="LC3260">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the restricted nature of the connection (user mode &quot;+r&quot;).</div><div class="line" id="LC3261">&nbsp;</div><div class="line" id="LC3262">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;485 ERR_UNIQOPPRIVSNEEDED</div><div class="line" id="LC3263">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:You&#39;re not the original channel operator&quot;</div><div class="line" id="LC3264">&nbsp;</div><div class="line" id="LC3265">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Any MODE requiring &quot;channel creator&quot; privileges MUST</div><div class="line" id="LC3266">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return this error if the client making the attempt is not</div><div class="line" id="LC3267">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a chanop on the specified channel.</div><div class="line" id="LC3268">&nbsp;</div><div class="line" id="LC3269">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;491 ERR_NOOPERHOST</div><div class="line" id="LC3270">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:No O-lines for your host&quot;</div><div class="line" id="LC3271">&nbsp;</div><div class="line" id="LC3272">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- If a client sends an OPER message and the server has</div><div class="line" id="LC3273">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not been configured to allow connections from the</div><div class="line" id="LC3274">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client&#39;s host as an operator, this error MUST be</div><div class="line" id="LC3275">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returned.</div><div class="line" id="LC3276">&nbsp;</div><div class="line" id="LC3277">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;501 ERR_UMODEUNKNOWNFLAG</div><div class="line" id="LC3278">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:Unknown MODE flag&quot;</div><div class="line" id="LC3279">&nbsp;</div><div class="line" id="LC3280">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Returned by the server to indicate that a MODE</div><div class="line" id="LC3281">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message was sent with a nickname parameter and that</div><div class="line" id="LC3282">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the a mode flag sent was not recognized.</div><div class="line" id="LC3283">&nbsp;</div><div class="line" id="LC3284">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;502 ERR_USERSDONTMATCH</div><div class="line" id="LC3285">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;:Cannot change mode for other users&quot;</div><div class="line" id="LC3286">&nbsp;</div><div class="line" id="LC3287">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Error sent to any user trying to view or change the</div><div class="line" id="LC3288">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user mode for a user other than themselves.</div><div class="line" id="LC3289">&nbsp;</div><div class="line" id="LC3290">5.3 Reserved numerics</div><div class="line" id="LC3291">&nbsp;</div><div class="line" id="LC3292">&nbsp;&nbsp;&nbsp;These numerics are not described above since they fall into one of</div><div class="line" id="LC3293">&nbsp;&nbsp;&nbsp;the following categories:</div><div class="line" id="LC3294">&nbsp;</div><div class="line" id="LC3295">&nbsp;&nbsp;&nbsp;1. no longer in use;</div><div class="line" id="LC3296">&nbsp;</div><div class="line" id="LC3297">&nbsp;</div><div class="line" id="LC3298">&nbsp;</div><div class="line" id="LC3299">&nbsp;</div><div class="line" id="LC3300">Kalt Informational [Page 59]</div><div class="line" id="LC3301">&nbsp;</div><div class="line" id="LC3302">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC3303">&nbsp;</div><div class="line" id="LC3304">&nbsp;</div><div class="line" id="LC3305">&nbsp;&nbsp;&nbsp;2. reserved for future planned use;</div><div class="line" id="LC3306">&nbsp;</div><div class="line" id="LC3307">&nbsp;&nbsp;&nbsp;3. in current use but are part of a non-generic &#39;feature&#39; of</div><div class="line" id="LC3308">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the current IRC server.</div><div class="line" id="LC3309">&nbsp;</div><div class="line" id="LC3310">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;231 RPL_SERVICEINFO 232 RPL_ENDOFSERVICES</div><div class="line" id="LC3311">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;233 RPL_SERVICE</div><div class="line" id="LC3312">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;300 RPL_NONE 316 RPL_WHOISCHANOP</div><div class="line" id="LC3313">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;361 RPL_KILLDONE 362 RPL_CLOSING</div><div class="line" id="LC3314">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;363 RPL_CLOSEEND 373 RPL_INFOSTART</div><div class="line" id="LC3315">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;384 RPL_MYPORTIS</div><div class="line" id="LC3316">&nbsp;</div><div class="line" id="LC3317">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;213 RPL_STATSCLINE 214 RPL_STATSNLINE</div><div class="line" id="LC3318">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;215 RPL_STATSILINE 216 RPL_STATSKLINE</div><div class="line" id="LC3319">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;217 RPL_STATSQLINE 218 RPL_STATSYLINE</div><div class="line" id="LC3320">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;240 RPL_STATSVLINE 241 RPL_STATSLLINE</div><div class="line" id="LC3321">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;244 RPL_STATSHLINE 244 RPL_STATSSLINE</div><div class="line" id="LC3322">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;246 RPL_STATSPING 247 RPL_STATSBLINE</div><div class="line" id="LC3323">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;250 RPL_STATSDLINE</div><div class="line" id="LC3324">&nbsp;</div><div class="line" id="LC3325">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;492 ERR_NOSERVICEHOST</div><div class="line" id="LC3326">&nbsp;</div><div class="line" id="LC3327">6. Current implementations</div><div class="line" id="LC3328">&nbsp;</div><div class="line" id="LC3329">&nbsp;&nbsp;&nbsp;The IRC software, version 2.10 is the only complete implementation of</div><div class="line" id="LC3330">&nbsp;&nbsp;&nbsp;the IRC protocol (client and server). Because of the small amount of</div><div class="line" id="LC3331">&nbsp;&nbsp;&nbsp;changes in the client protocol since the publication of RFC 1459</div><div class="line" id="LC3332">&nbsp;&nbsp;&nbsp;[IRC], implementations that follow it are likely to be compliant with</div><div class="line" id="LC3333">&nbsp;&nbsp;&nbsp;this protocol or to require a small amount of changes to reach</div><div class="line" id="LC3334">&nbsp;&nbsp;&nbsp;compliance.</div><div class="line" id="LC3335">&nbsp;</div><div class="line" id="LC3336">7. Current problems</div><div class="line" id="LC3337">&nbsp;</div><div class="line" id="LC3338">&nbsp;&nbsp;&nbsp;There are a number of recognized problems with the IRC Client</div><div class="line" id="LC3339">&nbsp;&nbsp;&nbsp;Protocol, and more generally with the IRC Server Protocol. In order</div><div class="line" id="LC3340">&nbsp;&nbsp;&nbsp;to preserve backward compatibility with old clients, this protocol</div><div class="line" id="LC3341">&nbsp;&nbsp;&nbsp;has almost not evolved since the publication of RFC 1459 [IRC].</div><div class="line" id="LC3342">&nbsp;</div><div class="line" id="LC3343">7.1 Nicknames</div><div class="line" id="LC3344">&nbsp;</div><div class="line" id="LC3345">&nbsp;&nbsp;&nbsp;The idea of the nickname on IRC is very convenient for users to use</div><div class="line" id="LC3346">&nbsp;&nbsp;&nbsp;when talking to each other outside of a channel, but there is only a</div><div class="line" id="LC3347">&nbsp;&nbsp;&nbsp;finite nickname space and being what they are, it&#39;s not uncommon for</div><div class="line" id="LC3348">&nbsp;&nbsp;&nbsp;several people to want to use the same nick. If a nickname is chosen</div><div class="line" id="LC3349">&nbsp;&nbsp;&nbsp;by two people using this protocol, either one will not succeed or</div><div class="line" id="LC3350">&nbsp;&nbsp;&nbsp;both will removed by use of a server KILL (See Section 3.7.1).</div><div class="line" id="LC3351">&nbsp;</div><div class="line" id="LC3352">&nbsp;</div><div class="line" id="LC3353">&nbsp;</div><div class="line" id="LC3354">&nbsp;</div><div class="line" id="LC3355">&nbsp;</div><div class="line" id="LC3356">Kalt Informational [Page 60]</div><div class="line" id="LC3357">&nbsp;</div><div class="line" id="LC3358">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC3359">&nbsp;</div><div class="line" id="LC3360">&nbsp;</div><div class="line" id="LC3361">7.2 Limitation of wildcards</div><div class="line" id="LC3362">&nbsp;</div><div class="line" id="LC3363">&nbsp;&nbsp;&nbsp;There is no way to escape the escape character &quot;\&quot; (%x5C). While</div><div class="line" id="LC3364">&nbsp;&nbsp;&nbsp;this isn&#39;t usually a problem, it makes it impossible to form a mask</div><div class="line" id="LC3365">&nbsp;&nbsp;&nbsp;with a backslash character (&quot;\&quot;) preceding a wildcard.</div><div class="line" id="LC3366">&nbsp;</div><div class="line" id="LC3367">7.3 Security considerations</div><div class="line" id="LC3368">&nbsp;</div><div class="line" id="LC3369">&nbsp;&nbsp;&nbsp;Security issues related to this protocol are discussed in the &quot;IRC</div><div class="line" id="LC3370">&nbsp;&nbsp;&nbsp;Server Protocol&quot; [IRC-SERVER] as they are mostly an issue for the</div><div class="line" id="LC3371">&nbsp;&nbsp;&nbsp;server side of the connection.</div><div class="line" id="LC3372">&nbsp;</div><div class="line" id="LC3373">8. Current support and availability</div><div class="line" id="LC3374">&nbsp;</div><div class="line" id="LC3375">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mailing lists for IRC related discussion:</div><div class="line" id="LC3376">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;General discussion: ircd-users@irc.org</div><div class="line" id="LC3377">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Protocol development: ircd-dev@irc.org</div><div class="line" id="LC3378">&nbsp;</div><div class="line" id="LC3379">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Software implementations:</div><div class="line" id="LC3380">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftp://ftp.irc.org/irc/server</div><div class="line" id="LC3381">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftp://ftp.funet.fi/pub/unix/irc</div><div class="line" id="LC3382">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftp://ftp.irc.org/irc/clients</div><div class="line" id="LC3383">&nbsp;</div><div class="line" id="LC3384">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Newsgroup: alt.irc</div><div class="line" id="LC3385">&nbsp;</div><div class="line" id="LC3386">9. Acknowledgements</div><div class="line" id="LC3387">&nbsp;</div><div class="line" id="LC3388">&nbsp;&nbsp;&nbsp;Parts of this document were copied from the RFC 1459 [IRC] which</div><div class="line" id="LC3389">&nbsp;&nbsp;&nbsp;first formally documented the IRC Protocol. It has also benefited</div><div class="line" id="LC3390">&nbsp;&nbsp;&nbsp;from many rounds of review and comments. In particular, the</div><div class="line" id="LC3391">&nbsp;&nbsp;&nbsp;following people have made significant contributions to this</div><div class="line" id="LC3392">&nbsp;&nbsp;&nbsp;document:</div><div class="line" id="LC3393">&nbsp;</div><div class="line" id="LC3394">&nbsp;&nbsp;&nbsp;Matthew Green, Michael Neumayer, Volker Paulsen, Kurt Roeckx, Vesa</div><div class="line" id="LC3395">&nbsp;&nbsp;&nbsp;Ruokonen, Magnus Tjernstrom, Stefan Zehl.</div><div class="line" id="LC3396">&nbsp;</div><div class="line" id="LC3397">&nbsp;</div><div class="line" id="LC3398">&nbsp;</div><div class="line" id="LC3399">&nbsp;</div><div class="line" id="LC3400">&nbsp;</div><div class="line" id="LC3401">&nbsp;</div><div class="line" id="LC3402">&nbsp;</div><div class="line" id="LC3403">&nbsp;</div><div class="line" id="LC3404">&nbsp;</div><div class="line" id="LC3405">&nbsp;</div><div class="line" id="LC3406">&nbsp;</div><div class="line" id="LC3407">&nbsp;</div><div class="line" id="LC3408">&nbsp;</div><div class="line" id="LC3409">&nbsp;</div><div class="line" id="LC3410">&nbsp;</div><div class="line" id="LC3411">&nbsp;</div><div class="line" id="LC3412">Kalt Informational [Page 61]</div><div class="line" id="LC3413">&nbsp;</div><div class="line" id="LC3414">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC3415">&nbsp;</div><div class="line" id="LC3416">&nbsp;</div><div class="line" id="LC3417">10. References</div><div class="line" id="LC3418">&nbsp;</div><div class="line" id="LC3419">&nbsp;&nbsp;&nbsp;[KEYWORDS] Bradner, S., &quot;Key words for use in RFCs to Indicate</div><div class="line" id="LC3420">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Requirement Levels&quot;, BCP 14, RFC 2119, March 1997.</div><div class="line" id="LC3421">&nbsp;</div><div class="line" id="LC3422">&nbsp;&nbsp;&nbsp;[ABNF] Crocker, D. and P. Overell, &quot;Augmented BNF for Syntax</div><div class="line" id="LC3423">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Specifications: ABNF&quot;, RFC 2234, November 1997.</div><div class="line" id="LC3424">&nbsp;</div><div class="line" id="LC3425">&nbsp;&nbsp;&nbsp;[HNAME] Braden, R., &quot;Requirements for Internet Hosts --</div><div class="line" id="LC3426">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application and Support&quot;, STD 3, RFC 1123, October 1989.</div><div class="line" id="LC3427">&nbsp;</div><div class="line" id="LC3428">&nbsp;&nbsp;&nbsp;[IRC] Oikarinen, J. &amp; D. Reed, &quot;Internet Relay Chat Protocol&quot;,</div><div class="line" id="LC3429">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RFC 1459, May 1993.</div><div class="line" id="LC3430">&nbsp;</div><div class="line" id="LC3431">&nbsp;&nbsp;&nbsp;[IRC-ARCH] Kalt, C., &quot;Internet Relay Chat: Architecture&quot;, RFC 2810,</div><div class="line" id="LC3432">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;April 2000.</div><div class="line" id="LC3433">&nbsp;</div><div class="line" id="LC3434">&nbsp;&nbsp;&nbsp;[IRC-CHAN] Kalt, C., &quot;Internet Relay Chat: Channel Management&quot;, RFC</div><div class="line" id="LC3435">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2811, April 2000.</div><div class="line" id="LC3436">&nbsp;</div><div class="line" id="LC3437">&nbsp;&nbsp;&nbsp;[IRC-SERVER] Kalt, C., &quot;Internet Relay Chat: Server Protocol&quot;, RFC</div><div class="line" id="LC3438">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2813, April 2000.</div><div class="line" id="LC3439">&nbsp;</div><div class="line" id="LC3440">11. Author&#39;s Address</div><div class="line" id="LC3441">&nbsp;</div><div class="line" id="LC3442">&nbsp;&nbsp;&nbsp;Christophe Kalt</div><div class="line" id="LC3443">&nbsp;&nbsp;&nbsp;99 Teaneck Rd, Apt #117</div><div class="line" id="LC3444">&nbsp;&nbsp;&nbsp;Ridgefield Park, NJ 07660</div><div class="line" id="LC3445">&nbsp;&nbsp;&nbsp;USA</div><div class="line" id="LC3446">&nbsp;</div><div class="line" id="LC3447">&nbsp;&nbsp;&nbsp;EMail: kalt@stealth.net</div><div class="line" id="LC3448">&nbsp;</div><div class="line" id="LC3449">&nbsp;</div><div class="line" id="LC3450">&nbsp;</div><div class="line" id="LC3451">&nbsp;</div><div class="line" id="LC3452">&nbsp;</div><div class="line" id="LC3453">&nbsp;</div><div class="line" id="LC3454">&nbsp;</div><div class="line" id="LC3455">&nbsp;</div><div class="line" id="LC3456">&nbsp;</div><div class="line" id="LC3457">&nbsp;</div><div class="line" id="LC3458">&nbsp;</div><div class="line" id="LC3459">&nbsp;</div><div class="line" id="LC3460">&nbsp;</div><div class="line" id="LC3461">&nbsp;</div><div class="line" id="LC3462">&nbsp;</div><div class="line" id="LC3463">&nbsp;</div><div class="line" id="LC3464">&nbsp;</div><div class="line" id="LC3465">&nbsp;</div><div class="line" id="LC3466">&nbsp;</div><div class="line" id="LC3467">&nbsp;</div><div class="line" id="LC3468">Kalt Informational [Page 62]</div><div class="line" id="LC3469">&nbsp;</div><div class="line" id="LC3470">RFC 2812 Internet Relay Chat: Client Protocol April 2000</div><div class="line" id="LC3471">&nbsp;</div><div class="line" id="LC3472">&nbsp;</div><div class="line" id="LC3473">12. Full Copyright Statement</div><div class="line" id="LC3474">&nbsp;</div><div class="line" id="LC3475">&nbsp;&nbsp;&nbsp;Copyright (C) The Internet Society (2000). All Rights Reserved.</div><div class="line" id="LC3476">&nbsp;</div><div class="line" id="LC3477">&nbsp;&nbsp;&nbsp;This document and translations of it may be copied and furnished to</div><div class="line" id="LC3478">&nbsp;&nbsp;&nbsp;others, and derivative works that comment on or otherwise explain it</div><div class="line" id="LC3479">&nbsp;&nbsp;&nbsp;or assist in its implementation may be prepared, copied, published</div><div class="line" id="LC3480">&nbsp;&nbsp;&nbsp;and distributed, in whole or in part, without restriction of any</div><div class="line" id="LC3481">&nbsp;&nbsp;&nbsp;kind, provided that the above copyright notice and this paragraph are</div><div class="line" id="LC3482">&nbsp;&nbsp;&nbsp;included on all such copies and derivative works. However, this</div><div class="line" id="LC3483">&nbsp;&nbsp;&nbsp;document itself may not be modified in any way, such as by removing</div><div class="line" id="LC3484">&nbsp;&nbsp;&nbsp;the copyright notice or references to the Internet Society or other</div><div class="line" id="LC3485">&nbsp;&nbsp;&nbsp;Internet organizations, except as needed for the purpose of</div><div class="line" id="LC3486">&nbsp;&nbsp;&nbsp;developing Internet standards in which case the procedures for</div><div class="line" id="LC3487">&nbsp;&nbsp;&nbsp;copyrights defined in the Internet Standards process must be</div><div class="line" id="LC3488">&nbsp;&nbsp;&nbsp;followed, or as required to translate it into languages other than</div><div class="line" id="LC3489">&nbsp;&nbsp;&nbsp;English.</div><div class="line" id="LC3490">&nbsp;</div><div class="line" id="LC3491">&nbsp;&nbsp;&nbsp;The limited permissions granted above are perpetual and will not be</div><div class="line" id="LC3492">&nbsp;&nbsp;&nbsp;revoked by the Internet Society or its successors or assigns.</div><div class="line" id="LC3493">&nbsp;</div><div class="line" id="LC3494">&nbsp;&nbsp;&nbsp;This document and the information contained herein is provided on an</div><div class="line" id="LC3495">&nbsp;&nbsp;&nbsp;&quot;AS IS&quot; basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING</div><div class="line" id="LC3496">&nbsp;&nbsp;&nbsp;TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING</div><div class="line" id="LC3497">&nbsp;&nbsp;&nbsp;BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION</div><div class="line" id="LC3498">&nbsp;&nbsp;&nbsp;HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF</div><div class="line" id="LC3499">&nbsp;&nbsp;&nbsp;MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.</div><div class="line" id="LC3500">&nbsp;</div><div class="line" id="LC3501">Acknowledgement</div><div class="line" id="LC3502">&nbsp;</div><div class="line" id="LC3503">&nbsp;&nbsp;&nbsp;Funding for the RFC Editor function is currently provided by the</div><div class="line" id="LC3504">&nbsp;&nbsp;&nbsp;Internet Society.</div><div class="line" id="LC3505">&nbsp;</div><div class="line" id="LC3506">&nbsp;</div><div class="line" id="LC3507">&nbsp;</div><div class="line" id="LC3508">&nbsp;</div><div class="line" id="LC3509">&nbsp;</div><div class="line" id="LC3510">&nbsp;</div><div class="line" id="LC3511">&nbsp;</div><div class="line" id="LC3512">&nbsp;</div><div class="line" id="LC3513">&nbsp;</div><div class="line" id="LC3514">&nbsp;</div><div class="line" id="LC3515">&nbsp;</div><div class="line" id="LC3516">&nbsp;</div><div class="line" id="LC3517">&nbsp;</div><div class="line" id="LC3518">&nbsp;</div><div class="line" id="LC3519">&nbsp;</div><div class="line" id="LC3520">&nbsp;</div><div class="line" id="LC3521">&nbsp;</div><div class="line" id="LC3522">&nbsp;</div><div class="line" id="LC3523">&nbsp;</div><div class="line" id="LC3524">Kalt Informational [Page 63]</div><div class="line" id="LC3525">&nbsp;</div><div class="line" id="LC3526">&nbsp;</div><div class="line" id="LC3527">&nbsp;</div><div class="line" id="LC3528">&nbsp;</div><div class="line" id="LC3529">&nbsp;</div><div class="line" id="LC3530">&nbsp;</div><div class="line" id="LC3531">&nbsp;</div><div class="line" id="LC3532">&nbsp;</div></pre></div>
-
- </td>
- </tr>
- </table>
-
- </div>
-
-
- </div>
- </div>
-
-
-
-
- </div>
-
-
-
- <div class="push"></div>
- </div>
-
- <div id="footer">
- <div class="site">
- <div class="info">
- <div class="links">
- <a href="http://github.com/blog"><b>Blog</b></a> |
- <a href="http://support.github.com/">Support</a> |
- <a href="http://github.com/training">Training</a> |
- <a href="http://github.com/contact">Contact</a> |
- <a href="http://develop.github.com">API</a> |
- <a href="http://twitter.com/github">Status</a> |
- <a href="http://twitter.com/github">GitHub on Twitter</a> |
- <a href="http://github.com/guides/home">Help</a>
-
- </div>
- <div class="company">
- <span id="_rrt" title="0.84973s from xc88-s00039">GitHub</span>&trade;
- is <a href="http://logicalawesome.com/">Logical Awesome</a> &copy;2009 | <a href="/site/terms">Terms of Service</a> | <a href="/site/privacy">Privacy Policy</a>
- </div>
- </div>
- <div class="sponsor">
- <a href="http://engineyard.com"><img src="/images/modules/footer/ey-rubyhosting.png" alt="Engine Yard" /></a>
- </div>
- </div>
- </div>
-
- <div id="coming_soon" style="display:none;">
- This feature is coming soon. Sit tight!
- </div>
-
-
- <script type="text/javascript">
- var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
- document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
- </script>
- <script type="text/javascript">
- var pageTracker = _gat._getTracker("UA-3769691-2");
- pageTracker._initData();
- pageTracker._trackPageview();
- </script>
-
-
- </body>
-</html>
-
+
+
+
+
+
+
+Network Working Group C. Kalt
+Request for Comments: 2812 April 2000
+Updates: 1459
+Category: Informational
+
+
+ Internet Relay Chat: Client Protocol
+
+Status of this Memo
+
+ This memo provides information for the Internet community. It does
+ not specify an Internet standard of any kind. Distribution of this
+ memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2000). All Rights Reserved.
+
+IESG NOTE:
+
+ The IRC protocol itself enables several possibilities of transferring
+ data between clients, and just like with other transfer mechanisms
+ like email, the receiver of the data has to be careful about how the
+ data is handled. For more information on security issues with the IRC
+ protocol, see for example http://www.irchelp.org/irchelp/security/.
+
+Abstract
+
+ The IRC (Internet Relay Chat) protocol is for use with text based
+ conferencing; the simplest client being any socket program capable of
+ connecting to the server.
+
+ This document defines the Client Protocol, and assumes that the
+ reader is familiar with the IRC Architecture [IRC-ARCH].
+
+Table of Contents
+
+ 1. Labels ..................................................... 3
+ 1.1 Servers ................................................ 3
+ 1.2 Clients ................................................ 3
+ 1.2.1 Users ............................................. 4
+ 1.2.1.1 Operators .................................... 4
+ 1.2.2 Services .......................................... 4
+ 1.3 Channels ............................................... 4
+ 2. The IRC Client Specification ............................... 5
+ 2.1 Overview ............................................... 5
+ 2.2 Character codes ........................................ 5
+ 2.3 Messages ............................................... 5
+
+
+
+Kalt Informational [Page 1]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 2.3.1 Message format in Augmented BNF ................... 6
+ 2.4 Numeric replies ........................................ 8
+ 2.5 Wildcard expressions ................................... 9
+ 3. Message Details ............................................ 9
+ 3.1 Connection Registration ................................ 10
+ 3.1.1 Password message .................................. 10
+ 3.1.2 Nick message ...................................... 10
+ 3.1.3 User message ...................................... 11
+ 3.1.4 Oper message ...................................... 12
+ 3.1.5 User mode message ................................. 12
+ 3.1.6 Service message ................................... 13
+ 3.1.7 Quit .............................................. 14
+ 3.1.8 Squit ............................................. 15
+ 3.2 Channel operations ..................................... 15
+ 3.2.1 Join message ...................................... 16
+ 3.2.2 Part message ...................................... 17
+ 3.2.3 Channel mode message .............................. 18
+ 3.2.4 Topic message ..................................... 19
+ 3.2.5 Names message ..................................... 20
+ 3.2.6 List message ...................................... 21
+ 3.2.7 Invite message .................................... 21
+ 3.2.8 Kick command ...................................... 22
+ 3.3 Sending messages ....................................... 23
+ 3.3.1 Private messages .................................. 23
+ 3.3.2 Notice ............................................ 24
+ 3.4 Server queries and commands ............................ 25
+ 3.4.1 Motd message ...................................... 25
+ 3.4.2 Lusers message .................................... 25
+ 3.4.3 Version message ................................... 26
+ 3.4.4 Stats message ..................................... 26
+ 3.4.5 Links message ..................................... 27
+ 3.4.6 Time message ...................................... 28
+ 3.4.7 Connect message ................................... 28
+ 3.4.8 Trace message ..................................... 29
+ 3.4.9 Admin command ..................................... 30
+ 3.4.10 Info command ...................................... 31
+ 3.5 Service Query and Commands ............................. 31
+ 3.5.1 Servlist message .................................. 31
+ 3.5.2 Squery ............................................ 32
+ 3.6 User based queries ..................................... 32
+ 3.6.1 Who query ......................................... 32
+ 3.6.2 Whois query ....................................... 33
+ 3.6.3 Whowas ............................................ 34
+ 3.7 Miscellaneous messages ................................. 34
+ 3.7.1 Kill message ...................................... 35
+ 3.7.2 Ping message ...................................... 36
+ 3.7.3 Pong message ...................................... 37
+ 3.7.4 Error ............................................. 37
+
+
+
+Kalt Informational [Page 2]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 4. Optional features .......................................... 38
+ 4.1 Away ................................................... 38
+ 4.2 Rehash message ......................................... 39
+ 4.3 Die message ............................................ 39
+ 4.4 Restart message ........................................ 40
+ 4.5 Summon message ......................................... 40
+ 4.6 Users .................................................. 41
+ 4.7 Operwall message ....................................... 41
+ 4.8 Userhost message ....................................... 42
+ 4.9 Ison message ........................................... 42
+ 5. Replies .................................................... 43
+ 5.1 Command responses ...................................... 43
+ 5.2 Error Replies .......................................... 53
+ 5.3 Reserved numerics ...................................... 59
+ 6. Current implementations .................................... 60
+ 7. Current problems ........................................... 60
+ 7.1 Nicknames .............................................. 60
+ 7.2 Limitation of wildcards ................................ 61
+ 7.3 Security considerations ................................ 61
+ 8. Current support and availability ........................... 61
+ 9. Acknowledgements ........................................... 61
+ 10. References ................................................ 62
+ 11. Author's Address .......................................... 62
+ 12. Full Copyright Statement .................................. 63
+
+1. Labels
+
+ This section defines the identifiers used for the various components
+ of the IRC protocol.
+
+1.1 Servers
+
+ Servers are uniquely identified by their name, which has a maximum
+ length of sixty three (63) characters. See the protocol grammar
+ rules (section 2.3.1) for what may and may not be used in a server
+ name.
+
+1.2 Clients
+
+ For each client all servers MUST have the following information: a
+ netwide unique identifier (whose format depends on the type of
+ client) and the server which introduced the client.
+
+
+
+
+
+
+
+
+
+Kalt Informational [Page 3]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+1.2.1 Users
+
+ Each user is distinguished from other users by a unique nickname
+ having a maximum length of nine (9) characters. See the protocol
+ grammar rules (section 2.3.1) for what may and may not be used in a
+ nickname.
+
+ While the maximum length is limited to nine characters, clients
+ SHOULD accept longer strings as they may become used in future
+ evolutions of the protocol.
+
+1.2.1.1 Operators
+
+ To allow a reasonable amount of order to be kept within the IRC
+ network, a special class of users (operators) is allowed to perform
+ general maintenance functions on the network. Although the powers
+ granted to an operator can be considered as 'dangerous', they are
+ nonetheless often necessary. Operators SHOULD be able to perform
+ basic network tasks such as disconnecting and reconnecting servers as
+ needed. In recognition of this need, the protocol discussed herein
+ provides for operators only to be able to perform such functions.
+ See sections 3.1.8 (SQUIT) and 3.4.7 (CONNECT).
+
+ A more controversial power of operators is the ability to remove a
+ user from the connected network by 'force', i.e., operators are able
+ to close the connection between any client and server. The
+ justification for this is very delicate since its abuse is both
+ destructive and annoying, and its benefits close to inexistent. For
+ further details on this type of action, see section 3.7.1 (KILL).
+
+1.2.2 Services
+
+ Each service is distinguished from other services by a service name
+ composed of a nickname and a server name. As for users, the nickname
+ has a maximum length of nine (9) characters. See the protocol
+ grammar rules (section 2.3.1) for what may and may not be used in a
+ nickname.
+
+1.3 Channels
+
+ Channels names are strings (beginning with a '&', '#', '+' or '!'
+ character) of length up to fifty (50) characters. Apart from the
+ requirement that the first character is either '&', '#', '+' or '!',
+ the only restriction on a channel name is that it SHALL NOT contain
+ any spaces (' '), a control G (^G or ASCII 7), a comma (','). Space
+ is used as parameter separator and command is used as a list item
+ separator by the protocol). A colon (':') can also be used as a
+ delimiter for the channel mask. Channel names are case insensitive.
+
+
+
+Kalt Informational [Page 4]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ See the protocol grammar rules (section 2.3.1) for the exact syntax
+ of a channel name.
+
+ Each prefix characterizes a different channel type. The definition
+ of the channel types is not relevant to the client-server protocol
+ and thus it is beyond the scope of this document. More details can
+ be found in "Internet Relay Chat: Channel Management" [IRC-CHAN].
+
+2. The IRC Client Specification
+
+2.1 Overview
+
+ The protocol as described herein is for use only with client to
+ server connections when the client registers as a user.
+
+2.2 Character codes
+
+ No specific character set is specified. The protocol is based on a
+ set of codes which are composed of eight (8) bits, making up an
+ octet. Each message may be composed of any number of these octets;
+ however, some octet values are used for control codes, which act as
+ message delimiters.
+
+ Regardless of being an 8-bit protocol, the delimiters and keywords
+ are such that protocol is mostly usable from US-ASCII terminal and a
+ telnet connection.
+
+ Because of IRC's Scandinavian origin, the characters {}|^ are
+ considered to be the lower case equivalents of the characters []\~,
+ respectively. This is a critical issue when determining the
+ equivalence of two nicknames or channel names.
+
+2.3 Messages
+
+ Servers and clients send each other messages, which may or may not
+ generate a reply. If the message contains a valid command, as
+ described in later sections, the client should expect a reply as
+ specified but it is not advised to wait forever for the reply; client
+ to server and server to server communication is essentially
+ asynchronous by nature.
+
+ Each IRC message may consist of up to three main parts: the prefix
+ (OPTIONAL), the command, and the command parameters (maximum of
+ fifteen (15)). The prefix, command, and all parameters are separated
+ by one ASCII space character (0x20) each.
+
+
+
+
+
+
+Kalt Informational [Page 5]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ The presence of a prefix is indicated with a single leading ASCII
+ colon character (':', 0x3b), which MUST be the first character of the
+ message itself. There MUST be NO gap (whitespace) between the colon
+ and the prefix. The prefix is used by servers to indicate the true
+ origin of the message. If the prefix is missing from the message, it
+ is assumed to have originated from the connection from which it was
+ received from. Clients SHOULD NOT use a prefix when sending a
+ message; if they use one, the only valid prefix is the registered
+ nickname associated with the client.
+
+ The command MUST either be a valid IRC command or a three (3) digit
+ number represented in ASCII text.
+
+ IRC messages are always lines of characters terminated with a CR-LF
+ (Carriage Return - Line Feed) pair, and these messages SHALL NOT
+ exceed 512 characters in length, counting all characters including
+ the trailing CR-LF. Thus, there are 510 characters maximum allowed
+ for the command and its parameters. There is no provision for
+ continuation of message lines. See section 6 for more details about
+ current implementations.
+
+2.3.1 Message format in Augmented BNF
+
+ The protocol messages must be extracted from the contiguous stream of
+ octets. The current solution is to designate two characters, CR and
+ LF, as message separators. Empty messages are silently ignored,
+ which permits use of the sequence CR-LF between messages without
+ extra problems.
+
+ The extracted message is parsed into the components <prefix>,
+ <command> and list of parameters (<params>).
+
+ The Augmented BNF representation for this is:
+
+ message = [ ":" prefix SPACE ] command [ params ] crlf
+ prefix = servername / ( nickname [ [ "!" user ] "@" host ] )
+ command = 1*letter / 3digit
+ params = *14( SPACE middle ) [ SPACE ":" trailing ]
+ =/ 14( SPACE middle ) [ SPACE [ ":" ] trailing ]
+
+ nospcrlfcl = %x01-09 / %x0B-0C / %x0E-1F / %x21-39 / %x3B-FF
+ ; any octet except NUL, CR, LF, " " and ":"
+ middle = nospcrlfcl *( ":" / nospcrlfcl )
+ trailing = *( ":" / " " / nospcrlfcl )
+
+ SPACE = %x20 ; space character
+ crlf = %x0D %x0A ; "carriage return" "linefeed"
+
+
+
+
+Kalt Informational [Page 6]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ NOTES:
+ 1) After extracting the parameter list, all parameters are equal
+ whether matched by <middle> or <trailing>. <trailing> is just a
+ syntactic trick to allow SPACE within the parameter.
+
+ 2) The NUL (%x00) character is not special in message framing, and
+ basically could end up inside a parameter, but it would cause
+ extra complexities in normal C string handling. Therefore, NUL
+ is not allowed within messages.
+
+ Most protocol messages specify additional semantics and syntax for
+ the extracted parameter strings dictated by their position in the
+ list. For example, many server commands will assume that the first
+ parameter after the command is the list of targets, which can be
+ described with:
+
+ target = nickname / server
+ msgtarget = msgto *( "," msgto )
+ msgto = channel / ( user [ "%" host ] "@" servername )
+ msgto =/ ( user "%" host ) / targetmask
+ msgto =/ nickname / ( nickname "!" user "@" host )
+ channel = ( "#" / "+" / ( "!" channelid ) / "&" ) chanstring
+ [ ":" chanstring ]
+ servername = hostname
+ host = hostname / hostaddr
+ hostname = shortname *( "." shortname )
+ shortname = ( letter / digit ) *( letter / digit / "-" )
+ *( letter / digit )
+ ; as specified in RFC 1123 [HNAME]
+ hostaddr = ip4addr / ip6addr
+ ip4addr = 1*3digit "." 1*3digit "." 1*3digit "." 1*3digit
+ ip6addr = 1*hexdigit 7( ":" 1*hexdigit )
+ ip6addr =/ "0:0:0:0:0:" ( "0" / "FFFF" ) ":" ip4addr
+ nickname = ( letter / special ) *8( letter / digit / special / "-" )
+ targetmask = ( "$" / "#" ) mask
+ ; see details on allowed masks in section 3.3.1
+ chanstring = %x01-07 / %x08-09 / %x0B-0C / %x0E-1F / %x21-2B
+ chanstring =/ %x2D-39 / %x3B-FF
+ ; any octet except NUL, BELL, CR, LF, " ", "," and ":"
+ channelid = 5( %x41-5A / digit ) ; 5( A-Z / 0-9 )
+
+
+
+
+
+
+
+
+
+
+
+Kalt Informational [Page 7]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Other parameter syntaxes are:
+
+ user = 1*( %x01-09 / %x0B-0C / %x0E-1F / %x21-3F / %x41-FF )
+ ; any octet except NUL, CR, LF, " " and "@"
+ key = 1*23( %x01-05 / %x07-08 / %x0C / %x0E-1F / %x21-7F )
+ ; any 7-bit US_ASCII character,
+ ; except NUL, CR, LF, FF, h/v TABs, and " "
+ letter = %x41-5A / %x61-7A ; A-Z / a-z
+ digit = %x30-39 ; 0-9
+ hexdigit = digit / "A" / "B" / "C" / "D" / "E" / "F"
+ special = %x5B-60 / %x7B-7D
+ ; "[", "]", "\", "`", "_", "^", "{", "|", "}"
+
+ NOTES:
+ 1) The <hostaddr> syntax is given here for the sole purpose of
+ indicating the format to follow for IP addresses. This
+ reflects the fact that the only available implementations of
+ this protocol uses TCP/IP as underlying network protocol but is
+ not meant to prevent other protocols to be used.
+
+ 2) <hostname> has a maximum length of 63 characters. This is a
+ limitation of the protocol as internet hostnames (in
+ particular) can be longer. Such restriction is necessary
+ because IRC messages are limited to 512 characters in length.
+ Clients connecting from a host which name is longer than 63
+ characters are registered using the host (numeric) address
+ instead of the host name.
+
+ 3) Some parameters used in the following sections of this
+ documents are not defined here as there is nothing specific
+ about them besides the name that is used for convenience.
+ These parameters follow the general syntax defined for
+ <params>.
+
+2.4 Numeric replies
+
+ Most of the messages sent to the server generate a reply of some
+ sort. The most common reply is the numeric reply, used for both
+ errors and normal replies. The numeric reply MUST be sent as one
+ message consisting of the sender prefix, the three-digit numeric, and
+ the target of the reply. A numeric reply is not allowed to originate
+ from a client. In all other respects, a numeric reply is just like a
+ normal message, except that the keyword is made up of 3 numeric
+ digits rather than a string of letters. A list of different replies
+ is supplied in section 5 (Replies).
+
+
+
+
+
+
+Kalt Informational [Page 8]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+2.5 Wildcard expressions
+
+ When wildcards are allowed in a string, it is referred as a "mask".
+
+ For string matching purposes, the protocol allows the use of two
+ special characters: '?' (%x3F) to match one and only one character,
+ and '*' (%x2A) to match any number of any characters. These two
+ characters can be escaped using the character '\' (%x5C).
+
+ The Augmented BNF syntax for this is:
+
+ mask = *( nowild / noesc wildone / noesc wildmany )
+ wildone = %x3F
+ wildmany = %x2A
+ nowild = %x01-29 / %x2B-3E / %x40-FF
+ ; any octet except NUL, "*", "?"
+ noesc = %x01-5B / %x5D-FF
+ ; any octet except NUL and "\"
+ matchone = %x01-FF
+ ; matches wildone
+ matchmany = *matchone
+ ; matches wildmany
+
+ Examples:
+
+ a?c ; Matches any string of 3 characters in length starting
+ with "a" and ending with "c"
+
+ a*c ; Matches any string of at least 2 characters in length
+ starting with "a" and ending with "c"
+
+3. Message Details
+
+ On the following pages there are descriptions of each message
+ recognized by the IRC server and client. All commands described in
+ this section MUST be implemented by any server for this protocol.
+
+ Where the reply ERR_NOSUCHSERVER is returned, it means that the
+ target of the message could not be found. The server MUST NOT send
+ any other replies after this error for that command.
+
+ The server to which a client is connected is required to parse the
+ complete message, and return any appropriate errors.
+
+ If multiple parameters is presented, then each MUST be checked for
+ validity and appropriate responses MUST be sent back to the client.
+ In the case of incorrect messages which use parameter lists with
+ comma as an item separator, a reply MUST be sent for each item.
+
+
+
+Kalt Informational [Page 9]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+3.1 Connection Registration
+
+ The commands described here are used to register a connection with an
+ IRC server as a user as well as to correctly disconnect.
+
+ A "PASS" command is not required for a client connection to be
+ registered, but it MUST precede the latter of the NICK/USER
+ combination (for a user connection) or the SERVICE command (for a
+ service connection). The RECOMMENDED order for a client to register
+ is as follows:
+
+ 1. Pass message
+ 2. Nick message 2. Service message
+ 3. User message
+
+ Upon success, the client will receive an RPL_WELCOME (for users) or
+ RPL_YOURESERVICE (for services) message indicating that the
+ connection is now registered and known the to the entire IRC network.
+ The reply message MUST contain the full client identifier upon which
+ it was registered.
+
+3.1.1 Password message
+
+ Command: PASS
+ Parameters: <password>
+
+ The PASS command is used to set a 'connection password'. The
+ optional password can and MUST be set before any attempt to register
+ the connection is made. Currently this requires that user send a
+ PASS command before sending the NICK/USER combination.
+
+ Numeric Replies:
+
+ ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED
+
+ Example:
+
+ PASS secretpasswordhere
+
+3.1.2 Nick message
+
+
+ Command: NICK
+ Parameters: <nickname>
+
+ NICK command is used to give user a nickname or change the existing
+ one.
+
+
+
+
+Kalt Informational [Page 10]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Numeric Replies:
+
+ ERR_NONICKNAMEGIVEN ERR_ERRONEUSNICKNAME
+ ERR_NICKNAMEINUSE ERR_NICKCOLLISION
+ ERR_UNAVAILRESOURCE ERR_RESTRICTED
+
+ Examples:
+
+ NICK Wiz ; Introducing new nick "Wiz" if session is
+ still unregistered, or user changing his
+ nickname to "Wiz"
+
+ :WiZ!jto@tolsun.oulu.fi NICK Kilroy
+ ; Server telling that WiZ changed his
+ nickname to Kilroy.
+
+3.1.3 User message
+
+ Command: USER
+ Parameters: <user> <mode> <unused> <realname>
+
+ The USER command is used at the beginning of connection to specify
+ the username, hostname and realname of a new user.
+
+ The <mode> parameter should be a numeric, and can be used to
+ automatically set user modes when registering with the server. This
+ parameter is a bitmask, with only 2 bits having any signification: if
+ the bit 2 is set, the user mode 'w' will be set and if the bit 3 is
+ set, the user mode 'i' will be set. (See Section 3.1.5 "User
+ Modes").
+
+ The <realname> may contain space characters.
+
+ Numeric Replies:
+
+ ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED
+
+ Example:
+
+ USER guest 0 * :Ronnie Reagan ; User registering themselves with a
+ username of "guest" and real name
+ "Ronnie Reagan".
+
+ USER guest 8 * :Ronnie Reagan ; User registering themselves with a
+ username of "guest" and real name
+ "Ronnie Reagan", and asking to be set
+ invisible.
+
+
+
+
+Kalt Informational [Page 11]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+3.1.4 Oper message
+
+ Command: OPER
+ Parameters: <name> <password>
+
+ A normal user uses the OPER command to obtain operator privileges.
+ The combination of <name> and <password> are REQUIRED to gain
+ Operator privileges. Upon success, the user will receive a MODE
+ message (see section 3.1.5) indicating the new user modes.
+
+ Numeric Replies:
+
+ ERR_NEEDMOREPARAMS RPL_YOUREOPER
+ ERR_NOOPERHOST ERR_PASSWDMISMATCH
+
+ Example:
+
+ OPER foo bar ; Attempt to register as an operator
+ using a username of "foo" and "bar"
+ as the password.
+
+3.1.5 User mode message
+
+ Command: MODE
+ Parameters: <nickname>
+ *( ( "+" / "-" ) *( "i" / "w" / "o" / "O" / "r" ) )
+
+ The user MODE's are typically changes which affect either how the
+ client is seen by others or what 'extra' messages the client is sent.
+
+ A user MODE command MUST only be accepted if both the sender of the
+ message and the nickname given as a parameter are both the same. If
+ no other parameter is given, then the server will return the current
+ settings for the nick.
+
+ The available modes are as follows:
+
+ a - user is flagged as away;
+ i - marks a users as invisible;
+ w - user receives wallops;
+ r - restricted user connection;
+ o - operator flag;
+ O - local operator flag;
+ s - marks a user for receipt of server notices.
+
+ Additional modes may be available later on.
+
+
+
+
+
+Kalt Informational [Page 12]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ The flag 'a' SHALL NOT be toggled by the user using the MODE command,
+ instead use of the AWAY command is REQUIRED.
+
+ If a user attempts to make themselves an operator using the "+o" or
+ "+O" flag, the attempt SHOULD be ignored as users could bypass the
+ authentication mechanisms of the OPER command. There is no
+ restriction, however, on anyone `deopping' themselves (using "-o" or
+ "-O").
+
+ On the other hand, if a user attempts to make themselves unrestricted
+ using the "-r" flag, the attempt SHOULD be ignored. There is no
+ restriction, however, on anyone `deopping' themselves (using "+r").
+ This flag is typically set by the server upon connection for
+ administrative reasons. While the restrictions imposed are left up
+ to the implementation, it is typical that a restricted user not be
+ allowed to change nicknames, nor make use of the channel operator
+ status on channels.
+
+ The flag 's' is obsolete but MAY still be used.
+
+ Numeric Replies:
+
+ ERR_NEEDMOREPARAMS ERR_USERSDONTMATCH
+ ERR_UMODEUNKNOWNFLAG RPL_UMODEIS
+
+ Examples:
+
+ MODE WiZ -w ; Command by WiZ to turn off
+ reception of WALLOPS messages.
+
+ MODE Angel +i ; Command from Angel to make herself
+ invisible.
+
+ MODE WiZ -o ; WiZ 'deopping' (removing operator
+ status).
+
+3.1.6 Service message
+
+ Command: SERVICE
+ Parameters: <nickname> <reserved> <distribution> <type>
+ <reserved> <info>
+
+ The SERVICE command to register a new service. Command parameters
+ specify the service nickname, distribution, type and info of a new
+ service.
+
+
+
+
+
+
+Kalt Informational [Page 13]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ The <distribution> parameter is used to specify the visibility of a
+ service. The service may only be known to servers which have a name
+ matching the distribution. For a matching server to have knowledge
+ of the service, the network path between that server and the server
+ on which the service is connected MUST be composed of servers which
+ names all match the mask.
+
+ The <type> parameter is currently reserved for future usage.
+
+ Numeric Replies:
+
+ ERR_ALREADYREGISTRED ERR_NEEDMOREPARAMS
+ ERR_ERRONEUSNICKNAME
+ RPL_YOURESERVICE RPL_YOURHOST
+ RPL_MYINFO
+
+ Example:
+
+ SERVICE dict * *.fr 0 0 :French Dictionary ; Service registering
+ itself with a name of "dict". This
+ service will only be available on
+ servers which name matches "*.fr".
+
+3.1.7 Quit
+
+ Command: QUIT
+ Parameters: [ <Quit Message> ]
+
+ A client session is terminated with a quit message. The server
+ acknowledges this by sending an ERROR message to the client.
+
+ Numeric Replies:
+
+ None.
+
+ Example:
+
+ QUIT :Gone to have lunch ; Preferred message format.
+
+ :syrk!kalt@millennium.stealth.net QUIT :Gone to have lunch ; User
+ syrk has quit IRC to have lunch.
+
+
+
+
+
+
+
+
+
+
+Kalt Informational [Page 14]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+3.1.8 Squit
+
+ Command: SQUIT
+ Parameters: <server> <comment>
+
+ The SQUIT command is available only to operators. It is used to
+ disconnect server links. Also servers can generate SQUIT messages on
+ error conditions. A SQUIT message may also target a remote server
+ connection. In this case, the SQUIT message will simply be sent to
+ the remote server without affecting the servers in between the
+ operator and the remote server.
+
+ The <comment> SHOULD be supplied by all operators who execute a SQUIT
+ for a remote server. The server ordered to disconnect its peer
+ generates a WALLOPS message with <comment> included, so that other
+ users may be aware of the reason of this action.
+
+ Numeric replies:
+
+ ERR_NOPRIVILEGES ERR_NOSUCHSERVER
+ ERR_NEEDMOREPARAMS
+
+ Examples:
+
+ SQUIT tolsun.oulu.fi :Bad Link ? ; Command to uplink of the server
+ tolson.oulu.fi to terminate its
+ connection with comment "Bad Link".
+
+ :Trillian SQUIT cm22.eng.umd.edu :Server out of control ; Command
+ from Trillian from to disconnect
+ "cm22.eng.umd.edu" from the net with
+ comment "Server out of control".
+
+3.2 Channel operations
+
+ This group of messages is concerned with manipulating channels, their
+ properties (channel modes), and their contents (typically users).
+ For this reason, these messages SHALL NOT be made available to
+ services.
+
+ All of these messages are requests which will or will not be granted
+ by the server. The server MUST send a reply informing the user
+ whether the request was granted, denied or generated an error. When
+ the server grants the request, the message is typically sent back
+ (eventually reformatted) to the user with the prefix set to the user
+ itself.
+
+
+
+
+
+Kalt Informational [Page 15]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ The rules governing how channels are managed are enforced by the
+ servers. These rules are beyond the scope of this document. More
+ details are found in "Internet Relay Chat: Channel Management" [IRC-
+ CHAN].
+
+3.2.1 Join message
+
+ Command: JOIN
+ Parameters: ( <channel> *( "," <channel> ) [ <key> *( "," <key> ) ] )
+ / "0"
+
+ The JOIN command is used by a user to request to start listening to
+ the specific channel. Servers MUST be able to parse arguments in the
+ form of a list of target, but SHOULD NOT use lists when sending JOIN
+ messages to clients.
+
+ Once a user has joined a channel, he receives information about
+ all commands his server receives affecting the channel. This
+ includes JOIN, MODE, KICK, PART, QUIT and of course PRIVMSG/NOTICE.
+ This allows channel members to keep track of the other channel
+ members, as well as channel modes.
+
+ If a JOIN is successful, the user receives a JOIN message as
+ confirmation and is then sent the channel's topic (using RPL_TOPIC) and
+ the list of users who are on the channel (using RPL_NAMREPLY), which
+ MUST include the user joining.
+
+ Note that this message accepts a special argument ("0"), which is
+ a special request to leave all channels the user is currently a member
+ of. The server will process this message as if the user had sent
+ a PART command (See Section 3.2.2) for each channel he is a member
+ of.
+
+ Numeric Replies:
+
+ ERR_NEEDMOREPARAMS ERR_BANNEDFROMCHAN
+ ERR_INVITEONLYCHAN ERR_BADCHANNELKEY
+ ERR_CHANNELISFULL ERR_BADCHANMASK
+ ERR_NOSUCHCHANNEL ERR_TOOMANYCHANNELS
+ ERR_TOOMANYTARGETS ERR_UNAVAILRESOURCE
+ RPL_TOPIC
+
+ Examples:
+
+ JOIN #foobar ; Command to join channel #foobar.
+
+ JOIN &foo fubar ; Command to join channel &foo using
+ key "fubar".
+
+
+
+Kalt Informational [Page 16]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ JOIN #foo,&bar fubar ; Command to join channel #foo using
+ key "fubar" and &bar using no key.
+
+ JOIN #foo,#bar fubar,foobar ; Command to join channel #foo using
+ key "fubar", and channel #bar using
+ key "foobar".
+
+ JOIN #foo,#bar ; Command to join channels #foo and
+ #bar.
+
+ JOIN 0 ; Leave all currently joined
+ channels.
+
+ :WiZ!jto@tolsun.oulu.fi JOIN #Twilight_zone ; JOIN message from WiZ
+ on channel #Twilight_zone
+
+3.2.2 Part message
+
+ Command: PART
+ Parameters: <channel> *( "," <channel> ) [ <Part Message> ]
+
+ The PART command causes the user sending the message to be removed
+ from the list of active members for all given channels listed in the
+ parameter string. If a "Part Message" is given, this will be sent
+ instead of the default message, the nickname. This request is always
+ granted by the server.
+
+ Servers MUST be able to parse arguments in the form of a list of
+ target, but SHOULD NOT use lists when sending PART messages to
+ clients.
+
+ Numeric Replies:
+
+ ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL
+ ERR_NOTONCHANNEL
+
+ Examples:
+
+ PART #twilight_zone ; Command to leave channel
+ "#twilight_zone"
+
+ PART #oz-ops,&group5 ; Command to leave both channels
+ "&group5" and "#oz-ops".
+
+ :WiZ!jto@tolsun.oulu.fi PART #playzone :I lost
+ ; User WiZ leaving channel
+ "#playzone" with the message "I
+ lost".
+
+
+
+Kalt Informational [Page 17]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+3.2.3 Channel mode message
+
+ Command: MODE
+ Parameters: <channel> *( ( "-" / "+" ) *<modes> *<modeparams> )
+
+ The MODE command is provided so that users may query and change the
+ characteristics of a channel. For more details on available modes
+ and their uses, see "Internet Relay Chat: Channel Management" [IRC-
+ CHAN]. Note that there is a maximum limit of three (3) changes per
+ command for modes that take a parameter.
+
+ Numeric Replies:
+
+ ERR_NEEDMOREPARAMS ERR_KEYSET
+ ERR_NOCHANMODES ERR_CHANOPRIVSNEEDED
+ ERR_USERNOTINCHANNEL ERR_UNKNOWNMODE
+ RPL_CHANNELMODEIS
+ RPL_BANLIST RPL_ENDOFBANLIST
+ RPL_EXCEPTLIST RPL_ENDOFEXCEPTLIST
+ RPL_INVITELIST RPL_ENDOFINVITELIST
+ RPL_UNIQOPIS
+
+ The following examples are given to help understanding the syntax of
+ the MODE command, but refer to modes defined in "Internet Relay Chat:
+ Channel Management" [IRC-CHAN].
+
+ Examples:
+
+ MODE #Finnish +imI *!*@*.fi ; Command to make #Finnish channel
+ moderated and 'invite-only' with user
+ with a hostname matching *.fi
+ automatically invited.
+
+ MODE #Finnish +o Kilroy ; Command to give 'chanop' privileges
+ to Kilroy on channel #Finnish.
+
+ MODE #Finnish +v Wiz ; Command to allow WiZ to speak on
+ #Finnish.
+
+ MODE #Fins -s ; Command to remove 'secret' flag
+ from channel #Fins.
+
+ MODE #42 +k oulu ; Command to set the channel key to
+ "oulu".
+
+ MODE #42 -k oulu ; Command to remove the "oulu"
+ channel key on channel "#42".
+
+
+
+
+Kalt Informational [Page 18]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ MODE #eu-opers +l 10 ; Command to set the limit for the
+ number of users on channel
+ "#eu-opers" to 10.
+
+ :WiZ!jto@tolsun.oulu.fi MODE #eu-opers -l
+ ; User "WiZ" removing the limit for
+ the number of users on channel "#eu-
+ opers".
+
+ MODE &oulu +b ; Command to list ban masks set for
+ the channel "&oulu".
+
+ MODE &oulu +b *!*@* ; Command to prevent all users from
+ joining.
+
+ MODE &oulu +b *!*@*.edu +e *!*@*.bu.edu
+ ; Command to prevent any user from a
+ hostname matching *.edu from joining,
+ except if matching *.bu.edu
+
+ MODE #bu +be *!*@*.edu *!*@*.bu.edu
+ ; Comment to prevent any user from a
+ hostname matching *.edu from joining,
+ except if matching *.bu.edu
+
+ MODE #meditation e ; Command to list exception masks set
+ for the channel "#meditation".
+
+ MODE #meditation I ; Command to list invitations masks
+ set for the channel "#meditation".
+
+ MODE !12345ircd O ; Command to ask who the channel
+ creator for "!12345ircd" is
+
+3.2.4 Topic message
+
+ Command: TOPIC
+ Parameters: <channel> [ <topic> ]
+
+ The TOPIC command is used to change or view the topic of a channel.
+ The topic for channel <channel> is returned if there is no <topic>
+ given. If the <topic> parameter is present, the topic for that
+ channel will be changed, if this action is allowed for the user
+ requesting it. If the <topic> parameter is an empty string, the
+ topic for that channel will be removed.
+
+
+
+
+
+
+Kalt Informational [Page 19]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Numeric Replies:
+
+ ERR_NEEDMOREPARAMS ERR_NOTONCHANNEL
+ RPL_NOTOPIC RPL_TOPIC
+ ERR_CHANOPRIVSNEEDED ERR_NOCHANMODES
+
+ Examples:
+
+ :WiZ!jto@tolsun.oulu.fi TOPIC #test :New topic ; User Wiz setting the
+ topic.
+
+ TOPIC #test :another topic ; Command to set the topic on #test
+ to "another topic".
+
+ TOPIC #test : ; Command to clear the topic on
+ #test.
+
+ TOPIC #test ; Command to check the topic for
+ #test.
+
+3.2.5 Names message
+
+ Command: NAMES
+ Parameters: [ <channel> *( "," <channel> ) [ <target> ] ]
+
+ By using the NAMES command, a user can list all nicknames that are
+ visible to him. For more details on what is visible and what is not,
+ see "Internet Relay Chat: Channel Management" [IRC-CHAN]. The
+ <channel> parameter specifies which channel(s) to return information
+ about. There is no error reply for bad channel names.
+
+ If no <channel> parameter is given, a list of all channels and their
+ occupants is returned. At the end of this list, a list of users who
+ are visible but either not on any channel or not on a visible channel
+ are listed as being on `channel' "*".
+
+ If the <target> parameter is specified, the request is forwarded to
+ that server which will generate the reply.
+
+ Wildcards are allowed in the <target> parameter.
+
+ Numerics:
+
+ ERR_TOOMANYMATCHES ERR_NOSUCHSERVER
+ RPL_NAMREPLY RPL_ENDOFNAMES
+
+
+
+
+
+
+Kalt Informational [Page 20]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Examples:
+
+ NAMES #twilight_zone,#42 ; Command to list visible users on
+ #twilight_zone and #42
+
+ NAMES ; Command to list all visible
+ channels and users
+
+3.2.6 List message
+
+ Command: LIST
+ Parameters: [ <channel> *( "," <channel> ) [ <target> ] ]
+
+ The list command is used to list channels and their topics. If the
+ <channel> parameter is used, only the status of that channel is
+ displayed.
+
+ If the <target> parameter is specified, the request is forwarded to
+ that server which will generate the reply.
+
+ Wildcards are allowed in the <target> parameter.
+
+ Numeric Replies:
+
+ ERR_TOOMANYMATCHES ERR_NOSUCHSERVER
+ RPL_LIST RPL_LISTEND
+
+ Examples:
+
+ LIST ; Command to list all channels.
+
+ LIST #twilight_zone,#42 ; Command to list channels
+ #twilight_zone and #42
+
+3.2.7 Invite message
+
+ Command: INVITE
+ Parameters: <nickname> <channel>
+
+ The INVITE command is used to invite a user to a channel. The
+ parameter <nickname> is the nickname of the person to be invited to
+ the target channel <channel>. There is no requirement that the
+ channel the target user is being invited to must exist or be a valid
+ channel. However, if the channel exists, only members of the channel
+ are allowed to invite other users. When the channel has invite-only
+ flag set, only channel operators may issue INVITE command.
+
+
+
+
+
+Kalt Informational [Page 21]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Only the user inviting and the user being invited will receive
+ notification of the invitation. Other channel members are not
+ notified. (This is unlike the MODE changes, and is occasionally the
+ source of trouble for users.)
+
+ Numeric Replies:
+
+ ERR_NEEDMOREPARAMS ERR_NOSUCHNICK
+ ERR_NOTONCHANNEL ERR_USERONCHANNEL
+ ERR_CHANOPRIVSNEEDED
+ RPL_INVITING RPL_AWAY
+
+ Examples:
+
+ :Angel!wings@irc.org INVITE Wiz #Dust
+
+ ; Message to WiZ when he has been
+ invited by user Angel to channel
+ #Dust
+
+ INVITE Wiz #Twilight_Zone ; Command to invite WiZ to
+ #Twilight_zone
+
+3.2.8 Kick command
+
+ Command: KICK
+ Parameters: <channel> *( "," <channel> ) <user> *( "," <user> )
+ [<comment>]
+
+ The KICK command can be used to request the forced removal of a user
+ from a channel. It causes the <user> to PART from the <channel> by
+ force. For the message to be syntactically correct, there MUST be
+ either one channel parameter and multiple user parameter, or as many
+ channel parameters as there are user parameters. If a "comment" is
+ given, this will be sent instead of the default message, the nickname
+ of the user issuing the KICK.
+
+ The server MUST NOT send KICK messages with multiple channels or
+ users to clients. This is necessarily to maintain backward
+ compatibility with old client software.
+
+ Numeric Replies:
+
+ ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL
+ ERR_BADCHANMASK ERR_CHANOPRIVSNEEDED
+ ERR_USERNOTINCHANNEL ERR_NOTONCHANNEL
+
+
+
+
+
+Kalt Informational [Page 22]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Examples:
+
+ KICK &Melbourne Matthew ; Command to kick Matthew from
+ &Melbourne
+
+ KICK #Finnish John :Speaking English
+ ; Command to kick John from #Finnish
+ using "Speaking English" as the
+ reason (comment).
+
+ :WiZ!jto@tolsun.oulu.fi KICK #Finnish John
+ ; KICK message on channel #Finnish
+ from WiZ to remove John from channel
+
+3.3 Sending messages
+
+ The main purpose of the IRC protocol is to provide a base for clients
+ to communicate with each other. PRIVMSG, NOTICE and SQUERY
+ (described in Section 3.5 on Service Query and Commands) are the only
+ messages available which actually perform delivery of a text message
+ from one client to another - the rest just make it possible and try
+ to ensure it happens in a reliable and structured manner.
+
+3.3.1 Private messages
+
+ Command: PRIVMSG
+ Parameters: <msgtarget> <text to be sent>
+
+ PRIVMSG is used to send private messages between users, as well as to
+ send messages to channels. <msgtarget> is usually the nickname of
+ the recipient of the message, or a channel name.
+
+ The <msgtarget> parameter may also be a host mask (#<mask>) or server
+ mask ($<mask>). In both cases the server will only send the PRIVMSG
+ to those who have a server or host matching the mask. The mask MUST
+ have at least 1 (one) "." in it and no wildcards following the last
+ ".". This requirement exists to prevent people sending messages to
+ "#*" or "$*", which would broadcast to all users. Wildcards are the
+ '*' and '?' characters. This extension to the PRIVMSG command is
+ only available to operators.
+
+ Numeric Replies:
+
+ ERR_NORECIPIENT ERR_NOTEXTTOSEND
+ ERR_CANNOTSENDTOCHAN ERR_NOTOPLEVEL
+ ERR_WILDTOPLEVEL ERR_TOOMANYTARGETS
+ ERR_NOSUCHNICK
+ RPL_AWAY
+
+
+
+Kalt Informational [Page 23]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Examples:
+
+ :Angel!wings@irc.org PRIVMSG Wiz :Are you receiving this message ?
+ ; Message from Angel to Wiz.
+
+ PRIVMSG Angel :yes I'm receiving it !
+ ; Command to send a message to Angel.
+
+ PRIVMSG jto@tolsun.oulu.fi :Hello !
+ ; Command to send a message to a user
+ on server tolsun.oulu.fi with
+ username of "jto".
+
+ PRIVMSG kalt%millennium.stealth.net@irc.stealth.net :Are you a frog?
+ ; Message to a user on server
+ irc.stealth.net with username of
+ "kalt", and connected from the host
+ millennium.stealth.net.
+
+ PRIVMSG kalt%millennium.stealth.net :Do you like cheese?
+ ; Message to a user on the local
+ server with username of "kalt", and
+ connected from the host
+ millennium.stealth.net.
+
+ PRIVMSG Wiz!jto@tolsun.oulu.fi :Hello !
+ ; Message to the user with nickname
+ Wiz who is connected from the host
+ tolsun.oulu.fi and has the username
+ "jto".
+
+ PRIVMSG $*.fi :Server tolsun.oulu.fi rebooting.
+ ; Message to everyone on a server
+ which has a name matching *.fi.
+
+ PRIVMSG #*.edu :NSFNet is undergoing work, expect interruptions
+ ; Message to all users who come from
+ a host which has a name matching
+ *.edu.
+
+3.3.2 Notice
+
+ Command: NOTICE
+ Parameters: <msgtarget> <text>
+
+ The NOTICE command is used similarly to PRIVMSG. The difference
+ between NOTICE and PRIVMSG is that automatic replies MUST NEVER be
+ sent in response to a NOTICE message. This rule applies to servers
+
+
+
+Kalt Informational [Page 24]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ too - they MUST NOT send any error reply back to the client on
+ receipt of a notice. The object of this rule is to avoid loops
+ between clients automatically sending something in response to
+ something it received.
+
+ This command is available to services as well as users.
+
+ This is typically used by services, and automatons (clients with
+ either an AI or other interactive program controlling their actions).
+
+ See PRIVMSG for more details on replies and examples.
+
+3.4 Server queries and commands
+
+ The server query group of commands has been designed to return
+ information about any server which is connected to the network.
+
+ In these queries, where a parameter appears as <target>, wildcard
+ masks are usually valid. For each parameter, however, only one query
+ and set of replies is to be generated. In most cases, if a nickname
+ is given, it will mean the server to which the user is connected.
+
+ These messages typically have little value for services, it is
+ therefore RECOMMENDED to forbid services from using them.
+
+3.4.1 Motd message
+
+ Command: MOTD
+ Parameters: [ <target> ]
+
+ The MOTD command is used to get the "Message Of The Day" of the given
+ server, or current server if <target> is omitted.
+
+ Wildcards are allowed in the <target> parameter.
+
+ Numeric Replies:
+ RPL_MOTDSTART RPL_MOTD
+ RPL_ENDOFMOTD ERR_NOMOTD
+
+3.4.2 Lusers message
+
+ Command: LUSERS
+ Parameters: [ <mask> [ <target> ] ]
+
+ The LUSERS command is used to get statistics about the size of the
+ IRC network. If no parameter is given, the reply will be about the
+ whole net. If a <mask> is specified, then the reply will only
+
+
+
+
+Kalt Informational [Page 25]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ concern the part of the network formed by the servers matching the
+ mask. Finally, if the <target> parameter is specified, the request
+ is forwarded to that server which will generate the reply.
+
+ Wildcards are allowed in the <target> parameter.
+
+ Numeric Replies:
+
+ RPL_LUSERCLIENT RPL_LUSEROP
+ RPL_LUSERUNKOWN RPL_LUSERCHANNELS
+ RPL_LUSERME ERR_NOSUCHSERVER
+
+3.4.3 Version message
+
+ Command: VERSION
+ Parameters: [ <target> ]
+
+ The VERSION command is used to query the version of the server
+ program. An optional parameter <target> is used to query the version
+ of the server program which a client is not directly connected to.
+
+ Wildcards are allowed in the <target> parameter.
+
+ Numeric Replies:
+
+ ERR_NOSUCHSERVER RPL_VERSION
+
+ Examples:
+
+ VERSION tolsun.oulu.fi ; Command to check the version of
+ server "tolsun.oulu.fi".
+
+3.4.4 Stats message
+
+ Command: STATS
+ Parameters: [ <query> [ <target> ] ]
+
+ The stats command is used to query statistics of certain server. If
+ <query> parameter is omitted, only the end of stats reply is sent
+ back.
+
+ A query may be given for any single letter which is only checked by
+ the destination server and is otherwise passed on by intermediate
+ servers, ignored and unaltered.
+
+ Wildcards are allowed in the <target> parameter.
+
+
+
+
+
+Kalt Informational [Page 26]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Except for the ones below, the list of valid queries is
+ implementation dependent. The standard queries below SHOULD be
+ supported by the server:
+
+ l - returns a list of the server's connections, showing how
+ long each connection has been established and the
+ traffic over that connection in Kbytes and messages for
+ each direction;
+ m - returns the usage count for each of commands supported
+ by the server; commands for which the usage count is
+ zero MAY be omitted;
+ o - returns a list of configured privileged users,
+ operators;
+ u - returns a string showing how long the server has been
+ up.
+
+ It is also RECOMMENDED that client and server access configuration be
+ published this way.
+
+ Numeric Replies:
+
+ ERR_NOSUCHSERVER
+ RPL_STATSLINKINFO RPL_STATSUPTIME
+ RPL_STATSCOMMANDS RPL_STATSOLINE
+ RPL_ENDOFSTATS
+
+ Examples:
+
+ STATS m ; Command to check the command usage
+ for the server you are connected to
+
+3.4.5 Links message
+
+ Command: LINKS
+ Parameters: [ [ <remote server> ] <server mask> ]
+
+ With LINKS, a user can list all servernames, which are known by the
+ server answering the query. The returned list of servers MUST match
+ the mask, or if no mask is given, the full list is returned.
+
+ If <remote server> is given in addition to <server mask>, the LINKS
+ command is forwarded to the first server found that matches that name
+ (if any), and that server is then required to answer the query.
+
+ Numeric Replies:
+
+ ERR_NOSUCHSERVER
+ RPL_LINKS RPL_ENDOFLINKS
+
+
+
+Kalt Informational [Page 27]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Examples:
+
+ LINKS *.au ; Command to list all servers which
+ have a name that matches *.au;
+
+ LINKS *.edu *.bu.edu ; Command to list servers matching
+ *.bu.edu as seen by the first server
+ matching *.edu.
+
+3.4.6 Time message
+
+ Command: TIME
+ Parameters: [ <target> ]
+
+ The time command is used to query local time from the specified
+ server. If the <target> parameter is not given, the server receiving
+ the command must reply to the query.
+
+ Wildcards are allowed in the <target> parameter.
+
+ Numeric Replies:
+
+ ERR_NOSUCHSERVER RPL_TIME
+
+ Examples:
+ TIME tolsun.oulu.fi ; check the time on the server
+ "tolson.oulu.fi"
+
+3.4.7 Connect message
+
+ Command: CONNECT
+ Parameters: <target server> <port> [ <remote server> ]
+
+ The CONNECT command can be used to request a server to try to
+ establish a new connection to another server immediately. CONNECT is
+ a privileged command and SHOULD be available only to IRC Operators.
+ If a <remote server> is given and its mask doesn't match name of the
+ parsing server, the CONNECT attempt is sent to the first match of
+ remote server. Otherwise the CONNECT attempt is made by the server
+ processing the request.
+
+ The server receiving a remote CONNECT command SHOULD generate a
+ WALLOPS message describing the source and target of the request.
+
+ Numeric Replies:
+
+ ERR_NOSUCHSERVER ERR_NOPRIVILEGES
+ ERR_NEEDMOREPARAMS
+
+
+
+Kalt Informational [Page 28]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Examples:
+
+ CONNECT tolsun.oulu.fi 6667 ; Command to attempt to connect local
+ server to tolsun.oulu.fi on port 6667
+
+3.4.8 Trace message
+
+ Command: TRACE
+ Parameters: [ <target> ]
+
+ TRACE command is used to find the route to specific server and
+ information about its peers. Each server that processes this command
+ MUST report to the sender about it. The replies from pass-through
+ links form a chain, which shows route to destination. After sending
+ this reply back, the query MUST be sent to the next server until
+ given <target> server is reached.
+
+ TRACE command is used to find the route to specific server. Each
+ server that processes this message MUST tell the sender about it by
+ sending a reply indicating it is a pass-through link, forming a chain
+ of replies. After sending this reply back, it MUST then send the
+ TRACE message to the next server until given server is reached. If
+ the <target> parameter is omitted, it is RECOMMENDED that TRACE
+ command sends a message to the sender telling which servers the local
+ server has direct connection to.
+
+ If the destination given by <target> is an actual server, the
+ destination server is REQUIRED to report all servers, services and
+ operators which are connected to it; if the command was issued by an
+ operator, the server MAY also report all users which are connected to
+ it. If the destination given by <target> is a nickname, then only a
+ reply for that nickname is given. If the <target> parameter is
+ omitted, it is RECOMMENDED that the TRACE command is parsed as
+ targeted to the processing server.
+
+ Wildcards are allowed in the <target> parameter.
+
+ Numeric Replies:
+
+ ERR_NOSUCHSERVER
+
+ If the TRACE message is destined for another server, all
+ intermediate servers must return a RPL_TRACELINK reply to indicate
+ that the TRACE passed through it and where it is going next.
+
+ RPL_TRACELINK
+
+
+
+
+
+Kalt Informational [Page 29]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ A TRACE reply may be composed of any number of the following
+ numeric replies.
+
+ RPL_TRACECONNECTING RPL_TRACEHANDSHAKE
+ RPL_TRACEUNKNOWN RPL_TRACEOPERATOR
+ RPL_TRACEUSER RPL_TRACESERVER
+ RPL_TRACESERVICE RPL_TRACENEWTYPE
+ RPL_TRACECLASS RPL_TRACELOG
+ RPL_TRACEEND
+
+ Examples:
+
+ TRACE *.oulu.fi ; TRACE to a server matching
+ *.oulu.fi
+
+3.4.9 Admin command
+
+ Command: ADMIN
+ Parameters: [ <target> ]
+
+ The admin command is used to find information about the administrator
+ of the given server, or current server if <target> parameter is
+ omitted. Each server MUST have the ability to forward ADMIN messages
+ to other servers.
+
+ Wildcards are allowed in the <target> parameter.
+
+ Numeric Replies:
+
+ ERR_NOSUCHSERVER
+ RPL_ADMINME RPL_ADMINLOC1
+ RPL_ADMINLOC2 RPL_ADMINEMAIL
+
+ Examples:
+
+ ADMIN tolsun.oulu.fi ; request an ADMIN reply from
+ tolsun.oulu.fi
+
+ ADMIN syrk ; ADMIN request for the server to
+ which the user syrk is connected
+
+
+
+
+
+
+
+
+
+
+
+Kalt Informational [Page 30]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+3.4.10 Info command
+
+ Command: INFO
+ Parameters: [ <target> ]
+
+ The INFO command is REQUIRED to return information describing the
+ server: its version, when it was compiled, the patchlevel, when it
+ was started, and any other miscellaneous information which may be
+ considered to be relevant.
+
+ Wildcards are allowed in the <target> parameter.
+
+ Numeric Replies:
+
+ ERR_NOSUCHSERVER
+ RPL_INFO RPL_ENDOFINFO
+
+ Examples:
+
+ INFO csd.bu.edu ; request an INFO reply from
+ csd.bu.edu
+
+ INFO Angel ; request info from the server that
+ Angel is connected to.
+
+3.5 Service Query and Commands
+
+ The service query group of commands has been designed to return
+ information about any service which is connected to the network.
+
+3.5.1 Servlist message
+
+ Command: SERVLIST
+ Parameters: [ <mask> [ <type> ] ]
+
+ The SERVLIST command is used to list services currently connected to
+ the network and visible to the user issuing the command. The
+ optional parameters may be used to restrict the result of the query
+ (to matching services names, and services type).
+
+ Numeric Replies:
+
+ RPL_SERVLIST RPL_SERVLISTEND
+
+
+
+
+
+
+
+
+Kalt Informational [Page 31]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+3.5.2 Squery
+
+ Command: SQUERY
+ Parameters: <servicename> <text>
+
+ The SQUERY command is used similarly to PRIVMSG. The only difference
+ is that the recipient MUST be a service. This is the only way for a
+ text message to be delivered to a service.
+
+ See PRIVMSG for more details on replies and example.
+
+ Examples:
+
+ SQUERY irchelp :HELP privmsg
+ ; Message to the service with
+ nickname irchelp.
+
+ SQUERY dict@irc.fr :fr2en blaireau
+ ; Message to the service with name
+ dict@irc.fr.
+
+3.6 User based queries
+
+ User queries are a group of commands which are primarily concerned
+ with finding details on a particular user or group users. When using
+ wildcards with any of these commands, if they match, they will only
+ return information on users who are 'visible' to you. The visibility
+ of a user is determined as a combination of the user's mode and the
+ common set of channels you are both on.
+
+ Although services SHOULD NOT be using this class of message, they are
+ allowed to.
+
+3.6.1 Who query
+
+ Command: WHO
+ Parameters: [ <mask> [ "o" ] ]
+
+ The WHO command is used by a client to generate a query which returns
+ a list of information which 'matches' the <mask> parameter given by
+ the client. In the absence of the <mask> parameter, all visible
+ (users who aren't invisible (user mode +i) and who don't have a
+ common channel with the requesting client) are listed. The same
+ result can be achieved by using a <mask> of "0" or any wildcard which
+ will end up matching every visible user.
+
+ The <mask> passed to WHO is matched against users' host, server, real
+ name and nickname if the channel <mask> cannot be found.
+
+
+
+Kalt Informational [Page 32]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ If the "o" parameter is passed only operators are returned according
+ to the <mask> supplied.
+
+ Numeric Replies:
+
+ ERR_NOSUCHSERVER
+ RPL_WHOREPLY RPL_ENDOFWHO
+
+ Examples:
+
+ WHO *.fi ; Command to list all users who match
+ against "*.fi".
+
+ WHO jto* o ; Command to list all users with a
+ match against "jto*" if they are an
+ operator.
+
+3.6.2 Whois query
+
+ Command: WHOIS
+ Parameters: [ <target> ] <mask> *( "," <mask> )
+
+ This command is used to query information about particular user.
+ The server will answer this command with several numeric messages
+ indicating different statuses of each user which matches the mask (if
+ you are entitled to see them). If no wildcard is present in the
+ <mask>, any information about that nick which you are allowed to see
+ is presented.
+
+ If the <target> parameter is specified, it sends the query to a
+ specific server. It is useful if you want to know how long the user
+ in question has been idle as only local server (i.e., the server the
+ user is directly connected to) knows that information, while
+ everything else is globally known.
+
+ Wildcards are allowed in the <target> parameter.
+
+ Numeric Replies:
+
+ ERR_NOSUCHSERVER ERR_NONICKNAMEGIVEN
+ RPL_WHOISUSER RPL_WHOISCHANNELS
+ RPL_WHOISCHANNELS RPL_WHOISSERVER
+ RPL_AWAY RPL_WHOISOPERATOR
+ RPL_WHOISIDLE ERR_NOSUCHNICK
+ RPL_ENDOFWHOIS
+
+
+
+
+
+
+Kalt Informational [Page 33]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Examples:
+
+ WHOIS wiz ; return available user information
+ about nick WiZ
+
+ WHOIS eff.org trillian ; ask server eff.org for user
+ information about trillian
+
+3.6.3 Whowas
+
+ Command: WHOWAS
+ Parameters: <nickname> *( "," <nickname> ) [ <count> [ <target> ] ]
+
+ Whowas asks for information about a nickname which no longer exists.
+ This may either be due to a nickname change or the user leaving IRC.
+ In response to this query, the server searches through its nickname
+ history, looking for any nicks which are lexically the same (no wild
+ card matching here). The history is searched backward, returning the
+ most recent entry first. If there are multiple entries, up to
+ <count> replies will be returned (or all of them if no <count>
+ parameter is given). If a non-positive number is passed as being
+ <count>, then a full search is done.
+
+ Wildcards are allowed in the <target> parameter.
+
+ Numeric Replies:
+
+ ERR_NONICKNAMEGIVEN ERR_WASNOSUCHNICK
+ RPL_WHOWASUSER RPL_WHOISSERVER
+ RPL_ENDOFWHOWAS
+
+ Examples:
+
+ WHOWAS Wiz ; return all information in the nick
+ history about nick "WiZ";
+
+ WHOWAS Mermaid 9 ; return at most, the 9 most recent
+ entries in the nick history for
+ "Mermaid";
+
+ WHOWAS Trillian 1 *.edu ; return the most recent history for
+ "Trillian" from the first server
+ found to match "*.edu".
+
+3.7 Miscellaneous messages
+
+ Messages in this category do not fit into any of the above categories
+ but are nonetheless still a part of and REQUIRED by the protocol.
+
+
+
+Kalt Informational [Page 34]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+3.7.1 Kill message
+
+ Command: KILL
+ Parameters: <nickname> <comment>
+
+ The KILL command is used to cause a client-server connection to be
+ closed by the server which has the actual connection. Servers
+ generate KILL messages on nickname collisions. It MAY also be
+ available available to users who have the operator status.
+
+ Clients which have automatic reconnect algorithms effectively make
+ this command useless since the disconnection is only brief. It does
+ however break the flow of data and can be used to stop large amounts
+ of 'flooding' from abusive users or accidents. Abusive users usually
+ don't care as they will reconnect promptly and resume their abusive
+ behaviour. To prevent this command from being abused, any user may
+ elect to receive KILL messages generated for others to keep an 'eye'
+ on would be trouble spots.
+
+ In an arena where nicknames are REQUIRED to be globally unique at all
+ times, KILL messages are sent whenever 'duplicates' are detected
+ (that is an attempt to register two users with the same nickname) in
+ the hope that both of them will disappear and only 1 reappear.
+
+ When a client is removed as the result of a KILL message, the server
+ SHOULD add the nickname to the list of unavailable nicknames in an
+ attempt to avoid clients to reuse this name immediately which is
+ usually the pattern of abusive behaviour often leading to useless
+ "KILL loops". See the "IRC Server Protocol" document [IRC-SERVER]
+ for more information on this procedure.
+
+ The comment given MUST reflect the actual reason for the KILL. For
+ server-generated KILLs it usually is made up of details concerning
+ the origins of the two conflicting nicknames. For users it is left
+ up to them to provide an adequate reason to satisfy others who see
+ it. To prevent/discourage fake KILLs from being generated to hide
+ the identify of the KILLer, the comment also shows a 'kill-path'
+ which is updated by each server it passes through, each prepending
+ its name to the path.
+
+ Numeric Replies:
+
+ ERR_NOPRIVILEGES ERR_NEEDMOREPARAMS
+ ERR_NOSUCHNICK ERR_CANTKILLSERVER
+
+
+
+
+
+
+
+Kalt Informational [Page 35]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ NOTE:
+ It is RECOMMENDED that only Operators be allowed to kill other users
+ with KILL command. This command has been the subject of many
+ controversies over the years, and along with the above
+ recommendation, it is also widely recognized that not even operators
+ should be allowed to kill users on remote servers.
+
+3.7.2 Ping message
+
+ Command: PING
+ Parameters: <server1> [ <server2> ]
+
+ The PING command is used to test the presence of an active client or
+ server at the other end of the connection. Servers send a PING
+ message at regular intervals if no other activity detected coming
+ from a connection. If a connection fails to respond to a PING
+ message within a set amount of time, that connection is closed. A
+ PING message MAY be sent even if the connection is active.
+
+ When a PING message is received, the appropriate PONG message MUST be
+ sent as reply to <server1> (server which sent the PING message out)
+ as soon as possible. If the <server2> parameter is specified, it
+ represents the target of the ping, and the message gets forwarded
+ there.
+
+ Numeric Replies:
+
+ ERR_NOORIGIN ERR_NOSUCHSERVER
+
+ Examples:
+
+ PING tolsun.oulu.fi ; Command to send a PING message to
+ server
+
+ PING WiZ tolsun.oulu.fi ; Command from WiZ to send a PING
+ message to server "tolsun.oulu.fi"
+
+ PING :irc.funet.fi ; Ping message sent by server
+ "irc.funet.fi"
+
+
+
+
+
+
+
+
+
+
+
+
+Kalt Informational [Page 36]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+3.7.3 Pong message
+
+ Command: PONG
+ Parameters: <server> [ <server2> ]
+
+ PONG message is a reply to ping message. If parameter <server2> is
+ given, this message MUST be forwarded to given target. The <server>
+ parameter is the name of the entity who has responded to PING message
+ and generated this message.
+
+ Numeric Replies:
+
+ ERR_NOORIGIN ERR_NOSUCHSERVER
+
+ Example:
+
+ PONG csd.bu.edu tolsun.oulu.fi ; PONG message from csd.bu.edu to
+ tolsun.oulu.fi
+
+3.7.4 Error
+
+ Command: ERROR
+ Parameters: <error message>
+
+ The ERROR command is for use by servers when reporting a serious or
+ fatal error to its peers. It may also be sent from one server to
+ another but MUST NOT be accepted from any normal unknown clients.
+
+ Only an ERROR message SHOULD be used for reporting errors which occur
+ with a server-to-server link. An ERROR message is sent to the server
+ at the other end (which reports it to appropriate local users and
+ logs) and to appropriate local users and logs. It is not to be
+ passed onto any other servers by a server if it is received from a
+ server.
+
+ The ERROR message is also used before terminating a client
+ connection.
+
+ When a server sends a received ERROR message to its operators, the
+ message SHOULD be encapsulated inside a NOTICE message, indicating
+ that the client was not responsible for the error.
+
+ Numerics:
+
+ None.
+
+
+
+
+
+
+Kalt Informational [Page 37]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Examples:
+
+ ERROR :Server *.fi already exists ; ERROR message to the other server
+ which caused this error.
+
+ NOTICE WiZ :ERROR from csd.bu.edu -- Server *.fi already exists
+ ; Same ERROR message as above but
+ sent to user WiZ on the other server.
+
+4. Optional features
+
+ This section describes OPTIONAL messages. They are not required in a
+ working server implementation of the protocol described herein. In
+ the absence of the feature, an error reply message MUST be generated
+ or an unknown command error. If the message is destined for another
+ server to answer then it MUST be passed on (elementary parsing
+ REQUIRED) The allocated numerics for this are listed with the
+ messages below.
+
+ From this section, only the USERHOST and ISON messages are available
+ to services.
+
+4.1 Away
+
+ Command: AWAY
+ Parameters: [ <text> ]
+
+ With the AWAY command, clients can set an automatic reply string for
+ any PRIVMSG commands directed at them (not to a channel they are on).
+ The server sends an automatic reply to the client sending the PRIVMSG
+ command. The only replying server is the one to which the sending
+ client is connected to.
+
+ The AWAY command is used either with one parameter, to set an AWAY
+ message, or with no parameters, to remove the AWAY message.
+
+ Because of its high cost (memory and bandwidth wise), the AWAY
+ message SHOULD only be used for client-server communication. A
+ server MAY choose to silently ignore AWAY messages received from
+ other servers. To update the away status of a client across servers,
+ the user mode 'a' SHOULD be used instead. (See Section 3.1.5)
+
+ Numeric Replies:
+
+ RPL_UNAWAY RPL_NOWAWAY
+
+
+
+
+
+
+Kalt Informational [Page 38]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Example:
+
+ AWAY :Gone to lunch. Back in 5 ; Command to set away message to
+ "Gone to lunch. Back in 5".
+
+4.2 Rehash message
+
+ Command: REHASH
+ Parameters: None
+
+ The rehash command is an administrative command which can be used by
+ an operator to force the server to re-read and process its
+ configuration file.
+
+ Numeric Replies:
+
+ RPL_REHASHING ERR_NOPRIVILEGES
+
+
+ Example:
+
+ REHASH ; message from user with operator
+ status to server asking it to reread
+ its configuration file.
+
+4.3 Die message
+
+ Command: DIE
+ Parameters: None
+
+ An operator can use the DIE command to shutdown the server. This
+ message is optional since it may be viewed as a risk to allow
+ arbitrary people to connect to a server as an operator and execute
+ this command.
+
+ The DIE command MUST always be fully processed by the server to which
+ the sending client is connected and MUST NOT be passed onto other
+ connected servers.
+
+ Numeric Replies:
+
+ ERR_NOPRIVILEGES
+
+ Example:
+
+ DIE ; no parameters required.
+
+
+
+
+
+Kalt Informational [Page 39]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+4.4 Restart message
+
+ Command: RESTART
+ Parameters: None
+
+ An operator can use the restart command to force the server to
+ restart itself. This message is optional since it may be viewed as a
+ risk to allow arbitrary people to connect to a server as an operator
+ and execute this command, causing (at least) a disruption to service.
+
+ The RESTART command MUST always be fully processed by the server to
+ which the sending client is connected and MUST NOT be passed onto
+ other connected servers.
+
+ Numeric Replies:
+
+ ERR_NOPRIVILEGES
+
+ Example:
+
+ RESTART ; no parameters required.
+
+4.5 Summon message
+
+ Command: SUMMON
+ Parameters: <user> [ <target> [ <channel> ] ]
+
+ The SUMMON command can be used to give users who are on a host
+ running an IRC server a message asking them to please join IRC. This
+ message is only sent if the target server (a) has SUMMON enabled, (b)
+ the user is logged in and (c) the server process can write to the
+ user's tty (or similar).
+
+ If no <server> parameter is given it tries to summon <user> from the
+ server the client is connected to is assumed as the target.
+
+ If summon is not enabled in a server, it MUST return the
+ ERR_SUMMONDISABLED numeric.
+
+ Numeric Replies:
+
+ ERR_NORECIPIENT ERR_FILEERROR
+ ERR_NOLOGIN ERR_NOSUCHSERVER
+ ERR_SUMMONDISABLED RPL_SUMMONING
+
+
+
+
+
+
+
+Kalt Informational [Page 40]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ Examples:
+
+ SUMMON jto ; summon user jto on the server's
+ host
+
+ SUMMON jto tolsun.oulu.fi ; summon user jto on the host which a
+ server named "tolsun.oulu.fi" is
+ running.
+
+4.6 Users
+
+ Command: USERS
+ Parameters: [ <target> ]
+
+ The USERS command returns a list of users logged into the server in a
+ format similar to the UNIX commands who(1), rusers(1) and finger(1).
+ If disabled, the correct numeric MUST be returned to indicate this.
+
+ Because of the security implications of such a command, it SHOULD be
+ disabled by default in server implementations. Enabling it SHOULD
+ require recompiling the server or some equivalent change rather than
+ simply toggling an option and restarting the server. The procedure
+ to enable this command SHOULD also include suitable large comments.
+
+ Numeric Replies:
+
+ ERR_NOSUCHSERVER ERR_FILEERROR
+ RPL_USERSSTART RPL_USERS
+ RPL_NOUSERS RPL_ENDOFUSERS
+ ERR_USERSDISABLED
+
+ Disabled Reply:
+
+ ERR_USERSDISABLED
+
+ Example:
+
+ USERS eff.org ; request a list of users logged in
+ on server eff.org
+
+4.7 Operwall message
+
+ Command: WALLOPS
+ Parameters: <Text to be sent>
+
+ The WALLOPS command is used to send a message to all currently
+ connected users who have set the 'w' user mode for themselves. (See
+ Section 3.1.5 "User modes").
+
+
+
+Kalt Informational [Page 41]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ After implementing WALLOPS as a user command it was found that it was
+ often and commonly abused as a means of sending a message to a lot of
+ people. Due to this, it is RECOMMENDED that the implementation of
+ WALLOPS allows and recognizes only servers as the originators of
+ WALLOPS.
+
+ Numeric Replies:
+
+ ERR_NEEDMOREPARAMS
+
+ Example:
+
+ :csd.bu.edu WALLOPS :Connect '*.uiuc.edu 6667' from Joshua ; WALLOPS
+ message from csd.bu.edu announcing a
+ CONNECT message it received from
+ Joshua and acted upon.
+
+4.8 Userhost message
+
+ Command: USERHOST
+ Parameters: <nickname> *( SPACE <nickname> )
+
+ The USERHOST command takes a list of up to 5 nicknames, each
+ separated by a space character and returns a list of information
+ about each nickname that it found. The returned list has each reply
+ separated by a space.
+
+ Numeric Replies:
+
+ RPL_USERHOST ERR_NEEDMOREPARAMS
+
+ Example:
+
+ USERHOST Wiz Michael syrk ; USERHOST request for information on
+ nicks "Wiz", "Michael", and "syrk"
+
+ :ircd.stealth.net 302 yournick :syrk=+syrk@millennium.stealth.net
+ ; Reply for user syrk
+
+4.9 Ison message
+
+ Command: ISON
+ Parameters: <nickname> *( SPACE <nickname> )
+
+ The ISON command was implemented to provide a quick and efficient
+ means to get a response about whether a given nickname was currently
+ on IRC. ISON only takes one (1) type of parameter: a space-separated
+ list of nicks. For each nickname in the list that is present, the
+
+
+
+Kalt Informational [Page 42]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ server adds that to its reply string. Thus the reply string may
+ return empty (none of the given nicks are present), an exact copy of
+ the parameter string (all of them present) or any other subset of the
+ set of nicks given in the parameter. The only limit on the number of
+ nicks that may be checked is that the combined length MUST NOT be too
+ large as to cause the server to chop it off so it fits in 512
+ characters.
+
+ ISON is only processed by the server local to the client sending the
+ command and thus not passed onto other servers for further
+ processing.
+
+ Numeric Replies:
+
+ RPL_ISON ERR_NEEDMOREPARAMS
+
+ Example:
+
+ ISON phone trillian WiZ jarlek Avalon Angel Monstah syrk
+ ; Sample ISON request for 7 nicks.
+
+5. Replies
+
+ The following is a list of numeric replies which are generated in
+ response to the commands given above. Each numeric is given with its
+ number, name and reply string.
+
+5.1 Command responses
+
+ Numerics in the range from 001 to 099 are used for client-server
+ connections only and should never travel between servers. Replies
+ generated in the response to commands are found in the range from 200
+ to 399.
+
+ 001 RPL_WELCOME
+ "Welcome to the Internet Relay Network
+ <nick>!<user>@<host>"
+ 002 RPL_YOURHOST
+ "Your host is <servername>, running version <ver>"
+ 003 RPL_CREATED
+ "This server was created <date>"
+ 004 RPL_MYINFO
+ "<servername> <version> <available user modes>
+ <available channel modes>"
+
+ - The server sends Replies 001 to 004 to a user upon
+ successful registration.
+
+
+
+
+Kalt Informational [Page 43]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 005 RPL_BOUNCE
+ "Try server <server name>, port <port number>"
+
+ - Sent by the server to a user to suggest an alternative
+ server. This is often used when the connection is
+ refused because the server is already full.
+
+ 302 RPL_USERHOST
+ ":*1<reply> *( " " <reply> )"
+
+ - Reply format used by USERHOST to list replies to
+ the query list. The reply string is composed as
+ follows:
+
+ reply = nickname [ "*" ] "=" ( "+" / "-" ) hostname
+
+ The '*' indicates whether the client has registered
+ as an Operator. The '-' or '+' characters represent
+ whether the client has set an AWAY message or not
+ respectively.
+
+ 303 RPL_ISON
+ ":*1<nick> *( " " <nick> )"
+
+ - Reply format used by ISON to list replies to the
+ query list.
+
+ 301 RPL_AWAY
+ "<nick> :<away message>"
+ 305 RPL_UNAWAY
+ ":You are no longer marked as being away"
+ 306 RPL_NOWAWAY
+ ":You have been marked as being away"
+
+ - These replies are used with the AWAY command (if
+ allowed). RPL_AWAY is sent to any client sending a
+ PRIVMSG to a client which is away. RPL_AWAY is only
+ sent by the server to which the client is connected.
+ Replies RPL_UNAWAY and RPL_NOWAWAY are sent when the
+ client removes and sets an AWAY message.
+
+ 311 RPL_WHOISUSER
+ "<nick> <user> <host> * :<real name>"
+ 312 RPL_WHOISSERVER
+ "<nick> <server> :<server info>"
+ 313 RPL_WHOISOPERATOR
+ "<nick> :is an IRC operator"
+
+
+
+
+Kalt Informational [Page 44]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 317 RPL_WHOISIDLE
+ "<nick> <integer> :seconds idle"
+ 318 RPL_ENDOFWHOIS
+ "<nick> :End of WHOIS list"
+ 319 RPL_WHOISCHANNELS
+ "<nick> :*( ( "@" / "+" ) <channel> " " )"
+
+ - Replies 311 - 313, 317 - 319 are all replies
+ generated in response to a WHOIS message. Given that
+ there are enough parameters present, the answering
+ server MUST either formulate a reply out of the above
+ numerics (if the query nick is found) or return an
+ error reply. The '*' in RPL_WHOISUSER is there as
+ the literal character and not as a wild card. For
+ each reply set, only RPL_WHOISCHANNELS may appear
+ more than once (for long lists of channel names).
+ The '@' and '+' characters next to the channel name
+ indicate whether a client is a channel operator or
+ has been granted permission to speak on a moderated
+ channel. The RPL_ENDOFWHOIS reply is used to mark
+ the end of processing a WHOIS message.
+
+ 314 RPL_WHOWASUSER
+ "<nick> <user> <host> * :<real name>"
+ 369 RPL_ENDOFWHOWAS
+ "<nick> :End of WHOWAS"
+
+ - When replying to a WHOWAS message, a server MUST use
+ the replies RPL_WHOWASUSER, RPL_WHOISSERVER or
+ ERR_WASNOSUCHNICK for each nickname in the presented
+ list. At the end of all reply batches, there MUST
+ be RPL_ENDOFWHOWAS (even if there was only one reply
+ and it was an error).
+
+ 321 RPL_LISTSTART
+ Obsolete. Not used.
+
+ 322 RPL_LIST
+ "<channel> <# visible> :<topic>"
+ 323 RPL_LISTEND
+ ":End of LIST"
+
+ - Replies RPL_LIST, RPL_LISTEND mark the actual replies
+ with data and end of the server's response to a LIST
+ command. If there are no channels available to return,
+ only the end reply MUST be sent.
+
+
+
+
+
+Kalt Informational [Page 45]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 325 RPL_UNIQOPIS
+ "<channel> <nickname>"
+
+ 324 RPL_CHANNELMODEIS
+ "<channel> <mode> <mode params>"
+
+ 331 RPL_NOTOPIC
+ "<channel> :No topic is set"
+ 332 RPL_TOPIC
+ "<channel> :<topic>"
+
+ - When sending a TOPIC message to determine the
+ channel topic, one of two replies is sent. If
+ the topic is set, RPL_TOPIC is sent back else
+ RPL_NOTOPIC.
+
+ 341 RPL_INVITING
+ "<channel> <nick>"
+
+ - Returned by the server to indicate that the
+ attempted INVITE message was successful and is
+ being passed onto the end client.
+
+ 342 RPL_SUMMONING
+ "<user> :Summoning user to IRC"
+
+ - Returned by a server answering a SUMMON message to
+ indicate that it is summoning that user.
+
+ 346 RPL_INVITELIST
+ "<channel> <invitemask>"
+ 347 RPL_ENDOFINVITELIST
+ "<channel> :End of channel invite list"
+
+ - When listing the 'invitations masks' for a given channel,
+ a server is required to send the list back using the
+ RPL_INVITELIST and RPL_ENDOFINVITELIST messages. A
+ separate RPL_INVITELIST is sent for each active mask.
+ After the masks have been listed (or if none present) a
+ RPL_ENDOFINVITELIST MUST be sent.
+
+ 348 RPL_EXCEPTLIST
+ "<channel> <exceptionmask>"
+ 349 RPL_ENDOFEXCEPTLIST
+ "<channel> :End of channel exception list"
+
+
+
+
+
+
+Kalt Informational [Page 46]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ - When listing the 'exception masks' for a given channel,
+ a server is required to send the list back using the
+ RPL_EXCEPTLIST and RPL_ENDOFEXCEPTLIST messages. A
+ separate RPL_EXCEPTLIST is sent for each active mask.
+ After the masks have been listed (or if none present)
+ a RPL_ENDOFEXCEPTLIST MUST be sent.
+
+ 351 RPL_VERSION
+ "<version>.<debuglevel> <server> :<comments>"
+
+ - Reply by the server showing its version details.
+ The <version> is the version of the software being
+ used (including any patchlevel revisions) and the
+ <debuglevel> is used to indicate if the server is
+ running in "debug mode".
+
+ The "comments" field may contain any comments about
+ the version or further version details.
+
+ 352 RPL_WHOREPLY
+ "<channel> <user> <host> <server> <nick>
+ ( "H" / "G" > ["*"] [ ( "@" / "+" ) ]
+ :<hopcount> <real name>"
+
+ 315 RPL_ENDOFWHO
+ "<name> :End of WHO list"
+
+ - The RPL_WHOREPLY and RPL_ENDOFWHO pair are used
+ to answer a WHO message. The RPL_WHOREPLY is only
+ sent if there is an appropriate match to the WHO
+ query. If there is a list of parameters supplied
+ with a WHO message, a RPL_ENDOFWHO MUST be sent
+ after processing each list item with <name> being
+ the item.
+
+ 353 RPL_NAMREPLY
+ "( "=" / "*" / "@" ) <channel>
+ :[ "@" / "+" ] <nick> *( " " [ "@" / "+" ] <nick> )
+ - "@" is used for secret channels, "*" for private
+ channels, and "=" for others (public channels).
+
+ 366 RPL_ENDOFNAMES
+ "<channel> :End of NAMES list"
+
+ - To reply to a NAMES message, a reply pair consisting
+ of RPL_NAMREPLY and RPL_ENDOFNAMES is sent by the
+ server back to the client. If there is no channel
+ found as in the query, then only RPL_ENDOFNAMES is
+
+
+
+Kalt Informational [Page 47]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ returned. The exception to this is when a NAMES
+ message is sent with no parameters and all visible
+ channels and contents are sent back in a series of
+ RPL_NAMEREPLY messages with a RPL_ENDOFNAMES to mark
+ the end.
+
+ 364 RPL_LINKS
+ "<mask> <server> :<hopcount> <server info>"
+ 365 RPL_ENDOFLINKS
+ "<mask> :End of LINKS list"
+
+ - In replying to the LINKS message, a server MUST send
+ replies back using the RPL_LINKS numeric and mark the
+ end of the list using an RPL_ENDOFLINKS reply.
+
+ 367 RPL_BANLIST
+ "<channel> <banmask>"
+ 368 RPL_ENDOFBANLIST
+ "<channel> :End of channel ban list"
+
+ - When listing the active 'bans' for a given channel,
+ a server is required to send the list back using the
+ RPL_BANLIST and RPL_ENDOFBANLIST messages. A separate
+ RPL_BANLIST is sent for each active banmask. After the
+ banmasks have been listed (or if none present) a
+ RPL_ENDOFBANLIST MUST be sent.
+
+ 371 RPL_INFO
+ ":<string>"
+ 374 RPL_ENDOFINFO
+ ":End of INFO list"
+
+ - A server responding to an INFO message is required to
+ send all its 'info' in a series of RPL_INFO messages
+ with a RPL_ENDOFINFO reply to indicate the end of the
+ replies.
+
+ 375 RPL_MOTDSTART
+ ":- <server> Message of the day - "
+ 372 RPL_MOTD
+ ":- <text>"
+ 376 RPL_ENDOFMOTD
+ ":End of MOTD command"
+
+ - When responding to the MOTD message and the MOTD file
+ is found, the file is displayed line by line, with
+ each line no longer than 80 characters, using
+
+
+
+
+Kalt Informational [Page 48]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ RPL_MOTD format replies. These MUST be surrounded
+ by a RPL_MOTDSTART (before the RPL_MOTDs) and an
+ RPL_ENDOFMOTD (after).
+
+ 381 RPL_YOUREOPER
+ ":You are now an IRC operator"
+
+ - RPL_YOUREOPER is sent back to a client which has
+ just successfully issued an OPER message and gained
+ operator status.
+
+ 382 RPL_REHASHING
+ "<config file> :Rehashing"
+
+ - If the REHASH option is used and an operator sends
+ a REHASH message, an RPL_REHASHING is sent back to
+ the operator.
+
+ 383 RPL_YOURESERVICE
+ "You are service <servicename>"
+
+ - Sent by the server to a service upon successful
+ registration.
+
+ 391 RPL_TIME
+ "<server> :<string showing server's local time>"
+
+ - When replying to the TIME message, a server MUST send
+ the reply using the RPL_TIME format above. The string
+ showing the time need only contain the correct day and
+ time there. There is no further requirement for the
+ time string.
+
+ 392 RPL_USERSSTART
+ ":UserID Terminal Host"
+ 393 RPL_USERS
+ ":<username> <ttyline> <hostname>"
+ 394 RPL_ENDOFUSERS
+ ":End of users"
+ 395 RPL_NOUSERS
+ ":Nobody logged in"
+
+ - If the USERS message is handled by a server, the
+ replies RPL_USERSTART, RPL_USERS, RPL_ENDOFUSERS and
+ RPL_NOUSERS are used. RPL_USERSSTART MUST be sent
+ first, following by either a sequence of RPL_USERS
+ or a single RPL_NOUSER. Following this is
+ RPL_ENDOFUSERS.
+
+
+
+Kalt Informational [Page 49]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 200 RPL_TRACELINK
+ "Link <version & debug level> <destination>
+ <next server> V<protocol version>
+ <link uptime in seconds> <backstream sendq>
+ <upstream sendq>"
+ 201 RPL_TRACECONNECTING
+ "Try. <class> <server>"
+ 202 RPL_TRACEHANDSHAKE
+ "H.S. <class> <server>"
+ 203 RPL_TRACEUNKNOWN
+ "???? <class> [<client IP address in dot form>]"
+ 204 RPL_TRACEOPERATOR
+ "Oper <class> <nick>"
+ 205 RPL_TRACEUSER
+ "User <class> <nick>"
+ 206 RPL_TRACESERVER
+ "Serv <class> <int>S <int>C <server>
+ <nick!user|*!*>@<host|server> V<protocol version>"
+ 207 RPL_TRACESERVICE
+ "Service <class> <name> <type> <active type>"
+ 208 RPL_TRACENEWTYPE
+ "<newtype> 0 <client name>"
+ 209 RPL_TRACECLASS
+ "Class <class> <count>"
+ 210 RPL_TRACERECONNECT
+ Unused.
+ 261 RPL_TRACELOG
+ "File <logfile> <debug level>"
+ 262 RPL_TRACEEND
+ "<server name> <version & debug level> :End of TRACE"
+
+ - The RPL_TRACE* are all returned by the server in
+ response to the TRACE message. How many are
+ returned is dependent on the TRACE message and
+ whether it was sent by an operator or not. There
+ is no predefined order for which occurs first.
+ Replies RPL_TRACEUNKNOWN, RPL_TRACECONNECTING and
+ RPL_TRACEHANDSHAKE are all used for connections
+ which have not been fully established and are either
+ unknown, still attempting to connect or in the
+ process of completing the 'server handshake'.
+ RPL_TRACELINK is sent by any server which handles
+ a TRACE message and has to pass it on to another
+ server. The list of RPL_TRACELINKs sent in
+ response to a TRACE command traversing the IRC
+ network should reflect the actual connectivity of
+ the servers themselves along that path.
+
+
+
+
+Kalt Informational [Page 50]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ RPL_TRACENEWTYPE is to be used for any connection
+ which does not fit in the other categories but is
+ being displayed anyway.
+ RPL_TRACEEND is sent to indicate the end of the list.
+
+ 211 RPL_STATSLINKINFO
+ "<linkname> <sendq> <sent messages>
+ <sent Kbytes> <received messages>
+ <received Kbytes> <time open>"
+
+ - reports statistics on a connection. <linkname>
+ identifies the particular connection, <sendq> is
+ the amount of data that is queued and waiting to be
+ sent <sent messages> the number of messages sent,
+ and <sent Kbytes> the amount of data sent, in
+ Kbytes. <received messages> and <received Kbytes>
+ are the equivalent of <sent messages> and <sent
+ Kbytes> for received data, respectively. <time
+ open> indicates how long ago the connection was
+ opened, in seconds.
+
+ 212 RPL_STATSCOMMANDS
+ "<command> <count> <byte count> <remote count>"
+
+ - reports statistics on commands usage.
+
+ 219 RPL_ENDOFSTATS
+ "<stats letter> :End of STATS report"
+
+ 242 RPL_STATSUPTIME
+ ":Server Up %d days %d:%02d:%02d"
+
+ - reports the server uptime.
+
+ 243 RPL_STATSOLINE
+ "O <hostmask> * <name>"
+
+ - reports the allowed hosts from where user may become IRC
+ operators.
+
+ 221 RPL_UMODEIS
+ "<user mode string>"
+
+ - To answer a query about a client's own mode,
+ RPL_UMODEIS is sent back.
+
+ 234 RPL_SERVLIST
+ "<name> <server> <mask> <type> <hopcount> <info>"
+
+
+
+Kalt Informational [Page 51]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 235 RPL_SERVLISTEND
+ "<mask> <type> :End of service listing"
+
+ - When listing services in reply to a SERVLIST message,
+ a server is required to send the list back using the
+ RPL_SERVLIST and RPL_SERVLISTEND messages. A separate
+ RPL_SERVLIST is sent for each service. After the
+ services have been listed (or if none present) a
+ RPL_SERVLISTEND MUST be sent.
+
+ 251 RPL_LUSERCLIENT
+ ":There are <integer> users and <integer>
+ services on <integer> servers"
+ 252 RPL_LUSEROP
+ "<integer> :operator(s) online"
+ 253 RPL_LUSERUNKNOWN
+ "<integer> :unknown connection(s)"
+ 254 RPL_LUSERCHANNELS
+ "<integer> :channels formed"
+ 255 RPL_LUSERME
+ ":I have <integer> clients and <integer>
+ servers"
+
+ - In processing an LUSERS message, the server
+ sends a set of replies from RPL_LUSERCLIENT,
+ RPL_LUSEROP, RPL_USERUNKNOWN,
+ RPL_LUSERCHANNELS and RPL_LUSERME. When
+ replying, a server MUST send back
+ RPL_LUSERCLIENT and RPL_LUSERME. The other
+ replies are only sent back if a non-zero count
+ is found for them.
+
+ 256 RPL_ADMINME
+ "<server> :Administrative info"
+ 257 RPL_ADMINLOC1
+ ":<admin info>"
+ 258 RPL_ADMINLOC2
+ ":<admin info>"
+ 259 RPL_ADMINEMAIL
+ ":<admin info>"
+
+ - When replying to an ADMIN message, a server
+ is expected to use replies RPL_ADMINME
+ through to RPL_ADMINEMAIL and provide a text
+ message with each. For RPL_ADMINLOC1 a
+ description of what city, state and country
+ the server is in is expected, followed by
+ details of the institution (RPL_ADMINLOC2)
+
+
+
+Kalt Informational [Page 52]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ and finally the administrative contact for the
+ server (an email address here is REQUIRED)
+ in RPL_ADMINEMAIL.
+
+ 263 RPL_TRYAGAIN
+ "<command> :Please wait a while and try again."
+
+ - When a server drops a command without processing it,
+ it MUST use the reply RPL_TRYAGAIN to inform the
+ originating client.
+
+5.2 Error Replies
+
+ Error replies are found in the range from 400 to 599.
+
+ 401 ERR_NOSUCHNICK
+ "<nickname> :No such nick/channel"
+
+ - Used to indicate the nickname parameter supplied to a
+ command is currently unused.
+
+ 402 ERR_NOSUCHSERVER
+ "<server name> :No such server"
+
+ - Used to indicate the server name given currently
+ does not exist.
+
+ 403 ERR_NOSUCHCHANNEL
+ "<channel name> :No such channel"
+
+ - Used to indicate the given channel name is invalid.
+
+ 404 ERR_CANNOTSENDTOCHAN
+ "<channel name> :Cannot send to channel"
+
+ - Sent to a user who is either (a) not on a channel
+ which is mode +n or (b) not a chanop (or mode +v) on
+ a channel which has mode +m set or where the user is
+ banned and is trying to send a PRIVMSG message to
+ that channel.
+
+ 405 ERR_TOOMANYCHANNELS
+ "<channel name> :You have joined too many channels"
+
+ - Sent to a user when they have joined the maximum
+ number of allowed channels and they try to join
+ another channel.
+
+
+
+
+Kalt Informational [Page 53]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 406 ERR_WASNOSUCHNICK
+ "<nickname> :There was no such nickname"
+
+ - Returned by WHOWAS to indicate there is no history
+ information for that nickname.
+
+ 407 ERR_TOOMANYTARGETS
+ "<target> :<error code> recipients. <abort message>"
+
+ - Returned to a client which is attempting to send a
+ PRIVMSG/NOTICE using the user@host destination format
+ and for a user@host which has several occurrences.
+
+ - Returned to a client which trying to send a
+ PRIVMSG/NOTICE to too many recipients.
+
+ - Returned to a client which is attempting to JOIN a safe
+ channel using the shortname when there are more than one
+ such channel.
+
+ 408 ERR_NOSUCHSERVICE
+ "<service name> :No such service"
+
+ - Returned to a client which is attempting to send a SQUERY
+ to a service which does not exist.
+
+ 409 ERR_NOORIGIN
+ ":No origin specified"
+
+ - PING or PONG message missing the originator parameter.
+
+ 411 ERR_NORECIPIENT
+ ":No recipient given (<command>)"
+ 412 ERR_NOTEXTTOSEND
+ ":No text to send"
+ 413 ERR_NOTOPLEVEL
+ "<mask> :No toplevel domain specified"
+ 414 ERR_WILDTOPLEVEL
+ "<mask> :Wildcard in toplevel domain"
+ 415 ERR_BADMASK
+ "<mask> :Bad Server/host mask"
+
+ - 412 - 415 are returned by PRIVMSG to indicate that
+ the message wasn't delivered for some reason.
+ ERR_NOTOPLEVEL and ERR_WILDTOPLEVEL are errors that
+ are returned when an invalid use of
+ "PRIVMSG $<server>" or "PRIVMSG #<host>" is attempted.
+
+
+
+
+Kalt Informational [Page 54]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 421 ERR_UNKNOWNCOMMAND
+ "<command> :Unknown command"
+
+ - Returned to a registered client to indicate that the
+ command sent is unknown by the server.
+
+ 422 ERR_NOMOTD
+ ":MOTD File is missing"
+
+ - Server's MOTD file could not be opened by the server.
+
+ 423 ERR_NOADMININFO
+ "<server> :No administrative info available"
+
+ - Returned by a server in response to an ADMIN message
+ when there is an error in finding the appropriate
+ information.
+
+ 424 ERR_FILEERROR
+ ":File error doing <file op> on <file>"
+
+ - Generic error message used to report a failed file
+ operation during the processing of a message.
+
+ 431 ERR_NONICKNAMEGIVEN
+ ":No nickname given"
+
+ - Returned when a nickname parameter expected for a
+ command and isn't found.
+
+ 432 ERR_ERRONEUSNICKNAME
+ "<nick> :Erroneous nickname"
+
+ - Returned after receiving a NICK message which contains
+ characters which do not fall in the defined set. See
+ section 2.3.1 for details on valid nicknames.
+
+ 433 ERR_NICKNAMEINUSE
+ "<nick> :Nickname is already in use"
+
+ - Returned when a NICK message is processed that results
+ in an attempt to change to a currently existing
+ nickname.
+
+
+
+
+
+
+
+
+Kalt Informational [Page 55]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 436 ERR_NICKCOLLISION
+ "<nick> :Nickname collision KILL from <user>@<host>"
+
+ - Returned by a server to a client when it detects a
+ nickname collision (registered of a NICK that
+ already exists by another server).
+
+ 437 ERR_UNAVAILRESOURCE
+ "<nick/channel> :Nick/channel is temporarily unavailable"
+
+ - Returned by a server to a user trying to join a channel
+ currently blocked by the channel delay mechanism.
+
+ - Returned by a server to a user trying to change nickname
+ when the desired nickname is blocked by the nick delay
+ mechanism.
+
+ 441 ERR_USERNOTINCHANNEL
+ "<nick> <channel> :They aren't on that channel"
+
+ - Returned by the server to indicate that the target
+ user of the command is not on the given channel.
+
+ 442 ERR_NOTONCHANNEL
+ "<channel> :You're not on that channel"
+
+ - Returned by the server whenever a client tries to
+ perform a channel affecting command for which the
+ client isn't a member.
+
+ 443 ERR_USERONCHANNEL
+ "<user> <channel> :is already on channel"
+
+ - Returned when a client tries to invite a user to a
+ channel they are already on.
+
+ 444 ERR_NOLOGIN
+ "<user> :User not logged in"
+
+ - Returned by the summon after a SUMMON command for a
+ user was unable to be performed since they were not
+ logged in.
+
+
+
+
+
+
+
+
+
+Kalt Informational [Page 56]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 445 ERR_SUMMONDISABLED
+ ":SUMMON has been disabled"
+
+ - Returned as a response to the SUMMON command. MUST be
+ returned by any server which doesn't implement it.
+
+ 446 ERR_USERSDISABLED
+ ":USERS has been disabled"
+
+ - Returned as a response to the USERS command. MUST be
+ returned by any server which does not implement it.
+
+ 451 ERR_NOTREGISTERED
+ ":You have not registered"
+
+ - Returned by the server to indicate that the client
+ MUST be registered before the server will allow it
+ to be parsed in detail.
+
+ 461 ERR_NEEDMOREPARAMS
+ "<command> :Not enough parameters"
+
+ - Returned by the server by numerous commands to
+ indicate to the client that it didn't supply enough
+ parameters.
+
+ 462 ERR_ALREADYREGISTRED
+ ":Unauthorized command (already registered)"
+
+ - Returned by the server to any link which tries to
+ change part of the registered details (such as
+ password or user details from second USER message).
+
+ 463 ERR_NOPERMFORHOST
+ ":Your host isn't among the privileged"
+
+ - Returned to a client which attempts to register with
+ a server which does not been setup to allow
+ connections from the host the attempted connection
+ is tried.
+
+ 464 ERR_PASSWDMISMATCH
+ ":Password incorrect"
+
+ - Returned to indicate a failed attempt at registering
+ a connection for which a password was required and
+ was either not given or incorrect.
+
+
+
+
+Kalt Informational [Page 57]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 465 ERR_YOUREBANNEDCREEP
+ ":You are banned from this server"
+
+ - Returned after an attempt to connect and register
+ yourself with a server which has been setup to
+ explicitly deny connections to you.
+
+ 466 ERR_YOUWILLBEBANNED
+
+ - Sent by a server to a user to inform that access to the
+ server will soon be denied.
+
+ 467 ERR_KEYSET
+ "<channel> :Channel key already set"
+ 471 ERR_CHANNELISFULL
+ "<channel> :Cannot join channel (+l)"
+ 472 ERR_UNKNOWNMODE
+ "<char> :is unknown mode char to me for <channel>"
+ 473 ERR_INVITEONLYCHAN
+ "<channel> :Cannot join channel (+i)"
+ 474 ERR_BANNEDFROMCHAN
+ "<channel> :Cannot join channel (+b)"
+ 475 ERR_BADCHANNELKEY
+ "<channel> :Cannot join channel (+k)"
+ 476 ERR_BADCHANMASK
+ "<channel> :Bad Channel Mask"
+ 477 ERR_NOCHANMODES
+ "<channel> :Channel doesn't support modes"
+ 478 ERR_BANLISTFULL
+ "<channel> <char> :Channel list is full"
+
+ 481 ERR_NOPRIVILEGES
+ ":Permission Denied- You're not an IRC operator"
+
+ - Any command requiring operator privileges to operate
+ MUST return this error to indicate the attempt was
+ unsuccessful.
+
+ 482 ERR_CHANOPRIVSNEEDED
+ "<channel> :You're not channel operator"
+
+ - Any command requiring 'chanop' privileges (such as
+ MODE messages) MUST return this error if the client
+ making the attempt is not a chanop on the specified
+ channel.
+
+
+
+
+
+
+Kalt Informational [Page 58]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 483 ERR_CANTKILLSERVER
+ ":You can't kill a server!"
+
+ - Any attempts to use the KILL command on a server
+ are to be refused and this error returned directly
+ to the client.
+
+ 484 ERR_RESTRICTED
+ ":Your connection is restricted!"
+
+ - Sent by the server to a user upon connection to indicate
+ the restricted nature of the connection (user mode "+r").
+
+ 485 ERR_UNIQOPPRIVSNEEDED
+ ":You're not the original channel operator"
+
+ - Any MODE requiring "channel creator" privileges MUST
+ return this error if the client making the attempt is not
+ a chanop on the specified channel.
+
+ 491 ERR_NOOPERHOST
+ ":No O-lines for your host"
+
+ - If a client sends an OPER message and the server has
+ not been configured to allow connections from the
+ client's host as an operator, this error MUST be
+ returned.
+
+ 501 ERR_UMODEUNKNOWNFLAG
+ ":Unknown MODE flag"
+
+ - Returned by the server to indicate that a MODE
+ message was sent with a nickname parameter and that
+ the a mode flag sent was not recognized.
+
+ 502 ERR_USERSDONTMATCH
+ ":Cannot change mode for other users"
+
+ - Error sent to any user trying to view or change the
+ user mode for a user other than themselves.
+
+5.3 Reserved numerics
+
+ These numerics are not described above since they fall into one of
+ the following categories:
+
+ 1. no longer in use;
+
+
+
+
+Kalt Informational [Page 59]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+ 2. reserved for future planned use;
+
+ 3. in current use but are part of a non-generic 'feature' of
+ the current IRC server.
+
+ 231 RPL_SERVICEINFO 232 RPL_ENDOFSERVICES
+ 233 RPL_SERVICE
+ 300 RPL_NONE 316 RPL_WHOISCHANOP
+ 361 RPL_KILLDONE 362 RPL_CLOSING
+ 363 RPL_CLOSEEND 373 RPL_INFOSTART
+ 384 RPL_MYPORTIS
+
+ 213 RPL_STATSCLINE 214 RPL_STATSNLINE
+ 215 RPL_STATSILINE 216 RPL_STATSKLINE
+ 217 RPL_STATSQLINE 218 RPL_STATSYLINE
+ 240 RPL_STATSVLINE 241 RPL_STATSLLINE
+ 244 RPL_STATSHLINE 244 RPL_STATSSLINE
+ 246 RPL_STATSPING 247 RPL_STATSBLINE
+ 250 RPL_STATSDLINE
+
+ 492 ERR_NOSERVICEHOST
+
+6. Current implementations
+
+ The IRC software, version 2.10 is the only complete implementation of
+ the IRC protocol (client and server). Because of the small amount of
+ changes in the client protocol since the publication of RFC 1459
+ [IRC], implementations that follow it are likely to be compliant with
+ this protocol or to require a small amount of changes to reach
+ compliance.
+
+7. Current problems
+
+ There are a number of recognized problems with the IRC Client
+ Protocol, and more generally with the IRC Server Protocol. In order
+ to preserve backward compatibility with old clients, this protocol
+ has almost not evolved since the publication of RFC 1459 [IRC].
+
+7.1 Nicknames
+
+ The idea of the nickname on IRC is very convenient for users to use
+ when talking to each other outside of a channel, but there is only a
+ finite nickname space and being what they are, it's not uncommon for
+ several people to want to use the same nick. If a nickname is chosen
+ by two people using this protocol, either one will not succeed or
+ both will removed by use of a server KILL (See Section 3.7.1).
+
+
+
+
+
+Kalt Informational [Page 60]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+7.2 Limitation of wildcards
+
+ There is no way to escape the escape character "\" (%x5C). While
+ this isn't usually a problem, it makes it impossible to form a mask
+ with a backslash character ("\") preceding a wildcard.
+
+7.3 Security considerations
+
+ Security issues related to this protocol are discussed in the "IRC
+ Server Protocol" [IRC-SERVER] as they are mostly an issue for the
+ server side of the connection.
+
+8. Current support and availability
+
+ Mailing lists for IRC related discussion:
+ General discussion: ircd-users@irc.org
+ Protocol development: ircd-dev@irc.org
+
+ Software implementations:
+ ftp://ftp.irc.org/irc/server
+ ftp://ftp.funet.fi/pub/unix/irc
+ ftp://ftp.irc.org/irc/clients
+
+ Newsgroup: alt.irc
+
+9. Acknowledgements
+
+ Parts of this document were copied from the RFC 1459 [IRC] which
+ first formally documented the IRC Protocol. It has also benefited
+ from many rounds of review and comments. In particular, the
+ following people have made significant contributions to this
+ document:
+
+ Matthew Green, Michael Neumayer, Volker Paulsen, Kurt Roeckx, Vesa
+ Ruokonen, Magnus Tjernstrom, Stefan Zehl.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kalt Informational [Page 61]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+10. References
+
+ [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [ABNF] Crocker, D. and P. Overell, "Augmented BNF for Syntax
+ Specifications: ABNF", RFC 2234, November 1997.
+
+ [HNAME] Braden, R., "Requirements for Internet Hosts --
+ Application and Support", STD 3, RFC 1123, October 1989.
+
+ [IRC] Oikarinen, J. & D. Reed, "Internet Relay Chat Protocol",
+ RFC 1459, May 1993.
+
+ [IRC-ARCH] Kalt, C., "Internet Relay Chat: Architecture", RFC 2810,
+ April 2000.
+
+ [IRC-CHAN] Kalt, C., "Internet Relay Chat: Channel Management", RFC
+ 2811, April 2000.
+
+ [IRC-SERVER] Kalt, C., "Internet Relay Chat: Server Protocol", RFC
+ 2813, April 2000.
+
+11. Author's Address
+
+ Christophe Kalt
+ 99 Teaneck Rd, Apt #117
+ Ridgefield Park, NJ 07660
+ USA
+
+ EMail: kalt@stealth.net
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kalt Informational [Page 62]
+
+RFC 2812 Internet Relay Chat: Client Protocol April 2000
+
+
+12. Full Copyright Statement
+
+ Copyright (C) The Internet Society (2000). All Rights Reserved.
+
+ This document and translations of it may be copied and furnished to
+ others, and derivative works that comment on or otherwise explain it
+ or assist in its implementation may be prepared, copied, published
+ and distributed, in whole or in part, without restriction of any
+ kind, provided that the above copyright notice and this paragraph are
+ included on all such copies and derivative works. However, this
+ document itself may not be modified in any way, such as by removing
+ the copyright notice or references to the Internet Society or other
+ Internet organizations, except as needed for the purpose of
+ developing Internet standards in which case the procedures for
+ copyrights defined in the Internet Standards process must be
+ followed, or as required to translate it into languages other than
+ English.
+
+ The limited permissions granted above are perpetual and will not be
+ revoked by the Internet Society or its successors or assigns.
+
+ This document and the information contained herein is provided on an
+ "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+ TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+ HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kalt Informational [Page 63]
+