ype is $BITSTR SIZE (2), the encoder produces two bits. If the type is $INT (0..15), the encoder produces four bits. If a size-constrained type is part of a sequence, the encoder orders all bitstrings of the sequence, and then fragments the resulting bitstring into a string of octets. This implies that the user may have to insert spare bits in the sequence SO that values keep within octets (octet is a string of eight bits), as in the following example. The type $SPARE0 cre- ates a bitstring where all bits are 'O'B. $SPARE1 creates a bitstring where all bits are '1'B: $TextASP ::= $SEQ {psld $INT (0..7), opld $INT (0..15), $SPARE0 SIZE (1), $PrimType, $SPARE1 SIZE (4), $TextASPpar} $SPARE0 SIZE (1) $SPARE1 SIZE (4) PrimType $TextASPpar When a type is not size constrained, bit 8 in octets is normally used as an exten- sion bit, as in this case (IA5 characters are encoded in seven bits): Encoding {"Thomas"} according to $TextASPpar ::= $IA5STR 11010100 11101000 Extension bits 1 -> not last 11101111 0-> last 11101101 11100001 01110011 Appendix 2: Naming and Data Typing in AML In case of $OCTSTR and character strings that are encoded in eight bits per char- acter, the encoder inserts one or several extra octets for defining the length of the value (as in BER): Encoding 257 octets of $OCTSTR 10000010 "1" defines the BER encoding long form of length in "long form" 257 octets For more details about encoding of AML types, see AML documentation. Private types The first character in a private type references is a # (# is a character that is not part of the ASN.1 character set). Otherwise the same naming conventions and character set as in ASN. 1 are used. The user must define encoding algorithms for all private types. To use private types is not encouraged by AML. AML types can almost always be used instead. Private types are more difficult to handle in the design methodology. AML provides no language component for defining encoding algo- rithms. Symbolic and typed forms in AML In AML, whenever data have to be specified, on