RFC 3285
Using Microsoft Word to create Internet Drafts and RFCs
RFC 3285: Using Microsoft Word to create Internet Drafts and RFCs π
Part 1 of 4 π
Bestie, this one is a whole vibe. It's RFC 3285, written by M. Gahrns (Microsoft) and T. Hain (Cisco) and dated May 2002 πΈ. It's Informational, so it isn't a standard, just helpful info. The title block doesn't list anything it obsoletes or updates π.
- Series: Network Working Group β¨
- Number: RFC 3285
- Title: Using Microsoft Word to create Internet Drafts and RFCs π
- Authors: M. Gahrns (Microsoft) and T. Hain (Cisco) π§
- Category: Informational π¦
- Date: May 2002 π
- Obsoletes / Updates: nothing listed π«Ά
Status of This Memo β¨
This memo gives info to 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 (2002). All Rights Reserved.
Abstract πΈ
Okay so the whole point is this: it explains how to set up Microsoft Word so it spits out documents in Internet Draft and RFC format π .
Table of Contents π
1. Overview.......................................................2
2. Conventions used in this document..............................2
3. Instructions for producing Internet drafts and RFCs............3
3.1 Defining Microsoft Word Page Layout and Styles.............4
3.2 Positioning the document identifiers on the first page.....7
3.3 Automatic date.............................................8
3.4 Automatic reference numbering..............................9
4. Final fixup: the CRLF program.................................11
5. Known problems................................................16
5.1 Margins...................................................16
5.2 Printing..................................................16
5.3 The Underscore character..................................17
6. Formal Syntax.................................................17
7. Security Considerations.......................................17
References.......................................................17
Acknowledgements.................................................17
Authors' Addresses...............................................18
Full Copyright Statement.........................................19
1. Overview π¦
So this doc walks you through making a Microsoft Word 97 (or newer) template that helps you write Internet drafts π. You get simple WYSIWYG editing, and the output still follows the IETF draft and RFC submission rules π . That means 72 characters per line π, 58 lines per page π, every line ends with a CRLF π«Ά, and every page is followed by an LF β¨. Word's justification and table tools can also help you make ASCII stick drawings π§.
The authors were working at Microsoft for a lot of this doc's evolution, but it is not a Microsoft product and it isn't supported π.
The doc also details exactly how the RFC Text and RFC Heading styles are built π. If you want to customise it or build a similar template for other Word versions, this is your guide π.
It includes the description and source code for CRLF.EXE, the program that makes the final text file π. People gave feedback that every version of Windows has a slightly different Generic Printer driver π. The doc won't stay up to date with every Windows release, so treat the code sample as a starting point for your own tweaks π₯.
You can grab the Word template and CRLF.EXE from these spots π:
ftp://ftp.ietf.org/internet-drafts/2-Word.template.rtf
ftp://ftp.ietf.org/internet-drafts/crlf.exe
ftp://ftp.rfc-editor.org/in-notes/rfc-editor/2-Word.template.rtf
ftp://ftp.rfc-editor.org/in-notes/rfc-editor/crlf.exe
Also, the steps work in Word for Windows or the Apple Macintosh edition, but only the Windows edition can make the plain text file you actually submit to the I-D or RFC editors π . That's because there's no Generic Printer driver for the Mac π.
2. Conventions used in this document πΈ
Quick heads up on how menus are shown: when you walk down a pull-down menu tree, each step gets indented on its own line π. That saves you from a wall of "then click" and "select" π . For example π§:
Help
About Microsoft Word
3. Instructions for producing Internet drafts and RFCs β¨
- Microsoft Word's auto-formatting can totally mess things up when you're making IETF format π. It inserts special characters for quotes and adds fancy formatting to lists, and those show up as gibberish in plain-text readers π. To avoid that, turn auto formatting off π.
Tools
Autocorrect
On the property pages, turn off all the auto formatting options under 'AutoFormat' and 'AutoFormat As You Type' π . If you forget, or you keep flipping between IETF format and not, you can type a ^Z after each auto-format event to undo the change π₯. The catch is you have to notice it happened π₯Ί.
- You need two special styles: RFC Heading and RFC Text π. If you use automatic reference numbering or a table of contents (more on that below), you'll also have to change the styles for Endnote Reference, Endnote Text, and TOC π. The whole draft has to be written with these styles, or the spacing comes out wrong π.
This RFC itself was made with the styles and steps described here π. You can either build the RFC Heading and RFC Text styles yourself, or grab a copy of the MS Word (.rtf) file from one of the places above, delete the body text, put in your own text, and apply the styles to the body and headers as needed π«Ά.
* Do not use bold, underlining, italics, etc., or you will lose the WYSIWYG editing feature since these settings affect the number of characters that can occur on a line. When the resulting Internet draft is saved as plain text, all that formatting will be lost anyway. *
Honestly, that's the big no-no π: formatting changes how many characters fit on a line, so don't do it π.
- Print the document to the Generic Text Printer and save the output to a file π¦. If you don't have that driver, install it from the Control Panel π . Here's the path π§:
Printers
Add Printer
local/My Computer
any LPT port (you will be printing to a file)
select Generic, Generic/Text Only from the combo box
When you print to a file, a pop-up asks for the file name πΈ.
- Run the CRLF program in a DOS window so it adds the carriage returns for you β¨. The usage is π:
CRLF <source> <destination>
Here <source> is the file you made by printing to the generic text printer, and <destination> is the name of the text draft you're making π. For example, if CRLF.EXE and draft-00.prn are in the C:/TEMP directory, you'd do this π§:
cd c:/temp
crlf draft-00.prn draft-00.txt
- Double-check that no non-ASCII characters snuck in by opening the doc in a simple text viewer π. The Unix program 'less'[1] will highlight any non-ASCII characters π . If you don't have a non-Microsoft operating system around, Notepad will show the file and does not try to reinterpret any special characters π«Ά.
3.1 Defining Microsoft Word Page Layout and Styles π
These settings are what create the RFC Text and RFC Heading styles π. Heads up: the menu options are in parentheses and they're listed for Microsoft Word 97 π . Other versions might be a little different π.
- Set measurement units to points π.
Tools
Options
General
Measurement units = points
- Set the margins like this (File, Page Setup, Margins) πΈ:
Top: 24 pts
Bottom: 0 pts
Left: 0 pts
Right: 93.6 pts
Gutter: 0 pts
Header: 0 pts
Footer: 0 pts
The right margin is what sets the 72 characters per line π. At 12 pt font with 10 chars/inch, 72 chars = 7.2" π§. The paper is 8.5" wide π. So 8.5" - 7.2" = 1.3" = 93.6 pts β¨. If you get the "one or more margins are outside the printable area" message, pick Ignore π. That seems to depend on which printer you've selected π«Ά.
- Set the paper size like this π:
File
Page Setup
Paper Size
Width: 612 pt (8.5")
Height: 660 pt (12pt * 55 lines per page)
The paper height is what sets 55 lines per page π.
- Make headers and footers different for the first page π:
File
Page Setup
Layout
- Define an RFC Heading style π :
Format
Style
New
RFC Heading: Heading1 + Font: Courier New, 12pt, Not Bold, Line spacing exactly 12pt., Space before 0 pt after 0 pt, Level 1
NOTE: Line Spacing Exactly 12pt is very important. Set this through Format: Paragraph π
You can add more heading levels by repeating this step and bumping the Level # π. If you want numbered headings, do this π§:
Format
Bullets and Numbering
Outline Numbered
Select preferred style
Customize
More
Link level to style RFC Heading
- Define an RFC Text style π¦:
Format
Style
New
RFC Text: Normal+Font: Courier New, 12pt, Indent: Left 21.6pt, Line Spacing Exactly 12 pt.
You set the line spacing and indent through Format, Paragraph πΈ. That leaves a 3 character left indent for the RFC text β¨.
- Fix the Header style π:
Format
Style
Header
Header: Normal+Font: Courier New, 12pt, Line Spacing Exactly 12pt, clear the tabs previously defined, and add Tabs 252 pt Centered, 504 pt Right Flush π.
- Fix the Footer style π«Ά:
Format
Style
Footer
Footer: Normal+Font: Courier New, 12pt, Line Spacing Exactly 12pt, Tabs 252 pt Centered, 504 pt Right Flush π.
- Set up your headers and footers for the first page π:
View
Headers
(on first page)
Header: No Header
Footer: Blank line
Blank line
AuthorName <tab> <tab> [Page <page number field>]
- Set up the headers and footers for every page after the first π :
View
Headers
(on second page)
Header: <tab> Title <tab> Month, Year
Blank line
Blank line
Footer: Blank line
Blank line
AuthorName <tab> Expiration <tab> [Page <page number field>]
- Set the tabs to every three spaces π§:
Format
Style
RFC Text
Tabs: Left 21.6, 43.2, 64.8, 86.4, 108, 129.6,
151.2,172.8, 194.4, 216, 237.6, 259.2, 280.8,
302.4, 324, 345.6,367.2, 388.8, 410.4, 432,
453.6, 475.2, 496.8
- Fix the table-of-contents styles, and repeat for each level π:
Format
Style
TOC1: RFC text +, Automatically update, Clear all tabs,
Add tab Rt. Flush, 504pt, ... leader
TOC2: RFC text + Indent: Left 43.2pt,
Automatically update, Clear all tabs,
Add tab Rt. Flush, 504pt, ... leader
TOC3: RFC text + Indent: Left 64.8pt,
Automatically update, Clear all tabs,
Add tab Rt. Flush, 504pt, ... leader
3.2 Positioning the document identifiers on the first page β¨
okay so the Table tool is literally your bestie for lining up the document identifiers on page one π Each cell keeps its own justification, so getting left and right stuff on the same line is so much easier π On the Toolbar, click the icon that looks like a grid with a dark bar across the top. A table array pops up, so drag across to pick your rows and columns. For the opening header, go with 4 rows x 2 columns, unless there are several authors. Click-and-hold in the left margin to select the table you just inserted, then clear the borders π¦
Format
Borders and Shading
None
Next, select the cells on the right. Position the cursor just above the top cell, and when it turns into an arrow pointing down, click. Then set justification to right. (The default is to take justification from the line it's positioned on, so the left column shouldn't need changing.) πΈ
Format
Paragraph
Right
If you need to, move the center divider to the right so the document title fits. Select the left column of cells, then hover over the dividing line. When the cursor changes to parallel bars with right/left arrows, click-and-hold and drag the line wherever it needs to go π«Ά
3.3 Automatic date ποΈ
okay for everyone who updates drafts all the time and keeps forgetting to change the current save and expire dates, here's the move π Setting up the expire-month field is pretty complex, but you only have to do it once in a template file, and every future draft benefits π§
To automatically set the current date on save, select the lower right cell in the table we made above, then insert the save date:
Insert
Field
Date and Time
SaveDate
In the box below the sample "field codes",
modify as necessary to make it look like:
- SAVEDATE \@ "MMMM YYYY" - (between the -'s).
OK
The field has a gray background on screen, but it won't show up in the printed version π Double click the field, copy it, then paste over the Month, Year in the header (10 in Layout Styles above) to replace them π
Setting up the expire-date is similar, but you need to nest fields. Select the spot for the month, then insert an IF field:
Insert
Field
MailMerge
IF
OK
This will throw an error, and that's totally normal π Right click the error message and select Toggle Field Codes. That lets you keep editing. Select the space after the initial IF, then insert another field: SaveDate (same as before, but this time only the month digit "M" is used). Right click the number it inserts and Toggle Field Codes again. Follow the right brace } with =, then the month to test, followed by the month name 6 months later. Then loop and insert another IF, and keep going until all 12 are done. Finish the last one with a "" to complete the syntax. The expanded field code will look like this π₯
{ IF { SAVEDATE \@ "M" \* MERGEFORMAT } = 1 July { IF { SAVEDATE \@
"M" \* MERGEFORMAT } = 2 August { IF { SAVEDATE \@ "M" \*
MERGEFORMAT } = 3 September { IF { SAVEDATE \@ "M" \* MERGEFORMAT} =
4 October { IF { SAVEDATE \@ "M" \* MERGEFORMAT } = 5 November { IF
{ SAVEDATE \@ "M" \* MERGEFORMAT } = 6 December { IF { SAVEDATE \@
"M" \* MERGEFORMAT } = 7 January { IF { SAVEDATE \@ "M" \*
MERGEFORMAT } = 8 February { IF { SAVEDATE \@ "M" \* MERGEFORMAT } =
9 March { IF { SAVEDATE \@ "M" \* MERGEFORMAT } = 10 April { IF {
SAVEDATE \@ "M" \* MERGEFORMAT } = 11 May { IF { SAVEDATE \@ "M" \*
MERGEFORMAT } = 12 June "" \* MERGEFORMAT } \* MERGEFORMAT } \*
MERGEFORMAT } \* MERGEFORMAT } \* MERGEFORMAT } \* MERGEFORMAT } \*
MERGEFORMAT } \* MERGEFORMAT } \* MERGEFORMAT } \* MERGEFORMAT } \*
MERGEFORMAT } \* MERGEFORMAT }
Next, space over and set the expire-year with a field, kind of the same way. This time there are only 2 IF fields, comparing the two halves of the year. If it's true, the printed value is the SaveDate year value. The expanded result will look like this π§
{ IF { SAVEDATE \@ "M" \* MERGEFORMAT } < 7 { SAVEDATE \@ "YYYY" \*
MERGEFORMAT } { IF { SAVEDATE \@ "M" \* MERGEFORMAT } > 6 { = {
SAVEDATE \@ "YYYY" \* MERGEFORMAT } + 1 \*MERGEFORMAT } "" \*
MERGEFORMAT }
To turn the field codes back into normal text, right click and pick Toggle Field Codes, or Update Field. Then select both fields by clicking one and shift clicking the other. Copy them, then paste them into the footer (9 & 10 in Layout Styles above), replacing the Month, Year β¨
3.4 Automatic reference numbering π¦
so you can get automatic updates for your reference numbers, you'll need to make a few changes π Heads up: the document has to be a single section before the Reference heading for this to work π
- Insert a section break on the line after the Reference heading:
Insert
Break
Section Break
Continuous
- Format the Endnote References and Text styles:
Format
Style
Endnote reference
Modify
Based on 'underlying paragraph'
Format Font
clear the check box for 'superscript'
Endnote text
Modify
Based on 'RFC text'
Format Paragraph
Indentation
Left 21.6
Special
Hanging 21.6
- Set up where the references go, plus the number style:
Insert
Footnote
Endnote
Autonumber
Options
Place at 'End of section'
Numeric style '1,2,3'
- Pick the spot for the first reference. Between the [ ] characters you typed, insert an endnote:
Insert
Footnote (endnote will already be selected,
as will auto 1,2,3)
OK
β οΈ When the endnote goes in, the lower pane pops up. Type in the text describing the reference. The first time you insert a reference, clear the Endnote Separator (the continuation separator might need clearing too). Find the pull down just above the reference text and switch it to each of the options, so that everything except 'All Endnotes' is cleared π₯Ί
Endnote Separator
Select and delete any text
The reference number in the text and in the endnote table will update automatically as you make changes π©· If you closed the endnote window and need to make changes again, go to:
View
Footnotes
To automatically add updated cross-references for earlier footnotes, select where the cross-reference goes. Between the [ ] characters you typed, insert a cross-reference:
Insert
Cross-reference
Select reference type 'endnote'
Clear the checkbox for 'Insert as hyperlink'
Select the reference from the endnote list
Insert
4. Final fixup: the CRLF program β¨
okay so bestie, every line in an RFC has to end with a CRLF π, but when you print your doc to the Generic Text Printer driver, some blank lines only get a line feed. π Picture an old-school text line printer printing one line of text and then 3 blank lines. The output comes out like this:
Line of Text<CR><LF><LF><LF>
Why? Because the printer didn't need to move the carriage head for the blank lines, so it just did line feeds. Iconic efficiency, but it breaks the rules π
Here's a sample CRLF fixup program that cleans this up so your doc follows IETF draft and RFC guidelines. π
/***************************************************************
* CRLF.C - Sample source code to format documents produced by
* the MS Word IETF template so that they comply to IETF draft
* and RFC guidelines
* Change CR/FF ; FF/CR/LF ; FF/LF ; CR/FF/CR/LF into CR/LF/FF
***************************************************************/
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <memory.h>
#include <string.h>
#include <stdlib.h>
#define CR 13
#define LF 10
#define FF 12
#define TRUE 1
#define FALSE 0
typedef int BOOL;
int main(int argc, char *argv[])
{
int fSrc, fDest;
int iNumBytesRead;
int iNumLines;
char cr = CR;
char lf = LF;
char ff = FF;
unsigned char buff[3];
BOOL bPrecedingCR = FALSE;
BOOL bPrecedingLF = FALSE;
BOOL bPrecedingFF = FALSE;
if(argc != 3)
{
printf("Usage:\n\n");
printf(" crlf <srcfile> <dstfile>\n\n");
return 0;
}
fSrc = open(argv[1], O_RDONLY | O_BINARY);
fDest = open(argv[2], O_CREAT | O_RDWR | O_BINARY |
O_TRUNC, S_IREAD | S_IWRITE);
if(fSrc == -1)
{
printf("Could not open file (%s) for reading.\n",
argv[1]);
printf( strerror(errno));
return 0;
}
if(fDest == -1)
{
printf("Count not open file (%s) for writing.\n",
argv[2]);
printf( strerror(errno));
return 0;
}
// Using the MS Word with the generic text printer, an
// extra CR LF starts the file. Skip over these first 2
// bytes,
iNumBytesRead = _read(fSrc, buff, 2);
bPrecedingCR = FALSE;
bPrecedingLF = TRUE;
bPrecedingFF = FALSE;
iNumLines = 0;
// Prepare to parse through the file
iNumBytesRead = _read(fSrc, buff, 1);
while(iNumBytesRead > 0)
{
if (buff[0] == FF)
{
// Found FF
if (bPrecedingCR == TRUE)
{
// Some drivers write CR/FF w/o LF
// Insert LF between
_write(fDest, &lf, 1);
_write(fDest, &(buff[0]), 1);
}
else if (bPrecedingLF == TRUE)
{
// If driver writes LF/FF, assume preceding CR
}
else if (bPrecedingFF == TRUE)
{
// If we just set FF from line count, ignore this
// one
}
else if (bPrecedingLF == FALSE && bPrecedingCR == FALSE)
{
// Some drivers write FF alone ; insert CR/LF
// for RFC rule of FF on line by itself
_write(fDest, &cr, 1);
_write(fDest, &lf, 1);
_write(fDest, &(buff[0]), 1);
}
// reset flags
bPrecedingFF = TRUE;
bPrecedingCR = FALSE;
bPrecedingLF = FALSE;
iNumLines = 0;
}
else if (buff[0] == CR)
{
// Found CR
if (bPrecedingFF == TRUE)
{
// Some drivers write CR/FF/CR/LF
// ignore second CR/LF as it creates a 59th line
}
else
{
// This CR counts
bPrecedingCR = TRUE;
bPrecedingLF = FALSE;
bPrecedingFF = FALSE;
if (++iNumLines < 59)
{
// Not end of page write it out
_write(fDest, &(buff[0]), 1);
}
else
{
// Some drivers write 66 lines per page as LF
// write end of page & skip to next CR in LF test
_write(fDest, &cr, 1);
_write(fDest, &lf, 1);
_write(fDest, &ff, 1);
bPrecedingFF = TRUE;
bPrecedingCR = FALSE;
bPrecedingLF = FALSE;
iNumLines = 0;
}
}
}
else if (buff[0] == LF && bPrecedingFF == TRUE)
{
// Ignore up LF to next CR
}
else if (buff[0] == LF && bPrecedingCR == TRUE)
{
// Found a LF after a preceding CR
// write it out and reset flags
bPrecedingLF = TRUE;
bPrecedingCR = FALSE;
bPrecedingFF = FALSE;
_write(fDest, &(buff[0]), 1);
}
else if (buff[0] == LF && bPrecedingCR == FALSE)
{
// Found a LF without a preceding CR
if (bPrecedingLF == TRUE)
{
// Inject a CR to precede the LF only
// if still in the first col
if (++iNumLines < 59)
{
// Not end of page write it out
_write(fDest, &cr, 1);
_write(fDest, &(buff[0]), 1);
bPrecedingLF = TRUE;
}
else
{
// Driver writing longer than page
// write end of page & skip to next CR
_write(fDest, &cr, 1);
_write(fDest, &lf, 1);
_write(fDest, &ff, 1);
iNumLines = 0;
bPrecedingFF = TRUE;
bPrecedingCR = FALSE;
bPrecedingLF = FALSE;
}
}
else
{
//ignore the random LF and clear flag
bPrecedingLF = FALSE;
}
}
else
{
// Other text, write it out and clear flags
bPrecedingCR = FALSE;
bPrecedingLF = FALSE;
bPrecedingFF = FALSE;
_write(fDest, &(buff[0]), 1);
}
// Read next byte
iNumBytesRead = _read(fSrc, &buff[0], 1);
}
_close(fSrc);
_close(fDest);
return 0;
}
5. Known problems π
5.1. Margins
okay so during development there were reports that some combos of Windows and Word cut off characters on the left. π One fix is to set the left and right margins to 36 and 57.6, which shifts the text right. If clipping wasn't an issue for your combo, those values give you leading spaces. π« That doesn't change how it looks overall, but it makes the file bigger than it needs to be and breaks the RFC line length rule π ββοΈ Tweaking margins for your specific Windows and Word combo has to be locally appropriate, so just move both in equal increments of 12 until every character shows up. β¨
5.2. Printing
if you try to print your draft straight from Microsoft Word to a real printer (not a file using the Generic Text printer driver), you might get an error saying the margins are outside the printer's printable area. π If you keep going anyway, the first 2 characters of each heading get chopped off. The recommended move is to make a printed copy by running the CRLF program to produce a text file, then sending that to the printer. That way you don't have NOTEPAD and friends adding their own margins π Example:
- Print to a file using the generic text printer
- CRLF draft.prn draft.txt
- NET USE lpt1 <\\printername\sharename>
- TYPE draft.txt > LPT1
Another option: if you open the final draft.txt in Word, setting all 4 margins to .65" will position it on the page. π
File
Page Setup
Top .65
Bottom .65
Left .65
Right .65
5.3. The Underscore character
if you use the underscore character "_" within the RFC Text and RFC Heading style, it won't show up on most screens. π (It looks like a blank space.) It prints correctly though, and it'll show as an underscore in the final draft output. π¦
6. Formal Syntax π
The formal definition of RFC format lives in RFC 2223 [2], and Internet Draft instructions are available at [3]. π
7. Security Considerations π¨
Caution is advised when opening any document that may contain a macro virus. β οΈ The template files originally provided to the Internet-drafts & RFC editors did not contain any macros, and unless someone tampered with them, they should still not. π«Ά If you're worried about the template doc file, the instructions here let you build one from scratch. π οΈ More about Microsoft Word macro virus concerns is at http://www.microsoft.com/. To find the current documents, search for 'macro virus'. π
References π
[1] http://www.greenwoodsoftware.com/less/
[2] Postel, J. and J. Reynolds, "Instructions to RFC Authors", RFC 2223, October 1997.
[3] http://www.ietf.org/ietf/1id-guidelines.txt
Acknowledgements πΈ
The authors would like to acknowledge the comments from around the community that helped refine this document. π«Ά Particular recognition goes to DJ Son and Aaron Falk, of the RFC Editor staff, for aligning the details of this document with the current RFC Editor process. π
Authors' Addresses π
Mike Gahrns Microsoft One Microsoft Way Redmond, Wa. USA
Phone: 1-425-936-9833 EMail: mikega@microsoft.com
Tony Hain Cisco 500 108th Ave Bellevue, Wa. USA
Phone: 1-425-468-1061 EMail: ahain@cisco.com
Full Copyright Statement β¨
Copyright (C) The Internet Society (2002). All Rights Reserved. π
Okay so here's the legal bit, bestie π . You can copy this document and hand it to anyone, and you can make derivative works that comment on it, explain it, or help people implement it. You can publish and distribute those, in whole or in part, with no restriction of any kind. The one condition is that the copyright notice and this paragraph have to be on every copy and derivative work π.
The original document itself is a different story. It can't be modified in any way, like removing the copyright notice or the references to the Internet Society or other Internet organizations. There are two exceptions. The first is developing Internet standards, where you have to follow the copyright procedures in the Internet Standards process. The second is translating it into languages other than English πΈ.
The permissions above are perpetual. The Internet Society, its successors, and its assigns will never revoke them π«Ά.
The document and everything in it is provided "AS IS" 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. Shoutout to them for keeping the RFC Editor running ππ
π¦ where this page comes from
- ietf: rfc3285 2002-05
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms