<?xml version="1.0" ?>
<diagram>
  <row>
    <col start="0" end="7" width=".30">total codebooks (+1)</col>
    <col width=".25" id="codebook">Codebook₀</col>
    <col width=".25">Codebook₁</col>
    <col width=".20" style="dashed">...</col>
  </row>
  <spacer/>
  <row>
    <col start="0" end="23" width=".25" id="sync">sync (0x564342)</col>
    <col start="24" end="39" width=".375">codebook dimensions</col>
    <col start="40" end="63" width=".375" id="total_entries">codebook entries</col>
  </row>
  <row>
    <col start="64" end="64" width=".15">ordered</col>
    <col width=".30" id="entry_lengths"
         background-color="#0000FF33">entry lengths</col>
    <col start="0" end="3" width=".2">lookup type</col>
    <col width=".35" style="dashed" id="lookup_table"
         background-color="#FF00FF33">Lookup Table</col>
  </row>
  <spacer/>
  <row>
    <col width=".20" style="blank">ordered = 0</col>
    <col width=".15" start="0" end="0" id="is_sparse"
         border-color="blue">sparse</col>
    <col width=".65" id="entry_list" border-color="blue"
         background-color="#7F7F0033">Entry Length List</col>
  </row>
  <spacer height=".25"/>
  <row>
    <col width=".20" style="blank">ordered = 1</col>
    <col width=".25" start="0" end="4"
         border-color="blue" id="initial_length">initial length (+1)</col>
    <col width=".225" border-color="blue">length count₀</col>
    <col width=".225" border-color="blue">length count₁</col>
    <col width=".1" style="dashed" border-color="blue">...</col>
  </row>
  <spacer/>
  <row>
    <col width=".20" style="blank">sparse = 0</col>
    <col width="0.35" start="0" end="4" id="entry_0"
         border-color="olive">entry length₀ (+1)</col>
    <col width="0.35" start="0" end="4"
         border-color="olive">entry length₁ (+1)</col>
    <col width="0.1" style="dashed" id="entry_list_end"
         border-color="olive">...</col>
  </row>
  <spacer height=".25"/>
  <row>
    <col width=".20" style="blank">sparse = 1</col>
    <col width=".125" start="0" end="0"
         border-color="olive">present₀</col>
    <col width=".225" start="1" end="5" style="dashed"
         border-color="olive">entry length₀ (+1)</col>
    <col width=".125" start="0" end="0"
         border-color="olive">present₁</col>
    <col width=".225" start="1" end="5" style="dashed"
         border-color="olive">entry length₁ (+1)</col>
    <col width="0.1" style="dashed"
         border-color="olive">...</col>
  </row>
  <spacer/>
  <row>
    <col width=".275" style="blank">lookup type = 1 or 2</col>
    <col width=".185" start="0" end="31" id="minimum_value"
         border-color="fuchsia">minimum value</col>
    <col width=".175" start="32" end="63"
         border-color="fuchsia">delta value</col>
    <col width=".20" start="64" end="67"
         border-color="fuchsia">value bits (+1)</col>
    <col width=".165" start="68" end="68" id="sequence_p"
         border-color="fuchsia">sequence P</col>
  </row>
  <row>
    <col width=".275" style="blank"/>
    <col width=".242" start="0" end="value size - 1"
         border-color="fuchsia">multiplicand₀</col>
    <col width=".242" start="0" end="value size - 1"
         border-color="fuchsia">multiplicand₁</col>
    <col width=".242" start="0" end="value size - 1" style="dashed"
         border-color="fuchsia">...</col>
  </row>
  <line style="dotted">
    <start corner="sw" id="codebook"/>
    <end corner="nw" id="sync"/>
  </line>
  <line style="dotted">
    <start corner="se" id="codebook"/>
    <end corner="ne" id="total_entries"/>
  </line>
  <line style="dotted" color="blue">
    <start corner="sw" id="entry_lengths"/>
    <end corner="nw" id="is_sparse"/>
  </line>
  <line style="dotted" color="blue">
    <start corner="se" id="entry_lengths"/>
    <end corner="ne" id="entry_list"/>
  </line>
  <line style="dotted" color="#7F7F0033">
    <start corner="sw" id="entry_list"/>
    <end corner="nw" id="entry_0"/>
  </line>
  <line style="dotted" color="#7F7F0033">
    <start corner="se" id="entry_list"/>
    <end corner="ne" id="entry_list_end"/>
  </line>
  <line style="dotted" color="#FF00FF33">
    <start corner="sw" id="lookup_table"/>
    <end corner="nw" id="minimum_value"/>
  </line>
  <line style="dotted" color="#FF00FF33">
    <start corner="se" id="lookup_table"/>
    <end corner="ne" id="sequence_p"/>
  </line>
</diagram>
